yksk
信捷PLC,寄存器D1000内保存了一个非0的n位整数,假设是123456,现在我想把它取出来,6放到D0,5放到D1,依次类推,1放到D5,该如何操作,用什么指令?
小诚
除法指令,比如就12
你要取出1,就用12去除以10,商就是1,余数就是2.
分别取出来。
曾经试过,单取一个高位数可以的,123456,除以k100000,余数省略,可以把整数1取出来了,问题是余下23456,下一步怎么再把2取出来呢?如果把原来变量123456SUB掉100000再来操作下一步也可以,但是这个变量并不确定的,有可能345621,那且不是要先减300000再来第二步?那首先这个100000或者300000这个变量从哪里去取?
谢谢小诚,这种算法可是可以的,但是需要15条指令,扫描周期过长,有没有更简单的算法?
引用 yksk 的回复内容: 曾经试过,单取一个高位数可以的,123456,...
————————————————————————
不用谢,你试试能不能把不需要的先屏蔽掉。
既然是变量,你采集了就保存。然后数据处理,看看能不能用中断的方式处理
不知道是哪方面的应用,PLC执行速度是很快的。就这几步运算,没什么影响吧?
D22,D24都是32位的,应该没有溢出,求高手指点