1. 程式人生 > >KepServer作為OPC UA伺服器以及建立OPC UA客戶端

KepServer作為OPC UA伺服器以及建立OPC UA客戶端

PS:KepServer如何連線PLC請看我其他部落格內容。
初次嘗試的時候一步步操作即可,可以不看附帶的官方介紹,詳細瞭解的可以看下

一、配置OPC UA伺服器

OPC UA 官方介紹:

OPC統一體系結構(UA)是OPC基金會在幾十個成員組織的幫助下建立的一個開放標準。雖然UA打算提供一個平臺獨立的互操作性標準(為了擺脫Microsoft COM),但它並不是OPC資料訪問(DA)技術的替代品。對於大多數工業應用程式,UA將補充或增強現有的DA架構。它不會是一個全系統的替代。OPC UA以以下方式補充OPC DA基礎設施:

  • 它提供了一種不依賴於Microsoft DCOM的客戶機到伺服器連線的安全方法,並且能夠通過防火牆和VPN連線安全地連線。對於在域上的企業網路(防火牆內)中連線到遠端計算機的使用者,OPC DA和DCOM連線可能是令人滿意的。
  • 它提供了一種將工廠層資料共享給業務系統(從車間到頂層)的額外方式。OPC UA可以將來自多個OPC DA源的資料聚合到非工業系統中。

對於大多數使用者應用程式,UA標準最相關的元件如下:

  • 通過客戶端和伺服器端點的可信證書進行安全連線。
  • 健壯的專案訂閱模型,提供客戶端和伺服器之間的高效資料更新。從參與的UA伺服器發現可用資訊的增強方法。

OPC UA配置管理器:
OPC UA配置管理器幫助使用者管理UA伺服器配置設定。OPC UA的安全性要求所有參與UA通訊的端點都通過安全連線進行此操作。為了滿足這個安全要求,每個UA伺服器例項和UA客戶機例項必須提供可信的證書來標識自己。這些證書可以自簽名。因此,在嘗試任何安全的UA客戶機/伺服器連線之前,必須由具有管理員許可權的使用者將它們新增到伺服器和客戶機節點上的本地可信證書儲存區。OPC UA配置管理器是一個使用者友好的介面,通過它可以執行證書交換。

1、KepServer連線PLC後即可作為OPC DA伺服器了,當然UA伺服器也可以用了,下面介紹一下如何對UA進行相應設定,UA的設定在Administrator中,點選過後可以看到工作列右下角有KepServer的圖示,右擊。
在這裡插入圖片描述
在這裡插入圖片描述

二、OPC UA Client Driver

官方簡介

  • OPC UA Client Driver 作為伺服器之間的隧道解決方案,通過 VPN 或 Internet
    連線同一網路上的兩個OPC伺服器。它支援 OPC 統一架構 (UA) 規範,一種基於 OPC 資料訪問擴充套件而來的技術。OPC UA提供了無需DCOM配置的即插即用功能,並提供了 OPC 伺服器之間的安全可靠的連線。

OPC UA Client Driver 支援連線到支援以下配置檔案的 UA 伺服器︰
(1)、Nano 嵌入式裝置伺服器配置檔案
此配置檔案適用於資源有限的晶片級裝置。由於資源限制,支援此 OPC UA 配置檔案的裝置不支援訂閱或受監視項 UA 服務。UA 伺服器僅支援無安全防護的連線。當“Device Update Mode”(裝置更新模式) 屬性設定為“Poll”(輪詢) 時,OPC UA Client Driver 與 UA 伺服器一起執行。
(2)、Micro 嵌入式裝置伺服器配置檔案
此配置檔案適用於資源有限的裝置。支援此配置檔案的 UA 伺服器至少支援兩個會話和小部分受監視項的訂閱。當“Device Update Mode”(裝置更新模式) 屬性設定為“輪詢”和“異常”時,OPC UA Client Driver與 UA 伺服器一起執行;然而,在新增通道、裝置和標記時,使用者應清楚會話、訂閱和受監視項的限制。
(3)、嵌入式 UA 伺服器配置檔案
支援此配置檔案的 UA 伺服器應等同於安全性更高的 Micro 嵌入式裝置伺服器配置檔案。當“Device Update Mode”(裝置更新模式) 屬性設定為“輪詢”和“異常”時,OPC UA Client 驅動程式與 UA 伺服器一起執行;然而,在新增通道、裝置和標記時,使用者應清楚會話、訂閱和受監視項的限制。
(4)、標準伺服器
支援標準伺服器配置檔案的 UA 伺服器支援多個會話、訂閱和受監視項。當“Device Update Mode”(裝置更新模式) 屬性設定為“Poll”(輪詢) 和“異常”時,OPC UA Client Driver與 UA 伺服器一起執行。

OPC UA Client Driver圖示:
OPC UA Client Driver可在兩個 OPC 伺服器間建立隧道。例如,假設要在 OPC 伺服器 A 和 OPC 伺服器 B 之間建立隧道,使用者可在 PC 伺服器 B 上建立OPC UA Client Driver通道,並配置該通道為連線到執行在 OPC 伺服器 A 的 OPC UA 伺服器介面上。一旦“資料客戶端”連線到 OPC 伺服器 B,則兩個 OPC 伺服器之間即存在隧道。儘管資料客戶端可能無法獨立從 OPC 伺服器 A 接收資料,但它可在驅動程式幫助下接收資料。
在這裡插入圖片描述
通道和裝置的最大數量:
此驅動程式支援的最大通道數量為 128。此驅動程式所支援裝置的最大數量為每通道 256 個。

1、新建OPC UA Client Driver通道
在這裡插入圖片描述
自定義通道名:
在這裡插入圖片描述
點選下一步:
在這裡插入圖片描述
根據連線UA伺服器進行設定:
在這裡插入圖片描述
端點 URL:UA伺服器網址,共由3部分組成,一般裝置商會直接提供。
安全策略這個設定要注意一下,一定要和UA伺服器匹配,不然沒發對裝置進行讀寫,遇到過的大部分裝置商安全策略都是無,這個根據UA伺服器進行設定即可。
下面是官方設定資料:
“端點 URL”(Endpoint URL):此屬性用於指定端點的 URL。每個端點都有唯一的 URL。要查詢 URL,請單擊 … 以呼叫 OPC UA 伺服器瀏覽器。瀏覽器將返回選定端點的 URL、安全策略和訊息模式。

注意︰當跨 Internet 或多個域進行連線時,無法瀏覽 OPC UA 端點。對於遠端連線,必須手動輸入端點。要執行此操作,使用者需要端點型別 (“opc.tcp”)、端點主機名稱 (IP 地址、URL 或 DSN) 和端點的埠號。
“安全策略”(Security Policy):此屬性指定端點的安全策略。有三個選項:Basic128Rsa15、Basic256 和“無”。預設值為 Basic256。當選擇其他選項時,連線需要OPC UA Client Driver和 UA 伺服器交換證書。有關詳細資訊,請參閱證書模型。

“訊息模式”(Message Mode):此屬性指定當在驅動程式和伺服器之間傳送訊息時,所使用的的加密模式。有三個選項:“無”、“簽名”和“簽名與加密”。預設值為“簽名”。選項說明如下:

“無”:此模式最不安全,但是最快。
“簽名”:此模式更安全,但會降低通訊速度。使用時,校驗和新增到末尾訊息以確保內容到達清晰而不變。
SignAndEncrypt:此模式更安全,但會降低通訊速度。使用時,使用安全策略中所選的加密方法已加密的校驗和新增到訊息以確保內容到達清晰而不變的結尾。
注意︰ u 某個端點支援對安全策略和訊息模式。例如,伺服器可能支援安全策略“無”和訊息模式“無”,以形成“無,無”配對。同樣,端點可能支援 “Basic128Rsa15, SignAndEncrypt” 配對。配置安全策略和訊息模式時,請確保 UA 端點支援該配對。

直接下一步(可根據專案需求進行設定):
在這裡插入圖片描述
官方介紹:
“連線超時”(Connection Timeout):指定在發出連線呼叫後,通道等待成功連線的最長時間。短超時使應用程式響應更快;長超時使通道更容易連線。有效範圍為 1 到 30。預設值為 30 秒。

“空閒會話超時”(Idle Session Timeout):指定在無活動時會話保持開啟狀態的最多分鐘數。如果客戶端無法在此時間間隔內發出請求,伺服器將自動終止連線。有效範圍為 1 到 20。預設值為 20 分鐘。

“通道更新間隔”(Channel Renewal Interval):指定兩次通道更新的時間間隔,單位為分鐘。驅動程式會在該時間消耗 75% 後更新通道安全性。減小該時間間隔可使通道/連線更安全,但也可能會降低資訊的傳輸速率。有效範圍為 10 到 60。預設值為 60 分鐘。

“重新連線間隔”(Reconnect Interval):指定通道連線失敗或斷開連線的情況下嘗試重新連線的速率。有效範圍為 5 到 600。預設值為 5 秒。連線嘗試的間隔至少應是“重新連線間隔”指定的速率,但是如果“連線超時”間隔比“重新連線間隔”長,則連線嘗試的間隔可能會更長。

“監視器間隔”:指定通道讀取遠端“伺服器狀態”節點以更新伺服器的速率,以及該讀取的超時時間。此讀取結果可用於:

讀取失敗或超時後開始嘗試重新連線
處理伺服器正在關機的情況。

注意: 如果通道確定由於監視器讀取失敗導致其已斷開連線,則將在嘗試重新連線前等待“重新連線間隔”中設定的時長。重新連線嘗試期間使用的超時值是由“連線超時”屬性指定的。
檢視通道屬相,確認無誤後點擊完成:
在這裡插入圖片描述
自定義裝置名,新增裝置:
在這裡插入圖片描述
直接下一步:
在這裡插入圖片描述
官方介紹:
“掃描模式”為需要裝置通訊的標記指定預訂客戶端請求的掃描速率。同步和非同步裝置的讀取和寫入會盡快處理;不受“掃描模式”屬性的影響。

“掃描模式”(Scan Mode):為傳送到預訂客戶端的更新指定在裝置中掃描標記的方式。選項說明如下:

“遵循客戶端指定的掃描速率”(Respect Client-Specified Scan Rate):此模式可使用客戶端請求的掃描速率。
“不超過掃描速率請求資料”(Request Data No Faster than Scan Rate):此模式可指定要使用的最大掃描速率。有效範圍為 10 至 99999990 毫秒。預設值為 1000 毫秒。
注意:當伺服器有活動的客戶端和裝置項且掃描速率值有所提高時,更改會立即生效。當掃描速率值減小時,只有所有客戶端應用程式都斷開連線,更改才會生效。
“以掃描速率請求所有資料”(Request All Data at Scan Rate):此模式將以預訂客戶端的指定速率強制掃描標記。有效範圍為 10 至 99999990 毫秒。預設值為 1000 毫秒。

“不掃描,僅按需求輪詢”(Do Not Scan, Demand Poll Only):此模式不會定期輪詢屬於裝置的標籤,也不會在一個項變為活動狀態後為獲得項的初始值而執行讀取操作。客戶端負責輪詢以便更新,方法為寫入 _DemandPoll 標記或為各項發出顯式裝置讀取。有關詳細資訊,請參閱伺服器幫助中的“裝置需求輪詢”。
“遵循標籤指定的掃描速率”(Respect Tag-Specified Scan Rate):此模式將以靜態配置標記屬性中指定的速率強制掃描靜態標記。以客戶端指定的掃描速率掃描動態標記。
“來自快取的初始更新”(Initial Updates from Cache):啟用後,此選項允許伺服器為儲存 (快取) 資料的新啟用標籤參考提供第一批更新。只有新項參考共用相同的地址、掃描速率、資料型別、客戶端訪問和縮放屬性時,才能提供快取更新。裝置讀取僅用於第一個客戶端參考的初始更新。預設設定為禁用;只要客戶端啟用標記參考,伺服器就會嘗試從裝置讀取初始值。
設定訂閱引數:
在這裡插入圖片描述
官方介紹:
“訂閱”(Subscription) 組用於配置監控項接收的資料更新。
“釋出間隔”(Publishing Interval):指定驅動程式更新標記的速率 (以毫秒為單位)。如果 OPC UA 伺服器不支援該值,則連線時將對該值進行協商。有效範圍為 100 到 60000。預設值為 1000 毫秒。
“每次釋出的最大通知數”(Max. Notifications Per Publish):指定單個釋出響應過程中伺服器傳送到驅動程式的最大通知數。如果該值過低,不能足夠快的傳送標記更新,伺服器可能會刪除標記更新。值為 0 代表無限制。有效範圍為 0 到 9,999,999,999。預設值為 0。
“更新模式”(Update Mode):選擇訂閱的更新方式。有兩個選項:“例外”和 “輪詢”。在“例外”模式下,如果資料發生更改,將按照發布間隔對訂閱標記進行更新。在“輪詢”模式下,將以釋出間隔的速率對所有訂閱標記進行非同步讀取。預設值為“例外”。
“已註冊讀取/寫入”(Registered Read/Write):當訂閱“更新模式”為“輪詢”(Poll) 時,將標記註冊到 UA 伺服器可優化讀取/寫入操作。伺服器客戶端引用標記時,標記依然保持已註冊到伺服器的狀態。預設值為“已啟用”。

設定連線屬性:
在這裡插入圖片描述
官方介紹:
“連線”組用於配置訂閱超時和保持連線屬性。
“生存期計數”(Lifetime Count):用於指定在 OPC UA Client Driver 未傳送資料更新或保持連線訊息的情況下,伺服器刪除訂閱前釋出間隔可到期的次數。生存期計數越大,通訊中斷後訂閱保持執行的時間越長。有效範圍為 3 到 300。預設值為 60。
“保持連線計數”(Keep-Alive Count):用於指定傳送保持連線訊息前必須經歷的釋出間隔數。有效範圍為 1 到 10。預設值為 5。
注意:在 OPC UA Client Driver 和 UA 伺服器之間傳輸少量資料期間,“保持連線計數”越小,通訊次數就越多。而“保持連線計數”越大,上述期間內的通訊次數就越少,但這也會降低驅動程式在連線中斷時的響應能力。
“優先順序”(Priority):選擇訂閱的相對優先順序。當不止一個訂閱需要傳送通知時,OPC UA 伺服器首先發送來自最高優先順序訂閱的資料。應將無需特殊優先順序的應用程式設為最低優先順序。預設值為最低。
設定通訊引數:
在這裡插入圖片描述
官方介紹:
通訊引數配置預訂的讀/寫屬性。
請求大小

“每次可讀取的最多專案”:指定伺服器每次讀取呼叫的最多專案數。由於分組情況下讀取會更有效,因此,應儘可能提高此值以減少讀取次數。有效範圍為 1 到 4096。預設值為 512。此屬性也可用於在標記生成過程中讀取必須驗證的標記屬性,並將其匯入。

“每次可寫入的最多專案”:指定伺服器每次寫入呼叫的最多專案數。由於分組情況下寫入會更有效,因此,應儘可能提高此值以減少寫入次數。有效範圍為 1 到 512。預設值為 512。
非同步請求超時
“讀取超時”:指定伺服器針對每次讀取呼叫等待的時間 (以毫秒為單位) 。超時越短,越可能導致讀取超時。如果通訊中斷,長時間超時可能造成驅動程式響應變慢。有效範圍為 100 到 30000。預設值為 1000。
“寫入超時”:指定伺服器針對每次寫入呼叫等待的時間 (以毫秒為單位)。超時越短,越可能導致寫入超時。如果通訊中斷,長時間超時可能造成驅動程式響應變慢。有效範圍為 100 到 30000。預設值為 1000。
寫入行為
“寫入後讀取”:選取“啟用”,可在使用寫入命令後強制執行顯式讀取 (以確認新值)。選取“禁用”,可在下一次釋出或輪詢響應後進行更新。預設設定為“啟用”。
設定監控項引數:
在這裡插入圖片描述
在這裡插入圖片描述
官方介紹:
訂閱包含監控專案,也稱為標記。“監控項”組用於配置標記更新速度以及 OPC UA 伺服器如何處理標記更新。
“取樣間隔”(Sample Interval):指定監控項的最快更新速率。值為 -1 時,預設間隔為預訂的釋出間隔。值為零表示 OPC UA 伺服器應使用最快的實際速率。有效範圍為 -1 到 50000。預設值為 500 毫秒,是預設釋出間隔的一半。
注意:如果資料的更改速度比“釋出間隔”更快,則“取樣間隔”必須設定為“釋出間隔”的一半。這樣可以確保資料以釋出間隔更新。例如,如果釋出間隔為 10000 毫秒,並且資料每 100 毫秒更改一次,則取樣間隔必須至少為 5000 毫秒。這樣可以確保資料每 10000 毫秒更新一次。
“佇列大小”(Queue Size):指定 OPC UA 伺服器排隊進行訂閱的資料更新數。值為 1 將禁用排隊。值大於 1 將啟用排隊。有效範圍為 1 到 100。預設值為 1。
“放棄最早的”(Discard Oldest):指定佇列的放棄策略。啟用後,佇列中最早的通知將被丟棄,而不向驅動程式傳送。禁用後,最新通知將被丟棄,而不向驅動程式傳送。預設設定為已啟用。
注意:只有在“釋出間隔”到期之前佇列填滿時,才會丟棄通知。
“死區型別”(Deadband Type):指定要應用於資料更改的死區過濾器型別。提供三個選項:“無”、“百分比”和“絕對”。“無”會禁用死區。“百分比”僅在更改大於標記最大範圍的某一百分比時才會傳送資料更新。“絕對”將在更改大於某個指定值時傳送資料更新。有效範圍為 0 到 9,999,999,999。預設值為“無”。
“死區值”︰指定死區的值。如果將“死區型別”設為“百分比”,則此值為百分數 (如 10 = 10%)。如果將“死區型別”設為“絕對值”,則此值為精確值。有效範圍為 0 到 9,999,999,999。預設值為 0。
點選匯入專案:
在這裡插入圖片描述
瀏覽UA伺服器中的資料,選擇需要的進行匯入,完成後點選確定。
在這裡插入圖片描述
官方介紹:
匯入會啟動瀏覽器,通過該瀏覽器可以從 OPC UA 伺服器匯入標記。單擊“選擇匯入專案”(Select import items…) 啟動標記瀏覽器。
選擇要匯入的項
OPC UA 標記瀏覽器用於瀏覽連線父通道的 OPC UA 伺服器。
瀏覽”:提供表示 OPC UA 伺服器層次結構的樹結構。其中包括所有 OPC UA 伺服器標記和標記組。
“葉狀過濾器”(Leaf Filter)︰限制顯示在瀏覽樹中的項,僅顯示與過濾器匹配的項。有關語法的詳細資訊,請參閱下表。
“匯入為‘預設資料型別’”︰啟用後,匯入項的“資料型別”將設為“預設”。
陣列中的字元
字串中的匹配項

? :任意單個字元
*:無字元或多個字元
#:任意單個數字 (0-9)
[charlist] :字元列表中的任意單個字元
[!charlist] :不在字元列表中的任意單個字元
“新增項”︰將在瀏覽樹中選定的專案新增到匯入專案列表。
“新增分支”(Add Branches)︰將瀏覽樹中選定分支下的所有專案新增到匯入專案列表。
“移除項”︰從專案列表中移除選定專案。
“匯入項”︰由裝置匯入的所有專案的列表。

檢視裝置引數,確認無誤後點擊完成。

在這裡插入圖片描述
在這裡插入圖片描述
使用quickclient檢視資料
在這裡插入圖片描述