彭竹,吳勝昔,向國海,顧幸生
(1.華東理工大學 自動化研究所,上海200237;2.上海慧時軟件有限公司,上海200233)
智能化、網絡化和集成化是工業自動化技術的發展方向,當前多種工業現場總線產品共存的現狀阻礙了工業控制系統的網絡化集成。通過網關將具有標準總線接口的產品集成到現有控制系統,是提高系統的性能并擴展其應用范圍的有效途徑[1]。Anybus網關主要解決系統集成過程中眾多標準從站產品的接入問題。該網關作為具有獨立功能的子系統,通過原網絡協議與控制系統進行通信[2-3]。
本文詳細介紹了利用網關作為PLC的Profibus DP從站以及作為現場設備的Modbus主站在某一生產過程系統中的作用以及如何配置來實現系統的數據采集。給出了系統結構設計、通信組成設計,并研究了網關的工作原理、內部寄存器輸入輸出區以及它的配置工作ABC Config Tool[2]。最后概述了采用網關在數據采集中的優勢,以及網關本身的特點和在工業現場多種通信協議之間的轉換所起的作用[4-6]。
筆者論述的網關設計應用于某一大型生產流程的數據采集系統。系統要求控制器讀取Modbus協議的變頻器和儀表數據,讀取時需要在PLC中加入讀取Modbus協議指令,而采用網關可以直接以讀取Profibus-DP從站的形式將儀表數據打包為一個數據塊送入控制器,無需復雜的編程。文中采用的是HMS公司的Anybus網關產品,用戶可以從EMS系統中瀏覽實時的能耗數據、運行記錄、交接班記錄、實時和歷史趨勢、報警等信息[1]。
系統構成如圖1所示,系統上位機采用Intouch監控軟件[7],Historian歷史數據庫,實現對整個生產流程的數據采集。下位機采用S7400系列PLC,實現對現場各種智能儀表,包括變頻器、DIRIS儀表、軟啟動器的信息采集等操作。

圖1 系統結構示意
該項目采用S7400PLC作為Profibus主站,Anybus Communicator X-gateway(ABC)-AB7000作為Profibus從站,ABC下面連接現場設備,如變頻器,網絡儀表等,這些設備作為ABC的Modbus從站,對它們來說,ABC是 Modbus主站。在這里,ABC相當于一個協議轉換器,可以將Modbus協議數據傳送給Profibus協議,也相當于一個通信接口,供不同的通信協議之間的轉換。Anybus接單點串行子網和多點串行子網的結構如圖2所示。筆者在設計方案中,由于變頻器和儀表數量比較多,采用多點串行子網結構。
一個Anybus可以最多連接31個節點,即最多31個 Modbus從站,并支持 RS-232,RS-422,RS-485[3]標準。Profibus接口支持所有普通的波特率,最高可達12Mbit/s,每個方向最多可傳輸244Byte的輸入輸出數據[4]。
Anybus屬于第三方工業網絡連接產品,提供了簡單和靈活的方式將自動化設備或系統接入多種現場總線和工業以太網的解決方案[8]。ABC相當于一個硬件平臺,而ABC Config Tool是其軟件,該配置軟件可從www.anybus.com下載。ABC被設計用來在串行子網和上層網絡之間交換數據,和其他大多數網關設備不同的是:它對子網沒有固定的協議,可以被配置成幾乎任意一種串行通信模式[9]。ABC可以以三種模式收發串行電報:循環的、根據狀態變化的、根據上層控制系統網絡發布的觸發事件,還可以監視下層子網的某些通信狀態,當數據發生變化的時候通知上層網絡。ABC所包含的一個重要的部分就是ABC Config Tool,它給ABC提供下層網絡協議的描述,無需編程,相反,一個可視化的協議描述可以說明串行通信的不同部分[10]。

圖2 網關子網結構示意
PLC通過內部緩存區和作為其DP從站的ABC交換數據。其中Profibus網絡:ABC的輸入數據區域的數據復制到PLC的輸入內存區,PLC將數據復制到ABC的輸出數據區域。Modbus網絡:ABC將變頻器的輸入寄存器的數據復制到自己的輸入數據區域,并將來自PLC的數據復制到變頻器的輸出寄存器。
網關采用的子網協議有以下幾種:
a)Master Mode。該 模 式 下,ABC 作 為Modbus主站,和串行子網之間的通信通過Query-Response的形式進行,在子網上的節點即從站必須被ABC定義了地址后才可以發布信息。當ABC發布一個Query(查詢)到子網上時,被定義地址的節點就發布一個Response來回應這個Query,節點在沒有收到Query時是不允許即時發布Response的。在這種模式下,ABC可以通過Broadcast(廣播)向所有的節點發送Query。ABC Config Tool自帶有經常用到的Modbus RTU commands向導,可以方便地通過這個向導來配置。
b)Generic Data Mode。該模式下,ABC和下層子網上的節點之間沒有主從站之分,任何一個節點包括ABC本身,都可以即時的產生和消費信息,通信是以Produce-Consume的形式發生。節點不需要發布Response來回應ABC,也不需要等待ABC發布Query后才可以發布信息。ABC通過Produce向節點發送信息,而節點通過Consume來接收。同樣的,節點通過Produce向ABC發送信息,ABC通過Consume來接收。
筆者設計的網關應用,上層網絡代表的是S7400PLC,下層網絡為測量現場電機參數的網絡儀表和變頻器。網關內部緩沖區包含三個部分:輸入數據區域、輸出數據區域和通用數據區域。輸入數據區域的數據是來自下層網絡的數據,通過網關將其傳送至上層網絡;輸出數據區域的數據是由上層網絡向下層網絡寫的數據,輸入和輸出區域都最多可以傳送244Byte的數據;通用數據區域的數據不能傳送至上層網絡,它是下層網絡設備之間傳遞的數據,也可以作為內部數據緩沖區暫時保存下層網絡節點的數據,這片數據區域的真實大小取決于下層網絡之間傳遞的數據數量。ABC可以處理多達1 024Byte的通用數據[7]。
ABC Config Tool是通過建立通信協議塊來描述下層子網之間的通信的。首先建立節點Node,它代表子網上的設備;然后是Transaction,它代表一個完整的串行電報,由幾個框架對象(Frame Objects)組成。一個Frame Objects可以是一個常數、限定的值或者數據塊等。
當用配置軟件ABC Config Tool對下層網絡進行配置時,不同的數據區域在ABC的內部緩存區域映射的地址分別為輸入區域是十六進制的0X000—0X0F3;輸出區域是十六進制的0X200—0X2F3;通用區域是0X400—0X???(通用區域的大小是由實際的下層網絡之間傳遞的數量決定)。
該系統需要采集5棟大樓里的數據,每棟大樓里的采集系統都是相同的,都有一個S7400PLC作為Profibus主站,若干個網關AB7000作為Profibus DP從站,每個網關下面又接若干個變頻器或網絡儀表作為其Modbus從站。文中以其中一棟大樓里的1個網關與其下面的設備為例來介紹網關的數據采集和配置過程。某個網關下面接有3臺變頻器,每臺變頻器采集的數據有輸出頻率、輸出電流、輸出電壓、輸出功率、輸出功率因數以及變頻器故障代碼。每臺變頻器上插有1塊Modbus采集卡,每塊采集卡有A,B,C,D 4個雙輸入雙輸出通道,每個方向最多可傳輸8個數據,它 們 分 別 為 DATALINKA 1,DATALINKA 2,DATALINKB 1,DATALINKB 2,DATALINKC 1,DATALINKC 2,DATALINKD 1,DATALINKD 2,一共8個數據區域,由于本采集卡每個通道為32位,即每個DATALINK區域是32位的。因為每臺變頻器采集的數據共有6個,只需A,B,C 3個通道就可以了,故在DRIVERTOOLS里面把采集卡的通道數設置為15。每個變頻器采集的參數都是16位的,每個DATALINK的高16位是用不到的,即DATALINKA2,DATALINKB2,DATALINKC2的數據均為零,并不需要將其在上位機中顯示,就不需要讀入控制器,這樣在配置ABC時用Modbus向導進行配置時就不需要將這些高16位的數據讀出來。具體配置:打開ABC配置工具,新建一個文件,有 Wizard-Modbus RTU Master,Wizard-CompactComExtLink和空白配置三種模式可供選擇,選擇第一種模式在向導的引導下按下列步驟完成:
a)連接到網關的現場總線類型——選擇Profibus DP。
b)物理標準為RS-485,波特率為9 600bits/s,奇偶校驗為None,數據位為8個,停止位為1個。
c)設備名稱:AB7000-1。添加參數:添加6個參數,第1個參數命名為output frequency,數據方向選擇為“讀”,寄存器地址設為30012,長度為1個字,Modbus命令為04-讀輸入寄存器;第2個參數命名為output current,寄存器地址設為30014,其他與第1個參數相同;第3個參數到第6個參數的名稱依次為output voltage,output power,output power factor,PF fault,地址依次為30016,30018,30020,30022。
d)單擊添加節點,添加3個節點依次命名為PF700-1,PF700-2,PF700-3,子網地址分別設置的與實際相應的變頻器的物理地址相一致,設備類型全選為AB70001。
e)分別在3個節點下添加第三步里面的6個參數,退出向導。
f)打開剛配置好的文件,打開子網監視器,可以看到輸入區域有36Byte的數據。
該設計中,Modbus轉Profibus DP中,網關AB7000扮演了三種角色:建立Modbus主站和Profibus DP主站之間的連接通信(Modbus主站模式);建立Modbus從站和Profibus DP主站之間的連接通信(Modbus從站模式);建議非標串口設備和Profibus DP主站之間的連接通信(通用模式)。自該系統運行以來,有效保證了整個數據采集系統的正常運行。使用AB7000的Anybus網關將Modbus轉成Profibus DP協議,可以方便自動化工業現場的控制和操作。
[1]習博,方彥軍.工業以太網中網絡通信技術的研究[J].微計算機信息,2005(02):34-37.
[2]趙健穎,陳波.工業網絡互聯與Anybus解決方案[C]//第七屆工業儀表與自動化學術會議.2006:87-90.
[3]杜金利.基于Anybus-S的Ethernet/IP工業以太網的網絡接口技術研究[D].天津:天津理工大學碩士論文,2008.
[4]潘洪躍.基于Modbus協議通信的設計與實現[J].測量與設備,2002(04):35-37.
[5]孫偉,趙光明,葛建勛,等.風冷站自動控制系統的實現[J].制冷與空調,2009,23(04):53-55.
[6]龍劍,李風保,潘澤友.基于工業以太網的污水處理自動控制系統[J].自動測量與控制,2007,26(04):78-80.
[7]但斌斌,孫明金,李雪強.基于Intouch和Siemens PLC的HMI開發[J].微計算機信息,2008,24(01):24-25.
[8]顧萍,李宗昌.RS-485和Profinet網關設計[J].軟件導刊,2011,10(02):121-122.
[9]趙建華,趙中偉,喻益超.基于Profibus總線的中央空調控制系統[J].自動化儀表,2005,26(07):56-58.
[10]王峰.S7-300通過S7-200實現 Modbus-RTU 通信[J].電工技術,2008(02):59-61.
[11]吳萬濤.基于工業以太網的Modubs網關研究與設計[D].南京:河海大學,2008.