随着数控设备的普及,无论是从事数控设备的制造还是数控设备维修的专业人员,对PLC控制程序的特点和应用都需要熟练的掌握。在这里,我们对国内目前常用的发那科0i、西门子802D、华中08 软件三种数控系统,在PLC编程中各自的特点、区别及应用,作一个简单的介绍。
1 三种数控系统PLC指令的特点
PLC编程常用的位操作、定时、计数、比较、运算、传送、赋值、跳转等指令在三种系统中的作用及功能都大致相同。而发那科和华中08 软件系统,为了便于机床PLC编程简化,增加了不少的功能指令。比如说发那科和华中系统中就提供了专门为刀库或刀架选刀控制的ROT旋转功能指令,在PLC程序中,运用ROT功能指令,就很方便地实现捷径选刀功能,相比西门子系统编写的捷径选刀判断程序简化了许多。另外,在发那科系统中,还应用了PMC 与CNC之间读、写窗口数据的读写指令WINDR(W),PMC 不仅能很方便地读取CNC的一些信息(如当前日期),而且可通过PMC向CNC 写入更多的窗口信息(如参数、宏变量等)。
应用举例:发那科0i 系统,通过编写PLC程序读取系统当前的时间。
其中D500为数据地址,它存放功能代码。如果本程序要读取当前系统时间,则将D500 写入系统当前时间的功能代码151,并在数据表中,将D500 对应的参数设为0,类型设为1,数据设为5,D510 的对应的参数设为0,类型设为1,数据设为100。当ACT=1 时,执行WINDR 功能后,数据表中的D510,D512,D514 的数据将会分别更新为当前系统的年份、月份和日期。
华中08 软件系统中的PLC指令基本上与发那科一致,只不过是功能指令比发那科少了许多。
2 三种数控系统PLC程序的结构特点
西门子PLC程序分主程序、子程序块,在主程序块中编写调用各子程序块,在子程序中可采用局部变量进行编程。而发那科和华中系统,将PLC程序划分为第一级(优先)和第二级优先顺序两级程序,第一级优先执行,扫描时间比第二级短。一般要求第一级程序尽可能短,否则将延长整个程序的执行时间。特别是对于华中08软件系统,在尽量缩短第一级程序的同时,应将需要高速处理的信号和程序段必须放在第一级程序段进行处理。比如机械手刀库中机械手扣刀位、停止位等一些短暂信号的程序段,必须要放到第一级程序中,否则会引起误动作。
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 编程的特点、指令功能及应用技巧等方面具备较为熟练的掌握,运用起来就迎刃而解了。
(审核编辑: 沧海一土)