黃現科,時良平(北京郵電大學 自動化學院,北京 100876)
扁平件分揀機是由一組夾叉式小車組成的封閉輸送分揀系統,主要應用于EMS扁平郵件的分揀,效率高、噪聲小、平穩性好,在郵政物流中應用的越來越多。本文就是以某扁平件分揀機為藍本介紹OPC通訊的應用,此機器的外形見圖1。
本扁平件分揀機的控制層次圖如圖2所示。本扁平件分揀機的控制系統分為:設備控制層、信息處理層、車間管理層。
設備控制層分為:現場設備控制單元、分揀控制單元、數據處理單元。現場設備控制單元采用遠程控制模塊(SIEMENS公司的ET200S)實現,該模塊和分揀控制單元之間采用PROFIBUS實現數據通訊;分揀控制單元采用SIEMENS公司的S7-300系列PLC實現,該單元和現場設備之間的通訊采用PROFIBUS實現;數據處理單元即上位機,其與PLC采用OPC方式通訊,其實現過程是本文論述的重點,該單元和信息處理層之間采用以太網實現通訊。
信息處理層包含:信息處理服務器、通訊處理計算機、打印終端計算機、打印機等設備。信息處理層主要完成:和車間管理層的通訊處理、分揀原始信息的采集分類、分揀處理后的信息處理、實時控制信息的傳送等。
車間管理層由上一級部門完成。

圖1 扁平件分揀機
OPC是Object Linking and Embedding(OLE)for Process Control的縮寫,它是微軟公司的對象鏈接和嵌入技術在過程控制方面的應用。OPC以OLE/COM/DCOM技術為基礎,采用客戶/服務器模式,為工業自動化軟件面向對象的開發提供了統一的標準,這個標準定義了應用Microsoft操作系統在基于PC的客戶機之間交換自動化實時數據的方法。
(1)采用標準的Windows體系接口,硬件制造商為其設備提供的接口程序的數量減少到一個,軟件制造商也僅需要開發一套通訊接口程序。即有利于軟硬件開發商,更有利于最終用戶。

圖2 分揀機控制層次圖
(2)OPC規范以OLE/DCOM為技術基礎,而OLE/DCOM支持TCP/IP等網絡協議,因此可以將各個子系統從物理上分開,分布于網絡的不同節點上。
(3)OPC按照面向對象的原則,將一個應用程序(OPC服務器)作為一個對象封裝起來,只將接口方法暴露在外面,客戶以統一的方式去調用這個方法,從而保證軟件對客戶的透明性,使得用戶完全從底層的開發中脫離出來。
(4)OPC實現了遠程調用,使得應用程序的分布與系統硬件的分布無關,便于系統硬件配置,使得系統的應用范圍更廣。
(5)采用OPC規范,便于系統的組態,將系統復雜性大大簡化,可以大大縮短軟件開發周期,提高軟件運行的可靠性和穩定性,便于系統的升級與維護。
(6)OPC規范了接口函數,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而實現系統的開放性,易于實現與其它系統的接口。
OPC通訊概覽如圖3所示。

圖3 OPC通訊概覽
OPC技術對工業控制系統的影響和應用是基礎性和革命性的,簡單地說,它的應用主要表現在以下幾個方面:
(1)OPC解決了設備驅動程序開發中的異構問題。隨著計算機技術的不斷發展,以DCS(集散控制系統)為主體的工業控制系統功能日趨強大,一套工業控制系統往往選用了幾家甚至十幾家不同公司的控制設備或系統集成一個大的系統,但由于缺乏統一的標準,開發商必須對系統的每一種設備都編寫相應的驅動程序,而且,當硬件設備升級、修改時,驅動程序也必須跟隨修改。同時,一個系統中如果運行不同公司的控制軟件,也存在著相互沖突的風險。有了OPC后,硬件廠商只需提供一套符合OPC技術的程序,軟件開發人員也只需編寫一個接口,所有的數據交換都通過OPC接口進行,而不論連接的控制系統或設備是哪個具體廠商提供。
(2)OPC解決了現場總線系統中異構網段之間數據交換的問題。現場總線系統仍然存在多種總線并存的局面,有了OPC作為異構網段集成的中間件,只要每個總線段提供各自的OPC服務器,任一OPC客戶端軟件都可以通過一致的OPC接口訪問這些OPC服務器。
(3)OPC可作為訪問專有數據庫的中間件。實際應用中,許多控制軟件都采用專有的實時數據庫或歷史數據庫,只要數據庫的開發商在提供數據庫的同時也能提供一個訪問該數據庫的OPC服務器,那么當用戶要訪問時只需按照OPC規范的要求編寫OPC客戶端程序而無需了解該專有數據庫特定的接口要求。
(4)OPC便于集成不同的數據,為控制系統向管理系統升級提供了方便。無論是管理系統還是控制系統,無論是PLC還是DCS,或者是FCS(現場總線控制系統),都可以通過OPC快速可靠的彼此交換信息。換句話說,OPC是整個企業網絡的數據接口規范,所以,OPC提升了控制系統的功能,增強了網絡的功能,提高了企業管理的水平。
PLC在與上位機通訊時,可以采用Ethernet和PROFIBUS等方式,在本設備中,主控PLC使用的是SIMATIC S7-300系列的CPU315-2PN/DP,選擇Ethernet方式,上位機客戶端程序采用C#編寫。下面就詳細論述通過Ethernet建立SIMATIC NETOPC服務器與PLC的S7連接。
用于Ethernet的OPC服務器隨SIMATIC NET軟件提供,SIMATIC NET是SIEMENS在工業控制層面上提供的一個開放的、多元的通訊系統,通過它能將工業現場的PLC、主機、工作站和個人電腦聯網通訊。
(1)軟件
SIMATIC NET PC SOFTWARE V6.0 SP5或以上版本;STEP 7 V5.1+SP2或以上版本;SOFTNET-IE S7授權。
(2)硬件
CP1613或普通10/100自適應以太網卡。
(3)本例中所使用的主要軟件
SIMATIC NET PC SOFTWARE V6.4;STEP7 V5.4 SP3。
(4)本例中所使用的主要硬件
S7-300 CPU315-2PN/DP;普通網卡;為保證PLC正常運行的其他組件或模塊。
(1)將硬件連接完成。
(2)打開 SIMATIC Manager。
(3)新建項目,插入PC站,站名為本機主機名。
(4)組態PC站。在硬件目錄SIMATIC PC Station/User Application/OPC Server下,將與安裝在本機上的SIMATIC NET PC SOFTWARE相匹配的OPC Server(本例中為SW V6.4)放入槽1,將目錄SIMATIC PC Station/CP Industrial Ethernet/IE General下的SW V6.2 SP1放入槽3。將IP Address設置為本機的IP地址,并點擊“New…”新建以太網連接。保存并編譯PC站組態。
(5)插入S7-300站。
(6)組態相關硬件,設置CPU315-2PN/DP的以太網接口。IP地址為PLC的IP地址,將PLC連接到以太網上。將其他PLC硬件組態完成后,保存并編譯組態。
(7)打開NetPro,組態網絡。在PC站的OPC Server處鼠標右鍵單擊,選擇“Insert New Connection”,在“Connection Partner”項選擇已組態的CPU,“Type”項選擇“S7 connection”。保存并編譯網絡組態。
(8)打開Station Configurator,單擊“Import Station…”按鈕,到上述項目文件夾中的XDBs文件夾下選擇其中的*.xdb文件,完成站的導入。
(9)設置SIMATIC Manager的PG/PC接口為“PC internal(local)”,下載PC站。
(10)設置SIMATIC Manager的PG/PC接口為“TCP/IP(Auto)”,下載S7-300站。
OPC Scout工具隨Simatic Net軟件一起提供,當完成PC Station組態下載后,可用此工具進行OPC Server和PLC的數據通訊測試。
(1)打開 OPC Scout,(Start>SIMATIC>SIMATIC Net>OPC Scout),雙擊“OPC.SimaticNet” 在隨之彈出的“ADD Group”對話框中輸入組名,本例命名為“OPC_ETHERNET”。點擊OK確認。
(2)雙擊已添加的連接組(OPC_ETHERNET),即彈出“OPC Navigator”對話框,此窗口中顯示在Configuration Console所激活的連接協議。雙擊“S7:”,在PC Station組態NetPro中所建的連接名會被顯示(S7 connection_1)。雙擊此連接,即可出現有可能被訪問的對象樹(objects tree),此處以輸出映像為例,在“Q”下定義新條目,以 QB0為例,“Datatype” 選“B”,“Address” 寫“0”,“No.Values” 寫“1”。點擊“—>” 添加條目,確認之后,出現條目狀態信息,“Quality”列顯示為“good”時表明OPC Server與PLC的S7連接已經建立,雙擊“Value”列,可對條目進行修改,如果組態了相應的輸出模塊,則可直觀地顯示出通訊結果。
本例中需要用到OPCDAAuto.dll。
用到的API函數如下所述:
void Connect(string ProgID,object Node)//連接本地服務器:服務器名+主機名或IP
OPCAutomation.OPCGroup Add(object Name)//添加組
OPCAutomation.OPCItem AddItem(string ItemID,int ClientHandle)//添加item
void Read(short Source,out object Value,out object Quality,out object TimeStamp)//同步讀
void Write(object Value)//同步寫
void AsyncRead(int NumItems,ref System.Array ServerHandles,out System.Array
Errors,int TransactionID,out int CancelID)//異步讀
void AsyncWrite(int NumItems,ref System.Array ServerHandles,ref System.Array Values,out System.Array Errors,int TransactionID,out int CancelID)//異步寫
void RemoveAll()//釋放所有組
void Disconnect()//斷開OPC服務器
無法下載硬件組態;OPC服務器與PLC無法建立連接;通訊質量一直顯示“bad”。
硬件連接要完整、可靠;PLC要置于RUN模式;站地址分配不能重復;PC站的名字要與主機名相同;PC站及S7-300站都要下載。
隨著基于OPC標準的控制組件的推廣和普及,不僅使控制組件的增設和組件的置換更加簡單,而且使過程數據的訪問也變得容易。比如過程控制程序可以直接和數據分析軟件包或電子表格應用程序連接,從而達成高度的工廠控制系統的信息化。
在以前的自動化領域的通訊技術規范方面,很少有像OPC新技術標準那樣引起轟動的。OPC在今天已經理所當然的被自動化組件的制造商逐步發展成一個事實上的新技術標準。當今,軟件在自動化領域內使用的重要性與日俱增。無論項目是否涉及到操作、可視化、數據存檔或控制,向純粹的、基于PC的軟件解決方案的發展趨勢是不可阻擋的。因此,OPC技術的發展前景是被眾多業內人士所看好和期待的。
[1]時良平.郵政機械設計[M].北京:人民郵電出版社,1993.
[2]崔堅.西門子工業網絡通信指南[M].北京:機械工業出版社,2006.
[3]廖常初.S7-300/400 PLC應用技術[M].北京:機械工業出版社,2006.
[4]文孟飛,何海江,陽春華.C#實現OPC歷史數據存取研究[J].微計算機信息,2007,23(1):52-54.
[5]何海江.C#程序與基于COM的OPC數據存取服務器交換數據研究[J].微計算機信息,2004,20(10):112-113.
[6]廖常初.西門子工業通信網絡組態編程與故障診斷[M].北京:機械工業出版社,2009.
[7]吉順平,等.西門子現場總線通信原理與應用[M].北京:機械工業出版社,2009.
[8]Christian Nagel,Bill Evjen,Jay Glynn.C#高級編程[M].4版.李敏波,譯.北京:清華大學出版社,2006.
[9]殷泰暉.C#編程從基礎到實踐[M].北京:電子工業出版社,2007.
[10]何華.深入淺出西門子WinCC V6[M].2版.北京:北京航空航天大學出版社,2005.