def server(): s = Server() s.set_endpoint('opc.tcp://0.0.0.0:8840/freeopcua/server/') uri = "http://examples.freeopcua.github.io" idx = s.register_namespace(uri) myobj = s.nodes.objects.add_object(idx, "MyObject") myvar = myobj.add_variable(idx, "MyVariable", 6.7) mysin = myobj.add_variable(idx, "MySin", 0, ua.VariantType.Float) s.start() yield s s.stop()
def server(tloop): s = Server(tloop=tloop) s.disable_clock(True) s.set_endpoint('opc.tcp://0.0.0.0:8840/freeopcua/server/') uri = "http://examples.freeopcua.github.io" ns_idx = s.register_namespace(uri) myobj = s.nodes.objects.add_object(ns_idx, "MyObject") myobj.add_variable(ns_idx, "MyVariable", 6.7) myobj.add_variable(ns_idx, "MySin", 0, ua.VariantType.Float) s.nodes.objects.add_method(ns_idx, "Divide", divide, [ua.VariantType.Float, ua.VariantType.Float], [ua.VariantType.Float]) with s: yield s
# now setup our server server = Server(tloop=tloop) #server.disable_clock() #server.set_endpoint("opc.tcp://localhost:4840/freeopcua/server/") server.set_endpoint("opc.tcp://0.0.0.0:4840/freeopcua/server/") server.set_server_name("FreeOpcUa Example Server") # set all possible endpoint policies for clients to connect through server.set_security_policy([ ua.SecurityPolicyType.NoSecurity, ua.SecurityPolicyType.Basic256Sha256_SignAndEncrypt, ua.SecurityPolicyType.Basic256Sha256_Sign ]) # setup our own namespace uri = "http://examples.freeopcua.github.io" idx = server.register_namespace(uri) print("IDX", idx) # create a new node type we can instantiate in our address space dev = server.nodes.base_object_type.add_object_type(idx, "MyDevice") dev.add_variable(idx, "sensor1", 1.0).set_modelling_rule(True) dev.add_property(idx, "device_id", "0340").set_modelling_rule(True) ctrl = dev.add_object(idx, "controller") ctrl.set_modelling_rule(True) ctrl.add_property(idx, "state", "Idle").set_modelling_rule(True) # populating our address space # First a folder to organise our nodes myfolder = server.nodes.objects.add_folder(idx, "myEmptyFolder") # instanciate one instance of our device