西门子S7_200PLC指令简介与实例分析_第1页
西门子S7_200PLC指令简介与实例分析_第2页
西门子S7_200PLC指令简介与实例分析_第3页
西门子S7_200PLC指令简介与实例分析_第4页
西门子S7_200PLC指令简介与实例分析_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、 数据处理、运算指令与应用本章要点l 数据传送、字节交换、字节立即读写、移位、转换指令的介绍、应用与实训l 算术运算、逻辑运算、递增/递减指令的介绍、应用与实训l 表的定义、填表指令、表取数指令、填充指令、表查找指令的介绍5.1 数据处理指令5.1.1 数据传送指令1. 字节、字、双字、实数单个数据传送指令MOV数据传送指令MOV,用来传送单个的字节、字、双字、实数。指令格式与功能如表5-1所示。表5-1单个数据传送指令MOV指令格式LADSTLMOVB IN,OUTMOVW IN,OUTMOVD IN,OUTMOVR IN,OUT操作数与数据类型IN:VB, IB, QB, MB, SB,

2、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, LD, ACIN:VD, ID, QD, MD, SD, SMD, LD, AC, 常量OUT:VD, ID, QD, MD, SD, SMD, LD, AC字节字、整

3、数双字、双整数实数功能使能输入有效时,即EN=1时,将一个输入IN的字节、字/整数、双字/双整数或实数送到OUT指定的存储器输出。在传送过程中不改变数据的大小。传送后,输入存储器IN中的容不变使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的数据类

4、型为:字节。指令格式与功能如表5-2所示。 表5-2 数据传送指令BLKMOV指令格式LADSTLBMB IN,OUTBMW IN,OUTBMD IN,OUT操作数与数据类型IN:VB, IB, QB, MB, SB, SMB, LB。OUT:VB, IB, QB, MB, SB, SMB, LB。数据类型:字节IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW。OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AQW。数据类型:字IN/ OUT:VD, ID, QD, MD, SD, SMD, LD。数据类型:双字N:VB

5、, IB, QB, MB, SB, SMB, LB, AC, 常量;数据类型:字节;数据围:1-255功能使能输入有效时,即EN=1时,把从输入IN开始的N个字节(字、双字)传送到以输出OUT开始的N个字节(字、双字)中使ENO = 0的错误条件:0006(间接寻址错误)0091(操作数超出围)。例5-2程序举例:将变量存储器VB20开始的4个字节(VB20- VB23)中的数据,移至VB100开始的4个字节中(VB100-VB103)。程序如图5-2所示。   LAD STL LD I0.0BMB VB20 ,VB100, 4  图5-2 例

6、5-2图程序执行后,将VB20VB23中的数据30、31、32、33送到VB100VB103。执行结果如下:数组1数据30 31 32 33数据地址 VB20 VB21 VB22 VB23块移动执行后:数组2数据30 31 32 33数据地址 VB100 VB101 VB102 VB103 5.1.2 字节交换、字节立即读写指令1. 字节交换指令字节交换指令用来交换输入字IN的最高位字节和最低位字节。指令格式如表5-3所示。表5-3 字节交换指令使用格式与功能LADSTL功能与说明SWAP IN 功能:使能输入EN有效时,将输入字IN的高字节与低字节交换,结果仍放在IN中I

7、N:VW, IW, QW, MW, SW, SMW, T, C, LW, AC。数据类型:字ENO = 0的错误条件:0006(间接寻址错误),SM4.3(运行时间)例5-3字节交换指令应用举例。如图5-3所示。程序执行结果:指令执行之前VW50中的字为:D6 C3指令执行之后VW50中的字为:C3 D6  2. 字节立即读写指令字节立即读指令(MOV-BIR)读取实际输入端IN给出的1个字节的数值,并将结果写入OUT所指定的存储单元,但输入映像寄存器未更新。字节立即写指令从输入IN所指定的存储单元中读取1个字节的数值并写入(以字节为单位)实际输出OUT端的物理输出点,同时

8、刷新对应的输出映像寄存器。指令格式与功能如表5-4所示。表5-4字节立即读写指令格式LADSTL功能与说明BIR IN,OUT功能:字节立即读 IN: IBOUT:VB, IB, QB, MB, SB, SMB, LB, AC。数据类型:字节BIW IN,OUT功能:字节立即写IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量OUT:QB 数据类型:字节使ENO = 0的错误条件:0006(间接寻址错误),SM4.3(运行时间)。注意:字节立即读写指令无法存取扩展模块。5.1.3 移位指令与应用举例移位指令分为左、右移位和循环左、右移位与寄存器移位指令三大类。前两类移

9、位指令按移位数据的长度又分字节型、字型、双字型3种。1. 左、右移位指令左、右移位数据存储单元与SM1.1(溢出)端相连,移出位被放到特殊标志存储器SM1.1位。移位数据存储单元的另一端补0。移位指令格式见表5-5。(1)左移位指令(SHL)使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向左移N位后(右端补0),将结果输出到OUT所指定的存储单元中,如果移位次数大于0,最后一次移出位保存在“溢出”存储器位SM1.1。如果移位结果为0,零标志位SM1.0置1。(2)右移位指令使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向右移N位后,将结果输出到OUT所指定的存储单元中,

10、移出位补0,最后一移出位保存在SM1.1。如果移位结果为0,零标志位SM1.0置1。(3)使ENO = 0的错误条件:0006(间接寻址错误),SM4.3(运行时间) LADSTLSLB 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。数据类型:字节IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量。OUT:VW, IW,

11、 QW, MW, SW, SMW, LW, T, C, AC。数据类型:字IN:VD, ID, QD, MD, SD, SMD, LD, AC, HC, 常量。OUT:VD, ID, QD, MD, SD, SMD, LD, AC。数据类型:双字N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;数据类型:字节;数据围:N数据类型(B、W、D)对应的位数功能SHL:字节、字、双字左移N位;SHR:字节、字、双字右移N位表5-5 移位指令格式与功能说明:在STL指令中,若IN和OUT指定的存储器不同,则须首先使用数据传送指令MOV将IN中的数据送入OUT所指定的存储单元。

12、如:MOVB IN,OUTSLB OUT,N 2. 循环左、右移位指令循环移位将移位数据存储单元的首尾相连,同时又与溢出标志SM1.1连接,SM1.1用来存放被移出的位。指令格式见表5-6。(1)循环左移位指令(ROL)使能输入有效时,将IN输入无符号数(字节、字或双字)循环左移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。(2)循环右移位指令(ROR)使能输入有效时,将IN输入无符号数(字节、字或双字)循环右移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当

13、需要移位的数值是零时,零标志位SM1.0为1。(3)移位次数N数据类型(B、W、D)时的移位位数的处理如果操作数是字节,当移位次数N8时,则在执行循环移位前,先对N进行模8操作(N除以8后取余数),其结果0-7为实际移动位数。如果操作数是字,当移位次数N16时,则在执行循环移位前,先对N进行模16操作(N除以16后取余数),其结果0-15为实际移动位数。如果操作数是双字,当移位次数N32时,则在执行循环移位前,先对N进行模32操作(N除以32后取余数),其结果0-31为实际移动位数。(4)使ENO = 0的错误条件:0006(间接寻址错误),SM4.3(运行时间)。表5-6 循环左、右移位指令

14、格式与功能LADSTLRLB OUT,NRRB OUT,NRLW OUT,NRRW OUT,NRLD OUT,NRRD OUT,N操作数与数据类型IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。OUT:VB, IB, QB, MB, SB, SMB, LB, AC。数据类型:字节IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量。OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC。数据类型:字IN:VD, ID, QD, MD, SD, SMD, LD, AC, HC, 常量。OUT:

15、VD, ID, QD, MD, SD, SMD, LD, AC。数据类型:双字N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;数据类型:字节。功能ROL:字节、字、双字循环左移N位;ROR:字节、字、双字循环右移N位。说明:在STL指令中,若IN和OUT指定的存储器不同,则须首先使用数据传送指令MOV将IN中的数据送入OUT所指定的存储单元。如:MOVB IN,OUTSLB OUT,N 例5-4程序应用举例,将AC0中的字循环右移2位,将VW200中的字左移3位。程序与运行结果如图5-4所示。图5-4 例5-4题图例5-5用I0.0控制接在Q0.0Q0.7

16、上的8个彩灯循环移位,从左到右以0.5s的速度依次点亮,保持任意时刻只有一个指示灯亮,到达最右端后,再从左到右依次点亮。分析:8个彩灯循环移位控制,可以用字节的循环移位指令。根据控制要求,首先应置彩灯的初始状态为QB0=1,即左边第一盏灯亮;接着灯从左到右以0.5s的速度依次点亮,即要求字节QB0中的“1”用循环左移位指令每0.5s移动一位,因此须在ROL-B指令的EN端接一个0.5s的移位脉冲(可用定时器指图5-5 例5-5题图令实现)。梯形图程序和语句表程序如图5-5所示。 LD SM0.1 /首次扫描时MOVB 1, QB0 /置8位彩灯初态 LD I0.0 /T37产生周期为

17、AN T37 0.5s的移位脉冲TON T37, +5 LD T37 /每来一个脉冲RLB QB0, 1 彩灯循环左移1位  3. 移位寄存器指令(SHRB)移位寄存器指令是可以指定移位寄存器的长度和移位方向的移位指令。其指令格式如图5-6所示。说明:(1)移位寄存器指令SHRB将DATA数值移入移位寄存器。梯形图中,EN为使能输入端,连接移位脉冲信号,每次使能有效时,整个移位寄存器移动1位。DATA为数据输入端,连接移入移位寄存器的二进制数值,执行指令时将该位的值移入寄存器。S_BIT指定移位寄存器的最低位。N指定移位寄存器的长度和移位方向,移位寄存器的最大长度为64位,

18、N为正值表示左移位,输入数据(DATA)移入移位寄存器的最低位(S_BIT),并移出移位寄存器的最高位。移出的数据被放置在溢出存位(SM1.1)中。N为负值表示右移位,输入数据移入移位寄存器的最高位中,并移出最低位(S_BIT)。移出的数据被放置在溢出存位(SM1.1)中。(2)DATA和S-BIT的操作数为I, Q, M, SM, T, C, V, S, L 。数据类型为:BOOL变量。N的操作数为VB, IB, QB, MB, SB, SMB, LB, AC, 常量。数据类型为:字节。(3)使ENO = 0的错误条件:0006(间接地址),0091(操作数超出围),0092(计数区错误)。

19、(4)移位指令影响特殊部标志位:SM1.1(为移出的位值设置溢出位)。例5-6移位寄存器应用举例。程序与运行结果如图5-7所示。 溢出位(SM1.1)S-BITI0.1S-BITI0.1S-BITI0.1溢出位(SM1.1)溢出位(SM1.1)溢出位第一次移位第一次移位后第二次移位后第一次移位前时序图MB10 MB10 MB10 I0.0 I0.1 图5-7 例5-6梯形图、语句表、时序图与运行结果 例5-7用PLC构成喷泉的控制。用灯L1L12分别代表喷泉的12个喷水注。(1)控制要求:按下起动按钮后,隔灯闪烁,L1亮0.

20、5秒后灭,接着L2亮0.5秒后灭,接着L3亮0.5秒后灭,接着L4亮0.5秒后灭,接着L5、L9亮0.5秒后灭,接着L6、L10亮0.5秒后灭,接着L7、L11亮0.5秒后灭,接着L8、L12亮0.5秒后灭,L1亮0.5秒后灭,如此循环下去,直至按下停止按钮。如图5-8所示。 图5-8 喷泉控制示意图(2)I/O分配输入输出(常开)起动按钮:I0.0 L1:Q0.0 L5、L9: Q0.4(常闭)停止按钮:I0.1 L2:Q0.1 L6、L10:Q0.5L3:Q0.2 L7、L11:Q0.6L4:Q0.3 L8、L12:Q0.7(3)喷泉控制梯形图梯形图程序如图5-10所示。分析:应

21、用移位寄存器控制,根据喷泉模拟控制的8位输出(Q0.0Q0.7),须指定一个8位的移位寄存器(M10.1M11.0),移位寄存器的S-BIT位为M10.1,并且移位寄存器的每一位对应一个输出。如图5-9所示。   M11.0M10.7M10.6M10.5M10.4M10.3M10.2M10.1M10.0DATA  Q0.7Q0.6Q0.5Q0.4Q0.3Q0.2Q0.1Q0.0图5-9 移位寄存器的位与输出对应关系图在移位寄存器指令中,EN连接移位脉冲,每来一个脉冲的上升沿,移位寄存器移动一位。移位寄存器应0.5s移一位,因此需要设计一个0.5

22、s产生一个脉冲的脉冲发生器(由T38构成)。M10.0为数据输入端DATA ,根据控制要求,每次只有一个输出,因此只需要在第一个移位脉冲到来时由M10.0送入移位寄存器S-BIT位(M10.1)一个“1”,第二个脉冲至第八T38构成0.5s产生一个机器扫描周期脉冲的脉冲发生器 8位的移位寄存器 移位寄存器的每一位对应一个输出  图5-10 例5-7喷泉模拟控制梯形图个脉冲到来时由M10.0送入M10.1的值均为“0”,这在程序中由定时器T37延时0.5s导通一个扫描周期实现,第八个脉冲到来时M11.0置位为1,同时通过与T37并联的M11.0常开触点使M

23、10.0置位为1,在第九个脉冲到来时由M10.0送入M10.1的值又为1,如此循环下去,直至按下停止按钮。按下常闭停止按钮(I0.1),其对应的常闭触点接通,触发复位指令,使M10.1M11.0的8位全部复位。5.1.4 转换指令转换指令是对操作数的类型进行转换,并输出到指定目标地址中去。转换指令包括数据的类型转换、数据的编码和译码指令以与字符串类型转换指令。不同功能的指令对操作数要求不同。类型转换指令可将固定的一个数据用到不同类型要求的指令中,包括字节与字整数之间的转换,整数与双整数的转换,双字整数与实数之间的转换,BCD码与整数之间的转换等。1. 字节与字整数之间的转换字节型数据与字整数之

24、间转换的指令格式见表5-7所示。表5-7 字节型数据与字整数之间转换指令LADSTLBTI IN,OUTITB IN,OUT操作数与数据类型IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量, 数据类型:字节OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC,数据类型:整数IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量,数据类型:整数OUT:VB, IB, QB, MB, SB, SMB, LB, AC, 数据类型:字节功能与说明BTI指令将字节数值(IN)转换成整数值,并将结果置入O

25、UT指定的存储单元。因为字节不带符号,所以无符号扩展ITB指令将字整数(IN)转换成字节,并将结果置入OUT指定的存储单元。输入的字整数0至255被转换。超出部分导致溢出,SM1.1=1。输出不受影响ENO=0的错误条件0006 间接地址SM4.3 运行时间0006 间接地址SM1.1 溢出或非法数值SM4.3 运行时间2. 字整数与双字整数之间的转换字整数与双字整数之间的转换格式、功能与说明,如表5-8所示。3. 双整数与实数之间的转换双整数与实数之间的转换的转换格式、功能与说明,如表5-9所示。表5-8 字整数与双字整数之间的转换指令LADSTLITD IN,OUTDTI IN,OUT操作

26、数与数据类型IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, 数据类型:整数OUT:VD, ID, QD, MD, SD, SMD, LD, AC,数据类型:双整数IN:VD, ID, QD, MD, SD, SMD, LD, HC, AC,常量,数据类型:双整数OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC, 数据类型:整数功能与说明ITD指令将整数值(IN)转换成双整数值,并将结果置入OUT指定的存储单元。符号被扩展DTI指令将双整数值(IN)转换成整数值,并将结果置入OUT指定的存储单元。如果转换的数

27、值过大,则无法在输出中表示,产生溢出SM1.1=1,输出不受影响ENO=0的错误条件0006 间接地址SM4.3 运行时间0006 间接地址SM1.1 溢出或非法数值SM4.3 运行时间表5-9 双字整数与实数之间的转换指令LADSTLDTR IN,OUTROUND IN,OUTTRUNC IN,OUT操作数与数据类型IN:VD, ID, QD, MD, SD, SMD, LD, HC, AC, 常量数据类型:双整数OUT:VD, ID, QD, MD, SD, SMD, LD, AC数据类型:实数IN:VD, ID, QD, MD, SD, SMD, LD, AC, 常量数据类型:实数OUT

28、:VD, ID, QD, MD, SD, SMD, LD, AC数据类型:双整数IN:VD, ID, QD, MD, SD, SMD, LD, AC, 常量数据类型:实数OUT:VD, ID, QD, MD, SD, SMD, LD, AC数据类型:双整数功能与说明DTR指令将32位带符号整数IN转换成32位实数,并将结果置入OUT指定的存储单元 ROUND指令按小数部分四舍五入的原则,将实数(IN)转换成双整数值,并将结果置入OUT指定的存储单元TRUNC(截位取整)指令按将小数部分直接舍去的原则,将32位实数(IN)转换成32位双整数,并将结果置入OUT指定存储单元ENO=0的错误条件00

29、06 间接地址SM4.3 运行时间0006 间接地址SM1.1 溢出或非法数值SM4.3 运行时间0006 间接地址SM1.1 溢出或非法数值SM4.3 运行时间值得注意的是:不论是四舍五入取整,还是截位取整,如果转换的实数数值过大,无法在输出中表示,则产生溢出,即影响溢出标志位,使SM1.1=1,输出不受影响。4. BCD码与整数的转换BCD码与整数之间的转换的指令格式、功能与说明,如表5-10所示。表5-10 BCD码与整数之间的转换的指令LADSTLBCDI OUTIBCD OUT操作数与数据类型IN :VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC

30、, 常量OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, ACIN/OUT数据类型:字功能与说明BCD-I指令将二进制编码的十进制数IN转换成整数,并将结果送入OUT指定的存储单元。IN的有效围是BCD码 0至9999I-BCD指令将输入整数IN转换成二进制编码的十进制数,并将结果送入OUT指定的存储单元。IN的有效围是0至9999ENO=0的错误条件0006 间接地址,SM1.6 无效BCD数值,SM4.3 运行时间注意:(1)数据长度为字的BCD格式的有效围为:09999(十进制),00009999(十六进制)0000 0000 0000 00001001 10

31、01 1001 1001(BCD码)。(2)指令影响特殊标志位SM1.6(无效BCD)。(3)在表5-10的LAD和STL指令中,IN和OUT的操作数地址一样。若IN和OUT操作数地址不是同一个存储器,对应的语句表指令为: MOV IN OUT BCDI OUT 5. 译码和编码指令译码和编码指令的格式和功能如表5-11所示。表5-11 译码和编码指令的格式和功能LADSTLDECO IN,OUTENCO IN,OUT操作数与数据类型IN:VB, IB, QB, MB, SMB, LB, SB, AC, 常量。数据类型:字节OUT:VW, IW, QW, MW, SMW, LW, SW, AQ

32、W, 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的错误条件0006 间接地址, SM4.3 运行时间例5-8译码编码指令应用举例。如图5-11所示。若(AC2)=2,执行译码指令,则将输出字VW40

33、的第二位置1,VW40中的二进制数为2#0000 0000 0000 0100;若(AC3)=2#0000 0000 0000 0100,执行编码指令,则输出字节VB50中的错误码为2。6. 七段显示译码指令  图5-12 与七段显示码对应的代码七段显示器的abcdefg段分别对应于字节的第0位第6位,字节的某位为1时,其对应的段亮;输出字节的某位为0时,其对应的段暗。将字节的第7位补0,则构成与七段显示器相对应的8位编码,称为七段显示码。数字09、字母AF与七段显示码的对应如图5-12所示。七段译码指令SEG将输入字节16#0F转换成七段显示码。指令格如表5-12所示。表

34、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的数据类型:字节使ENO = 0的错误条件:0006 间接地址,SM4.3 运行时间。例5-9编写显示数字0的七段显示码的程序。程序实现如图5-13所示。LD I0.1SEG 0, AC1 图5-13 例5-9题图程序运行结果为AC1中的值为16#3F(2#001

35、1 1111)。7. ASCII码与十六进制数之间的转换指令ASCII码与十六进制数之间的转换指令指令格式和功能如表5-13所示。表5-13 ASCII码与十六进制数之间转换指令的格式和功能LADSTLATH IN,OUT,LENHTA IN,OUT,LEN操作数与数据类型IN/ OUT:VB, IB, QB, MB, SB, SMB, LB。数据类型:字节LEN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。数据类型:字节。最大值为255功能与说明ASCII至HEX(ATH)指令将从IN开始的长度为LEN 的ASCII字符转换成十六进制数,放入从OUT开始的存储单元

36、HEX至ASCII (HTA)指令将从输入字节(IN)开始的长度为LEN的十六进制数转换成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所示。LD I1.0ATH VB10, VB20

37、, 3  图5-14 例5-10题图程序运行结果如下:  可见将VB10VB12中存放的3个ASCII码33、45、41,转换成十六进制数3E和Ax ,放在VB20和VB21中,“x”表示VB21的“半字节”即低四位的值未改变。5.1.5 天塔之光的模拟控制实训1. 实训目的(1)掌握移位寄存器指令的应用方法(2)用移位寄存器指令实现天塔之光控制系统(3)掌握PLC的编程技巧和程序调试的方法2. 控制要求如图5-15所示的天塔的灯光,可以用PLC控制灯光的闪耀移位与时序的变化等。控制要求如下:按起动按钮,L12L11L10L8L1L1、L2、L9L1、L

38、5、L8L1、L4、L7L1、L3、L6L1L2、L3、L4、L5L6、L7、L8、L9L1、L2、L6L1、L3、L7L1、L4、L8L1、L5、L9L1L2、L3、L4、L5L6、L7、L8、L9L12L11L10 循环下去,直至按下停止按钮。3.I/O分配 输入输出起动按钮:I0.0 L1:Q0.0 L4 Q0.3 L7:Q0.6 L10 Q1.1停止按钮:I0.1 L2:Q0.1 L5 Q0.4 L8:Q0.7 L11 Q1.2L3:Q0.2 L6 Q0.5 L9:Q1.0 L12 Q1.34. 程序设计分析:根据灯光闪亮移位,分为19步,因此可以指定一个19位的移位寄存器(M10.1

39、M10.7,M11.0M11.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所示。   图5-16天塔之光控制梯形图  图5-16 天塔之光控制梯形图(续)5. 输入

40、、调试程序并运行程序6. 思考题如果控制要求改为L12L11L10L8L1L2、L3、L4、L5L6、L7、L8、L9,循环如何修改程序。输入程序,调试观察现象。5.2 算术运算、逻辑运算指令算术运算指令包括加、减、乘、除运算和数学函数变换,逻辑运算包括逻辑与或非指令等。5.2.1 算术运算指令1. 整数与双整数加减法指令整数加法(ADD-I)和减法(SUB-I)指令是:使能输入有效时,将两个16位符号整数相加或相减,并产生一个16位的结果输出到OUT。双整数加法(ADD-D)和减法(SUB-D)指令是:使能输入有效时,将两个32位符号整数相加或相减,并产生一个32位结果输出到OUT。整数与双

41、整数加减法指令格式如表5-14所示。表5-14 整数与双整数加减法指令格式LADSTLMOVW 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, *ACOUT:VW, IW, QW, MW, SW, SMW, T, C, LW, AC, *VD

42、, *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,然后再执行加、减运算即:OUT+IN2=OUT、OUT-IN2=OUT。为了节省存,在整数加法的梯形图

43、指令中,可以指定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-11求5000加400的和,5000在数据存储器VW200中,结果放入AC0。程序如图5-17所示。LD I0.0 MOVW VW2

44、00, AC0 /VW200AC0+I +400, AC0 /VW200+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)

45、:使能输入有效时,将两个32位整数相除,并产生一个32位商,从OUT指定的存储单元输出,不保留余数。整数乘法产生双整数指令(MUL):使能输入有效时,将两个16位整数相乘,得出一个32位乘积,从OUT指定的存储单元输出。整数除法产生双整数指令(DIV):使能输入有效时,将两个16位整数相除,得出一个32位结果,从OUT指定的存储单元输出。其中高16位放余数,低16位放商。整数乘除法指令格式如表5-15所示。整数双整数乘除法指令操作数与数据类型和加减运算的一样。整数乘法除法产生双整数指令的操作数:IN1/IN2:VW, IW, QW, MW, SW, SMW, T, C, LW, AC, AIW

46、, 常量, *VD, *LD, *AC。数据类型:整数。OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC。数据类型:双整数。使ENO = 0的错误条件:0006(间接地址),SM1.1(溢出),SM1.3(除数为0)。对标志位的影响:SM1.0(零标志位),SM1.1(溢出),SM1.2(负数),SM1.3(被0除)。表5-15 整数乘除法指令格式LADSTLMOVW IN1,OUT*I IN2,0UTMOVW IN1,OUT/I IN2,0UTMOVD IN1,OUT*D IN2,0UTMOVD IN1,OUT/D IN2,0UTMOVW

47、IN1,OUTMUL IN2,OUTMOVW IN1,OUTDIV IN2,OUT功能IN1*IN2=OUTIN1/IN2=OUTIN1*IN2=OUTIN1/IN2=OUTIN1*IN2=OUTIN1/IN2=OUT例5-12乘除法指令应用举例,程序如图5-18所示。 LD I0.0MUL AC1 VD100DIV VW10 VD200   图5-18 例5-12题图注意:因为VD100包含:VW100和VW102两个字,VD200包含:VW200和VW202两个字,所以在语句表指令中不需要使用数据传送指令。3. 实数加减乘除指令实数加法(ADD-R)

48、、减法(SUB-R)指令:将两个32位实数相加或相减,并产生一个32位实数结果,从OUT指定的存储单元输出。实数乘法(MUL-R)、除法(DIV-R)指令:使能输入有效时,将两个32位实数相乘(除),并产生一个32位积(商),从OUT指定的存储单元输出。操作数:IN1/IN2:VD, ID, QD, MD, SMD, SD, LD, AC, 常量, *VD, *LD, *AC。OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC。数据类型:实数。指令格式如表5-16所示。 表5-16 实数加减乘除指令LADSTLMOVD IN1,OUT

49、+R IN2,0UTMOVD IN1,OUT-R IN2,0UTMOVD IN1,OUT*R IN2,0UTMOVD IN1,OUT/R IN2,0UT功能IN1+IN2=OUTIN1-IN2=OUTIN1*IN2=OUTIN1/IN2=OUTENO=0的错误条件0006 间接地址, SM4.3 运行时间, SM1.1 溢出0006 间接地址 ,SM1.1 溢出,SM4.3 运行时间,SM1.3 除数为0对标志位的影响SM1.0(零),SM1.1(溢出) , SM1.2(负数),SM1.3 (被0除) 例5-13实数运算指令的应用,程序如图5-19所示。 LD I0.0+R AC1,

50、 VD100/R VD100, AC0   图5-19 例5-13题图4. 数学函数变换指令数学函数变换指令包括平方根、自然对数、指数、三角函数等。(1)平方根(SQRT)指令:对32位实数(IN)取平方根,并产生一个32位实数结果,从OUT指定的存储单元输出。(2)自然对数(LN)指令:对IN中的数值进行自然对数计算,并将结果置于OUT指定的存储单元中。求以10为底数的对数时,用自然对数除以2.302585(约等于10的自然对数)。(3)自然指数(EXP)指令:将IN取以e为底的指数,并将结果置于OUT指定的存储单元中。将“自然指数”指令与“自然对数”指令相结合

51、,可以实现以任意数为底,任意数为指数的计算。求yx,输入以下指令:EXP (x * LN (y)。例如:求23=EXP(3*LN(2)=8;27的3次方根=271/3=EXP(1/3*LN(27)=3。(4)三角函数指令:将一个实数的弧度值IN分别求SIN、COS、TAN,得到实数运算结果,从OUT指定的存储单元输出。函数变换指令格式与功能如表5-17所示。表5-17 函数变换指令格式与功能LADSTLSQRT IN,OUTLN IN,OUTEXP IN,OUTSIN IN,OUTCOS IN,OUTTAN IN,OUT功能SQRT(IN)=OUTLN(IN)=OUTEXP(IN)=OUTSI

52、N(IN)=OUTCOS(IN)=OUTTAN(IN)=OUT操作数与数据类型 IN:VD, ID, QD, MD, SMD, SD, LD, AC, 常量, *VD, *LD, *ACOUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC数据类型:实数使ENO = 0的错误条件:0006(间接地址),SM1.1(溢出)SM4.3(运行时间)对标志位的影响:SM1.0(零),SM1.1(溢出),SM1.2(负数)例5-14求45º正弦值。分析:先将45º转换为弧度:(3.14159/180)*45,再求正弦值。程序如图

53、5-20所示。 LD I0.1MOVR 3.14159, AC1/R 180.0, AC1*R 45.0, AC1SIN AC1, AC0   图5-20 例5-14题图5.2.2 逻辑运算指令逻辑运算是对无符号数按位进行与、或、异或和取反等操作。操作数的长度有B、W、DW。指令格式如表5-18所示。1. 逻辑与(WAND)指令:将输入IN1,IN2按位相与,得到的逻辑运算结果,放入OUT指定的存储单元。2. 逻辑或(WOR)指令:将输入IN1,IN2按位相或,得到的逻辑运算结果,放入OUT指定的存储单元。3. 逻辑异或(WXOR)指令:将输入IN1,IN2按位相异或,得到的逻辑运算结果,放入OUT指定的存储单元。4. 取反(INV)指令:将输入IN按位取反,将结果放入OUT指定的存储单元。表5-18 逻辑运算指令格式LAD  STLANDB IN1,OUTANDW IN1,OUTANDD IN1,OUTORB IN1,OUTORW IN1,OUTORD IN1,OUTXORB IN1,OUTXORW IN1,OUT

温馨提示

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

评论

0/150

提交评论