问题描述:
如何实现在PL7和unity中实现16个bit转换成一个word?所属产品线:
EcoStruxure Control Expert(原Unity Pro)解决方法:
在unity中直接调用bit_to_word的指令。
在PL7中可以调用bit_w指令,但是这个指令有严格的使用格式:
Result:=BIT_W(Tab, brow, nbit, wrow)
Result:存储的目标地址。格式一般为%MW:L,%MD:L,L为长度。
Tab:源地址表。格式一般为%M:L,%Q:L,%I:L,%Xi:L,L为长度。
Brow:源地址表的起始位号。
Nbit:源地址位个数。
Wrow:目标地址的起始字号。
如将%M20到%M48这样一个位表中的,从%M23到%M38的16个位,按照从低位到高位的顺序,写到%MW10开始的第3个字即%MW12里面。
如果用LD的OPERATE指令,可以这么写:%MW10:7:=BIT_W(%M20:29,3,22,2)
是否有帮助?