欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > golang OpcUaClient

golang OpcUaClient

2025/5/5 4:55:47 来源:https://blog.csdn.net/arno1988/article/details/145002187  浏览:    关键词:golang OpcUaClient

实现功能

复制代码

package mainimport ("fmt""log""opcuaclient/util/plugin/client/opcclient""os""os/signal""syscall"
)func main() {OPCUATest()// 监听操作系统信号,阻塞直到接收到信号quit := make(chan os.Signal, 1)signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)<-quit
}func OPCUATest() {endpoint := "opc.tcp://127.0.0.1:49320" // KepServerusername := "admin"password := "123456"nodeID := "ns=2;s=Channel1.Device1.400101"// 创建 OPC UA 客户端opcClient, err := opcclient.NewOpcUaClient("Anonymous", endpoint, username, password) // Anonymous | Accountif err != nil {log.Fatalf("Error creating client: %v", err)}defer opcClient.Close()// 连接到服务器if err := opcClient.Connect(); err != nil {fmt.Println("连接失败", err)} else {fmt.Println("连接成功")// 写入值nodeValue := uint16(333)opcClient.WriteNodeValue(nodeID, nodeValue)// 读取值status, value := opcClient.ReadNodeValue(nodeID)if status {fmt.Println("读取单个节点:", nodeID, value)}// 订阅节点opcClient.NodeIDs = append(opcClient.NodeIDs, "ns=2;s=Channel1.Device1.400101")opcClient.NodeIDs = append(opcClient.NodeIDs, "ns=2;s=Channel1.Device1.400102")opcClient.NodeIDs = append(opcClient.NodeIDs, "ns=2;s=Channel1.Device1.400103")opcClient.BatchNodeIdDatasSubscription(opcClient.NodeIDs, func(uaTag string, uaValueStr string) {log.Printf("DataChange %v = %v", uaTag, uaValueStr)})}
}

复制代码

测试输出:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词