1.用普通指令求
用普通指令求总数,用的基本算法是累加。图6-65所示的为在指定的DM区内,求总数梯形图程序。
图6-65 求总数程序
该图用的是符号地址。从图梯级1知,当“求总数命令”ON时,第1条执行的指令MOV,先使“总数低字”置0。接着,把“总数高字”置0。再就是把“DM起始地址”赋值给“指针”,并计算结束地址,结果送DM12。注意,以上指令都是微分执行的。再就是执行微分指令,使LR0.02 ON一个扫描周期。
LR0.02 ON,使图梯级4中“求总数开始”ON,并自保持,直到“求总数完成”的常闭接点OFF,或“计算出错”的常闭接点OFF。
在“求总数开始”ON期间,梯级5将调子程序1。每个扫描周期都将调一次。
图中从SBN指令开始到RET指令之间的程序,为子程序。每调一次,总是先清进位位,再把“指针”指向的数与“总数低字”相加,如有进位,则“总数高字”加1。接着,修改指针,并判断是否“指针”已达到最后位置。
到了“指针”值大过DM12的值,即最后地址,则“求总数完成”ON,其常闭接点OFF。它将使“求总数开始”OFF(如图所示梯级4),“求总数开始”OFF使“求总数完成”复位(如图所示梯级2)。程序复原。
执行这个程序后,求和的值将存于“总数高字”及“总数低字”中。
如求的过程计算有误,如被加数不是BCD码,则P_ER ON,进而使“计算出错”ON。并通过它的常闭接点,使“求总数开始”OFF,计算停止。如再要计算,须先用0.05 ON,把“计算出错”复位。否则,不能再计算。
提示:这里求总数也需多个扫描周期才能完成。程序中加了出错控制。这是保证数据计算安全的需要。
2.用SUM(184)指令求和:
CJ1型PLC有求和,SUM(184),指令,可用其对指定范围内字节或字的数求和,并将结果输出到两个字中。指令梯形图格式为(www.xing528.com)
这里 C———指定求和的单元数(字节或字),C+1的指定单位是字还是字节、数据是二进制数(有符号数或无符号数)还是BCD码。如图6-66所示说明;
R1———求和范围的首字。
图6-66 C、C+1字含义
执行本指令,从R1开始到R1+C中指定数之间的所有的数相加,并将相加的结果输出到D+1(存高位)和D(存低位)中。
例:梯形图程序如图6-67,其中C及R1的有关取值如图6-68。当00000 ON时,SUM(184)从D00100开始的10(D00300内容为10)字节(D00301第13位为1)范围内求和。求和的结果写入D00300中。
图6-67 求总数程序
图6-68所示是执行过程数据情况。
从图知,在从D00100到D00105 10个字节求和,结果为0000037B,存于D00200及D00201中。
图6-68 C及R1的有关取值
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。