Send a command via Ignition Edge

Dear all, I would appreciate some help. I am in search of some guidance while I am exploring options.

I'd like to be able to modify the state of PLC tag from the cloud. The site is that owns the tags, uses Ignition. We have been able to configure things in a way that we can read tag data into AWS IoT Core. We have configured Transmission and we can see in the edge how data is coming through.

What is not yet clear to me though, is what is considered a best practice if what we want, is to mutate the state of a tag. The objective is indicate a target number, so the site can determine internal logic to achieve such target (meter target essentially). From what I have learnt so far, I should be looking at using something like the Tahu Library and we essentially write to the correct topic. If I understand this correctly, edge would do the work to propagate this back to the plc tag.

But I am not sure I am getting this right. I have tried to googled some answers, but maybe my naivety on this space affects me to choose the right keywords.

If I am constrained to connect to site, for both, read and writes (telemetry and commands), using Ignition, and I do have access to the extensions, edge and transmission, what's the best advice for how we should be writing (sending remote commands, from the cloud) to the site's PLC tags/devices?

To be clear, the site owners have Ignition instances runnings, however, us, the service provider for this work, do not run Ignition. We want to use AI/ML to help them to optimise some work.

Any guidance? Thank you in advance.

The simplest solution, since MQTT is already involved, would be to simply pretend to be a PLC, publishing one or more target value "tags" into a topic you control. Have Ignition at your client sites subscribe to the topic. If you use Sparkplug B, then it will all work like magic.

For more complex cases, the generic solution would be to have the client use Ignition's WebDev module to implement a web API that meets your needs. Since the API implementation, written in jython, would run inside Ignition, it could perform any desired Ignition operations on behalf of your external application.

1 Like