在 WPF 文本框中读取 PLC 数据

要在 WPF 中读取 PLC 数据,您需要使用 PLC 通信库来建立通信。以下是使用 Opc.UaFx 库读取 PLC 数据的基本步骤:

  1. 安装 Opc.UaFx 库: 您可以使用 NuGet 包管理器或手动安装 Opc.UaFx 库。

  2. 建立连接: 使用 Opc.UaFx.Client.Connect 方法建立与 PLC 的连接。

var client = new Opc.UaFx.Client.OpcClient();
client.Connect('opc.tcp://localhost:4840');
  1. 创建数据订阅: 使用 Opc.UaFx.Client.Subscription 方法创建订阅。您需要指定订阅的名称和刷新频率。
var subscription = new Opc.UaFx.Client.Subscription('MySubscription', 1000);
client.AddSubscription(subscription);
  1. 添加数据项: 使用 Opc.UaFx.Client.MonitoredItem 方法添加数据项。您需要指定项的名称、地址和数据类型。
var item = new Opc.UaFx.Client.MonitoredItem('MyItem', 'ns=2;s=Random.Int32', Opc.UaFx.DataType.Int32);
subscription.AddItem(item);
  1. 处理数据更新事件: 订阅的数据更新事件将在数据更新时触发。您可以使用 Opc.UaFx.Client.MonitoredItemNotificationEventArgs.DataValue 属性获取新值。
subscription.ItemChanged += (sender, e) => {
    if (e.Item.Value != null) {
        Console.WriteLine('{0}: {1}', e.Item.DisplayName, e.Item.Value);
    }
};
  1. 断开连接: 使用 Opc.UaFx.Client.Disconnect 方法关闭与 PLC 的连接。
client.Disconnect();

一旦您可以成功读取 PLC 数据,您可以将其显示在 WPF 文本框中。您可以绑定文本框的文本属性到一个属性,该属性将在数据更新时更新。以下是在 WPF 中显示 PLC 数据的基本步骤:

  1. 创建 ViewModel 类: 创建一个类来保存 PLC 数据和处理数据更新事件。请确保您的类实现了 INotifyPropertyChanged 接口。
public class MyViewModel : INotifyPropertyChanged {
    private int myValue;
    public int MyValue {
        get { return myValue; }
        set {
            myValue = value;
            OnPropertyChanged('MyValue');
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName) {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}
  1. 绑定文本框: 在 XAML 中,使用 Binding 元素将文本框的文本属性绑定到 ViewModel 类中的属性。
<TextBox Text="{Binding Path=MyValue}" />
  1. 创建 ViewModel 实例: 在窗口的构造函数中创建 ViewModel 类的实例,并将其设置为 DataContext。
public MainWindow() {
    InitializeComponent();
    DataContext = new MyViewModel();
}
  1. 处理数据更新事件: 在 ViewModel 类中处理数据更新事件,更新 MyValue 属性的值。
subscription.ItemChanged += (sender, e) => {
    if (e.Item.Value != null) {
        MyValue = (int)e.Item.Value;
    }
};
WPF 文本框读取 PLC 数据 - 使用 Opc.UaFx 库

原文地址: https://www.cveoy.top/t/topic/nEBC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录