Prozessalarm OB's, OB40, OB41, OB42, OB43, OB44, OB45, OB46, OB47
Bis zu 8 Prozessalarme können in S7 vorhanden sein. Das sind OB40 bis OB47. Auch hier gilt, dass die Anzahl der verfügbaren Prozessalarme von der CPU abhängen. In der Hardwarekonfiguration können Sie die Anzahl der Prozessalarme im Register Alarme anzeigen lassen.
In unserer Beispiel-CPU 315 ist nur ein Prozessalarm OB40 verfügbar und die nicht verfügbaren Prozessalarme sind deaktiviert. Die Priorität ist voreingestellt zwischen 16 und 23. Bei einigen CPU's lässt sich die Priorität innerhalb von 2 bis 24 ändern. Die CPU 318-2 DP besitzt 2 Prozessalarme (OB40, OB41). Bei den S7-400 bis zu 8 Prozessalarme (OB40 - OB47).
Prozessalarme werden in folgenden Situationen gebraucht. Die Reaktionszeit in einem laufenden Programmzyklus kann unter Umständen zu gering sein. Das kann z.B passieren wenn bestimmte Ereignisse nicht lang genug anstehen. In diesen Fällen muss schneller reagiert und je nach Ereignis ein angepasstes Programm abgearbeitet werden. In solchen Fällen werden Prozessalarme benötigt, die vom Betriebssystem aufgerufen werden und ihr eigenes Programm abarbeiten. Um Prozessalarme aufrufen zu können, müssen die Analogeingabe-, Digitaleingabe- und Funktionsbaugruppen prozessalarmfähig sein.
Wenn während der Programmbearbeitung ein alarmauslösendes Ereignis, dann wird der Prozessalarm automatisch aufgerufen. Die Organisationsbausteine mit der niedrigeren Priorität werden gestoppt. In den temporären Lokaldaten des Prozessalarms kann das alarmauslösende Ereignis ausgewertet werden. Ist kein Prozessalarm vorhanden, geht die CPU in den STOP-Modus.
Die Zeit, in der ab Auftreten des Alarms die erste Anweisung im Alarm-OB bearbeitet wird, nennt man Alarmreaktionszeit. Wenn mehrere Alarm-OB's aufgerufen werden, verlängert sich die Alarmreaktionszeit der niedriger priorisierten Alarm-OB's.
Aktiviert und eingestellt wird der Prozessalarm bei alarmfähigen Baugruppen in den Eigenschaften über die Hardwarekonfiguration. Hier können Sie den Prozessalarm aktivieren und festlegen, bei welchen Ereignissen der Prozessalarm ausgelöst werden soll. Auf dem Beispielbild wurde die Eingangsbaugruppe so eingestellt, dass bei einer positiven Flanke am Kanal 0 der Prozessalarm ausgelöst wird.
Bei Analogeingabebaugruppen kann z.B. ein oberer und unterer Grenzwert angegeben werden. Werden die Grenzwerte über- oder unterschritten, würde ein Prozessalarm ausgelöst werden. Mit den Systemfunktionen SFC55 "WR_PARM", SFC56 "WR_DPARM" und SFC57 "PARM_MOD" kann die Parametrierung auch im laufenden Programmzyklus erfolgen. Diese sind jedoch über Profinet IO nicht einsetzbar. Im Register Adresse geben Sie an, welcher OB beim Eintritt eines Prozessalarms aufgerufen soll. Standardmäßig ist OB40 voreingestellt. Natürlich muss der Prozessalarm-OB sich im Falle eines Aufrufs im CPU-Programm befinden. Befindet sich der OB beim Aufruf nicht im CPU-Programm, wird in den Diagnosepuffer eine Fehlermeldung eingetragen und eine asynchrone Fehlerbehandlung wird ausgeführt.
Prozessalarme verzögern, sperren und wieder freigeben
Prozessalarme können wie unter Weckalarme gezeigt, mit den Systemfunktionen SFC 39 "DIS_IRT", SFC 40 "EN_IRT", SFC 41 "DIS_AIRT" und SFC 42 "EN_AIRT" verzögert, gesperrt und wieder freigegeben werden.