plc 梯形图是一种图形语言,不仅支持按位、字节、字、双字的方式访问存储区域,同时也支持整数、实数、字符串、表格等高级数据类型。指令用三种图形风格进行描述,图形的扫描分析由系统编译软件解释。图形的串、并联位置关系代表了逻辑控制条件的与、或关系。
在梯形逻辑指令中,其操作码是用图形元素表示的,该图素形象地表明了CPU做什么,表示PLC要完成的操作。其操作数的表示方法与语句指令相同。
(1)不带操作数的梯形图指令
如对逻辑操作结果( RLO)取反指令:┤ NOT├。
(2)位指令和逻辑运算比较指令格式
这是PLC的最基本的指令,指令根据存储器中的某一位的逻辑值做相应运算,运算的结果决定着后续指令能否被执行,或者说是否允许能流通过。该指令描述了存储区中位逻辑值的使用方法。
(3)盒指令格式
盒指令一般由指令名称、输入操作数和输出操作数3部分组成,是梯形图语言编程中大量使用的指令。
①功能框内的顶部标有该指令名称。指令名称描述了指令所要进行的操作,其作用相当于STL中的操作符,如ADD_I及SUB_I分别表示整数加法及整数减法指令。标题一般由两部分组成,前部分为指令的助记符,多为英语缩写词,如加法指令中ADDITION简写为ADD;后部分为参与运算的数据类型,如表中的I,表示为整数。另外常见的有,DI表示双整数,R表示实数,B表示字节,W表示字,DW表示双字等。
②指令的执行条件及执行形式:
·允许输入端/允许输出端。在梯形图中,功能框的EN端是使能输入端,功能框的使能输入端必须存在“能流”,即与之相连的逻辑运算结果为“1”(即EN=“1”),才能执行该功能框的功能。
在语句表程序中没有EN使能输入端,但是执行STL指令的条件是栈顶的值必须是“1”。
在梯形图中,功能框的ENO端是使能输出端,允许功能框的布尔量输出,用于指令的级联。
如果功能框使能输入端(EN)存在“能流”,且功能框准确无误地执行了其功能,那么使能输出端( ENO)将把“能流”传到下一个功能框,此时,ENO=“1”。如果执行过程中存在错误,那么“能流”就在出现错误的功能框终止,即ENO=“0”。
“使能”输出端可以作为其他功能指令的“使能”端或用于驱动线圈。当“使能”输出端作为其他功能指令的“使能”端时,可以实现功能指令的“串联”式控制,这一控制称为功能指令的“级连”。
·连续执行和脉冲执行。功能框中以“EN”表示的输人为指令执行的条件。在梯形图中,EN连接的为编程软元件触点的组合。从能流的角度出发,当触点组合满足能流达到功能框的条件时,该功能框所表示的指令就得以执行。需要说明的是,当功能框EN前的执行条件成立时,该指令在每个扫描周期都会被执行一次,这种执行方式称为连续执行。而在很多场合希望某些功能框只执行一次,即只在一个扫描周期中有效,这时可以用脉冲作为执行条件,这种执行方式称为脉冲执行。有些功能指令用连续执行和脉冲执行结果都一样,但有些指令两种执行方式结果会大不一样,如数据交换指令,原本是指两个数据单元中的数据交换位置,如多次换位,就有可能换位和不换位是一样的了。
因此,在编程时必须给功能框设定合适的执行条件。
·条件输入/无条件输入。
条件输入:在梯形图中,与“能流”有关的功能框和线圈不直接与左母线连接。
无条件输入:在梯形图、功能块图中,与“能流”无关的功能框或线圈直接与左母线连接,如LBL、NEXT、SCR、SCRE等。
·无允许输出端的指令。在梯形图中,无使能输出端(ENO)的指令方框不能用于级联,如
CALL SBR_N( N1,…)子程序调用指令和LBL、SCR等。
某些功能指令框右侧设有ENO使能输出,它是LAD功能框的布尔输出,如果使能输入EN有能流并且指令被正常执行,ENO输出会将能流传递给下一个元素;如果指令执行出错,则ENO的输出为0。
③数据输入端和输出端操作数类型及长度。
数据输入端:功能指令图的IN输入端称为功能指令的数据输入端,用于指定功能指令的操作数。根据实际需要,操作数可以是单个或多个(分别以IN1、IN2表示)的常数、存储器地址等。
结果输出端:功能指令图的OUT输出端称为功能指令的结果输出端,用于指定功能指令的执行结果存储位置。
操作数是功能指令涉及或产生的数据。功能框及语句中用IN及OUT表示的即为操作数。操作数又可分为源操作数、目标操作数及其他操作数。源操作数是指令执行后不改变其内容的操作数。目标操作数是指令执行后将改变其内容的操作数。从梯形图符号来说,功能框左边的操作数通常是源操作数,功能框右边的操作数为目标操作数,如加指令梯形图符号中IN1、IN2为源操作数,OUT为目标操作数。有时源操作数及目标操作数也可使用同一存储单元。操作数中还有辅助操作数,常用来对源操作数和目标操作数做出补充说明。
操作数的类型及长度必须和指令相配合。S7系列PLC的数据存储单元有I、Q、V、M、SM、S、L、AC等多种类型,长度表达形式有字节(B)、字(W)、双字(DW),需根据需要选用。各操作数适合的数据类型及长度可在指令表说明部分查阅。