现场有一台S7-1200,需要读取DB块中的节拍计时器值(DINT类型)。我配置了Modbus TCP从站,但读回来的数据总是0。请问是不是需要特殊设置?
回答:S7-1200的Modbus TCP库(如MB_SERVER)默认不支持读取非优化DB块。请在PLC属性中取消勾选“优化的块访问”,并确保DB块地址偏移正确。另外,Modbus地址映射需使用功能码03,起始地址对应DB块偏移(如DB1.DBD0对应地址40001)。
现场有一台S7-1200,需要读取DB块中的节拍计时器值(DINT类型)。我配置了Modbus TCP从站,但读回来的数据总是0。请问是不是需要特殊设置?
回答:S7-1200的Modbus TCP库(如MB_SERVER)默认不支持读取非优化DB块。请在PLC属性中取消勾选“优化的块访问”,并确保DB块地址偏移正确。另外,Modbus地址映射需使用功能码03,起始地址对应DB块偏移(如DB1.DBD0对应地址40001)。