Modbus 通訊時規(guī)定主機發(fā)送完一組命令必須間隔3.5個字符再發(fā)送下一組新命令,這個3.5字符主要用來告訴其他設(shè)備這次命令(數(shù)據(jù))已結(jié)束,而這個3.5字符的時間間隔采用以下方式計算:
1個字符包括1位起始位、8位數(shù)據(jù)位(一般情況)、1位校驗位(或者沒有)、1位停止位(一般情況下)
這樣說起來一般情況下1個字符就包括11位
那么3.5個字符就是3.5*11=38.5位
還有比如沒有校驗位的
1個字符包括1位起始位、8位數(shù)據(jù)位(一般情況)、1位停止位(一般情況下)
這樣說起來一般情況下1個字符就包括10位
那么3.5個字符就是3.5*10=35位
波特率含義是每秒傳輸?shù)亩M制位的個數(shù)
比如9600bps,意思就是說每1秒(也就是1000毫秒)傳輸9600個位,
反過來說傳輸9600個二進制位需要1000毫秒
那么傳輸38.5個二進制位需要的時間就是:
38.5/9.6=4.0104167毫秒
MODBUS RTU要求一幀數(shù)據(jù)起始和結(jié)束至少有大于等于3.5個字符的時間
在波特率為9600的情況下,只要大于4.0104167毫秒即可!