Modbus RTU lower than specification recommendation #78185
Replies: 3 comments 1 reply
-
Sorry @jfischer-no, for not initially creating a discussion about it. I thought about whether this would lead to incompatibility between Modbus devices. In my opinion it should not, because in the remark from the specification it is about the "RTU receive driver" and a lower inter-frame time-out should allow the receiver to receive messages faster. However, I have another point (more of a follow-up) that would be nice to have clarified: The referenced source code limits the inter-frame timeout to ~1000 us (the calculated timeout at 38400 bits per second), but why? If the decision has been made not to use the recommended timeout of 1750 us, why then choose 1000 us instead of always calculating it based on the baud rate and just limiting it to the highest technically possible baud rate? It would be nice if we could clarify this topic. I think this is a problem when the interframe timeout is just randomly chosen. |
Beta Was this translation helpful? Give feedback.
-
No one here, who can say something about it? |
Beta Was this translation helpful? Give feedback.
-
@epneo-sebastianbaier Sorry, still have not had time to look why I preferred to limit it at 38400 bits/s |
Beta Was this translation helpful? Give feedback.
-
Is the resulting Modbus RTU timeout not different from the recommended value from the specification?
zephyr/subsys/modbus/modbus_serial.c
Lines 587 to 592 in 8c32a82
This will result in a RTU timeout of ~1000 uS at 38400 bits/s, but the specification recommended a higher value:
Modbus Serial Line Protocol and Implementation Guide V1.02
Does a lower value for the inter-frame delay of 1000 us not lead to an incompatibility between devices, which implement the recommend value of 1750 us?
Beta Was this translation helpful? Give feedback.
All reactions