西门子S7200PLC指令学习.docx
- 文档编号:27679259
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:30
- 大小:66.30KB
西门子S7200PLC指令学习.docx
《西门子S7200PLC指令学习.docx》由会员分享,可在线阅读,更多相关《西门子S7200PLC指令学习.docx(30页珍藏版)》请在冰豆网上搜索。
西门子S7200PLC指令学习
S7-200系列的基本逻辑指令
S7-200系列的基本逻辑指令与FX系列和CPM1A系列基本逻辑指令大体相似,编程和梯形图表达方式也相差不多,这里列表表示S7-200系列的基本逻辑指令(见表)。
表S7-200系列的基本逻辑指令
指令名称
指令符
功能
操作数
取
LDbit
读入逻辑行或电路块的第一个常开接点
Bit:
I,Q,M,SM,T,C,V,S
取反
LDNbit
读入逻辑行或电路块的第一个常闭接点
与
Abit
串联一个常开接点
与非
ANbit
串联一个常闭接点
或
Obit
并联一个常开接点
或非
ONbit
并联一个常闭接点
电路块与
ALD
串联一个电路块
无
电路块或
OLD
并联一个电路块
输出
=bit
输出逻辑行的运算结果
Bit:
Q,M,SM,T,C,V,S
置位
Sbit,N
置继电器状态为接通
Bit:
Q,M,SM,V,S
复位
Rbit,N
使继电器复位为断开
S7-200系列PLC的比较指令
在SIEMENSS7-200的编程软件STEP-7中,有专门的比较指令:
IN1与IN2比较,比较的数据类型可以是B、I(W)、D、R,即字节、字整数、双字整数和实数;还可以有其他的比较式:
>、<、≥、≤、<>等等。
当满足比较等式,则该触点闭合。
与LMODSOFT指令对照:
在LMODSOFT中,没有直接的数的比较指令,但SUB指令可以通过其执行减法功能后的三个输出端的状态实现整数的比较功能。
若与LMODSOFT中的SUB指令对应,则在STEP-7中应有三个比较指令:
>、=、<来分别对应SUB指令的三个输出;若还要对应≥、≤、或<>,则根据SUB指令三个输出端的不同组合,均可找到对应的比较指令。
比如:
①(30007)>(40030)
②(30007)=(40030)
③(30007)<(40030)
①+②(30007)≥
②+③(30007)≤(40030)
①+③(30007)<>(40030)
S7-200系列PLC的定时器指令
类型、编号及分辨率
TON——接通延时
TONR——有记忆接通延时
TOF——断开延时
3种分辨率(时基):
1ms、10ms、100ms——分别对应不同的定时器号
定时器6个要素:
指令格式(时基、编号等)预置值——PT
使能——IN复位——3种定时器不同
当前值——Txxx定时器状态(位)——可由触点显示
定时值=时基×预置值PT。
由于定时器的计时间隔与程序的扫描周期并不同步,定时器可能在其时基(1ms、10ms、100ms)内任何时间启动,所以,未避免计时时间丢失,一般要求设置PT预置值必须大于最小需要的时间间隔。
例如:
使用10ms时基定时器实现140ms延时(时间间隔),则PT应设置为15(10ms×15=150ms)。
2)功能
(1)接通延时定时器TON——一般用于单一时间间隔的定时
指令格式:
见图,编号与分辨率及定时器类型有关。
(见教材P221:
Fig8-3-3a)
使能:
——IN:
I2.0=“1”
当前值——T33,当在线(Online)时,此处显示当前值
预置值——PT=3,即定时时间=10ms×3=30ms
复位——IN:
I2.0=“0”
定时器状态(位)——“1”或“0”
与MODICONPLC的定时器指令对照:
区别:
对MODICONPLC,当10001=“0”,10002=“1”时,定时器当前值保持;当计时时间到,即(40040)=30时,只要10002=“1”,定时器也是保持
对S7-200PLC,只要I0.0=“1”,即计时,当T33当前值=3时,定时器继续计时,直至I0.0=“0”,定时器复位(相当于10002=“0”)
(1)断开延时定时器TOF——一般用于故障时间后的时间延时
指令格式:
见图,编号与分辨率及定时器类型有关。
注意:
定时器状态(位)=“1”(置位)及当前值复0与使能.I0.0=“1”同步;计时开始与使能I0.0从“1”→“0”(断开)同步,且当计时时间到而使能仍=“0”时,当前值保持。
(2)有记忆接通延时定时器TONR——一般用于累计许多时间间隔(指令功能及时序图见教材P222:
Fig8-3-3c)
指令格式:
见图,编号与分辨率及定时器类型有关。
注意:
定时器状态(位)=“1”(置位)及当前值复0与使能.I0.0=“1”同步;计时开始与使能I0.0从“1”→“0”(断开)同步,且当计时时间到而使能仍=“0”时,当前值保持。
(3)有记忆接通延时定时器TONR——一般用于累计许多时间间隔
S7-200系列PLC的计数器指令
1)类型及编号
CTU——增计数
CTD——减计数C0~C255
CTUD——增减计数
计数器6个要素:
指令格式(类型、编号等)预置值——PV
使能——CU、CD复位——R、LD
当前值——Cxxx计数器状态(位)——与定时器类似
2)功能、时序图及应用示例
此例为一个增减计数器的应用示例,其与MODICONPLC计数器指令的比较,同学可自己进行,并注意到,计数器指令的使能均是采样上升沿(“0”→“1”)。
S7-200系列PLC其它常用指令
1.脉冲产生指令EU/ED的应用
EU指令在EU指令前的逻辑运算结果由OFF到ON时就产生一个宽度为一个扫描周期的脉冲,驱动其后面的输出线圈。
2.逻辑堆栈的操作
LPS为进栈操作,LRD为读栈操作,LPP为出栈操作。
S7-200系列PLC中有一个9层堆栈,用于处理逻辑运算结果,称为逻辑堆栈。
3.NOT、NOP和MEND指令
NOT、NOP及MEND指令的形式及功能如表4-19所示。
表4-19 NOT、NOP及MEND指令的形式及功能
STL
功能
操作数
NOT
逻辑结果取反
—
NOP
空操作
—
MEND
无条件结束
—
NOT为逻辑结果取反指令,在复杂逻辑结果取反时为用户提供方便。
NOP为空操作,对程序没有实质影响。
MEND为无条件结束指令,在编程结束时一定要写上该指令,否则会出现编译错误。
调试程序时,在程序的适当位置插入MEND指令可以实现程序的分段调试。
4.比较指令
比较指令是将两个操作数按规定的条件作比较,条件成立时,触点就闭合。
比较运算符有:
=、>=、<=、>、<和<>。
(1)字节比较字节比较用于比较两个字节型整数值INl和IN2的大小,字节比较是无符号的。
比较式可以是LDB、AB或OB后直接加比较运算符构成。
如:
LDB=、AB<>、OB>=等。
整数INl和IN2的寻址范围:
VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。
指令格式例如:
LDB=VBl0,VBl2
(2)整数比较整数比较用于比较两个一字长整数值INl和IN2的大小,整数比较是有符号的(整数范围为16#8000和16#7FFF之间)。
比较式可以是LDW、AW或OW后直接加比较运算符构成。
如:
LDW=、AW<>。
OW>=等。
整数INl和IN2的寻址范围:
VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。
指令格式例如:
LDW=VWl0,VWl2
(3)双字整数比较双字整数比较用于比较两个双字长整数值INl和IN2的大小,双字整数比较是有符号的(双字整数范围为16#80000000和16#7FFFFFFF之间)。
比较式可以是LDD、AD或OD后直接加比较运算符构成。
如:
LDD=、AD<>、OD>=等。
双字整数INl和IN2的寻址范围:
VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常数。
指令格式例如:
LDD=VDl0,VDl2
(4)实数比较实数比较用于比较两个双字长实数值INl和IN2的大小,实数比较是有符号的(负实数范围为-1.175495E-38和-3.402823E+38,正实数范围为+1.175495E-38和+3.402823E+38)。
比较式可以是LDR、AR或OR后直接加比较运算符构成。
如:
LDR=、AR<>、OR>=等。
实数INl和IN2的寻址范围:
VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常数。
指令格式例如:
LDR=VDl0,VDl2
S7-200PLC功能指令概述
般的逻辑控制系统用软继电器、定时器和计数器及基本指令就可以实现。
利用功能指令可以开发出更复杂的控制系统,以致构成网络控制系统。
这些功能指令实际上是厂商为满足各种客户的特殊需要而开发的通用子程序。
功能指令的丰富程度及其合用的方便程度是衡量PLC性能的一个重要指标。
S7-200的功能指令很丰富,大致包括这几方面:
算术与逻辑运算、传送、移位与循环移位、程序流控制、数据表处理、PID指令、数据格式变换、高速处理、通信以及实时时钟等。
功能指令的助记符与汇编语言相似,略具计算机知识的人学习起来也不会有太大困难。
但S7-200系列PLC功能指令毕竟太多,一般读者不必准确记忆其详尽用法,需要时可可查阅产品手册。
S7-200PLC四则运算指令介绍
四则运算指令如表4-20所示。
表4-20四则运算指令
名称
指令格式
(语句表)
功能
操作数寻址范围
加法指令
+IIN1,OUT
两个16位带符号整数相加,得到一个16位带符号整数。
执行结果:
IN1+OUT=OUT(在LAD和FBD中为:
IN1+IN2=OUT)
IN1,IN2,OUT:
VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN1和IN2还可以是AIW和常数
+DIN1,IN2
两个32位带符号整数相加,得到一个32位带符号整数。
执行结果:
IN1+OUT=OUT(在LAD和FBD中为:
IN1+IN2=OUT)
IN1,IN2,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以是HC和常数
+RIN1,OUT
两个32位实数相加,得到一个32位实数。
执行结果:
IN1+OUT=OUT(在LAD和FBD中为:
IN1+IN2=OUT)
IN1,IN2,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以常数
减法指令
-IIN1,OUT
两个16位带符号整数相减,得到一个16位带符号整数。
执行结果:
OUT-IN1=OUT(在LAD和FBD中为:
IN1-IN2=OUT)
IN1,IN2,OUT:
VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN1和IN2还可以是AIW和常数
-DIN1,OUT
两个32位带符号整数相减,得到一个32位带符号整数。
执行结果:
OUT-IN1=OUT(在LAD和FBD中为:
IN1-IN2=OUT)
IN1,IN2,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以是HC和常数
-RIN1,OUT
两个32位实数相加,得到一个32位实数。
执行结果:
OUT-IN1=OUT(在LAD和FBD中为:
IN1-IN2=OUT)
IN1,IN2,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以常数
乘法指令
*IIN1,OUT
两个16位符号整数相乘,得到一个16整数。
执行结果:
IN1*OUT=OUT(在LAD和FBD中为:
IN1*IN2=OUT)
IN1,IN2,OUT:
VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN1和IN2还可以是AIW和常数
MULIN1,OUT
两个16位带符号整数相乘,得到一个32位带符号整数。
执行结果:
IN1*OUT=OUT(在LAD和FBD中为:
IN1*IN2=OUT)
IN1,IN2:
VW,IW,QW,MW,SW,SMW,LW,AIW,T,C,AC,*VD,*AC,*LD和常数
OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
*DIN1,OUT
两个32位带符号整数相乘,得到一个32位带符号整数。
执行结果:
IN1*OUT=OUT(在LAD和FBD中为:
IN1*IN2=OUT)
IN1,IN2,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以是HC和常数
*RIN1,OUT
两个32位实数相乘,得到一个32位实数。
执行结果:
IN1*OUT=OUT(在LAD和FBD中为:
IN1*IN2=OUT)
IN1,IN2,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以是常数
除法指令
/IIN1,OUT
两个16位带符号整数相除,得到一个16位带符号整数商,不保留余数。
执行结果:
OUT/IN1=OUT(在LAD和FBD中为:
IN1/IN2=OUT)
IN1,IN2,OUT:
VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN1和IN2还可以是AIW和常数
DIVIN1,OUT
两个16位带符号整数相除,得到一个32位结果,其中低16位为商,高16位为结果。
执行结果:
OUT/IN1=OUT(在LAD和FBD中为:
IN1/IN2=OUT)
IN1,IN2:
VW,IW,QW,MW,SW,SMW,LW,AIW,T,C,AC,*VD,*AC,*LD和常数
OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
/DIN1,OUT
两个32位带符号整数相除,得到一个32位整数商,不保留余数。
执行结果:
OUT/IN1=OUT(在LAD和FBD中为:
IN1/IN2=OUT)
IN1,IN2,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以是HC和常数
/RIN1,OUT
两个32位实数相除,得到一个32位实数商。
执行结果:
OUT/IN1=OUT(在LAD和FBD中为:
IN1/IN2=OUT)
IN1,IN2,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以是常数
数学函数指令
SQRTIN,OUT
把一个32位实数(IN)开平方,得到32位实数结果(OUT)
IN,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN还可以是常数
LNIN,OUT
对一个32位实数(IN)取自然对数,得到32位实数结果(OUT)
EXPIN,OUT
对一个32位实数(IN)取以e为底数的指数,得到32位实数结果(OUT)
SININ,OUT
分别对一个32位实数弧度值(IN)取正弦、余弦、正切,得到32位实数结果(OUT)
COSIN,OUT
TANIN,OUT
增减指令
INCBOUT
将字节无符号输入数加1
执行结果:
OUT+1=OUT(在LAD和FBD中为:
IN+1=OUT)
IN,OUT:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD
IN还可以是常数
DECBOUT
将字节无符号输入数减1
执行结果:
OUT-1=OUT(在LAD和FBD中为:
IN-1=OUT)
INCWOUT
将字(16位)有符号输入数加1
执行结果:
OUT+1=OUT(在LAD和FBD中为:
IN+1=OUT)
IN,OUT:
VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN还可以是AIW和常数
DECWOUT
将字(16位)有符号输入数减1
执行结果:
OUT-1=OUT(在LAD和FBD中为:
IN-1=OUT)
INCDOUT
将双字(32位)有符号输入数加1
执行结果:
OUT+1=OUT(在LAD和FBD中为:
IN+1=OUT)
IN,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN还可以是HC和常数
DECDOUT
将字(32位)有符号输入数减1
执行结果:
OUT-1=OUT(在LAD和FBD中为:
IN-1=OUT)
S7-200PLC逻辑运算指令
逻辑运算指令如表4-21所示。
表4-21逻辑运算指令
名称
指令格式
(语句表)
功能
操作数
字节逻辑运算指令
ANDBIN1,OUT
将字节IN1和OUT按位作逻辑与运算,OUT输出结果
IN1,IN2,OUT:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD
IN1和IN2还可以是常数
ORBIN1,OUT
将字节IN1和OUT按位作逻辑或运算,OUT输出结果
XORBIN1,OUT
将字节IN1和OUT按位作逻辑异或运算,OUT输出结果
INVBOUT
将字节OUT按位取反,OUT输出结果
字逻辑运算指令
ANDWIN1,OUT
将字IN1和OUT按位作逻辑与运算,OUT输出结果
IN1,IN2,OUT:
VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN1和IN2还可以是AIW和常数
ORWIN1,OUT
将字IN1和OUT按位作逻辑或运算,OUT输出结果
XORWIN1,OUT
将字IN1和OUT按位作逻辑异或运算,OUT输出结果
INVWOUT
将字OUT按位取反,OUT输出结果
双字逻辑运算指令
ANDDIN1,OUT
将双字IN1和OUT按位作逻辑与运算,OUT输出结果
IN1,IN2,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以是HC和常数
ORDIN1,OUT
将双字IN1和OUT按位作逻辑或运算,OUT输出结果
XORDIN1,OUT
将双字IN1和OUT按位作逻辑异或运算,OUT输出结果
INVDOUT
将双字OUT按位取反,OUT输出结果
S7-200PLC数据传送指令
数据传送指令如表4-22所示。
表4-22数据传送指令
名称
指令格式
(语句表)
功能
操作数
单一传送指令
MOVBIN,OUT
将IN的内容拷贝到OUT中
IN和OUT的数据类型应相同,可分别为字,字节,双字,实数
IN,OUT:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD
IN还可以是常数
MOVWIN,OUT
IN,OUT:
VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN还可以是AIW和常数
OUT还可以是AQW
MOVDIN,OUT
IN,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN还可以是HC,常数,&VB,&IB,&QB,&MB,&T,&C
MOVRIN,OUT
IN,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN还可以是常数
BIRIN,OUT
立即读取输入IN的值,将结果输出到OUT
IN:
IB
OUT:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD
BIWIN,OUT
立即将IN单元的值写到OUT所指的物理输出区
IN:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数
OUT:
QB
块传送指令
BMBIN,OUT,N
将从IN开始的连续N个字节数据拷贝到从OUT开始的数据块
N的有效范围是1~255
IN,OUT:
VB,IB,QB,MB,SB,SMB,LB,*VD,*AC,*LD
N:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数
BMWIN,OUT,N
将从IN开始的连续N个字数据拷贝到从OUT开始的数据块
N的有效范围是1~255
IN,OUT:
VW,IW,QW,MW,SW,SMW,LW,T,C,*VD,*AC,*LD
IN还可以是AIW
OUT还可以是AQW
N:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数
BMDIN,OUT,N
将从IN开始的连续N个双字数据拷贝到从OUT开始的数据块
N的有效范围是1~255
IN,OUT:
VD,ID,QD,MD,SD,SMD,LD,*VD,*AC,*LD
N:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数
S7-200PLC移位与循环移位指令
移位与循环移位指令如表4-23所示。
表4-23移位与循环移位指令
名称
指令格式
(语句表)
功能
操作数
字节移位指令
SRBOUT,N
将字节OUT右移N位,最左边的位依次用0填充
IN,OUT,N:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD
IN和N还可以是常数
SLBOUT,N
将字节OUT左移N位,最右边的位依次用0填充
RRBOUT,N
将字节OUT循环右移N位,从最右边移出的位送到OUT的最左位
RLBOUT,N
将字节OUT循环左移N位,从最左边移出的位送到OUT的最右位
字移位指令
SRWOUT,N
将字OUT右移N位,最左边的位依次用0填充
IN,OUT:
VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN还可以是AIW和常数
N:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常数
SLWOUT,N
将字OUT左移N位,最右边的位依次用0填充
RRWOUT,N
将字OUT循环右移N位,从最右边移出的位送到OUT的最左位
RLWOUT,N
将字OUT循环左移N位,从最左边移出的位送到OUT的最右位
双字移位指令
SRDOUT,N
将双字OUT右移N位,最左边的位依次用0填充
IN,OUT:
VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN还可以是HC和常数
N:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常数
SLDOUT,N
将双字OUT左移N位,最右边的位依次用0填充
RRDOUT,N
将双字OUT循环右移N位,从最右边移出的位送到OUT的最左位
RLDOUT,N
将双字OUT循环左移N位,从最左边移出的位送到OUT的最右位
位移位寄存器指令
SHRBDATA,S_BIT,N
将DATA的值(位型)移入移位寄存器;S_BIT指定移位寄存器的最低位,N指定移位寄存器的长度(正向移位=N,反向移位=-N)
DATA,S_BIT:
I,Q,M,SM,T,C,V,S,L
N:
VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常数
S7-200PLC交换和填充指令
交
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西门子 S7200PLC 指令 学习
![提示](https://static.bdocx.com/images/bang_tan.gif)