当前,数控系统广泛采用主从式控制结构,即采用工业控制计算机(IPC)作为上位机,以单片机构成的实时控制电路作为下位机。主从式控制结构可以充分利用工业控制计算机的丰富的软件资源,编制出具有友好人机界面的系统软件;同时又可以借助汇编语言编制出执行机构的位置控制软件,从而保证系统具有良好的实时性。
主从式数控系统工作时,上位机应该能够可靠、畅通地将经过处理的控制指令和参数发送到下位机,以保证下位机能够准确、及时的工作。同时,上位机还应该能够收集下位机反馈的各种状态信号,进行诊断和处理。由此可见,可靠、快速地实现上、下位机之间的数据通讯是整个数控系统可靠、有效工作的关键。
本文所研究的数控系统是以IPC作为上位机,以步进电机驱动卡为下位机,软件开发平台为Windows95。IPC作为系统的信息管理部分,接受用户命令并以查询方式实现与步进电机驱动卡之间的数据通讯。步进电机驱动卡是系统的实时控制部分,以中断方式响应IPC的通讯信号,并对所接受的控制指令进行插补运算以驱动步进电机,完成刀具几何轨迹、运动速度和电机升降速控制。
1 步进电机驱动卡的特点和通讯接口电路的原理
步进电机驱动卡是基于PC总线的一个智能插卡,本身带有8031CPU。它通过接收IPC的控制指令,完成对步进电机的开环或半闭环控制,同时能接受主轴脉冲发生器输出的脉冲信号,控制车床车削螺纹加工,是联系伺服系统和IPC的纽带。由于工控机和驱动卡之间的每次通信的信息量大,传输速度高且是短途通讯,故采用并行口的通讯方式。
驱动卡的通讯接口电路如图1所示,左边的总线为PC机的AT总线(80286以上机型),驱动卡插入PC机的I/O扩展槽中,两片8255A作为8031和PC机之间的通信接口,27512作为EPROM,存放8031的程序,74LS373为地址锁存器,74LS138(1)为地址译码器,输出8255A(2)的片选信号,8255A(1)的由74LS138(2)进行片选(图中未画出)。
标志功能字 | 定义 | 标志功能字 | 字义 |
0 | 机床点动控制 | 8 | 暂停/重新启动 |
1 | 机床手动加工 | 9 | 机床回零点 |
2 | 手动加工结束 | 10 | 改变进给速度 |
4 | 机床进行直线加工 | 11 | 机床进行间隙补偿 |
5 | 机床进行圆弧加工 | 12 | 查询程序段是否加工结束 |
6 | 机床进行螺纹加工 | 13 | 查询刀具位置 |
7 | 停止自动加工 |
|
|
当上位机查询下位机的状态时,首先上位机要发送该查询指令的标志功能字(如表1中12~13),在得到下位机的确认信号之后,上位机利用循环来等待下位机将所要查询的数据反馈到8255A(2)的端口上。一旦数据到达8255A(2)的端口,上位机将数据读回并结束此次查询。 3 Windows95平台下查询式通讯程序的研究 通讯程序在执行过程中是作为车床数控系统软件相应进程的一个线程而存在。由于Windows95是一个多任务并行处理的操作系统,它对每一个线程所分配的时间是有限的,如果某一线程的时间片时间被用完,则Windows95会强行收回CPU的控制权,再进行下一次分配。如果有一个线程占用CPU时间过长(如采用死循环的方式),超过了时间限额而Windows95不能收回CPU的控制权则Windows95系统将会崩溃。由于IPC上的通讯程序采用了查询方式,其核心是在程序中利用循环来等待下位机将上位机所要求的数据反馈到8255A(2)的端口上,所以通讯程序的等待时间应该设计在时间限额之内。 图2 SendChar()函数流程图 图3 RecvChar()函数流程图 由于下位机对不同指令的响应速度有所不同,这样导致上位机所需的等待时间可能不一样。如果在时间限额内未完成一次数据交互,上位机将临时放弃CPU的控制权,然后申请第二次查询,直到得到所要求的信息。实验表明:绝大多数次数据交互都可以在时间限额内完成。 4 结束语 通讯问题是主从式数控系统的一个关键问题,它直接决定了系统的可靠性。本文所介绍的通讯协议和通讯方法已经应用于实践,长时间的现场工作表明:该方法能够保证上下位机进行畅通、准碓的数据通讯,并能够满足系统实时性要求。 参考文献 |