Загрузка данных


import asyncio
from opcua import ua, Server

async def main():
    # Создаём сервер
    server = Server()
    # Задаём URL (порт 4840 стандартный)
    server.set_endpoint("opc.tcp://0.0.0.0:4840/freeopcua/server/")
    # Устанавливаем имя сервера
    server.set_server_name("My Test OPC UA Server")

    # Отключаем безопасность для простоты (None)
    # В OPC UA Expert при подключении выберите "None" в Security Policy
    server.set_security_policy([ua.SecurityPolicyType.NoSecurity])

    # Регистрируем пространство имён
    uri = "http://my.opcua.server"
    idx = server.register_namespace(uri)

    # Получаем объекты узлов
    objects = server.get_objects_node()

    # Добавляем новый объект в папку Objects
    myobj = objects.add_object(idx, "MyObject")

    # Добавляем переменную с типом Double
    myvar = myobj.add_variable(idx, "MyVariable", 3.1415)
    # Делаем её доступной для записи
    myvar.set_writable(True)

    # Запускаем сервер
    await server.init()
    print("Сервер запущен на opc.tcp://localhost:4840")
    print("Добавлена переменная: MyObject.MyVariable = 3.1415")

    # Бесконечный цикл, чтобы сервер работал
    try:
        while True:
            await asyncio.sleep(1)
    finally:
        # Остановка сервера при завершении
        await server.stop()

if __name__ == "__main__":
    asyncio.run(main())