您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
三六零分类信息网 > 达州分类信息网,免费分类信息发布

西门子S7-200PLC指令学习技巧

2025/12/29 10:22:02发布38次查看
s7-200系列的基本逻辑指令与fx系列和cpm1a系列基本逻辑指令大体相似,编程和梯形图表达方式也相差不多,这里列表表示s7-200系列的基本逻辑指令(见表)。
表 s7-200系列的基本逻辑指令
指令名称
指令符
功能
操作数

ld bit
读入逻辑行或电路块的个常开接点
bit:
i,q,m,sm,t,c,v,s
取反
ldn bit
读入逻辑行或电路块的个常闭接点

a bit
串联一个常开接点
与非
an bit
串联一个常闭接点

o bit
并联一个常开接点
或非
on bit
并联一个常闭接点
电路块与
ald
串联一个电路块

电路块或
old
并联一个电路块
输出
= bit
输出逻辑行的运算结果
bit:q,m,sm,t,c,v,s
置位
s bit,n
置继电器状态为接通
bit:
q,m,sm,v,s
复位
r bit,n
使继电器复位为断开
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时基定时器实现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”
与modicon plc的定时器指令对照:
区别:对modicon plc,当10001=“0” ,10002=“1”时,定时器当前值保持;当计时时间到,即(40040)= 30时,只要10002=“1”,定时器也是保持
对s7-200 plc, 只要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)功能、时序图及应用示例
此例为一个增减计数器的应用示例,其与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-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 四则运算指令
名称
指令格式
(语句表)
功能
操作数寻址范围
加法指令
+i in1,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和常数
+d in1,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和常数
+r in1,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还可以常数
减法指令
-i in1,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和常数
-d in1,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和常数
-r in1,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还可以常数
乘法指令
*i in1,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和常数
mul in1,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
*d in1,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和常数
*r in1,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还可以是常数
除法指令
/i in1,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和常数
div in1,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
/d in1,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和常数
/r in1,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还可以是常数
数学函数指令
sqrt in,out
把一个32位实数(in)开平方,得到32位实数结果(out)
in,out:vd,id,qd,md,sd,smd,ld,ac,*vd,*ac,*ld
in还可以是常数
ln in,out
对一个32位实数(in)取自然对数,得到32位实数结果(out)
exp in,out
对一个32位实数(in)取以e为底数的指数,得到32位实数结果(out)
sin in,out
分别对一个32位实数弧度值(in)取正弦、余弦、正切,得到32位实数结果(out)
cos in,out
tan in,out
增减指令
incb out
将字节无符号输入数加1
执行结果:out+1=out(在lad和fbd中为:in+1=out)
in,out:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld
in还可以是常数
decb out
将字节无符号输入数减1
执行结果:out-1=out(在lad和fbd中为:in-1=out)
incw out
将字(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和常数
decw out
将字(16位)有符号输入数减1
执行结果:out-1=out(在lad和fbd中为:in-1=out)
incd out
将双字(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和常数
decd out
将字(32位)有符号输入数减1
执行结果:out-1=out(在lad和fbd中为:in-1=out)
s7-200plc逻辑运算指令
逻辑运算指令如表4-21所示。
表4-21 逻辑运算指令
名称
指令格式
(语句表)
功能
操作数
字节逻辑运算指令
andb in1,out
将字节in1和out按位作逻辑与运算,out输出结果
in1,in2,out:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld
in1和in2还可以是常数
orb in1,out
将字节in1和out按位作逻辑或运算,out输出结果
xorb in1,out
将字节in1和out按位作逻辑异或运算,out输出结果
invb out
将字节out按位取反,out输出结果
字逻辑运算指令
andw in1,out
将字in1和out按位作逻辑与运算,out输出结果
in1,in2,out:vw,iw,qw,mw,sw,smw,lw,t,c,ac,*vd,*ac,*ld
in1和in2还可以是aiw和常数
orw in1,out
将字in1和out按位作逻辑或运算,out输出结果
xorw in1,out
将字in1和out按位作逻辑异或运算,out输出结果
invw out
将字out按位取反,out输出结果
双字逻辑运算指令
andd in1,out
将双字in1和out按位作逻辑与运算,out输出结果
in1,in2,out:vd,id,qd,md,sd,smd,ld,ac,*vd,*ac,*ld
in1和in2还可以是hc和常数
ord in1,out
将双字in1和out按位作逻辑或运算,out输出结果
xord in1,out
将双字in1和out按位作逻辑异或运算,out输出结果
invd out
将双字out按位取反,out输出结果
s7-200plc数据传送指令
数据传送指令如表4-22所示。
表4-22 数据传送指令
名称
指令格式
(语句表)
功能
操作数
单一传送指令
movb in,out
将in的内容拷贝到out中
in和out的数据类型应相同,可分别为字,字节,双字,实数
in,out:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld
in还可以是常数
movw in,out
in,out:vw,iw,qw,mw,sw,smw,lw,t,c,ac,*vd,*ac,*ld
in还可以是aiw和常数
out还可以是aqw
movd in,out
in,out:vd,id,qd,md,sd,smd,ld,ac,*vd,*ac,*ld
in还可以是hc,常数,&vb,&ib,&qb,&mb,&t,&c
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
biw in,out
立即将in单元的值写到out所指的物理输出区
in:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld和常数
out:qb
块传送指令
bmb in,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和常数
bmw in,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和常数
bmd in,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 移位与循环移位指令
名称
指令格式
(语句表)
功能
操作数
字节移位指令
srb out,n
将字节out右移n位,左边的位依次用0填充
in,out,n:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld
in和n还可以是常数
slb out,n
将字节out左移n位,右边的位依次用0填充
rrb out,n
将字节out循环右移n位,从右边移出的位送到out的左位
rlb out,n
将字节out循环左移n位,从左边移出的位送到out的右位
字移位指令
srw out,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,常数
slw out,n
将字out左移n位,右边的位依次用0填充
rrw out,n
将字out循环右移n位,从右边移出的位送到out的左位
rlw out,n
将字out循环左移n位,从左边移出的位送到out的右位
双字移位指令
srd out,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,常数
sld out,n
将双字out左移n位,右边的位依次用0填充
rrd out,n
将双字out循环右移n位,从右边移出的位送到out的左位
rld out,n
将双字out循环左移n位,从左边移出的位送到out的右位
位移位寄存器指令
shrb data,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交换和填充指令
交换和填充指令如表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和常数
out还可以是aqw
n:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld,常数
s7-200plc 表操作指令
表操作指令如表4-25所示。
表4-25 表操作指令
名称
指令格式
(语句表)
功能
操作数
表存数指令
att data,table
将一个字型数据data添加到表table的末尾。ec值加1
data,table:vw,iw,qw,mw,sw,smw,lw,t,c,ac,*vd,*ac,*ld
data还可以是aiw,ac和常数
表取数指令
fifo table,data
将表table的个字型数据删除,并将它送到data指定的单元。表中其余的数据项都向前移动一个位置,同时实际填表数ec值减1
data,table:vw,iw,qw,mw,sw,smw,lw,t,c, *vd,*ac,*ld
data还可以是aqw和ac
lifo table,data
将表table的后一个字型数据删除,并将它送到data指定的单元。剩余数据位置保持不变,同时实际填表数ec值减1
表查找指令
fnd= tbl,ptn,index
fnd<> tbl,ptn,index
fnd< tbl,ptn,index
fnd> tbl,ptn,index
搜索表tbl,从index指定的数据项开始,用给定值ptn检索出符合条件(=,<>,<,>)的数据项
如果找到一个符合条件的数据项,则index指明该数据项在表中的位置。如果一个也找不到,则index的值等于数据表的长度。为了搜索下一个符合的值,在再次使用该指令之前,必须先将index加1
tbl:vw,iw,qw,mw,smw,lw,t,c, *vd,*ac,*ld
ptn,index:vw,iw,qw,mw,sw,smw,lw,t,c,ac, *vd,*ac,*ld
ptn还可以是aiw和ac
s7-200plc 数据转换指令
数据转换指令如表4-26所示。
表4-26 数据转换指令
名称
指令格式
(语句表)
功能
操作数
数据类型转换指令
bti in,out
将字节输入数据in转换成整数类型,结果送到out,无符号扩展
in:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld,常数
out:vw,iw,qw,mw,sw,smw,lw,t,c,ac,*vd,*ac,*ld
itb in,out
将整数输入数据in转换成一个字节,结果送到out。输入数据超出字节范围(0~255)则产生溢出
in:vw,iw,qw,mw,sw,smw,lw,t,c,aiw,ac,*vd,*ac,*ld,常数
out:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld
dti in,out
将双整数输入数据in转换成整数,结果送到out。
in:vd,id,qd,md,sd,smd,ld,hc,ac,*vd,*ac,*ld,常数
out:vw,iw,qw,mw,sw,smw,lw,t,c,ac,*vd,*ac,*ld
itd in,out
将整数输入数据in转换成双整数(符号进行扩展),结果送到out
in:vw,iw,qw,mw,sw,smw,lw,t,c,aiw,ac,*vd,*ac,*ld,常数
out:vd,id,qd,md,sd,smd,ld,ac,*vd,*ac,*ld
round in,out
将实数输入数据in转换成双整数,小数部分四舍五入,结果送到out
in,out:vd,id,qd,md,sd,smd,ld,ac,*vd,*ac,*ld
in还可以是常数
在round指令中in还可以是hc
trunc in,out
将实数输入数据in转换成双整数,小数部分直接舍去,结果送到out
dtr in,out
将双整数输入数据in转换成实数,结果送到out
in,out:vd,id,qd,md,sd,smd,ld,ac,*vd,*ac,*ld
in还可以是hc和常数
bcdi out
将bcd码输入数据in转换成整数,结果送到out。in的范围为0~9999
in,out:vw,iw,qw,mw,sw,smw,lw,t,c,ac,*vd,*ac,*ld
in还可以是aiw和常数
ac和常数
ibcd out
将整数输入数据in转换成bcd码,结果送到out。in的范围为0~9999
编码译码指令
enco in,out
将字节输入数据in的低有效位(值为1的位)的位号输出到out指定的字节单元的低4位
in:vw,iw,qw,mw,sw,smw,lw,t,c,aiw,ac,*vd,*ac,*ld,常数
out:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld
deco in,out
根据字节输入数据in的低4位所表示的位号将out所指定的字单元的相应位置1,其它位置0
in:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld,常数
in:vw,iw,qw,mw,sw,smw,lw,t,c,aqw,ac,*vd,*ac,*ld
段码指令
seg in,out
根据字节输入数据in的低4位有效数字产生相应的七段码,结果输出到out,out的高位恒为0
in,out:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld
in还可以是常数
字符串转换指令
ath in,out,len
把从in开始的长度为len的ascⅱ码字符串转换成16进制数,并存放在以out为首地址的存储区中。合法的ascⅱ码字符的16进制值在30h~39h,41h~46h之间,字符串的大长度为255个字符
in,out,len:vb,ib,qb,mb,sb,smb,lb,*vd,*ac,*ld
len还可以是ac和常数
s7-200plc 特殊指令
特殊指令如表4-27所示。plc中一些实现特殊功能的硬件需要通过特殊指令来使用,可实现特定的复杂的控制目的,同时程序的编制非常简单。
表4-27 特殊指令
名称
指令格式
(语句表)
功能
操作数
中断指令
atch int,evnt
把一个中断事件(evnt)和一个中断程序联系起来,并允许该中断事件
int:常数
evnt:常数(cpu221/222:0~12,19~23,27~33;cpu224:0~23,27~33;cpu226:0~33)
dtch evnt
截断一个中断事件和所有中断程序的联系,并禁止该中断事件
eni
全局地允许所有被连接的中断事件

disi
全局地关闭所有被连接的中断事件
creti
根据逻辑操作的条件从中断程序中返回
reti
位于中断程序结束,是必选部分,程序编译时软件自动在程序结尾加入该指令
通信指令
netr tbl,port
初始化通讯操作,通过指令端口(port)从远程设备上接收数据并形成表(tbl)。可以从远程站点读多16个字节的信息
tbl:vb,mb,*vd,*ac,*ld
port:常数
netw tbl,port
初始化通讯操作,通过指定端口(port)向远程设备写表(tbl)中的数据,可以向远程站点写多16个字节的信息
xmt tbl,port
用于自由端口模式。指定激活发送数据缓冲区(tbl)中的数据,数据缓冲区的个数据指明了要发送的字节数,port指定用于发送的端口
tbl:vb,ib,qb,mb,sb,smb,*vd,*ac,*ld
port:常数(cpu221/222/224为0;cpu226为0或1)
rcv tbl,port
激活初始化或结束接收信息的服务。通过指定端口(port)接收的信息存储于数据缓冲区(tbl),数据缓冲区的个数据指明了接收的字节数
gpa addr,port
读取port指定的cpu口的站地址,将数值放入addr指定的地址中
addr:vb,ib,qb,mb,sb,smb,lb,ac,*vd,*ac,*ld
在spa指令中addr还可以是常数
port:常数
spa addr,port
将cpu口的站地址(port)设置为addr指定的数值
时钟指令
todr t
读当前时间和日期并把它装入一个8字节的缓冲区(起始地址为t)
t:vb,ib,qb,mb,sb,smb,lb,*vd,*ac,*ld
todw t
将包含当前时间和日期的一个8字节的缓冲区(起始地址是t)装入时钟
高速计数器指令
hdef hsc,mode
为指定的高速计数器分配一种工作模式。每个高速计数器使用之前必须使用hdef指令,且只能使用一次
hsc:常数(0~5)
mode:常数(0~11)
hsc n
根据高速计数器特殊存储器位的状态,按照hdef指令指定的工作模式,设置和控制高速计数器。n指定了高速计数器号
n:常数(0~5)
高速脉冲输出指令
pls q
检测用户程序设置的特殊存储器位,激活由控制位定义的脉冲操作,从q0.0或q0.1输出高速脉冲
可用于激活高速脉冲串输出(pto)或宽度可调脉冲输出(pwm)
q:常数(0或1)
pid回路指令
pid tbl,loop
运用回路表中的输入和组态信息,进行pid运算。要执行该指令,逻辑堆栈顶(tos)必须为on状态。tbl指定回路表的起始地址,loop指定控制回路号
回路表包含9个用来控制和监视pid运算的参数:过程变量当前值(pv n ),过程变量前值(pv n-1 ),给定值(sp n ),输出值(m n ),增益(kc),采样时间(ts),积分时间(ti),微分时间(td)和积分项前值(mx)
为使pid计算是以所要求的采样时间进行,应在定时中断执行中断服务程序或在由定时器控制的主程序中完成,其中定时时间必须填入回路表中,以作为pid指令的一个输入参数
tbl:vb
loop:常数
达州分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product