您好, 歡迎來(lái)到化工儀器網(wǎng)! 登錄| 免費(fèi)注冊(cè)| 產(chǎn)品展廳| 收藏商鋪|
運(yùn)用 ModBus 通信協(xié)議,實(shí)現(xiàn)電子秤 與 PLC 的實(shí)時(shí)通信
上海彩信電子科技有限公司 陳東富
【摘 要】 本文介紹了在工業(yè)控制系統(tǒng)中廣泛使用的 ModBus 通信協(xié)議。以 ModBus 的 ASCII 方
式為例,剖析了 ModBus 的指令結(jié)構(gòu),著重說(shuō)明基于 ModBus 通信協(xié)議的設(shè)備之間如何進(jìn)行數(shù)據(jù)通 信、如何使用 ModBus 通信協(xié)議把衡器接入 PLC 系統(tǒng),并簡(jiǎn)單介紹了 PLC 系統(tǒng)與局域網(wǎng)的互聯(lián)。 【關(guān)鍵詞】 ModBus 通信協(xié)議;PLC 可編程控制器;衡器
在衡器行業(yè)中,但凡涉及串行通信時(shí),工程師們都會(huì)有一種無(wú)奈,就是通信協(xié)議問(wèn)題。由于我 國(guó)衡器廠眾多,各自采用自己的通信協(xié)議,使得通信協(xié)議五花八門(mén),互不兼容。由于是自成一體, 也為后續(xù)與其他系統(tǒng)聯(lián)網(wǎng)、維修、儀表配件互換等留有后遺問(wèn)題。若采用一種工業(yè)控制領(lǐng)域的主流 協(xié)議,各衡器廠的通信協(xié)議都與這個(gè)主流協(xié)議兼容,那么上述問(wèn)題自然迎刃而解。這個(gè)主流協(xié)議首 推 ModBus。
一、什么是 ModBus
ModBus 是一種通信協(xié)議,是由 Modicon 公司發(fā)表于 1979 年,主要用于 PLC(可編程邏輯控 制器)系統(tǒng)。目前,在工業(yè)自動(dòng)化設(shè)備通信連接中,ModBus 已是相當(dāng)常見(jiàn)的一種連接方式。
二、ModBus 與其他通信協(xié)議比較
1、物理層簡(jiǎn)單、價(jià)廉:ModBus 可以在常用且廉價(jià)的 RS232、RS485 等物理媒介上運(yùn)行,不像
CanBus、ProfiBus、BitBus 等需昂貴的芯片支持。
2、免費(fèi):ModBus 是一種公開(kāi)的,可以無(wú)償使用的協(xié)議。而使用 ProfiBus 則需要向有關(guān)組
織登記繳費(fèi)。
3、使用普及:ModBus 是當(dāng)前工業(yè)控制中使用zui廣的一種通信協(xié)議,基于這點(diǎn),具有 ModBus
的設(shè)備接入工控系統(tǒng)相對(duì)容易。
4、維護(hù)方便:由于接入 ModBus 總線相對(duì)其他工控總線而言,比較簡(jiǎn)單。一般具有 RS232、 RS485 等串行口的 PC 機(jī)都可以接入,使用 PC 機(jī)自帶的超級(jí)終端軟件或其他串行控制軟件,就能 觀察 ModBus 通信過(guò)程,可以很方便地查出故障站點(diǎn)。
三、ModBus 的主要型式
ModBus 主要有四種型式:ASCII、RTU、TCP/IP 和 Plus。
1、ASCII 型式:采用 ASCII 碼進(jìn)行數(shù)據(jù)交換,使用縱向冗余校驗(yàn)的校驗(yàn)和(LRC)進(jìn)行數(shù)據(jù)
校驗(yàn)。
2、RTU 型式:采用二進(jìn)制碼進(jìn)行數(shù)據(jù)交換,使用循環(huán)冗余校驗(yàn)的校驗(yàn)和(CRC)進(jìn)行數(shù)據(jù)校
驗(yàn)。
3、TCP/IP 型式:主要用于以太網(wǎng),不使用校驗(yàn)和進(jìn)行數(shù)據(jù)校驗(yàn)。
4、Plus 型式:該型式為 Modicon 公司專(zhuān)有,采用專(zhuān)門(mén)的協(xié)處理器進(jìn)行數(shù)據(jù)處理。 目前,使用zui廣泛的型式是 ASCII 和 RTU,主要采用 RS232、RS422、RS485 進(jìn)行物理連接,
其中 RS485 使用zui多。
四、ModBus 的結(jié)構(gòu)
ModBus 協(xié)議是一個(gè) master(主)/slave(從)架構(gòu)的協(xié)議。有一個(gè)節(jié)點(diǎn)是 master 節(jié)點(diǎn),其他使 用 Modbus 協(xié)議參與通信的節(jié)點(diǎn)是 slave 節(jié)點(diǎn)。每一個(gè) slave 設(shè)備都有一個(gè)*的地址。ModBus 的 通信比較簡(jiǎn)單,由 master 發(fā)通信指令,指令中含有欲于之通信的 slave 站號(hào)。當(dāng) master 發(fā)指令時(shí), 所有 slave 都處于收聽(tīng)狀態(tài),一旦 slave 收聽(tīng)到與自己地址相同的站號(hào)時(shí),立刻執(zhí)行指令的內(nèi)容,并
回傳執(zhí)行的結(jié)果。
五、ASCII 型式的 ModBus 通信協(xié)議的格式
在 ModBus 上通信時(shí),各站點(diǎn)的通信參數(shù)必須一致,如:波特率、奇偶校驗(yàn)。 通信時(shí),一個(gè)信息字節(jié)中的每 8 位分為兩個(gè) ASCII 字符進(jìn)行傳輸,允許字符傳輸間隔在 1 秒之
內(nèi)。
1、ASCII 型式每一字節(jié)的格式
16 進(jìn)制編碼,ASCII 字符(0-9、A-F),即:0x30-0x39、0x41-0x46。
1 位開(kāi)始位、7 位數(shù)據(jù)位(先低后高)、1 位奇偶校驗(yàn)(無(wú)奇偶校驗(yàn)時(shí)為 0)、1 位停止位。
2、數(shù)據(jù)錯(cuò)誤校驗(yàn)采用縱向冗余校驗(yàn)(LRC)
3、通信幀格式(ModBus 命令格式)
開(kāi)始 | 地址(站號(hào)) | 功能 | 數(shù)據(jù) | 校驗(yàn)(LRC) | 結(jié)束 |
| | | | | |
:(0x | xx | xx | x... | xx | CR、LF(0x0d、0x |
| | | | | |
1 字符 | 2 字符 | 2 字符 | N 字符 | 2 字符 | 2 字符 |
| | | | | |
一個(gè)基本的 ModBus 命令,除了開(kāi)始、校驗(yàn)、結(jié)束字符外,還必須有地址項(xiàng)及功能項(xiàng)。地址—
—也就是站號(hào),想要被操作的對(duì)象(slave 站號(hào));功能——想要被操作的對(duì)象完成的任務(wù)。ModBus
命令可以沒(méi)有數(shù)據(jù)項(xiàng)。
被操作的對(duì)象,在完成所要求的操作后,必須回傳一幀信息,傳遞操作結(jié)果?;貍餍畔⒌母袷?/p>
與命令格式相同,只是數(shù)據(jù)內(nèi)容為操作的結(jié)果。
六、利用 ModBus,實(shí)現(xiàn) PLC 與電子稱(chēng)重設(shè)備的通信
為了使大家對(duì) Modbus 有更進(jìn)一步的了解,下面用例子方式說(shuō)明如何把電子稱(chēng)重設(shè)備接入 PLC 控制系統(tǒng)的 Modbus 總線網(wǎng)絡(luò)。例子中的稱(chēng)重儀表為上海彩信電子科技有限公司生產(chǎn)的 XK
中傳輸?shù)臄?shù)據(jù),正常工作時(shí)是移除的。
上述系統(tǒng)可實(shí)現(xiàn)以下功能:
1、正常工作時(shí),PLC 每隔 10 秒輪詢(xún)一次,獲取每臺(tái)秤的重量。
2、當(dāng)秤臺(tái)上重量異常時(shí),PLC 會(huì)發(fā)出警告信息,提示控制室人員注意。
3、控制人員可以通過(guò) PLC,對(duì)某臺(tái)秤發(fā)出置零、去皮等操作指令。
4、PLC 可對(duì)各臺(tái)秤的稱(chēng)量,進(jìn)行各項(xiàng)統(tǒng)計(jì),生成必要的統(tǒng)計(jì)報(bào)表。
七、ModBus 與局域網(wǎng)互連
現(xiàn)在,很多 PLC 都具有局域網(wǎng)接口,通過(guò)該接口,就可以遠(yuǎn)程控制稱(chēng)重系統(tǒng)了。當(dāng)然,也可 以通過(guò)接在 Modbus 總線上的 PC 機(jī),利用 PC 機(jī)的軟、硬件資源,編制相應(yīng)的軟件,將重量信號(hào)傳 送到局域網(wǎng)上。若局域網(wǎng)通過(guò)路由器接入因特網(wǎng),很顯然重量數(shù)據(jù)就可以在因特網(wǎng)上傳輸了。本系 統(tǒng)是通過(guò) PLC 的 DH+網(wǎng)絡(luò)接入局域網(wǎng)的。當(dāng)然,網(wǎng)絡(luò)部分使用的協(xié)議,* TCP/IP、NetBEUI。 Modbus 也有相關(guān)的 TCP/IP 型式,這里就不再贅述了,大家可以參考相關(guān)的書(shū)籍。
上述的稱(chēng)重系統(tǒng)只是 PLC 的一個(gè)子系統(tǒng),是后期改造的一個(gè)項(xiàng)目。其整個(gè) PLC 系統(tǒng)(見(jiàn)圖 2) 是采用美國(guó) ROCKWELL 公司的 PLC,共有 5 臺(tái) PLC 機(jī)箱(采用 PLC5 系列)、4 臺(tái)工控機(jī)和 2 臺(tái) 服務(wù)器、若干臺(tái) PC 組成的。PLC 采用 ROCKWELL 公司的 DH+網(wǎng)絡(luò)連接,使用 DF1 協(xié)議;其中 1
附錄: XK 說(shuō)明 報(bào)頭 站號(hào) 功能碼 首址 數(shù)據(jù)量 數(shù)據(jù)值 校驗(yàn)碼 報(bào)尾 指令 : xx xx xxxx xxxx xxxx LRC \CR\ LF 回傳 : xx xx xx xxxx LRC \CR \ LF 出錯(cuò) : xx xx xx LRC \CR 回傳 zui高位置 1 錯(cuò)誤碼 \ LF
報(bào)頭、報(bào)尾:所有指令均以冒號(hào)(:)開(kāi)始,以回車(chē)符、換行符結(jié)束。 站號(hào):2 個(gè) ASCII 碼,范圍為 01-90(16 進(jìn)制:0x01-0x
02:讀繼電器輸出狀態(tài);
04:讀稱(chēng)量狀態(tài)(顯示值、皮重等);
05:置零操作;
06:皮重操作;
07:通信測(cè)試;
08:讀定值;
09:寫(xiě)定值。
首址:4 個(gè) ASCII 碼,讀寫(xiě)數(shù)據(jù)的位置。
數(shù)據(jù)量:4 個(gè) ASCII 碼,讀寫(xiě)數(shù)據(jù)的數(shù)量。
數(shù)據(jù)值:讀寫(xiě)的數(shù)據(jù)。
校驗(yàn)碼:2 個(gè) ASCII 碼,采用 LRC 校驗(yàn)。
LRC 校驗(yàn)碼運(yùn)算:報(bào)頭(:)不參與運(yùn)算,LRC 在數(shù)據(jù)之后,在\CR\LF 之前。參加運(yùn)算的是報(bào) 頭之后,LRC 之前的所有數(shù)據(jù)。LRC 為參加運(yùn)算的數(shù)據(jù)之和的補(bǔ)碼,舍去進(jìn)位。
當(dāng)儀表執(zhí)行指令出錯(cuò)時(shí),會(huì)回傳錯(cuò)誤碼,并將功能碼的zui高位置 1。
錯(cuò)誤碼: 00--接收到的功能碼出錯(cuò); 01--數(shù)據(jù)地址錯(cuò); 02--數(shù)據(jù)數(shù)量錯(cuò);
03--數(shù)據(jù)值錯(cuò),如:預(yù)置皮重大于zui大稱(chēng)量 FS;
04--稱(chēng)量為負(fù)時(shí)去皮;
05--不在稱(chēng)重狀態(tài)時(shí)置零;
銷(xiāo)售代表:郭曉金
:
:
公司地址:上海市松江區(qū)沈磚公路5599號(hào)
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
以上信息由企業(yè)自行提供,信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由相關(guān)企業(yè)負(fù)責(zé),化工儀器網(wǎng)對(duì)此不承擔(dān)任何保證責(zé)任。
溫馨提示:為規(guī)避購(gòu)買(mǎi)風(fēng)險(xiǎn),建議您在購(gòu)買(mǎi)產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。