Modbus是一種串行通信協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣 Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)(De facto),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。
目前,在RS232/RS485通訊過(guò)程中, 更是廣泛采用這種規(guī)約。
常用的MODBUS 通訊規(guī)約有兩種,一種是MODBUS ASCII,一種是MODBUS RTU。一般來(lái)說(shuō),通訊數(shù)據(jù)量少而且主要是文本的通訊則采用MODBUS ASCII規(guī)約,通訊數(shù)據(jù)數(shù)據(jù)量大而且是二進(jìn)制數(shù)值時(shí),多采用MODBUS RTU規(guī)約。
在實(shí)際的應(yīng)用過(guò)程中,為了解決某一個(gè)特殊問(wèn)題,人們喜歡自己修改MODBUS規(guī)約來(lái)滿足自己的需要(事實(shí)上,人們經(jīng)常使用自己定義的規(guī)約來(lái)通訊,這樣能解決問(wèn)題,但不太規(guī)范)。更為普通的用法是,少量修改規(guī)約,但將規(guī)約格式附在軟件說(shuō)明書(shū)一起,或直接放在幫助中,這樣就方便了用戶的通訊。
ACRXXXE系列儀表使用的是MODBUS-RTU通訊協(xié)議,MODBUS協(xié)議詳細(xì)定義了校驗(yàn)碼、數(shù)據(jù)序列等,這些都是特定數(shù)據(jù)交換的必要內(nèi)容。MODBUS協(xié)議在一根通訊線上 使用主從應(yīng)答式連接(半雙工),這意味著在一根單獨(dú)的通訊線上信號(hào)沿著相反的兩個(gè)方向傳輸。首先,主計(jì)算機(jī)的信號(hào)尋址到一臺(tái)唯一的終端設(shè)備(從機(jī)),然后,終端設(shè)備發(fā)出的應(yīng)答信號(hào)以相反的方向傳輸給主機(jī)。
MODBUS協(xié)議只允許在主機(jī)(PC,PLC等)和終端設(shè)備之間通訊,而不允許獨(dú)立的終端設(shè)備之間的數(shù)據(jù)交換,這樣各終端設(shè)備不會(huì)在它們初始化時(shí)占據(jù)通訊線路,而僅限于響應(yīng)到達(dá)本機(jī)的查詢信號(hào)。
Modbus具有以下幾個(gè)特點(diǎn):
(1)標(biāo)準(zhǔn)、開(kāi)放,用戶可以免費(fèi)、放心地使用Modbus協(xié)議,不需要交納許可證費(fèi),也不會(huì)侵犯知識(shí)產(chǎn)權(quán)。目前,支持Modbus的廠家超過(guò)400家,支持Modbus的產(chǎn)品超過(guò)600種。
(2)Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質(zhì)上傳送,如雙絞線、光纖、無(wú)線等。
(3)Modbus的幀格式簡(jiǎn)單、緊湊,通俗易懂,用戶使用容易,廠商開(kāi)發(fā)簡(jiǎn)單。
主機(jī)發(fā)送的報(bào)文格式:
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
主機(jī)發(fā)送的報(bào)文格式:
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
主機(jī)發(fā)送的報(bào)文格式:
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
例1:開(kāi)關(guān)量輸出點(diǎn)DO1,其當(dāng)前狀態(tài)為“分”,主機(jī)要控制該路繼電器“合”。
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
與主機(jī)發(fā)送的報(bào)文格式及數(shù)據(jù)內(nèi)容完全相同。
6、功能碼10:寫(xiě)多路寄存器
主機(jī)利用這個(gè)功能碼把多個(gè)數(shù)據(jù)保存到PDM表的數(shù)據(jù)存儲(chǔ)器中去。Modbus通訊規(guī)約中的寄存器指的是16位(2個(gè)字節(jié)或1個(gè)字),并且高位在前,低位在后。這樣PDM的存儲(chǔ)器都是2個(gè)字節(jié)。由于Modbus通訊規(guī)約允許每次最多保存60個(gè)寄存器,因此PDM一次也最多允許保存60個(gè)數(shù)據(jù)寄存器。
例如:主機(jī)要把數(shù)據(jù)2D7A、42B1、15E8保存到地址為002A、002B、002C的從機(jī)寄存器中去(從機(jī)設(shè)備地址為01)。
主機(jī)發(fā)送的報(bào)文格式:
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式: