如何用Python OPC UA客户端通过变量访问指定节点?
Python OPC UA客户端:通过变量动态访问指定节点
实现步骤
先安装OPC UA Python依赖库:
pip install opcua核心思路是把用户输入的变量动态嵌入节点ID字符串,再通过客户端完成节点的连接与操作。
完整代码示例
from opcua import Client # 1. 获取用户输入的reg_conf值 reg_conf = input("请输入reg_conf的值: ") # 若节点ID的i部分要求整数类型,可添加类型转换 # reg_conf = int(reg_conf) # 2. 拼接目标节点的ID字符串 node_id = f"ns=1;i={reg_conf}" # 3. 连接OPC UA服务器并访问节点 try: # 替换为你的实际OPC UA服务器地址 client = Client("opc.tcp://localhost:4840/freeopcua/server/") client.connect() # 获取指定节点 target_node = client.get_node(node_id) # 读取节点值(可根据需求改为写入操作) node_value = target_node.get_value() print(f"节点{node_id}的值为: {node_value}") finally: # 确保断开服务器连接 client.disconnect()
关键说明
- 节点ID格式
ns=1;i=xxx中,ns代表命名空间索引,i代表节点的整数ID,通过f-string将用户输入的reg_conf动态替换,实现变量化访问。 - 如果你的节点ID是字符串标识(比如
ns=1;s=reg_conf),只需把节点ID拼接逻辑改成f"ns=1;s={reg_conf}"即可。 - 实际使用时需替换服务器地址,还可根据需求添加输入验证、连接异常捕获等逻辑。
内容的提问来源于stack exchange,提问作者Giuliano Stirparo
相关产品推荐
相关产品推荐

