关于我们 联系我们 网站地图 您好!欢迎访问沈阳天乙新数控机械有限公司!
全国咨询热线:024-8936-3215
您的位置:首页>>新闻中心

咨询热线

024-8936-3215

基于Windows多线程开放数控主控系统的实现

作者:天乙数控机床时间:2021-05-07711次浏览

信息摘要:

计算机应用基于Windows多线程开放数控主控系统的实现张政,马书根,曹秉刚(西安交通大学机戒工程学院机电系,陕西西安710049)如何用多线程机制实现数控系统的多任务,以及多任务

 计算机应用基于Windows多线程开放数控主控系统的实现张政,马书根,曹秉刚(西安交通大学机戒工程学院机电系,陕西西安710049)如何用多线程机制实现数控系统的多任务,以及多任务之间的协调和同步问题。同时,还讨论了实现数控机床上位机(Windows)和下位机(DOS)之间的串口通信问题。该主控系统已经用于一台数控机床的改造实验,并且取得了良好的效果。
 
  1引百在现有数控系统中,大多数系统是基于DOS环境的,其综合性能相对于Windows环境就弱一些,尤其是界面、人机交互能力、多任务以及开放性方面比较差。因此说,开发基于本文的主控系统是基于一种开放式数控机床体系结构数控软件化体系结构进行研究的。该体系结构(所示)就是为了解决封闭系统的不足而提出来的。在这一结构下,工艺软件在一台Host―PC上运行,所生成的设备动作信息由串行口传送给完备数字机床。
 
  用VC++编制了主控系统的控制软件,并且通过实验验证,取得了满意的效果。该主控系统可以支持齿轮加工和复杂曲面的加工,大大简化了工艺软件的编制。
 
  0、张政(972-)男,陕西三原人,博士研究生,主要研究方向数控技术、机器人远程控制。」L.件的测量数据进行比较,现加工过程中中的系统误cMliShM记记录线程就被唤el对ei新数tf进行处理把*新数bookmark4利用VC++开发的基于Windows的开放数控主控系统界面如该系统的主要功能:装配自动加工文件;手工编辑自动加工文件;机床位置调整;机床坐标原点设定;离线仿真走刀轨迹;在线实时仿真走刀轨迹;数字机床状态显示。
 
  2多线程技术在主控系统中的应用每一个Windows应用程序都是一个进程,并由线程来负责执行包含在进程地址空间中的代码。实际上,单个进程可以拥有多个线程,它们在进程的地址空间中“同时地”执行代码。操作系统以一种轮转的方式为每个独立的线程分配CPU时间片,客观上使所有的线程近乎同时进行。
 
  系统同时又是根据所有活动线程的优先级来决定何时调用哪个线程以及调度多长时间。系统为每一个线程分配了优先级,从*低的0到*高的31.不管低级别的线程正在干什么,高级别的线程总会抢先低级别的线程。
 
  2.1线程优先级的设定在Windows中一个线程的优先级是由它所在的进程和它相对于该进程的优先级确定的。当线程被创建时,它的优先级是所在进程的优先级类。例如,一个REALTIME-PRIORITY-CIASS的进程主线程的初始优先级为24.不过,可以通过设定线程相对于进程的优先级,来改变线程优先级。
 
  这样,在一个应用程序中的几个线程就可以被设定为不同的优先级。例如:在上下位机通信线程中使用:在时间显示线程中,使用);/可以把该线程的优先级设定为16表1给出了系统如何根据进程的优先级类和线程的相对优先级相结合,决定线程的基本优先级。
 
  表1系统如何确定线程的基本优先级线程相对优先级进程优先级类空闲普通高实时2.2主控系统中的线程主控系统中的线程主要有:显示年月日和北京时间。如:002年1月21日星期一北京自动记录线程。在自动加工时,把从下位机接收到的数据存储到文本文件。这样就可以保存完整的加工数据,把加工过程记录下来。加工完成后,可以根据该文件和实际零而米取措施进一步提高加工精度。
 
  迹按照三视图绘制在界面上,有利于操作者掌握加工进度和实际的加工情况。
 
  *后验证自动加工程序的正确性。从而可以发现错误,避免造成损失。
 
  串口通信线程。该线程负责把自动加工数据或者机床调整数据通过串口发送给下位机,同时还要从串口读取下位机传来的机床状态数据,显示于界面上。
 
  以上介绍的各个线程的优先级列于表2表2主控系统中几个线程的优先级。
 
  线程显示时间线程自动记录线程在线仿真线程离线仿真线程串口通信线程优先级23各线程之间的协调和同步在有几个线程并行运行的环境中,同步不同线程的活动是很重要的。Windows中主要提供了5种用于同步线程的对在本主控系统中主要用到了临界区和事件进行线程同步。
 
  临界区是一小段代码,它要求在执行以前取得对某些共享数据的独占的访问。临界区一次只允许一个线程取得对某个数据区的访问权。通过使用临界区就能确保对数据结构的存取能在线程之间得到协调。如果某个线程已经取得了临界区的所有权,其它想要获得访问权的线程都会被置于睡眠状态。当拥有所有权的线程放弃了所有权时,系统只唤醒正等待中的一个线程,给它所有权,而让其它的线程继续睡眠。例如,在线仿真线程中使用程序段:在主线程中使用程序段:可以同步在线仿真线程和主线程对全局变量strSimuOnlineX的访问。
 
  事件*常用于一个进程进行初始化工作后,发信号给另一个线程,让其完成剩余的工作。初始化线程将事件设置为无信号状态后开始进行初始化。当初始化完成后,线程把事件设置为有信号态,工作线程就醒来执行余下的必要工作。
 
  在主控系统中主要定义了如下事件:其中rote-eventStart用于表示主线程初始化已经完成,自动加工开始,可以启动自动记录线程。当该事件为有信号态据写入文件。在自动记录线程中使用等待该时间有信号。当主线程开始自动加工,并且向下位机发送了**组数据后,使用语句就可以启动自动记录线程开始记录。由于篇幅所限,其它事件的具体应用就不再讨论。
 
  3Windows和DOS间的串口通信3.1串口通信的硬件基础RS―232-C是在数据终端设备(DTE)和数据通信设备(DCE)之间进行二进制交换的接口标准,可用于实现两台微机间的近距离直接通信。实现双机连接,只要将两台微机的串行口或并行口以适当电缆按一定方式连接起来即可。
 
  9针在本主控系统中,采用的就是9针三线连接方式。
 
  RS―232―C只是计算机之间串行通信的接口标准,其电器特性则是由计算机中称作通用异步收/发器(UART)的器件来完成的。
 
  DOS串口通信DOS和BIOS都提供了支持串行异步通信的功能调用,可以利用这些功能调用来设计简单的串行异步通信程序。中断控制方式是串行通信采用*多的收/发控制方式。在下位PC机运行的DOS环境下,就采用了基于中断的方式。
 
  Windows串口通信在Windows下,串行口作为系统资源,由设备驱动程序统一管理,用户不能像在DOS下一样直接对串行口硬件端口进行编程。Windows将串行口和其它通信设备如Modem、传真机等统一视作文件,对串行口的打开、关闭、读写等操作与操作还由于需要结合Windows的线程编程、事件驱动等新技术,因而使得Windows下的串行通信编程比较复杂。
 
  串行通信会话以调用CreateFileC)函数打开串行口开始,接着设置串行口波特率、数据位、校验位、停止位等参数以及超时参数,*后选择一种工作方式读、写串行口。在Windows中,串行通信有询方式和事件驱动两种工作方式。
 
  查询是*为直接、易于理解的技术。但是查询会占用大量的CPU时间,效率较低。事件驱动I/O方式是指线程通过监视通信资源中的一组事件来进行I/O操作,这种方式类似于DOS下的中断工作方式,效率高。主控系统中使用的就是事件驱动的通信方式。在主控系统中,建立了一个CSerialPort类,用于实现串口的初始化和读写操作。
 
  3.4Windows和DOS的串口通信两种操作系统之间的串口通信并不难,只要在两者之间建立了正确的硬件连接,然后分别编写各自的通信程序,并且按照同样的通信协议设置,就可以通信了。这也就是本主控系统上位机和下位机的通信实现方式,并且通信速率达到了4结语该主控系统的实用性已经通过实验验证,取得了良好的效果。
返回列表 本文标签: