亚洲综合在线播放_久久视频免费在线_久久久黄色av_亚洲免费视频一区

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

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

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

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

    [NextPage]
    ‘設置該組數據為后臺刷新
    MyOPCGroup.IsActive = True 
    ‘設置該組為激活狀態
    MyOPCGroup.UpdateRate=1000     
    ‘設置數據刷新時間為1000
    (3) 添加數據項
    Dim abItemIDs() As String     
    ‘項標識符
    Dim abClientHandles() As Long 
    ‘客戶端句柄
    Dim abServerHandles() As Long
    ‘服務器端句柄
    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名和標簽名賦給項標識符
    abClientHandles(i) = i    
    ‘給客戶端句柄賦值
    Next i
    MyOPCGroup.OPCItems.AddItems ItemCount, abItemIDs, abClientHandles, abServerHandles, abErrors
    ‘添加數據項操作
    (4) 同步數據讀寫
    OPC數據存取有同步方式和異步方式兩種。異步讀寫數據復雜,需要與事件結合使用,與同步相比速度慢但準確性高。同步讀寫數據簡單,直接使用OPCItem的方法即可。
    Dim One As OPCItem
    Dim Index As Long  
    ‘Index為標簽順序號
    Dim OneRead As String
    Dim Xie As String     
    Set One = MyOPCGroup.OPCItems(Index)
    One.Read OPCCache
    OneRead = One.Value  

    [NextPage]
    ‘讀數據
    One.Write (Xie) 
    ‘寫數據
    若只讀取數據,可以使用DataChange事件,當控制器中所要訪問的數據一旦發生改變時將會觸發該事件,并將該數據自動讀到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)
    ‘自動刷新數據
    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)) 
    ‘獲取項的品質
    Next i
    End Sub
    (5) 斷開OPC服務器
    MyOPCServer.OPCGroups.RemoveAll  
    ‘移除所有OPC Group,空出資源
    Set MyOPCGroup = Nothing 
    MyOPCServer.Disconnect 
    ‘斷開連接

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

    圖1     OPC客戶端設置界面

    版權聲明PLC信息網轉載作品均注明出處,本網未注明出處和轉載的,是出于傳遞更多信息之目的,并不意味 著贊同其觀點或證實其內容的真實性。如轉載作品侵犯作者署名權,或有其他諸如版權、肖像權、知識產權等方面的傷害,并非本網故意為之,在接到相關權利人通知后將立即加以更正。聯系電話:0571-87774297。
0571-87774297  
主站蜘蛛池模板: 亚洲自拍欧美另类| 日本亚洲欧洲精品| 国产精品欧美风情| 色综合久综合久久综合久鬼88| 国产欧美日本在线| 国产在线视频91| 国产精品一区二区av| 国产免费一区| 99精品视频在线看| 亚洲综合视频一区| 人妻少妇精品无码专区二区| 日本一区二区视频| 欧美激情久久久久久| 久久精品国产精品亚洲| 国产在线拍揄自揄视频不卡99| 久久国产精品亚洲va麻豆| 免费国产成人av| www.日韩免费| 欧美日韩免费观看一区| 久久精品视频在线观看| 激情综合网婷婷| 91精品国产亚洲| 青青青青在线视频| 国产狼人综合免费视频| 亚洲日本一区二区三区在线不卡| 日本一区视频在线播放| 久久久久久国产精品美女| 国产精品视频中文字幕91| 在线丝袜欧美日韩制服| 久久亚洲a v| 国产精品视频白浆免费视频| 懂色av一区二区三区四区五区| 日韩在线视频二区| 国产精品视频区1| 日韩久久一级片| 国产精品99久久久久久久久久久久| 亚洲xxxx在线| zzjj国产精品一区二区| 欧美激情精品久久久久久黑人| 成人国产精品久久久| 久久精品国产亚洲精品2020|