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。