PLC程序编程之数据运算
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPM1A系列提供多种数据传送指令,可实现数据传送、取反传送。 用位传送指令MOVB(82)或数字传送指令MOVD(83)可传送通道中的
某一位或某一位数字。
CPM1A系列提供了4种数据比较指令
,指令对比较标志位有影响。
END
可编程序控制器
任务八 数据运算控制
8.2 数据移位指令
END
可编程序控制器
当(C1+1、C1)= (C2+1、C2) ,等于标志位25506为ON 当(C1+1、C1)< (C2+1、C2) ,小于标志位25507为ON
END
可编程序控制器
任务八 数据运算控制
3.块比较
在执行条件为ON时,将数据CD与每一个区域进行比较,若CD处在某个区域中, 则与该区域对应的R通道的位为ON,当比较块超出所在区域的范围或间接寻 址DM通道不存在时25503位ON。
任务八 数据运算控制
8.2 数据移位指令
8.2.1 移位寄存器指令(SFT)
1. 梯形图符号
数据输入端IN 移位脉冲端CP 复位端R
SFT ST E
@SFT ST E
Start,起始通道号 End,结束通道号
2. 指令执行过程
当复位端R为 OFF 时,在移位脉冲端CP有效时,ST到E通道中的所有位依次左移一 位,E通道的最高位丢失,ST通道的最低位则移进数据输入端IN的状态数据。 E.15 E.14 0 1 1 0 0 1 0 … ST.01 ST.00 1 1 0 0 1 0 1 1:IN为ON 1 1 0 0 1 0 1 0:IN为OFF
目的通道R
源通道S
转换为二进制后传送
END
可编程序控制器
任务八 数据运算控制
8.3.2 二进制
BCD 码转换 指令 BCD/@BCD
指令功能:当执行条件为ON时,将S中的二进制数据转换为BCD码,存入R中。 转换过程中,S的内容保持不变。 S/R:
BCD S R
IR, SR, HR, AR, LR,DM,*DM
END
可编程序控制器
任务八 数据运算控制
4 数字传送指令 MOVD/@MOVD
指令功能:当执行条件为ON时,将S中指定的数字位(4位)传送到D中指定的数字位。 一次最多可以传送4个数字位。S中要传送的第一个数字位,传送的数字位数、D中接收 被传送数字的第一个数字位由C指定,C低三位数都必须在0——3之间,
可编程序控制器
使用@SDEC的例子
MOV S D
S/D: IR, SR, HR, AR, LR,DM,*DM
源通道S
目的通道D
位状态不变
END
可编程序控制器
任务八 数据运算控制
2.取反传送指令 MVN/@MVN
指令功能:当执行条件为ON时,将S中的数据取反后传送到D通道中。
MVN S D
S/D: IR, SR, HR, AR, LR,DM,*DM
MOVD S C D C
S/D/C: IR, SR, HR, AR, LR,DM,*DM,#
S中要传送的第一个数字位(0——3)
传送数字的位数(0——3) D中接收被传送数字的第一个数字位(0——3)
不用
END
可编程序控制器
任务八 数据运算控制
例
C=#0010 S D 0 1 2 3 0 1 2 3
END
可编程序控制器
任务八 数据运算控制
8.2.3算术左移指令 ASL/@ASL
指令功能:当执行条件为ON时,ASL每执行一次将CH中的数据左移一位,最 高位移到CY位,0移入最低位。
ASL CH
CH: IR, SR, HR, AR, LR,DM,*DM
CY 15 14
01 00 0
END
可编程序控制器
目的通道HR00
HR01
0
1
1 2
1 3
END
可编程序控制器
任务八 数据运算控制
8.3.4
16
4 译码器指令 DMPX/@DMPX
指令功能:当执行条件为ON时,DMPX 对S源通道进行进行编码,编码的结果存入R指 定的数字位上。
MLPX S C R
S/R/C: IR, SR, HR, AR, LR,DM,*DM
S中第一个要译码的数字位(0——3)
S中要译码的数字的位数(0——3)
不用(0)
例
不用(0)
END
可编程序控制器
任务八 数据运算控制
例 00000 MLPX 005 #0013 HR00
源通道S 00500 1 01 0 02 0 03 1 04 0 05 0 06 1 07 1 08 1 09 1 10 0 11 0 12 1 13 0 14 1 15 1
可编程序控制器
任务八 数据运算控制
可编程序控制器
任务八 数据运算控制 学习目标:
1. 掌握可数据传送和数据比较控制指令的功能和 使用方法
2. 熟练使用数据传送和数据比较指令编写程序
3. 掌握数据位移和数据转换控制指令的功能和使 用方法 4. 熟练使用数据位移和数据转换控制指令编写程 序
END
可编程序控制器
任务八 数据运算控制
8.2.4 算术右移指令 ASR/@ASR
指令功能:当执行条件为ON时,ASR每执行一次将CH中的数据右移一位,最 低位移到CY位,0移入最高位。
ASR CH
CH: IR, SR, HR, AR, LR,DM,*DM
15 14 0
01 00 CY
END
可编程序控制器
任务八 数据运算控制
源通道S
目的通道D
取反传送
END
可编程序控制器
任务八 数据运算控制
3 位传送指令 MOVB/@MOVB
指令功能:当执行条件为ON时,将S中指定的一位传送到D的指定位上,S和D 中的位由C指定。
MOVB S C D
S/D: IR, SR, HR, AR, LR,DM,*DM
C S中的源位(BCD数00——15) D中的目的位(BCD数00——15)
C R中接收编码结果的第一个数字位(0——3)
指定被编码的源通道数(0——3)
不用(0) 不用(0)
END
可编程序控制器
8.3.5
七段译码指令(SDEC/@SDEC)
图是使用七段译码指令@SDEC的例子。图 (c)是译码 后源通道与结果通道的内容,图 (d)是七段数码管各段与 结果通道各位的对应关系,图 (e)是译码后HR01中第1位数 字和第3位数字所对应的数码管显示的数字。 图中,指令的源通道号为HR00,结果通道为HR01。 控制字C=#0013,表明从源通道的第3位数字开始,对2个 数字进行译码,译码的顺序为第3位数字→第0位数字;从 结果通道的低8位开始接受第一个转换结果,每个结果占8 位,所以只占用一个结果通道。
可编程序控制器
译码的原理 当00000为ON时,执行@SDEC指令对HR00中的数据(为1673) 进行七段译码。源通道中的第3位数字是0001,经过七段译码 后,七段数码管应该显示数字1,即七段数码的b、c段应该是 1。第一个译码结果要存放在结果通道的低8位,所以HR01的 低8位是0000 0110(bit7固定为0);源通道中的第0位数字的 内容为0011,经过七段译码后,七段数码管应该显示数字3, 即七段数码的a、b、c、d、g段应该是1。第二个译码结果要 存放在结果通道的高8位,所以HR01的高8位是0100 1111(bitl5固定为0)。 本例中,若C=#0113时i虽然也是对2个数字进行译码,但 需要两个结果通道。这时结果通道应是以HR01为首通道的两 个连续通道。第一个译码结果存放在HR01的高8位,第二个译 码结果存放在HR02的低8位。 执行七段译码指令SDEC时,若源通道的内容有数码A—F, 七段数码管也可以显示出数码A—F。
任务八 数据运算控制 教学内容:
8.1 数据传送指令和数据比较指令
8.2 数据移位指令
8.3 数据转换指令
8.4 数据运算指令
END
可编程序控制器
任务八 数据运算控制
8.1数据传送指令和数据比较指令
8.1.1 数据传送指令 1.传送指令(MOV/@MOV)
指令功能:当执行条件为ON时,将S中的数据传送到D通道中。
本节小结
在使用移位指令时,要根据以下几方面的需要,选择不同的 移位指令: ①需要位移位、还是数字移位、还是字移位。 ②需要单向移位、还是循环移位。 ②是否需要标志位CY参与移位。
END
可编程序控制器
任务八 数据运算控制
8.3
数据转换指令
二进制指令 BIN/@BIN BCD 码转换 指令 BCD/@BCD 16 译码器指令 MLPX/@MLPX 16 4 译码器指令 DMPX/@DMPX
C=#0031 S D 0 1 2 3 0 1 2 据运算控制
8.1.2 数据比较指令 •CPM1A系列提供了4种数据比较指令。 单字比较 双字比较 块比较 表比较
END
可编程序控制器
任务八 数据运算控制
1.单字比较
在执行条件为ON时,C1和C2进行比较,并将比较结果送到各标志位: 当C1>C2,大于标志位25505为ON
8.2.2字移位指令 WSFT/@WSFT
指令功能:当执行条件为ON时,WSFT每执行一次将ST到E通道中的数据以字 为单位依次左移一次,E通道的数据丢失,0000移入ST通道。 ST: E: IR, SR, HR, AR, LR,DM,*DM
WSFT ST E
指令说明: 1 @为上升沿微分,带@的指令只有当其前面的状态由OFF变ON时执行一次; 不带@ 的指令在其前面的状态为ON时,每个扫描周期执行一次。 2 开始通道ST必须小于或等于结束通道号E,且ST和E必须在同一区域。S和 E如果指同一字,则生成16位移位寄存器。
END
可编程序控制器
任务八 数据运算控制
4.表比较
在执行条件为ON时,将数据CD与比较表中的数据进行比较,若CD与比较表中 某个通道数据相同,则与该通道对应的R通道的位为ON,,当比较表超出所 在区域的范围或间接寻址DM通道不存在时25503位ON。
END
可编程序控制器
任务八 数据运算控制
本节小结
源通道S
目的通道R
转换为BCD码后传送
END
可编程序控制器
任务八 数据运算控制
8.3.3 4
16 译码器指令 MLPX/@MLPX
指令功能:当执行条件为ON时,将S中指定的数据进行译码,译码的结果存入R开始的 通道中。
S/R/C:
MLPX S C R C
IR, SR, HR, AR, LR,DM,*DM
8.3.1 BCD 码 8.3.2 二进制 8.3.3 4 8.3.4
END
可编程序控制器
任务八 数据运算控制
8.3.1 BCD 码
二进制指令 BIN/@BIN
指令功能:当执行条件为ON时,将S中的BCD码转换为二进制数据,存入R中。 转换过程中,S的内容保持不变。
BIN S R
S/R: IR, SR, HR, AR, LR,DM,*DM
END
溢出
1 1 0 0 1 0 …
可编程序控制器
任务八 数据运算控制
3. 指令说明:
(1)ST和E只能是IR、HR、AR、LR区中的通道号,且必须在一个区中 (2)ST必须小于等于E,如果相等表示是一个16位的移位寄存器
4.
应用举例
.单方向顺序全通控制
霓虹灯效果(一)
END
可编程序控制器
任务八 数据运算控制
当C1=C2,等于标志位25506为ON 当C1<C2,小于标志位25507为ON
END
可编程序控制器
任务八 数据运算控制
2.双字比较
在执行条件为ON时,C1+1、C1两个通道的内容和C2+1、C2进行比较,并将比 较结果放在SR区的相关标志位中。 当(C1+1、C1)> (C2+1、C2) ,大于标志位25505为ON
某一位或某一位数字。
CPM1A系列提供了4种数据比较指令
,指令对比较标志位有影响。
END
可编程序控制器
任务八 数据运算控制
8.2 数据移位指令
END
可编程序控制器
当(C1+1、C1)= (C2+1、C2) ,等于标志位25506为ON 当(C1+1、C1)< (C2+1、C2) ,小于标志位25507为ON
END
可编程序控制器
任务八 数据运算控制
3.块比较
在执行条件为ON时,将数据CD与每一个区域进行比较,若CD处在某个区域中, 则与该区域对应的R通道的位为ON,当比较块超出所在区域的范围或间接寻 址DM通道不存在时25503位ON。
任务八 数据运算控制
8.2 数据移位指令
8.2.1 移位寄存器指令(SFT)
1. 梯形图符号
数据输入端IN 移位脉冲端CP 复位端R
SFT ST E
@SFT ST E
Start,起始通道号 End,结束通道号
2. 指令执行过程
当复位端R为 OFF 时,在移位脉冲端CP有效时,ST到E通道中的所有位依次左移一 位,E通道的最高位丢失,ST通道的最低位则移进数据输入端IN的状态数据。 E.15 E.14 0 1 1 0 0 1 0 … ST.01 ST.00 1 1 0 0 1 0 1 1:IN为ON 1 1 0 0 1 0 1 0:IN为OFF
目的通道R
源通道S
转换为二进制后传送
END
可编程序控制器
任务八 数据运算控制
8.3.2 二进制
BCD 码转换 指令 BCD/@BCD
指令功能:当执行条件为ON时,将S中的二进制数据转换为BCD码,存入R中。 转换过程中,S的内容保持不变。 S/R:
BCD S R
IR, SR, HR, AR, LR,DM,*DM
END
可编程序控制器
任务八 数据运算控制
4 数字传送指令 MOVD/@MOVD
指令功能:当执行条件为ON时,将S中指定的数字位(4位)传送到D中指定的数字位。 一次最多可以传送4个数字位。S中要传送的第一个数字位,传送的数字位数、D中接收 被传送数字的第一个数字位由C指定,C低三位数都必须在0——3之间,
可编程序控制器
使用@SDEC的例子
MOV S D
S/D: IR, SR, HR, AR, LR,DM,*DM
源通道S
目的通道D
位状态不变
END
可编程序控制器
任务八 数据运算控制
2.取反传送指令 MVN/@MVN
指令功能:当执行条件为ON时,将S中的数据取反后传送到D通道中。
MVN S D
S/D: IR, SR, HR, AR, LR,DM,*DM
MOVD S C D C
S/D/C: IR, SR, HR, AR, LR,DM,*DM,#
S中要传送的第一个数字位(0——3)
传送数字的位数(0——3) D中接收被传送数字的第一个数字位(0——3)
不用
END
可编程序控制器
任务八 数据运算控制
例
C=#0010 S D 0 1 2 3 0 1 2 3
END
可编程序控制器
任务八 数据运算控制
8.2.3算术左移指令 ASL/@ASL
指令功能:当执行条件为ON时,ASL每执行一次将CH中的数据左移一位,最 高位移到CY位,0移入最低位。
ASL CH
CH: IR, SR, HR, AR, LR,DM,*DM
CY 15 14
01 00 0
END
可编程序控制器
目的通道HR00
HR01
0
1
1 2
1 3
END
可编程序控制器
任务八 数据运算控制
8.3.4
16
4 译码器指令 DMPX/@DMPX
指令功能:当执行条件为ON时,DMPX 对S源通道进行进行编码,编码的结果存入R指 定的数字位上。
MLPX S C R
S/R/C: IR, SR, HR, AR, LR,DM,*DM
S中第一个要译码的数字位(0——3)
S中要译码的数字的位数(0——3)
不用(0)
例
不用(0)
END
可编程序控制器
任务八 数据运算控制
例 00000 MLPX 005 #0013 HR00
源通道S 00500 1 01 0 02 0 03 1 04 0 05 0 06 1 07 1 08 1 09 1 10 0 11 0 12 1 13 0 14 1 15 1
可编程序控制器
任务八 数据运算控制
可编程序控制器
任务八 数据运算控制 学习目标:
1. 掌握可数据传送和数据比较控制指令的功能和 使用方法
2. 熟练使用数据传送和数据比较指令编写程序
3. 掌握数据位移和数据转换控制指令的功能和使 用方法 4. 熟练使用数据位移和数据转换控制指令编写程 序
END
可编程序控制器
任务八 数据运算控制
8.2.4 算术右移指令 ASR/@ASR
指令功能:当执行条件为ON时,ASR每执行一次将CH中的数据右移一位,最 低位移到CY位,0移入最高位。
ASR CH
CH: IR, SR, HR, AR, LR,DM,*DM
15 14 0
01 00 CY
END
可编程序控制器
任务八 数据运算控制
源通道S
目的通道D
取反传送
END
可编程序控制器
任务八 数据运算控制
3 位传送指令 MOVB/@MOVB
指令功能:当执行条件为ON时,将S中指定的一位传送到D的指定位上,S和D 中的位由C指定。
MOVB S C D
S/D: IR, SR, HR, AR, LR,DM,*DM
C S中的源位(BCD数00——15) D中的目的位(BCD数00——15)
C R中接收编码结果的第一个数字位(0——3)
指定被编码的源通道数(0——3)
不用(0) 不用(0)
END
可编程序控制器
8.3.5
七段译码指令(SDEC/@SDEC)
图是使用七段译码指令@SDEC的例子。图 (c)是译码 后源通道与结果通道的内容,图 (d)是七段数码管各段与 结果通道各位的对应关系,图 (e)是译码后HR01中第1位数 字和第3位数字所对应的数码管显示的数字。 图中,指令的源通道号为HR00,结果通道为HR01。 控制字C=#0013,表明从源通道的第3位数字开始,对2个 数字进行译码,译码的顺序为第3位数字→第0位数字;从 结果通道的低8位开始接受第一个转换结果,每个结果占8 位,所以只占用一个结果通道。
可编程序控制器
译码的原理 当00000为ON时,执行@SDEC指令对HR00中的数据(为1673) 进行七段译码。源通道中的第3位数字是0001,经过七段译码 后,七段数码管应该显示数字1,即七段数码的b、c段应该是 1。第一个译码结果要存放在结果通道的低8位,所以HR01的 低8位是0000 0110(bit7固定为0);源通道中的第0位数字的 内容为0011,经过七段译码后,七段数码管应该显示数字3, 即七段数码的a、b、c、d、g段应该是1。第二个译码结果要 存放在结果通道的高8位,所以HR01的高8位是0100 1111(bitl5固定为0)。 本例中,若C=#0113时i虽然也是对2个数字进行译码,但 需要两个结果通道。这时结果通道应是以HR01为首通道的两 个连续通道。第一个译码结果存放在HR01的高8位,第二个译 码结果存放在HR02的低8位。 执行七段译码指令SDEC时,若源通道的内容有数码A—F, 七段数码管也可以显示出数码A—F。
任务八 数据运算控制 教学内容:
8.1 数据传送指令和数据比较指令
8.2 数据移位指令
8.3 数据转换指令
8.4 数据运算指令
END
可编程序控制器
任务八 数据运算控制
8.1数据传送指令和数据比较指令
8.1.1 数据传送指令 1.传送指令(MOV/@MOV)
指令功能:当执行条件为ON时,将S中的数据传送到D通道中。
本节小结
在使用移位指令时,要根据以下几方面的需要,选择不同的 移位指令: ①需要位移位、还是数字移位、还是字移位。 ②需要单向移位、还是循环移位。 ②是否需要标志位CY参与移位。
END
可编程序控制器
任务八 数据运算控制
8.3
数据转换指令
二进制指令 BIN/@BIN BCD 码转换 指令 BCD/@BCD 16 译码器指令 MLPX/@MLPX 16 4 译码器指令 DMPX/@DMPX
C=#0031 S D 0 1 2 3 0 1 2 据运算控制
8.1.2 数据比较指令 •CPM1A系列提供了4种数据比较指令。 单字比较 双字比较 块比较 表比较
END
可编程序控制器
任务八 数据运算控制
1.单字比较
在执行条件为ON时,C1和C2进行比较,并将比较结果送到各标志位: 当C1>C2,大于标志位25505为ON
8.2.2字移位指令 WSFT/@WSFT
指令功能:当执行条件为ON时,WSFT每执行一次将ST到E通道中的数据以字 为单位依次左移一次,E通道的数据丢失,0000移入ST通道。 ST: E: IR, SR, HR, AR, LR,DM,*DM
WSFT ST E
指令说明: 1 @为上升沿微分,带@的指令只有当其前面的状态由OFF变ON时执行一次; 不带@ 的指令在其前面的状态为ON时,每个扫描周期执行一次。 2 开始通道ST必须小于或等于结束通道号E,且ST和E必须在同一区域。S和 E如果指同一字,则生成16位移位寄存器。
END
可编程序控制器
任务八 数据运算控制
4.表比较
在执行条件为ON时,将数据CD与比较表中的数据进行比较,若CD与比较表中 某个通道数据相同,则与该通道对应的R通道的位为ON,,当比较表超出所 在区域的范围或间接寻址DM通道不存在时25503位ON。
END
可编程序控制器
任务八 数据运算控制
本节小结
源通道S
目的通道R
转换为BCD码后传送
END
可编程序控制器
任务八 数据运算控制
8.3.3 4
16 译码器指令 MLPX/@MLPX
指令功能:当执行条件为ON时,将S中指定的数据进行译码,译码的结果存入R开始的 通道中。
S/R/C:
MLPX S C R C
IR, SR, HR, AR, LR,DM,*DM
8.3.1 BCD 码 8.3.2 二进制 8.3.3 4 8.3.4
END
可编程序控制器
任务八 数据运算控制
8.3.1 BCD 码
二进制指令 BIN/@BIN
指令功能:当执行条件为ON时,将S中的BCD码转换为二进制数据,存入R中。 转换过程中,S的内容保持不变。
BIN S R
S/R: IR, SR, HR, AR, LR,DM,*DM
END
溢出
1 1 0 0 1 0 …
可编程序控制器
任务八 数据运算控制
3. 指令说明:
(1)ST和E只能是IR、HR、AR、LR区中的通道号,且必须在一个区中 (2)ST必须小于等于E,如果相等表示是一个16位的移位寄存器
4.
应用举例
.单方向顺序全通控制
霓虹灯效果(一)
END
可编程序控制器
任务八 数据运算控制
当C1=C2,等于标志位25506为ON 当C1<C2,小于标志位25507为ON
END
可编程序控制器
任务八 数据运算控制
2.双字比较
在执行条件为ON时,C1+1、C1两个通道的内容和C2+1、C2进行比较,并将比 较结果放在SR区的相关标志位中。 当(C1+1、C1)> (C2+1、C2) ,大于标志位25505为ON