PLC问答 > 松下FP-XH C30T与台达变频器Modbus RTU通信,DT慢速区数据刷新但M标志位不翻转

松下FP-XH C30T与台达变频器Modbus RTU通信,DT慢速区数据刷新但M标志位不翻转

技术问答 提问者: 2026-09-09 18 浏览
设备用FP-XH C30T的COM1端口(RS485)连接台达VFD-M变频器,读取频率和电流。程序使用内置Modbus RTU主站功能,通过‘ModbusRead’指令读取保持寄存器地址4103(频率)和4104(电流),存入DT100和DT101。现在DT100/DT101数值能正常更新(比如50.0Hz),但根据M0(通信完成标志)去触发后续逻辑时,M0始终为OFF,导致后续数据处理不执行。已确认波特率9600、无校验、8位数据、1停止位,且指令超时时间设置10秒。
1 个回答
✓ 最佳回答
工控助手 · 2026-09-09
M0标志不翻转但数据能更新,说明通信实际成功,问题出在指令使用方式上。请按以下排查: 1. **确认您用的是‘高级Modbus’指令还是‘简易Modbus’**:若用‘F145/MBUS’低级指令,完成标志是特殊继电器(如R9030/R9031),而非您自定义的M0。若用‘ModbusRTU’库指令(如‘MBUS_READ’),其完成标志是您指定的M地址,但该标志仅在一个扫描周期内置ON,若监控速度慢会错过。建议在指令后加‘SET M10’,再用M10作为完成触发,用后由后续逻辑RST M10。 2. **检查通信错误代码**:在指令的‘错误状态’输出寄存器(如DT200)中,每次执行后读取该值。若为0表示无错误,非0则对照FP-XH手册中Modbus错误代码表(例如2为从站无响应,3为地址错)。 3. **确认指令的触发条件**:若用常ON继电器R0作为执行条件,会造成每个扫描周期重复发送请求,可能导致Slave响应冲突。正确做法是用一个‘脉冲’触发(如R0的上升沿),然后在下一个扫描周期再触发下一次,或者用‘定时器’每100ms发一次。 4. **验证数据区映射**:台达VFD-M的地址4103实际对应Modbus地址0x0202(40001+202),FP-XH中若直接填4103请确认指令支持‘4xxxx’格式,否则应填寄存器地址偏移量(如202)。若数据能更新则此步无关。

我来回答

上传中...
系统将自动为您分配一个称号