国产又粗又猛又爽又黄的黄牛视频-欧美日韩精品网址-国产成人麻豆h视频在线观看-蜜臀av区一二三爽免费播放-久久久伦理精品-99精品资源在线视频-伊人久久大香樵-久久人妻人人爽-性欧美少妇煌妇喷水,麻豆免费在线观看视频网站,天天射天天干天天要,91精品国自产拍老熟女露脸

PLC技術(shù)資料
    基于OPC技術(shù)的上位機(jī)與PLC之間的通信
    發(fā)布者:用戶投稿  發(fā)布時間:2008/5/9 21:13:26

    1  引言
    現(xiàn)代工業(yè)控制系統(tǒng)通常以PC機(jī)為上位機(jī),通過與現(xiàn)場工控設(shè)備如PLC的數(shù)據(jù)交換與處理,實現(xiàn)對生產(chǎn)過程的自動控制。對于小型控制系統(tǒng),采用專門的組態(tài)軟件成本太高,用VB設(shè)計監(jiān)控系統(tǒng)則可以降低成本,但首先要解決上位機(jī)與PLC之間通信問題。以往使用較多的進(jìn)程間通信方式是DDE(動態(tài)數(shù)據(jù)交換)方式,隨著OPC技術(shù)的發(fā)展和普及,它已成為工業(yè)過程控制的通信標(biāo)準(zhǔn)。OPC服務(wù)器有兩類接口,其中自動化接口主要用于VB、Delphi等開發(fā)工具。本文利用羅克韋爾公司提供的OPC接口,用VB編寫了客戶端應(yīng)用程序,實現(xiàn)了上位機(jī)與AB可編程控制器之間的數(shù)據(jù)交換。

    2  OPC技術(shù)簡介
    OPC(OLE for Process Control—用于過程控制的對象連接與嵌入)是一套以微軟對象連接與嵌入OLE、組件對象模型COM、分布式組件對象模型DCOM(Distributed COM)技術(shù)為基礎(chǔ),基于Windows操作平臺,為工業(yè)應(yīng)用程序之間提供高效的信息集成和交互功能的組件對象模型接口標(biāo)準(zhǔn)。OPC實際上是提供了一種機(jī)制,通過這種機(jī)制,系統(tǒng)能夠以服務(wù)器/客戶端標(biāo)準(zhǔn)方式從服務(wù)器獲取數(shù)據(jù)并將其傳遞給任何客戶應(yīng)用程序。這樣,只要生產(chǎn)商開發(fā)一套遵循OPC規(guī)范的服務(wù)器與數(shù)據(jù)進(jìn)行通信,其他任何客戶應(yīng)用程序便能通過服務(wù)器訪問設(shè)備。
    OPC服務(wù)器有兩類接口:定制接口和自動化接口。定制接口為C++程序服務(wù),自動化接口為VB這一類可使用自動化對象的程序服務(wù)。定制接口是服務(wù)商必須提供的,而自動化接口則是可選的,不過OPC基金會提供了一個叫做“自動化包裝器”的動態(tài)連接庫,用于在兩者間轉(zhuǎn)換。
    OPC數(shù)據(jù)存取規(guī)范規(guī)定的基本對象有三類:服務(wù)器(server)、組(group)和數(shù)據(jù)項(item)。服務(wù)器對象包含服務(wù)器的所有信息,也是組對象的容器,一個服務(wù)器對應(yīng)于一個OPC server,即一種設(shè)備的驅(qū)動程序。組對象除了包含它自身信息外,還負(fù)責(zé)管理數(shù)據(jù)項。每一個數(shù)據(jù)項代表到數(shù)據(jù)源的一個連接,但它沒有提供外部接口,客戶端程序無法對數(shù)據(jù)項直接進(jìn)行操作,應(yīng)用程序必須依靠數(shù)據(jù)項的容器組對象來對它進(jìn)行操作。

    3  通信實現(xiàn)
    3.1  RSLinx的配置
    RSLinx是AB可編程控制器在Windows環(huán)境下建立工廠所用通信方案的工具,它不僅提供了多種網(wǎng)絡(luò)驅(qū)動程序,而且提供了最快速的OPC、DDE和Custom C/C++接口。本設(shè)計中上位機(jī)與Logix5550控制器采用RS-232串口方式連接,在RSLinx中要對DF1網(wǎng)絡(luò)驅(qū)動程序組態(tài),設(shè)置串口特性:COM1、波特率19200bps、一個停止位、無奇偶校驗、全雙工、BCC校驗碼。此外要使用RSLinx的OPC接口作為服務(wù)器,還要在RSLinx中對OPC進(jìn)行配置。
    3.2  安裝OPC自動化接口服務(wù)
    若要用VB開發(fā)OPC應(yīng)用程序,必須安裝OPC自動化接口服務(wù),保證計算機(jī)系統(tǒng)目錄下有OPCDAAuto.dll。OPC基金會提供了一個叫做“自動化包裝器”的動態(tài)連接庫,從OPC基金會的網(wǎng)站(www.opcfoundation.org)可下載。在VB環(huán)境中,按“工程”的子菜單“引用…”后,彈出對話框,選擇其中的“RSLinx OPC Automation 2.0”項,這樣才能使用自動化接口。
    3.3  程序設(shè)計
    用VB編寫了OPC客戶端應(yīng)用程序,實現(xiàn)了上位機(jī)與Logix5550控制器之間的通信。主要程序代碼如下:
    (1) 連接OPC服務(wù)器
    Dim WithEvents MyOPCServer As OPCServer      ‘定義服務(wù)器對象變量MyOPCServer
    Dim WithEvents MyOPCGroup As OPCGroup      ‘定義OPC組對象變量MyOPCGroup
    Set MyOPCServer = New OPCServer
    MyOPCServer.Connect "RSLinx OPC Server" ‘連接RSLinx 的OPC服務(wù)器
    (2) 添加OPC組對象
    Set MyOPCGroup=MyOPCServer.OPCGroups.Add("Group1")   
    ‘添加OPC組對象MyOPCGroup.IsSubscribed= True    

    [NextPage]
    ‘設(shè)置該組數(shù)據(jù)為后臺刷新
    MyOPCGroup.IsActive = True 
    ‘設(shè)置該組為激活狀態(tài)
    MyOPCGroup.UpdateRate=1000     
    ‘設(shè)置數(shù)據(jù)刷新時間為1000
    (3) 添加數(shù)據(jù)項
    Dim abItemIDs() As String     
    ‘項標(biāo)識符
    Dim abClientHandles() As Long 
    ‘客戶端句柄
    Dim abServerHandles() As Long
    ‘服務(wù)器端句柄
    Dim abErrors() As Long   
    Dim I As Long
    ItemCount=5
    Dim oOPCItem As RSLinxOPCAutomation.OPCItem
    For I = 1 To 5
    abItemIDs(i) = "[" & txtTopic & "]" & txtItem(i)  ‘將Topic名和標(biāo)簽名賦給項標(biāo)識符
    abClientHandles(i) = i    
    ‘給客戶端句柄賦值
    Next i
    MyOPCGroup.OPCItems.AddItems ItemCount, abItemIDs, abClientHandles, abServerHandles, abErrors
    ‘添加數(shù)據(jù)項操作
    (4) 同步數(shù)據(jù)讀寫
    OPC數(shù)據(jù)存取有同步方式和異步方式兩種。異步讀寫數(shù)據(jù)復(fù)雜,需要與事件結(jié)合使用,與同步相比速度慢但準(zhǔn)確性高。同步讀寫數(shù)據(jù)簡單,直接使用OPCItem的方法即可。
    Dim One As OPCItem
    Dim Index As Long  
    ‘Index為標(biāo)簽順序號
    Dim OneRead As String
    Dim Xie As String     
    Set One = MyOPCGroup.OPCItems(Index)
    One.Read OPCCache
    OneRead = One.Value  

    [NextPage]
    ‘讀數(shù)據(jù)
    One.Write (Xie) 
    ‘寫數(shù)據(jù)
    若只讀取數(shù)據(jù),可以使用DataChange事件,當(dāng)控制器中所要訪問的數(shù)據(jù)一旦發(fā)生改變時將會觸發(fā)該事件,并將該數(shù)據(jù)自動讀到TxtValue文本框。
    Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
    ‘自動刷新數(shù)據(jù)
    Dim I As Long
    For I = 1 To NumItems
    txtValue(ClientHandles(i)) = ItemValues(i)     
    ‘獲取項的值
    txtTime(ClientHandles(i)) = TimeStamps(i)    
    ‘獲取項的時間戳
    txtQuantity(ClientHandles(i))=GetQualityString(Qualities(i)) 
    ‘獲取項的品質(zhì)
    Next i
    End Sub
    (5) 斷開OPC服務(wù)器
    MyOPCServer.OPCGroups.RemoveAll  
    ‘移除所有OPC Group,空出資源
    Set MyOPCGroup = Nothing 
    MyOPCServer.Disconnect 
    ‘?dāng)嚅_連接

    4  結(jié)束語
    利用本文介紹的方法,在實驗室實現(xiàn)了上位機(jī)和PLC之間的通信,圖1是OPC客戶端設(shè)置界面。此外我們還設(shè)計了城市供水監(jiān)控系統(tǒng),鑒于篇幅,監(jiān)控界面不再一一列出。

    圖1     OPC客戶端設(shè)置界面

    版權(quán)聲明PLC信息網(wǎng)轉(zhuǎn)載作品均注明出處,本網(wǎng)未注明出處和轉(zhuǎn)載的,是出于傳遞更多信息之目的,并不意味 著贊同其觀點或證實其內(nèi)容的真實性。如轉(zhuǎn)載作品侵犯作者署名權(quán),或有其他諸如版權(quán)、肖像權(quán)、知識產(chǎn)權(quán)等方面的傷害,并非本網(wǎng)故意為之,在接到相關(guān)權(quán)利人通知后將立即加以更正。聯(lián)系電話:0571-87774297。
0571-87774297  
调兵山市| 理塘县| 利辛县| 格尔木市| 金坛市| 武冈市| 延长县| 宁海县| 七台河市| 磐石市| 旅游| 商洛市| 富源县| 获嘉县| 汉中市| 青岛市| 广宗县| 宕昌县| 长海县| 陕西省| 梁河县| 临泉县| 西乡县| 横山县| 财经| 郎溪县| 会同县| 海盐县| 四会市| 鹤庆县| 若尔盖县| 托克托县| 巨野县| 铅山县| 菏泽市| 厦门市| 松滋市| 静乐县| 丹巴县| 屏山县| 黎城县|