关于Modbus串口初始化的停止位参数设置的问题
-
在Modbus示例程序中:
uart = UART(3,115200, parity=None, stop=2, timeout=1, timeout_char=4)
停止位参数stop=2,但是在西门子S7-200系列PLC的modbusRTU的停止位是默认的1
2个停止位,对PLC接收应该是没有影响,那么PLC只给OpenMV发送1个停止位,是否会造成OpenMV接收错误呢?
-
在西门子S7-200系列PLC的modbusRTU的停止位是默认的1
这个不是的。
modbus规定,如果没有校验位,那么stop必须是2,如果有校验位(无论是奇校验,偶校验),那么stop必须是1。
视频里
PLC的校验位是0,就是没有校验位,那么stop自动就是2;
OpenMV上的校验位是None,就是没有校验位,stop设置是2。
-
http://www.modbus.org/docs/Modbus_over_serial_line_V1_02.pdf
第2.5.1节说的校验位的问题。
-
懂了,之前忽略了这回事