问题描述:使用32位数据时,触摸屏中显示的数据和PLC中实际值不一致。
解决思路:使用16进制数据对比数据格式,找出不同原因
调试中出现问题和分析:
1、使用modbus RTU协议和西门子S7-1200通讯。
2、发现程序在处理PLC数据时,采用宏指令采集PLC数据,然后传送至触摸屏LW地址,16位数据时正常,32位数据时异常(数据类型为int型)。
3、在画面上建立16进制数据显示读取上来的16位和32位数据,对比发现,32位数据异常原因为高低字和正常显示的高低字正好相反,西门子采集上来的数据是数据高字在前。
4、在宏指令中使用位移指令或者SWAPW指令对32位数据处理后,交换高低字后显示正常。 |