999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

使用VB語言編程OPC通信技術

2015-04-27 01:27:48沈陽延鋒江森座椅有限責任公司沈陽110000
山東工業技術 2015年4期

任 強(沈陽延鋒江森座椅有限責任公司,沈陽 110000)

使用VB語言編程OPC通信技術

任強
(沈陽延鋒江森座椅有限責任公司,沈陽110000)

傳統的PLC上位通信程序由于各品牌PLC有著不同的通信協議與接口方式,設計前需要花費一定時間熟悉各品牌的通信協議與特性,設計難度很大。并且設計出的程序在更換PLC品牌后根本無法兼容,造成程序的靈活性較差。OPC技術由于其兼容廣泛、開發簡單的特點,讓上位程序設計起來簡單靈活。本文通過講解如何使用VB語言編寫OPC上位機程序,使廣大電氣設計人員了解到該技術實現PLC上位通信是非常簡單的。

PLC;上位機;OPC技術

OPC技術是(OLEforprocesscontrol)的簡稱,是基于微軟Windows系統的OLE/COM技術開發的一項應用技術。COM技術提供了一個標準化的平臺,各個設備廠商基于這個平臺開發符合標準化COM接口的PLC產品。OPC技術基于這一平臺,整合各品牌PLC產品COM組件接口,輸出一個標準化數據接口。這樣無論應用程序開發人員使用何種語言,只需要調用這個數據接口,即可訪問到所連接的PLC數據,而不用考慮PLC的品牌,以及底層協議。

標準化的OPC系統包括4個部分:

(1)OPC服務器:為上位機與PLC提供過程數據。

(2)OPC代理占位DLL:為VB或者VBA開發的OPC應用程序提供OPC服務器接口數據格式交換服務。

(3)OPC自動化包裝DLL:提供OPC服務器的自動化接口變換服務。VB或者VBA開發的上位機應用程序需要通過該接口訪問OPC服務器。

(4)OPC應用程序:設計人員使用VB等語言設計的提供給用戶的人機界面程序,含有用戶要求的所有功能。

上述中OPC服務器、OPC占位代理DLL、OPC自動化包裝DLL這三部分是由第三方開發的DLL文件。本文以KEPWARE公司的OPC軟件產品為例,介紹如何編程VB與OPC數據通訊。在KEPWARE中所連接的設備以通道(CHANNEL)的形式描述,每連接一個設備就使用一個CHANNEL,同時每一個CHANNEL對應OPC服務器一個OPC組(下面會介紹到)。在對應的CHANNEL里面設置好通信端口即可。以串口1為例是COM 1,也支持以太網通信。

通過VB訪問OPC服務器主要有三種對象,這三種對象有各自的參數、屬性、方法。

(1)OPC服務器。

(2)OPC組(OPC組集合)。

(3)OPC標簽(OPC標簽集合)。

OPC組、OPC標簽在訪問之前需要在KEPWARE一側建立,并配置好標簽的對應PLC內部地址。下面分步介紹如何編程訪問OPC服務器,以操作PLC數據的。

1 連接OPC服務器

在使用VB編程OPC訪問程序的時候,首先建立OPC服務器名并建立連接。

聲明OPC服務器:

Publicopc_ServerObjAsOPCServer//聲明全局OPC服務器,變量名opc_ServerObj

Setopc_ServerObj=NewOPCServer//建立OPC服務器

連接OPC服務器可以顯式訪問也可以隱式訪問。

連接服務器:

opc_ServerObj.Connect(myOPCInfor.OPC_Server)//隱式訪問,使用myOPCinfor.OPC子過程返回的值作為訪問參數。這樣可以靈活指定所訪問的OPC服務器。

2 添加OPC組

在OPC服務器中OPC組集合是自動包含的,可以使用OPC組集合的Add方法在里面添加OPC組。代碼示例:

Publicopc_G roupObjAsOPCG roup//全局聲明opc_GrouopObj變量作為OPC組屬性

Setopc_G roupObj=opc_ServerObj.OPCG roups.Add(myOPCInfor. OPC_G roup)//添加OPC組名稱,同樣使用隱式訪問,添加的組名稱為變量”myOPCInfor.OPC_G roup”中內容。

SetmyGroup1=opc_ServerObj.OPCG roups.Add("G roup1")//顯式聲明一個名稱為G roup1的OPC組

3 指定OPC標簽集合名稱

在KEPWARE中配置的OPC標簽集合名稱在編程時要一致,OPC組的名稱也要一致,否則無法通訊。下面是使用變量間接指定的例子。代碼示例:myOPCInfor.OPC_Item=myConfig.GetStringValue("OP CInfo","OPCItem","",m_strConfigurationFileName)//同樣通過Land文件當中的“OPCinfo”字段中的“OPCItem”項內容來指定OPC組集合字符串。

4 添加OPC項

OPC項是指定訪問OPC服務器數據的名稱,其通過OPC服務器與PLC相關聯,指向要訪問的PLC某個數據地址。編程OPC服務器之前,先在KEPWAR軟件當中配置好需要訪問的OPC項,將其與PLC內部的某個地址相關聯,軟件中稱為“TAG”。比如:新建項并命名TAG 1,配置地址為D200。那么在設計應用程序訪問地址D 200的數據時,就指定訪問名TAG 1就可以了。但是在使用OPC項之前,先進行添加,取得相應的句柄并妥善保存。如果要對OPC組內大量項標簽進行讀寫操作的時,這個句柄就非常有用。

Fori= 1 To 10

Setopc_ItemObj=opc_G roupObj.OPCItems.Add Item(m yOPCInfor.OPC_ G roup+myOPCInfor.OPC_Item + "TestMax"+CStr(i),1)//在OPC組中的項標簽集合里面添加10個名稱從TestMax(1)到TestMax(10)的OPC項標簽(item)。

Serverhandles(i)=opc_ItemObj.ServerHand le//通過數組取得項標簽的句柄。

Nexti

5 枚舉所有項標簽

在應用程序設計中,如果需要讀寫項集合內的某個項數據,需要取得標簽集合中該項標簽的符號,這就需要用到枚舉方法。就是在標簽集合中進行項標簽枚舉,直到找到指定的的項。

在程序代碼中編寫子過程用以實現枚舉標簽集合中所有的項標簽功能。這個子過程可以作為一個功能塊在所有讀寫項標簽的語句中調用。在調用過程中只需要通過傳值的形式傳遞項標簽標識符,子過程就可以完成查找、返回項符號,進而進行讀寫操作。

代碼示例:

iCount=myGroup1.OPCItems.Count//取得OPC組中所有項的數目。IfiCount>0Then//下面是枚舉過程

For i =1 ToiCount

Set opc_ItemObj = myGroup1.OPCItems.Item(i) //取得每一項標簽的標識符

str = opc_ItemObj.Item ID //中間變量賦值

If (str = strItem)Then // 通過比較中間變量,找到與傳遞過來的項標識符一致的項

Set opc_ItemObj = myGroup1.OPCItems.Item(i) //將找到的項符號賦值給指定變量,該變量用于項標簽的讀寫操作。

gAddItem_PLC = True

End If

Next

End If

返回的項標簽符號存入變量OPC_ItemObj中,可以方便的進行讀寫操作。

代碼示例:

If my PubclsOPC.gAddItem_PLC(myOPCInfor.OPC_Group + myOPCInfor.OPC_Item + "Group1." + strBitItem)=TrueThen//將需要寫入的項標簽標示符(ItemID)傳值的形式傳遞到myPubclsOPC. gAddItem子過程。

opc_ItemObj.Write(True)//返回項標簽符號寫入變量OPC_ItemObj中,使用項標簽的寫方法賦值1(True)。

End If

6 讀寫PLC數據

OPC服務器支持同步與異步的讀寫方式。同步方式是指在應用程序發出讀寫請求之后,直到OPC服務器操作結束后繼續程序執行。異步方式是在應用程序發出讀寫請求之后,應用程序繼續執行,在OPC服務器數據處理結束后,告之應用程序處理完畢。在數據同步性要求不高的情況下兩者區別不大。

同步讀取代碼示例:

iCount = opc_GroupObj.OPCItems.Count //取得OPC組里面的項標簽數目。

If iCount> 0 Then

Call opc_GroupObj.SyncRead(OPCDevice, iCount, Serverhandles, plcVal, MyErrors, myQuality, myTimeStamp) //讀取由數組Serverhandles指定句柄的項標簽,將其內容存放入數組PlcVal里面。

End If

上面的代碼示例適合于批量讀取PLC內部數據,如果需要單獨讀寫某個項標簽的數據,可以使用項標簽的Read與Write方法。

代碼示例:opc_ItemObj.Write (True) //對變量OPC_ItemObj賦值的OPC項標簽進行寫操作。

OPC技術有很高的靈活性,同一OPC應用程序可以集成不同種類的PLC設備。由于基于標準化COM接口技術,在切換不同種類的PLC設備時,上位機的應用程序不需要重新開發,可以直接切換,這也是OPC技術得以廣泛應用的原因之一。本文通過介紹使用VB語言實現上位機程序訪問OPC數據,讓廣大設備開發人員了解OPC技術,使大家認識到使用這項技術可以方便的實現PLC設備上位機通訊。

任強,男,遼寧沈陽人,大專,助理設備工程師,研究方向:電氣設備管理。

主站蜘蛛池模板: 色综合久久久久8天国| 亚洲一区国色天香| 午夜毛片免费观看视频 | 中文字幕不卡免费高清视频| 99热线精品大全在线观看| 黄色网址手机国内免费在线观看| 91久久精品日日躁夜夜躁欧美| 又黄又爽视频好爽视频| 国产精品无码AV中文| 欧美97色| 青青青国产视频手机| 在线播放真实国产乱子伦| 999福利激情视频| 天堂久久久久久中文字幕| 亚洲精品国产首次亮相| 2021精品国产自在现线看| 国产成人精品日本亚洲77美色| 色综合久久久久8天国| 夜夜操天天摸| 国产a v无码专区亚洲av| 国产亚洲欧美在线专区| 成人夜夜嗨| 日韩黄色在线| 人人91人人澡人人妻人人爽| 美女一级毛片无遮挡内谢| 国产综合精品一区二区| 免费 国产 无码久久久| 国产视频只有无码精品| 国产精品网址在线观看你懂的| 久久久久久高潮白浆| 亚洲欧美一级一级a| 欧美日本在线播放| 58av国产精品| www.99精品视频在线播放| 97青草最新免费精品视频| 试看120秒男女啪啪免费| 3D动漫精品啪啪一区二区下载| 中文无码精品A∨在线观看不卡| 伊人久久大香线蕉综合影视| 日韩av资源在线| 蜜芽国产尤物av尤物在线看| 国产91小视频| 国产99精品久久| 高清久久精品亚洲日韩Av| 尤物精品视频一区二区三区| 国产福利拍拍拍| 久久青草精品一区二区三区 | 日韩激情成人| 国产va欧美va在线观看| 国产欧美精品一区二区| 综合亚洲网| 激情無極限的亚洲一区免费| 九月婷婷亚洲综合在线| 九色视频一区| 综合色在线| 直接黄91麻豆网站| 欧美在线国产| 亚洲码一区二区三区| 亚洲首页国产精品丝袜| 国产麻豆91网在线看| 亚洲国产看片基地久久1024| 嫩草国产在线| 午夜欧美在线| 久草性视频| 亚洲免费黄色网| 亚洲欧美日韩精品专区| 国产视频久久久久| 亚洲乱码在线播放| 又黄又湿又爽的视频| 免费国产高清视频| 亚洲va精品中文字幕| 色综合成人| 国产亚洲精品自在久久不卡| 亚洲精品无码高潮喷水A| 一本久道热中字伊人| 日韩小视频在线观看| 午夜一区二区三区| 午夜视频www| 亚洲一区二区成人| 国产一区二区精品福利| 国产免费观看av大片的网站| 国产99精品久久|