实验目的:验证仪表ModbusRTU通讯的是否成功
实验器材:
1. 西门子1500CPU+6ES7541-1AB00-0AB0(RS485通讯模块)
2. 仪表型号:天仪LF401,数量2台;
仪表1:系列号(1702001278M)
仪表2:系列号(1702001283M)
3. 软件平台:S7-TIA-V14(博图,版本V14)
其中通讯模块设置成:半双工方式(RS485);
通讯协议:自由口/Modbus;连接仪表1,波特率=19200.
软件参数设置:
Slave_Lst=30(从站数量);
Request=100(100个数组,最大可用100个从站的通讯数据,通讯数据包括发送参数和接收数据区);
Mode=4(RS485方式);
EVEN=0(无奇偶校验);
StopBit=1(一位停止位);
Port=通讯设备ID;
时间参数设置:
RESP_TO=30ms;
Blocked_Proc_Timeout := 0.060(60ms);
定时超时=70ms;
3. 从站MODBUS的RTU模式通讯协议
1、仪表为485接口
2、数据传输模式:RTU模式。
3、数据格式:
1个起始位
8个数据位,最小的有效位先发送
无奇偶校验位
1个停止位
运行结果:
昨天下午17:00下班前,仪表数据能够读上来,错误代码只有16#80C8(从站未响应),这符合实际,因为只是连接一台仪表,轮询30台,其它29台仪表是不会响应的。
今天早上8:00上班后,一台仪表数据更新非常慢,看错误记录很多,见附图2(只是取了最近的100个错误状态字,错误状态字是在出现ERROR状态时候取得的)同时发现,当CPU打到Stop状态时候,RXD指示灯仍然闪烁,为什么?
为什么这样,难道仪表通讯有问题?怎么判断仪表有问题?
图片说明:
最佳答案
1、请仔细查看仪表说明书,是否有单次读取字数限制,有些仪表每次最多只能读少量数据,比如安川变频器modbus通讯每次读写都不能超过16个字,超过了就不响应
2、仪表是从站可以用Modbus Poll这个modbus主站模拟器测试一下,笔记本电脑需要一个USB转RS485的转换器,USB端接电脑,RS485端接仪表,插上转换器后在电脑设备管理器里找到对应的COM口,用modbus poll连接这个串口,读取仪表数据。如果是台式机,可以用一个RS232转RS485的转换器,再接仪表。转换器很便宜,淘宝上几十元一个
提问者对于答案的评价:
把屏蔽线接上外壳,RXD就不闪烁了,好像正常了,感谢技术朋友的关心
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc125847.html