# 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()
# 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()
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()