Hello,
I am new to Ignition and come from a ladder logic background. I have started playing in the Ignition platform and was trying to figure out if I could use it for a machine monitoring solution.
I want to monitor the status of "input0" and "input1" and send an alarm notification email when either input has been false for 48 hours and again when either input has been false for 72 hours. If the 72 hour alarm times out I need to set a normally true output to false and it needs to remain false until two additional inputs, "input2" and "input3" are both momentarily transitioned true.
I have the I/O connected and have the email notifications working but need some help with the rest of it.
Any advise or ideas on the best way to accomplish something like this would be appreciated!
I can think of several ways to attach this, with one being to leverage the PLC to help you. I don't know if you have an alarm per input, or as a single alarm, but you could use an alarm tag in the PLC that uses a Set/Reset block to Set it based on the timers you indicated, and reset it on the condition you also mentioned. I'm not sure how the PLC inputs are for a "momentary" input, but this likely needs to be somewhat quick and done there with a latching capability, hence the SR block for the alarm.
Now, in Ignition, you could just create 2 different alarms, one that triggers at 48 hours, and the other at 72 hours. I'm not sure how you would use the 2 reset inputs as a condition to clear the alarm, as normally you set the alarm to be in a state/value (here, low) with an Active delay set to your desired time. To combine this, you could create an expression tag that combines the bits into an integer (or do this in the PLC), and you can then just look for the value to be NOT EQUAL 3 with the active delay. Of course, you would also need to make it 3 in a single tag for a reset on the PLC side. The difficulty of the momentary input is that you would need to hold the value for enough time that Ignition can detect the value and do it's magic.
I think the other option would be to leverage the alarm pipeline to loop back the notification through a delay to then resend the notification to generate your second alarm (24 hour delay). This way, the alarm is initiated by the tag alarm setup (Active delay set to 48 hours), and if the value ever returns to normal, the pipeline will exit. See example below.
Thank you for the reply @Herbie!
I would love to just add logic in the PLC for this but cannot due to it being a validated (FDA regulated) PLC program. My plan was to use a Modbus TCP module with I/O cards to tap directly into the hardwired I/O of the machine. I currently have a script written in the Gateway that I believe will give me the functionality I need.
I have "input0" (clean tank circulation pump) and "input1" (dirty tank circulation pump) each set up with two alarms to send the desired 48 hours (48 hours to allow time for machine investigation before the 72 hour timer times out and disables the machine) and 72 hour notifications. Then my script in the Gateway should keep the output true (to hold a "machine disable" relay coil) unless either 72 hour timer has expired (due to either circulation pump being "OFF" for too long). The output should remain false until both "input2" (clean tank empty switch) AND "input3" (dirty tank empty switch) are true.
If this all works (I am getting ready to test it today), I might just need to add a way to prevent the alarm "clear" notification from being sent until both tanks have been verified empty.
Basically management wants to know if the solution has been stagnant for too long because it will start growing bacteria. If it has been stagnant for too long, the machine needs to be disabled from running cycles until both solution tanks have been verified to be emptied out.