PLC问答
> FX3U用485BD做Modbus RTU主站,读不到从站数据怎么调试?
FX3U用485BD做Modbus RTU主站,读不到从站数据怎么调试?
一台FX3U-32MR加FX3U-485BD通信板,做Modbus RTU主站,读取一台温控仪表的数据。程序里用RS指令发送,但D200里读回来的数据一直是0。从站地址设为1,波特率9600,8N1。已经确认A接A、B接B,终端电阻也接了。用电脑串口助手单独测试从站能正常返回数据。请问FX3U这边程序或参数哪里设置不对?
4 个回答
✓ 最佳回答
通信口诀:站号波特率校验位,两端一致是前提;A对A来B对B,终端电阻两头加;不通就先调助手,直连从站验设备。超时查线长站点数,丢包查接地共地环。
✓ 最佳回答
按以下要点排查:1)485BD的通信格式由D8120设定,Modbus RTU 9600/8N1应设D8120=H0C81(具体按手册),并在程序初始化时用MOV写入,且需在M8002上电脉冲时设置。2)确认RS指令的发送数据长度和接收数据长度,接收长度要覆盖从站返回帧。3)发送前需保证M8122置位触发发送,发送完成后M8122自动复位。4)检查从站响应时间,适当增加接收超时判断。5)A/B线序虽确认,但485BD的SG信号地最好与从站共地。6)用GX Works2的梯形图监控D8120实际值,确认写入生效。7)若仍无数据,用示波器或串口监听确认FX3U是否真的发出了请求帧。
485通信超时丢包,多半是这几种:总线上站点太多(超过32个要加中继器)、线太长(超过1200米)、接线用了星型而不是手拉手菊花链、终端电阻漏加或加多了。还有接地问题:多个设备地电位不一样,会产生地环流干扰通信,把485的GND线连起来或者做好共地。Modbus RTU的报文间隔也要注意,某些触摸屏从站对帧间间隔敏感,间隔太长会判定超时。
通信连不上,排查顺序:一站号,主从站号必须唯一且和从站设备实际设置一致;二波特率、数据位、校验位、停止位,两端必须完全一致,这是八成连不上的原因;三接线,485是A对A、B对B,终端电阻(120欧)只在总线两端加,屏蔽层单端接地;四测试方法,先用串口调试助手直接对从站设备发报文,能通说明设备没问题,问题在PLC侧配置或程序。记住:通信问题先分开测,上位机直连从站能通,再谈PLC。