# setup our own namespace
    uri = "http://examples.freeopcua.github.io"
    idx = server.register_namespace(uri)

    # get Objects node, this is where we should put our custom stuff
    objects = server.get_objects_node()

    # populating our address space
    myfolder = objects.add_folder(idx, "myEmptyFolder")
    myobj = objects.add_object(idx, "MyObject")
    myvar = myobj.add_variable(idx, "MyVariable", 6.7)
    myvar.set_writable()    # Set MyVariable to be writable by clients
   

    # starting!
    server.start()
    
    # Create Callback for item event 
    server.subscribe_server_callback(CallbackType.ItemSubscriptionCreated, create_monitored_items)
    server.subscribe_server_callback(CallbackType.ItemSubscriptionModified, modify_monitored_items)
    server.subscribe_server_callback(CallbackType.ItemSubscriptionDeleted, delete_monitored_items)
    
    
    print("Available loggers are: ", logging.Logger.manager.loggerDict.keys())
    try:
        # enable following if you want to subscribe to nodes on server side
        embed()
    finally:
        server.stop()
Example #2
0
    # setup our own namespace
    uri = "http://examples.freeopcua.github.io"
    idx = server.register_namespace(uri)

    # get Objects node, this is where we should put our custom stuff
    objects = server.get_objects_node()

    # populating our address space
    myfolder = objects.add_folder(idx, "myEmptyFolder")
    myobj = objects.add_object(idx, "MyObject")
    myvar = myobj.add_variable(idx, "MyVariable", 6.7)
    myvar.set_writable()  # Set MyVariable to be writable by clients

    # starting!
    server.start()

    # Create Callback for item event
    server.subscribe_server_callback(CallbackType.ItemSubscriptionCreated,
                                     create_monitored_items)
    server.subscribe_server_callback(CallbackType.ItemSubscriptionModified,
                                     modify_monitored_items)
    server.subscribe_server_callback(CallbackType.ItemSubscriptionDeleted,
                                     delete_monitored_items)

    print("Available loggers are: ", logging.Logger.manager.loggerDict.keys())
    try:
        # enable following if you want to subscribe to nodes on server side
        embed()
    finally:
        server.stop()
Example #3
0
    idx = server.register_namespace(uri) #注册名称空间


    objs = server.get_objects_node()     #获取服务器节点对象。
    myobj = objs.add_object(idx, "Devices")    # 向节点对象填充地址节点
    myobj2 = myobj.add_variable(idx,"iii",ua.Variant(20,ua.VariantType.Int32))     #向Devices对象添加tag
    myvar = myobj.add_variable(idx,"humidity",ua.Variant(0,ua.VariantType.Int32))     #向Devices对象添加tag
    myvar2 = myvar.add_variable(idx,"[hhhh]",10)
    myvar.set_writable()    #将myvar设置为客户端可写的
    myvar2.set_writable()    #客户端可写的

    server.start()     #启动服务

    server.historize_node_data_change(myvar, period=None, count=100)    #将myvar标签设置为可变的历史数据

    server.subscribe_server_callback(CallbackType.ItemSubscriptionCreated, create_monitored_items)        #客户端连接成功后的回调
    server.subscribe_server_callback(CallbackType.ItemSubscriptionModified, modify_monitored_items)       #修改订阅时回调
    server.subscribe_server_callback(CallbackType.ItemSubscriptionDeleted, delete_monitored_items)        #删除订阅的时候回调
    
    try:
        import time
        count=0
        while True:
            time.sleep(3)
            value=random.randint(100,1000)
            myvar.set_value(value)
            count += 1
    finally:
        server.stop()