C#快速开发OPCUA服务器

为方便演示,此时创建一个控制台应用程序。第三方dll(C++编写的库opcsrv.dll,他人实现)。

拷贝dll到运行目录下:

 拷贝二次封装后的文件到项目目录下:

 第一步:创建OpcUa服务器

//第一步:创建OpcUa服务器
OPCSrv.CreateResult = OPCSrv.OpcsrvCreate("OPC_UA_Server", 62548);
Console.WriteLine("OpcsrvCreate" + (OPCSrv.CreateResult ? "成功!" : "失败!"));

第二步:创建标签

//第二步:创建标签
OPCSrv.OPCSrvConfig config = new OPCSrv.OPCSrvConfig()
{
    TagName = "OPCUA.Temp", //标签名称
    DataType = "float", //数据类型
    Access = "r" //访问权限
};

第三步:运行OpcUa服务器

//第三步:运行OpcUa服务器
OPCSrv.RunResult = OPCSrv.OpcsrvRun();
Console.WriteLine("OpcsrvRun" + (OPCSrv.RunResult ? "成功!" : "失败!"));

整体实现代码如下:

运行成功:

 使用客户端工具进行查看:

使用匿名方式登录:

 

上述步骤忘记添加了变量,补充如下:

 

 加入定时更新数据功能:

更新成功:

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
当使用C#编写一个OPCUA服务器时,你可以使用OPCUA库来简化开发过程。以下是一个简单的示例: 首先,你需要在项目中引用OPCUA库。你可以通过NuGet包管理器搜索并安装OPCUA库。 接下来,在你的代码中添加必要的命名空间引用: ```csharp using Opc.Ua; using Opc.Ua.Server; ``` 然后,创建一个类来实现OPCUA服务器: ```csharp public class OpcuaServer : StandardServer { public OpcuaServer() { // 设置服务器的名称 this.ServerName = "MyOPCUAServer"; // 添加你的自定义节点管理器 this.AddNodeManager(new YourNodeManager()); } protected override void Dispose(bool disposing) { // 在释放服务器之前执行清理操作 base.Dispose(disposing); } } public class YourNodeManager : CustomNodeManager2 { public YourNodeManager() : base(new YourNamespaceTable()) { // 添加你的自定义节点 // AddNode方法用于添加节点到OPCUA服务器 // 在这里添加你的节点 // 示例代码: // 添加一个Object节点 var objectNode = new MyObjectNode(); this.AddNode(objectNode); // 添加一个Variable节点 var variableNode = new MyVariableNode(); variableNode.Value = new Variant(0); this.AddNode(variableNode); } } public class MyObjectNode : BaseObjectState { public MyObjectNode() { // 设置节点的属性 this.DisplayName = "MyObject"; } } public class MyVariableNode : BaseDataVariableState { public MyVariableNode() { // 设置节点的属性 this.DisplayName = "MyVariable"; this.TypeDefinitionId = VariableTypeIds.Int32; } } ``` 最后,在你的应用程序的入口点创建并启动OPCUA服务器: ```csharp class Program { static void Main(string[] args) { // 创建OPCUA服务器实例 var server = new OpcuaServer(); // 启动服务器 server.Start(); Console.WriteLine("OPCUA server started. Press Enter to exit."); Console.ReadLine(); // 停止服务器 server.Stop(); } } ``` 这是一个基本的OPCUA服务器示例,你可以根据你的需求进行扩展和修改。希望对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荒先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值