请教大家一下:
1. 我想使用S7-200 smart PLC调用库文件中的modbus模块建立与温湿度传感器的通信。该传感器使用modbus—rtu通信协议(接线方式如图1,参数设置如图2)。我根据资料自己编写了一个简单的modbus的温度读取程序,通过定时器自复位产生一个500ms的脉冲,每次脉冲的上升沿触发"MBUS_MSG"模块读取40001保存寄存器内的值(如图3)。其中数据指针&VB1000在状态表上没有示值显示(如图4),但是在程序运行时显示“16#080003E8”(图3中红色圆框标记),请教大家这算是通信成功了吗?
2.假设该程序通信成功,那如何才能正常解码?就是如何才能将传感器应答的数据解码成十进制的整数或者浮点数?
3.当上述程序运行时(如图4),在状态表中发现当M5.2值为0时,MB6的值也是0;而当M5.2值为1时,MB6的值则是3(从站无响应,接收超时)。我的理解M5.1的上升沿触发开始,M5.2=MB6=0时,PLC正在从“从站温湿度传感器”读值;当完成读取之后,模块的完成标志位M5.2值为1,就断开了读取,所以MB6就会显示3。当计时500ms达到后又重复这一过程。这个理解正确吗?
非常感谢大家的无私帮助!
图片说明:
最佳答案
楼主你的接线是否有问题哦,一般485 A+,B-SMART 200,3+,8-,传感器的棕黑线接外部24V电就行,没必要连到PLC 口上。
提问者对于答案的评价:
非常感谢大家的无私帮助!
将485A接到3号脚上,485B接到8号脚上就读取到数据了,这和相关资料上描述的正好相反。。。。。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc288167.html