基于LabVIEW的Modbus協(xié)議兩種校驗碼的實現(xiàn)方法
- 文件介紹:
- 該文件為 doc 格式,下載需要 1 積分
- 基于LabVIEW的Modbus協(xié)議兩種校驗碼的實現(xiàn)方法.1Modbus協(xié)議的數(shù)據(jù)傳輸方式
Modbus協(xié)議定義了兩種數(shù)據(jù)傳輸方式,即ASCII模式和RTU模式(表1、表2)?刂破骺梢栽O置為兩種傳輸方式(ASCII或RTU)中的任何一種,在標準的Modbus網(wǎng)絡中進行通信。用戶可選擇想要的模式,包括串口通信參數(shù)(波特率、檢驗方式等);在配置每個控制器的時候,在一個Modbus網(wǎng)絡上的所有設備都必須選擇相同的傳輸模式和串口參數(shù)。
1.2Modbus消息幀
兩種傳輸模式中(ASCII或RTU),傳輸設備將Modbus消息轉(zhuǎn)為有起點和終點的幀,這就允許接收的設備在消息起始處開始工作,讀地址分配信息,判斷哪一個設備被選中(廣播方式則傳給所有設備),判知何時信息已完成。
1.2.1ASCII幀
使用ASCII模式,消息以冒號(:)字符(ASCII碼3AH)開始,以回車換行符結(jié)束(ASCII碼0DH,0AH)。
其他域可以使用的傳輸字符是十六進制的0…9,A…F。網(wǎng)絡上的設備不斷偵測“:”字符,當有一個冒號接收到時,每個設備都解碼下個域(地址域)來判斷是否發(fā)給自己。
消息中字符間發(fā)送的時間間隔最長不能超過1s,否則接收的設備將認為傳輸錯誤。一個典型消息幀如表3所示。
使用RTU模式,消息發(fā)送至少要以3.5個字符時間的停頓間隔開始。傳輸?shù)牡谝粋域是設備地址?梢允褂玫膫鬏斪址鞘M制的0…9,A…F。當?shù)谝粋域(地址域)接收到,每個設備都進行解碼以判斷是否發(fā)往自己。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標定消息的結(jié)束。一個新的消息可在此停頓后開始。
整個消息幀必須作為一連續(xù)的流傳輸。如果在幀完成之前有超過1.5個字符時間的停頓,接收設備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內(nèi)接著前個消息開始,接收的設備將認為它是前一消息的延續(xù)。這將導致一個錯誤,因為在最后的CRC域的
...