S7指令表
S7-200常用指令

S7-200常用指令一、PLC梯形图语言的编程原则1、梯形图由多个梯级组成,每个线圈可构成一个梯级,每个梯级有多条支路,每个梯级代表一个逻辑方程;2、梯形图中的继电器继电器、接点、线圈不是物理的,是PLC存储器中的位(1=ON;0=OFF);编程时常开/常闭接点可无限次引用,线圈输出只能是一次;3、梯形图中流过的不是物理电流而是“概念电流”,只能从左向右流;4、用户程序的运算是根据PLC的输入/输出映象寄存器中的内容,逻辑运算结果可以立即被后面的程序使用;5、PLC的内部继电器不能做控制用,只能存放逻辑控制的中间状态;6、输出线圈不能直接驱动现场的执行元件,通过I/O模块上的功率器件来驱动。
二、存储器区域输入映像寄存器(I)输出映像寄存器(Q)变量存储器( V )定时器存储器( T )计数器存储器( C )模拟量输入映像寄存器(AI)模拟量输出映像寄存器(AQ)累加器(AC)高速计数器(H C )说明:1)输入映像寄存器(I)的状态只能由外部输入信号驱动,而不能由程序来改变其状态。
即在程序中,只能出现输入映像寄存器的触点,而不能出现其线圈。
2)输出映像寄存器(Q)是PLC用来向外部负载发送控制命令的窗口。
每一个输出端子与输出映像寄存器( Q )的一个相应位想对应。
并有无数对常开和常闭触点供编程时使用。
3)定时器存储器(T),PLC所提供的定时器作用相当于继电器控制系统中的时间继电器。
每个定时器可提供无数对常开和常闭触点供编程使用。
其设定时间通常由程序设置。
S7-200 PLC提供了三种定时器:TON-通电延时;TONR-有记忆通电延时;TOF-断电延时。
S7-200 PLC提供了三种定时精度:1ms、10ms、100ms4)计数器(C),计数器用于累计计数输入端接收到的脉冲电平由低到高的脉冲个数。
计数器可提供无数对常开和常闭触点供编程使用,其设定值通常由程序赋予。
地址格式:C[计数器号]如C5,S7-200 PLC提供了三种计数器:CTU-增计数器、CTD-减计数器、CTUD -增减计数器5)变量存储器(V)变量存储器主要用于存储全局变量,或者存放数据运算的中间运算结果或设置参数。
西门子 S7-300和S7-400语句表(STL)编程 说明书

前言,目录 位逻辑指令 1 比较指令 2 转换指令 3 计数器指令 4 数据块指令 5 逻辑控制指令 6 整数运算指令 7 浮点数运算指令 8 装载和传送指令 9 程序控制指令 10 移位和循环移位指令 11 定时器指令 12 字逻辑指令 13 累加器指令 14附录所有语句表指令一览 A 编程举例 B 参数传递 CSIMATICS7-300和S7-400 语句表(STL )编程参考手册2006年3月版A5E00706960-01索引安全指南本手册包括应该遵守的注意事项,以保证人身安全及财产损失。
在本手册中,与人身安全有关的注意事项通过安全警告符号突出显示,而只与财产损失有关的注意事项则没有安全警告符号。
这些注意事项根据危险等级显示如下:危险表示若不采取适当的预防措施,将导致死亡或严重的人身伤害。
警告表示若不采取适当的预防措施,将可能导致死亡或严重的人身伤害。
小心带安全警告符号时,表示若不采取适当的预防措施,将导致轻微的人身伤害。
小心不带安全警告符号时,表示若不采取适当的预防措施,将造成财产损失。
注意如果不引起相应的重视,将会导致意外的结果或状态。
当出现多个安全等级时,应该采用最高危险等级的安全提示。
带安全警告符号的人员伤害警告也可能会导致财产损失。
合格人员只有合格人员才允许对设备/系统进行调试和操作。
合格人员规定为根据既定的安全惯例和标准,被授权对设备、系统和电路进行调试、接地和加装标签的人员。
正确使用请注意如下事项:警告该装置及其组件只能用于产品目录或技术说明书中所阐述的应用,并且只能与由西门子公司认可或推荐的第三方厂商提供的设备或组件一起使用。
本产品只有在正确的运输、贮存、设置和安装以及仔细地运行和维护的情况下,才能正确而安全地运行。
商标标有®的所有名称均为西门子公司的注册商标。
本文档中的其它一些标志也是注册商标,如果任何第三方出于个人目的而使用,都会侵犯商标所有者的权利。
郑重声明我们已核对过本手册的内容与所述硬件和软件相符。
S7300(STL)指令

S7-300/400语句表指令助记符分类说明+ 整数算术运算指令加上一个整数常数(16 位,32 位)= 位逻辑指令赋值) 位逻辑指令嵌套闭合+AR1 累加器指令 AR1 加累加器 1 至地址寄存器 1+AR2 累加器指令 AR2 加累加器 1 至地址寄存器 2+D 整数算术运算指令作为双整数(32 位),将累加器 1 和累加器 2 中的内容相加–D 整数算术运算指令作为双整数(32 位),将累加器 2 中的内容减去累加器 1中的内容*D 整数算术运算指令作为双整数(32 位),将累加器 1 和累加器 2 中的内容相乘/D 整数算术运算指令作为双整数(32 位),将累加器 2 中的内容除以累加器 1中的内容D 比较指令双整数(32 位)比较 ==,<>,>,<,>=,<=+I 整数算术运算指令作为整数(16 位),将累加器 1 和累加器 2中的内容相加–I 整数算术运算指令作为整数(16 位),将累加器 2 中的内容减去累加器 1 中的内容*I 整数算术运算指令作为整数(16 位),将累加器 1 和累加器 2中的内容相乘/I 整数算术运算指令作为整数(16 位),将累加器 2 中的内容除以累加器 1 中的内容I 比较指令整数(16 位)比较 ==,<>,>,<,>=,<=+R 浮点算术运算指令作为浮点数(32 位,IEEE-FP),将累加器1 和累加器 2 中的内容相加–R 浮点算术运算指令作为浮点数(32 位,IEEE-FP),将累加器2 中的内容减去累加器 1 中的内容*R 浮点算术运算指令作为浮点数(32 位,IEEE-FP),将累加器1 和累加器 2 中的内容相乘/R 浮点算术运算指令作为浮点数(32 位,IEEE-FP),将累加器2 中的内容除以累加器 1 中的内容R 比较指令比较两个浮点数(32 位)==,<>,>,<,>=,<=A 位逻辑指令“与”A( 位逻辑指令“与”操作嵌套开始ABS 浮点算术运算指令浮点数取绝对值(32 位,IEEE-FP)ACOS 浮点算术运算指令浮点数反余弦运算(32 位)AD 字逻辑指令双字“与”(32 位)AN 位逻辑指令“与非”AN( 位逻辑指令“与非”操作嵌套开始ASIN 浮点算术运算指令浮点数反正弦运算(32 位)ATAN 浮点算术运算指令浮点数反正切运算(32 位)AW 字逻辑指令字“与”(16 位)BE 程序控制指令块结束BEC 程序控制指令条件块结束BEU 程序控制指令无条件块结束BLD 程序控制指令程序显示指令(空)BTD 转换指令 BCD 转成整数(32 位)BTI 转换指令 BCD 转成整数(16 位)CAD 转换指令 Change Byte Sequence in ACCU 1 (32-bit) CALL 程序控制指令块调用CALL 程序控制指令调用多背景块CALL 程序控制指令从库中调用块CAR 装入/传送指令交换地址寄存器 1 和地址寄存器 2 的内容CAW 转换指令 Change Byte Sequence in ACCU 1-L(16-bit) CC 程序控制指令条件调用CD 计数器指令减计数器CDB 转换指令交换共享数据块和背景数据块CLR 位逻辑指令 RLO 清零(=0)COS 浮点算术运算指令浮点数余弦运算(32 位)CU 计数器指令加计数器DEC 累加器指令减少累加器 1 低字的低字节DTB 转换指令双整数(32 位)转成 BCDDTR 转换指令双整数(32 位)转成浮点数(32 位,IEEE-FP)ENT 累加器指令进入累加器栈EXP 浮点算术运算指令浮点数指数运算(32 位)FN 位逻辑指令脉冲下降沿FP 位逻辑指令脉冲上升沿FR 计数器指令使能计数器(任意)(任意,FR C 0 - C 255)FR 定时器指令使能定时器(任意)INC 累加器指令增加累加器 1 低字的低字节INVD 转换指令对双整数求反码(32 位)INVI 转换指令对整数求反码(16 位)ITB 转换指令整数(16 位)转成 BCDITD 转换指令整数(16 位)转成双整数(32 位)JBI 跳转指令若 BR = 1,则跳转JC 跳转指令若 RLO = 1,则跳转JCB 跳转指令若 RLO = 1 且 BR= 1,则跳转JCN 跳转指令若 RLO = 0,则跳转JL 跳转指令跳转到标号JM 跳转指令若负,则跳转JMZ 跳转指令若负或零,则跳转JN 跳转指令若非零,则跳转JNB 跳转指令若 RLO = 0 且 BR= 1,则跳转JNBI 跳转指令若 BR = 0,则跳转JO 跳转指令若 OV = 1,则跳转JOS 跳转指令若 OS = 1,则跳转JP 跳转指令若正,则跳转JPZ 跳转指令若正或零,则跳转JU 跳转指令无条件跳转JUO 跳转指令若无效数,则跳转JZ 跳转指令若零,则跳转L 装入/传送指令装入L DBLG 装入/传送指令将共享数据块的长度装入累加器 1 中L DBNO 装入/传送指令将共享数据块的块号装入累加器 1 中L DILG 装入/传送指令将背景数据块的长度装入累加器 1 中L DINO 装入/传送指令将背景数据块的块号装入累加器 1 中L STW 装入/传送指令将状态字装入累加器 1L 定时器指令将当前定时值作为整数装入累加器 1(当前定时值可以是0 – 255 之间的一个数字,例如 L T 32)L 计数器指令将当前计数值装入累加器 1(当前计数值可以是 0 –255之间的一个数字,例如 L C15)LAR1 装入/传送指令将累加器 1 中的内容装入地址寄存器 1LAR1 <D> 装入/传送指令将两个双整数(32 位指针)装入地址寄存器 1LAR1 AR2 装入/传送指令将地址寄存器 2 的内容装入地址寄存器 1LAR2 装入/传送指令将累加器 2 中的内容装入地址寄存器 1LAR2 <D> 装入/传送指令将两个双整数(32 位指针)装入地址寄存器 2LC 计数器指令将当前计数值作为 BCD 码装入累加器 1(当前计数值可以是 0 – 255 之间的一个数字,例如 LC C 15)LC 定时器指令将当前定时值作为 BCD 码装入累加器 1(当前定时值可以是 0 – 255 之间的一个数字,例如 LC T 32)LEAVE 累加器指令离开累加器栈LN 浮点算术运算指令浮点数自然对数运算(32 位)LOOP 跳转指令循环MCR( 程序控制指令将 RLO 存入 MCR 堆栈,开始 MCR)MCR 程序控制指令结束 MCRMCRA 程序控制指令激活 MCR 区域MCRD 程序控制指令去活 MCR 区域MOD 整数算术运算指令双整数形式的除法,其结果为余数(32 位)NEGD 转换指令对双整数求补码(32 位)NEGI 转换指令对整数求补码(16 位)NEGR 转换指令对浮点数求反(32 位,IEEE-FP)NOP 0 累加器指令空指令NOP 1 累加器指令空指令NOT 位逻辑指令 RLO 取反O 位逻辑指令“或”O( 位逻辑指令“或”操作嵌套开始OD 字逻辑指令双字“或”(32 位)ON 位逻辑指令“或非”ON( 位逻辑指令“或非”操作嵌套开始OPN 数据块调用指令打开数据块OW 字逻辑指令字“或”(16 位)POP 累加器指令 POPPOP 累加器指令带有两个累加器的 CPUPOP 累加器指令带有四个累加器的 CPUPUSH 累加器指令带有两个累加器的 CPUPUSH 累加器指令带有四个累加器的 CPUR 位逻辑指令复位R 计数器指令复位计数器(当前计数值可以是 0 – 255 之间的一个数字,例如 R C 15)R 定时器指令复位定时器(当前定时值可以是 0 – 255 之间的一个数字,例如 R T 32)RLD 移位和循环移位指令双字循环左移(32 位)RLDA 移位和循环移位指令通过 CC 1 累加器 1 循环左移(32 位)RND 转换指令取整RND–转换指令向下舍入为双整数RND+ 转换指令向上舍入为双整数RRD 移位和循环移位指令双字循环右移(32 位)RRDA 移位和循环移位指令通过 CC 1 累加器 1 循环右移(32 位)S 位逻辑指令置位S 计数器指令置位计数器(当前计数值可以是 0 – 255 之间的一个数字,例如 S C 15)SAVE 位逻辑指令把 RLO 存入 BR 寄存器SD 定时器指令延时接通定时器SE 定时器指令延时脉冲定时器SET 位逻辑指令置位SF 定时器指令延时断开定时器SIN 浮点算术运算指令浮点数正弦运算(32 位)SLD 移位和循环移位指令双字左移(32 位)SLW 移位和循环移位指令字左移(16 位)SP 定时器指令脉冲定时器SQR 浮点算术运算指令浮点数平方运算(32 位)SQRT 浮点算术运算指令浮点数平方根运算(32 位)SRD 移位和循环移位指令双字右移(32 位)SRW 移位和循环移位指令字右移(16 位)SS 定时器指令保持型延时接通定时器SSD 移位和循环移位指令移位有符号双整数(32 位)SSI 移位和循环移位指令移位有符号整数(16 位)T 装入/传送指令传送T STW 装入/传送指令将累加器 1 中的内容传送到状态字TAK 累加器指令累加器 1 与累加器 2 进行互换TAN 浮点算术运算指令浮点数正切运算(32 位)TAR1 装入/传送指令将地址寄存器 1 中的内容传送到累加器 1TAR1 装入/传送指令将地址寄存器 1 的内容传送到目的地(32位指针)TAR1 装入/传送指令将地址寄存器 1 的内容传送到地址寄存器2TAR2 装入/传送指令将地址寄存器 2 中的内容传送到累加器 1TAR2 装入/传送指令将地址寄存器 2 的内容传送到目的地(32位指针)TRUNC 转换指令截尾取整UC 程序控制指令无条件调用X 位逻辑指令“异或”X( 位逻辑指令“异或”操作嵌套开始XN 位逻辑指令“异或非”XN( 位逻辑指令“异或非”操作嵌套开始XOD 字逻辑指令双字“异或”(32 位)XOW 字逻辑指令字“异或”(16 位)。
S7-200编程指令

译码 编码 7段译码
E:中断指令
102 103 104
从中断程序有条 件返回
(RETI) (ENI0) (DISI)
不需要填写,中断程序自动填写 119 119
允许中断 禁止中断
105
ATCH DTCH
给事件分配中 断程序
ATCH
EN 119
INT,EVET
ENO INT EVNT
DTCH 106
两个字节(字,双字)相 异或;是它们的高位与高 116 位,低位与低位相异或,执 行‘1和1或0和0均为0,1和0 116 或0和1均为1的方针;
字节取反 字取反 双字取反
116
两个字节(字,双字) 116 相取反;是0变1,和1变0 的方针; 116
D:表,查找和转换指令
填表:向TBL中新增
78
TBL PATRN INDX TBL PATRN INDX TBL PATRN INDX TBL PATRN INDX BCD码转换成整数 整数转换成BCD码 字节转换成整数 整数转换成字节 整数转换成双 整数 双整数转换成 整数 双整数转换成 实数 实数四舍五入 为双整数 实数截位取整 为双整数 ASCII码→16进 制数 16进制数→ ASCII码 整数→ASCII码 双整数→ASCII 码 实数→ASCII码
解除中断程序
EVENT
EN EVNT
ENO
119
当输入EVNT中断号产生 时,不执行任何中断。
F:通信指令
107 108 109 110 111 112
IN
OUT
同 上
53 54 55 56 57
RRW RRD RLB RLW RLD FILL
字循环右移n位 双字循环右移n 位 字节循环左移n 位 字循环左移n位 双字循左右移n 位
西门子S7—基本指令

③ =(Out):表示线圈驱动指令。用于将逻辑运算的结 果驱动一个指定的线圈。也叫输出指令。将运算结果输出到 指定的继电器,是驱动线圈的输出指令。
2)指令使用说明
① LD、LDN用于与左母线相连的触点,在分支电路 块的开始处也要使用,与后面的OLD、ALD指令配合 完成块电路的编程。
NOT取反指令,指将它左边电路的逻辑运 算结果取反,运算结果若为1则变为0,为0则 变为1,该指令没有操作数。
LAD
NOT
STL NOT NOP N
功能 取反
空操作指令
表5.2 取反和空操作指令格式及功能表
图5-12 取反指令和空操作指令应用程序
3、END、MEND、 STOP指令
1)指令定义: END:条件结束指令 MEND:无条件结束指令 STOP:停止指令
ALD指令无操作数。
2)指令使用说明
①两个或两个以上触电触点并联的电路称为并联电路块, 分支电路与前面电路串联连接时,使用ALD指令。分支的起 始点用LD、LDN指令,并联电路块结束后,使用ALD指令 与前面电路串联。
②当有多个并联电路块从左到右按顺序串联连接时,可以 连续使用ALD指令,串联的电路块数量没有限制。
TOF(Off Delay Timer)断电延时定时器:断电 后单一时间间隔的定时。
定时器指令格式
LAD
STL
T ON
功能、注释 通电延时型
T ONR
有记忆通电延时型
T OF
断电延时型
表5.3 定时器指令格式及功能表
编程T0-T255,PT最大输入32767,必须是整数。
工 作方式 TONR
西门子 S7-300 指令列表 说明书

CPU技术数 CPU 312C - 314C-2 DP/PtP
该指令表的订货号为: 6ES7 398-8AA10-8BN0
2001年10月版
A5E00105517-01
西门子公司版权所有©2001。保留所有权利 未经明确的书面授权,禁止复制、传递或使用本手册或其中的内容。 违者必究。保留所有权利包括专利权、实用新型或外观设计专有权。 西门子股份有限公司 自动化与驱动集团 工业自动化系统部 邮政信箱4848,纽伦堡D- 90327
西门子股份有限公司
郑重声明 我们已核对过,本手册的内容与所述硬件和软件相符。但错误在所难 免,不能保证完全的一致。本手册中的内容将定期审查,并在下一版 中进行修正。欢迎提出改进意见。
®Siemens AG 2001 若有改动,恕不另行通知。
6ES7398-8AA10-8BN0
目录
指令表的有效范围 .............................................................................................................................................. 1 地址标识符和参数范围....................................................................................................................................... 1 缩写词和助记符..........................................................................................
西门子常用指令

MOVR IN,OUT
IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN还可以是常数
BIR IN,OUT
立即读取输入IN的值,将结果输出到OUT
IN:IB
OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD
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交换和填充指令
交换和填充指令如表4-24所示。
表4-24交换和填充指令
名称
指令格式
(语句表)
功能
操作数
换字节指令
SWAP IN
将输入字IN的高位字节与低位字节的内容交换,结果放回IN中
IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
填充指令
FILL IN,OUT,N
用输入字IN填充从OUT开始的N个字存储单元
N的范围为1~255
IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN还可以是AIW和常数
FND<> TBL,PTN,INDEX
FND< TBL,PTN,INDEX
FND> TBL,PTN,INDEX
搜索表TBL,从INDEX指定的数据项开始,用给定值PTN检索出符合条件(=,<>,<,>)的数据项
如果找到一个符合条件的数据项,则INDEX指明该数据项在表中的位置。如果一个也找不到,则INDEX的值等于数据表的长度。为了搜索下一个符合的值,在再次使用该指令之前,必须先将INDEX加1
S7-200指令表

O 位地址LD 常开触点 A ON位地址LDN 常闭触点ANAI OI 常开立即触点位地址LDI 触点位地址ANI ONILDNI 常闭立即触点指令NOT 取反触点EU P 正转换触点ED N 负转换触点输出指令= -()位地址S S 置位指令)位地址、个数(--(复位指令 R )R 位地址、个数线圈指令=I 位地址)-立即输出指令( ISI SI ()位地址、个数-立即置位指令位地址、个数(-立即复位指令 RI )RITON (预设值)TON T接通延时定时器××PTTONR PT TONR 有记忆接通延时定时器T ××时间TOF PT 断开延时定时器TOF T××指令BITIM OUT BGN__ITIME 触发时间间隔指令CITIM IN OUTCAL__ITIME计算时间间隔指令CTU C××PV(预设值)CTU 增计数器计数CTD PV ××减计数器CTD 器指 C 令CTUD PV C增减计数器××CTUDIN,OUT MOVB MOV__B 字节传送指令普通IN,OUT MOVW MOV__W 字传送指令传送IN,OUT MOVD MOV__DW 双字传送指令指令IN,OUT MOVR MOV__R 实数传送指令BIRIN ,OUT MOV__BIR 字节立即读指令字节BIW IN ,OUT MOV__BIW 指令字节立即写指令BLKMOV__B ) BMB IN,OUT,N(数目字节块传送指令块传BLKMOV__W ) 字块传送指令送指数目BMW IN,OUT,N( 令BLKMOV__D )数目双字块传送指令BMD IN,OUT,N(交换SWAP INSWAP 字节交换指令指令OB=IN1,IN2 LDB=IN1,IN2 AB=IN1,IN2 ==B 字节等于比较指令OB<>IN1,IN2 LDB<>IN1,IN2 AB<>IN1,IN2 <>B 字节不等于指令字节OB>=IN1,IN2 AB>=IN1,IN2 LDB>=IN1,IN2 >=B 字节大于等于指令比较OB<=IN1,IN2 AB<=IN1,IN2 LDB<=IN1,IN2 <=B 字节小于等于指令指令OB>IN1,IN2 AB>IN1,IN2 LDB>IN1,IN2 >B 字节大于指令OB<IN1,IN2 LDB<IN1,IN2 AB<IN1,IN2 <B 字节小于指令OW=IN1,IN2 LDW=IN1,IN2 AW=IN1,IN2 ==I 整数等于比较指令整数OW<>IN1,IN2AW<>IN1,IN2 LDW<>IN1,IN2 比较<>I. . . .. . . . . . . .。
S7-300指令对比

BR ---| |---
异常位二进制结果
==0 ---| |---
结果位等于“0”
<>0 ---| |---
结果位不等于“0”
>0 ---| |---
结果位大于“0”
<0 ---| |---
结果位小于“0”
>=0 ---| |---
结果位大于等于“0”
<=0 ---| |---
结果位小于等于“0”
NEG
地址下降沿检测
POS
地址上升沿检测
Immediate Read
立即读操作
Immediate Write
立即写操作
比较指令
CMP? I整数比较
==I
整数等于比较
<>I
整数不等于比较
>I
整数大于比较
<I
整数小于比较
>=I
整数大于等于比较
<=I
整数小于等于比较
CMP ? D双整数比较
==D
双整数等于比较
XOR
位异或
>=1
---( )
输出线圈
&
---( # )---
中间输出
XOR
---|NOT|---
信号流反向
当RLO为1时起作用
---( S )
线圈置位
---( R )
线圈复位
SR
置位复位触发器
RS
复位置位触发器
对上升沿和下降沿有反应
---(N)---
RLO下降沿检测
---(P)---
RLO上升沿检测
SUB_R
实数减法
MUL_R
西门子S7-200基本指令.

第 4章
基本指令
4. 逻辑弹出栈指令
LPP,逻辑弹出栈指令(分支结束或主控复位指令)。在梯形图中的 分支结构中,用于将LPS指令生成一条新的母线进行恢复。 注意:使用LPP指令时,必须出现在LPS的后面,与LPS成对出现。 在语句表中指令LPP执行情况如下表4.11所示。
第 4章
基本指令
5. 逻辑读栈指令
第 4章
基本指令
3. 逻辑推入栈指令
LPS,逻辑推入栈指令(分支或主控指令)。在梯形图中 的分支结构中,用于生成一条新的母线,左侧为主控逻 辑块时,第一个完整的从逻辑行从此处开始。 注意:使用LPS指令时,本指令为分支的开始,以后必须 有分支结束指令LPP。即LPS与LPP指令必须成对出现。 在语句表中指令LPS执行情况如下表4.10所示。
第 4章
基本指令
(4)RI,立即复位指令 用立即复位指令访问输出点时,从指令所指出的 位(bit)开始的N个(最多为128个)物理输出点 被立即复位,同时,相应的输出映像寄存器的内 容也被刷新。 用法: RI bit, N 例: RI Q0.0, 1 应用举例: 图4.9为立即指令应用中的一段程序,图4.10是程 序对应的时序图。
第 4章
基本指令
许 多 效指 编令 址中 范含 围有 如操 表作 4 数 2 , 所操 示作 。数 的 有
.
第 4章
基本指令
(1)指令例 整数加法 +I ,整数加法指令。使能输入有效时,将两个单字长( 16 位)的符 号整数IN1和IN2相加,产生一个16位整数结果输出(OUT)。 在 LAD 和 FBD 中 , 以 指 令 盒 形 式 编 程 。 指 令 盒 的 执 行 结 果 : IN1+IN2=OUT 在STL中,执行结果:IN1+OUT=OUT IN1和IN2的寻址范围:VW、IW、QW、MW、SW、SMW、LW、 AIW、T、C、AC、*VD、*AC、*LD和常数。 OUT的寻址范围: VW、IW、QW、MW、 SW、 SMW、 LW、 T、 C、AC、*VD、*AC和*LD。
S7-1200 PLC的指令

2020/3/4
9
基本指令——数学运算指令——四则运算指令
ADD,SUB,MUL和DIV分别是加、减、乘、除指令。 操作数的数据类型可选SInt, Int, Dint, USInt, UInt, UDInt和Real。 操作数的数据类型应该相同。
压力变送器的量程为010MPa,输出信号为010V,被CPU集成的模拟量输入通道 0(地址为IW64)转换为027648的数字。假设转换后的数字为N,求以kPa为单位的压力 值。 对应的转换公式为:
2020/3/4
2
基本指令——比较指令 2/2
2020/3/4
3
基本指令——比较指令——举例 1/2
用比较和计数指令编写开关灯程序,要求灯控按钮I0.0按下一次,灯Q4.0亮,按下两 次,灯Q4.0,Q4.1全亮,按下三次灯全灭,如此循环。
分析:在程序中所用计数器为加法计数器,当加到3时,必须复位计数器,这是关键。
由于浮点数的数值范围远远大于32位整数,有点浮点数不能成功转换为32位整数,此 时ENO为0状态。
2020/3/4
19
基本指令——标定指令
SCALE_X指令的浮点数输入值被线性转换为下限和上限定义数值范围之内的整数:
OUT=VALUE*(MAX-MIN)+MIN
2020/3/4
20
基本指令——标准化指令
RD_LOC_T(读本地时间)的输出OUT提供数据类型为DTL的PLC中的当前本地时间。 为了保证读取到正确的时间,在组团CPU的属性时,应设置实时时间的时区为北京, 不设夏时制。在读取实时时间时,应调用RD_LOC_T指令。
2020/3/4
29
扩展指令——日期时间指令—时钟指令2/2
S7-200指令大全

第5章数据处理、运算指令及应用本章要点●数据传送、字节交换、字节立即读写、移位、转换指令的介绍、应用及实训●算术运算、逻辑运算、递增/递减指令的介绍、应用及实训●表的定义、填表指令、表取数指令、填充指令、表查找指令的介绍5.1 数据处理指令5.1.1 数据传送指令1. 字节、字、双字、实数单个数据传送指令MOV数据传送指令MOV,用来传送单个的字节、字、双字、实数。
指令格式及功能如表5-1所示。
表5-1单个数据传送指令MOV指令格式使ENO = 0即使能输出断开的错误条件是:SM4.3(运行时间),0006(间接寻址错误)。
【例5-1】将变量存储器VW10中内容送到VW100中。
程序如图5-1所示。
LD I0.1MOVW VW10, VW100图5-1 例5-1题图2. 字节、字、双字、实数数据块传送指令BLKMOV数据块传送指令将从输入地址IN 开始的N 个数据传送到输出地址OUT 开始的N 个单元中,N 的范围为1至255,N 的数据类型为:字节。
指令格式及功能如表5-2所示。
表5-2 数据传送指令BLKMOV 指令格式使ENO = 0的错误条件:0006(间接寻址错误)0091(操作数超出范围)。
【例5-2】程序举例:将变量存储器VB20开始的4个字节(VB20-VB23)中的数据,移至VB100开始的4个字节中(VB100-VB103)。
程序如图5-2所示。
LAD STLLD I0.0BMB VB20 ,VB100, 4图5-2 例5-2图程序执行后,将VB20~VB23中的数据30、31、32、33送到VB100~VB103。
执行结果如下:数组1数据 30 31 32 33数据地址 VB20 VB21 VB22 VB23块移动执行后:数组2数据 30 31 32 33数据地址 VB100 VB101 VB102 VB1035.1.2 字节交换、字节立即读写指令1. 字节交换指令字节交换指令用来交换输入字IN 的最高位字节和最低位字节。
S7-200指令表

LDB>=IN1,IN2 AB>=IN1,IN2 OB>=IN1,IN2
字节小于等于指令
<=B
LDB<=IN1,IN2 AB<=IN1,IN2 OB<=IN1,IN2
字节大于指令
>B
LDB>IN1,IN2 AB>IN1,IN2 OB>IN1,IN2
字节小于指令
<B
LDB<IN1,IN2 AB<IN1,IN2 OB<IN1,IN2
ADD-I
MOVW IN1 ,OUT +1 IN2 ,OUT
整数减法指令
SUB-I
MOVW IN1 ,OUT-1 IN2 ,OUT
整数乘法指令
MUL-I
MOVW IN1 ,OUT*1 IN2 ,OUT
整数除法指令
DIV-I
MOVW IN1 ,OUT/1 IN2 ,OUT
完全整数乘法指令
MUL
MOVW IN1 ,OUTMULIN2 ,OUT
实数小于等于指令
<=R
LDR<=IN1,IN2 AR<=IN1,IN2 OR<=IN1,IN2
实数大于指令
>R
LDR>IN1,IN2 AR>IN1,IN2 OR>IN1,IN2
实数小于指令
<R
LDR<IN1,IN2 AR<IN1,IN2 OR<IN1,IN2
字符串比较指令
字符串等于比较指令
==S
LDS=IN1,IN2 AS=IN1,IN2 OS=IN1,IN2
完全整数除法指令
DIV
MOVW IN1 ,OUTDIVIN2 ,OUT
S7-200系列PLC的功能指令表

一般的逻辑控制系统用软继电器、定时器和计数器及基本指令就可以实现。
利用功能指令可以开发出更复杂的控制系统,以致构成网络控制系统。
这些功能指令实际上是厂商为满足各种客户的特殊需要而开发的通用子程序。
功能指令的丰富程度及其合用的方便程度是衡量PLC性能的一个重要指标。
S7-200的功能指令很丰富,大致包括这几方面:算术与逻辑运算、传送、移位与循环移位、程序流控制、数据表处理、PID指令、数据格式变换、高速处理、通信以及实时时钟等。
功能指令的助记符与汇编语言相似,略具计算机知识的人学习起来也不会有太大困难。
但S7-200系列PLC功能指令毕竟太多,一般读者不必准确记忆其详尽用法,需要时可可查阅产品手册。
表4-20 四则运算指令
表4-21 逻辑运算指令
表4-22 数据传送指令
表4-23 移位与循环移位指令
表4-24 交换和填充指令
表4-25 表操作指令
表4-26 数据转换指令
表4-27 特殊指令。
西门子S7-200 PLC指令学习(1)

西门子S7-200 PLC指令学习S7-200系列的基本逻辑指令S7-200系列的基本逻辑指令与FX系列和CPM1A系列基本逻辑指令大体相似,编程和梯形图表达方式也相差不多,这里列表表示S7-200系列的基本逻辑指令(见表)。
表S7-200系列的基本逻辑指令S7-200系列PLC的比较指令在SIEMENS S7-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预置值必须大于最小需要的时间间隔。
S7-200编程指令

40 BIW 41 BMB 42 BMW 43 BMD 44 SWAP
45 SHRB
46 SRB 47 SRW 48 SRD
立即写
IN,OUT
100
输入IN为VB,IB,QB,MB,*AC, *LD等;OUT为QB。
字节块传送 IN,OUT,N
BLKMOV-B(W,D)
100
EN 字块传送 IN,OUT,N
35 MOVB 字节传送 IN,OUT
MOV-B(W,D,R) 100
36 MOVW 字传送
IN,OUT
EN
37 MOVD 双字传送 IN,OUT
100 ENO 100
38 MOVR 实数传送 IN,OUT
IN
39 BIR 立即读
IN,OUT
100 OUT
100
输入IN为IB;OUT为VB,IB,QB, MB,*AC,*LD,等ቤተ መጻሕፍቲ ባይዱ
58 FILL
用指定的元素填 充存储空间
IN,OUT,N IN
为数据;OUT为WORD 型,N为数字
EN IN N
同上 同上
字节,字,双字向右循
102
环移位可理解为字节的低 位向高位循环移动。或右
102 边的数向左循环转移。
102 字节,字,双字向左循
102
环移位可理解为字节的高 位向低位循环移动,或左
11 ON
取反后或
N
40
12 ONI 立即取反后或 13 LDBx 装载字节比较
N IN1,IN2
43 X:<,<﹦,=,﹦>,>,<> 99
14 ADx 与字节比较
IN1,IN2
X:<,<﹦,=,﹦>,>,<> 99
S7-200指令表

S7-200指令表指令名称梯形图语句表触点指令常开触点LD A O 位地址常闭触点LDN AN ON位地址常开立即触点LDI AI OI 位地址常闭立即触点LDNI ANI ONI位地址取反触点NOT正转换触点P EU负转换触点N ED线圈指令输出指令-()=位地址置位指令-( S )S 位地址、个数复位指令-( R )R 位地址、个数立即输出指令-( I )=I 位地址立即置位指令-(SI )SI 位地址、个数立即复位指令-(RI )RI 位地址、个数时间指令接通延时定时器TON TON T××PT(预设值)有记忆接通延时定时器TONR TONR T××PT 断开延时定时器TOF TOF T××PT 触发时间间隔指令BGN__ITIME BITIM OUT计算时间间隔指令CAL__ITIME CITIM IN OUT计数器指令增计数器CTU CTU C××PV(预设值)减计数器CTD CTD C××PV增减计数器CTUD CTUD C××PV普通传送指令字节传送指令MOV__B MOVB IN,OUT 字传送指令MOV__W MOVW IN,OUT 双字传送指令MOV__DW MOVD IN,OUT 实数传送指令MOV__R MOVR IN,OUT字节指令字节立即读指令MOV__BIR BIR IN ,OUT 字节立即写指令MOV__BIW BIW IN ,OUT块传送指令字节块传送指令BLKMOV__B BMB IN,OUT,N(数目)字块传送指令BLKMOV__W BMW IN,OUT,N(数目) 双字块传送指令BLKMOV__D BMD IN,OUT,N(数目)交换指令字节交换指令SWAP S字节比较指令字节等于比较指令==B LDB=IN1,IN2 AB=IN1,IN2 OB=IN1,IN2 字节不等于指令<>B LDB<>IN1,IN2 AB<>IN1,IN2 OB<>IN1,IN2 字节大于等于指令>=B LDB>=IN1,IN2 AB>=IN1,IN2 OB>=IN1,IN2 字节小于等于指令<=B LDB<=IN1,IN2 AB<=IN1,IN2 OB<=IN1,IN2 字节大于指令>B LDB>IN1,IN2 AB>IN1,IN2 OB>IN1,IN2 字节小于指令整数比较整数等于比较指令==I LDW=IN1,IN2 AW=IN1,IN2 OW=IN1,IN2 整数不等于指令<>I LDW<>IN1,IN2 AW<>IN1,IN2 OW<>IN1,IN2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S7-200系列的基本逻辑指令与FX系列和CPM1A系列基本逻辑指令大体相似,编程和梯形图表达方式也相差不多,这里列表表示S7-200系列的基本逻辑指令(见表)。
表S7-200系列的基本逻辑指令S7-200系列PLC的比较指令在SIEMENS S7-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时基定时器实现140m s延时(时间间隔),则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”与MODICON PLC的定时器指令对照:区别:对MODICON PLC,当10001=“0” ,10002=“1”时,定时器当前值保持;当计时时间到,即(40040)= 30时,只要10002=“1”,定时器也是保持对S7-200 PLC,只要I0.0=“1”,即计时,当T33当前值=3时,定时器继续计时,直至I 0.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~C255CTUD——增减计数计数器6个要素:指令格式(类型、编号等)预置值——PV使能——CU、CD 复位——R、LD当前值——Cxxx 计数器状态(位)——与定时器类似2)功能、时序图及应用示例此例为一个增减计数器的应用示例,其与MODICON PLC计数器指令的比较,同学可自己进行,并注意到,计数器指令的使能均是采样上升沿(“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-19NOT、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之间)。
比较式可以是LD D、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=、A R<>、OR>=等。
实数INl和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD 和常数。
指令格式例如:LDR= VDl0,VDl2S7-200PLC功能指令概述般的逻辑控制系统用软继电器、定时器和计数器及基本指令就可以实现。
利用功能指令可以开发出更复杂的控制系统,以致构成网络控制系统。
这些功能指令实际上是厂商为满足各种客户的特殊需要而开发的通用子程序。
功能指令的丰富程度及其合用的方便程度是衡量PL C性能的一个重要指标。
S7-200的功能指令很丰富,大致包括这几方面:算术与逻辑运算、传送、移位与循环移位、程序流控制、数据表处理、PID指令、数据格式变换、高速处理、通信以及实时时钟等。
功能指令的助记符与汇编语言相似,略具计算机知识的人学习起来也不会有太大困难。
但S 7-200系列PLC功能指令毕竟太多,一般读者不必准确记忆其详尽用法,需要时可可查阅产品手册。
S7-200PLC四则运算指令介绍四则运算指令如表4-20所示。
表4-20 四则运算指令S7-200PLC逻辑运算指令逻辑运算指令如表4-21所示。
表4-21 逻辑运算指令S7-200PLC数据传送指令数据传送指令如表4-22所示。
表4-22 数据传送指令S7-200PLC移位与循环移位指令移位与循环移位指令如表4-23所示。
表4-23 移位与循环移位指令S7-200PLC交换和填充指令交换和填充指令如表4-24所示。
表4-24 交换和填充指令S7-200PLC 表操作指令表操作指令如表4-25所示。
表4-25 表操作指令S7-200PLC 数据转换指令数据转换指令如表4-26所示。
表4-26 数据转换指令S7-200PLC 特殊指令特殊指令如表4-27所示。
PLC中一些实现特殊功能的硬件需要通过特殊指令来使用,可实现特定的复杂的控制目的,同时程序的编制非常简单。
表4-27 特殊指令。