WPF 文本框读取 PLC 数据 - 使用 Opc.UaFx 库
在 WPF 文本框中读取 PLC 数据
要在 WPF 中读取 PLC 数据,您需要使用 PLC 通信库来建立通信。以下是使用 Opc.UaFx 库读取 PLC 数据的基本步骤:
-
安装 Opc.UaFx 库: 您可以使用 NuGet 包管理器或手动安装 Opc.UaFx 库。
-
建立连接: 使用
Opc.UaFx.Client.Connect方法建立与 PLC 的连接。
var client = new Opc.UaFx.Client.OpcClient();
client.Connect('opc.tcp://localhost:4840');
- 创建数据订阅: 使用
Opc.UaFx.Client.Subscription方法创建订阅。您需要指定订阅的名称和刷新频率。
var subscription = new Opc.UaFx.Client.Subscription('MySubscription', 1000);
client.AddSubscription(subscription);
- 添加数据项: 使用
Opc.UaFx.Client.MonitoredItem方法添加数据项。您需要指定项的名称、地址和数据类型。
var item = new Opc.UaFx.Client.MonitoredItem('MyItem', 'ns=2;s=Random.Int32', Opc.UaFx.DataType.Int32);
subscription.AddItem(item);
- 处理数据更新事件: 订阅的数据更新事件将在数据更新时触发。您可以使用
Opc.UaFx.Client.MonitoredItemNotificationEventArgs.DataValue属性获取新值。
subscription.ItemChanged += (sender, e) => {
if (e.Item.Value != null) {
Console.WriteLine('{0}: {1}', e.Item.DisplayName, e.Item.Value);
}
};
- 断开连接: 使用
Opc.UaFx.Client.Disconnect方法关闭与 PLC 的连接。
client.Disconnect();
一旦您可以成功读取 PLC 数据,您可以将其显示在 WPF 文本框中。您可以绑定文本框的文本属性到一个属性,该属性将在数据更新时更新。以下是在 WPF 中显示 PLC 数据的基本步骤:
- 创建 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));
}
}
- 绑定文本框: 在 XAML 中,使用
Binding元素将文本框的文本属性绑定到 ViewModel 类中的属性。
<TextBox Text="{Binding Path=MyValue}" />
- 创建 ViewModel 实例: 在窗口的构造函数中创建 ViewModel 类的实例,并将其设置为
DataContext。
public MainWindow() {
InitializeComponent();
DataContext = new MyViewModel();
}
- 处理数据更新事件: 在 ViewModel 类中处理数据更新事件,更新
MyValue属性的值。
subscription.ItemChanged += (sender, e) => {
if (e.Item.Value != null) {
MyValue = (int)e.Item.Value;
}
};
原文地址: https://www.cveoy.top/t/topic/nEBC 著作权归作者所有。请勿转载和采集!