基于工控机的数控系统的实时控制设计
毕业设计(论文)用工控机和plc设计喷油泵实验台监控系统

摘要我们用工控机和PLC设计了新的实验台监控系统。
喷油泵实验台是柴油机燃油喷射系统中的控制和供给单元。
可定时定量的为发动机提供所需的高压燃油。
在油泵生产、制造及使用维修部门中为保证油泵定时定量的特性,需要在实验台上对油泵进行校验与调整。
喷油泵实验台可以模拟发送机在各种工况下的转速,为油泵提供标准供油压力,可对油泵进行供油定时、各分泵供油量、及供油均匀性等参数的测试。
实验台动力部分采用变频器无级调速系统,可对油泵转速、喷油次数、试验油温进行控制与显示。
关键词:工控机、PLC、油泵实验台、变频器ABSTRACTWhat is the accusing of machine of our recruitment PLC has designed the new laboratory bench monitoring system.It is control that the diesel engine fuel sprays among the systems and supply unit to gush out the laboratory bench of the oil pump .But offering the high-pressure fuel needed for engine at regular time and quantity.Produce , make and use in order to guarantee the characteristic at regular time and quantity of the oil pump while maintaining the department in the oil pump .Need to carry on the check-up and adjustment to the oil pump on the laboratory bench.Gushing out the laboratory bench of the oil pump can imitate the rotational speed of the transmitter under various kinds of operating modes. Offer standard for oil pressure for oil pump , can is it support oil timing , one pump person who supports oil , and support oil homogeneity test of parameter to go on to oil pump. The part of power of the laboratory bench adopts the stepless speed regulation of the frequency converter systematically. Can gush out oil number of times , test oil to be warm to is it control and show to go on , to oil pump rotational speed.Key words: Indusrial control machine, PLC, Laboratory bench of the oil pump, Frequence converter.第一章绪论1.1设计目的通过研究对汽车油泵实验台的设计与开发,使学生掌握产品设计的一半步骤,遵循的规律和应注意的问题,系统总结前面学过的知识,为毕业后的工作打下良好的基础。
基于运动控制器的智能弯管机数控系统

表1 弯管机系统技术参数
控制精度
±0.05°
管料最大长度
5000mm
最大弯曲角度
180°
适用弯曲半径
20~1000mm
指令最小设定移动单位
0.001mm
进给速度
1~9999mm/min,1~500r/min
工作速度
10只/min
工作方式
单次成型10只
弯管质量
扁平率<1%
机器重量
1200kg
机器体积(mm)
需求,弯管自动化成为社会发展的必然趋势。基于对弯管机控制系统的调查研究,首先介绍
分析了常见的以单片机、PLC数控系统等为核心实现的自动弯管机,然后提出将运动控制器用
于弯管机自动化的控制系统,基于多半径和自动化弯管的目标对原控制系统的硬件和软件分
别进行了设计。新系统具有结构紧凑,坚固实用,维护方便等特点,并且易于生产和推广,
本弯管机系统所选用的英国Trio运动控制器是Trio 公司针对工控领域专门开发的基于微处理技术的高精密 高功能的数字运动控制器,其采用32-bit的120-150MHz 的DSP的最新的微处理器技术,融合了最新的控制理 论及其网络技术控制,在基于满足普通PC机所有基本 功能的基础上还实现了高性能多轴协调和高速点位运 动的控制效果,即其能够在线的改变控制参数和修改 加速、减速曲线。Trio运动控制器可以对电机轴、气 动/液动伺服轴进行单独控制或综合控制,最多可以控 制24个轴;在通用性和扩展性方面,Trio运动控制器 提供了RS232C、RS485、USB、Ethernet等多种标准接 口,还提供了扩展接口,用户可以根据自身需求进行 功能扩展;Trio运动控制器提供了一种简易的编程语言
随着社会的不断发展,弯管的应用也越来越广泛, 弯管的弯曲半径也变得更加多样化和个性化,但社会上 现在很多弯管机仍只能将特定直径的管道弯曲成特定 的弯曲半径,在改变弯曲半径时需要更换不同的模具, 严重降低了工作效率,即使有研究优化了模具的夹装方 式,实现了模具的快速拆装与调试[5],但仍难以满足市 场对弯曲半径多样化的需求,因此Chandran M[6]设计并 实现了一种低成本、易制造的多半径弯管机,其可以将 给定直径的管材弯成所需的不同弯曲半径,这虽然满足 了弯管市场多样化的需求,但仍未满足如今市场对弯管
实时高效的工业机器人控制系统设计

实时高效的工业机器人控制系统设计【摘要】本文提出了一种基于工业控制计算机、实时控制系统和高速通讯总线为基础的先进机器人控制体系结构。
利用工业控制计算机强大计算能力,将计算结果在每一个伺服周期内通过高速总线传递给各轴伺服驱动器,作为原有线性控制器的前馈补偿,以期达到较好的控制效果。
【关键词】实时控制系统;高速通讯总线;自动化随着机械自动化水平的提高,机器人以其在机械结构、适用范围、灵活性、成本以及维护等方面的优势,使其应用渐为广泛,并成为一种发展趋势。
而机器人控制系统的性能决定着机器人的品质,目前主流高性能运动控制系统的发展趋势是在具有很强计算能力的计算机上集成高性能实时系统和高速通讯总线的控制架构。
以该种控制结构完成具有前馈补偿的控制结构。
运动学、动力学和用于前馈补偿的伺服控制算法均在计算性能强大的工控机中完成。
在每一个伺服周期内伺服控制指令通过高速通讯总线传递给驱动器,同时在同一个伺服周期内完成运动指令的反馈。
伺服控制指令被叠加到电流回路指令给定端作为前馈补偿,其可以补偿动力学耦合和结构柔性产生的非线性效应。
控制指令可以根据相应的控制算法进行实时计算。
在前馈补偿作用下,每一个主动关节即可以视为一个简单的单输入单输出系统,从而采用驱动器内部的线性控制器即可获得较好的控制性能。
1 Windows 内嵌实时系统目前由于Windows 良好的人机界面和交互功能,在工控领域应用越来越广泛,但由于其并不是一个实时系统,时间片设定在 5 毫秒以下时,其便很难保持精确稳定的运行。
从而用于实时性要求较高的工控场合会存在很多的局限性,如完成伺服层的伺服调试,需要1个毫秒以下的精确定时。
为了解决这一矛盾,出现了很多利用Window 环境进行扩展或者内嵌实时内核的实时系统。
其中德国Beckhoff 公司的TwinCAT 系统就是其中之一,TwinCAT(The Windows Control and Automation Technology)的原意是指“基于Windows 的控制和自动化技术”,其通过在Windows 环境下内嵌实时内核的方法,将每一台PC 变为多个具有很强大处理能力的PLC 集合,并同时具有良好的开发和编程环境,符合IEC-61131-3 标准。
ERP系统中基于单片机的数控机床实时监测系统设计

文章编号:1001-4934-(2003)06-0014-03ERP 系统中基于单片机的数控机床实时监测系统设计杜道山1,田秀英2,李从心1(11上海交通大学 塑性成形工程系,上海 200030;21南阳石油机械厂 销售部,河南 南阳 473065)摘 要:企业ERP(E nterprise Resource Planning)系统为了对数控机床进行监测,要求在数控系统PLC 和机床之间载取信号,数据采集量大,更新ERP 数据库迅速,实时性能要求高,采集过程中不能影响数控机床的正常工作,这里采用A TMEL 公司的89C51单片机构建数据采集监测系统,信号预处理系统很好地实现了数控系统和数据采集系统的电平匹配和电气隔离,输出系统采用串行通讯和TCP P I P 数据传输方式将数据写入E RP 系统数据库,在现场取得了良好的效果。
关键词:ERP 系统;单片机;数控机床;实时监测系统中图分类号:TP273 文献标识码:BAbstract :In ERP system,NC machines are rea-l time watched on.So lots of signals in NC syste m,espe -cially in PLC,should be rapidly gained.At the same time,the NC machines can run well.Here,89C51made by ATMEL Co.is used to design the monitoring system.In the system,before the signal form the NC system is imported to 89C51,it has been processed in order that it can be received by 80C51,and the processed signal has been already insulated with the signal from the NC system.So,The relation betweenthe NC system and the NC machine is not affected by the monitoring system.Though RS232,RS484serial protocol and TCP P IP protocol,datum gained by 89C51can be send to the database in ERP syste m.The system has been practiced very well.Key words :ERP system;DSP -chip;numerical controlled machine;real time monitoring syste m0 引言企业管理的现代化引发了对ERP(企业资源计划)工程系统的需求,其基本思想是把企业的业务流程看作是一个紧密联接的供应链,并将企业内部划分成几个相互协同作业的支持子系统,如财务、市场营销、生产制造、服务维护、工程技术等[1],其中也提高了对设备管理的要求,诸如设备的工作状态,设备的运行状况,设备的利用效率等,本文就是针对对企业E RP 设备管理系统中数控机床的监测系统作的设计研究。
基于工控机和组态软件的自动控制系统构建

图1控制系统硬件结构图
图2工业现场数据采集仪
3系统软件的设计
锅炉水位自动控制系统软件的设计主要包括两个方面。
一是研华输入输出控制板卡的软件安装与测试,二是力控组态画面的程序设计。
研华输入输出控制板卡插入到研华工控机PCI扩展插槽,这只是完成了硬件的安装。
为了使控制板卡正常工作,需要给板卡安装专业软件。
当正确安装完控制板卡的软件后,可以打开软件的测试功能,连接上工业现场数据采集仪,对板卡的各个输入输出通道进行测试,从而可以来判断板卡是否可以正常使用。
力控组态画面的程序设计是系统软件设计的核心部分。
其主要完成了如下几方面功能:
(1)I/O设备的组态并测试,在力控软件里对外部信号进行测试;(下转第84页)
Science&Technology Vision科技视界。
基于单片机的数控机床控制系统设计

摘要本课题研究的数控机床控制系统主要分为上、下位机。
上位机为一块PC104,主要作用是运行整个数控软件,通过控制面板输入控制命令,通过输出端口来控制各个电机的运行,并将机床的加工信息在LCD屏上显示出来。
下位机就是本课题所要设计的控制面板,它是一个单片机系统,将控制面板的输入信息传到上位机,并从上位机接收信息用LED来显示机床的运行状态。
该系统的总体功能够通过通讯协议完成单片机和上位机之间的通讯,该协议说明用户按了哪些键。
开机后,上位机(PC104)给单片机发送信息,单片机接收到信息后在控制面板上用LED显示机床的状态,用户操作时按控制面板上的按键或转动波动开关,单片机向上位机发送信息告诉上位机用户对机床的操作和对加工过程的一些配置。
上位机根据下位机传送的信息来控制机床的运行,同时也向单片机传送必要的信息。
本控制面板(下位机)分为上下两部分。
上面一块称为MDI面板,下面称为机床操作面板。
MDI面板上都是按键,其功能为:数控软件的软按键(虚拟button,由两个左右方向键和F1,F2,F3,F4,F5等按键组成);文字代码编辑、插入、删除、查看翻页以及几个功能键(诊断,图形,系统设定等)。
下面机床操作面板除了按键外,还有几个波段开关,起停开关以及一些LED灯。
按键的功能是实现机床的操作命令,如打开照明灯,主轴的正转、反转,刀具回零点等。
波段开关的功能分别为设置主轴倍率、进给倍率、快速倍率、方式选择。
快停开关为数控机床启动、停止、急停,LED 灯显示数控机床状态。
本系统设计包括:1、单片机与上位机通信协议的设计。
2、多按键的设计。
3、单片机的抗干扰措施及MAX1232的使用的设计。
4、用MAX1232芯片和上位机进行串口通信的设计。
5、单片机I/O口的扩展的设计。
6、变量的定义设计。
7、灯亮程序的设计。
8、接收程序的设计。
关键词:单片机控制系统按键AbstractCNC machine tool control system of this research project is mainly divided into upper and lower machine. The host computer to the PC104 a main role is to run the CNC software, control commands via the control panel input and output ports to control the operation of each motor, and the machining information to be displayed on the LCD screen. Lower machine is subject to design control panel, which is a single-chip system, the control panel to input information to the host computer, and receive information from the host computer with LED display machine running status.The overall function of the system enough to complete the communication between the microcontroller and the host computer through the communication protocol of the agreement shows the user which key was pressed. Boot the host machine (PC104) to send information to the microcontroller, MCU receives the information on the control panel with LED display machine status, user actions on the control panel button or turn the fluctuations switch, the microcontroller up the machine to send information to tell the host computer users on the machine tool operations and processing configuration. The host computer modem to send the information to control the operation of the machine, but also the necessary information to send to the microcontroller.The control panel (machine) divided into two parts. Above one known as the MDI panel, hereafter referred to as a machine operator panel. Are keys on the MDI panel and its functions are: CNC software soft buttons (the button virtual, composed by the two left and right arrow keys and F1, F2, and F3, the F4, F5, and other key); text code editor, insert, delete, view page as well as several function keys (diagnostic, graphics, system settings, etc.). The following machine operator panel button outside, there are several band switch with the switch and some LED lights. The button's function is a machine tool operation command, such as turn on the lights, the spindle forward and reverse, the tool back to 0:00 and so on. Band switch function to set the spindle override and feed override, rapid override options. Quick stop switch to start, stop, emergency stop and LED lights display the CNC machine tools for CNC machine tools. The system design includes: 1, MCU and host computer communication protocol design.2, a multi-button design.3, anti-jamming measures microcontroller and MAX1232 use design.4, the MAX1232 chip and the host computer serial communication design.5,MCU I / O port expansion design.6, the variable definition of design.7, the program design of the lights.8, the design of the receiving program.Key word:lower machine, The control panel (machine), multi-button目录摘要 (I)Abstract (III)引言 (1)1. 简介 (2)1.1 单片机 (3)1.2 单片机与上位机通信协议设计 (4)2. 多按键处理 (6)3.原理图的分析与实现 (8)3.1单片机的抗干扰措施及MAX1232的使用 (8)3.2 用MAX1232芯片和上位机进行串口通信 (12)3.3 单片机I/O口的扩展 (14)3.4 程序分析 (20)4.总电路图 (27)结论 (28)致谢 (29)参考文献 (30)引言由于单片机构成的系统具有可靠性高、使用简单方便、修改灵活等优点,在工业应用上越来越普遍,逐渐取代了以往采用的以大量模拟电路、数字电路和分离原件来制作控制系统的方法。
《基于Modbus的数控系统监控功能设计与实现》

《基于Modbus的数控系统监控功能设计与实现》一、引言随着工业自动化技术的不断发展,数控系统在制造业中的应用越来越广泛。
为了提高数控系统的可靠性和效率,监控功能的设计与实现显得尤为重要。
Modbus作为一种常用的工业通信协议,具有广泛的兼容性和可靠性,因此在数控系统监控功能的设计与实现中得到了广泛应用。
本文将介绍基于Modbus的数控系统监控功能的设计与实现,为相关领域的研究和应用提供参考。
二、系统概述本系统基于Modbus通信协议,实现对数控系统的实时监控。
系统主要由上位机监控软件、Modbus通信模块、数控系统三部分组成。
上位机监控软件负责数据的采集、处理和显示,Modbus通信模块负责与数控系统进行数据交换,数控系统则负责执行监控指令。
三、功能设计1. 数据采集:通过Modbus通信模块实时采集数控系统的各种数据,包括机床状态、电机运行数据、加工参数等。
2. 数据处理:上位机监控软件对采集到的数据进行处理,包括数据格式转换、数据存储、数据分析等。
3. 实时显示:将处理后的数据以图表、曲线等形式实时显示在监控界面上,方便操作人员查看。
4. 报警功能:当数控系统出现异常时,系统应能及时发出报警,提醒操作人员进行处理。
5. 远程控制:通过上位机监控软件实现远程控制功能,包括远程启动、停止、急停等操作。
6. 数据存储与查询:将历史数据存储在数据库中,方便后期查询和分析。
四、实现方法1. 硬件设计:硬件部分主要包括Modbus通信模块和数控系统。
Modbus通信模块应具备高速、稳定的数据传输能力,以保证数据的实时性和准确性。
数控系统应支持Modbus通信协议,以便与上位机监控软件进行数据交换。
2. 软件设计:软件部分主要包括上位机监控软件和Modbus 通信协议的实现。
上位机监控软件应具备友好的界面和丰富的功能,方便操作人员使用。
Modbus通信协议的实现应遵循标准规范,以保证数据的可靠传输。
3. 数据处理与显示:上位机监控软件通过Modbus通信模块实时采集数据,对数据进行处理后以图表、曲线等形式显示在界面上。
基于单片机的数控机床控制系统设计

基于单片机的数控机床控制系统设计数控机床控制系统是目前数控机床上一台非常重要的设备。
本系统要完成工件的銑削、钻孔、攻丝等工序。
在数据库控制部分采用了AT89C51单片机作为控制核心。
由于它的成本低、易于编程、稳定可靠、广泛应用等优点,并成功应用到数控机床控制系统中。
数控机床控制系统包含机械部分和电气部分两大部分,其中机械部分实现的主要是工件的加工技术。
而电气部分则负责控制、监控和修整各种动力和辅助机构的工作状态。
电气部分在整个数控机床控制中起到配合机械部分工作的作用,并完成数控机床机械结构和动作的控制。
本设计的数控机床控制系统包含以下几个方面的内容:1.机械结构设计:数控机床的机械结构设计主要包括工作台、主轴和导轨等部件的设计。
其中,工作台需要具备移动和调整位置的能力,以便完成工件在不同位置的加工工作;主轴需要具备转动的能力,并能够通过控制系统实现转速的调整;导轨需要具备平滑移动工作台的能力,并通过控制系统实现精确的位置控制。
2.电气元器件选型:为了能够实现数控机床控制系统的各项功能,需要选用合适的电气元器件。
例如,需要选用合适的驱动器,以确保工作台和主轴的运动平稳可靠;需要选用合适的传感器,以实时感知工件和机床的状态;还需要选用合适的控制器,以实现控制系统的编程和运行。
3.控制系统设计:数控机床控制系统的设计主要包括控制逻辑的编程和功能的实现。
控制逻辑的编程可以采用高级语言编写,并通过编译和烧录到单片机中,以实现对机械部分的控制。
控制功能的实现需要根据具体的需求来设计,并通过控制器和外围设备的配合来完成。
4.系统调试与优化:完成控制系统的设计后,需要对整个系统进行调试和优化。
首先,可以通过对系统进行逻辑验证和功能测试来检查系统是否满足设计要求。
其次,可以通过对系统进行性能测试和负载测试来评估系统的性能和稳定性。
最后,可以通过对系统进行优化和改进来提升系统的性能和可靠性。
总之,基于单片机的数控机床控制系统设计是一个复杂而重要的任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于工控机的数控系统的实时控制设计发表时间:2009-1-26 许燕萍杨代华来源:万方数据关键字:工控机数控系统实时控制信息化应用调查在线投稿加入收藏发表评论好文推荐打印文本分析了Windows的定时器原理,设计了一种在Windows平台下执行的实时控制程序,实现了系统微秒级的定时,可满足数控系统运动时对实时性的要求。
0 概述计算机数控机床(CNC)是20世纪70年代发展起来的机床控制新技术,它综合了计算机、自动控制、测量技术、机械制造等领域的最新成就,使机器工具的生产效率和加工精度得到了极大提高。
数控技术的先进与否直接代表了一个国家的机械工业水平,数控产业对于国家的工业现代化,乃至于国家经济安全和国防安全都具有超越其巨大经济价值的战略意义。
数控系统是先进制造装备实现控制功能的核心部件。
国内对数控系统的研究由于起步较晚,在技术上还落后于国外一到两代。
目前数控产业的高端市场主要由西门子、发那克、GE等大公司主导,我国每年会进口上万台高档数控机床。
因此,加强数控技术的研发,发展自主知识产权的数控系统势在必行。
实时控制是数控系统开发的关键技术之一,数控机床的精度一般可达到微米级,本设计主要用作教学实践用,对精度的要求不用太高,设计时可定为0.01 mm,此级精度对于普通的零件加工也是可以满足的。
数控机床的速度一般为(2~20)m/min,若要达到0.01姗的定位,系统的响应需达到(0.03~0.3)脚,即需要微秒级的响应。
不光是定位,在基于PC机的数控软件中,为了保证对控制对象的实时性处理,包括数据采集、速度处理、插补及位置伺服控制、事件处理等,每一项任务都要在规定的时间内完成。
因此,对于底层控制程序的设计是非常重要的。
1 Windows的定时器原理Windows是一个消息驱动式的操作系统,Windows消息提供了应用程序与应用程序之间、应用程序与Windows系统之间进行通讯的手段。
应用程序要实现的功能由消息来触发,并靠对消息的响应和处理来完成。
但由于消息传递是非抢先性的,不论事件消息的急与缓,总是按到达的先后顺序排队,这就使得一些外部实时事件可能得不到及时的处理,容易造成实时系统性能不稳定。
对实时控制系统而言,在精确的时间段内及时响应消息是实时系统的根本,如果不能保证系统的实时性,实时控制系统也就失去了实际意义。
在计算机数控系统开发中,数据插补是一件实时性很强的工作,它要求在给定的时间段内,必须进行插补工作。
插补的品质直接决定了系统的加工速度和加工精度。
在Windows环境下如何实现实时中断和控制是计算机数控系统开发中的难点之一。
2 实时控制解决方案在各种实时控制系统中,实时时钟的控制都是关键技术。
因为各种控制过程、控制任务都由实时时钟来推进。
在Windows环境下,常用的实时时钟获取方法有下面几种:a)设置Win32定时器并响应WM_TIMER消息来进行实时处理:这种方法是最简单的一类方法,在Windows环境下,各种可视化开发工具如VC,Delphi,C++ Builder等,都提供定时器控件Timer。
通过设定控件的属性,并响应WM_TMER消息,可以实现一定的定时功能。
但是由于Windows提供的定时器是建立在D0sICH中断的基础上,该中断每秒钟发生18.2次,即定时周期为54.945ms,该定时精度远不能满足数控系统对实时性的要求。
另外,函数SetTimer ()中指定的计时周期虽以ms为单位,但这个值要转化为54.945ms的整数倍;定时器发送的WM_TIMER消息的优先级相当低,在应用程序的消息队列里要等高优先级的消息处理完后才能被处理。
而且Windows在应用程序的消息队列里只为一个定时器保存一条WM_TIMER消息。
因此,WM_TIMER消息的处理带有很大的不确定性和非实时性,在多任务操作系统中,定时器消息往往不能得到及时响应,容易造成系统实时处理的不稳定,不能满足实时控制环境下的应用。
因此这种方法只适合实时性要求不高的应用场合。
b)采用Windows多媒体定时器,通过设置回调函数进行实时处理:Win32函数提供的实时多媒体定时器,在多媒体扩展库MMSYSTEM.DLL中提供了高精度的定时服务。
定时器的定时精度由多媒体时钟函数TimeBeginPeriod()设置,SetTimeEvent()函数设置定时器定时间隔并启动定时器。
但资料表明,定时间隔在20ms以上的定时任务中,精度可保持在1ms左右;定时间隔在(7~20)ms之间,精度要视Windows系统的整体工作量和应用程序的任务而定,误差在(1~3)ms;7ms以下的软件定时一般难以实现,因为Windows系统本身的刷新任务及其消息循环等系统开销需要占用时间。
并且这种方法占用了系统大量宝贵的资源,随着程序的运行,系统速度会变慢,而且当定时信号由用户提供或需要更高的中断频率时,这种方法就无能为力了。
所以多媒体定时器只可满足一般数控系统对定时精度的要求,而不能满足高精度定时的要求。
c)使用QueryPerformanceCounter()函数结合多线程来实现:QueryPerformanceFrequency()和QueryPerformaneeCounter()函数是VC提供的仅供Windows 95及其后续版本使用的精确时间函数,并要求计算机从硬件上支持精确定时器。
QueryPerformaneeFrequency()函数和QueryPerformanceCounter()函数的原型如下:BOOL QueryPerfonnanceFrequency(LARGE_INTEGER * lpFrequency);BOOL QueryPerformaneeCounter(LARGE_INTEGER * lpCount);数据类型ARGE_INTEGER既可以是一个8字节长的整型数,也可以是两个4字节长的整型数的联合结构,其具体用法根据编译器是否支持64位而定。
该类型的定义如下:typedef union_LARGE_INTEGER{struet{DWORD LowPart;//4字节整型数LONG HighPart;//4字节整型数};LONGLONG QuadPart;//8字节整型数}LARGE_INTEGER;在进行定时之前,先调用QueryPerformaneeFrequeney()函数获得机器内部定时器的时钟频率,然后在需要严格定时的事件发生之前和发生之后分别调用QueryPerformaneeCounter()函数,利用两次获得的计数之差及时钟频率,计算出事件经历的精确时间。
使用时需要自行编写消息循环程序,下列代码实现1μs的精确定时:LARGE_INTEGER litmp;LONGLONG QPartl,QPart2;double dtMinus,dfFreq,dtTim;QueryPerformanceFrequency(& litmp);dfFreq=(double)litmp.QuadPart;//获得计数器的时钟频率QueryPerformanceCounter(&litmp);QPartl=litmp.QuadPart;//获得初始值do{QueryPerformanceCounter(& litmp);QPm2=litmp.QuadPart;//获得中止值dfMinus=(double)(QPm2-QPartl);dfTim=dfMinus/dfFreq;//获得对应的时间值。
单位为s}while(dtTim<O.000001);经测试,其定时误差一般不超过0.5μs,精度与CPU等机器配置有关。
本系统只需要30~300μs的精度,所以用此方法可以满足精度的要求。
但是此方法依然存在缺点,程序要不断地运行,并不断地强制CPU中断,使用时会占用很高的CPU,若将其放在主程序中,甚至可能会使程序和系统假死。
为了解决此问题,可以使用多线程技术。
用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。
进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其他系统资源组成。
进程在运行时创建的资源随着进程的终止而死亡。
线程的基本思想很简单,它是一个独立的执行流,是进程内部的一个独立的执行单元,相当于一个子程序,它对应于Visual C++中的CWinThread类对象。
单独一个执行程序运行时,缺省地包含的一个主线程,主线程以函数地址的形式出现,提供程序的启动点,如main()或WinMain()函数等。
当主线程终止时,进程也随之终止。
根据实际需要,应用程序可以分解成许多独立执行的线程,每个线程并行的运行在同一进程中。
一个进程中的所有线程都在该进程的虚拟地址空间中,使用该进程的全局变量和系统资源。
操作系统给每个线程分配不同的CPU时间片,在某一个时刻,CPU只执行一个时间片内的线程,多个时间片中的相应线程在CPU内轮流执行,由于每个时间片时间很短,所以对用户来说,仿佛各个线程在计算机中是并行处理的。
操作系统是根据线程的优先级来安排CPU的时间,优先级高的线程优先运行,优先级低的线程则继续等待。
线程被分为两种:用户界面线程和工作线程(又称为后台线程)。
用户界面线程通常用来处理用户的输入并响应各种事件和消息,其实,应用程序的主执行线程CWinAPP对象就是一个用户界面线程,当应用程序启动时自动创建和启动,同样它的终止也意味着该程序的结束,进程终止。
工作线程用来执行程序的后台处理任务,比如计算、调度、对串口的读写操作等,它和用户界面线程的区别是它不用从CWinThread类派生来创建,对它来说最重要的是如何实现工作线程任务的运行控制函数。
工作线程和用户界面线程启动时要调用同一个函数的不同版本;一个进程中的所有线程共享它们父进程的变量,但同时每个线程可以拥有自己的变量。
使用多线程可以减少程序对CPU的占用,使程序运行更高效、可靠。
多线程的函数表述如下:UINT Work_Proc(LPVOID 1Param);函数内完成功能的操作,并不断发送消息提示中断,以使CPU去处理实时性的事件。
在MFC中,开启线程时使用AfxBeginThread(),开启后线程会能自动执行函数体的程序,主线程还可以继续自己的工作。
也可以通过调用CWinThread::SetThreadPriority来设置线程的优先级,用CWinThread::SuspendThread来挂起线程。
如果线程被挂起,那么直到调用CWinThread::ResumeThread后线程才开始运行。
若要中止线程,可使用ExitThread()函数,若要从外部中止线程,可用TerminateThread()函数。