亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        使用VB語言編程OPC通信技術(shù)

        2015-04-27 01:27:48沈陽延鋒江森座椅有限責(zé)任公司沈陽110000
        山東工業(yè)技術(shù) 2015年4期
        關(guān)鍵詞:枚舉上位示例

        任 強(qiáng)(沈陽延鋒江森座椅有限責(zé)任公司,沈陽 110000)

        使用VB語言編程OPC通信技術(shù)

        任強(qiáng)
        (沈陽延鋒江森座椅有限責(zé)任公司,沈陽110000)

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

        PLC;上位機(jī);OPC技術(shù)

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

        標(biāo)準(zhǔn)化的OPC系統(tǒng)包括4個部分:

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

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

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

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

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

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

        (1)OPC服務(wù)器。

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

        (3)OPC標(biāo)簽(OPC標(biāo)簽集合)。

        OPC組、OPC標(biāo)簽在訪問之前需要在KEPWARE一側(cè)建立,并配置好標(biāo)簽的對應(yīng)PLC內(nèi)部地址。下面分步介紹如何編程訪問OPC服務(wù)器,以操作PLC數(shù)據(jù)的。

        1 連接OPC服務(wù)器

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

        聲明OPC服務(wù)器:

        Publicopc_ServerObjAsOPCServer//聲明全局OPC服務(wù)器,變量名opc_ServerObj

        Setopc_ServerObj=NewOPCServer//建立OPC服務(wù)器

        連接OPC服務(wù)器可以顯式訪問也可以隱式訪問。

        連接服務(wù)器:

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

        2 添加OPC組

        在OPC服務(wù)器中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”中內(nèi)容。

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

        3 指定OPC標(biāo)簽集合名稱

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

        4 添加OPC項(xiàng)

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

        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組中的項(xiàng)標(biāo)簽集合里面添加10個名稱從TestMax(1)到TestMax(10)的OPC項(xiàng)標(biāo)簽(item)。

        Serverhandles(i)=opc_ItemObj.ServerHand le//通過數(shù)組取得項(xiàng)標(biāo)簽的句柄。

        Nexti

        5 枚舉所有項(xiàng)標(biāo)簽

        在應(yīng)用程序設(shè)計(jì)中,如果需要讀寫項(xiàng)集合內(nèi)的某個項(xiàng)數(shù)據(jù),需要取得標(biāo)簽集合中該項(xiàng)標(biāo)簽的符號,這就需要用到枚舉方法。就是在標(biāo)簽集合中進(jìn)行項(xiàng)標(biāo)簽枚舉,直到找到指定的的項(xiàng)。

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

        代碼示例:

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

        For i =1 ToiCount

        Set opc_ItemObj = myGroup1.OPCItems.Item(i) //取得每一項(xiàng)標(biāo)簽的標(biāo)識符

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

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

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

        gAddItem_PLC = True

        End If

        Next

        End If

        返回的項(xiàng)標(biāo)簽符號存入變量OPC_ItemObj中,可以方便的進(jìn)行讀寫操作。

        代碼示例:

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

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

        End If

        6 讀寫PLC數(shù)據(jù)

        OPC服務(wù)器支持同步與異步的讀寫方式。同步方式是指在應(yīng)用程序發(fā)出讀寫請求之后,直到OPC服務(wù)器操作結(jié)束后繼續(xù)程序執(zhí)行。異步方式是在應(yīng)用程序發(fā)出讀寫請求之后,應(yīng)用程序繼續(xù)執(zhí)行,在OPC服務(wù)器數(shù)據(jù)處理結(jié)束后,告之應(yīng)用程序處理完畢。在數(shù)據(jù)同步性要求不高的情況下兩者區(qū)別不大。

        同步讀取代碼示例:

        iCount = opc_GroupObj.OPCItems.Count //取得OPC組里面的項(xiàng)標(biāo)簽數(shù)目。

        If iCount> 0 Then

        Call opc_GroupObj.SyncRead(OPCDevice, iCount, Serverhandles, plcVal, MyErrors, myQuality, myTimeStamp) //讀取由數(shù)組Serverhandles指定句柄的項(xiàng)標(biāo)簽,將其內(nèi)容存放入數(shù)組PlcVal里面。

        End If

        上面的代碼示例適合于批量讀取PLC內(nèi)部數(shù)據(jù),如果需要單獨(dú)讀寫某個項(xiàng)標(biāo)簽的數(shù)據(jù),可以使用項(xiàng)標(biāo)簽的Read與Write方法。

        代碼示例:opc_ItemObj.Write (True) //對變量OPC_ItemObj賦值的OPC項(xiàng)標(biāo)簽進(jìn)行寫操作。

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

        任強(qiáng),男,遼寧沈陽人,大專,助理設(shè)備工程師,研究方向:電氣設(shè)備管理。

        猜你喜歡
        枚舉上位示例
        大還是小
        基于理解性教學(xué)的信息技術(shù)教學(xué)案例研究
        速讀·上旬(2022年2期)2022-04-10 16:42:14
        一種高效的概率圖上Top-K極大團(tuán)枚舉算法
        2019年高考上海卷作文示例
        常見單位符號大小寫混淆示例
        山東冶金(2019年5期)2019-11-16 09:09:22
        “全等三角形”錯解示例
        特斯拉 風(fēng)云之老阿姨上位
        車迷(2018年12期)2018-07-26 00:42:22
        “三扶”齊上位 決戰(zhàn)必打贏
        基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
        基于太陽影子定位枚舉法模型的研究
        2022精品久久久久久中文字幕| 国产亚洲精品第一综合另类| 朋友的丰满人妻中文字幕| 国产在线精品一区在线观看| 三级做a全过程在线观看| 日韩毛片免费无码无毒视频观看| 娇妻玩4p被三个男人伺候电影| 亚洲色婷婷综合开心网| 日本办公室三级在线看| 国产一级一片内射视频播放 | 天天综合网天天综合色| 国产av成人精品播放| 亚洲国产日韩综一区二区在性色| 亚洲国产精品激情综合色婷婷| 亚洲午夜无码毛片av久久| 亚洲国产精品毛片av不卡在线 | 少妇愉情理伦片| 纯爱无遮挡h肉动漫在线播放| 日韩五十路| 日韩av最新在线地址| 亚洲av毛片在线网站| 亚洲av无码国产精品色午夜字幕| 不卡高清av手机在线观看| 婷婷激情六月| 国产亚洲精品一区二区在线播放| 美女主播福利一区二区| 一本一道人人妻人人妻αv| 精品一区二区久久久久久久网站| 国内精品视频成人一区二区 | 亚洲av成人一区二区三区本码| 无码人妻精品一区二区| 风流少妇又紧又爽又丰满| 高清av一区二区三区在线 | 最新国产不卡在线视频| 亚洲国产精品成人综合色| 厨房玩丰满人妻hd完整版视频| 日韩精品首页在线观看| 东风日产车是不是国产的| 亚洲人成影院在线无码按摩店 | 无码人妻久久一区二区三区免费丨| 亚洲老妈激情一区二区三区 |