西门子S7-200PLC指令简介及实例分析_第1页
西门子S7-200PLC指令简介及实例分析_第2页
西门子S7-200PLC指令简介及实例分析_第3页
西门子S7-200PLC指令简介及实例分析_第4页
西门子S7-200PLC指令简介及实例分析_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据处理、运算指令及应用本章要点数据传送、字节交换、字节立即读写、移位、转换指令的介绍、应用及实训算术运算、逻辑运算、递增 /递减指令的介绍、应用及实训表的定义、填表指令、表取数指令、填充指令、表查找指令的介绍5.1 数据处理指令5.1.1数据传送指令1 .字节、字、双字、实数单个数据传送指令mov数据传送指令5-1所示。mov ,用来传送单个的字节、字、双字、实数。指令格式及功能如表表5-1单个数据传送指令 mov指令格式ladmw eem enoin aurmov.wen enqn outmdv.dwen enoin outen enoin out- -1 ?w.stlmovb in ,

2、outmovw in , outmovd in , outmovr in , out操作 数及 数据 类型in : vb, ib, qb, mb, sb, smb, lb, ac,常量 out: vb, ib, qb, mb, sb, smb, lb, acin : vw, iw, qw, mw, sw, smw, lw, t, c, aiw,常量,acout: vw, t, c, iw, qw, sw, mw, smw, lw, ac, aqwin : vd, id, qd, md, sd, smd, ld, hc, ac,常量 out: vd, id, qd, md, sd, smd, l

3、d, acin : vd, id, qd, md, sd, smd, ld, ac,常量 out : vd, id, qd, md, sd, smd, ld, ac字节字、整数双字、双整数实数功能使能输入有效时,即 en=1时,将一个输入in的字节、字/整数、双字/双整数或实数送到 out指定的 存储器输出。在传送过程中不改变数据的大小。传送后,输入存储器in中的内容不变使eno = 0即使能输出断开的错误条件是:sm4.3 (运行时间),0006 (间接寻址错误)ldi0.1movw vw10, vw100【例5-1】将变量存储器 vw10中内容送到vw100中。程序如图5-1所示。 lnl

4、no j xww hout wico图5-1 例5-1题图2.字节、字、双字、实数数据块传送指令blkmov数据块传送指令将从输入地址in开始的n个数据传送到输出地址out开始的n个单元中,n的范围为1至255, n的数据类型为:字节。指令格式及功能如表5-2所示。lad?.?-en enoin outn1?en enoin out.?en enoin cutnstlbmb in , outbmw in , outbmd in , out操作 数及 数据 类型in : vb, ib, qb, mb, sb,smb, lb oout: vb, ib, qb, mb, sb,smb, lb o数据

5、类型:字节in : vw, iw, qw, mw, sw,smw, lw, t, c, aiw oout: vw, iw, qw, mw, sw,smw, lw, t, c, aqw。数据类型:字in/ out : vd, id, qd,sd, smd, ld o数据类型:双字md,n: vb, ib, qb, mb, sb, smb, lb, ac, 常量;数据类型:字节;数据范围:1-255功能使能输入有效时,即en=1时,把从输入in开始的n个字节(字、双字)传送到以输出out 开始的n个字节(字、双字)中表5-2数据传送指令blkmov指令格式如图5-2所示。使eno=0的错误条 件:

6、0006 (间 接寻址错误)0091 (操作数 超出范围)。【 例5-2】程序举 例:将变量存储器vb20开 始白4个字节(vb20-vb23 )中的数 据,移至vb100 开始 的4个字节中(vb100-vb103)。程序ladld i0.0bmb vb20 , vb100 , 4stl图5-2例5-2图执行结果如下:数组1数据30313233数据地址vb20vb21vb22vb23块移动执行后:数组 2数据30313233数据地址vb100vb101vb102vb103程序执行后,将 vb20vb23中的数据30、31、32、33送到vb100vb103。5.1.2字节交换、字节立即读写指

7、令1.字节交换指令字节交换指令用来交换输入字in的最高位字节和最低位字节。指令格式如表5-3所示。ladstl功能及说明即n eno阳juswap in功能:使能输入 en有效时,将输入字in 的高字节与低字节交换,结果仍放在in中in : vw, iw, qw, mw, sw, smw, t, c, lw, ac。数据类型:字?;表5-3字节交换指令使用格式及功能eno = 0的错误条件:0006 (间接寻址错误),sm4.3 (运行时间)【例5-3】字节交换指令应用举例。如图 程序执行结果:指令执行之前 vw50中的字为:d6 c3指令执行之后 vw50中的字为:c3 d65-3所示。2.

8、字节立即读写指令10.1-ld 10.1s播p vw50图例工3题图字节立即读指令(mov-bir )读取实际输入端in给出的1个字节的数值, 的存储单元,但输入映像寄存器未更新。字节立即写指令从输入 in所指定的存储单元中读取 1个字节的数值并写入 出out端的物理输出点,同时刷新对应的输出映像寄存器。指令格式及功能如表并将结果写入out所指定(以字节为单位)实际输5-4所示。?lad出efj endin aui表5-4字节立即读写指令格式stl功能及说明功能:字节立即读in : ibbir in , outout: vb, ib, qb, mb, sb, smb, lb, ac数据类型:字

9、节utmoorweno功能:字节立即写-?biw in , outin : vb, ib, qb, mb, sb, smb, lb, ac, 常量out: qb数据类型:字节使eno = 0的错误条件:0006 (间接寻址错误),sm4.3 (运行时间)。注意:字节立即读写指令无法 存取扩展模块。5.1.3移位指令及应用举例移位指令分为左、右移位和循环左、右移位及寄存器移位指令三大类。前两类移位指令按移位数据的长度又分字节型、字型、双字型3种。1.左、右移位指令sm1.1位。移位数左、右移位数据存储单元与 sm1.1 (溢出)端相连,移出位被放到特殊标志存储器5-5。据存储单元的另一端补 0。

10、移位指令格式见表 (1)左移位指令(shl)使能输入有效时,将输入 in的无符号数字节、字或双字中的各位向左移 n位后(右端补0),将结果 输出到out所指定的存储单元中, 如果移位次数大于 0,最后一次移出位保存在 “溢出”存储器位sm1.1。 如果移位结果为 0,零标志位 sm1.0置1。(2)右移位指令使能输入有效时,将输入 in的无符号数字节、字或双字中的各位向右移n位后,将结果输出到 out所指定的存储单元中, 移出位补0,最后一移出位保存在 sm1.1。如果移位结果为0,零标志位sm1.0置1。(3)使eno = 0的错误条件:0006 (间接寻址错误),sm4.3 (运行时间)l

11、ad?_shl_ben enoin outm???en enoin outn,?-men enoin outn77?* ?.shr.ben endin outnt?- ?.shrwen endin outn?. ?shh.dwen en。in outn1stlslb out, nsrb out, nslw out, nsrw out, nsld out, nsrd out, n操作 数及 数据 类型in : vb, ib, qb, mb, sb, smb, lb, ac,常量。out: vb, ib, qb, mb, sb,smb, lb, ac o数据类型:字节in : vw, iw, qw

12、, mw, sw, smw, lw, t, c, aiw, ac,常 里。out : vw, iw, qw, mw, sw, smw, lw, t, c, ac o 数据类型:字in : vd, id, qd, md, sd, smd, ld, ac, hc, 常量。out: vd, id, qd, md, sd,smd, ld, ac o数据类型:双字n: vb, ib, qb, mb, sb, smb, lb, ac, 常量;数据类型:字节;数据范围:n吸据类型(b、w、d)对应的位数功能shl:字节、字、双字左移 n位;shr:字节、字、双字右移 n位表5-5移位指令格式及功能说明:在

13、stl指令中,若 in和out指定 的存储器不同, 则须首先使用 数据传送指令 mov将in中 的数据送入 out所指定的 存储单元。如:ovb in , outlb out , n2.循环左、右移位指令循环移位 将移位数据存 储单元的首尾 相连,同时又与溢出标志sm1.1连接,sm1.1用来存放被移出的位。指令格式见表5-6。(1)循环左移位指令(rol)使能输入有效时,将in输入无符号数(字节、字或双字)循环左移n位后,将结果输出到 out所指定的存储单元中,移出的最后一位的数彳1送溢出标志位sm1.1。当需要移位的数值是零时, 零标志位sm1.0为1。(2)循环右移位指令(ror)使能输

14、入有效时,将in输入无符号数(字节、字或双字)循环右移n位后,将结果输出到 out所指定的存储单元中,移出的最后一位的数彳1送溢出标志位sm1.1。当需要移位的数值是零时, 零标志位sm1.0为1。(3)移位次数n1数据类型(b、w、d)时的移位位数的处理如果操作数是字节,当移位次数n8时,则在执行循环移位前,先对 n进行模8操作(n除以8后取余数),其结果0-7为实际移动位数。如果操作数是字,当移位次数n 16时,则在执行循环移位前,先对 n进行模16操作(n除以16后取余数),其结果0-15为实际移动位数。如果操作数是双字,当移位次数nl 32时,则在执行循环移位前,先对 n进行模32操作

15、(n除以32后取余数),其结果0-31为实际移动位数。(4)使eno = 0的错误条件:0006 (间接寻址错误),sm4.3 (运行时间)。ladrolben enoin outnr0l.wen endin 0u7nsir0l_dwemem口in outm1”?r 7?- i . z?,ror_bem endin outn|r0r_wen enoin outn1ror_dwen enoin outn普.21?, ?.?.21stlrlb out, nrrb out, nrlw out, nrrw out, nrld out, nrrd out, n操作 数及 数据 类型in : vb, ib

16、, qb, mb, sb, smb, lb, ac,常量。out: vb, ib, qb, mb, sb, smb, lb, ac o 数据类型:字节in : vw, iw, qw, mw, sw, smw, lw, t, c, aiw, ac,常-m 里。out : vw, iw, qw, mw, sw,smw, lw, t, c, ac o数据类型:字in : vd, id, qd, md, sd, smd, ld, ac, hc, 常量。out : vd, id, qd, md, sd, smd, ld, ac o 数据类型:双字n: vb, ib, qb, mb, sb, smb, l

17、b, ac, 常量;数据类型:字节。功能rol:字节、字、双字循环左移n位;ror:字节、字、双字循环右移 n位。表5-6循环左、右移位指令格式及功能图5-4所示。说明:在 stl指令中,若 in和out指定 的存储器不同, 则须首先使用 数据传送指令 mov将in中 的数据送入 out所指定的 存储单元。如:movb in , outlb out ,n【例5-4】程序 应用举例,将 ac0中的字循 环右移2位,将 vw200中的字 左移3位。程序 及运行结果如图5-4 例5-4题图【例5-5】用i0.0控制接在q0.0q0.7上白8 8个彩灯循环移位, 从左到右以0.5s的速度依次点亮, 保

18、 持任意时刻只有一个指示灯亮,到达最右端后,再从左到右依次点亮。分析:8个彩灯循环移位控制,可以用字节的循环移位指令。根据控制要求,首先应置彩灯的初始状态为qb0=1 ,即左边第一盏灯亮;接着灯从左到右以0.5s的速度依次点亮,即要求字节qb0中的“1”用循环左移位指令每 0.5s移动一位,因此须在 rol-b指令的en端接一个0.5s的移位脉冲(可用定时器指/,- v.eh enqaco循环右移前aco循环右移后vw200左移位前卜13期1 00 1口0口vw200左移位后1.stlbcdioutibcd out操作数及数 据类型in : vw, iw, qw, mw, sw, smw, l

19、w, t, c, aiw, ac, out : vw, iw, qw, mw, sw, smw, lw, t, c, ac in/out数据类型:字常量功能及 说明bcd-i指令将二进制编码的十进制数 in转换成整数, 并将结果送入 out指定的存储单元。in的有效范围 是bcd码0至9999i-bcd指令将输入整数in转换成二进制编码的十进 制数,并将结果送入 out指定的存储单元。in的 有效范围是0至9999eno=0的错误条件0006间接地址,sm1.6无效bcd数值,sm4.3 运行时间注意:(1)数据长度为字的 bcd格式的有效范围为:。9999 (十进制),00009999(十六

20、进制)0000 00000000 00001001 1001 1001 1001 (bcd 码)。(2)指令影响特殊标志位 sm1.6 (无效bcd)。(3)在表5-10的lad和stl指令中,in和out的操作数地址相同。若 in和out操作数地址不 是同一个存储器,对应的语句表指令为:mov in outbcdi out5 .译码和编码指令译码和编码指令的格式和功能如表5-11所示。表5-11译码和编码指令的格式和功能laddecoen emoin outenc0em enoin out7?.?-stldeco in,outenco in,out操作数及数 据类型in:vb, ib, qb

21、, mb, smb, lb, sb, ac,常量。数据类型:字节out vw, iw, qw, mw, smw, lw, sw, aqw, t, c, ac。 数据类型:字in:vw, iw, qw, mw, smw, lw, sw, aiw, t, c, ac, 常量。数据类型:字out vb, ib, qb, mb, smb, lb, sb, ac。数据类型:字节功能及 说明译码指令根据输入字节(in)的低4位表示的输出字 的位号,将输出字的相对应的位,置位为1,输出字的 其他位均置位为0编码指令将输入字(in)最低有效位(其值为1)的 位号写入输出字节(out的低4位中eno=0勺错误条

22、件0006 间接地址,sm4.3 运行时间【例5-8】译码编码指令应用举例。如图 5-11所示。ib设显示(cut)-d c b 4012 3 q5 67cd - nj rn r i_n0011 1111 dodo 0110 0 10 1 10 11 0 100 11110110 0110oho 110 1 0111 1101 0000 0 1 1 tin段显示-gt* de b a99 ab cd e fcd cr ix _o lj uj u.0111 1111 0110 01110111 0111 0 111 1 1q 0 oai 1 io o t0101 11100111 1001 0

23、111 oq 0 1若(ac2 ) =2 ,执行译码指令,则将输出字 vw40的第二位置1, vw40中的二进制数为 2#0000 0000 0000 0100;若(ac3)vb50中的错误码为2。=2#0000 0000 0000 0100 ,执行编码指令,则输出字节6.七段显示译图5-12 与七段显示码对应的代码七段显示器的abcdefg段分别对应于码指令ld 11.0deco ac2, vw40enco ac3, vb50字节的第0位第6位,字节的某位为1时,其图5-11例5-s译码编吗指令应用举例对应的段亮;输出字节的某位为0时,其对应的段暗。将字节的第7位补0,则构成与七段显示器相对

24、应的8位编码,称为七段显示码。数字 09、字母af与七段显示码的对应如图5-12所示。七段译码指令seg将输入字节16#0f转换成七段显示码。指令格如表5-12所示。表5-12七段显示译码指令ladstl功能及操作数seg in, out功能:将输入字节(in)的低四位确定的16进制数(16#0f),产生相应的七段显示码, 送入输出字节outin : vb, ib, qb, mb, sb, smb, lb, ac, 常量。 out: vb, ib, qb, mb, smb, lb, ac 。in/out 的数据类型:字节segen eno嗣 oiut使eno = 0的错误条件:0006 间接地

25、址,sm4.3 运行时间。【例5-9】编写显示数字 0的七段显示码的程序。程序实现如图5-13所示。ld i0.1seg 0, ac1图5-13 例5-9题图程序运行结果为 ac1中的值为16#3f(2#0011 1111)。7. ascii码与十六进制数之间的转换指令ascii码与十六进制数之间的转换指令指令格式和功能如表5-13所示。表5-13 ascii码与十六进制数之间转换指令的格式和功能athen enoin outlenhtafn enolad?.?.lb! outlen.?stlath in , out , lenhta in , out , len操作数及数据类型in/ out

26、 : vb, ib, qb, mb, sb, smb, lb 。数据类型:字节len : vb, ib, qb, mb, sb, smb, lb, ac, 常量。数据类型:字节。最 大侑为255守 f a133 | |45 |41 ath匡j 百t hvbtqml ivb10 ye11 vb12vb2d vb21n em 口 |、 in out ivb2o uen i功能及 说明ascii至hex (ath)指令将从in 开始的长度为 len的ascii字符 转换成十六进制数,放入从out开 始的存储单元hex 至 ascii (hta)指令将 从输入字节(in)开始的长度为len的十六进制数

27、转换成 ascii 字符,放入从out开始的存储单 元eno=0的错误条件0006间接地址,sm4.3 运行时间,0091操作数范围超界sm1.7 非法ascii数值(仅限 ath)注意:合法的 ascii码对应的十六进制数包括 30h到39h, 41h到46h。如果在ath指令的输入中包含非法的ascii码,则终止转换操作,特殊内部标志位sm1.7置位为1。【例5-10】将vb10vb12中存放的3个ascii码33、45、41,转换成十六进制数。梯形图和语句表程序如图5-14所示。ldi1.0athvb10, vb20, 3图5-14例5-10题图程序运行结果如下:可见将vb10vb12中

28、存放的3个ascii码33、45、41,转换成十六进制数 3e和ax ,放在 vb20 和vb21中,“x”表示vb21的“半字节”即低四位的值未改变。5.1.5天塔之光的模拟控制实训1.实训目的l6图工15天塔之光控制示意图(1)掌握移位寄存器指令的应用方法(2)用移位寄存器指令实现天塔之光控制系统(3)掌握plc的编程技巧和程序调试的方法2.控制要求如图5-15所示的天塔的灯光,可以用 plc控制灯光的闪耀移位及时序的变化等。控制要求如下:按起动按钮,l12-l11-l10-l8一 l1-l1、l2、l9 - l1、l5、l8-l1、l4、l7-l1、l3、l6 - l1 一 l2、l3、

29、l4、l5 一 l6、l7、l8、l9-l1、l2、l6 - l1、l3、l7 一 l1、l4、l8-l1、l5、l9 一 l1-l2、l3、l4、l5 一 l6、l7、l8、l9 一 l12 l11 - l10循环下去,直至按下停止按钮。3. i/o分配输入起动按钮:i0.0l10 q1.1停止按钮:i0.1l11 q1.2输出l1 : q0.0l4 q0.3l7 : q0.6l2 : q0.1l5 q0.4l8 : q0.7l3: q0.2 l6 q0.5l9 : q1.0l12 q1.34.程序设计分析:根据灯光闪亮移位,分为19步,因此可以指定一个19位的移位寄存器(m10.1m10.

30、7 ,m11.0 m11.7 , m12.0m12.3),移位寄存器的每一位对应一步。而对于输出,如: l1 (q0.0)分别在“ 5、6、7、 8、9、10、13、14、15、16、17”步时被点亮,即其对应的移位寄存器位“m10.5、m10.6、m10.7、m11.0、m11.1、m11.2、m11.5、m11.6、m12.0、m12.1 ”置位为1时,q0.0置位为1,所以需要将这些位所对应 的常开触点并联后输出q0.0,以此类推其它的输出。参考程序如图5-16所示。h5 1图5-16天塔之光控制梯形图iia. stpq0.45qo0 o. qqo._71 i 禄2 31.1lso r

31、0q a111le13.12.1 1 ,11.1 1 .19.1 1 .1 1 .1 1 .13.也 m11.11.通la.1 1 .19.13.la.幢ii.n./ tizmmltmmj.9 7 i qi i i i 3 e i , 了 jl- o i 1 hl di i i &- 2 i i. ii 4m- i t -9 2 i i 9 i 曹 ,i -73.q.11.3.uuutt5.输入、调试程序并运行程序图5-16天塔之光控制梯形图(续)6.思考题如果控制要求改为 l12 l11-l10 l8 l1 - l2、l3、l4、l5 一 l6、l7、l8、l9 ,循环如何修改程 序。输入程

32、序,调试观察现象。5.2算术运算、逻辑运算指令算术运算指令包括加、减、乘、除运算和数学函数变换,逻辑运算包括逻辑与或非指令等。5.2.1 算术运算指令1 .整数与双整数加减法指令整数加法(add-i )和减法(sub-i)指令是:使能输入有效时,将两个16位符号整数相加或相减,并产生一个16位的结果输出到out。双整数加法(add-d )和减法(sub-d)指令是:使能输入有效时,将两个 32位符号整数相加或相 减,并产生一个32位结果输出到out。整数与双整数加减法指令格式如表5-14所示。表5-14整数与双整数加减法指令格式ladi addj ijenenq 卜j1n1 outliljbj

33、ijen en 口卜jim outl恢1il addtr il “en enol dutu|i sue.di iren endjln1 gut istlmovw in1 , out+i in2 , 0utmovw in1 , out-i in2 , 0utmovd in1 , out+d in2, 0utmovd in1 , out+d in2 , 0ut功能in1+in2=outin1-in2=outin1+in2=outin1-in2=out操作数及数 据类型in1/in2:vw, iw, qw, mw, sw, smw, t, c, ac, lw, aiw,常量,*vd, *ld, *a

34、cout:vw, iw, qw, mw, sw, smw, t, c, lw,ac, *vd, *ld, *acin/out数据类型:整数in1/in2 : vd, id, qd, md, smd, sd, ld, ac, hc, 常量,*vd, *ld, *acout : vd, id, qd, md, smd, sd, ld, ac, *vd,*ld, *acin/out数据类型:双整数eno=0的错误条件0006 间接地址,sm4.3 运行时间,sm1.1溢出说明:(1)当in1、in2和out操作数的地址不同时,在 stl指令中,首先用数据传送指令将in1中的数值送入 out,然后再执

35、行加、减运算即: out+in2=out、out-in2=out 。为了节省内存,在整数加法 的梯形图指令中,可以指定in1或in2=out ,这样,可以不用数据传送指令。如指定 ini=out ,则语句表指令为:+i in2, out;如指定in2=out ,则语句表指令为:+i in1 , out。在整数减法的梯形图 指令中,可以指定 in1=out ,则语句表指令为:-i in2, out。这个原则适用于所有的算术运算指令, 且乘法和加法对应,减法和除法对应。(2)整数与双整数加减法指令影响算术标志位sm1.0 (零标志位),sm1.1 (溢出标志位)和 sm1.2(负数标志位)。【例5

36、-11】求5000加400的和,5000在数据存储器 vw200中,结果放入 ac0。程序如图5-17所示。100adojeh enoldi0.0icoin1 outin2-acomovwvw200, ac0 /vw200 f ac0ac1-vwiq.mulendk?didoen enovd200+i+400, ac0vw200+400=ac0图5-17 例5-11题图2.整数乘除法指令整数乘法指令(mul-i)是:使能输入有效时,将两个 16位符号整数相乘,并产生一个 16位积,从out指定的存储单元输出。整数除法指令(div-i )是:使能输入有效时,将两个16位符号整数相除,并产生一个16位商,从out指定的存储单元输出,不保留余数。如果车出结果大于一个字,则溢出位sm1.1置位为1。双整数乘法指令(mul-d ):使能输入有效时,将两个32位符号整数相乘,并产生一个32位乘积,从out指定的存储单元输出。双整数除法指令(div-d):使能输入有效时,将两个 32位整数相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论