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