工業(yè)通信OPC協(xié)議的內容術(shù)語(yǔ)介紹和使用
OPC是一種利用微軟的COM/DCOM技術(shù)來(lái)達成自動(dòng)化控制的協(xié)定,
采用典型的C/S模式,
針對硬件設備的驅動(dòng)程序由硬件廠(chǎng)商完成,提供統一OPC接口標準的Server程序,
軟件廠(chǎng)商只需按照OPC標準接口編寫(xiě)Client程序就訪(fǎng)問(wèn)Server程序進(jìn)行讀寫(xiě),即可實(shí)現與硬件設備的通信。
OPC協(xié)定包括:
DA(Data Access)規范:訪(fǎng)問(wèn)數據主要采用該規范
A&E(Alarm and Event)規范:基于事件,提供Client端訂閱,事件觸發(fā)后Server端主動(dòng)提交回數據的數據訪(fǎng)問(wèn)方式。
HDA(History data access)規范
OPC XML-DA規范
2 OPC UAOPC UA(Unified Architecture):OPC協(xié)定的新版,
不再拘束于COM/DCOM技術(shù),意味著(zhù)不再像傳統的(Classic)OPC協(xié)定那樣僅支持在Windows等平臺上使用,具有跨平臺性,同時(shí)OPC UA也使用了可靠的通信機制,接口簡(jiǎn)單一致。
比如:對傳統的三種不同類(lèi)型OPC服務(wù)器的訪(fǎng)問(wèn) - 數據訪(fǎng)問(wèn)(DA)、報警和事件(AE)、歷史數據訪(fǎng)問(wèn)(HDA),
要獲得一個(gè)溫度傳感器的當前值、一個(gè)高溫度事件和溫度的歷史平均值,要依次使用不同的命令執行;
而使用OPC UA,僅用一個(gè)組件就非常容易地完成了。配置和工程的時(shí)間也因此可以大大縮短。
3 OPC邏輯對象模型
包括3類(lèi)對象:OPC server對象、OPC group對象、OPC item對象,每類(lèi)對象都包括一系列接口。
OPC Server對象:
主要功能:
創(chuàng )建和管理OPC Group對象;
管理服務(wù)器內部的狀態(tài)信息。
OPC Group對象:
主要功能:
管理OPC Group對象的內部狀態(tài)信息;
創(chuàng )建和管理Items對象;
OPC服務(wù)器內部的實(shí)時(shí)數據存取服務(wù)(同步與異步方式)。
屬性:
name:組的名字,由客戶(hù)端自己定義。
active:組的激活狀態(tài),如果為false則組內全部Item將不再從數據源取數據,在客戶(hù)端中的表現是讀取不到數據,同時(shí)寫(xiě)數據也影響不到服務(wù)器端。
update rate:服務(wù)器向客戶(hù)端提交變化數據的更新速率(這個(gè)數值應比服務(wù)器設定的最小值大)。
Percent Dead band:數據死區,即能引起數據變化的最小數值百分比。
OPC Item對象:
主要功能:
用來(lái)描述實(shí)時(shí)數據,代表了與服務(wù)器數據源的連接,而不是數據源。
一個(gè)項不能被OPC客戶(hù)端訪(fǎng)問(wèn),因此在OPC規范中沒(méi)有對應于項的COM接口,所有對項的訪(fǎng)問(wèn)都需要通過(guò)OPC Group對象來(lái)實(shí)現。
屬性:
name:項的名稱(chēng),在服務(wù)器對應于Item ID。
active:項的激活狀態(tài)。
value:項的數據值。
quality:項的品質(zhì),代表數值的可信度。
Timestamp:時(shí)間戳,代表數據的存取時(shí)間。
注:
1.Item的存儲類(lèi)型————VARIANT(編寫(xiě)程序時(shí)使用的主要也是它)
2.Item的數據類(lèi)型(VARTYPE):
3.Item的Alias:項的別名,由服務(wù)器設置,避免了項名稱(chēng)過(guò)長(cháng)所帶來(lái)的麻煩。
4.Group類(lèi)型:公共組和私有組。公共組由多個(gè)客戶(hù)共享,私有組只屬于某一OPC客戶(hù)。公共組對連接到服務(wù)器的所有客戶(hù)都有效,而私有組只能對建立它的客戶(hù)程序有效。(大多服務(wù)器未實(shí)現有公共組)
5.Item在服務(wù)器端定義,對應于硬件實(shí)際地址,客戶(hù)端連接服務(wù)器端后創(chuàng )建并添加OPC Group,并創(chuàng )建一系列OPC Item(連接到服務(wù)器端定義的Item),將邏輯上等價(jià)的一組OPC Item添加到OPC Group中才能通過(guò)組對象來(lái)對數據進(jìn)行存取操作。
4 OPC通信:
同步通信:OPC客戶(hù)端對OPC服務(wù)端進(jìn)行讀取操作時(shí),OPC客戶(hù)端必須等到OPC服務(wù)器端完成對應操作后才能返回,在此期間OPC客戶(hù)端處于一直等待的狀態(tài)。
異步通信:OPC客戶(hù)端對OPC服務(wù)器端進(jìn)行讀取操作時(shí),OPC客戶(hù)端發(fā)送請求后立即返回,不用等待服務(wù)器端,當OPC服務(wù)器端完成操作后再通知客戶(hù)端程序。
訂閱:需要服務(wù)器端支持OPC A&E規范,由客戶(hù)端設定數據的變化限度,如果數據源的實(shí)時(shí)數據變化超過(guò)了該限度,服務(wù)器則通過(guò)回調返回數據給客戶(hù)端。
5 OPC客戶(hù)端開(kāi)發(fā)大致步驟COM組件初始化;
創(chuàng )建服務(wù)器Server對象;
創(chuàng )建組Group對象;
創(chuàng )建項Item對象;
添加Item到Group中;
添加Group到Server對象中;
連接服務(wù)器(這里的順序與具體實(shí)現有關(guān)),完成相應操作;
COM組件關(guān)閉
6 使用VFbox網(wǎng)關(guān)把opc轉換modbus協(xié)議的方案
在實(shí)際的工程項目中,經(jīng)常會(huì )遇到需要把OPC UA DA的協(xié)議轉換成其他協(xié)議,比如modbus,profinet等。有時(shí)也需要把modbus轉成OPC UA DA接入到OPC UA DA系統,這時(shí)候就需要使用協(xié)議轉換網(wǎng)關(guān)進(jìn)行轉換。如下圖所示,使用vfbox網(wǎng)關(guān),把modbus協(xié)議轉換成OPC UA DA協(xié)議。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。