您现在的位置是:首页 > PLC技术 > PLC技术
PLC的BCD加法/减法指令
来源:艾特贸易2017-06-05
简介指令格式及功能见表 3-41 ,对标志位的影响见表 3-42 。 表 3-41 BCD 加法 / 减法指令 表 3-42 BCD 加法指令对标志位的影响 【例 3-34 】 ADD (30) 指令使用举例。 【解】 若 00002 为 ON , CLC (41
指令格式及功能见表3-41,对标志位的影响见表3-42。 表3-41 BCD加法/减法指令 表3-42 BCD加法指令对标志位的影响
【例3-34】 ADD (30)指令使用举例。 【解】 若00002为ON,CLC (41)将清除CY,将IR030的内容与一个常数6103相加,结果存放到DM0100中,然后根据CY (25504)的状态将0或1送入DM0101。这就保证了来自最后一个数字的任何进位可出现在R+1,以便整个结果在以后的处理中可以作为一个8位的数据处理,如图3-46所示。 【例3-35】 12位BCD数相加。 【解】 设两个12位BCD数分别存放于LR20~LR22和DM0010~0012中,当00000为ON时,程序将这两个数相加,结果存放于HR10~HR13中。 其中,两个数的低8位用ADDL (54)相加,即LR20和LR21的内容加DM0010和DM0011,并将结果置于HR10和HR11;高4位及低8位运算产生的进位由ADD (30)执行加法运算;最后,通过两个0相加,将第二部分加法得到的进位置于HR13中。执行该运算的程序见图3-47。
图3-46 ADD (30)指令使用举例
图3-47 12位BCD加法 【例3-36】 单字长BCD数相减。 【解】 当00002为ON时,图3-48所示程序首先清CY,然后从IR010中减去DM0100的内容和CY,并将结果送到HR20。若CY由于执行SUB (31)而置位,则HR20中的结果被从0减去(先清CY)以得到真正的结果,并送回HR20。同时将HR2100置ON以表示结果为负;若CY由于执行SUB (31)没被置位,则结果为正数,第二步相减不执行,且HR2100不置ON。HR 2100的自锁可保证在程序重新扫描CY时不会将其置OFF。
图3-48 SUB (31)指令使用举例 对于负数结果,得到正确答案的过程如下: 第一次相减:IR(010)-DM0100-CY=1029-3452-0 =1029+(10000-3452) =7577=HR20, CY=1(有借位) 第一次相减:#0000-HR20-CY=0-7577-0 =0+(10000-7577)-0 =2423, CY=1(结果为负). 【例3-37】 双字长BCD数相减。 【解】 在本例中,用BSET (71)来清除DM0000和DM0001的内容,以使得到的负数结果能从0中减去(不能直接输入一个8位常数)。程序的执行过程与例3-35相似,梯形图见图3-49。
图3-49 双字长BCD数相减举例
点击排行
