91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

OPC UA C#的訂閱與發布模式

c#
小樊
83
2024-08-08 22:26:40
欄目: 編程語言

在OPC UA中,訂閱與發布模式是一種常用的通信模式,用于在客戶端和服務器之間實現實時數據傳輸。下面是一個簡單的示例,演示如何在C#中使用OPC UA庫實現訂閱與發布模式:

  1. 首先,需要引用OPC UA庫。可以通過NuGet包管理器安裝"Opc.Ua"庫。

  2. 創建一個OPC UA客戶端,并連接到OPC UA服務器:

using Opc.Ua;
using Opc.Ua.Client;

Uri serverUri = new Uri("opc.tcp://localhost:4840");
var endpoint = new ConfiguredEndpoint(null, new EndpointDescription(serverUri));
var session = Session.Create(null, endpoint, false, "OPC UA Client", 60000, new UserIdentity(new AnonymousIdentityToken()), null).Result;
session.ReturnDiagnostics = DiagnosticsMasks.All;
  1. 創建一個訂閱對象,并添加訂閱回調函數:
var subscription = new Subscription(session.DefaultSubscription) { PublishingInterval = 1000 };
subscription.Create();
subscription.AddItems(new MonitoredItem(new ReadValueId { NodeId = "ns=2;i=1", AttributeId = Attributes.Value }, MonitoringMode.Reporting, new MonitoringParameters { ClientHandle = 1, QueueSize = 1, DiscardOldest = true }));
subscription.AddItems(new MonitoredItem(new ReadValueId { NodeId = "ns=2;i=2", AttributeId = Attributes.Value }, MonitoringMode.Reporting, new MonitoringParameters { ClientHandle = 2, QueueSize = 1, DiscardOldest = true }));

subscription.Notification += (sender, args) =>
{
    foreach (var notification in args.MonitoredItems)
    {
        Console.WriteLine($"Node: {notification.StartNodeId} Value: {notification.Value}");
    }
};
  1. 啟動訂閱,并等待數據更新:
subscription.ApplyChanges();
subscription.SetPublishingMode(true);
session.KeepAlive += (sender, args) => session.KeepAlive();

通過以上步驟,我們實現了一個簡單的OPC UA訂閱與發布模式的示例。在實際應用中,可以根據需求添加更多訂閱項和處理邏輯。

0
鲁甸县| 崇明县| 兴化市| 岳池县| 郴州市| 永定县| 岗巴县| 沁阳市| 四子王旗| 呈贡县| 嘉定区| 怀化市| 府谷县| 高碑店市| 肇庆市| 乐都县| 湟源县| 宝清县| 赣榆县| 资中县| 托克逊县| 东丽区| 正定县| 安多县| 宁明县| 冷水江市| 封开县| 龙山县| 婺源县| 二连浩特市| 新竹市| 中牟县| 太原市| 武冈市| 赤城县| 信宜市| 泽州县| 福安市| 藁城市| 衢州市| 武威市|