Modbus協(xié)議可以說(shuō)是工業(yè)自動(dòng)化領(lǐng)域應用最為廣泛的通訊協(xié)議,因為它的開(kāi)放性、可擴充性和標準化使它成為一個(gè)通用工業(yè)標準。有了它,不同廠(chǎng)商的產(chǎn)品可以簡(jiǎn)單可靠的接入網(wǎng)絡(luò ),實(shí)現系統的集中監控,分散控制功能。
目前Modbus規約主要使用的是ASCII, RTU, TCP等,并沒(méi)有規定物理層。目前Modbus常用的接口形式主要有RS-232C,RS485,RS422,也有使用RJ45接口的,ModBus的ASCII, RTU協(xié)議則在此基礎上規定了消息、數據的結構、命令和應答的方式。ModBus數據通信采用Master/Slave方式(主/從),即Master端發(fā)出數據請求消息,Slave端接收到正確消息后就可以發(fā)送數據到Master端以響應請求;Master端也可以直接發(fā)消息修改Slave端的數據,實(shí)現雙向讀寫(xiě)。
在串行通信中,用“波特率”來(lái)描述數據的傳輸速率。國際上規定了一個(gè)標準波特率系列:110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps。例如:9600bps,指每秒傳送9600位,包含字符的數位和其它必須的數位,如起始位、停止位和奇偶校驗位等。
在自動(dòng)化領(lǐng)域我們常用RTU模式,RTU 模式中每個(gè)字節的格式:
編碼系統:
8 位二進(jìn)制,十六進(jìn)制 0-9,A-F
數據位:
1 起始位
8 位數據,低位先送
奇/偶校驗時(shí) 1 位;無(wú)奇偶校驗時(shí) 0 位
帶校驗時(shí) 1 位停止位;無(wú)校驗時(shí) 2 位停止位
錯誤校驗區:
循環(huán)冗余校驗(CRC)
從站地址設置:
信息地址包括2 個(gè)字符(ASCII)或 8 位(RTU),有效的從機設備地址范圍 0-247(十進(jìn) 制)。
功能碼設置:
信息幀功能代碼包括字符(ASCII)或 8 位(RTU)。有效碼范圍 1-225(十進(jìn)制);
數據區的內容:
數據區有 2 個(gè) 16 進(jìn)制的數據位,數據范圍為 00-FF(16 進(jìn)制),根據網(wǎng)絡(luò )串行傳輸的方式,數據區可由一對 ASCII 字符組成或由一個(gè) RTU 字符組成。
RTU方式的消息幀
Modbus的功能碼
ModBus 功能碼與數據類(lèi)型對應表
RTU 方式讀取整數據的例子
解析一下:主機發(fā)送指令,訪(fǎng)問(wèn)從站地址為1,使用功能碼03(讀保持寄存器),起始地址高8位、低8位:表示想讀取的模擬量的起始地址(起始地址為0)。比如例子中的起始地址為38,十進(jìn)制為:56。寄存器數量高8位、低8位:表示從起始地址開(kāi)始讀多少個(gè)模擬量。例子中為1個(gè)模擬量。注意,在返回的信息中一個(gè)模擬量需要返回兩個(gè)字節。錯誤校驗為CRC校驗。
從站應答:設備地址和命令號和上面的相同。返回的字節數:表示數據的字節個(gè)數,也就是數據1,2...n中的n的值。例子中返回了1個(gè)模擬量的數據,因為一個(gè)模擬量需要2個(gè)字節所以共2個(gè)字節。數據高低字節:41和24代表返回的1個(gè)模擬量的值,即十進(jìn)制的16676。錯誤校驗為CRC校驗。
EP1C及EP1C Plus系列伺服驅動(dòng)器支持Modbus總線(xiàn)通訊,適用于機器人、數控系統、自動(dòng)化設備等。
Modbus總線(xiàn)采用RJ45接口形式,接線(xiàn)簡(jiǎn)單、穩定可靠。
特別說(shuō)明:此文章部分文字素材來(lái)源于網(wǎng)絡(luò ),版權歸原作者所有。