?

面向PLC的OPC服務器設計與開發

2011-07-03 08:58李紹成馬連祥
制造業自動化 2011年24期
關鍵詞:數據項工具包服務器

李紹成,馬連祥

(南京林業大學 木材工業學院,南京 210037)

0 引言

可編程控制器PLC(Programmable Logic Controller)具有可靠性高、通用性強、編程簡單、體積小、安裝維護方便等優點,在工業控制中得到了廣泛應用[1~3]。

在工業控制系統中,可能存在不同廠家生產的、多種型號的可編程控制器PLC。為了便于系統集成,一般采用基于OPC(OLE for Process Control)規范的接口進行數據交換,為此,需要設計、開發面向PLC的OPC服務器。

1 OPC服務器開發工具

面向PLC的OPC服務器開發需要完成以下兩個方面工作:一方面,需要根據PLC的通信協議實現上位機服務器軟件與PLC的數據交換;另一方面,需要合理設計服務器軟件的架構與接口,使之符合OPC技術規范。

由于OPC服務器是基于COM技術的,這就要求程序設計人員必須非常熟悉COM技術,而精通COM技術是有一定難度的,因此,OPC服務器的源碼級開發是相當復雜的,一般由專業的軟件公司進行開發[4,5]。

為了便于OPC技術的推廣和應用,國內外許多單位推出了OPC服務器快速開發工具包。這種工具包將微軟公司的OLE/COM/DCOM技術和OPC的技術細節進行了隱藏,使用戶開發工作集中在數據采集和處理任務上,從而簡化了OPC服務器的開發。

基于工具包的OPC服務器開發,主要任務是熟悉工具包的API接口函數,通過調用工具包的API接口函數實現OPC服務器的功能,為應用軟件提供符合OPC規范的接口。

2 OPC服務器設計與開發

2.1 軟件設計

基于工具包的面向PLC的OPC服務器開發的首要任務是設計OPC對象與接口、OPC服務器界面,然后進行OPC服務器與PLC的通信設計,以實現OPC服務器與PLC的數據交換,具體的軟件架構如圖1所示。

圖1 面向PLC的OPC服務器軟件架構

OPC對象與接口是OPC服務器與客戶端程序進行交互的部分。首先應進行OPC服務器對象設計,即定義服務器名稱ProgID和類標識符CLSID。服務器名稱ProgID可以自由確定;類標識符CLSID是一個128字節的數據,是用來標識一個COM對象的,可用微軟自帶的工具GUIDGEN.EXE快速確定。然后根據OPC項的管理要求設計OPC組對象,如果OPC項較少,可以直接利用工具包默認的一個OPC組對象。最后確定OPC項對象,一個OPC項可以對應于PLC內存中的若干寄存器,一般根據PLC的具體控制要求進行設計,并確定可讀項與可寫項。

OPC服務器與PLC的通信模塊是面向PLC的OPC服務器的重要組成部分,OPC可讀項的數據就是通過該模塊采集PLC中相應寄存器的信息獲得的;OPC可寫項的數據就是通過該模塊寫入PLC中相應寄存器的。

服務器程序界面可以為用戶提供友好的交互平臺,便于觀察數據項的變化,以及對數據項進行管理和設置。

2.2 軟件開發

在采用工具包開發面向PLC的OPC服務器時,主要是利用工具包提供的API接口函數進行如下的操作:

1)工具包動態庫初始化

OPC服務器開始運行時,應進行工具包動態庫初始化,以及設置OPC服務器的最高刷新頻率,這是OPC服務器得以運行的基礎。

2)OPC服務器信息設置

主要是設置服務器的運行狀態、版本號、廠商信息等。

3)OPC項的創建與刪除

在OPC服務器開始運行時創建OPC項,在OPC服務器運行結束時刪除OPC項。

4)OPC項數據的更新

OPC服務器需要周期地更新OPC項的值、質量和時間戳,即將數據存儲區中的數據更新到相應的OPC項。當客戶端程序請求寫數據時,OPC運行庫調用寫回調函數,并利用服務器與PLC的通信模塊將數據寫入PLC中的相應寄存器中;當客戶請求讀數據時,OPC運行庫調用讀回調函數,返回相應的OPC項的數據。

服務器與PLC的通信模塊是基于PLC的通信接口方式進行開發的。例如串口通信,其是根據PLC的通信協議采用串口通信控件或API函數編程來實現數據交換的。

5)回調函數注冊

工具包中有三個回調函數:讀回調函數、寫回調函數和斷開回函數。只有注冊了這三個回調函數后,OPC服務器才能和客戶端程序按照OPC技術規范進行正常通信。

6)OPC服務器注冊和注銷

OPC服務器安裝到計算機后,首先應將服務器名稱ProgID和類標識符CLSID等信息進行注冊。在OPC服務器注冊后,OPC客戶端程序才能在本機或局域網上檢索到該OPC服務器,從而與該OPC服務器建立連接與數據交換。注銷是將計算機系統中的OPC服務器信息清除。

OPC服務器是一個進程外組件,其在運行過程中對工具包接口函數的調用流程如圖2所示。

圖2 工具包接口函數調用流程

3 設計實例

3.1 PLC控制對象

Denford公司的FMS(Flexible Manufacturing System)教學演示系統由一臺數控車床、一臺數控銑床、兩臺機器手和一條傳送帶組成,該系統可以通過數字I/O接口進行控制,各設備的I/O接口數如表1所示。

由表1可以看出,該FMS的控制器需要有13個數字輸入口采集設備的狀態信息,需要11個數字輸出口發送控制命令。歐姆龍公司生產的CPM1A-30CDR-A-V型PLC有18個數字輸入口和12數字輸出口,滿足該FMS控制的接口要求。為了滿足該FMS控制系統快速重構的要求,其控制系統必須是基于OPC規范接口的,即按照圖3所示的體系結構進行控制。因此,需要為圖3所示的PLC開發OPC服務器。

表1 Denford FMS硬件設備I/O接口

圖3 基于PLC和OPC的FMS控制系統

3.2 OPC服務器設計

由表1和圖3所示的CPM1A-30CDR-A-V型PLC控制對象的具體要求可知,該 OPC服務器主要與PLC的輸入與輸出口進行數據交換,因此,在該OPC服務器中設計定義了6個OPC項,其中4個OPC數據項為可讀項:TagIn0CH、TagIn1CH、TagIn10CH、TagIn11CH,分別用于讀取該PLC的輸入端000通道與001通道、輸出端010通道與011通道的數值,即采集FMS硬件設備的狀態信息;另外2個OPC數據項為可寫項:TagOut10CH、TagOut11CH,分別用于對該PLC的輸出端010通道與011通道寫數值,即向FMS硬件設備發送控制命令。

服務器與PLC的通信功能模塊是采用串口通信控件MSComm實現的,具體的通信協議是由CPM1A-PLC手冊中的讀出輸入輸出繼電器內容和寫入輸入輸出繼電器區中的命令格式和響應格式確定的。

開發的OPC服務器主界面如圖4所示,具有注冊和注銷、OPC項的創建與刪除、OPC項數據的更新等功能。在該OPC服務器安裝、注冊后,利用圖4所示的OPC客戶端軟件進行了性能測試,結果表明該OPC 服務器符合OPC接口規范要求,可以在本機或局域網上進行訪問,滿足圖3所示的FMS控制要求。

圖4 CPM1A-30CDR型 PLC的OPC服務器界面

4 結束語

本文研究了面向PLC的OPC服務器的快速實現方法,設計了一用于Denford公司FMS控制的PLC的OPC服務器,運行結果表明采用本文研究的方法所開發的OPC服務器符合OPC技術規范要求,具有一定的工程應用價值。

[1] 謝慶華. PLC在電力系統操作電源監控系統中的應用[J].化工自動化及儀表, 2007, 34(5): 77-78.

[2] 宋青. 基于工業以太網多PLC的污水處理控制系統[J].自動化與儀表, 2011, (6); 28-32.

[3] 楊旭宏, 劉進平. 基于PLC的煤礦水倉水位監控系統[J].遼寧工程技術大學學報(自然科學版), 2011, 30(2): 190-193.

[4] 戚中奎, 林果園, 孫統風. OPC數據訪問服務器的研究與實現[J]. 計算機工程與設計, 2011, 32(4): 1517-1520.

[5] 周磊, 劉大成, 周傳福, 等. OPC規范下數據訪問服務器的設計與實現[J]. 微計算機信息, 2007, 23(11): 264-266.

猜你喜歡
數據項工具包服務器
基于相似度的蟻群聚類算法?
慢性病健康工具包研究進展
通信控制服務器(CCS)維護終端的設計與實現
非完整數據庫Skyline-join查詢*
PowerTCP Server Tool
基于Python的Asterix Cat 021數據格式解析分析與實現
谷歌云與Digital Asset合作推出區塊鏈工具包
得形忘意的服務器標準
運用MATLAB軟件求解高中數學中的線性和非線性規劃問題
計算機網絡安全服務器入侵與防御
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合