彭竹,吳勝昔,向國海,顧幸生
(1.華東理工大學(xué) 自動(dòng)化研究所,上海200237;2.上?;蹠r(shí)軟件有限公司,上海200233)
智能化、網(wǎng)絡(luò)化和集成化是工業(yè)自動(dòng)化技術(shù)的發(fā)展方向,當(dāng)前多種工業(yè)現(xiàn)場總線產(chǎn)品共存的現(xiàn)狀阻礙了工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)化集成。通過網(wǎng)關(guān)將具有標(biāo)準(zhǔn)總線接口的產(chǎn)品集成到現(xiàn)有控制系統(tǒng),是提高系統(tǒng)的性能并擴(kuò)展其應(yīng)用范圍的有效途徑[1]。Anybus網(wǎng)關(guān)主要解決系統(tǒng)集成過程中眾多標(biāo)準(zhǔn)從站產(chǎn)品的接入問題。該網(wǎng)關(guān)作為具有獨(dú)立功能的子系統(tǒng),通過原網(wǎng)絡(luò)協(xié)議與控制系統(tǒng)進(jìn)行通信[2-3]。
本文詳細(xì)介紹了利用網(wǎng)關(guān)作為PLC的Profibus DP從站以及作為現(xiàn)場設(shè)備的Modbus主站在某一生產(chǎn)過程系統(tǒng)中的作用以及如何配置來實(shí)現(xiàn)系統(tǒng)的數(shù)據(jù)采集。給出了系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、通信組成設(shè)計(jì),并研究了網(wǎng)關(guān)的工作原理、內(nèi)部寄存器輸入輸出區(qū)以及它的配置工作ABC Config Tool[2]。最后概述了采用網(wǎng)關(guān)在數(shù)據(jù)采集中的優(yōu)勢,以及網(wǎng)關(guān)本身的特點(diǎn)和在工業(yè)現(xiàn)場多種通信協(xié)議之間的轉(zhuǎn)換所起的作用[4-6]。
筆者論述的網(wǎng)關(guān)設(shè)計(jì)應(yīng)用于某一大型生產(chǎn)流程的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)要求控制器讀取Modbus協(xié)議的變頻器和儀表數(shù)據(jù),讀取時(shí)需要在PLC中加入讀取Modbus協(xié)議指令,而采用網(wǎng)關(guān)可以直接以讀取Profibus-DP從站的形式將儀表數(shù)據(jù)打包為一個(gè)數(shù)據(jù)塊送入控制器,無需復(fù)雜的編程。文中采用的是HMS公司的Anybus網(wǎng)關(guān)產(chǎn)品,用戶可以從EMS系統(tǒng)中瀏覽實(shí)時(shí)的能耗數(shù)據(jù)、運(yùn)行記錄、交接班記錄、實(shí)時(shí)和歷史趨勢、報(bào)警等信息[1]。
系統(tǒng)構(gòu)成如圖1所示,系統(tǒng)上位機(jī)采用Intouch監(jiān)控軟件[7],Historian歷史數(shù)據(jù)庫,實(shí)現(xiàn)對(duì)整個(gè)生產(chǎn)流程的數(shù)據(jù)采集。下位機(jī)采用S7400系列PLC,實(shí)現(xiàn)對(duì)現(xiàn)場各種智能儀表,包括變頻器、DIRIS儀表、軟啟動(dòng)器的信息采集等操作。
圖1 系統(tǒng)結(jié)構(gòu)示意
該項(xiàng)目采用S7400PLC作為Profibus主站,Anybus Communicator X-gateway(ABC)-AB7000作為Profibus從站,ABC下面連接現(xiàn)場設(shè)備,如變頻器,網(wǎng)絡(luò)儀表等,這些設(shè)備作為ABC的Modbus從站,對(duì)它們來說,ABC是 Modbus主站。在這里,ABC相當(dāng)于一個(gè)協(xié)議轉(zhuǎn)換器,可以將Modbus協(xié)議數(shù)據(jù)傳送給Profibus協(xié)議,也相當(dāng)于一個(gè)通信接口,供不同的通信協(xié)議之間的轉(zhuǎn)換。Anybus接單點(diǎn)串行子網(wǎng)和多點(diǎn)串行子網(wǎng)的結(jié)構(gòu)如圖2所示。筆者在設(shè)計(jì)方案中,由于變頻器和儀表數(shù)量比較多,采用多點(diǎn)串行子網(wǎng)結(jié)構(gòu)。
一個(gè)Anybus可以最多連接31個(gè)節(jié)點(diǎn),即最多31個(gè) Modbus從站,并支持 RS-232,RS-422,RS-485[3]標(biāo)準(zhǔn)。Profibus接口支持所有普通的波特率,最高可達(dá)12Mbit/s,每個(gè)方向最多可傳輸244Byte的輸入輸出數(shù)據(jù)[4]。
Anybus屬于第三方工業(yè)網(wǎng)絡(luò)連接產(chǎn)品,提供了簡單和靈活的方式將自動(dòng)化設(shè)備或系統(tǒng)接入多種現(xiàn)場總線和工業(yè)以太網(wǎng)的解決方案[8]。ABC相當(dāng)于一個(gè)硬件平臺(tái),而ABC Config Tool是其軟件,該配置軟件可從www.anybus.com下載。ABC被設(shè)計(jì)用來在串行子網(wǎng)和上層網(wǎng)絡(luò)之間交換數(shù)據(jù),和其他大多數(shù)網(wǎng)關(guān)設(shè)備不同的是:它對(duì)子網(wǎng)沒有固定的協(xié)議,可以被配置成幾乎任意一種串行通信模式[9]。ABC可以以三種模式收發(fā)串行電報(bào):循環(huán)的、根據(jù)狀態(tài)變化的、根據(jù)上層控制系統(tǒng)網(wǎng)絡(luò)發(fā)布的觸發(fā)事件,還可以監(jiān)視下層子網(wǎng)的某些通信狀態(tài),當(dāng)數(shù)據(jù)發(fā)生變化的時(shí)候通知上層網(wǎng)絡(luò)。ABC所包含的一個(gè)重要的部分就是ABC Config Tool,它給ABC提供下層網(wǎng)絡(luò)協(xié)議的描述,無需編程,相反,一個(gè)可視化的協(xié)議描述可以說明串行通信的不同部分[10]。
圖2 網(wǎng)關(guān)子網(wǎng)結(jié)構(gòu)示意
PLC通過內(nèi)部緩存區(qū)和作為其DP從站的ABC交換數(shù)據(jù)。其中Profibus網(wǎng)絡(luò):ABC的輸入數(shù)據(jù)區(qū)域的數(shù)據(jù)復(fù)制到PLC的輸入內(nèi)存區(qū),PLC將數(shù)據(jù)復(fù)制到ABC的輸出數(shù)據(jù)區(qū)域。Modbus網(wǎng)絡(luò):ABC將變頻器的輸入寄存器的數(shù)據(jù)復(fù)制到自己的輸入數(shù)據(jù)區(qū)域,并將來自PLC的數(shù)據(jù)復(fù)制到變頻器的輸出寄存器。
網(wǎng)關(guān)采用的子網(wǎng)協(xié)議有以下幾種:
a)Master Mode。該 模 式 下,ABC 作 為Modbus主站,和串行子網(wǎng)之間的通信通過Query-Response的形式進(jìn)行,在子網(wǎng)上的節(jié)點(diǎn)即從站必須被ABC定義了地址后才可以發(fā)布信息。當(dāng)ABC發(fā)布一個(gè)Query(查詢)到子網(wǎng)上時(shí),被定義地址的節(jié)點(diǎn)就發(fā)布一個(gè)Response來回應(yīng)這個(gè)Query,節(jié)點(diǎn)在沒有收到Query時(shí)是不允許即時(shí)發(fā)布Response的。在這種模式下,ABC可以通過Broadcast(廣播)向所有的節(jié)點(diǎn)發(fā)送Query。ABC Config Tool自帶有經(jīng)常用到的Modbus RTU commands向?qū)?,可以方便地通過這個(gè)向?qū)砼渲谩?/p>
b)Generic Data Mode。該模式下,ABC和下層子網(wǎng)上的節(jié)點(diǎn)之間沒有主從站之分,任何一個(gè)節(jié)點(diǎn)包括ABC本身,都可以即時(shí)的產(chǎn)生和消費(fèi)信息,通信是以Produce-Consume的形式發(fā)生。節(jié)點(diǎn)不需要發(fā)布Response來回應(yīng)ABC,也不需要等待ABC發(fā)布Query后才可以發(fā)布信息。ABC通過Produce向節(jié)點(diǎn)發(fā)送信息,而節(jié)點(diǎn)通過Consume來接收。同樣的,節(jié)點(diǎn)通過Produce向ABC發(fā)送信息,ABC通過Consume來接收。
筆者設(shè)計(jì)的網(wǎng)關(guān)應(yīng)用,上層網(wǎng)絡(luò)代表的是S7400PLC,下層網(wǎng)絡(luò)為測量現(xiàn)場電機(jī)參數(shù)的網(wǎng)絡(luò)儀表和變頻器。網(wǎng)關(guān)內(nèi)部緩沖區(qū)包含三個(gè)部分:輸入數(shù)據(jù)區(qū)域、輸出數(shù)據(jù)區(qū)域和通用數(shù)據(jù)區(qū)域。輸入數(shù)據(jù)區(qū)域的數(shù)據(jù)是來自下層網(wǎng)絡(luò)的數(shù)據(jù),通過網(wǎng)關(guān)將其傳送至上層網(wǎng)絡(luò);輸出數(shù)據(jù)區(qū)域的數(shù)據(jù)是由上層網(wǎng)絡(luò)向下層網(wǎng)絡(luò)寫的數(shù)據(jù),輸入和輸出區(qū)域都最多可以傳送244Byte的數(shù)據(jù);通用數(shù)據(jù)區(qū)域的數(shù)據(jù)不能傳送至上層網(wǎng)絡(luò),它是下層網(wǎng)絡(luò)設(shè)備之間傳遞的數(shù)據(jù),也可以作為內(nèi)部數(shù)據(jù)緩沖區(qū)暫時(shí)保存下層網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù),這片數(shù)據(jù)區(qū)域的真實(shí)大小取決于下層網(wǎng)絡(luò)之間傳遞的數(shù)據(jù)數(shù)量。ABC可以處理多達(dá)1 024Byte的通用數(shù)據(jù)[7]。
ABC Config Tool是通過建立通信協(xié)議塊來描述下層子網(wǎng)之間的通信的。首先建立節(jié)點(diǎn)Node,它代表子網(wǎng)上的設(shè)備;然后是Transaction,它代表一個(gè)完整的串行電報(bào),由幾個(gè)框架對(duì)象(Frame Objects)組成。一個(gè)Frame Objects可以是一個(gè)常數(shù)、限定的值或者數(shù)據(jù)塊等。
當(dāng)用配置軟件ABC Config Tool對(duì)下層網(wǎng)絡(luò)進(jìn)行配置時(shí),不同的數(shù)據(jù)區(qū)域在ABC的內(nèi)部緩存區(qū)域映射的地址分別為輸入?yún)^(qū)域是十六進(jìn)制的0X000—0X0F3;輸出區(qū)域是十六進(jìn)制的0X200—0X2F3;通用區(qū)域是0X400—0X???(通用區(qū)域的大小是由實(shí)際的下層網(wǎng)絡(luò)之間傳遞的數(shù)量決定)。
該系統(tǒng)需要采集5棟大樓里的數(shù)據(jù),每棟大樓里的采集系統(tǒng)都是相同的,都有一個(gè)S7400PLC作為Profibus主站,若干個(gè)網(wǎng)關(guān)AB7000作為Profibus DP從站,每個(gè)網(wǎng)關(guān)下面又接若干個(gè)變頻器或網(wǎng)絡(luò)儀表作為其Modbus從站。文中以其中一棟大樓里的1個(gè)網(wǎng)關(guān)與其下面的設(shè)備為例來介紹網(wǎng)關(guān)的數(shù)據(jù)采集和配置過程。某個(gè)網(wǎng)關(guān)下面接有3臺(tái)變頻器,每臺(tái)變頻器采集的數(shù)據(jù)有輸出頻率、輸出電流、輸出電壓、輸出功率、輸出功率因數(shù)以及變頻器故障代碼。每臺(tái)變頻器上插有1塊Modbus采集卡,每塊采集卡有A,B,C,D 4個(gè)雙輸入雙輸出通道,每個(gè)方向最多可傳輸8個(gè)數(shù)據(jù),它 們 分 別 為 DATALINKA 1,DATALINKA 2,DATALINKB 1,DATALINKB 2,DATALINKC 1,DATALINKC 2,DATALINKD 1,DATALINKD 2,一共8個(gè)數(shù)據(jù)區(qū)域,由于本采集卡每個(gè)通道為32位,即每個(gè)DATALINK區(qū)域是32位的。因?yàn)槊颗_(tái)變頻器采集的數(shù)據(jù)共有6個(gè),只需A,B,C 3個(gè)通道就可以了,故在DRIVERTOOLS里面把采集卡的通道數(shù)設(shè)置為15。每個(gè)變頻器采集的參數(shù)都是16位的,每個(gè)DATALINK的高16位是用不到的,即DATALINKA2,DATALINKB2,DATALINKC2的數(shù)據(jù)均為零,并不需要將其在上位機(jī)中顯示,就不需要讀入控制器,這樣在配置ABC時(shí)用Modbus向?qū)нM(jìn)行配置時(shí)就不需要將這些高16位的數(shù)據(jù)讀出來。具體配置:打開ABC配置工具,新建一個(gè)文件,有 Wizard-Modbus RTU Master,Wizard-CompactComExtLink和空白配置三種模式可供選擇,選擇第一種模式在向?qū)У囊龑?dǎo)下按下列步驟完成:
a)連接到網(wǎng)關(guān)的現(xiàn)場總線類型——選擇Profibus DP。
b)物理標(biāo)準(zhǔn)為RS-485,波特率為9 600bits/s,奇偶校驗(yàn)為None,數(shù)據(jù)位為8個(gè),停止位為1個(gè)。
c)設(shè)備名稱:AB7000-1。添加參數(shù):添加6個(gè)參數(shù),第1個(gè)參數(shù)命名為output frequency,數(shù)據(jù)方向選擇為“讀”,寄存器地址設(shè)為30012,長度為1個(gè)字,Modbus命令為04-讀輸入寄存器;第2個(gè)參數(shù)命名為output current,寄存器地址設(shè)為30014,其他與第1個(gè)參數(shù)相同;第3個(gè)參數(shù)到第6個(gè)參數(shù)的名稱依次為output voltage,output power,output power factor,PF fault,地址依次為30016,30018,30020,30022。
d)單擊添加節(jié)點(diǎn),添加3個(gè)節(jié)點(diǎn)依次命名為PF700-1,PF700-2,PF700-3,子網(wǎng)地址分別設(shè)置的與實(shí)際相應(yīng)的變頻器的物理地址相一致,設(shè)備類型全選為AB70001。
e)分別在3個(gè)節(jié)點(diǎn)下添加第三步里面的6個(gè)參數(shù),退出向?qū)А?/p>
f)打開剛配置好的文件,打開子網(wǎng)監(jiān)視器,可以看到輸入?yún)^(qū)域有36Byte的數(shù)據(jù)。
該設(shè)計(jì)中,Modbus轉(zhuǎn)Profibus DP中,網(wǎng)關(guān)AB7000扮演了三種角色:建立Modbus主站和Profibus DP主站之間的連接通信(Modbus主站模式);建立Modbus從站和Profibus DP主站之間的連接通信(Modbus從站模式);建議非標(biāo)串口設(shè)備和Profibus DP主站之間的連接通信(通用模式)。自該系統(tǒng)運(yùn)行以來,有效保證了整個(gè)數(shù)據(jù)采集系統(tǒng)的正常運(yùn)行。使用AB7000的Anybus網(wǎng)關(guān)將Modbus轉(zhuǎn)成Profibus DP協(xié)議,可以方便自動(dòng)化工業(yè)現(xiàn)場的控制和操作。
[1]習(xí)博,方彥軍.工業(yè)以太網(wǎng)中網(wǎng)絡(luò)通信技術(shù)的研究[J].微計(jì)算機(jī)信息,2005(02):34-37.
[2]趙健穎,陳波.工業(yè)網(wǎng)絡(luò)互聯(lián)與Anybus解決方案[C]//第七屆工業(yè)儀表與自動(dòng)化學(xué)術(shù)會(huì)議.2006:87-90.
[3]杜金利.基于Anybus-S的Ethernet/IP工業(yè)以太網(wǎng)的網(wǎng)絡(luò)接口技術(shù)研究[D].天津:天津理工大學(xué)碩士論文,2008.
[4]潘洪躍.基于Modbus協(xié)議通信的設(shè)計(jì)與實(shí)現(xiàn)[J].測量與設(shè)備,2002(04):35-37.
[5]孫偉,趙光明,葛建勛,等.風(fēng)冷站自動(dòng)控制系統(tǒng)的實(shí)現(xiàn)[J].制冷與空調(diào),2009,23(04):53-55.
[6]龍劍,李風(fēng)保,潘澤友.基于工業(yè)以太網(wǎng)的污水處理自動(dòng)控制系統(tǒng)[J].自動(dòng)測量與控制,2007,26(04):78-80.
[7]但斌斌,孫明金,李雪強(qiáng).基于Intouch和Siemens PLC的HMI開發(fā)[J].微計(jì)算機(jī)信息,2008,24(01):24-25.
[8]顧萍,李宗昌.RS-485和Profinet網(wǎng)關(guān)設(shè)計(jì)[J].軟件導(dǎo)刊,2011,10(02):121-122.
[9]趙建華,趙中偉,喻益超.基于Profibus總線的中央空調(diào)控制系統(tǒng)[J].自動(dòng)化儀表,2005,26(07):56-58.
[10]王峰.S7-300通過S7-200實(shí)現(xiàn) Modbus-RTU 通信[J].電工技術(shù),2008(02):59-61.
[11]吳萬濤.基于工業(yè)以太網(wǎng)的Modubs網(wǎng)關(guān)研究與設(shè)計(jì)[D].南京:河海大學(xué),2008.