opc ua客户端到s

2024-04-24 04:43:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道我是否可以从OPC UA客户端向服务器发送数据。 我有一台windows10pc和opcua服务器设置和一些树莓派作为客户端。在

我已经编写了Python代码来将数据从服务器发送到客户机。现在,我想把数据从Raspberry Pis上的客户端发送到Windows10 PC上的服务器。 这能做到吗?或者我必须在Raspberry Pis上设置服务器,在Windows10 PC上安装客户端?在

这是server.py

from opcua import Server
from random import randint
import datetime
import time

server = Server()

url = "opc.tcp://131.246.76.240:4840"
server.set_endpoint(url)

name = "OPCUA_SIMULATION_SERVER"
addspace = server.register_namespace(name)

node = server.get_objects_node()

Param = node.add_object(addspace, "Parameters")

Temp=Param.add_variable(addspace, "Temperature", 0)
Press=Param.add_variable(addspace, "Pressure", 0)
Time=Param.add_variable(addspace, "Time", 0)

Temp.set_writable()
Press.set_writable()
Time.set_writable()

server.start()
print("Server started at {}".format(url))

while True:
    Temperature = randint(10, 50)
    Pressure = randint(200, 999)
    TIME = datetime.datetime.now()

    print(Temperature, Pressure, TIME)

    Temp.set_value(Temperature)
    Press.set_value(Pressure)
    Time.set_value(TIME)

    time.sleep(1)

这是client.py

^{pr2}$

Tags: 数据import服务器add客户端datetimeservertime
1条回答
网友
1楼 · 发布于 2024-04-24 04:43:57

简短的回答是肯定的!您可以从OPC UA客户端写入、读取和订阅OPC UA服务器上可用的标记。实际上,这就是我们需要客户的原因。在

我想你的困惑源于对OPC-UA的服务器/客户机架构的误解。考虑到上面共享的代码,您的OPC UA服务器不会向您的客户端发送任何数据。您的客户机从服务器请求并读取它。同样,您只需要从同一个客户机向服务器发送另一个请求来写入/设置值。例如

# set/write node value (e.g. 26) by using implicit data type  
Temp = client.get_node("ns=2;i=2")
Temp.set_value(26)

总之,不需要部署和设置更多的服务器或客户端。只需更新客户端代码以支持编写标记。希望这有帮助!在

相关问题 更多 >