串口通訊modbus協議
串口通訊
RS232:
全雙工,電纜最長15.2m發送TXD;接收RXD
邏輯1(MARK)=-3V~-15V邏輯0(SPACE)=+3~+15V
RS485:
半雙工,電纜最長1200m線制:兩線,A、B
多臺設備連接:所有A并聯,所有B并聯
RS485轉USB。安裝完驅動后會多一個串口(COM口),可在屬性=》高級中修改串口號COMN。
串口(及modbus)配置
停止位有校驗時1Bit,無校驗時2Bit其他
TTL(晶體管-晶體管邏輯電平)電平信號。+5V等價于邏輯“1”,0V等價于邏輯“0”
modbus-RTU協議:
RS485是硬件,modbus-RTU是協議。一般RS485上跑的也就是modbus-RTU,所以被混為一談。
MODBUS協議在一根通訊線上使用主從應答式連接(半雙工)主機查詢,從機回應
modbus-RTU幀結構
一般主機查詢
常用功能碼
數據 設備不同,數據位數不同 起始地址:0001
默認情況下先發地位,后發高位
錯誤校驗(CRC) 用串口調試軟件計算
有的通訊CRC高字節在前,有的通訊CRC高字節在后
Modbus通訊和串口通信校驗位
利用Modbus協議可以實現設備間的數據交換。Modbus通訊理論上支持4種ModiconPLC地址,即0*、1*、3*和4*四種,分別表示開出(中間線圈)、開入、模入、模出(中間寄存器)等數據地址。與西門子或其它設備中的開入、開出、模入、模出地址完全不對應。可以理解為0*和1*對應位地址的讀寫操作,3*和4*字地址的讀寫操作。
此處0*、1*、3*和4*表示長度有的為5位數字、有的為6位,其實和Modbus通訊無關,只是和軟件的表示方式有關。
按照Modbus通訊時最常用的是RTU讀請求格式:
從站地址(1個字節)、功能代碼(1個字節)、從站數據起始地址(2個字節)、讀數據長度(2個字節)、CRC校驗(2個字節)
可見,只需設置起始從站數據區起始地址和通訊長度即可。
特別注意,Modbus地址遵從IEC1的地址標準(最小地址為*1),西門子遵從IEC0的標準(最小地址為0,如M0.0)。因此,不同標準的地址做通訊時需要做地址變換,即加1的操作。
在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設置校驗位(數據位后面的一位),用一個值確保傳輸的數據有偶個或者奇個邏輯高位。例如,如果數據是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數是偶數個。如果是奇校驗,校驗位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數據,簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備能夠知道一個位的狀態,有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數據是否不同步。
-
串口通信
+關注
關注
34文章
1627瀏覽量
55575 -
modbus通訊
+關注
關注
0文章
13瀏覽量
1703
發布評論請先 登錄
相關推薦
評論