I current am developing a health monitoring system for robots (of which their tags are sent over OPC UA). I only have access to one robot right now, but I want to future proof this project by developing with UDTs for eventually dealing multiple robots, with the goal being to “point” my dashboard at a robot instance and have it populate its data from the tags.
I was wondering what the best way to do this is. Is it possible to script through the gateway to pull the endpoints from OPC UA connections? If so I would want the UDT instances to autopopulate with the correct tags pathing when more connections are added in the gateway. Ideally, if the user even had an IP address not connected in the gateway, they could theoretically input it on the dashboard, and my program would create a UDT instance (and I suppose corresponding gateway connection?) and fill it correctly so that the dashboard dynamic path binding works when switching between robots.
The end goal is to have a dropdown of all existing robot connections (and potentially an IP address input for new ones) and have the dashboard always display the currently selected robots information from its OPC UA tags.
I'm having to make some assumptions here, but I'm assuming the tag names from the robots will be the same for each robot, but the OPC-UA connection would differ per robot based on each one's IP?
I've personally never created new OPC-UA connections via scripting/automation, but it should be possible with Ignition 8.3 (not sure about 8.1) even if you have to use the APIs and not directly script it via Jython scripting methods. Then your script could create an instance of the UDT and set its parameters to point to the new OPC-UA connection.
Once this is done for a robot, then those tags would continuously update for that robot unless you need some way to enable/disable robots that are online/offline, but you could build that in somehow too by enabling/disabling tags if you really wanted to go that route, but could just leave them always enabled at that point.
1 Like
There's addConnection and removeConnection, but no 'read existing connections' directly via scripting, so it would require the REST API in 8.3 for now:
1 Like
Yes, the tags should be standardized, hence the use of UDTs, but each of their IPs over OPC UA will be different. I can start with having the user manually enter an IP and testing the UDT creation that way, but I would like to be able to populate a list somehow from existing gateway connections. I don’t know much about 8.3 or what APIs there are.
So there’s no way to do this in 8.1 currently?
Once a gateway OPC connection is established, there's no reason to remove it. It can be connected indefinitely and if the robot goes offline and back online the connection will re-establish on its own.
1 Like
Nothing supported. If you search this forum I'd be surprised if you didn't find something approaching what you need; try searching for a combination of IgnitionGateway, GatewayContext, and list OPC servers.
1 Like