鄭 野,劉以建
(上海海事大學,上海200135)
隨著世界航運業的快速發展,對航運人才的需求量急劇增加。各種海船船員必須通過輪機模擬器的訓練,獲得中華人民共和國海船船員適任證書才能上崗工作。2009年頒布了新的《中華人民共和國海船船員適任評估大綱和規范》,新大綱中對750 kW及以上船舶二/三管輪“船舶電站操作”項目的評估內容提出了新的要求。如何提高船員適任評估培訓教學的質量,進而提高船員的航海適任能力,是航海院校及船員培訓機構應關注和思考的問題。船舶電站實訓系統是按照新大綱的要求設計的。該系統是一種半實物仿真裝置,通過實物設備和計算機仿真技術,模擬船舶電站在正常情況和常見故障狀態下的運行,使學生能夠通過實際操作、故障排除等方面的訓練,加強對船舶電站及其自動化裝置的認識。在船舶電站實訓系統中,上位計算機實現船舶電力系統的計算機仿真,生成船舶電力系統運行的狀態、參數數據;通過網絡與操作屏控制器進行數據交換。例如:由上位機模擬的發電機所運行的數據顯示到硬件表頭上;硬件中繼電器、開關狀態顯示到上位機界面中。本文介紹的OPC通訊方式具有通用性強的特點,使得不同廠商的硬件設備、軟件之間能夠互相連接、通訊和操作,使工業控制系統具有極強的開放性和互操作性。
船舶電站實訓系統采用了兩層通訊網絡結構。操作屏控制器采用西門子S7-300PLC ET200S,各操作屏配置ET200S遠程模塊,組成Profibus DP現場級控制網絡。上位機與觸摸屏與ET200S主機之間都是采用以太網通訊方式,如圖1所示。ET200S主機模塊自帶集成交換機,含3個網絡端口,一號端口用于連接上位機,二號端口用于連接觸摸屏。觸摸屏安裝在發電機控制屏上,用于數據顯示及故障狀態報警等。
ET200S主機模塊上組態一個DP主站,ET200S主機與從機之間通過RS485連接構成PROFIBUS網絡。網絡的構建需要在編程軟件中進行硬件組態,組態方法:首先組態 ET200S主機即IM151-8 PN/DP CPU,按照通訊網絡依次組態輸入輸出模塊,然后在DP插槽處引出PROFIBUS網絡組態兩個ET200S從機,如圖2所示。組態好后PC機不僅可以讀取ET200S主機的數據,也可以讀取到ET200S從機的數據。

圖1 船舶電站實訓系統通訊網絡圖

圖2 STEP7中DP主從站的硬件組態

圖3 Station Configuration Editor配置窗口
PC機與ET200S主從機之間進行數據交換的以太網通訊是通過OPC實現的。首先要安裝Simatic.Net軟件并且按照西門子公司提供的《通過ETHETNET建立OPC服務器與S7 PLC的S7連接》中的步驟將上位機設置好。通過OPC Scout工具進行OPC Server和ET200S主從機的數據通訊測試,Station Configuration Editor中的狀態如圖3所示,即證明可以將ET200S主從機的數據讀取到OPC服務器中。船舶電站實訓系統的上位機仿真和監控軟件由VB6.0語言編寫。VB6.0通過OPC服務器與PLC進行數據交換。
OPC的數據訪問方法主要有同步訪問和異步訪問兩種。同步訪問:讀寫指定OPC標簽對應的過程數據,應用程序一直等待到讀寫完成為止。異步訪問:讀寫指定OPC應用程序發出讀寫要求后立即返回,讀寫完成時發生讀寫完成事件,OPC應用程序被調出。兩種方法各有優缺點。船舶電站實訓系統中OPC的數據訪問使用異步訪問方式。
同步訪問方式的優點:處理程序比較簡單,開發容易;只要分布式COM啟動權限和訪問權限就可以運行,設置比較簡單。同步訪問方式也存在自身的不足,因為在訪問完成之前應用程序必須一直在等待,尤其大量數據的訪問或直接對設備的訪問,對訪問性能的影響很大[1,2]。圖4為同步訪問流程圖,下面根據流程圖介紹VB6.0與OPC服務器實現數據交換的編程方法。

圖4 同步訪問流程圖
(1)定義全局變量
Option Explicit
Option Base 1‘數組的索引從1開始
Dim MyOPCServer As OPCServer‘定義 OPC服務器
Dim MyGroups As OPCGroups‘定義 OPC組集合
Dim WithEvents MyGroup As OPCGroup‘定義可引發事件的OPC組
Dim MyItems As OPCItems‘定義 OPC標簽
Dim MyItemServerHandles(2)As Long‘標簽指針
(2)建立OPC服務器
Private Sub cmdconnect_Click()
Set MyOPCServer = New OPCServer ‘建 立OPC服務器
MyOPCServer.Connect(“OPC.SimaticNET”,”192.168.0.2”)‘連接OPC服務器
Set MyGroups = MyOPCServer.OPCGroups‘建立一個OPC組集合
Set MyGroup = MyGroups.Add(“TestGrp”)‘添加OPC組
End Sub
(3)添加 OPC標簽
Private Sub cmdAddItem_Click()
Dim ItemObj As OPCItem
Dim ItemIDs(2)As String
Dim ItemClientHandles(2)As Long
Dim Errors()As Long
ItemIDs(1)= "S7:[S7 Connection_1]IB0,1"‘ET200S中對應輸入寄存器IB0
ItemIDs(2)= "S7:[S7 Connection_1]QB1,1"‘ET200S中對應輸出寄存器QB1
Call MyItems.AddItems(2 ,ItemIDs,Item-ClientHandles,MyItemServerHandles,Errors)
next
End Sub
(4)同步讀命令
用戶在窗體上建立一個Timer控件即可實現數據同步采集。
Private Sub cmdReadSync_Click()Dim Errors()As Long
Dim Values()As Variant Dim Qualities As Variant
Dim TimeStamps As Variant
Call MyGroup.SyncRead(OPCDevice,2,My-ItemServerHandles,Values,Errors,Qualities,TimeStamps)
End Sub
文中僅以2個變量為例,實際使用時可以做相應修改。通過以上步驟即可實現同步訪問[3]。
異步訪問的優點:在訪問完成之前應用程序不必等待,可以并行處理,相對于同步訪問方式性能有很大提高,能夠避免多客戶大數據請求的阻塞,并可以最大限度地節省CPU和網絡資源。基于對這點考慮,船舶電站實訓系統采用了異步訪問方式,但是異步訪問方式也存在不足。值得一提的問題是,由于異步訪問時不管是否連接PLC都對OPC服務器進行讀寫。需要設置專門的檢查程序,只有在連接狀態時才對OPC服務器進行讀寫。檢查程序基本原理為:讀取斷電保持型寄存器的值,如果讀取到的數據為空,證明處于未連接狀態,此時將不對OPC服務器進行讀寫從而避免虛假數據。圖5為異步訪問的流程圖,圖中用虛線框標注了判斷程序部分。MW0String中存儲讀取到的寄存器的值,通過對此變量的判斷確定是否處于連接狀態。PLCLinked為PLC連接標志,連接狀態時為True,非連接狀態時為False。

圖5 異步訪問流程圖
異步訪問的程序編寫方法與同步訪問相同的部分不再介紹,只介紹增加的處理數據部分,即為讀取完成時發生的事件。
AsyncReadComplete
說明:在異步讀取(AsyncRead)完成時發生的事件。
文 法:AsyncReadComplete(TransactionID As Long,NumItems As Long ,ClientHandles()As Long,Values()As Variant,Qualities()As Long,TimeStamps()As Date,Errors()As Long)
TransactionID由OPC應用程序發行的事務標識符。
NumItems讀取OPC標簽的數目。
ClientHandles讀取OPC標簽的客戶句柄的數組。
Values返回讀取的數值的數組。
Qualities讀取質量標志的數組。
TimeStamps讀取采樣時間的數組[4-6]。
在讀取完成事件中進行數據處理。
基于OPC的以太網通訊方式具有連接簡單、數據通訊穩定可靠、可讀寫PLC中所有的存儲區域的特點,省去了通訊的底層運行和許多繁瑣的處理過程,極大提高了控制系統的操作性和適應性,廣泛應用于工控領域[7]。但由于OPC訪問需要中間軟件,通訊速度有待進一步提高,只能應用于通訊速度要求不高的系統。船舶電站實訓系統的數據通訊采用異步訪問方式經長期運行穩定可靠。
[1] 日本OPC協會,鄭 立,譯.OPC應用程序入門[M].北京:OPC中國促進會,2001.
[2] 王緒彪,張 望,江丹玲.基于VB的OPC客戶端軟件的設計與實現[J].自動化與儀器儀表,2011,2:46-49.
[3] 劉 莉.用VB編寫OPC客廣端程序的方法[J].工業控制計算機,2005,18(5):5-6.
[4] 范新強.OPC技術及其集成方案設計分析[J].自動化與儀器儀表,2011,1:45-48.
[5] 曹長華.基于OPC技術的石化企業自動化包裝系統設計研究[J].自動化與儀器儀表,2011,2:131-133.
[6] 謝冰若.用 Visual Basic實現 OPC客戶端關鍵技術[J].決策管理,2006,7:49-50.
[7] 興建春,王 平.工業控制軟件互操作標準OPC綜述[J].工業控制計算機,2000,(1):29-31.