夜城直播_夜城直播app官方正版下载_夜城直播高品质美女在线视频互动社区

聊聊MODBUS通訊在工業(yè)控制系統(tǒng)中的應(yīng)用

2021/9/30 0:56:45 人評論 次瀏覽 分類:電子技術(shù)  文章地址:http://prosperiteweb.com/tech/3986.html

現(xiàn)代工業(yè)控制系統(tǒng)的架構(gòu)早已網(wǎng)絡(luò)化,隨著工業(yè)控制系統(tǒng)性能的提升,網(wǎng)絡(luò)化需求也在不斷演進,其主要特征表現(xiàn)為:各類控制系統(tǒng)的網(wǎng)絡(luò)互連與互操作;控制器或控制站與遠程I/O的通信連接;現(xiàn)場總線應(yīng)用的日趨廣泛;與管理信息系統(tǒng)的數(shù)據(jù)集成。因此,建立不同控制系統(tǒng)之間的通信,已成為自動化工程實施中的常態(tài)化需求,而MODBUS則是最為常用的通信方式之一。


MODBUS通信協(xié)議

1、MODBUS協(xié)議簡介
MODBUS通信協(xié)議是Modicon公司1979年提出的一種報文傳輸協(xié)議,它在工業(yè)控制領(lǐng)域中得到了廣泛的應(yīng)用,已成為一種事實上的工業(yè)標準。不同廠商生產(chǎn)的控制設(shè)備通過MODBUS協(xié)議可以進行數(shù)據(jù)傳輸,實現(xiàn)集中監(jiān)控。許多工控產(chǎn)品,例如:DCS,PLC,變頻器,人機界面和自動化儀表等,大都支持MODBUS協(xié)議。MODBUS網(wǎng)絡(luò)體系結(jié)構(gòu)如圖1所示。

MODBUS網(wǎng)絡(luò)體系結(jié)構(gòu)示意
圖1 MODBUS網(wǎng)絡(luò)體系結(jié)構(gòu)示意


MODBUS通信協(xié)議包括3類、4個子協(xié)議,分別是:

①基于串行鏈路的MODBUS RTU與MODBUS ASCII通信協(xié)議。
②基于TCP/IP網(wǎng)絡(luò)的MODBUS TCP通信協(xié)議。
③基于令牌環(huán)網(wǎng)的MODBUS Plus通信協(xié)議。事實上,MODBUS協(xié)議只定義了OSI模型的第2和7層,即:應(yīng)用層和數(shù)據(jù)鏈路層。它在連接至不同類型總線或網(wǎng)絡(luò)的設(shè)備之間提供客戶機/服務(wù)器通信,并將串行鏈路上的協(xié)議標準化,以便在1個主站和1個或多個從站之間交換MODBUS請求。
④MODBUS應(yīng)用層報文傳輸協(xié)議。提供了連接于總線或網(wǎng)絡(luò)的設(shè)備之間的客戶機/服務(wù)器通信。
⑤MODBUS串行鏈路協(xié)議。提供了連接于串行鏈路的設(shè)備之間的主/從通信,在MODBUS串行鏈路上,客戶機的功能由主節(jié)點提供,而服務(wù)器功能由從節(jié)點實現(xiàn)。

對于不同類型的MODBUS協(xié)議,其應(yīng)用層基本相同,但其他層各不相同。MODBUS RTU與MODBUS ASCII通信協(xié)議只有OSI模型的第1,2和7層,各層使用的協(xié)議分別為:物理層采用RS485或RS232協(xié)議;數(shù)據(jù)鏈路層采用MODBUS串行鏈路協(xié)議;應(yīng)用層采用MODBUS應(yīng)用層報文傳輸協(xié)議。MODBUS TCP通信協(xié)議擁有OSI模型的第1,2,3,4和7層,各層使用的協(xié)議分別為:物理層采用以太網(wǎng)物理層協(xié)議;數(shù)據(jù)鏈路層采用以太網(wǎng)IEEE802.3協(xié)議;網(wǎng)絡(luò)層采用IP協(xié)議;運輸層采用TCP協(xié)議;應(yīng)用層采用MODBUS應(yīng)用層報文傳輸協(xié)議。


2、MODBUS協(xié)議描述

通用MODBUS幀的結(jié)構(gòu)如圖2所示。MODBUS協(xié)議定義了1個與基礎(chǔ)通信層無關(guān)的簡單協(xié)議數(shù)據(jù)單元(PDU),特定總線或網(wǎng)絡(luò)上的MODBUS協(xié)議映射可以引入一些附加域,從而構(gòu)成應(yīng)用數(shù)據(jù)單元(ADU)。
通用MODBUS幀結(jié)構(gòu)示意
圖2 通用MODBUS幀結(jié)構(gòu)示意


MODBUS是1個請求/應(yīng)答協(xié)議,并且提供功能碼規(guī)定的服務(wù)。MODBUS功能碼是MODBUS請求/應(yīng)答PDU的關(guān)鍵元素。有三類MODBUS功能碼,分別是:公共功能碼、用戶定義功能碼和保留功能碼,其取值為1-127的十進制整數(shù)。常用公共功能碼定義見表1所列。


表1 常用公共功能碼定義


①公共功能碼是由MODBUS組織確認的、被確切定義的、唯一的功能碼,包含已被定義的公共功能碼和保留給未來使用的功能碼。

②用戶定義功能碼。MODBUS分配有2個用戶定義功能碼的區(qū)域,即:65-72和100-110的十進制數(shù)。用戶可以自行選擇和實現(xiàn)的1個功能碼,但不能保證被選功能碼的使用是唯一的。
③保留功能碼。某些公司在傳統(tǒng)產(chǎn)品上現(xiàn)行使用的功能碼,不作為公共使用。
對于MODBUS的4種通信子協(xié)議而言,MODBUS Plus僅用于Modicon公司的PLC中,MODBUS ASCII用于串行通信鏈路不穩(wěn)定的情況下,而MODBUS RTU與MODBUS TCP則是最為常用的子協(xié)議。MODBUS通信協(xié)議是一種公開的協(xié)議,這也是它得到廣泛應(yīng)用的原因之一。目前,MODBUS通信協(xié)議已有國家標準(GB/T 19582—2008),而MODBUSTCP通信子協(xié)議,已被發(fā)布為國際標準(IEC 61158)。

MODBUS通信的實施

1、基于工程角度的協(xié)議理解
盡管MODBUS通信協(xié)議是公開的,但由于協(xié)議的描述主要是面向產(chǎn)品研發(fā)人員,故內(nèi)容繁多、術(shù)語深奧,非通信專業(yè)出身的控制工程師很難理解。因此,基于工程角度的協(xié)議理解至關(guān)重要,也非常實用。

①功能碼的有限性
功能碼具有唯一性,選定了功能碼就意味著確定了要執(zhí)行的操作及數(shù)據(jù)對象。例如:功能碼02,就是對離散變量輸入(DI)的存儲區(qū)進行讀操作。


現(xiàn)行的公共功能碼共21個,但常用的功能碼只有8個(參見表1),大多數(shù)工業(yè)控制系統(tǒng)只支持有限的功能碼。例如:Siemens S7-200 PLC支持表1中的全部8種功能碼;國核自儀系統(tǒng)工程有限公司的NuCON-P DCS支持01,02,03,04,15和16共6種功能碼;而UPS一般只支持02和04兩種功能碼。極端情況下,有些工業(yè)控制系統(tǒng)只支持03和06兩種功能碼,但只要有布爾量的打包指令,仍可以實現(xiàn)2個控制系統(tǒng)之間的雙向MODBUS通信。


②MODBUS通信的可讀化
MODBUS通信幀比較抽象,還要指定數(shù)據(jù)讀/寫的地址,直接使用比較困難。為解決該問題,工業(yè)控制系統(tǒng)都提供了相應(yīng)的MODBUS通信指令,以支持MODBUS通信的可讀化。MODBUS通信指令形態(tài)各異,但核心功能只有兩點:

a)以可讀的形態(tài)提供給編程者,定義地址、功能、數(shù)據(jù)類型、傳輸速率、差錯校驗方式等通信要素。
b)根據(jù)控制系統(tǒng)自身的指令體系,給出數(shù)據(jù)讀/寫的內(nèi)存地址。實質(zhì)上,MODBUS通信指令建立了一種映射,提供了標準MODBUS通信幀與控制系統(tǒng)自身的指令體系以及內(nèi)存地址之間的對應(yīng)關(guān)系。

③不違反MODBUS通信協(xié)議的個性化約束
在不違反MODBUS通信協(xié)議的前提下,一些工業(yè)控制系統(tǒng)規(guī)定了自己的通信個性化約束。例如:只有在支持01功能碼的情況下,才能使用05功能碼,在實施過程中,有必要了解該類個性化約束。


④功能碼數(shù)制導(dǎo)致的二義性
功能碼具有唯一性,但它允許使用十進制或十六進制來表示,在應(yīng)用中有時會產(chǎn)生二義性。因此,當通信雙方論及功能碼時,要說明使用何種數(shù)制來表征功能碼,以避免誤導(dǎo),造成交流困難。


2、通信介質(zhì)與通信設(shè)備的選擇

MODBUS RTU和MODBUS ASCII的物理層主要采用RS485協(xié)議,通信介質(zhì)為有屏蔽的兩芯雙絞線,也支持光纖連接。MODBUS TCP的底層協(xié)議為以太網(wǎng)協(xié)議,通信介質(zhì)為無屏蔽的八芯雙絞線,也支持光纖連接。

MODBUS的通信設(shè)備主要有以下3類:

①RS485集線器
RS485集線器又稱485HUB,是支持RS485物理層協(xié)議的通信設(shè)備,使用它可以構(gòu)成MODBUS RTU,MODBUS ASCⅡ或Profibus-DP通信網(wǎng)絡(luò)。RS485集線器的基本結(jié)構(gòu):設(shè)備側(cè)多個RS485端口,監(jiān)控側(cè)1個RS485/RS232端口進行信號的轉(zhuǎn)發(fā),無協(xié)議轉(zhuǎn)換功能。RS485集線器的核心功能是:將設(shè)備側(cè)MODBUS從站的手牽手連接方式變換成星型連接方式,方便布線,并提高了通信鏈路的可靠性。


②串口服務(wù)器
串口服務(wù)器是一側(cè)支持RS485物理層協(xié)議、另一側(cè)支持以太網(wǎng)協(xié)議的通信設(shè)備,使用它可以將串口通信設(shè)備方便地接入TCP/IP網(wǎng)絡(luò),實現(xiàn)數(shù)據(jù)的雙向透明傳輸,進而構(gòu)成長距離的MODBUS RTU,MODBUS ASCⅡ或Profibus-DP通信網(wǎng)絡(luò)。串口服務(wù)器的基本結(jié)構(gòu):設(shè)備側(cè)多個RS485端口,監(jiān)控側(cè)1個以太網(wǎng)端口,內(nèi)置CPU、實時操作系統(tǒng)、支持RS485和TCP/IP協(xié)議。串口服務(wù)器的核心功能是:將設(shè)備側(cè)485從站的手牽手連接方式變換成星型連接方式,方便布線,并提高通信鏈路的可靠性;將485總線的數(shù)據(jù)幀和TCP/IP網(wǎng)絡(luò)的數(shù)據(jù)報文進行雙向轉(zhuǎn)換,借助TCP/IP網(wǎng)絡(luò)進行數(shù)據(jù)傳輸,構(gòu)成長距離的485總線,實現(xiàn)MODBUS RTU,MODBUS ASCⅡ或Profibus-DP的遠程通信。特別地,當設(shè)置成Real COM模式時,可以將監(jiān)控計算機側(cè)的以太網(wǎng)口仿真成虛擬串口,建立虛擬串口對現(xiàn)場串口設(shè)備的透明映射。


③MODBUS通信網(wǎng)關(guān)
MODBUS通信網(wǎng)關(guān)是一側(cè)支持MODBUS RTU或MODBUS ASCⅡ協(xié)議,另一側(cè)支持以太網(wǎng)協(xié)議的通信設(shè)備,使用它可以將MODBUS串口通信設(shè)備方便地接入TCP/IP網(wǎng)絡(luò),實現(xiàn)數(shù)據(jù)的雙向透明傳輸。MODBUS通信網(wǎng)關(guān)的基本結(jié)構(gòu):設(shè)備側(cè)多個RS485端口,監(jiān)控側(cè)1個以太網(wǎng)端口,內(nèi)置CPU、實時操作系統(tǒng)、支持MODBUS RTU/ASCⅡ和MODBUS TCP協(xié)議。MODBUS通信網(wǎng)關(guān)的核心功能是:將設(shè)備側(cè)MODBUS從站的手牽手連接方式變換成星型連接方式,方便布線,并提高通信鏈路的可靠性;完成MODBUS RTU/ASCⅡ和MODBUS TCP之間的協(xié)議轉(zhuǎn)換;當MODBUS通信網(wǎng)關(guān)設(shè)置為MODBUS TCP服務(wù)器時,可以支持多達16個MODBUS TCP客戶端的連接。


在建立MODBUS通信時,通信設(shè)備的選擇需要綜合考慮布線方式、通信距離、監(jiān)控側(cè)應(yīng)用程序的接口方式以及設(shè)備成本等因素。例如:如果監(jiān)控側(cè)應(yīng)用程序只提供了MODBUS RTU接口,就應(yīng)當選擇串口服務(wù)器作為通信設(shè)備。


3、MODBUS的調(diào)試工具

Modscan32是一款第三方的MODBUS調(diào)試軟件,它免安裝、已漢化、小巧(2.2M)、運行在Windous環(huán)境下,可以將個人電腦模擬成MODBUS主站,使用MODBUS RTU或MODBUS ASCII協(xié)議,與MODBUS從站通信。該調(diào)試軟件的主要功能是:排除故障,可以直接檢驗通信鏈路的連接和MODBUS從站側(cè)的狀態(tài);核對數(shù)據(jù),可以直觀地觀察一段連續(xù)的寄存器地址,檢查核對數(shù)據(jù)點;確定配置,調(diào)試無誤后直接將配置參數(shù)轉(zhuǎn)移到工業(yè)控制系統(tǒng)里。

MODBUS應(yīng)用實例

在某垃圾發(fā)電項目中,需要建立國核自儀系統(tǒng)工程有限公司的NuCON-P DCS(主站)與Siemens公司的S7-200PLC(從站)之間的雙向MODBUS通信,這屬于異構(gòu)控制系統(tǒng)的通信問題,需要在不同的控制平臺里分別進行配置和測試。MODBUS通信方式如圖3所示。

圖3 MODBUS通信方式示意


在該實例中,用于旋轉(zhuǎn)噴霧器控制的從站為S-200 CPU224XP,雙RS485端口,采用自由端口通信協(xié)議,支持MODBUS通信;主站為NuCON-P配置的MODBUS通信卡,4通道,它與旋轉(zhuǎn)噴霧器PLC之間的通信獨占1個通道。盡管DCS與PLC兩側(cè)的通信組態(tài)和通信指令形式上大相徑庭,但本質(zhì)上是一致的,基本包括以下幾個部分:

①通信參數(shù)。從站側(cè):從站地址26,波特率9600bit/s,奇偶校驗方式(偶校驗)等;主站側(cè):9600bit/s,奇偶校驗方式(偶校驗)等。
②操作參數(shù)。主站側(cè):隱含給出功能碼,本例中:“只讀:3區(qū)”意味著使用功能碼04。
③存儲地址。從站側(cè):給出寄存器區(qū)起始地址(間接尋址方式&VB1000);主站側(cè):給出寄存器區(qū)間(00000-00015)、寄存器數(shù)量(16)和映像區(qū)位置(AI:155-170)。
④輔助參數(shù)。主要在從站側(cè):模式選擇參數(shù)、限值參數(shù)、執(zhí)行標志、完成標志、錯誤代碼等。

結(jié)束語

建立異構(gòu)控制系統(tǒng)之間的MODBUS通信是自動化工程中常見的案例,也是技術(shù)難點之一。因此,操作工程師不僅要對MODBUS通信協(xié)議的基本原理有較深理解,還要熟悉通信兩端控制系統(tǒng)的硬件結(jié)構(gòu)與指令系統(tǒng),這些經(jīng)驗均需要在實踐中不斷積累與提升。
作者:黃達(國核自儀系統(tǒng)工程有限公司)

相關(guān)閱讀

RS485和MODBUS的區(qū)別與聯(lián)系
談?wù)凪ODBUS協(xié)議數(shù)據(jù)模型和地址模型

共有訪客發(fā)表了評論 網(wǎng)友評論

  客戶姓名:
郵箱或QQ:
驗證碼: 看不清楚?