西门子S7-200PLC指令简介及实例分析..pdf

上传人:tbuqq 文档编号:5230340 上传时间:2020-02-27 格式:PDF 页数:65 大小:3.14MB
返回 下载 相关 举报
西门子S7-200PLC指令简介及实例分析..pdf_第1页
第1页 / 共65页
西门子S7-200PLC指令简介及实例分析..pdf_第2页
第2页 / 共65页
西门子S7-200PLC指令简介及实例分析..pdf_第3页
第3页 / 共65页
西门子S7-200PLC指令简介及实例分析..pdf_第4页
第4页 / 共65页
西门子S7-200PLC指令简介及实例分析..pdf_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《西门子S7-200PLC指令简介及实例分析..pdf》由会员分享,可在线阅读,更多相关《西门子S7-200PLC指令简介及实例分析..pdf(65页珍藏版)》请在三一文库上搜索。

1、数据处理、运算指令及应用 本章要点 数据传送、字节交换、字节立即读写、移位、转换指令的介绍、应用及实训 算术运算、逻辑运算、递增/递减指令的介绍、应用及实训 表的定义、填表指令、表取数指令、填充指令、表查找指令的介绍 5.1 数据处理指令 5.1.1 数据传送指令 1. 字节、字、双字、实数单个数据传送指令MOV 数据传送指令MOV ,用来传送单个的字节、字、双字、实数。指令格式及功能如表5-1 所示。 表 5-1 单个数据传送指令MOV 指令格式 使 ENO = 0 即使能输出断开的错误条件是:SM4.3(运行时间) ,0006(间接寻址错误) 。 【例 5-1】将变量存储器VW10 中内容

2、送到VW100 中。程序如图5-1 所示。 LD I0.1 MOVW VW10, VW100 图 5-1 例 5-1 题图 LAD STL MOVB IN ,OUT MOVW IN ,OUT MOVD IN ,OUT MOVR IN ,OUT 操作 数及 数据 类型 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, T, C, IW, QW, SW, MW, SMW, LW, A

3、C, AQW 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:VD, ID, QD, MD, SD, SMD, LD, AC 字节字、整数双字、双整数实数 功能使能输入有效时,即EN=1 时,将一个输入IN 的字节、字 /整数、双字 /双整数或实数送到OUT 指定的 存储器输出。在传送过程中不改变数据的大小。传送后,输入存储器IN 中的内容不变 2. 字节、字、双字、实数数据块传送指令BLKMO

4、V 数据块传送指令将从输入地址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-VB 103)。程序 如图 5-2 所示。 LAD STL LD I0.0 BMB VB

5、20 ,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 VB103 5.1.2 字节交换、字节立即读写指令 1. 字节交换指令 字节交换指令用来交换输入字IN 的最高位字节和最低位字节。指令格式如表5-3 所示。 LAD STL BMB IN ,OUT BMW IN,OUT BMD IN ,OUT 操作 数

6、及 数据 类型 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, IB, QB, MB, SB, SMB, LB, AC, 常量;数据类型:字节;数据范围:1-255 功能使能输入有效时, 即 E

7、N=1 时,把从输入 IN 开始的 N 个字节(字、双字)传送到以输出OUT 开始的 N 个字节(字、双字)中 表 5-3 字节交换指令使用格式及功能 LAD STL 功能及说明 SWAP IN 功能:使能输入EN 有效时 ,将输入字IN 的高字节与低字节交换,结果仍放在IN 中 IN:VW, IW, QW, MW, SW, SMW, T, C, LW, AC。数据类型:字 ENO = 0 的错误条件:0006(间接寻址错误) ,SM4.3(运行时间) 【例 5-3】字节交换指令应用举例。如图5-3 所示。 程序执行结果: 指令执行之前VW50 中的字为: D6 C3 指令执行之后VW50 中

8、的字为: C3 D6 2. 字节立即读写指令 字节立即读指令 (MOV-BIR )读取实际输入端IN 给出的 1 个字节的数值, 并将结果写入OUT 所指定 的存储单元,但输入映像寄存器未更新。 字节立即写指令从输入IN 所指定的存储单元中读取1 个字节的数值并写入(以字节为单位)实际输 出 OUT 端的物理输出点,同时刷新对应的输出映像寄存器。指令格式及功能如表5-4 所示。 表 5-4 字节立即读写指令格式 LAD STL 功能及说明 BIR IN ,OUT 功能:字节立即读 IN: IB OUT:VB, IB, QB, MB, SB, SMB, LB, AC。 数据类型:字节 BIW I

9、N ,OUT 功能:字节立即写 IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量 OUT:QB 数据类型:字节 使 ENO = 0 的错误条件: 0006(间接寻址错误) ,SM4.3(运行时间) 。注意:字节立即读写指令无法 存取扩展模块。 5.1.3 移位指令及应用举例 移位指令分为左、右移位和循环左、右移位及寄存器移位指令三大类。前两类移位指令按移位数据的 长度又分字节型、字型、双字型3 种。 1. 左、右移位指令 左、右移位数据存储单元与SM1.1(溢出)端相连,移出位被放到特殊标志存储器SM1.1 位。移位数 据存储单元的另一端补0。移位指令格式见表5-5

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(运行时间

11、) 表 5-5 移位指令格式及功能 说 明 : 在 STL 指令中,若 IN 和 OUT 指定 的存储器不同, 则 须首先使用 数 据传送指令 MOV将 IN 中 的 数 据 送 入 OUT所指定的 存储单元。如: OVB IN ,OUT LB OUT ,N 2. 循环 左、右移位指令 循 环 移 位 将 移位数据存 储 单元的首尾 相连,同时又与 溢出标志SM1.1 连接, SM1.1 用来存放被移出的位。指令格式见表5-6。 (1)循环左移位指令(ROL ) 使能输入有效时,将IN 输入无符号数(字节、字或双字)循环左移N 位后,将结果输出到OUT 所指 定的存储单元中, 移出的最后一位的

12、数值送溢出标志位SM1.1。 当需要移位的数值是零时,零标志位SM1.0 为 1。 (2)循环右移位指令(ROR) 使能输入有效时,将IN 输入无符号数(字节、字或双字)循环右移N 位后,将结果输出到OUT 所指 定的存储单元中, 移出的最后一位的数值送溢出标志位SM1.1。 当需要移位的数值是零时,零标志位SM1.0 为 1。 (3)移位次数N数据类型( B、W、D)时的移位位数的处理 如果操作数是字节,当移位次数N8时,则在执行循环移位前,先对N 进行模 8 操作( N 除以 8 后 取余数),其结果0-7 为实际移动位数。 如果操作数是字,当移位次数N16时,则在执行循环移位前,先对N

13、进行模 16 操作( N 除以 16 后 LAD STL SLB OUT,N SRB OUT,N SLW OUT,N SRW OUT,N SLD OUT,N SRD 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,

14、 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 位 取余数),其结果0-15 为实际移动位数。 如果操作数是双字,当移位次数N32时,则在执行循环移位前,先对N 进行模 32 操作( N 除以 32 后取余数),其结果0-31 为实际移动位数。 (4)使 ENO

15、= 0 的错误条件:0006(间接寻址错误) , SM4.3(运行时间)。 表 5-6 循环左、右移位指令格式及功能 说 明 : 在 STL 指令中,若 IN 和 OUT 指定 的存储器不同, 则 须首先使用 数 据传送指令 MOV将 IN 中 的 数 据 送 入 OUT所指定的 存储单元。如: MOVB IN , OUT LB OUT , N 【例 5-4】程序 应 用举例,将 AC0中的字循 环右移 2 位, 将 VW200中的字 左移 3 位。 程序 及 运行结果如 图 5-4 所示。 图 5-4 例 5-4 题图 【例 5-5】用 I0.0 控制接在 Q0.0Q0.7 上的 8 个彩灯

16、循环移位,从左到右以0.5s 的速度依次点亮,保 持任意时刻只有一个指示灯亮,到达最右端后,再从左到右依次点亮。 分析: 8 个彩灯循环移位控制,可以用字节的循环移位指令。根据控制要求,首先应置彩灯的初始状 态为 QB0=1 ,即左边第一盏灯亮;接着灯从左到右以0.5s 的速度依次点亮,即要求字节QB0 中的“ 1”用 循环左移位指令每0.5s 移动一位,因此须在ROL-B 指令的 EN 端接一个0.5s 的移位脉冲(可用定时器指 LAD STL RLB OUT,N RRB OUT,N RLW OUT,N RRW OUT,N RLD OUT,N RRD OUT,N 操作 数及 数据 类型 IN

17、 :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:VD, ID, QD, MD, SD, SMD, LD, AC 。 数据类型:双字 N:VB, IB, QB, MB, SB

18、, SMB, LB, AC, 常量;数据类型:字节。 功能 ROL:字节、字、双字循环左移N 位; ROR:字节、字、双字循环右移N 位。 图 5-5 例 5-5 题图 令实现)。梯形图程序和语句表程序如图5-5 所示。 LD SM0.1 /首次扫描时 MOVB 1, QB0 /置 8 位彩灯初态 LD I0.0 /T37 产生周期为 AN T37 0.5s的移位脉冲 TON T37, +5 LD T37 /每来一个脉冲 RLB QB0, 1 彩灯循环左移1 位 3. 移位寄存器指令(SHRB ) 移位寄存器指令是可以指定移位寄存器的长度和移位方向的移位指令。其指令格式如图5-6 所示。 说明

19、:(1)移位寄存器指令SHRB 将 DATA 数值移入移位寄存器。梯形图中,EN 为使能输入端,连 接移位脉冲信号,每次使能有效时,整个移位寄存器移动1 位。 DATA 为数据输入端,连接移入移位寄存 器的二进制数值,执行指令时将该位的值移入寄存器。S_BIT 指定移位寄存器的最低位。N 指定移位寄存 器的长度和移位方向,移位寄存器的最大长度为64 位, N 为正值表示左移位,输入数据(DATA)移入移 位寄存器的最低位(S_BIT ) ,并移出移位寄存器的最高位。移出的数据被放置在溢出内存位(SM1.1 )中。 N 为负值表示右移位,输入数据移入移位寄存器的最高位中,并移出最低位(S_BIT

20、 ) 。移出的数据被放置 在溢出内存位(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(计数区错误) 。 (4)移位指令影响特殊内部标志位:SM1.1(为移出的位值设置溢出位)。 【例 5-6】移位寄存器应用举例。程序及运行结果如图5-7 所示。 溢出位( SM1.1) S-BIT I0.

21、1 S-BIT I0.1 S-BIT I0.1 溢出位( SM1.1) 溢出位( SM1.1) 溢出位 第一次移位 第一次移位后 第二次移位后 第一次移位前 时序图 MB10 MB10 MB10 I0.0 I0.1 图 5-7 例 5-6 梯形图、语句表、时序图及运行结果 【例 5-7】用 PLC 构成喷泉的控制。用灯L1L12 分别代表喷泉的12 个喷水注。 (1)控制要求 :按下起动按钮后,隔灯闪烁,L1 亮 0.5 秒后灭,接着L2 亮 0.5 秒后灭,接着 L3 亮 0.5 秒后灭,接着L4 亮 0.5 秒后灭,接着L5、L9 亮 0.5 秒后灭,接着L6、L10 亮 0.5 秒后灭,

22、接着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.5 L3: Q0.2 L7 、L11:Q0.6 L4:Q0.3 L8、L12:Q0.7 (3)喷泉控制梯形图 梯形图程序如图5-10 所示。 分析:应用移位寄存器控制,根据喷泉模拟控制的8 位输出( Q0.0 Q0.7) ,须指定一个8 位的移位

23、 寄存器( M10.1M11.0) ,移位寄存器的S-BIT 位为 M10.1 ,并且移位寄存器的每一位对应一个输出。如 图 5-9 所示。 DATA Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0 图 5-9 移位寄存器的位与输出对应关系图 M11.0 M10.7 M10.6 M10.5 M10.4 M10.3 M10.2 M10.1 M10.0 在移位寄存器指令中,EN 连接移位脉冲,每来一个脉冲的上升沿,移位寄存器移动一位。移位寄存 器应 0.5s 移一位,因此需要设计一个0.5s 产生一个脉冲的脉冲发生器(由T38 构成)。 M10.0 为数据输入端DA

24、TA ,根据控制要求,每次只有一个输出,因此只需要在第一个移位脉冲到来 时由 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 常开触点使M10.0 置位为 1,在 第九个脉冲到来时由M10

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

26、指令格式见表5-7 所示。 表 5-7 字节型数据与字整数之间转换指令 LAD STL BTI IN,OUT ITB 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指令将字节数值

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

28、 表 5-8 字整数与双字整数之间的转换指令 LAD STL ITD IN,OUT DTI IN ,OUT 操作数及数 据类型 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 )转换成双

29、整数值,并将结果 置入 OUT 指定的存储单元。符号被扩展 DTI指令将双整数值(IN)转换成整数值,并将结 果置入OUT 指定的存储单元。如果转换的数值过 大,则无法在输出中表示,产生溢出SM1.1=1,输 出不受影响 ENO=0 的错 误条件 0006 间接地址 SM4.3 运行时间 0006 间接地址 SM1.1 溢出或非法数值 SM4.3 运行时间 表 5-9 双字整数与实数之间的转换指令 LAD STL DTR IN,OUT ROUND IN,OUT TRUNC IN,OUT 操作数及数 据类型 IN:VD, ID, QD, MD, SD, SMD, LD, HC, AC, 常量 数

30、据类型:双整数 OUT : 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 数据类型:双整数 IN: VD, ID, QD, MD, SD, SMD, LD, AC, 常量 数据类型:实数 OUT :VD, ID, QD, MD, SD, SMD, LD, AC 数据类型:双整数 功能及 说明 DTR指令将32 位带符号整数IN 转换成 32 位实数,并将结果置入 OUT指定的存储单元 ROUND

31、指令按小数部分四舍五入的 原则,将实数(IN)转换成双整数 值,并将结果置入OUT指定的存储 单元 TRUNC(截位取整) 指令按将小数部 分直接舍去的原则,将32 位实数 (IN)转换成 32 位双整数, 并将结 果置入 OUT指定存储单元 ENO=0 的错 误条件 0006 间接地址 SM4.3运行时间 0006 间接地址 SM1.1 溢出或非法数值 SM4.3运行时间 0006 间接地址 SM1.1溢出或非法数值 SM4.3运行时间 值得注意的是: 不论是四舍五入取整,还是截位取整, 如果转换的实数数值过大,无法在输出中表示, 则产生溢出,即影响溢出标志位,使SM1.1=1 ,输出不受影

32、响。 4. BCD 码与整数的转换 BCD 码与整数之间的转换的指令格式、功能及说明,如表5-10 所示。 表 5-10 BCD 码与整数之间的转换的指令 LAD STL BCDI OUT IBCD OUT 操作数及数 据类型 IN :VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量 OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC IN/OUT 数据类型:字 功能及 说明 BCD-I 指令将二进制编码的十进制数IN 转换成整数, 并将结果送入OUT 指定的存储单元。IN 的有效范围 是 BCD 码 0 至 9999

33、 I-BCD 指令将输入整数IN 转换成二进制编码的十进 制数,并将结果送入OUT 指定的存储单元。IN 的 有效范围是0 至 9999 ENO=0 的错 误条件 0006 间接地址, SM1.6 无效 BCD 数值, SM4.3 运行时间 注意: (1)数据长度为字的BCD 格式的有效范围为:09999 (十进制), 00009999 (十六进制) 0000 0000 0000 00001001 1001 1001 1001( BCD 码) 。 (2)指令影响特殊标志位SM1.6(无效 BCD) 。 (3)在表 5-10 的 LAD 和 STL 指令中, IN 和 OUT 的操作数地址相同。

34、若IN 和 OUT 操作数地址不 是同一个存储器,对应的语句表指令为:MOV IN OUT BCDI OUT 5. 译码和编码指令 译码和编码指令的格式和功能如表5-11 所示。 表 5-11 译码和编码指令的格式和功能 LAD STL DECO IN,OUT ENCO IN,OUT 操作数及数 据类型 IN:VB, IB, QB, 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,

35、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 的第二位置1,VW40 中的二进制数为2#0000 0000 0

36、000 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 所示。 表 5-1

37、2 七段显示译码指令 LAD STL 功能及操作数 SEG IN,OUT 功能:将输入字节(IN )的低四位确定的16 进制数( 16#0F) ,产生相应的七段显示码, 送入输出字节OUT IN: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.1 SEG 0, AC1 图 5-13 例 5-9 题图 程

38、序运行结果为AC1 中的值为16#3F(2#0011 1111)。 7. ASCII 码与十六进制数之间的转换指令 ASCII 码与十六进制数之间的转换指令指令格式和功能如表5-13 所示。 表 5-13 ASCII 码与十六进制数之间转换指令的格式和功能 LAD STL ATH IN ,OUT ,LEN HTA IN ,OUT,LEN 操作数及数据类型IN/ OUT :VB, IB, QB, MB, SB, SMB, LB。数据类型:字节 LEN :VB, IB, QB, MB, SB, SMB, LB, AC, 常量。数据类型:字节。最 大值为 255 功能及 说明 ASCII 至 HEX

39、(ATH)指令将从 IN 开始的长度为LEN 的 ASCII 字符 转换成十六进制数, 放入从 OUT 开 始的存储单元 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

40、 置位为 1。 【例 5-10】将 VB10 VB12 中存放的3 个 ASCII 码 33、45、 41,转换成十六进制数。 梯形图和语句表程序如图5-14 所示。 LD I1.0 ATH VB10, VB20, 3 图 5-14 例 5-10 题图 程序运行结果如下: 可见将 VB10 VB12 中存放的 3 个 ASCII 码 33、45、41,转换成十六进制数3E 和 Ax ,放在 VB20 和 VB21 中, “x”表示 VB21 的“半字节”即低四位的值未改变。 5.1.5 天塔之光的模拟控制实训 1. 实训目的 (1)掌握移位寄存器指令的应用方法 (2)用移位寄存器指令实现天塔之

41、光控制系统 (3)掌握 PLC 的编程技巧和程序调试的方法 2. 控制要求 如图 5-15 所示的天塔的灯光,可以用PLC 控制灯光的闪耀移位 及时序的变化等。控制要求如下:按起动按钮,L12L11L10L8 L1L1 、L2、L9 L1、L5 、L8 L1、 L4、L7 L1、L3、 L6L1 L2、L3 、L4、L5 L6、L7 、L8、 L9 L1、L2、 L6L1、 L3、L7 L1、L4 、L8L1、 L5、L9L1L2、L3、L4、L5 L6、L7、L8 、 L9L12L11L10 循环下去,直至按下停止按钮。 3. I/O 分配 输入输出 起动按钮:I0.0 L1 :Q0.0 L

42、4 Q0.3 L7:Q0.6 L10 Q1.1 停止按钮:I0.1 L2 :Q0.1 L5 Q0.4 L8:Q0.7 L11 Q1.2 L3: Q0.2 L6 Q0.5 L9 : Q1.0 L12 Q1.3 4. 程序设计 分析:根据灯光闪亮移位, 分为 19 步, 因此可以指定一个19 位的移位寄存器 (M10.1M10.7 , M11.0 M11.7 ,M12.0 M12.3) ,移位寄存器的每一位对应一步。而对于输出,如:L1(Q0.0)分别在“ 5、6、7、 8、9、10、13、14、15、16、17”步时被点亮,即其对应的移位寄存器位“M10.5、M10.6 、M10.7、M11.0

43、、 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. 输入、调试程序并运行程序 6. 思考题 如果控制要求改为L12L11L10L8L1L2、L3、L4、L5 L6、L7、L8、L9,循环如何修改程 序。输入程序,调试观察现象。 5.2 算术运算、逻辑运算指令 算术运算指令包括加、减、乘、除运算和数学函数变换,逻辑运算包括逻辑与或非指令等。 5.2.1

44、 算术运算指令 1. 整数与双整数加减法指令 整数加法( ADD-I )和减法( SUB-I )指令是:使能输入有效时,将两个16 位符号整数相加或相减, 并产生一个16 位的结果输出到OUT。 双整数加法( ADD-D )和减法( SUB-D )指令是:使能输入有效时,将两个32 位符号整数相加或相 减,并产生一个32 位结果输出到OUT。 整数与双整数加减法指令格式如表5-14 所示。 表 5-14 整数与双整数加减法指令格式 LAD STL MOVW IN1 ,OUT +I IN2, 0UT MOVW IN1 ,OUT -I IN2 ,0UT MOVD IN1 ,OUT +D IN2,0

45、UT MOVD IN1 ,OUT +D IN2 ,0UT 功能IN1+IN2=OUT IN1-IN2=OUT IN1+IN2=OUT IN1-IN2=OUT 操作数及数 据类型 IN1/IN2:VW, IW, QW, MW, SW, SMW, T, C, AC, LW, AIW, 常量, *VD, *LD, *AC OUT:VW, IW, QW, MW, SW, SMW, T, C, LW, AC, *VD, *LD, *AC IN/OUT 数据类型:整数 IN1/IN2 : VD, ID, QD, MD, SMD, SD, LD, AC, HC, 常量 , *VD, *LD, *AC OUT

46、:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC IN/OUT 数据类型:双整数 ENO=0 的错 误条件 0006 间接地址,SM4.3 运行时间,SM1.1 溢出 说明: (1)当 IN1、IN2 和 OUT 操作数的地址不同时,在STL 指令中,首先用数据传送指令将IN1 中的数 值送入OUT,然后再执行加、减运算即:OUT+IN2=OUT 、OUT-IN2=OUT 。为了节省内存,在整数加法 的梯形图指令中,可以指定IN1 或 IN2=OUT ,这样,可以不用数据传送指令。如指定INI=OUT ,则语句 表指令为: +I IN2, OUT

47、;如指定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 VW200, AC0 /VW200 AC0 +I +400, AC0 /VW20

48、0+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 ) :使能输入有效时,将两

49、个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, 常 量, *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 整数乘除法指令格式 LAD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1