✓ 最佳回答
0x745在TwinCAT Modbus库中表示“Response timeout”,但你说串口助手能收到,说明物理层通,问题多在EL6021的配置和Modbus地址映射。
1)EL6021默认是KL6xxx兼容模式,需在TwinCAT I/O里把EL6021的“Data Format”设为“8 data bits, even parity, 1 stop bit”,并确认“Baud Rate”=9600,否则库按默认9600 8N1发,变频器不回。
2)Modbus地址40100是1-based的保持寄存器,库里的Addr要填0-based的100(40100-40001=99,若库按1-based则填100),先试Addr=99。
3)Len=2表示读2个寄存器,但库要求Len是寄存器个数,若变频器只支持单个寄存器读,Len改1。
4)检查EL6021的“Terminal”配置:在TwinCAT里把“RS485”勾选,并设“Duplex”为Half,否则收发切换不对。
5)用TwinCAT的“Serial Line”监视功能抓实际发出的报文,确认站号、功能码、CRC是否正确,若CRC错则库的CRC计算与变频器不一致,需换用ModbusMaster_KL6xxx_FB的“CRC”参数或改用EL6021的“Modbus”固件模式。