Subscription approach in Ignition to information providers

Dear experts,

in my community we have a very well established use case (widely used) which consists on the subscription to existing information servers enabling the collection of information provided by certain hardware devices. The idea consists on a communication system for distributed/mixed environments, that is able to provide a network transparent inter-process communication layer. We use a service-client structure, being the server a collector of information which publishes their services by registering them with the name server (normally once, at startup). While clients “subscribe” to services by asking the name server which server provides the service and then contacting the server directly, providing the type of service and the type of update as parameters. Once the connection has been established, the client just needs to define/bind the collectors of information (In the case of Ignition tags).
Now from the point of view of Ignition, I do not know how to establish the approach. Ignition should act as the client, who needs to contact to the server via a DNS_NAME, “see” the information published by that DNS_SERVER, subscribe to the publisher and collect the information in tags. How does Ignition ensure such a procedure?
Thanks so much for your help,
Kind Regards,
Patricia Mendez

You’ll have to write the entire protocol in jython or java (Module SDK), complete with state management. In the module SDK you’d probably want to implement a custom tag provider like Cirrus Link does with their MQTT client.

Or instead of reinventing the wheel, you could just use (the very similar) MQTT protocol.

Thanks a lot for the answer. Could you please give me some extra info about the MQTT protocol use in this case?. Is there any documentation or even better any example showing how to use it for this aim and how to apply it in Ignition?

I think what he’s suggesting is that if you can get your existing systems to publish to an MQTT broker then instead of writing your own Ignition module to bring the data in you can use the existing Cirrus Link MQTT modules instead.

https://inductiveautomation.com/downloads/third-party-modules/8.0.15

https://docs.chariot.io/display/CLD80/MQTT+Modules

1 Like

I see. OK, I will check the documentation you send me and I come back to you in case of further questions. Thanks a lot
Patricia