学习:噜阿噜
学习
看看!!!!!!!!
试试看需学习一下
学习学习
本帖最后由 治国安邦 于 2026-6-29 15:01 编辑
from opcua import Client
def read_opcua_value(server_url, node_id):
"""
从 OPC UA 服务器读取指定节点的值。
参数:
server_url (str): OPC UA 服务器的端点地址,例如 "opc.tcp://localhost:4840"
node_id (str): 要读取的节点ID,例如 "ns=2;i=3" 或 "ns=2;s=MyVariable"
返回:
读取到的节点值,如果发生异常则返回 None
"""
client = None
try:
# 1. 创建客户端实例并连接
client = Client(server_url)
client.connect()
# 2. 获取指定节点
node = client.get_node(node_id)
# 3. 读取节点的值
value = node.get_value()
return value
except Exception as e:
print(f"读取 OPC UA 数据时出错: {e}")
return None
finally:
# 4. 确保无论是否发生异常,都能安全断开连接释放资源
if client:
client.disconnect()
# --- 使用示例 ---
if __name__ == "__main__":
opc_server = "opc.tcp://DESKTOP-37UAL4U:53530/OPCUA/SimulationServer" # 替换为实际的服务器地址
target_node = "ns=3;i=1001" # 替换为实际的节点 ID
result = read_opcua_value(opc_server, target_node)
if result is not None:
print(f"成功读取节点 {target_node} 的值: {result}")
else:
print("读取数据失败")
vs中执行python能够正常读取正常的值,整数,但是火山返回的是0,这定义的方法应该怎么写到火山里调用,乐易大佬能出个案例么,还有参数如何带入,总不能一直在编辑框直接执行所有的方法和修改参数吧?求大佬写个案例