引用:
作者老柏(第四)
抱歉,我跳太多以致於非內行的人有點難理解,而且我也算錯很多地方
我用台達馬達的MODBUS說明來解釋
我們先看看RTU的第二層(還是第三層)傳輸方式
http://i.imgur.com/hdYBjd7.jpg
右邊的數字代表我要傳送的BYTE數,所以我總共要傳送1+1+4+1=7個BYTE
那假設我RTU用8bit、n(沒有檢馬)、2(2bit stop bit)這種模式傳送(這是底層),那每傳送一個byte的話底層要要多少個bit
http://i.imgur.com/nt53IEH.jpg
要11個bit
也就是說我傳送完我要的資料要7*11=77個bit(之前我錯算成9個BYTE所以才會寫99),再來換算成時間77/115200=0.668ms,那再加上前面要等10ms,所以是10.668ms
\\================================
然後來看ASCII
http://i.imgur.com/I3lIUkT.jpg
一個字必須兩個位元組來表示,也就是說我必須要34個位元組
假設我用7、E、1(7bit、檢碼偶同位、stop bit 1bit)來傳送
http://i....
|
如果想要量測實際傳送時間,建議還是上示波器,光是用推斷的,不一定準確,
再者還有一個問題,你是寫在windows架構?還是MCU?
如果是Windows,傳送資料並非你的傳送程式送出後,就馬上傳到設備端,
還須考慮到中斷優先順序,連MCU也可能會有這個問題。
Modbus我接觸了10年以上了,除了Modbus以外,還有接觸各家的通訊協定,
可能這樣還不算你所說的內行吧!
再者還有一個部分,你所謂的一樣傳輸時間週期是多久?
老實說你所描述的條件不太充足,很多部分很難幫你推斷問題何在。