We have a project where we will have a central Ignition Gateway with several remote sites. Each remote site will have a PC running Ignition Edge. Tags will be configured on the Ignition Edge PC’s using Ignition OPC-UA Server. Each Ignition Edge instance will be a configured as a Remote Tag Provider on the central Ignition Gateway.
In this system we would like to have tag event scripts called in order to call named queries and write to other tags, among other things. These events should occur on the central Ignition Gateway, not the Ignition Edge instances.
While we are aware that all Gateway level scripting is disabled in Ignition Edge, it was our hope that since we have a central Ignition Gateway that is full Ignition Gateway, not Edge, we could configure Tag Event scripting on the tags from the Remote Tag Providers (Ignition Edge PC’s).
To start with we have created a simple test project just to establish the principles upon which the actual project will be based. In this test setup we have been unable to get Tag Events to trigger on the central Ignition Gateway. All we are trying to do in this test setup is call a named query to update a timestamp in a database table and write the value from one tag to another tag of the same data type.
Unfortunately as a new user I am not allowed to post more than one image per topic on this Forum so I will have to use text instead of images and hopefully still get the meaning across.
1) OPC Device configured on Ignition Edge
(image deleted) An OPC device with the name “CastingPLC” was added to the Edge Gateway, and the status came up “Connected”
- Realtime Tag Provider configured on central Gateway (RemoteSite1)
(image deleted) The Ignition Edge Gateway was added to the central Gateway as a Remote Tag Provider with the name “RemoteSite1”. The Gateway Network connection between central Gateway and Edge Gateway had been previously set up and the status is shown as “Running”. From the designer of the central Gateway it is possible to see and edit tags and udt’s on the Edge Gateway.
3) Udt on Ignition Edge
The screenshots shown here are from the designer of the central Gateway. The udt was created in the designer of the central Gateway but it resides in the Data Types folder of the Remote Tag Provider “RemoteSite1”.
(image showed udt in the path All Providers/RemoteSite1/Data Types)
4) Tag Event Script in Udt
The image shown here is from the designer of the central Gateway, editing the udt in the remote provider RemoteSite1
5) Udt Instance on Ignition Edge
The screenshot shown here is from the designer of the central Gateway. It shows that the tag quality is good. The tag is toggling on and off at a frequency of 1s in a PLC we are testing with.
(image showed member of udt instance that has the Tag Event script showing value and good quality)
What we are observing is that neither the call of the Named Query nor the write to another test tag is actually happening.
In order to confirm that the problem is that the Tag Event is not being triggered and not some other problem with the script, we have replicated this test using only the central Gateway without the Remote Tag Provider. The steps used to replicate the test on the central Gateway are:
a) Create an OPC Device in the central Gateway with the same properties as the one in the Ignition Edge Gateway (See item 1 above), and make sure it is connected.
b) Copy and paste the udt from the Data Types folder under “All Providers/RemoteSite1” and paste it in the Data Types Folder under “Tags” in the designer of the central Gateway.
c) Create an instance of this udt in the Tags folder of the central Gateway designer with the same parameter values as the udt instance in the Remote Tag Provider.
When we do the same test this way everything works, we can confirm that the Named Query is being executed and the tag is being written to.
Finally, the questions are:
Is it possible to do what we are trying to do using Ignition Edge as Remote Tag Provider?
If it is possible, what are we doing wrong?
If it is not possible, what would be the recommendation from Ignition as to the best way to achieve this functionality?