三、开放式数控系统的PLC
随着计算机技术戒速发展,大量先进的高性能计算机被直接用作数控系统的控制器。基于高性能产业控制计算机(IPC)为核心的开放式结构成为数控系统发展的主要方向。在保存传统数控系统的基础上,增加了更多的计算机系统的其他功能。其PLC常采用内置软PLC形式,PLC程序的开发一般使用高级语言。
INCON-M40F数控系统是台湾智研科技公司生产开放体系结构的数控系统,为用户提供了使用C++语言的内置PLC开发工具和DOS实时操纵系统平台。其PLC作为CNC实时控制程序的一部分,执行动作的同时必须和NC模块交换控制信息。PLC与NC通过动态连接库中的文件“plc. h”共享主CPU的资源。
数控系统在初始化时按照“plc.h”头文件的约定,在存储区专门为PLC定义了由NC向PLC传递的内部输进只读状态变量,以及由PLC发向NC的内部输出变量。这些状态变量是NC模块在运行过程中保存的数控系统和机床的运行状态,这些数据可以供NC模块在运行过程中使用和修改,假如PLC模块在运行中需要调用这些执行变量,则以只读方式进行。
状态变量的存取格式在数控系统开发时约定,编写PLC程序时应按照约定格式进行。NCON-M40F数控系统提供的执行变量有60多个,完全满足了PLC和CNC之间的信息交换需要。例如状态变量sts.state0.bRun为1时表示机床处于自动运行状态;sts.state0.bMdi为1时表示机床处于MDI运行状态。NC向PLC传递的内部输进变量全部是关于伺服轴的状态信息,用于在PLC要控制某伺服轴动作时判定该伺服轴是否处于执行状态。如状态变量Plc.spi0.bit.xplmt用于判定X轴是否处于负限位。PLC向NC发送的内部输出变量主要是机床操纵面板的控制信号以及经过PLC逻辑计算后需要NC模块发出控制指令的信息。如伺服轴的进给率用P1c.vto0.fvov0-Plc.vto0.fvov3四个二进制位信号来表示16种进给速度。PLC同机床本体之间通过物理I/0口相互联系。
某卧式加工中心PLC程序自动换刀模块中的C++程序片断如下:
case 6: ∥自动换刀子程序
if(!toolChangeDevice) ∥假如无换刀装置
1plc.mCode.finsh=l; ∥置M代码结束
Break;}
switch(T_C_STEP) ∥换刀过程
{case 0: ∥换刀第0步
if(spindleSate! =SPOMDLE_ OFF) ∥假如主轴不在停止状态
{……}
}
由于采用高级语言编程,与传统的梯形图等编程方法相比固然增加了编程的复杂性,但是编程的灵活性大大增加,而且使得系统功能更加强大。在编制PLC控制程序时需仔细阅读数控系统关于PLC的具体说明[6]。
四、结论
传统的数控系统结构无论是内置式还是外置式PLC结构形式,都不同程度地存在程序兼容性差、硬件要求高等缺点,而开放式数控系统结构可以采用同一的数据结构和开放的外部接口,逻辑结构PLC和CNC之间的信息交换方便,信息量大。PLC控制功能扩充不依靠于具体的硬件,编程元件的数目、种类可根据需要动态添加,无需更改硬件,降低整个数控系统的本钱。
在编制PLC程序时,无论是针对哪一种PLC信息交换结构,首先必须弄清CNC、PLC、机床三者之间的关系,公道的设计数控机床控制电路编制PLC控制程序,使三者构成有机的整体,控制数控机床有条不紊地下作。