s7200指令.docx
《s7200指令.docx》由会员分享,可在线阅读,更多相关《s7200指令.docx(41页珍藏版)》请在冰豆网上搜索。
s7200指令
第四章S7-200的基本指令
4.1位操作指令
位操作类指令,主要是位操作及运算指令,同时也包含与位操作密切相关的定时器和计数器指令等。
位操作指令是PLC常用的基本指令,梯形图指令有触点和线圈两大类,触点又分常开触点和常闭触点两种形式;语句表指令有与、或及输出等逻辑关系,位操作指令能够实现基本的位逻辑运算和控制。
一、位操作指令介绍
1.逻辑取(装载)及线圈驱动指令LD/LDN
(1)指令功能
LD(load):
常开触点逻辑运算的开始。
对应梯形图则为在左侧母线或线路分支点处初始装载一个常开触点。
LDN(loadnot):
常闭触点逻辑运算的开始(即对操作数的状态取反),对应梯形图则为在左侧母线或线路分支点处初始装载一个常闭触点。
=(OUT):
输出指令,对应梯形图则为线圈驱动。
(2)指令格式如图4-1所示。
梯形图语句表
网络1
LDI0.0//装载常开触点
=Q0.0//输出线圈网络2
LDNI0.0//装载常闭触点
=M0.0//输出线圈
图4-1LD/LDN、OUT指令的使用
2.触点串联指令A(And)、AN(Andnot)
(1)指令功能A(And):
与操作,在梯形图中表示串联连接单个常开触点。
AN(Andnot):
与非操作,在梯形图中表示串联连接单个常闭触点。
(2)指令格式如图4-2所示
梯形图语句表
网络1
LDI0.0//装载常开触点
AM0.0//与常开触点
=Q0.0//输出线圈网络2
LDQ0.0//装载常开触点ANI0.1//与常闭触点
=M0.0//输出线圈
AT37//与常开触点
=Q0.1//输出线圈
图4-2A/AN指令的使用
3.触点并联指令:
O(Or)/ON(Ornot)
(1)指令功能O:
或操作,在梯形图中表示并联连接一个常开触点。
ON:
或非操作,在梯形图中表示并联连接一个常闭触点。
(2)指令格式如图4-3所示
梯形图语句表
网络1
LDI0.0
OI0.1
ONM0.0
=Q0.0
网络2LDNQ0.0AI0.2
OM0.1
ANI0.3
OM0.2
=M0.1
图4-3O/ON指令的使用
4.电路块的串联指令ALD
(1)指令功能ALD:
块“与”操作,用于串联连接多个并联电路组成的电路块。
(2)指令格式如图4-4所示
梯形图语句表
ALD
LDI1.0//装入常开触点
OI1.1//或常开触点
LDI1.2//装入常开触点
OI1.3//或常开触点
ALD//块与操作
=Q0.0//输出线圈
图4-4ALD指令使用
5.电路块的并联指令OLD
(1)指令功能OLD:
块“或”操作,用于并联连接多个串联电路组成的电路块。
(2)指令格式如图4-5所示。
梯形图语句表
LDI0.0//装入常开触点
AI0.1//与常开触点
LDI0.2//装入常开触点
AI0.3//与常开触点
OLD//块或操作
LDNI0.4//装入常闭触点
AI0.5//与常开触点
OLD//块或操作
=Q0.0//输出线圈
图4-5OLD指令的使用
6.置位/复位指令S/R
(1)指令功能
置位指令S:
使能输入有效后从起始位S-bit开始的N个位置“1”并保持。
复位指令R:
使能输入有效后从起始位R-bit开始的N个位清“0”并保持。
(2)指令格式如表4-1所示,用法如图4-6所示。
STL
LAD
SS-bit,N
S-bit
─(S)N
RR-bit,N
R-bit
─(R)N
表4-1S/R指令格式
网络1
LDI0.0
SQ0.0,1
…
网络4
LDI0.1
RQ0.0,1
图4-6S/R指令的使用
【例4-1】图4-6所示的置位、复位指令应用举例及时序分析如图4-7所示。
I0.0
图4-7S/R指令的时序图
7.边沿触发指令EU/ED
(1)指令功能
EU指令:
在EU指令前有一个上升沿时(由OFF→ON)产生一个宽度为一个扫描周期的脉冲,驱动其后输出线圈。
ED指令:
在ED指令前有一个下降沿时(由ON→OFF)产生一个宽度为一个扫描周期的脉冲,驱动其后输出线圈。
(2)指令格式如表4-2所示,用法如图4-8。
表4-2EU/ED指令格式
STL
LAD
操作数
EU(EdgeUp)
无
ED(EdgeDown)
无
网络1
网络3
LD
I0.0
//装入常开触点
LD
I0.1
//装入
EU
//正跳变
ED
//负跳变
=
M0.0
//输出
=
M0.1
//输出
网络2
网络4
LD
M0.0
//装入
LD
M0.1
//装入
S
Q0.0,1
//输出置位
R
Q0.0,1
//输出复位
图4-8EU/ED指令的使用
时序分析如图4-9。
I0.0的上升沿,经触点(EU)产生一个扫描周期的时钟脉冲,驱动输出线圈M0.0导通一个扫描周期,M0.0的常开触点闭合一个扫描周期,使输出线圈Q0.0置位为1,并保持。
I0.1的下降沿,经触点(ED)产生一个扫描周期的时钟脉冲,驱动输出线圈M0.1导通一个扫描周期,M0.1的常开触点闭合一个扫描周期,使输出线圈Q0.0复位为0,并保持。
I0.0M0.0
I0.1
M0.1Q0.0
图4-9EU/ED指令时序分析
二、基本位操作指令应用举例
【例4-2】抢答器程序设计
(1)控制任务:
有3个抢答席和1个主持人席,每个抢答席上各有1个抢答按钮和一盏抢答指示灯。
参赛者在允许抢答时,第一个按下抢答按钮的抢答席上的指示灯将会亮,且释放抢答按钮后,指示灯仍然亮;此后另外两个抢答席上即使在按各自的抢答按钮,其指示灯也不会亮。
这样主持人就可以轻易的知道谁是第一个按下抢答器的。
该题抢答结束后,主持人按下主持席上的复位按钮(常闭按钮),则指示灯熄灭,又可以进行下一题的抢答比赛。
工艺要求:
本控制系统有4个按钮,其中3个常开SB1、SB2、SB3,一个常闭
SB0。
另外,作为控制对象有3盏灯L1、L2、L3。
(2)I/O分配表输入
I0.0SB0//主持席上的复位按钮(常闭)I0.1SB1//抢答席1上的抢答按钮
I0.2SB2//抢答席2上的抢答按钮I0.3SB3//抢答席3上的抢答按钮
输出
Q0.1L1//抢答席1上的指示灯Q0.2L2//抢答席2上的指示灯Q0.3L3//抢答席3上的指示灯
(3)程序设计
抢答器的程序设计如图4-10所示。
本例的要点是:
如何实现抢答器指示灯的“自锁”功能,即当某一抢答席抢答成功后,即使释放其抢答按钮,其指示灯仍然亮,直至主持人进行复位才熄灭。
若I0.0接常开按钮,将如何修改此程序呢?
图4-10抢答器程序梯形图
三、定时器指令1.定时器指令介绍
S7-200系列PLC的定时器是对内部时钟累计时间增量计时的。
每个定时器均有一个16位的当前值寄存器用以存放当前值(16位符号整数);一个16位的预置值寄存器用以存放时间的设定值;还有一位状态位,反应其触点的状态。
(1)工作方式
S7-200系列PLC定时器按工作方式分三大类定时器。
其指令格式如表4-3所示。
表4-3定时器的指令格式
LAD
STL
说明
TONT××,PT
TON—通电延时定时器TONR—记忆型通电延时定时器TOF—断电延时型定时器
IN是使能输入端,指令盒上方输入定时器的编号(T××),范围为T0-T255;PT是预置值输入端,最大预置值为32767;PT的数据类型:
INT;
PT操作数有:
IW,QW,MW,SMW,T,C,VW,SW,AC,常数
TONRT××,PT
TOFT××,PT
(2)时基
按时基脉冲分,有1ms、10ms、100ms三种定时器。
不同的时基标准,定时精度、定时范围和定时器刷新的方式不同
•定时精度和定时范围
定时器的工作原理是:
使能输入有效后,当前值PT对PLC内部的时基脉冲增1计数,当计数值大于或等于定时器的预置值后,状态位置1。
其中,最小计时单位为时基脉冲的宽度,又为定时精度;从定时器输入有效,到状态位输出有效,经过的时间为定时时间,即:
定时时间=预置值×时基。
当前值寄存器为16bit,最大计数值为32767,如表4-4所示。
可见时基越大,定时时间越长,
但精度越差。
表4-4定时器的类型
工作方式
时基(ms)
最大定时范围(s)
定时器号
TONR
1
32.767
T0,T64
10
327.67
T1-T4,T65-T68
100
3276.7
T5-T31,T69-T95
TON/TOF
1
32.767
T32,T96
10
327.67
T33-T36,T97-T100
100
3276.7
T37-T63,T101-T255
•1ms10ms100ms定时器的刷新方式
1ms定时器每隔1ms刷新一次与扫描周期和程序处理无关即采用中断刷新方式。
因此当扫描周期较长时,在一个周期内可能被多次刷新,其当前值在一个扫描周期内不一定保持一致。
10ms定时器则由系统在每个扫描周期开始自动刷新。
由于每个扫描周期内只刷新一次,故而每次程序处理期间,其当前值为常数。
100ms定时器则在该定时器指令执行时刷新。
下一条执行的指令,即可使用刷新后的结果,非常符合正常的思路,使用方便可靠。
但应当注意,如果该定时器的指令不是每个周期都执行,定时器就不能及时刷新,可能导致出错。
(3)定时器指令工作原理
•通电延时定时器(TON)指令工作原理
程序及时序分析如图4-11所示。
当I0.0接通时即使能端(IN)输入有效时,驱动T37开始计时,当前值从0开始递增,计时到设定值PT时,T37状态位置1,其常开触点T37接通,驱动Q0.0输出,其后当前值仍增加,但不影响状态位。
当前值的最大值为32767。
当I0.0分断时,使能端无效时,T37复位,当前值清0,状态位也清0,即回复原始状态。
若I0.0接通时间未到设定值就断开,T37则立即复位,Q0.0不会有输出。
•记忆型通电延时定时器(TONR)指令工作原理
使能端(IN)输入有效时(接通),定时器开始计时,当前值递增,当前值大于或等于预置值(PT)时,输出状态位置1。
使能端输入无效(断开)时,
当前值保持(记忆),使能端(IN)再次接通有效时,在原记忆值的基础上递增计时。
注意:
TONR记忆型通电延时型定时器采用线圈复位指令R进行复位操作,当复位线圈有效时,定时器当前位清零,输出状态位置0。
程序分析如图4-12所示。
如T3,当输入IN为1时,定时器计时;当IN为0时,其当前值保持并不复位;下次IN再为1时,T3当前值从原保持值开始往上加,将当前值与设定值PT比较,当前值大于等于设定值时,T3状态位置1,驱动Q0.0有输出,以后即使IN再为0,也不会使T3复位,要使T3复位,必须使用复位指令。
LDI0.0TONT37,100LDT37
=Q0.0
图4-11通电延时定时器工作原理分析
LDI0.0TONRT3,100LDI0.1
RT3,1
LDT33
=Q0.0
图4-12TONR记忆型通电延时型定时器工作原理分析
•断电延时型定时器(TOF)指令工作原理
断电延时型定时器用来在输入断开,延时一段时间后,才断开输出。
使能端(IN)输入有效时,定时器输出状态位立即置1,当前值复位为0。
使能端(IN)断开时,定时器开始计时,当前值从0递增,当前值达到预置值时,定时器状态位复位为0,并停止计时,当前值保持。
如果输入断开的时间,小于预定时间,定时器仍保持接通。
IN再接通时,定时器当前值仍设为0。
断电延时定时器的应用程序及时序分析如图4-13所示。
LDI0.0
TOFT37,+30LDT37
=Q0.0
I0.0
PT
T37当前值
Q0.0
3s
图4-13TOF断电延时定时器的工作原理
2、定时器指令应用举例
【例4-3】:
用接在I0.0输入端的光电开关检测传送带上通过的产品,有产品通过时I0.0为ON,如果在10s内没有产品通过,由Q0.0发出报警信号,用I0.1输入端外接的开关解除报警信号。
对应的梯形图如图4-14所示。
图4-14梯形图
【例4-4】:
闪烁电路
图4-15中I0.0的常开触点接通后,T37的IN输入端为1状态,T37开始定时。
2S后定时时间到,T37的常开触点接通,使Q0.0变为ON,同时T38开
始计时。
3s后T38的定时时间到,它的常闭触点断开,使T37的IN输入端变为0状态,T37的常开触点断开,Q0.0变为OFF,同时使T38的IN输入端变为
0状态,其常闭触点接通,T37又开始定时,以后Q0.0的线圈将这样周期性地“通电”和“断电”,直到I0.0变为OFF,Q0.0线圈“通电”时间等于T38的设定值,“断电”时间等于T37的设定值。
I0.0
T37的常开触点
T38的常闭触点
Q0.0
图4-15闪烁电路
2s3s
四、计数器指令1.计数器指令介绍
计数器利用输入脉冲上升沿累计脉冲个数。
计数器当前值大于或等于预置
值时,状态位置1。
S7-200系列PLC有三类计数器:
CTU-加计数器,CTUD-加/减计数器,CTD-减计数。
(1)计数器指令格式如表4-5所示
表4-5计数器的指令格式
STL
LAD
指令使用说明
CTUCxxx,PV
(1)梯形图指令符号中:
CU为加计数脉冲输入端;
CD为减计数脉冲输入端;R为加计数复位端;LD为减计数复位端;PV为预置值。
(2)Cxxx为计数器的编号,范围为:
C0~C255
(3)PV预置值最大范围:
32767;PV的数据类型:
INT;PV操作数为:
VW,T,C,IW,QW,MW,SMW,AC,AIW,K
(4)CTU/CTUD/CD指令使用要点:
STL形式中CU,
CD,R,LD的顺序不能错;CU,CD,R,LD信号可为复杂逻辑关系。
CTDCxxx,PV
CTUDCxxx,PV
(2)计数器工作原理分析
•加计数器指令(CTU)
当CU端有上升沿输入时,计数器当前值加1。
当计数器当前值大于或等于设定值(PV)时,该计数器的状态位置1,即其常开触点闭合。
计数器仍计数,但不影响计数器的状态位。
直至计数达到最大值(32767)。
当R=1时,计数器复位,即当前值清零,状态位也清零。
•加/减计数指令(CTUD)
当CU端(CD端)有上升沿输入时,计数器当前值加1(减1)。
当计数器当前值大于或等于设定值时,状态位置1,即其常开触点闭合。
当R=1时,计数器复位,即当前值清零,状态位也清零。
加减计数器计数范围:
–32768~32767。
•减计数指令(CTD)
当复位LD有效时,LD=1,计数器把设定值(PV)装入当前值存储器,计数器状态位复位(置0)。
当LD=0,即计数脉冲有效时,开始计数,CD端每来一个输入脉冲上升沿,减计数的当前值从设定值开始递减计数,当前值等于0时,计数器状态位置位(置1),停止计数。
2.计数器指令举例
【例4-5】:
加减计数器指令应用示例,程序及运行时序如图4-16所示。
I0.1
I0.2I0.3
C50当前值
.C50状态位
图4-16加/减计数器应用示例
五、比较指令
1.比较指令介绍
比较指令是将两个操作数按指定的条件比较,在梯形图中用带参数和运算符的触点表示比较指令,比较条件成立时,触点就闭合,否则断开。
指令格式如表4-6所示
表4-6比较指令格式
STL
LAD
说明
LD□xxIN1IN2
IN1
xx□
IN2
比较触点接起始母线
LDN
A□xxIN1IN2
NIN1
xx□IN2
比较触点的“与”
LDN
O□xxIN1IN2
N
IN1
xx□IN2
比较触点的“或”
说明:
“xx”表示比较运算符:
==等于、〈小于、〉大于、〈=小于等于、〉=大于等于、〈〉不等于。
“□”表示操作数N1,N2的数据类型及范围。
比较指令分类为:
字节比较LDB、AB、OB;整数比较LDW、AW、OW双字整数比较LDD、AD、OD;实数比较LDRAROR
2.指令应用举例
【例4-6】:
控制要求:
一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。
货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。
其中,L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。
本控制系统的程序如图4-17所示。
程序执行时序如图4-18所示。
LDI0.0//增计数输入端
LDI0.1
LDI0.2
//减计数输入端
//复位输入端
CTUD
C30,+10000
//增减计数,
//设定脉冲数
//为10000。
LDW>=
=
C30,VW20
Q0.0
//比较计数器
//当前值是否大于
//VW20中的值
//输出触点
LDW>=
C30,VW3/0/比较计数器
//当前值是否大于
//VW30中的值
=Q0.1
//输出触点
图4-17梯形图
C30当前值
1000
5000
5000
1000
Q0.0
Q0.1
图4-18时序图
4.2运算指令
一、算术运算指令
1.整数与双整数加减法指令
整数加法(ADD_I)和减法(SUB_I)指令是:
使能输入有效时,将两个16位符号整数相加或相减,并产生一个16位的结果输出到OUT。
双整数加法(ADD_D)和减法(SUB_D)指令是:
使能输入有效时,将两个
32位符号整数相加或相减,并产生一个32位结果输出到OUT。
整数与双整数加减法指令格式如表4-7所示。
表4-7整数与双整数加减法指令格式
LAD
功能
IN1+IN2=OUT
IN1-IN2=OUT
IN1+IN2=OUT
IN1-IN2=OUT
操作数及数据类型
IN1/IN2:
VW,IW,QW,MW,SW,
SMW,T,C,AC,LW,AIW,常量,
*VD,*LD,*AC。
OUT:
VW,IW,QW,MW,SW,SMW,T,C,LW,AC,*VD,*LD,*AC。
IN/OUT数据类型:
整数。
IN1/IN2:
VD,ID,QD,MD,SMD,
SD,LD,AC,HC,常量,*VD,*LD,
*AC。
OUT:
VD,ID,QD,MD,SMD,SD,LD,AC,*VD,*LD,*AC。
IN/OUT数据类型:
双整数。
【例4-7】:
求5000加400的和,5000在数据存储器VW200中,结果放入
AC0。
程序如图4-19所示。
2、整数乘除法指令
LDI0.0
MOVWVW200,AC0//VW200→AC0
+I+400,AC0//VW200+400=AC0
图4-19梯形图
整数乘法指令(MUL_I)是:
使能输入有效时,将两个16位符号整数相乘,并产生一个16位积,从OUT指定的存储单元输出。
整数除法指令(DIV_I)是:
使能输入有效时,将两个16位符号整数相除,并产生一个16位商,从OUT指定的存储单元输出,不保留余数。
如果输出结果大于一个字,则溢出位SM1.1置位为1。
双整数乘法指令(MUL_D):
使能输入有效时,将两个32位符号整数相乘,并产生一个32位乘积,从OUT指定的存储单元输出。
双整数除法指令(DIV_D):
使能输入有效时,将两个32位整数相除,并产生一个32位商,从OUT指定的存储单元输出,不保留余数。
整数乘法产生双整数指令(MUL):
使能输入有效时,将两个16位整数相乘,得出一个32位乘积,从OUT指定的存储单元输出。
整数除法产生双整数指令(DIV):
使能输入有效时,将两个16位整数相除,
得出一个32位结果,从OUT指定的存储单元输出。
其中高16位放余数,低16位放商。
整数乘除法指令格式如表4-8所示。
表4-8整数乘除法指令格式
LAD
功
能
IN1*IN2=OUT
IN1/IN2=OUT
IN1*IN2=OUT
IN1/IN2=OUT
IN1*IN2=OUT
IN1/IN2=OUT
【例4-8】:
乘除法指令应用举例,程序如图4-20所示。
LDI0.0
MULAC1,VD100DIVVW10,VD200
3.实数加减乘除指令
图4-20梯形图
实数加法(ADD_R)、减法(SUB_R)指令:
将两个32位实数相加或相减,并产生一个32位实数结果,从OUT指定的存储单元输出。
实数乘法(MUL_R)、除法(DIV_R)指令:
使能输入有效时,将两个32位实数相乘(除),并产生一个32位积(商),从OUT指定的存储单元输出。
指令格式如表4-9所示。
表4-9实数加减乘除指令
LAD
功能
IN1+IN2=OUT
IN1-IN2=OUT
IN1*IN2=OUT
IN1/IN2=OUT