工業(yè)控制中的通信協(xié)議就是在工業(yè)場景中,各個設(shè)備之間進行數(shù)據(jù)交互的時候能夠相互理解的交流語言,就像兩個不同國家的人需要先對應(yīng)好大家一起用英語交流還是用中文交流。下面就簡單介紹一下在工業(yè)控制中到底存在多少種“語言”,以及各種語言的特點。
在眾多公開或私有協(xié)議中可分為如下幾類:
標準協(xié)議:國際標準或公認的標準協(xié)議,如Modbus、DNP3、IEC104等,就像國際通用的交流語言。
私有公開:只有廠商自己設(shè)備支持并提供官方協(xié)議文檔,如Omron FINS協(xié)議、三菱Melsec協(xié)議等,就像中國南方或北大的地方話,只有當?shù)氐囊粋€地區(qū)的人能相互理解。
私有不公開:只有廠商自己設(shè)備支持且官方不提供協(xié)議文檔,如S7、西門子PPI協(xié)議、GE SRTP等。
下面我們找一些工業(yè)控制系統(tǒng)中比較常用的協(xié)議,詳述一下各協(xié)議的特點。
1.Modbus 協(xié)議
Modbus協(xié)議最初由Modicon公司開發(fā)出來,在1979年末該公司成為施耐德自動化部門的一部分,現(xiàn)在Modbus已經(jīng)是工業(yè)領(lǐng)域全球最流行的協(xié)議。此協(xié)議支持傳統(tǒng)的RS-232、RS-422、RS-485和以太網(wǎng)設(shè)備。
由于modbus協(xié)議是完全公開透明的,所需的軟硬件又非常簡單,這就使它成為了一種通用的工業(yè)標準。許多工業(yè)設(shè)備,包括PLC,DCS,智能儀表等都在使用Modbus協(xié)議作為他們之間的通訊標準。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進行集中監(jiān)控。
Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標準。此協(xié)議定義了一個控制器能認識使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進行通信的。
modbus通訊協(xié)議是一種主從式異步半雙工通信協(xié)議,采用主從式通訊結(jié)構(gòu),可以使一個主站對應(yīng)多個從站進行雙向通信。它描述了一控制器請求訪問其它設(shè)備的過程,如何回應(yīng)來自其它設(shè)備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。
Modbus協(xié)議包括ASCII、RTU等通訊方式,并沒有規(guī)定物理層。此協(xié)議定義了控制器能夠認識和使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進行通信的。標準的Modicon控制器使用RS232C實現(xiàn)串行的Modbus。Modbus的ASCII、RTU協(xié)議規(guī)定了消息、數(shù)據(jù)的結(jié)構(gòu)、命令和就答的方式,數(shù)據(jù)通訊采用主-從方式,主站發(fā)出數(shù)據(jù)請求消息,從站接收到正確消息后就可以發(fā)送數(shù)據(jù)到主站以響應(yīng)請求;主站也可以直接發(fā)消息修改從站的數(shù)據(jù),實現(xiàn)雙向讀寫。
當在一Modbus網(wǎng)絡(luò)上通信時,此協(xié)議決定了每個控制器須要知道它們的設(shè)備地址,識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動。如果需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。在其它網(wǎng)絡(luò)上,包含了Modbus協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯誤檢測的方法。
當在網(wǎng)絡(luò)上通信時,Modbus協(xié)議決定了每個控制器須要知道它們的設(shè)備地址,識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動。如果需要回應(yīng),控制器將生成應(yīng)答并使用Modbus協(xié)議發(fā)送給詢問方。
Modbus協(xié)議需要對數(shù)據(jù)進行校驗,串行協(xié)議中除有奇偶校驗外,ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗。另外,Modbus采用主從方式定時收發(fā)數(shù)據(jù),在實際使用中如果某從站點斷開后(如故障或關(guān)機),主端可以診斷出來,而當故障修復后,網(wǎng)絡(luò)又可自動接通。因此,Modbus協(xié)議的可靠性較好。
Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標準。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進行集中監(jiān)控。標準、開放,用戶可以免費、放心地使用Modbus協(xié)議,不需要交納許可證費,也不會侵犯知識產(chǎn)權(quán)。目前,支持Modbus的廠家超過400家,支持Modbus的產(chǎn)品超過600種。Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質(zhì)上傳送,如雙絞線、光纖、無線等。Modbus的幀格式簡單、緊湊,通俗易懂。用戶使用容易,廠商開發(fā)簡單。
2、PROFIBUS
一種用于工廠自動化車間級監(jiān)控和現(xiàn)場設(shè)備層數(shù)據(jù)通信與控制的現(xiàn)場總線技術(shù),可實現(xiàn)現(xiàn)場設(shè)備層到車間級監(jiān)控的分散式數(shù)字控制和現(xiàn)場通信網(wǎng)絡(luò),PROFIBUS,是一種國際化.開放式.不依賴于設(shè)備生產(chǎn)商的現(xiàn)場總線標準。PROFIBUS傳送速度可在 9.6kbaud~12Mbaud范圍內(nèi)選擇且當總線系統(tǒng)啟動時,所有連接到總線上的裝置應(yīng)該被設(shè)成相同的速度。廣泛適用于制造業(yè)自動化、流程工業(yè)自動化和樓宇、交通電力等其他領(lǐng)域自動化。PROFIBUS是一種用于工廠自動化車間級監(jiān)控和現(xiàn)場設(shè)備層數(shù)據(jù)通信與控制的現(xiàn)場總線技術(shù)??蓪崿F(xiàn)現(xiàn)場設(shè)備層到車間級監(jiān)控的分散式數(shù)字控制和現(xiàn)場通信網(wǎng)絡(luò),從而為實現(xiàn)工廠綜合自動化和現(xiàn)場設(shè)備智能化提供了可行的解決方案。
PROFIBUS協(xié)議結(jié)構(gòu)是根據(jù)ISO7498國際標準,以開放式系統(tǒng)互聯(lián)網(wǎng)絡(luò)(Open System Interconnection-OSI)作為參考模型的。該模型共有七層。 (1)PROFIBUS-DP:定義了第一.二層和用戶接口。第三到七層未加描述。用戶接口規(guī)定了用戶及系統(tǒng)以及不同設(shè)備可調(diào)用的應(yīng)用功能,并詳細說明了各種不同PROFIBUS-DP設(shè)備的設(shè)備行為。 (2)PROFIBUS-FMS:定義了第一.二.七層,應(yīng)用層包括現(xiàn)場總線信息規(guī)范(Fieldbus Message Specification - FMS)和低層接口(Lower Layer Interface - LLI)。FMS包括了應(yīng)用協(xié)議并向用戶提供了可廣泛選用的強有力的通信服務(wù)。LLI協(xié)調(diào)不同的通信關(guān)系并提供不依賴設(shè)備的第二層訪問接口。 (3) PROFIBUS-PA:PA的數(shù)據(jù)傳輸采用擴展的PROFIBUS-DP協(xié)議。另外,PA還描述了現(xiàn)場設(shè)備行為的PA行規(guī)。根據(jù)IEC1158-2標準,PA的傳輸技術(shù)可確保其本征安全性,而且可通過總線給現(xiàn)場設(shè)備供電。使用連接器可在DP上擴展PA網(wǎng)絡(luò)。 注:第一層為物理層,第二層為數(shù)據(jù)鏈路層,第三-六層末使用,第七層為應(yīng)用層。
3、OPC協(xié)議
為了便于自動化行業(yè)不同廠家的設(shè)備和應(yīng)用程序能相互交換數(shù)據(jù),定義了一個統(tǒng)一的接口函數(shù),就是OPC協(xié)議規(guī)范。OPC服務(wù)器的功能就是與下位機進行數(shù)據(jù)的交換,其中包含了大量的通訊程序和數(shù)據(jù)存貯程序。有了OPC就可以使用統(tǒng)一的方式去訪問不同設(shè)備廠商的產(chǎn)品數(shù)據(jù)。其他的軟件商只需開發(fā)面對服務(wù)器的程序即可,不用對不同的硬件設(shè)備開發(fā)不同的硬件驅(qū)動程序。減小了工作量,也方便了使用。
OPC基金會前前后后規(guī)定了不同的接口定義,如下:
OPC DA (Data Access, exchange of real-time values)
OPC A&E (Alarms & Events, exchange of alarms and events)
OPC HDA (Historical Data Access, exchange of historical values)
OPC XML DA (XML-based exchange of real-time values)
以上所有的接口定義,我們現(xiàn)在都統(tǒng)稱為OPC。OPC是基于WINDOWS COM/DCOM接口技術(shù)來規(guī)定的。
OPC UA
為了應(yīng)對標準化和跨平臺的趨勢,為了更好的推廣OPC,OPC基金會近些年在之前OPC成功應(yīng)用的基礎(chǔ)上推出了一個新的OPC標準-OPC UA。OPC UA接口協(xié)議包含了之前的 A&E, DA,OPC XML DA or HDA,只使用一個地址空間就能訪問之前所有的對象,而且不受WINDOWS平臺限制,因為它是從傳輸層Scoket以上來定義的,導致了靈活性和安全性比之前的OPC都提升了。
OPC UA的優(yōu)勢:
1.一個通用接口集成了之前所有OPC的特性和信息,A&E, DA,OPC XML DA or HDA
2.更加開放,平臺無關(guān)性,WINDOWS,LINUX都能兼容
3.擴展了對象類型,支持更復雜的數(shù)據(jù)類型比如變量,方法和事件
4.在協(xié)議和應(yīng)用層集成了安全功能,更加安全
5.易于配置和使用
核心的區(qū)別是因為OPC和OPC UA協(xié)議使用的TCP層不一樣,如下:
OPC是基于DOM/COM上,應(yīng)用層最頂層;OPC UA是基于TCP IP scoket 傳輸層.
其他一些區(qū)別:
OPC雖然通過配置COM/DOM來提供數(shù)據(jù)加密和簽名功能,配置防火墻,用戶權(quán)限來讓數(shù)據(jù)訪問變得更加安全,但是會增加額外的工作量,尤其是對非IT的工程師來說;對于OPC UA,數(shù)據(jù)加密和簽名,防火墻等都是默認的功能。比如基于DOM的OPC使用的動態(tài)端口分配,端口不固定,讓防火墻難以確定,而OPC UA的端口都是唯一的,比如840D是PORT 4840,SIMATIC S7是PORT 4845。DOM/COM也可以生成不同級別的事件日志,但日志內(nèi)容不夠詳細,只會提供“誰連接上服務(wù)器”這種,而對于OPC UA來說都是默認的功能,生成的日志內(nèi)容更全面。