資源描述:
《modbus-rtu通訊協(xié)議簡(jiǎn)介》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、MODBUS-RTU通訊協(xié)議簡(jiǎn)介??2008-01-1523:15:09
2、??分類:技術(shù)人生
3、??標(biāo)簽:
4、字號(hào)大中小?訂閱???????什么是MODBUS?MODBUS?是MODICON公司最先倡導(dǎo)的一種軟的通訊規(guī)約,經(jīng)過(guò)大多數(shù)公司?的實(shí)際應(yīng)用,逐漸被認(rèn)可,成為一種標(biāo)準(zhǔn)的通訊規(guī)約,只要按照這種規(guī)約進(jìn)行數(shù)據(jù)通訊或傳輸,不同的系統(tǒng)就可以通訊。目前,在RS232/RS485通訊過(guò)程中,更是廣泛采用這種規(guī)約。???????常用的MODBUS?通訊規(guī)約有兩種,一種是MODBUS?ASCII,一種是MODBUS?RTU。?一般來(lái)說(shuō),通訊
5、數(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ū)一起,或直接放在幫助中,這樣就方便了用戶的通訊。MODBUS-RTU通訊協(xié)議簡(jiǎn)介??????在本章主要講述如何利用軟件通過(guò)通訊口來(lái)操控該系列儀表。本章內(nèi)容的掌握需要您具有
6、MODBUS協(xié)議的知識(shí)儲(chǔ)備并且通讀了本冊(cè)其它章節(jié)所有內(nèi)容,對(duì)本產(chǎn)品功能和應(yīng)用概念有較全面了解。本章內(nèi)容包括:MODBUS協(xié)議簡(jiǎn)述,通訊應(yīng)用格式詳解,本機(jī)的應(yīng)用細(xì)節(jié)及參量地址表。?1.1?????????MODBUS協(xié)議簡(jiǎn)述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ī)),
7、然后,終端設(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)。?1.2?????????查詢—回應(yīng)周期?1.2.1??????????查詢查詢消息中的功能代碼告之被選中的從設(shè)備要執(zhí)行何種功能。數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。例如功能代碼03是要求從設(shè)備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告之從設(shè)備的信息:從何寄存器開(kāi)始讀及要讀的寄存器
8、數(shù)量。錯(cuò)誤檢測(cè)域?yàn)閺脑O(shè)備提供了一種驗(yàn)證消息內(nèi)容是否正確的方法。1.2.2??????????回應(yīng)如果從設(shè)備產(chǎn)生一正常的回應(yīng),在回應(yīng)消息中的功能代碼是在查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù):如寄存器值或狀態(tài)。如果有錯(cuò)誤發(fā)生,功能代碼將被修改以用于指出回應(yīng)消息是錯(cuò)誤的,同時(shí)數(shù)據(jù)段包含了描述此錯(cuò)誤信息的代碼。錯(cuò)誤檢測(cè)域允許主設(shè)備確認(rèn)消息內(nèi)容是否可用。?1.3?????????傳輸方式傳輸方式是指一個(gè)數(shù)據(jù)幀內(nèi)一系列獨(dú)立的數(shù)據(jù)結(jié)構(gòu)以及用于傳輸數(shù)據(jù)的有限規(guī)則,下面定義了與MODBUS協(xié)議–RTU方式相兼容的傳輸方式。
9、每個(gè)字節(jié)的位:·??1個(gè)起始位·??8個(gè)數(shù)據(jù)位,最小的有效位先發(fā)送·??無(wú)奇偶校驗(yàn)位·??1個(gè)停止位錯(cuò)誤檢測(cè)(Errorchecking):CRC(循環(huán)冗余校驗(yàn))?1.4?????????協(xié)議當(dāng)數(shù)據(jù)幀到達(dá)終端設(shè)備時(shí),它通過(guò)一個(gè)簡(jiǎn)單的“端口”進(jìn)入被尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信封”(數(shù)據(jù)頭),讀取數(shù)據(jù),如果沒(méi)有錯(cuò)誤,就執(zhí)行數(shù)據(jù)所請(qǐng)求的任務(wù),然后,它將自己生成的數(shù)據(jù)加入到取得的“信封”中,把數(shù)據(jù)幀返回給發(fā)送者。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機(jī)地址(Address)、被執(zhí)行了的命令(Function)、執(zhí)行命令生成的
10、被請(qǐng)求數(shù)據(jù)(Data)和一個(gè)校驗(yàn)碼(Check)。發(fā)生任何錯(cuò)誤都不會(huì)有成功的響應(yīng),或者返回一個(gè)錯(cuò)誤指示幀。?1.4.1??????????數(shù)據(jù)幀格式?AddressFunctionDataCheck8-Bits8-BitsNx8-Bits16-Bits??1.4.2??????????地址(Address)域地址域在幀的開(kāi)始部分,由一個(gè)字節(jié)(8位二進(jìn)制碼)組成,十進(jìn)制為0~255,在我們的系統(tǒng)中只使用1~247,其它地址保留。這些位標(biāo)明了用戶指定的終端設(shè)備的地址,該設(shè)備將接收來(lái)自與之相連的主機(jī)數(shù)據(jù)。每個(gè)終端設(shè)備的地址必須是唯
11、一的,僅僅被尋址到的終端會(huì)響應(yīng)包含了該地址的查詢。當(dāng)終端發(fā)送回一個(gè)響應(yīng),響應(yīng)中的從機(jī)地址數(shù)據(jù)便告訴了主機(jī)哪臺(tái)終端正與之進(jìn)行通信。?1.4.3??????????功能(Function)域功能域代碼告訴了被尋址到的終端執(zhí)行何種功能。下表列出了該系列儀表用到的功能碼,以及它們的意義和功能。代碼