OPC基金會的官方OPC UA .NET標準堆棧
概述
此OPC UA參考實現針對.NET標準規範。
.NET標准允許開發在當今可用的所有常見平台上運行的應用程序,包括Linux,iOS,Android(通過Xamarin)和Windows 7/8/8.1/10/11(包括嵌入式/IoT版),而無需進行平台特定修改。
該項目中的參考實現之一已通過OPC基金會認證測試實驗室獲得合規性認證,以證明其高質量。修復和增強功能以來,使用最新合規測試工具(CTT)對認證過程進行了測試和驗證以合規性。
此外,還支持雲應用程序和服務(例如ASP.NET,DNX,Azure網站,Azure WebJobs,Azure Nano Server和Azure Service Fabric)。
可以在OPC UA .NET標準樣本存儲庫中找到基於官方Nuget軟件包的更多示例。為了開發,還有一個預覽Nuget Feed。對於本地測試,參考服務器的Docker容器可用於預覽和發布構建。
有關更多信息和許可條款,請參見此處。
包括功能
核心和庫
- 完全移植的Core OPC UA堆棧和庫(客戶端,服務器,配置,複雜類型和GDS組件)。
- 參考示例服務器和客戶端。
- X.509客戶和服務器身份驗證的證書支持。
- SHA-2支持(直至SHA512),包括安全配置文件BASIC 256SHA256,AES128SHA256RSAOAEEP和AES256SHA256RSAPSS,用於具有較高安全需求的配置。
- 匿名,用戶名和X.509證書用戶身份驗證。
- UA-TCP和HTTPS傳輸(客戶端和服務器)。
- UA-TCP傳輸(客戶端和服務器)的反向連接。
- 文件夾&OS級別(X509Store)證書存儲帶有全局發現服務器和服務器推送支持。
- 會議和訂閱。
- 帶有樣品的PubSub庫。
OPC UA 1.05中的關鍵功能和更新
- 安全增強:改進的加密和身份驗證機制。
- CRL支持:添加了Windows上X509Store的證書撤銷列表支持。
- 性能改進:更快的二進制編碼和解碼,減少內存使用和延遲。
- 基於角色的管理:支持眾所周知的和績效持續性的良好性和著名的命令性。
- 改進的日誌記錄:通過
ILogger
和EventSource
增強了日誌記錄。
從1.04升級到1.05時打破變化並抬頭
- 仍然缺少一些功能以完全符合1.05(例如ECC支持),但是對於1.05版本,仍然可以使用V1.04的認證。
- 線程安全性和鎖定:提高線程安全性並減少了安全通道操作中的鎖定。
- 審核和修訂:用於審核和編輯敏感信息的新接口。
新的1.05.374.70
新的1.05.373
新的1.04.368
- 改善了對
ILogger
和EventSource
登錄的支持。 - 支持具有重構
ICertificateStore
和CertificateStoreType
接口的自定義證書存儲。 - 客戶和服務器支持TransFersubscript。
- 如何在參考服務器中使用容器支持。
樣品和nuget軟件包
- .NET Core的OPC UA控制台參考服務器。最新版本的Linux容器可在此處找到。另請參閱容器支持。
- OPC UA參考服務器已通過OPC基金會認證測試實驗室獲得合規性認證。修復和增強功能以來,使用合規性測試工具(CTT)對認證過程進行了測試和驗證。所有版本均經過維護者的最新官方合規測試工具驗證。
- .NET Core和.NET Framework的OPC UA控制台參考發布者和控制台參考訂戶。
- 核心,客戶端,服務器和配置庫的官方OPC UA Nuget軟件包可在.NET項目中集成。注意:該軟件包已分為核心,客戶端和服務器軟件包,以減少僅需要客戶端或服務器的項目的依賴項。 HTTPS綁定現在是單獨的可選包。
- 可以從Azure Devops獲得預覽Nuget feed。
項目信息
一般項目信息
建立狀態
代碼質量
入門
.NET標準所需的所有工具都帶有.NET核心工具。請參閱從.NET核心開始的開始。
如何在Windows上的Visual Studio中構建和運行參考樣本
注意:由於.NET Core 2.1是生命的終結,
- VS 2017對.NET 4.8的支持只有有限的支持。
- VS 2019僅對.NET 4.8的支持僅限,因為.NET Core 3.1達到了生命的終結。
- VS 2022是當前支持的版本,包括.NET 6.0(LTS)和.NET 8.0(LTS)。
- 使用Visual Studio打開UA Reference.sln解決方案文件。
- 在解決方案資源管理器中選擇一個項目,然後用右鍵單擊作為
Startup Project
進行設置。 - 點擊
F5
來構建並執行樣本。
如何在Windows,Linux和iOS上構建和運行控制台樣本
本節介紹瞭如何運行ConsolereFerenceServer樣本應用程序。
請遵循本文中的說明,為您的平台設置dotnet命令行環境。截至今天,Visual Studio 2019所需的.NET Core SDK 3.1和Visual Studio 2022所需的.NET SDK 6.0。
先決條件
- 一旦
dotnet
命令可用,請導航到您的存儲庫本地副本中的根文件夾,然後執行dotnet restore 'UA Reference.sln'
。該命令打電話到Nuget來恢復依賴樹。
啟動服務器
- 打開命令提示。
- 導航到文件夾應用程序/ConsolereFerenceServer 。
- 運行服務器樣本類型
dotnet run --project ConsoleReferenceServer.csproj -a
。
評論
樣本申請的自簽名證書
OPC UA的所有必需的應用程序證書都是在每個應用程序或OS級證書存儲中的第一個啟動時創建的,並一直使用直至從商店刪除。請閱讀證書以獲取有關證書和商店的更多信息
本地發現服務器
默認情況下,所有示例應用程序均配置為向本地發現服務器(LDS)註冊。可以在此處下載用於Windows的LDS的參考實現。要與LDS設置信任,需要交換證書或註冊將失敗。
貢獻
我們強烈鼓勵社區參與和對該項目的貢獻。首先,請提供存儲庫,並在那裡進行更改。一旦對您的更改感到滿意,您就可以生成“拉動請求”。
您必須同意貢獻者許可協議,然後才能接受您的更改。執行拉動請求時,CLA和“我同意”按鈕將自動顯示。您可以在這裡預覽CLA。