Как наследовать другой объект в op c -ua - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть HomeBaseObjectType и HomeRegionType в моей модели типов как таковые:

enter image description here

Это мой код в python с использованием библиотеки Freeopcua:

# create a new node type we can instantiate in our address space
    dev = await server.nodes.base_object_type.add_object_type(idx, "HomedBaseObjectType")
    await (await dev.add_variable(idx, "BadScanCounter", 1, ua.VariantType.Int64)).set_modelling_rule(True)
    await (await dev.add_variable(idx, "DetectorTemp", 0.0, ua.VariantType.Double)).set_modelling_rule(True)
    await (await dev.add_variable(idx, "Flow", 0.0, ua.VariantType.Double)).set_modelling_rule(True)
    await (await dev.add_variable(idx, "LaserDC", 0.0, ua.VariantType.Double)).set_modelling_rule(True)
    await (await dev.add_variable(idx, "LaserPP", 0.0, ua.VariantType.Double)).set_modelling_rule(True)
    await (await dev.add_variable(idx, "Pressure", 0.0, ua.VariantType.Double)).set_modelling_rule(True)
    await (await dev.add_variable(idx, "SingleBeamAt2500", 0.0, ua.VariantType.Double)).set_modelling_rule(True)
    await (await dev.add_variable(idx, "SingleBeamAt900", 0.0, ua.VariantType.Double)).set_modelling_rule(True)
    await (await dev.add_variable(idx, "TempOptics", 0.0, ua.VariantType.Double)).set_modelling_rule(True)

    dev1 = await server.nodes.base_object_type.add_object_type(idx, "HomedRegionType")
    await (await dev1.add_object(idx, "HomeBaseObjectType")).set_modelling_rule(True)

Как сделать так, чтобы переменные в HomedBaseObjectType отображались в HomedRegionType?

1 Ответ

0 голосов
/ 30 апреля 2020

Ах, нам нужно указать тип объекта при добавлении объекта:

await (await dev1.add_object(idx, "HomedBaseObjectType", objecttype=dev)).set_modelling_rule(True)
...