Instruct/Convey a signal to Invoke a program on Ignition

Hi all,

I’m Telecommunications Engr by qualification. Working as a C# (.NET) developer for 2 years. I have also worked with databases (MySql, MS-SQL etc), Socket programming, hardware interfacing etc.
I’m new to Ignition SCADA.

I need to build a C# program which will be a kind of middle-ware between a webAPI and Ignition Scada.
the C# program will receive an SKU from webAPI and then ask the Ignition to invoke a specific program based on the SKU. (every SKU is attached to an Ignition program)

I need to know how I can instruct Ignition SCADA to invoke a program?
please guide me

thanks and best regards,
M Zeeshan Akram

Well, as for the communication between the C# program and Ignition you could use the module SDK to add a servlet or the web-dev module to handle an inbound web service call and then take some action from there.

I’m not 100% clear on what you mean by invoke a program. You mean to invoke an executable that resides on the same system as the Ignition gateway? That shouldn’t really be a problem. Does this mean the C# program runs on a different machine then? Otherwise why wouldn’t it invoke the executable?

Or do you mean something else here?

hi Kevin,

thanks a lot for the reply.

C# program will be on same machine as Ignition.

as I told you, I’m new to Ignition SCADA, so my terminology related to it may not be correct or clear enough.

by invoking program I mean invoking an Ignition SCADA program i.e. ask Ignition SCADA to execute an action, (maybe you call it a group, script or whatever in Ignition terminology)

I’d say the least painful way to do this would be through the database. Here’s my take on it.

The C# program writes an entry to the database. This way you can have the SKU, some other unique identifier, and an integer to use as a flag tell whether an entry has been processed or not.

A transaction group monitors the table for an entry with a flag that says ‘Ready to Process’. When it finds one, it grabs the pertinent information, run a script that does whatever processing you want done on it, and sets the flag entry as OK or NG, depending on results.

We have a similar middle-ware beast in use. In general, the flag values are:

1: Ready to process
2: In process
3: OK
4+: All the things that can go wrong.


thanks Jordan, for showing me some direction.
I’ll try to figure it out and get back here if I need something :slight_smile:

thanks a lot once again

Another thought…

You may be able to use Jython scripting from within Ignition to hit up the webAPI. Without knowing what you have, I couldn’t say for certain. I just wanted to state the possibility of removing a step or two… :slight_smile: