Exemple #1
0
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()
Exemple #2
0
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
Exemple #3
0
        # 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