可编程序控制器注意事项综上所述,使用SDEC指令要注意:①结果通道不能超过其所在区域,例如,在控制字C=#0113时,若结果通道数据为HR19就会出错。因为第一个结果要存放在HRl9的高8位,显然第二个译码结果无处存放。②一次最多只能对4个数字进行译码。若C设置错误,程序将无法执行。例如,C设置为#0042,即对5个数字进行译码,这显然是错误的。可编程序控制器8.3.6ASCII码转换指令(ASC/@ASC)图是执行ASC指令的几种情况。图(a)中C=#0011,表示从源通道S的数字位1开始转换,转换2位,转换结果从结果通道R的低8位开始存放,不校验。源通道S的数字位1是BCD数3,转换成ASCII码是33,数字位2是BCD数1,转换成ASCII码是31。由于C指定不校验,所以bit07和bitl5都写0。图(b)中C=#1010,示意从源通道S的数字位0开始转换,转换2位,转换结果从结果通道R的低8位开始存放,偶校验。源通道S的数字位0和1是BCD数3和1,转换成ASCII码是33和31,由于C指定为偶校验,在R的低8位中,ASCII码里1的个数已是偶数,所以bit07写0;在R的高8位中,ASCII码里1的个数不是偶数,所以bitl5写1。图(c)中C=#2010,指定为奇校验,在R的低8位中,ASCII码里1的个数不是奇数,所以bit07’写1;在R的高8位中,ASCII码里1的个数已是奇数,所以bitl5写0。可编程序控制器执行ASCII指令的几种情况可编程序控制器本节小结使用编码指令DMPX时要注意:①S+3不能超过其所在区域。例如,在控制字C=#0023时,若源首通道设为HR18就会出错。因为要对3个通道进行编码,而HR区只有HRl8和HRl9这2个通道可以供编码了。②要牢记控制字的内容及意义,并注意控制字的内容不能写错。由于一个结果通道只能存放4个转换结果,所以一次只能对4个源通道进行编码。若C设置错误,程序将无法执行。例如,若C设为#0042,即对5个源通道进行编码,而5个编码结果,一个结果通道是无法存放的。END任务八数据运算控制可编程序控制器8.4数据运算指令任务八数据运算控制END8.4.1十进制运算指令8.4.2二进制运算指令8.4.3逻辑运算指令可编程序控制器8.4.1十进制运算指令任务八数据运算控制END下表是十进制运算指令的格式、梯形图符号、操作数的含义及范围、指令的功能及执行指令对标志位的影响。可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器1.十进制加法运算指令(ADD/@ADD、ADDL@ADDL)图是使用ADD和ADDL指令的例子,图(c)是执行双字加运算的操作过程。为了保证运算的正确,每次运算前都先用CLC指令将进位位清零。图中,当00000为ON时执行@CLC指令清进位位,执行@ADD指令,将HR00(#1234)与#8341及CY相加,结果存放在DM0000中;当00001为ON时,执行@CLC指令清进位位,执行@ADDL指令,将双字HR02(#9876)HR01(#5432)与LR02(#1234)LR01(#5678)及CY相加,结果存放在DM0002和DM0001中。任务八数据运算控制END可编程序控制器使用BCD加法指令的例子任务八数据运算控制END可编程序控制器图是使用ADD指令修改TIM设定值的例子。任务八数据运算控制END可编程序控制器2.十进制减法运算指令(SUB/@SUB)图是使用减法运算指令SUB指令的例子。被减数在HR00中,减数在DM0000中,结果存入HR01中,进位位状态存入HR02中。两次减法运算的操作过程如下:HR00DM0000CYHR01CY第一次相减:1000—2000—0—1000十(100002000)9000HR01CYHR01CY第二次相减:0000—9000—0—0000十(10000—9000)=1001任务八数据运算控制END可编程序控制器使用SUB指令的例子任务八数据运算控制END可编程序控制器3.十进制递增(INC/@INC)、递减指令(DEC@DEC)及乘(MUL/@MUL)、除法(DIV@DIV)运算指令由于两个最大的单字BCD数相乘,即9999×9999=99980001,运算结果不发生进位,同样两个最大的双字BCD数相乘结果也不发生进位。所以乘、除运算都不涉及进位位CY。任务八数据运算控制END可编程序控制器8.4.2二进制运算指令CPM1A系列PLC的二进制数据运算指令都是单字运算指令。表是二进制运算指令的格式、梯形图符号、操作数的含义及范围、指令功能及执行指令对标志位的影响。任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器图中是使用二进制运算指令完成(250×8—1000)/50运算的例子。任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器8.4.3逻辑运算指令表是逻辑运算指令的格式、梯形图符号、操作数的含义及范围、指令功能及执行指令对标志位的影响。任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器任务八数据运算控制END可编程序控制器图是使用逻辑指令的例子。任务八数据运算控制END可编程序控制器本节小结CPM1A系列PLC提供了多种数据运算指令,包括对十进制和二进制数的加、减、乘、除运算以及数据的逻辑运算等。由于进行加、减运算时进位位也参与运算,所以还包含进位位置1和置0的指令STC和CLC。END任务八数据运算控制