opc.ua在NET6.0的使用

📅 2026/7/5 15:20:25 👁️ 阅读次数 📝 编程学习
opc.ua在NET6.0的使用

文章目录

  • 引入nuget包 OpcUaHelper
  • 连接OPC.UA服务器
  • 读取点位
  • 写入点位

引入nuget包 OpcUaHelper

安装nuget包 OpcUaHelper (2.2.1),安装完成后,显示8个可传递包

连接OPC.UA服务器

privatereadonlystring_endpointUrl="opc.tcp://ip:端口号,默认49320";// 替换为OPC UA的用户名privatereadonlystring_username="";// 替换为OPC UA的密码privatereadonlystring_password="";OpcUaClientopcUaClient=newOpcUaClient();privateasyncvoidConnectBtn_Click(objectsender,EventArgse){opcUaClient.UserIdentity=newUserIdentity(_username,_password);awaitopcUaClient.ConnectServer(_endpointUrl);varflag=opcUaClient.Connected;if(flag){MessageBox.Show("连接成功");}else{MessageBox.Show("连接失败");}}

读取点位

一般为读取方便起见,默认数据类型是string

privateasyncvoidReadBtn_Click(objectsender,EventArgse){if(opcUaClient.Connected){// 注意:点位开头是"ns=2;s=",如果不是会报错stringvalue=awaitopcUaClient.ReadNodeAsync<string>(TagTxt.Text.Trim());ValueLbl.Text=value;}}

写入点位

privateasyncvoidWriteBtn_Click(objectsender,EventArgse){if(opcUaClient.Connected){ushortvalueToWrite=ushort.Parse(WriteValueTxt.Text.Trim());// 注意:点位开头是"ns=2;s=",如果不是会报错varflag=awaitopcUaClient.WriteNodeAsync<ushort>(TagTxt.Text.Trim(),valueToWrite);if(flag){MessageBox.Show("写入成功");}else{MessageBox.Show("写入失败");}}}