Modbus tcp Modbus TCP PDU中的字节计数

Modbus tcp Modbus TCP PDU中的字节计数,modbus-tcp,Modbus Tcp,我正在编写一个Modbus TCP主机,以便与Modbus TCP从机通信 我在找出正确的数据包格式方面遇到了问题 这是标准数据包格式: | Tx ID | Proto ID | Length | Unit ID ***| FCode | Data |*** 如我们所知,FCode&Data构成通信的PDU 但是,我的Modbus TCP从机的前端有一个字节,表示传输的字节数。 看起来像这样: | Tx ID | Proto ID | Length | Unit ID ***| FCode

我正在编写一个Modbus TCP主机,以便与Modbus TCP从机通信

我在找出正确的数据包格式方面遇到了问题

这是标准数据包格式:

 | Tx ID | Proto ID | Length | Unit ID ***| FCode | Data |***
如我们所知,FCode&Data构成通信的PDU

但是,我的Modbus TCP从机的前端有一个字节,表示传输的字节数。 看起来像这样:

| Tx ID | Proto ID | Length | Unit ID ***| FCode | byte count | Data |***

我的问题是,这是否违反了Modbus TCP规范?

这取决于功能代码。不同的功能代码具有不同的pdu:s

例如,写入单个寄存器0x06没有字节计数,但写入多个寄存器0x010没有字节计数


正在使用哪些功能代码?

I,改进其格式,或帮助人们理解您的问题,并帮助您获得适当的答案。但是,您可能仍然需要添加更多信息,以便完全解决您的问题。我发现,根据实施指南,这种格式是可以接受的。我发现,从机在TCP上使用Modbus RTU,因此字节计数OK的额外字段,我明白了。您是否更换了从机或将代码更新为RTU以便现在一切正常?因为我添加了对从机的支持,并且在规范中可以接受,我添加了对Modbus TCP和Modbus RTU over TCP的支持,现在一切正常。谢谢你的意见