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.
alright,
thanks Jordan, for showing me some direction.
I’ll try to figure it out and get back here if I need something 
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… 