I am using Ignition Version: 7.6.3-rc2 (b2448). I can create tags, define alarm conditions for them and create email notifications using Alarm pipelines.
In addition to sending email, I would also like to perform additional functions - like sending a message to an external system (not email), writing the date and time and other relevant context information for the alarm on an external flat file etc. Therefore, I would like to be able to write a script in order to execute such actions. Is there a way in ignition to write scripts when certain alarm conditions are met?
Currently there is not a “scripting” block for the alarm pipelines, although it is an interesting request that I can run by the development team. Might I ask what exactly you’re trying to accomplish by writing this information to a flat file, and what “other system” you are trying to notify? The alarm journal option stores a lot of information about each alarm that occurs in the system. Does this built in feature not accomplish the tasks you have in mind?
Our manufacturing tools have physical alarms that can be controlled. So, lets say if during the process, if a particular process parameter goes beyond the alarm limit defined in Ignition, I would also like the physical alarms by the tool to start beeping, so that the machine operators standing by the tool can take action immediately rather than waiting for someone to respond to their email/phone notification.
So, I need to send message to the physical alarming system. I couldn’t find a way to accomplish that using the alarming capability in Ignition and thought that scripting may be able to help us in it.
Please let me know if the ignition development team decides to implement this feature.
Not knowing your system, and exactly how it works, I may be out in left field about this.
When I think of alarms, I think of a way to inform a human, via email, or text, or voice, that something has exceeded a preset limit. If I were going to send some kind of signal to a piece of equipment that turns on a relay controlling a Sonalert beeper or something similar, I would not use alarming for that.
You should be able to access your Boolean tag that toggles when something has exceeded a limit of some sort. You could monitor that Boolean with a tag change script, and when that script is triggered, it could toggle a Boolean OPC tag, which would turn on the beeper, or whatever it is that alerts the operator. That script could also do anything else you need it to do, that is within the bounds of Ignition.
Agreed with RRRancher, (and also not knowing your system at all) you shouldn’t really be using scripting in Ignition to be turning on alarms in the field basically because it starts to get into the realms of Safety functions (if not now, then there is always the possibility that someone might try to use your scripting system to perform an arguably safety related function in the future).
As a general rule, we don’t rely on SCADA systems to perform alarms in the field basically because they are not regarded as reliable enough (Sorry IA!).
What if your script beaks down? What if a future scripting module upgrade breaks the functionality? What if you need to restart your server due to windows shenanigans?
As a general rule, Alarming in the field should be done by your plant PLC (or SIS if you have one).
Having said all this I still have no idea of what your process is!
Well, a scripting block for pipelines is on our radar. We initially planned to include it in the release but ran out of time. Same thing with scriptable roster selection.