產(chǎn)品分類+
一文看懂Modbus, RTU, RS485等名詞的聯(lián)系
Modbus rtu和Modbus tcp兩個協(xié)議的本質(zhì)都是MODBUS協(xié)議,都是靠MODBUS寄存器地址來交換數(shù)據(jù);但所用的硬件接口不一樣,Modbus RTU一般采用串口RS232C或RS485/422,而Modbus TCP一般采用以太網(wǎng)口。現(xiàn)在市場上有很多協(xié)議轉(zhuǎn)換器,可以輕松的將這些不同的協(xié)議相互轉(zhuǎn)換 如:Intesisbox可以把modbus rtu轉(zhuǎn)換成Modbus tcp
實際上Modbus協(xié)議包括ASCII、RTU、TCP。
標準的Modicon控制器使用RS232C實現(xiàn)串行的Modbus。Modbus的ASCII、RTU協(xié)議規(guī)定了消息、數(shù)據(jù)的結構、命令和就答的方式,數(shù)據(jù)通訊采用Maser/Slave方式。
Modbus協(xié)議需要對數(shù)據(jù)進行校驗,串行協(xié)議中除有奇偶校驗外,ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗.
ModbusTCP模式?jīng)]有額外規(guī)定校驗,因為TCP協(xié)議是一個面向連接的可靠協(xié)議。
TCP和RTU協(xié)議非常類似,只要把RTU協(xié)議的兩個字節(jié)的校驗碼去掉,然后在RTU協(xié)議的開始加上5個0和一個6并通過TCP/IP網(wǎng)絡協(xié)議發(fā)送出去即可
Modbus協(xié)議定義的寄存器地址是5位十進制地址,即:
線圈(DO)地址:00000~09999
觸點(DI)地址:10000~19999
輸入寄存器(AI)地址:30000~39999
輸出寄存器(AO)地址:40000~49999
由于上述各類地址是唯一對應的,因此有些資料就以其第一個數(shù)字區(qū)分各類地址,即:0x代表線圈(DO)類地址,1x代表觸點(DI)類地址、 3x代表輸入寄存器(AI)類地址、4x代表輸出寄存器(AO)類地址。
在實際編程中,由于前綴的區(qū)分作用,所以只需說明后4位數(shù),而且需轉(zhuǎn)換為4位十六進制地址。
簡單點說,modbus有四種數(shù)據(jù),DI、DO、AI、AO
DI: 數(shù)字輸入,離散輸入,一個地址一個數(shù)據(jù)位,用戶只能讀取它的狀態(tài),不能修改。比如面板上的按鍵、開關狀態(tài),電機的故障狀態(tài)。
DO: 數(shù)字輸出,線圈輸出,一個地址一個數(shù)據(jù)位,用戶可以置位、復位,可以回讀狀態(tài),比如繼電器輸出,電機的啟??刂菩盘枴?/span>
AI: 模擬輸入,輸入寄存器,一個地址16位數(shù)據(jù),用戶只能讀,不能修改,比如一個電壓值的讀數(shù)。
AO: 模擬輸出,保持寄存器,一個地址16位數(shù)據(jù),用戶可以寫,也可以回讀,比如一個控制變頻器的電流值。
無論這些東西被叫做什么名字,其內(nèi)容不外乎這幾種,輸入的信號用戶只能看不能改,輸出的信號用戶控制,并可以回讀。離散的數(shù)據(jù)只有一位,模擬的數(shù)據(jù)有16位。