Alarm when a contactor stays closed after the PLC output drops (welded contacts)
Pharma site, HVAC for a cleanroom suite. Supply fans start through contactors driven by S7-1200 outputs. Last month a contactor welded: output off, fan kept running, nobody noticed for six hours because the PLC never checked. The PLC data goes to Hermetry through our gateway.
I want two things. The PLC must catch it locally, that’s on me. And Hermetry should raise an alarm when the commanded state and the actual state disagree for more than a few seconds, so maintenance sees it on the board and gets a notification. What’s the cleanest way to express « output says off but the fan is running » as an alarm?
Could you put a current sensor on the fan cable and alarm when current flows while it should be off?
David’s current sensor is a valid feedback source, but most contactors already have an auxiliary contact block, which is cheaper.
Wire an NO auxiliary contact to a PLC input (or use the current relay if the contactor can’t take an aux block). Then publish both values in the same message, every few seconds, not only on change:
{"sf1.cmd": 0, "sf1.fb": 1}
Alarm rule on the profile, in JSON mode since the form only does one comparison per severity:
"severities": [
{ "severity": "MAJOR",
"condition": { "any": [
{ "all": [ { "key": "sf1.cmd", "op": "==", "value": 0 }, { "key": "sf1.fb", "op": "==", "value": 1 } ] },
{ "all": [ { "key": "sf1.cmd", "op": "==", "value": 1 }, { "key": "sf1.fb", "op": "==", "value": 0 } ] } ] } }
],
"debounce": { "mode": "duration", "raise": 5, "clear": 5 }
That covers welded (off but running) and failed to pull in (on but stopped). The 5 s duration debounce covers the contactor’s pick-up and drop-out time. Duration debounce only moves forward when readings arrive, so the PLC has to keep reporting; with change-only reporting the alarm would wait for the next change.
Simpler alternative: let the PLC compute a discrepancy bit with its own timer (it needs it for the local interlock anyway) and alarm on sf1.discrepancy == true. Less JSON, one source of truth. Conditions are explained on Alarm conditions reference.
Went with the PLC discrepancy bit, 3 s timer, plus the local trip. Hermetry alarms on sf1.discrepancy == true for all six supply fans through one profile rule. Tested by forcing the aux input and got the alarm and the e-mail within seconds. Kept your JSON version in my notes for the sites where I can’t touch the PLC program.
- Vous devez être connecté pour répondre à ce sujet.
Rejoignez la discussion
Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

