2.5.3 PLC的基本指令系统
本文讲的是工业控制网络安全技术与实践一2.5.3 PLC的基本指令系统,PLC的编程语言与一般计算机语言相比,具有明显的特点,它既不同于高级语言,也不同于一般的汇编语言,它既要满足易于编写,又要满足易于调试的要求。目前,还没有一种对各厂家产品都能兼容的编程语言。各公司的产品有它们自己的编程语言,分别介绍几种典型的编程语言如下。
1.欧姆龙CPM系列小型PLC的基本指令[17]
(1)LD和LD NOT指令
LD和LD NOT指令用于决定指令执行的第一个条件。LD指令表示指令执行的条件;LD NOT指令表示将指令执行的条件取反。LD、LD NOT指令只能以位为单位进行操作,且不影响标志位。
(2)OUT和OUT NOT指令
OUT和OUT NOT用于输出指定位的状态。OUT指令输出逻辑运算结果,OUT NOT 指令将逻辑运算结果取反后再输出。
(3)AND和AND NOT指令
AND指令表示操作条件和它的位操作数之间进行逻辑“与”运算;AND NOT指令表示将它的位操作数之间取“反”后再与其前面的操作条件进行逻辑“与”运算。
(4)OR和OR NOT指令
OR指令表示操作条件和它的位操作数之间进行逻辑“或”运算;OR NOT指令表示后面的位操作数取“反”后再与其前面的操作条件进行逻辑“或”运算。
(5)AND LD指令
AND LD指令用于两个逻辑块的串联连接,即对逻辑块进行逻辑“与”操作。
(6)OR LD指令
OR LD指令用于两个逻辑块的并联连接,即对逻辑块进行逻辑“或”操作。
(7)置位和复位指令(SET和RESET)
当SET指令的执行条件为ON时,使指定继电器位置为ON;当执行条件为OFF时,SET指令不改变指定继电器的状态。当RESET指令的执行条件为ON时,使指定继电器复位为OFF;当执行条件为OFF时,RESET指令不改变指定继电器的状态。
(8)保持指令(KEEP(11))
根据置位输入和复位输入条件,KEEP用来保持指定继电器M保持为ON状态或OFF状态。当置位输入端为ON时,继电器M保持为ON状态,直至复位输入端为ON时使其变为OFF。
(9)上升沿微分和下降沿微分指令(DIFU(13)/DIFD(14))
当执行条件由OFF变为ON时,上升沿微分DIFU使指定继电器在一个扫描周期内为ON;当执行条件由ON变为OFF时,下降沿微分DIFD使指定继电器在一个扫描周期内为ON。
(10)空操作指令(NOP(00))
空操作指令用来取消某一步操作。此指令无操作数,无梯形符号。
(11)结束指令(END(01))
END(01)指令表示程序结束,放在程序的最后。
2. FX系列PLC指令
FX系列PLC共有基本指令20条,步进指令2条,应用指令85条。基本指令和应用指令可通过增加后缀或前缀进行扩充,若考虑此种情况,则实际基本指令有27条,应用指令有245条。
(1)逻辑取、输出线圈驱动指令(LD、LDI、OUT)
3个指令的介绍如表2-1所示。
说明:
① LD、LDI指令用于将触点连接到母线上,逻辑运算开始,连接触点可以是X、Y、M、S、T、C继电器的触点。与ANB指令配合,在分支起点处也可使用。
② OUT指令是对Y、M、S、T、C继电器线圈的驱动指令。
③ 并行输出指令可以多次使用。
④ LD、LDI指令的程序步数为1步。OUT指令的程序步数与输出元件有关,若为输出继电器及通用辅助继电器,其步数为1;若为特殊辅助继电器,其步数为2;若为定时器及16位计数器,其步数为3;若为32位计数器,其步数为5。
⑤ 对定时器的定时线圈和计数器的计数线圈,在OUT指令后还必须设定常数K。
(2)触点串联指令(AND、ANI)
AND、ANI指令用于触点的串联连接,对串联触点的个数没有限制。具体如表2-2所示。
(3)触点并联指令(OR、ORI)
OR、ORI指令用于1个触点的并联连接。OR、ORI指令是从当前步开始,对前面的LD、LDI指令并联连接,对并联的次数没有限制。具体如表2-3所示。
(4)电路块串、并联指令(ANB、ORB)
ORB、ANB指令均为无操作对象的指令。ORB、ANB指令可以重复使用,但由于LD、LDI指令的重复次数有限制,注意电路块的串、并联应在8次以下。两个以上触点串联连接的电路称为串联电路块。串联电路块并联连接时,分支的开始用LD、LDI指令,分支的结束用ORB指令。两个以上触点并联连接的电路称为并联电路块。分支电路并联电路块与前面电路串联连接时,使用ANB指令。分支的开始用LD、LDI指令,并联电路块结束后用ANB指令,表示与前面的电路串联。具体如表2-4所示。
(5)多重输出指令(MPS、MRD、MPP)
在PLC中有11个存储器,用来存储运算的中间结果,称作堆栈存储器。其中,使用一次MPS指令便将此时的运算结果压入堆栈的第一层,同时原来存在第一层的数据被压入第二层,以此类推。使用一次MPP指令,将第一层的数据读出,同时其他数据依次上移。MRD指令只是用来读第一层的数据,堆栈内的所有数据均不移动。MPS、MPP指令必须成对使用,而且连续使用次数应少于11次。MPS、MPP、MRD指令都是不带操作对象的指令。具体如表2-5所示。
(6)置位与复位指令(SET、RST)
对同一元件可多次使用SET、RST指令,但最后一次执行的结果才有效。SET指令使元件的结果置位(置“1”),其操作对象可以是Y、M、S。RST指令使元件的结果复位(清“0”),其操作对象可以是Y、M、S、T、C、D、V、Z。具体如表2-6所示。
(7)脉冲输出指令(PLS、PLF)
PLS、PLF指令的操作元件为输出继电器及通用辅助继电器。使用PLS指令,其后的Y、M元件仅在驱动输入接通后的1个扫描周期内动作(置“1”),随后立即清零。使用PLF指令,其后的Y、M元件仅在驱动输入断开后的1个扫描周期内动作(置“1”),随后立即清零。具体如表2-7所示。
(8)NOP及END指令
NOP指令主要用于预先插入程序中,在修改或追加程序时可减少步序号的变化。将程序全部清除时,全部指令变为空操作指令。END指令表示程序的结束。在调试程序时,可分段加入END指令,以便进行分段检查。具体如表2-8所示。
(9)其他基本指令
1)9个基本指令。
MC、MCR指令:主控及主控复位指令,可用于公共串联触点的连接及清除。
INV指令:反转指令,即对前面的运算结果取反。
LDP、LDF、ANDP、ANDF、ORP、ORF指令:分别由LD、AND、OR 3个指令加后缀而来,其中“P”表示上升沿(“0”变为“1”),“F”表示下降沿(“1”变为“0”),这几个指令分别表示在前面结果的上升沿或下降沿接通一个扫描周期。
2)步进指令。
步进指令只有STL、RET两条,用来进行流程图程序的编制。步进阶梯指令(STL)是利用内部软元件S在顺控程序上面进行工序步进式控制的指令,STL指令的意义为激活某状态,有建立子母线的功能。返回指令(RET)表示状态(S)流程的结束,用于返回主母线,状态转移程序的结尾必须使用RET指令。
3)应用指令。
应用指令又称功能指令,主要包括程序流向控制指令、算术与逻辑运算指令、循环与移位指令、数据处理指令、高速处理指令、外部输入输出处理指令、浮点运算指令等。这些功能指令实际上就是一个一个功能不同的子程序,某些复杂运算只需一条功能指令即可完成,大大提高了PLC的实用性。
原文标题:工业控制网络安全技术与实践一2.5.3 PLC的基本指令系统