3 PLC程序对M代码的处理
三种系统在PLC 程序中对执行M 代码的处理方式完全不同。西门子系统由于程序执行M代码时,对应的PLC变量只保持一个PLC周期,如果在PLC程序中对执行M代码不作处理,运行程序会在执行M指令后,不管M代码指定的动作是否执行,都将继续往下执行程序。所以,对于西门子系统PLC 在接到执行M指令时,必须对系统作一个进给保持和禁止读入处理,只有在M 指令指定的动作执行完之后,才能取消进给保持和禁止读入,否则,程序会一直往下执行。而对于发那科系统,M代码的执行,是通过PLC 程序中的译码指令功能来获得的,如果运行程序执行了M 指令后,没有从PMC中得到M指令完成信号(G4.3),程序会一直停在M指令上。所以PLC 程序在处理M 指令时,一定要在M 指令指定的动作完成后,向系统发出一个M 指令完成信号(G4.3),告知系统M 指令已经完成,驱动系统继续往下执行程序。对于华中08软件系统,与发那科系统一样,也需要得到一个M指令完成信号来结束执行M指令,但这个完成信号不是由PLC 程序给出,而是通过在系统画面上填写辅助功能表格的内容来完成的。具体操作如下:系统设置———辅助功能,在这个画面上的表格中,填写M 指令,在对应的“等待信号”栏中填写的信号地址就是M指令完成信号的地址。不需在PLC程序中作处理。
应用举例:西门子802D系统执行M54(刀库前进)的程序
4 运行程序与PLC信息的交流
数控设备中经常需要加工程序或宏程序与PLC 交换信息。比如换刀宏程序中,要读主轴上是否有刀,即PLC中一个变量的状态。发那科系统在处理类似问题时,通常都是通过系统的变量来完成的。其中程序中使用的变量#1000-#1031(只读)对应PLC 程序中的G54.0-G55.7,#1100-#1131(读/写)对应PLC 程序中的F54.0-F55.7。华中系统此功能与发那科系统基本一致。西门子系统除采用一些特定的系统变量外,在系统中还设立了一组公共存储器变量V49000000-V490000512,它对应于程序中的$A-DBB [0]-$A-DBB[512]的值。此外,还可通过程序中H(H1、H2、H3)值的变化,从PLC 程序中读出对应变量的变化(V25000012.0-V25000012.2)。注意程序中每执行一次H 值的改变,对应的PLC变量只保持一个PLC 周期。
应用举例:在西门子802D 系统PLC 程序中,ATC=1 时,将值2 赋值给VB49000010。如果程序中执行到“IF SA_DBB[11]= 2 GOTOB _W_ACK”这条指令时,会自动跳转到“_W_ACK”程序段。
5 结束语
PLC的强大功能,为我们编写各种控制程序提供了保障。只要我们对PLC 编程的特点、指令功能及应用技巧等方面具备较为熟练的掌握,运用起来就迎刃而解了。