用SCL写子程序将从仪表读来的数据进行处理。遇到的问题是:
仪表的寄存器为REAL类型,读来后存入DB1.DBW0和DB1.DBW2。
请问各位老师,我怎样将DB.1DBW0和DB1.DBW2组合成REAL类型。(比如DB1.DBW0=W#16#4296,DB1.DBW2=W#16#F3ED,怎样才能将这两个字组合成双字DW#16#4296F3ED)
最佳答案
DB1.DBW0占DW高4位,比如DB1.DBW0为FFFF时DW为FFFF0000
DB1.DBW0先转换成DW,左移16位(W#16#10)与DW#16#FFFF0000相与
DB1.DBW2与DW#16#FFFF与
2数再或 S7思路是这样
提问者对于答案的评价:
把一个WORD写至DWORD然后左移16位,再与另一个WORD做OR运算这种方法可以实现,但是感觉比较繁琐。
在LAD下可以对一个DWORD分段寻址,用两个MOV指令分别将两个WORD写至目标DWORD的高字和低字就可以了。在SCL应该也有类似的方法吧?
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc173463.html