TCP device driver to RESTful API

We are looking to connect some RPis to our network to share data and control some simple channels. The 3B+ with POE makes installation easy in our factory where power isn’t directly available. There will be only a handful of channels per RPi. I would like to create a RESTful API on the RPi that handles get and set commands and use Ignition to read/write through HTTP to the RPi. The RPis will be static IP. Since there won’t be a client up always, it need to fun at the gateway level to read and record tags in the OPC server.

Is there a way to use the TPC device driver for communication? Will it support polling for timed reads / get calls?

Is there a cleaner way to map the web API calls to tags?

No you can’t use the TCP driver for this.

You could use a gateway timer script that updates a set of memory tags, though.

Other than setting up an OPC-UA server on the RPi (saw the “lite version” that allows Ignition to access GBIO; I’d have to modify this probably), is there any other smooth ways to get this type of task done?

Any solution is going to involve you writing custom code to run on the RPi, so I’d just stick to the approach that is easiest for you to implement.

Using the Ignition MQTT modules might be an option too if you can expose the data you want via Sparkplug/MQTT on the RPi’s.

Or implement an API with the WebDev module and have your rPi’s make calls to that from python. Put a little service wrapper around your python so it always runs.

Another option is to install node red on the pi and use the Mqtt node. That’s very simple to set up and is what I’m currently playing with and I have machines all over the world reporting data back.

That would require the cirrus link MQTT module.

Another option is node red again and the sql node. You can read or write data directly to a shared ignition database table.

Another messier option. Node red and the s7 node. Read / write data to a plc (I’ve assumed Siemens by stating s7 node) which ignition can access.

Node red can access all the pi gpio pins and devices. I’ve got one sending gps locations back via MQTT, I’ve got other pi’s measuring control panel temperature and humidity, it’s endless and it minimizes the need for any custom code. Using logmein hamachi on the pi’s I can access all of my plcs all over the world remotely and access the pi’s via VNC and ssh.