朱 晶,齊向東
(太原科技大學電子信息工程學院,太原030024)
在工業(yè)控制領域,一般可以把控制系統(tǒng)分為上位機和下位機兩部分。上位機控制系統(tǒng)常通過組態(tài)軟件來實現(xiàn),iFIX 是由美國Intellution 公司開發(fā)研制的工業(yè)自動化組態(tài)軟件;用于各種場合中的檢測、監(jiān)測及控制的自動化。PLC 和iFIX 廣泛應用于工業(yè)控制的各個領域,在運行過程中可對運行情況實時監(jiān)控,提供較高的安全保障。對于控制系統(tǒng)的實時性、可靠性及穩(wěn)定性等而言,上位機與下位機之間的通信是十分重要的。OPC (OLE for Process Control)、Modbus、以及ModbusTcp/Ip 技術在上位機與下位機之間提供了一系列標準的方法和接口,提高了整個系統(tǒng)的可擴展性。工業(yè)以太網(wǎng)與普通以太網(wǎng)兼容,通過工業(yè)以太網(wǎng)可以提高控制系統(tǒng)的自動化與信息化水平。
系統(tǒng)采用ABB 公司的AC500 系列PLC,AC500系列可以在沒有模塊的情況下預先接線,一種I/O底板可以適用不同的模擬量和開關量模塊[1]。同一種CPU 底板和通訊模塊可以適用低、中、高3 種不同的CPU。屬于組合式PLC,又可以在軟件上設置輸入輸出類型的通道,使用很靈活和方便。AC500 可支持以下通訊接口:CS31,MODBUS,F(xiàn)BP,Profibus,ARCENT,Ethernet[2]。本實驗CPU 選用的是PM581。擴展模塊使用的是數(shù)字量模塊DC532和模擬量模塊AO523。iFIX 作為當今世界工業(yè)控制領域最為流行的上位機監(jiān)控軟件之一,集控制技術、人機界面技術、數(shù)據(jù)庫技術、網(wǎng)絡技術于一體,可以實現(xiàn)數(shù)據(jù)采集、實時過程監(jiān)控、報警管理、報表查詢打印、趨勢分析等功能,具有較強的通用性和開放性[3]。采用iFIX 作為工控系統(tǒng)的監(jiān)控上位機的控制核心,可以充分利用其穩(wěn)定可靠的系統(tǒng)架構(gòu),高效靈活的實時數(shù)據(jù)庫,以及開放的數(shù)據(jù)存取接口,會取得很好的應用效果。
iFIX 和ABB AC500 PLC 有多種通訊驅(qū)動方式,本文主要研究使用Modbus、OPC(OLE for Process Control)、以及ModbusTcp/Ip 通訊技術,采用MB1、OPC、MBE 這3 種驅(qū)動方式,iFIX 和PLC 的硬件連接方法;iFIX 4.5 和PLC 軟件CoDeSys V2.3 通訊設置。
Modbus 協(xié)議定義了一個控制器能夠認識的消息結(jié)構(gòu),描述了控制器請求訪問其它設備的過程,定制了消息域格局和內(nèi)容的公共格式。在Modbus 網(wǎng)絡上通信,每個控制器要知道它們的設備地址,識別按設備地址發(fā)來的消息,并根據(jù)功能碼決定產(chǎn)生何種動作,或回應反饋消息[4]。
Modbus 通信為主從通信網(wǎng)絡,采用主機查詢從機回應方式進行主從設備間通訊[5]。
圖1 主—從查詢—回應周期表
圖2 Modbus 通訊硬件連線圖
圖2 為使用Modbus 通訊的硬件連線圖,此實驗所選用的PLC 模塊有3 個,如圖2 左半部分所示,第1 個模塊是CPU 模塊,其型號為PM581,后面兩個模塊分別是DC 和AO 模塊。由于Modbus 通訊技術的特殊制約性,決定了要使用串口線通訊,配合ABB PLC 的硬件特性,本身PLC 上有1 個485 通信端口,為了和計算機方便連接,使用485 轉(zhuǎn)232 接口,這樣就可以與計算機上的USB 接口方便連接。至此完成了iFIX 與PLC 之間的硬件連接,可以看到圖中iFIX 接口處使用了MB1 驅(qū)動,這屬于軟件設置的部分,下面會詳細敘述。
2.3.1 MODBUS 通訊在CoDeSys 上的初始設置
CPU PM581 底板串口COM1/COM2 的默認工作方式均為編程方式(Online Access),具體有以下幾種不同的工作模式:
-Online Access:編程方式
-ASCⅡ:自由協(xié)議,使用功能塊COM_SEND 和COM_REC 編程
- MODBUS:MODBUS RTU 主站或作者:Administrator 從站
-CS31-Bus:COM1 為CS31 總線的主站,COM2不能設定為此模式
-SysLibCom:支持庫文件SysLibCom.lib 中的功能塊
-Multi:可為串口設定兩種通訊方式(Online Access、ASC Ⅱ、MODBUS、SysLiCom)、使用功能塊COM_SET_PORT 進行切換
首先在ABB AC500 CoDeSys 用戶界面的Object Organizer 對象管理器里單擊Resource 資源標簽,雙擊PLC Configuration,在彈出的窗口里對COM1 口進行設置。右鍵系統(tǒng)樹Interfaces 接口選項里的COM1,選擇Replace Element 里的COM1-MODBUS.這樣就將PLC 控制器上的COM1 口設置為MODBUS 通訊口。
然后設置MODBUS 通訊的相關參數(shù):在窗口右方的列表中設置波特率、數(shù)據(jù)位、校驗位、流控制、停止位參數(shù)。再來是MODBUS 的類型,這里PLC 作為服務器被訪問,所以AC500 此時作為從站,選擇Slave;接著設置AC500M 的站號,可以選用的站號為1 ~255 如圖3 所示。
完成上述設置以后,AC500M 使用Modbus 協(xié)議通訊的設置就完成了。
2.3.2 MODBUS 通訊在iFIX 中的設置
iFIX 軟件必須安裝固定的通信驅(qū)動工具,來實現(xiàn)特定方式的通信。第1 步是安裝Modbus 驅(qū)動MB1 PowerTool,之后在iFIX 系統(tǒng)配置欄中,選擇配置里的SCADA 項,添加I/O 驅(qū)動器MB1,在iFIX 系統(tǒng)樹中選擇運行MB1 Power Tool。
MB1 服務器由3 類對象組成:
(1)通道對象(Channel);在Channel 中設置通訊的參數(shù)要特別注意與CoDeSys 中的參數(shù)設置一致。
(2)設備對象(Device);在Device 中設置Modbus 的地址位數(shù),及選擇主設備的站號。
(3)數(shù)據(jù)塊(Data Block);iFIX 組態(tài)軟件允許建立多個數(shù)據(jù)塊,可以是模擬量的也可以是數(shù)字量的。建立了iFIX 數(shù)據(jù)庫,其中添加變量的的訪問順序是:首先訪問設備地址,接著細化到字節(jié)地址,最后是位地址。內(nèi)存中的地址%M 與Modbus 地址的對應關系如表1 所示。
圖3 CoDeSys Modbus 通信接口配置圖
表1 字或雙字的Modbus 地址分配
配置結(jié)果如圖4 所示。
圖4 iFIX Modbus 通信系統(tǒng)
OPC 全稱是OLE for Process Control,它的出現(xiàn)為基于Windows 的應用程序和現(xiàn)場過程控制應用建立了橋梁[6]。OPC 技術將各個硬件設備驅(qū)動程序和通信程序封裝成獨立的OPC 服務器,組態(tài)軟件iFIX(作為OPC 客戶端)可以不關心硬件的性能特點,而通過標準的OPC 接口訪問OPC 服務器,從而使不同商家的控制系統(tǒng)與應用程序之間接口標準化[7]。OPC 采用客戶/服務器模式,與Modbus 類似以OPC 服務器的形式,完成系統(tǒng)通信。下面主要介紹使用OPC 通訊的軟、硬件配置方法。
與Modbus 通信硬件連接所不同的是,OPC 通信技術通過以太網(wǎng)通信,所以用一根網(wǎng)線,一端連接PLC CPU 的網(wǎng)口,另一端連接計算機的網(wǎng)口。這樣就完成了通訊硬件的連接。由于使用CPU 網(wǎng)口通信,軟件設置方法與Modbus 的不同。
硬件連線圖如圖5 所示。
圖5 OPC 通訊硬件連線圖
使用OPC 通訊的具體的實施流程如圖6 所示。
圖6 OPC 通信原理圖
3.3.1 CodeSys OPC 配置方法
首先把編寫好的工程控制程序文件(梯形圖或語句表),保存并編譯后,選擇菜單“Project -(Option”,在種類列表中選擇設置Symbol Configuration。
從windows 開始菜單中進入“CodeSys OPC Configurator”,首先向Server 中添加PLC,右鍵,選擇Append PLC,下面進行通訊連接配置,直到檢測到所添加的PLC 的IP 地址選擇OK 確定,這時,CodeSys 作為OPC Server 的配置完成。
3.3.2 iFIX 端的OPC 設置
圖7 iFIX OPC 通信系統(tǒng)
第1 步安裝OPC 驅(qū)動OPC PowerTool,在系統(tǒng)配置中,選擇配置里的SCADA,添加I/O 驅(qū)動器OPC[8]。這與Modbus 是相同的,所不同的是完成系統(tǒng)配置后在iFIX 系統(tǒng)樹中選擇,運行OPC Power Tool,由于在PLC 編程軟件中以配置了OPC Server,所以直接添加OPC Server,并選擇CoDeSys.OPC.02。變量添加也不需要像Modbus 要尋址,直接瀏覽PLC OPC 的服務器,選擇Group 和Item 以及需要添加的PLC 中變量,就實現(xiàn)了通信。
Modbus 是開放協(xié)議,IANA(Internet Assigned Numbers Authority,給Modbus 協(xié)議賦予TCP 端口502。而同時Modbus 又是標準協(xié)議。
(1)Modbus TCP/IP 通常使用TCP/IP 以太網(wǎng)的5 層:
第1 層:物理層,提供設備的物理接口,與市售的介質(zhì)/網(wǎng)絡適配器相兼容;
第2 層:數(shù)據(jù)鏈路層,格式化信號到源/目的硬件地址的數(shù)據(jù)幀;
第3 層:網(wǎng)絡層,實現(xiàn)帶有32 bit IP 地址的IP報文包;
第4 層:傳輸層,實現(xiàn)可靠性連接、傳輸、查錯、重發(fā)、端口服務、傳輸調(diào)度;
第5 層:應用層,Modbus 協(xié)議報文。
(2)Modbus TCP 數(shù)據(jù)幀
在TCP/IP 以太網(wǎng)上傳輸,支持Ethernet Ⅱ和802.3 兩種幀格式。圖8 所示,Modbus TCP 數(shù)據(jù)幀包含報文頭、功能代碼和數(shù)據(jù)3 部分。
圖8 Modbus TCP 數(shù)據(jù)幀格式
使用Modbus Tcp/Ip 通信與OPC 通信都是通過以太網(wǎng)通信,所以硬件連接相同。然而它又與Modbus 有類似之處,就是在計算機端安裝MBE 驅(qū)動,如圖9 所示。
圖9 Modbus Tcp/Ip 通訊硬件連線圖
4.3.1 CodeSys Modbus Tcp/Ip 配置方法
PLC 的Modbus Tcp/Ip 通訊通道配置路徑與Modbus 的基本相同,所不同的是不用對從站號重新選擇,雙擊Modbus on Tcp/Ip[fx]這一項,系統(tǒng)默認從站號為1。
4.3.2 iFIX Modbus Tcp/Ip 配置方法
在iFIX 中MBE 的配置與MB1 的配置方法思路基本相同,不同的是主設備中不再選擇Modbus主從站號,而是直接寫入PLC 的IP 地址。
圖10 iFIX Modbus Tcp/Ip 通信系統(tǒng)
本次研究依次實現(xiàn)了Modbus、OPC 以及Modbus Tcp/Ip 這3 種通信協(xié)議下的ABB AC500 PLC 與組態(tài)軟件iFIX 的通信。詳細介紹了這3 種方式的軟硬件配置方法。這3 種通信方式中,Modbus 使用的是串口線,其它兩種是通過以太網(wǎng)連接,以太網(wǎng)具有其明顯的優(yōu)勢:易于與各種系統(tǒng)互連,可方便的應用于及現(xiàn)場設備通信和實時監(jiān)控;而且網(wǎng)絡實施價格低廉,可全部使用通用網(wǎng)絡部件。Modbus 和Modbus Tcp/Ip 在PLC 和iFIX 端的配置類似,但是也有細微的不同。OPC 是通過配置OPC Powertool 來實現(xiàn)通訊。經(jīng)過詳細介紹與分析比較,3 種通信方式各有優(yōu)缺點,3 種方式中OPC較慢,Modbus Tcp/Ip 居中,Modbus 最快,但各有其自身所適合的應用場合,這為今后類似的組態(tài)軟件與PLC之間的通信提供了一定的參考價值。
[1] 管娟娟,薛士龍. AC500 及CS31 總線在船舶機艙監(jiān)控系統(tǒng)中的應用[J].電子測量與儀器學報,2008(5):157-160.
[2] ABB CHINA LTD.AC500 可編程控制硬件操作手冊[M].2008.
[3] 和秋鵬,喻壽益,劉搖搖. iFIX 組態(tài)軟件在循環(huán)流化床鍋爐控制系統(tǒng)中的應用[J].電子器件,2007,30:989-991.
[4] 溫建明,魯五一,袁慶國. 基于MODBUS 協(xié)議的觸摸屏與單片機通信的實現(xiàn)[J].起重運輸機械,2008(7):58-60.
[5] AGE Schneider Automation Inc. Modicon Modbus Plus Network MB85 Bridge Multiplexer User’s Guide[M].Augustinianum,1995.
[6] 張偉.基于OPC 技術的iFIX 與S7-300 的通信[J]. 煤,2010(5):20-23.
[7] 張竹梅,任慶蓮.iFIX 與OPC 技術[J].電氣時代,2003(5):94-96.
[8] 宋珂.基iFIX4.5 的礦井提升機監(jiān)控系統(tǒng)[J].可編程控制器與工廠自動化,2011(1):77-79.