周傳應(yīng)
OPC是Ob ject Linking and Embedding(OLE)for Process Control的縮寫,它是微軟公司的對(duì)象鏈接和嵌入技術(shù)在過程控制方面的應(yīng)用。它的出現(xiàn)為基于Windows的應(yīng)用程序和現(xiàn)場過程控制應(yīng)用建立了橋梁。
7臺(tái) PLC控制器(堆垛機(jī)和輸送機(jī))通過 MPI控制網(wǎng)絡(luò)進(jìn)行通訊,完成現(xiàn)場運(yùn)行設(shè)備的狀態(tài)數(shù)據(jù)采集、傳送及控制指令的傳送等功能。上位機(jī)是一臺(tái)普通的電腦,其上安裝的KEPServerEx,OPC服務(wù)器軟件。
開發(fā)OPC客戶端程序時(shí),首先應(yīng)該生成OPC服務(wù)器支持的OPC對(duì)象,然后就可以使用 OPC對(duì)象支持的屬性和方法,對(duì)其進(jìn)行各種操作。
OPC數(shù)據(jù)服務(wù)器定義了兩種標(biāo)準(zhǔn)的 COM對(duì)象,即 OPCServer,OPCGroup對(duì)象。通過實(shí)現(xiàn)這兩種標(biāo)準(zhǔn)的 COM對(duì)象及相應(yīng)接口,用戶就完成了 OPC數(shù)據(jù)服務(wù)器的開發(fā)。OPC Server對(duì)象,是客戶端軟件與服務(wù)器交互的首要對(duì)象??蛻舳嗽L問 OPC Server對(duì)象的接口函數(shù)組織管理 OPCGroup對(duì)象,OPCGroup對(duì)象用于組織管理服務(wù)器內(nèi)部的實(shí)時(shí)數(shù)據(jù)信息。在OPC標(biāo)準(zhǔn)中使用Items對(duì)象描述實(shí)時(shí)數(shù)據(jù),Items是非 COM對(duì)象,是客戶端不可見的對(duì)象。
定制CMyOPCComm類。
其中,serverIDStr為服務(wù)器識(shí)別號(hào)(KEPServerKEPware.KEPS用erverEx.V 4,西門子用OPC.SimaticNet);str為服務(wù)器的IP地址(如果是本機(jī)也可用 127.0.0.1);m-pServer為 CKServer,客戶端訪問 OPCServer對(duì)象。
2)CMyOPCComm∶AddGroup方法。
添加組,實(shí)際上是對(duì)于每個(gè)巷道的堆垛機(jī)和輸送機(jī)。
3)CMyOPCComm∶Add Item方法。
添加組的各個(gè)項(xiàng)目(OPC服務(wù)器中的每個(gè)巷道的堆垛機(jī)和輸送機(jī)需要采集或設(shè)置的數(shù)據(jù)項(xiàng))。
4)初始化OPC服務(wù)器的數(shù)據(jù)項(xiàng)。
AddItem(m-pServer->GetGroup("宗申立庫"),"堆垛機(jī) 1.堆垛機(jī)狀態(tài).StackerState-00",VT-BOOL)。
將客戶端和OPC服務(wù)器端數(shù)據(jù)連接起來。
傳染性法氏囊病毒主要對(duì)3~8周齡的雛雞造成嚴(yán)重危害,育成后的雞和14周齡的育雛雞,通常感染該種病毒后,不會(huì)表現(xiàn)出明顯的臨床癥狀。雞傳染性法氏囊病一年四季均可發(fā)生,沒有典型的季節(jié)性,但在每年的夏季流行最為嚴(yán)重。隨著養(yǎng)殖數(shù)量的增加,該種疾病發(fā)生新的變化,呈現(xiàn)新的流行特點(diǎn),發(fā)現(xiàn)雞的日齡有所提前和延后,日齡較高的雞群患該種疾病的概率增加。由于雞傳染性法氏囊病屬于一種接觸性、免疫抑制性傳染性疾病,因此,需掌握雞傳染性法氏囊病的流行特點(diǎn),并采取針對(duì)性措施進(jìn)行防治。
5)獲得 OPC服務(wù)器端數(shù)據(jù)。
GetDataFromOPC(CStringArray*DataArray)。
6)向 OPC服務(wù)器端寫數(shù)據(jù)。
W riteDataToOPC(CString yes,CString no,CString out)。
自動(dòng)化立體倉庫管理系統(tǒng)的功能,對(duì)立體倉庫中各貨物的物料的類型、數(shù)量進(jìn)行管理,能根據(jù)出料單或入庫單向堆垛機(jī)自動(dòng)發(fā)生作業(yè),并具有數(shù)據(jù)查詢、打印等功能。
根據(jù)入庫單或出庫單自動(dòng)生成入庫作業(yè)或出庫作業(yè)。
讀取堆垛機(jī)和輸送機(jī)的狀態(tài),判斷是否向堆垛機(jī)發(fā)送作業(yè)。
系統(tǒng)向堆垛機(jī)發(fā)送作業(yè),堆垛機(jī)完成作業(yè)。
1)生成一個(gè)堆垛機(jī)和輸送機(jī)數(shù)據(jù)處理的線程類 CcommunicationThread(基類 CWinThread)。
讀取堆垛機(jī)和輸送機(jī)的狀態(tài)并進(jìn)行處理。
2)在主程序cmainFrame中。
a.生成六個(gè)CcommunicationThread的實(shí)例。
表示六個(gè)巷道,其中需要處理每個(gè)堆垛機(jī)和輸送機(jī)的信息。
b.重載cmainFrame∶OnTimer(UINT n IDEvent)。
定時(shí)器的設(shè)置為SetTimer(101,1000,NULL)。OPC技術(shù)在監(jiān)控系統(tǒng)、工程機(jī)械等領(lǐng)域都得到廣泛的應(yīng)用。
雖然使用開發(fā)工具也可以開發(fā)OPC Server,但還是希望大家能多了解 COM技術(shù),這樣對(duì) OPC Server的擴(kuò)展和維護(hù)都有好處。由于時(shí)間和作者水平的限制,難免有錯(cuò)誤和不妥之處,敬請(qǐng)大家批評(píng)和指正。
[1] 李 敬.淺析通信工程項(xiàng)目管理系統(tǒng)集成服務(wù)[J].山西建筑,2009,35(28):365-366.