DeaD_EyE icon

Access via asyncua Tags on a sImulated MTP700

DeaD_EyE | PRO | 05/19/25 02:31:45 PM UTC | 0 ⭐ | 1371 👁️ | Never ⏰ | []
Python |

990 B

|

None

|

0 👍

/

0 👎

import asyncio
import typing
from contextlib import asynccontextmanager
 
 
from asyncua import Client
 
 
@asynccontextmanager
async def connector(client: Client):
    client.session_timeout = 600000
    await client.connect()
    yield client
    await client.disconnect()
 
 
async def get_value(hmi_opcua: Client, tag: str) -> typing.Any:
    root = hmi_opcua.get_root_node()
    tags = await root.get_child(["0:Objects", "1:HmiRuntime", "1:HMI_RT_4", "1:Tags"])
    for child in await tags.get_children():
        name = (await child.read_browse_name()).Name.split("::")[1]
        if name == tag:
            return await child.get_value()
 
    raise ValueError(f"Could not find {tag}")
 
 
async def main():
    async with connector(Client(url="opc.tcp://127.0.0.1:4949")) as client:
        for _ in range(10):
            print("Tag in position:", await get_value(client, "Tag_in_pos"))
            await asyncio.sleep(0.1)
 
 
if __name__ == "__main__":
    asyncio.run(main())
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎