唐 磊,周 倫,唐 波
(西南交通大學(xué)機械工程學(xué)院,四川成都 610031)
為了實現(xiàn)某電機運轉(zhuǎn)實驗臺的實時監(jiān)控及歷史記錄,制作了電機信息采集板,用來實時采集電機的運轉(zhuǎn)狀況,若采用微軟的Visual Studio等開發(fā)工具開發(fā)一個上位機監(jiān)控系統(tǒng),將花費非常多的時間,并且存在后期修改維護困難的問題,而若使用WinCC等工控組態(tài)軟件,將使開發(fā)時間大為縮減,并且修改維護極為方便。由于電機信息采集板屬于自定義設(shè)備,則為了方便與WinCC連接,需要找到一種通用的工業(yè)級通信協(xié)議,而MODBUS作為一種久經(jīng)考驗的工業(yè)協(xié)議,由于其穩(wěn)定性、可靠性和簡單性,理應(yīng)作為系統(tǒng)的首選。
WinCC(Windows Control Center)是SCADA(Supervisory Control And Data Acquisition)和HMI(Human-Machine Interface)系統(tǒng),它是一個功能強大的全面開放的工控組態(tài)系統(tǒng),既可以用于小規(guī)模簡單的過程監(jiān)控,也可以用于復(fù)雜的工控領(lǐng)域。WinCC提供了適用于工業(yè)的圖形顯示、數(shù)據(jù)歸檔、報警記錄以及自動報表以及強大的CScript和VBScript功能,使其具有高度的實用性。
WinCC主要用于配合PLC進行開發(fā)人機界面組態(tài)系統(tǒng),歷來的版本只提供了與該公司硬件設(shè)備(如PLC、PROFIBUS網(wǎng)絡(luò)設(shè)備)連接的相關(guān)驅(qū)動,而在實際使用中,用戶往往會選擇許多非西門子公司產(chǎn)品,這樣WinCC就不能直接與這些設(shè)備相連接。常見的解決辦法是使用OPC技術(shù)。
OPC全稱是Object Linking and Embedding(OLE) for Process Control,它的出現(xiàn)為基于Windows的應(yīng)用程序和現(xiàn)場過程控制應(yīng)用建立了橋梁。在過去,為了存取現(xiàn)場設(shè)備的數(shù)據(jù)信息,每一個應(yīng)用軟件開發(fā)商都需要編寫專用的接口函數(shù)。由于現(xiàn)場設(shè)備的種類繁多,且產(chǎn)品的不斷升級,往往給用戶和軟件開發(fā)商帶來了巨大的工作負(fù)擔(dān)。通常這樣也不能滿足工作的實際需要,系統(tǒng)集成商和開發(fā)商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設(shè)備驅(qū)動程序。在這種情況下,OPC標(biāo)準(zhǔn)應(yīng)運而生。OPC標(biāo)準(zhǔn)以微軟公司的OLE技術(shù)為基礎(chǔ),它的制定是通過提供一套標(biāo)準(zhǔn)的OLE/COM接口完成的,在OPC技術(shù)中使用的是OLE 2技術(shù),OLE標(biāo)準(zhǔn)允許多臺微機之間交換文檔、圖形等對象。
MODBUS最初是Modicon公司在1979年為PLC發(fā)布的一種串行通信協(xié)議。它由于簡單實用、免費可靠、方便布署等優(yōu)點而被用于連接工業(yè)電氣設(shè)備領(lǐng)域,并比其它通信協(xié)議使用得更為廣泛。MODBUS協(xié)議是一項應(yīng)用層報文傳輸協(xié)議,用于在通過不同類型的總線或網(wǎng)絡(luò)連接的設(shè)備之間的客戶機/服務(wù)器通信,目前可在以太網(wǎng)的TCP/IP和各種異步串行通信媒體(如RS232、RS485、RS422、光纖、無線)上實現(xiàn)MODBUS,大多數(shù)MODBUS設(shè)備通信通過串口RS485物理層進行。
對于串行連接的MODBUS協(xié)議,存在兩個版本:一種稱為MODBUS RTU;另一種稱為MODBUS ASCII;它們在數(shù)值數(shù)據(jù)的表示和協(xié)議細(xì)節(jié)上略有不同。MODBUS RTU是一種緊湊的,采用二進制表示數(shù)據(jù)的方式,MODBUS ASCII是一種人類可讀的,冗長的表示方式。
MODBUS協(xié)議是一個主/從(master/slave)架構(gòu)的協(xié)議,在一個MODBUS網(wǎng)絡(luò)中,必須有且僅有一個主(master)節(jié)點,而其它節(jié)點都為從(slave)節(jié)點。每一個從節(jié)點都有一個唯一的地址,只有被指定為主節(jié)點的設(shè)備才可以啟動一個命令,而從節(jié)點只能被動應(yīng)答主節(jié)點發(fā)送的命令。
一個MODBUS命令包含了即將執(zhí)行該命令的設(shè)備地址,所有設(shè)備都會收到命令,但是只有指定地址的設(shè)備會執(zhí)行并回復(fù)指令,所有的MODBUS命令包含了校驗碼,以保證從設(shè)備收到的命令的準(zhǔn)確性?;镜腗ODBUS命令能指揮一個RTU改變它的寄存器的某個值,控制或者讀取一個I/O端口,以及指揮設(shè)備回送一個或者多個其寄存器中的數(shù)據(jù)。
系統(tǒng)的整體架構(gòu)如圖1所示,監(jiān)控硬件使用一臺配備Windows操作系統(tǒng)的工控機(IPC),工控機使用WinCC 7.0作為上位機監(jiān)控軟件,由于6.0以后版本的WinCC不配備通用MODBUS驅(qū)動,因此以第三方OPC Server(KEPServerEx v4.5)為橋梁,通過MODBUS協(xié)議與下位機各設(shè)備通信;工控機一般只配備RS232接口,而MODBUS的多機通訊特性需要借助RS485網(wǎng)絡(luò),因此在把各電機信號采集板連入RS485總線網(wǎng)絡(luò)后,將該總線通過一個RS232/RS485轉(zhuǎn)換器轉(zhuǎn)換為RS232總線,連入工控機RS232接口即可。
圖1 整體架構(gòu)圖
系統(tǒng)軟件設(shè)計共分為3個部分:WinCC系統(tǒng)組態(tài);OPC Server的配置;信號采集板實現(xiàn)MODBUS協(xié)議。
4.1WinCC系統(tǒng)組態(tài)
WinCC的組態(tài)是屬于所見即所得式開發(fā),大部分工作是配置各種控件,它們的位置和外觀決定了界面的直觀性和友好性,一般流程是將控件庫中的各種控件拖放到顯示界面上,設(shè)置其顯示樣式,再為控件關(guān)聯(lián)一個變量,并設(shè)置一個變量刷新周期即可。由于電機驅(qū)動器所關(guān)注的變量有轉(zhuǎn)速、總線電壓、總線電流、IGBT溫度,界面里用4個編輯框來直接顯示它們,其中電機轉(zhuǎn)速另用一個儀表盤直觀表示,界面下方設(shè)置兩個趨勢圖,用于顯示電機轉(zhuǎn)速的歷史曲線,該WinCC界面的最終顯示效果如圖2所示。
圖2 WinCC監(jiān)控界面
4.2OPCServer的配置
OPC Server的作用是作為WinCC與電機信號采集板的橋梁,從具體意義上來說,就是獲取電機信號采集板的各個變量,以便提供給WinCC使用。市場上有很多提供MODBUS協(xié)議的OPC Server,系統(tǒng)采用的是KEPServerEx v4.5軟件,該軟件功能強大,通過工業(yè)標(biāo)準(zhǔn)接口OPC,能提供針對數(shù)以百計的PLC、控制器、通訊模塊等設(shè)備與HMI、SCADA、MES、ERP等客戶程序之間的直接通訊。
在KEPServerEx v4.5軟件中,當(dāng)配置MODBUS系統(tǒng)時,使用的RS485總線以channel來表示,命名為MotorInformation,總線上的每臺從設(shè)備(即信號采集板)以device表示,命名為Motor1,Motor2,在每個從設(shè)備內(nèi)部以地址的形式標(biāo)志了需要采集的各個變量,系統(tǒng)只采集每個電機關(guān)鍵的5個變量,由于實時性要求不太高,刷新時間為1s,實際配置界面如圖3所示。
圖3 OPC Server建立MODBUS主站界面
4.3信號采集板實現(xiàn)MODBUS協(xié)議
在系統(tǒng)中,工控計算機充當(dāng)MODBUS主站角色,而每一個信號采集板都充當(dāng)MODBUS從站角色且都具備唯一地址,從站不能夠主動發(fā)起通信,而只能接收主站發(fā)送的數(shù)據(jù)并作出響應(yīng),根據(jù)MODBUS在串行總線上通信的協(xié)議,從機事務(wù)處理的一般過程如圖4所示。從站的變量存儲位置需要與OPC Server中的配置一一對應(yīng)。
圖4 MODBUS從機事務(wù)處理一般過程
系統(tǒng)使用WinCC組態(tài)軟件、第三方OPC 服務(wù)器、標(biāo)準(zhǔn)MODBUS協(xié)議實現(xiàn)了電機測試臺的監(jiān)控系統(tǒng),其人機界面便捷明了,且提供了歷史曲線功能,是一個運行良好的小型監(jiān)控系統(tǒng),系統(tǒng)思路可用于其它類似的監(jiān)控情景。
參考文獻:
[1]萬美,閆寶瑞.基于MODBUS協(xié)議和WinCC6.2的電力參數(shù)采集系統(tǒng)設(shè)計.石化電氣,2011,30(11):80-82.
[2]朱勇,葉華,劉成良.使用WinCC在機電一體化系統(tǒng)中實現(xiàn)過程監(jiān)控.儀表技術(shù)與傳感器,2004(6):19-25.
[3]王華東,李世光,高正中.基于PLC和WinCC的井下泵房監(jiān)控系統(tǒng).工礦自動化,2007(6):51-52.
[4]周谷鳴,雷汝海,步園明,等.智能儀表與WinCC串口通信的研究和實現(xiàn).礦山機械,2009,37(22):5-8.
[5]李相育,錢宇.基于OPC的Matlab與WinCC的無縫集成.軟件天地,2007,23(11-1):297-299.
[6]田民強,劉振興,游輝勝.基于WinCC和VB的排水站監(jiān)控系統(tǒng).工業(yè)控制計算機,2009,22(5):31-32.
[7]張明.基于WinCC的交流電機調(diào)速監(jiān)控界面研究.電子設(shè)計工程,2011,19(13):67-72.
[8]劉敏.KEPServer在PLC和VB.NET通訊中的應(yīng)用.大眾科技,2012,14(155):42-45.