代码是在咱帖子中找的,但没有设备,无法验证正确性,哪位高手或者有设备的大侠帮助验证下,我带到现场就要用的。在此非常感谢!
#tempvalue1 := 16#ffff;
FOR #i := 0 TO 5 BY 1 DO//0到5循环6次,由几位字节位决定
#tempvalue1 := #tempvalue1 XOR BYTE_TO_WORD("Modbus send".DBB[#i]);
FOR #j := 0 TO 7 BY 1 DO
#tempvalue2 := #tempvalue1;
#tempvalue1 := SHR(IN := #tempvalue1, N := 1);
#tempvalue3 := #tempvalue2 AND 16#0001;
#k := (#tempvalue3 <> 16#0000);
IF #k = TRUE THEN
#tempvalue1 := #tempvalue1 XOR 16#A001;
END_IF;
END_FOR;
END_FOR;
"Modbus send".DBB[6] := WORD_TO_BYTE(#tempvalue1 AND 16#00FF);//高字节
"Modbus send".DBB[7] := WORD_TO_BYTE(SHR(IN := (#tempvalue1 AND 16#FF00), N := 8));//低字节