Skip to content

Composite Tag Access Question #476

Closed

Description

@LeeWhite187

I'm evaluating migrating my PLC access codebases from INGear ABLink Drivers to this library, since INGear is defunct, from what I can tell.
Does this library support the ability to read the entirety of a composite tag (meaning: reading the entire UDT from a single tag in one read)?
I saw there was array support, but didn't see specific information for how to read/write a composite tag (or if it's possible).

This is an existing feature in the INGear driver, and necessary feature for my use cases, where rapid data collection is necessary.
So, I'm wondering if it's possible with this library, and how what level of effort is required.

Thanks ahead,

Lee
LeeWhite187@gmail.com

Activity

  1. timyhac commented on Jul 22, 2026

    @timyhac
    Collaborator

    G'day Lee - yes reading a UDT is possible. See the example here for one way of working with a UDT.

  2. LeeWhite187 commented on Jul 23, 2026

    @LeeWhite187
    Author

    It certainly looks like there is more intuitive control in the client-side encoding/decoding functionality, than what INGear provides.
    And, mapper derivatives appear to be composable for a particular UDT graph.
    I'll work through a hello-world, this weekend, and get an idea of effort and usability.

    I see there are mappers for some example types, already.
    And, I see one for the string type.
    Does the string mapper support nondefault string UDTs? Like a 20-character string type?
    Or, do I have to derive a custom mapper, and byte-copy the length range?

    Thanks for any insight.

  3. timyhac commented on Aug 3, 2026

    @timyhac
    Collaborator

    G'day @LeeWhite187 - I'd recommend going through the libplctag Wiki which has some good information on this subject and its special support for strings.

    But you can always just read the tag as a blob of bytes and parse/encode yourself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions