图2-16
表2-3比较指令
STL
LAD
功能
LD□×IN1,IN2
比较触点接起始总线
LDIN
A□×IN1,IN2
比较触点的“与”
LDIN
O□×IN1,IN2
比较触点的“或”
例2-8根据图2-17梯形图,说明其功能。
当VB0=VB1时,Q0.0为1;或当VB2>VB3时,Q0.0为1。
八、取反指令及空操作指令
1.取反指令NOT:
该指令将复杂逻辑结果取反,它无操作数。
2.空操作指令NOP:
该指令为空操作,它对用户程序的执行没有影响。
图2-17
表2-4取反指令及空操作指令
九、程序控制指令
1.结束指令END和MEND
END:
条件结束指令,执行条件成立<左侧逻辑值为1)时结束主程序,返回主程序起点。
MEND:
无条件结束指令,结束主程序,返回主程序起点。
指令不含操作数。
图2-18结束指令图2-19停止指令
2.停止指令STOP
STOP指令的执行条件成立<左侧逻辑值为1)时,可以使主机CPU的工作方式由RUN切换到STOP,从而立即中止用户程序的执行。
指令不含操作数。
3.跳转指令JMP与标号指令LBL
JMP指令的执行条件成立时,使程序的执行跳转到指定的标号。
LBL指令指定跳转的目标标号n。
操作数n:
0~255。
图2-30
作业:
P44,2,5,6
第三章数字量控制系统梯形图程序设计方法
第一节梯形图的经验设计法
一、复杂逻辑指令应用
复杂逻辑指令主要有电路块的串/并联及逻辑堆栈操作。
例1:
写出图5-23梯形图的语句表。
图5-23
二、根据梯形图和给出时序,画出输出的时序图。
例2:
图5-24
例3:
图5-25
三、定时器指令的应用
例4:
延时接通断开电路
图5-26
例5:
闪烁电路
图5-27
作业:
P117,5-4,5-5,5-6
第二节S7-200PLC的基本指令应用程序分析<二)
例6:
指出图5-28的错误。
图5-28
分析:
I0.3的常开触点不能放在线圈的右边,梯形图中不能出现两个Q0.3的线圈,M0.8中的位地址不能大于7,立即输入触点只能用于输入位I,Q0.3的线圈不能直接连接在左侧母线上,T32是1ms定时器,其常闭触点不能接在它自己的IN输入端,T32无设定值。
例7:
分析图5-29所示梯形图,详细说明梯形图的功能。
图5-29
分析:
T37——定时时间5s,I0.0接通后,T37开始计时,5s时间到,C48计数一次,计数40次,即经过40*5s=200s后,C48位为1,常开触点接通,Q0.0为1。
I0.1用于复位C48。
例8:
用接在I0.0输入端的光电开关检测传送带上通过的产品,有产品通过时I0.0为ON,如果在10s内没有产品通过,由Q0.0发出报警信号,用I0.1输入端外接的开关解除报警信号。
画出梯形图,并写出对应的语句表。
梯形图:
语句表:
LDNI0.0
TONT37,100
LDT37
ANI0.1
=Q0.0
例9:
在按钮I0.0按下后Q0.0变为1状态并保持<图5-30),I0.1输入3个脉冲后<用C1计时),T37开始定时,5s后Q0.0变为0状态,同时C1复位,在可编程序控制器刚开始执行用户程序时,C1也被复位,设计梯形图。
图5-30
梯形图:
作业:
P118,5-7,5-8,5-9
第三节S7-200PLC的顺序控制指令
一、顺序控制指令
1.顺序功能图
顺序功能图又简称功能图,它是一种描述顺
序控制系统的图解表示方法,是专为工业顺序控
制程序设计的一种功能说明性语言。
它能完整地
描述控制系统的工作过程、功能和特性。
功能图主要由步、转移条件及动作三要素组
成。
<1)步
表示了控制系统中的某个状态,用矩形<单线或双线)表示。
当系统正处于某一步所在的阶段时,该步处于活动状态,称该步为“活动步”。
<2)转移条件
当某一活动步满足一定的条件时,转换为下一步。
步与步之间用一个有向线段来表示转移的方向,有向线段上再用一段横线表示转移的条件。
注意:
当有向线段从下向上画时,必须画上箭头,以表示方向;其它情况可省略箭头。
<3)动作
在每个稳定的活动步下,可能有相应的动作。
2.顺序控制指令
二、功能图的主要类型
1.单流程
其动作过程是一个一个完成的。
功能图中的每一个状态仅连接一个转移,每个转移也仅连接一个状态。
2.并行分支/汇合
在顺序控制流程中,一个顺序控制状态流必须分成两个或多个不同分支控制状态流,这就是并行流程分支。
当多个控制状态流产生的结果相同时,可以将这些控制状态流合并成一个控制状态流,即并行分支的汇合。
3.选择分支/汇合
在顺序控制流程中,具有多条分支控制状态流需要选择,即分支选择。
它是一个控制流可能转入多个分支控制流中的某一个,但不允许多路分支同时执行。
实际流程中到底进入哪一个分支,取决于控制流前面的转移条件是否满足。
第四节S7-200PLC的功能指令
一、功能指令的一般形式
功能指令的主体是功能框。
框题头是指令的助记符,ADD-加法,I-整数。
功能框左上方与EN相连的是执行条件。
功能框左边的操作数通常是源操作数,功能框右边的操作数通常是目标操作数。
操作数的长度应符合规定。
功能指令可处理的数据包括位、实数(R=32bit>。
ENO为功能指令成功执行的标志位输出,即功能指令正常执行,ENO=1。
二、数学运算指令
1.加法指令
当加法允许信号EN=1时,把两个输入端IN1,IN2指定的数相加,结果送到输出端OUT指定的存储单元中。
加法指令可分为整数<_I)、双整数<_DI)、实数<_R)加法指令。
它们各自对应的操作数数据类型分别是有符号整数、有符号双整数、实数。
对标志位的影响:
SM1.0<零),SM1.1<溢出),SM1.2<负)。
2.减法指令
当减法允许信号EN=1时,被减数IN1与减数IN2相减,其结果送到输出端OUT指定的存储单元中。
减法指令可分为整数<_I)、双整数<_DI)、实数<_R)减法指令。
它们各自对应的操作数数据类型分别是符号整数、有符号双整数、实数。
对标志位的影响:
SM1.0<零),SM1.1<溢出),SM1.2<负)。
3.乘法指令
当乘法允许信号EN=1时,把两个输入端IN1和IN2指定的数相乘,结果送到输出端OUT指定的存储单元中去。
乘法指令可分为整数<_I)、双整数<_DI)、实数<_R)乘法指令和整数完全乘法指令。
前三种指令各自对应的操作数的数据类型分别为有符号整数、有符号双整数、实数。
整数完全乘法指令,把输入端IN1与IN2指定的两个16位整数相乘,产生一个32位乘积,并送到输出端OUT指定的存储单元中去。
对标志位的影响:
SM1.0<零),SM1.1<溢出),SM1.2<负)。
4.除法指令
当除法允许信号EN=1时,被除数与IN1与除数IN2指定的数相除,结果送到输出端OUT指定的存储单元中去。
除法指令可分为整数<_I)、双整数<_DI)、实数<_R)除法指令和整数完全除法指令。
前三种指令各自对应的操作数分别为有符号整数、有符号双整数、实数。
整数完全除法指令,把输入端IN1与IN2指定的两个16位整数相除,产生一个32位结果,并送到输出端OUT指定的存储单元中去。
其中高16位是余数,低16位是商。
对标志位的影响:
SM1.0<零),SM1.1<溢出),SM1.2<负),SM1.3<除数为0)。
5.加1减1指令
当加1或减1指令允许信号EN=1时,把输入端IN数据加1或减1,并把结果存放到输出单元OUT。
加1和减1指令按操作数的数据类型可分为字节<_B)、字<_W)、双字<_DW)加1/减1指令。
字节加1和减1指令的操作数数据类型是无符号字节型,对标志位的影响:
SM1.0<零)、SM1.1(溢出>。
字、双字加1和减1指令的操作数的数据类型分别是有符号整数、有符号双字整数,对标志位的影响:
SM1.0<零),SM1.1<溢出),SM1.2<负)。
三、逻辑运算指令
逻辑运算指令的操作数均为无符号数。
1.逻辑“与”指令
当逻辑“与”允许信号EN=1时,两个输入端IN1和IN2的数据按位“与”,结果存入OUT单元。
逻辑“与”指令按操作数的数据类型可分字节<_B)、字<_W)、双字<_DW)“与”指令.
2.逻辑“或”指令
当逻辑“或”允许信号EN=1时,两个输入端IN1和IN2的数据按位“或”,结果存入OUT单元。
逻辑“或”指令按操作数的数据类型可分字节<_B)、字<_W)、双字<_DW)“或”指令。
3.逻辑“异或”指令
当逻辑“异或”允许信号EN=1时,两个输入端IN1和IN2的数据按位“异或”,结果存入OUT单元。
逻辑“异或”指令按操作数的数据类型可分字节<_B)、字<_W)、双字<_DW)“异或”指令
例根据下列逻辑运算指令的梯形图,写出运算结果。
4.取反指令
当取反允许信号EN=1时,对输入端IN指定的数据按位取反,结果存入OUT单元。
取反指令按操作数的数据类型可分为字节<_B)、字<_W)、双字<_DW)取反指令。
逻辑运算指令影响的标志位:
SM1.0(零>。
四、传送指令
1.数据传送指令
当数据传送允许信号EN=1时,输入端IN指定的数据传送到输出端OUT,传送过程中数据值保持不变。
数据传送指令按操作数的数据类型可分为字节<_B)、字<_W)、双字<_DW)、实数(_R>传送指令。
2.字节交换指令
当字节交换允许信号EN=1时,输入端IN指定字的高字节内容与低字节内容互相交换。
交换结果仍存放在输入端IN指定的地址中。
操作数数据类型为无符号整数。
五、移位指令
移位指令均为无符号数操作。
1.右移位指令
当右移位允许信号EN=1时,输入端IN指定的数据右移N位,结果存入OUT单元。
右移位指令按操作数的数据类型可分为字节<_B)、字<_W)、双字<_DW)右移位指令。
2.左移位指令
当左移位允许信号EN=1时,输入端IN指定的数据左移N位,结果存入OUT单元。
左移位指令,按操作数的数据类型可分为字节<_B)、字<_W)、双字<_DW)左移位指令。
字节、字、双字移位指令的实际最大可移位数分别为8、16、32。
右移位和左移位指令,对移位后的空位自动补零。
移位后SM1.1(溢出>的值就是最后一次移出的位值。
如果移位的结果是0,SM1.0置位。
3.移位寄存器指令
移位寄存器指令把输入端DATA的数值送入移位寄存器,S_BIT指定移位寄存器的最低位,N指定移位寄存器的长度<从S_BIT开始,共N位)和移位的方向<正数表示左移,负数为右移)。
当移位寄存器允许输入端EN有效时,每个扫描周期寄存器各位都移动一位,移出的数据影响SM1.1。
N为字节型数据类型,移位寄存器的最大长度为64位。
操作数DATA、S_BIT为位型数据类型。
由移位寄存器的最低有效位S_BIT和移位寄存器的长度N可计算出移位寄存器最高有效位MSB.b的地址。
计算公式为
MSB.b={S_BIT的字节号+[<|N|-1+S_BIT的位号)÷8]的商}.{[<|N|-1+S_BIT的位号)÷8]的余数}
例如,如果S_BIT是V20.4,N是9,那么MSB.b是V21.4。
具体计算如下
MSB.b={V20+[(9-1+4>÷8]的商}.{[(9-1+4>÷8]的余数}=V21.4
例在下列移位寄存器的梯形图中,VB100中的内容为30H,移位后VB100中的内容为多少?
六、数据转换指令
1.BCD码与整数的转换
BCD_I指令在允许信号EN=1时,将输入端IN指定的0~9999范围内的BCD码转换成整数,并将结果存放到输出端OUT指定的存储单元中去。
I_BCD指令在允许信号EN=1时,将输入端IN指定的0~9999范围内的整数转换成BCD码,并将结果存放到输出端OUT指定的存储单元中去。
转换的数据均为无符号数。
指令影响的标志位:
SM1.6<非法BCD码)。
2.译码、编码指令
译码DECO指令在允许信号EN=1时,根据输入字节IN的低四位的二进制值所对应的十进制数<0~15),将输出字OUT的相应位置为1,其他位置0。
编码指令ENCO在允许信号EN=1时,将输入字IN中值为1的最低位的位号<0~15)编码成4位二进制数,写到输出字节OUT的低四位。