黃現(xiàn)科,時良平(北京郵電大學(xué) 自動化學(xué)院,北京 100876)
扁平件分揀機是由一組夾叉式小車組成的封閉輸送分揀系統(tǒng),主要應(yīng)用于EMS扁平郵件的分揀,效率高、噪聲小、平穩(wěn)性好,在郵政物流中應(yīng)用的越來越多。本文就是以某扁平件分揀機為藍本介紹OPC通訊的應(yīng)用,此機器的外形見圖1。
本扁平件分揀機的控制層次圖如圖2所示。本扁平件分揀機的控制系統(tǒng)分為:設(shè)備控制層、信息處理層、車間管理層。
設(shè)備控制層分為:現(xiàn)場設(shè)備控制單元、分揀控制單元、數(shù)據(jù)處理單元?,F(xiàn)場設(shè)備控制單元采用遠程控制模塊(SIEMENS公司的ET200S)實現(xiàn),該模塊和分揀控制單元之間采用PROFIBUS實現(xiàn)數(shù)據(jù)通訊;分揀控制單元采用SIEMENS公司的S7-300系列PLC實現(xiàn),該單元和現(xiàn)場設(shè)備之間的通訊采用PROFIBUS實現(xiàn);數(shù)據(jù)處理單元即上位機,其與PLC采用OPC方式通訊,其實現(xiàn)過程是本文論述的重點,該單元和信息處理層之間采用以太網(wǎng)實現(xiàn)通訊。
信息處理層包含:信息處理服務(wù)器、通訊處理計算機、打印終端計算機、打印機等設(shè)備。信息處理層主要完成:和車間管理層的通訊處理、分揀原始信息的采集分類、分揀處理后的信息處理、實時控制信息的傳送等。
車間管理層由上一級部門完成。
圖1 扁平件分揀機
OPC是Object Linking and Embedding(OLE)for Process Control的縮寫,它是微軟公司的對象鏈接和嵌入技術(shù)在過程控制方面的應(yīng)用。OPC以O(shè)LE/COM/DCOM技術(shù)為基礎(chǔ),采用客戶/服務(wù)器模式,為工業(yè)自動化軟件面向?qū)ο蟮拈_發(fā)提供了統(tǒng)一的標準,這個標準定義了應(yīng)用Microsoft操作系統(tǒng)在基于PC的客戶機之間交換自動化實時數(shù)據(jù)的方法。
(1)采用標準的Windows體系接口,硬件制造商為其設(shè)備提供的接口程序的數(shù)量減少到一個,軟件制造商也僅需要開發(fā)一套通訊接口程序。即有利于軟硬件開發(fā)商,更有利于最終用戶。
圖2 分揀機控制層次圖
(2)OPC規(guī)范以O(shè)LE/DCOM為技術(shù)基礎(chǔ),而OLE/DCOM支持TCP/IP等網(wǎng)絡(luò)協(xié)議,因此可以將各個子系統(tǒng)從物理上分開,分布于網(wǎng)絡(luò)的不同節(jié)點上。
(3)OPC按照面向?qū)ο蟮脑瓌t,將一個應(yīng)用程序(OPC服務(wù)器)作為一個對象封裝起來,只將接口方法暴露在外面,客戶以統(tǒng)一的方式去調(diào)用這個方法,從而保證軟件對客戶的透明性,使得用戶完全從底層的開發(fā)中脫離出來。
(4)OPC實現(xiàn)了遠程調(diào)用,使得應(yīng)用程序的分布與系統(tǒng)硬件的分布無關(guān),便于系統(tǒng)硬件配置,使得系統(tǒng)的應(yīng)用范圍更廣。
(5)采用OPC規(guī)范,便于系統(tǒng)的組態(tài),將系統(tǒng)復(fù)雜性大大簡化,可以大大縮短軟件開發(fā)周期,提高軟件運行的可靠性和穩(wěn)定性,便于系統(tǒng)的升級與維護。
(6)OPC規(guī)范了接口函數(shù),不管現(xiàn)場設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而實現(xiàn)系統(tǒng)的開放性,易于實現(xiàn)與其它系統(tǒng)的接口。
OPC通訊概覽如圖3所示。
圖3 OPC通訊概覽
OPC技術(shù)對工業(yè)控制系統(tǒng)的影響和應(yīng)用是基礎(chǔ)性和革命性的,簡單地說,它的應(yīng)用主要表現(xiàn)在以下幾個方面:
(1)OPC解決了設(shè)備驅(qū)動程序開發(fā)中的異構(gòu)問題。隨著計算機技術(shù)的不斷發(fā)展,以DCS(集散控制系統(tǒng))為主體的工業(yè)控制系統(tǒng)功能日趨強大,一套工業(yè)控制系統(tǒng)往往選用了幾家甚至十幾家不同公司的控制設(shè)備或系統(tǒng)集成一個大的系統(tǒng),但由于缺乏統(tǒng)一的標準,開發(fā)商必須對系統(tǒng)的每一種設(shè)備都編寫相應(yīng)的驅(qū)動程序,而且,當硬件設(shè)備升級、修改時,驅(qū)動程序也必須跟隨修改。同時,一個系統(tǒng)中如果運行不同公司的控制軟件,也存在著相互沖突的風(fēng)險。有了OPC后,硬件廠商只需提供一套符合OPC技術(shù)的程序,軟件開發(fā)人員也只需編寫一個接口,所有的數(shù)據(jù)交換都通過OPC接口進行,而不論連接的控制系統(tǒng)或設(shè)備是哪個具體廠商提供。
(2)OPC解決了現(xiàn)場總線系統(tǒng)中異構(gòu)網(wǎng)段之間數(shù)據(jù)交換的問題?,F(xiàn)場總線系統(tǒng)仍然存在多種總線并存的局面,有了OPC作為異構(gòu)網(wǎng)段集成的中間件,只要每個總線段提供各自的OPC服務(wù)器,任一OPC客戶端軟件都可以通過一致的OPC接口訪問這些OPC服務(wù)器。
(3)OPC可作為訪問專有數(shù)據(jù)庫的中間件。實際應(yīng)用中,許多控制軟件都采用專有的實時數(shù)據(jù)庫或歷史數(shù)據(jù)庫,只要數(shù)據(jù)庫的開發(fā)商在提供數(shù)據(jù)庫的同時也能提供一個訪問該數(shù)據(jù)庫的OPC服務(wù)器,那么當用戶要訪問時只需按照OPC規(guī)范的要求編寫OPC客戶端程序而無需了解該專有數(shù)據(jù)庫特定的接口要求。
(4)OPC便于集成不同的數(shù)據(jù),為控制系統(tǒng)向管理系統(tǒng)升級提供了方便。無論是管理系統(tǒng)還是控制系統(tǒng),無論是PLC還是DCS,或者是FCS(現(xiàn)場總線控制系統(tǒng)),都可以通過OPC快速可靠的彼此交換信息。換句話說,OPC是整個企業(yè)網(wǎng)絡(luò)的數(shù)據(jù)接口規(guī)范,所以,OPC提升了控制系統(tǒng)的功能,增強了網(wǎng)絡(luò)的功能,提高了企業(yè)管理的水平。
PLC在與上位機通訊時,可以采用Ethernet和PROFIBUS等方式,在本設(shè)備中,主控PLC使用的是SIMATIC S7-300系列的CPU315-2PN/DP,選擇Ethernet方式,上位機客戶端程序采用C#編寫。下面就詳細論述通過Ethernet建立SIMATIC NETOPC服務(wù)器與PLC的S7連接。
用于Ethernet的OPC服務(wù)器隨SIMATIC NET軟件提供,SIMATIC NET是SIEMENS在工業(yè)控制層面上提供的一個開放的、多元的通訊系統(tǒng),通過它能將工業(yè)現(xiàn)場的PLC、主機、工作站和個人電腦聯(lián)網(wǎng)通訊。
(1)軟件
SIMATIC NET PC SOFTWARE V6.0 SP5或以上版本;STEP 7 V5.1+SP2或以上版本;SOFTNET-IE S7授權(quán)。
(2)硬件
CP1613或普通10/100自適應(yīng)以太網(wǎng)卡。
(3)本例中所使用的主要軟件
SIMATIC NET PC SOFTWARE V6.4;STEP7 V5.4 SP3。
(4)本例中所使用的主要硬件
S7-300 CPU315-2PN/DP;普通網(wǎng)卡;為保證PLC正常運行的其他組件或模塊。
(1)將硬件連接完成。
(2)打開 SIMATIC Manager。
(3)新建項目,插入PC站,站名為本機主機名。
(4)組態(tài)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設(shè)置為本機的IP地址,并點擊“New…”新建以太網(wǎng)連接。保存并編譯PC站組態(tài)。
(5)插入S7-300站。
(6)組態(tài)相關(guān)硬件,設(shè)置CPU315-2PN/DP的以太網(wǎng)接口。IP地址為PLC的IP地址,將PLC連接到以太網(wǎng)上。將其他PLC硬件組態(tài)完成后,保存并編譯組態(tài)。
(7)打開NetPro,組態(tài)網(wǎng)絡(luò)。在PC站的OPC Server處鼠標右鍵單擊,選擇“Insert New Connection”,在“Connection Partner”項選擇已組態(tài)的CPU,“Type”項選擇“S7 connection”。保存并編譯網(wǎng)絡(luò)組態(tài)。
(8)打開Station Configurator,單擊“Import Station…”按鈕,到上述項目文件夾中的XDBs文件夾下選擇其中的*.xdb文件,完成站的導(dǎo)入。
(9)設(shè)置SIMATIC Manager的PG/PC接口為“PC internal(local)”,下載PC站。
(10)設(shè)置SIMATIC Manager的PG/PC接口為“TCP/IP(Auto)”,下載S7-300站。
OPC Scout工具隨Simatic Net軟件一起提供,當完成PC Station組態(tài)下載后,可用此工具進行OPC Server和PLC的數(shù)據(jù)通訊測試。
(1)打開 OPC Scout,(Start>SIMATIC>SIMATIC Net>OPC Scout),雙擊“OPC.SimaticNet” 在隨之彈出的“ADD Group”對話框中輸入組名,本例命名為“OPC_ETHERNET”。點擊OK確認。
(2)雙擊已添加的連接組(OPC_ETHERNET),即彈出“OPC Navigator”對話框,此窗口中顯示在Configuration Console所激活的連接協(xié)議。雙擊“S7:”,在PC Station組態(tài)NetPro中所建的連接名會被顯示(S7 connection_1)。雙擊此連接,即可出現(xiàn)有可能被訪問的對象樹(objects tree),此處以輸出映像為例,在“Q”下定義新條目,以 QB0為例,“Datatype” 選“B”,“Address” 寫“0”,“No.Values” 寫“1”。點擊“—>” 添加條目,確認之后,出現(xiàn)條目狀態(tài)信息,“Quality”列顯示為“good”時表明OPC Server與PLC的S7連接已經(jīng)建立,雙擊“Value”列,可對條目進行修改,如果組態(tài)了相應(yīng)的輸出模塊,則可直觀地顯示出通訊結(jié)果。
本例中需要用到OPCDAAuto.dll。
用到的API函數(shù)如下所述:
void Connect(string ProgID,object Node)//連接本地服務(wù)器:服務(wù)器名+主機名或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服務(wù)器
無法下載硬件組態(tài);OPC服務(wù)器與PLC無法建立連接;通訊質(zhì)量一直顯示“bad”。
硬件連接要完整、可靠;PLC要置于RUN模式;站地址分配不能重復(fù);PC站的名字要與主機名相同;PC站及S7-300站都要下載。
隨著基于OPC標準的控制組件的推廣和普及,不僅使控制組件的增設(shè)和組件的置換更加簡單,而且使過程數(shù)據(jù)的訪問也變得容易。比如過程控制程序可以直接和數(shù)據(jù)分析軟件包或電子表格應(yīng)用程序連接,從而達成高度的工廠控制系統(tǒng)的信息化。
在以前的自動化領(lǐng)域的通訊技術(shù)規(guī)范方面,很少有像OPC新技術(shù)標準那樣引起轟動的。OPC在今天已經(jīng)理所當然的被自動化組件的制造商逐步發(fā)展成一個事實上的新技術(shù)標準。當今,軟件在自動化領(lǐng)域內(nèi)使用的重要性與日俱增。無論項目是否涉及到操作、可視化、數(shù)據(jù)存檔或控制,向純粹的、基于PC的軟件解決方案的發(fā)展趨勢是不可阻擋的。因此,OPC技術(shù)的發(fā)展前景是被眾多業(yè)內(nèi)人士所看好和期待的。
[1]時良平.郵政機械設(shè)計[M].北京:人民郵電出版社,1993.
[2]崔堅.西門子工業(yè)網(wǎng)絡(luò)通信指南[M].北京:機械工業(yè)出版社,2006.
[3]廖常初.S7-300/400 PLC應(yīng)用技術(shù)[M].北京:機械工業(yè)出版社,2006.
[4]文孟飛,何海江,陽春華.C#實現(xiàn)OPC歷史數(shù)據(jù)存取研究[J].微計算機信息,2007,23(1):52-54.
[5]何海江.C#程序與基于COM的OPC數(shù)據(jù)存取服務(wù)器交換數(shù)據(jù)研究[J].微計算機信息,2004,20(10):112-113.
[6]廖常初.西門子工業(yè)通信網(wǎng)絡(luò)組態(tài)編程與故障診斷[M].北京:機械工業(yè)出版社,2009.
[7]吉順平,等.西門子現(xiàn)場總線通信原理與應(yīng)用[M].北京:機械工業(yè)出版社,2009.
[8]Christian Nagel,Bill Evjen,Jay Glynn.C#高級編程[M].4版.李敏波,譯.北京:清華大學(xué)出版社,2006.
[9]殷泰暉.C#編程從基礎(chǔ)到實踐[M].北京:電子工業(yè)出版社,2007.
[10]何華.深入淺出西門子WinCC V6[M].2版.北京:北京航空航天大學(xué)出版社,2005.