Prozessalarm durch Analogeingang auslösen

Eddie

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe folgendes Problem:
Ich will mit einem Analogeingang (SM 331- 6ES7331-7NF10; CPU 314c-2 dp) einen Grenzwert überwachen und bei überschreiten einen Prozessalarm auslösen lassen.

Um dies zu testen schalte ich ein Signal (von einem Signalgenerator: 0,1HZ) mit 9V auf den Eingang. In der HW Konfig habe ich eingestellt dass ein Prozessalarm ausgelöst werden soll und bei bei dem entsprechenden Kanal einen oberen Grenzwert von 7V (habe auch schon geringere Werte ausprobiert) eingestellt.

Schalte ich den Signalgenerator nun ein wird der Prozessalarm manchmal ausgelöst, manchmal aber auch nicht oder erst nach einigen Sekunden oder auch Minuten (das Signal liegt ja weiter periodisch an).
Wenn ich allerdings den Unteren Grenzwert auf z.B. 3V einstelle wird der Prozessalarm jedesmal sofort ausgelöst (dann eben wenn das Signal wieder auf Null geht)

Ist das sonst schon jemandem aufgefallen dass der Prozessalarm nicht zuverlässig auslöst oder habe ich etwas falsch eingestellt?

Ich hoffe ihr könnt mir helfen.
Gruß Eddie
 
Aus dem Handbuch S7-300:
http://support.automation.siemens.com/WW/view/de/8859629

Prozessalarm bei Auslöser "oberer oder unterer Grenzwert überschritten"

Durch die Parametrierung eines oberen und eines unteren Grenzwertes definieren Sie einen Arbeitsbereich. Verlässt das Prozesssignal (z. B. die Temperatur) einer Analogeingabebaugruppe diesen Arbeitsbereich, so löst die Baugruppe bei freigegebenem Prozessalarm einen Alarm aus.
Die CPU unterbricht die Bearbeitung des Anwenderprogramms und bearbeitet den Prozessalarm-Baustein OB 40.
Im Anwenderprogramm des OB 40 können Sie festlegen, wie das Automatisierungssystem auf eine Grenzwertüber- bzw. -unterschreitung reagieren soll.
Mit dem Verlassen des OB 40 wird der Prozessalarm auf der Baugruppe quittiert.

Aufbau der Startinformation Variable OB40_POINT_ADDR des OB 40

Welcher Kanal welchen Grenzwert überschritten hat, wird in der Startinformation des OB 40 in der Variablen OB40_POINT_ADDR eingetragen. Im folgenden Bild finden Sie die Zuordnung zu den Bits des Lokaldaten-Doppelwortes 8.


Bild: Startinformation des OB 40: welches Ereignis hat Prozessalarm bei Grenzwert ausgelöst


Gruß Approx
 
Zuviel Werbung?
-> Hier kostenlos registrieren
danke für die Info.
Ich werd es mir nochmal genauer anschauen.
nur eben komisch dass der Prozessalarm ja eben manchmal ausgelöst wird. Es hat mich halt gewundert dass er nicht regelmäßig auslöste.
Gruß Eddie
 
danke für die Info.
Ich werd es mir nochmal genauer anschauen.
nur eben komisch dass der Prozessalarm ja eben manchmal ausgelöst wird. Es hat mich halt gewundert dass er nicht regelmäßig auslöste.
Gruß Eddie


Bist Du wirklich sicher das der Signalgenerator 0,1Hz macht?

Es sieht fast so aus als ob der Grenzwert 7V nicht lange genug überschritten wird, d.h. kürzer als die Wandlungszeit ist.
 
ich hatte ein Oszi angeschlossen, da ich ursprünglich die Schaltverzögerung der SPS messen wollte.
Frequenz sowie Amplitude des Signals waren ok
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich hab jetzt, nachdem die gleiche Problematik auch an den Digitaleingängen aufgetreten ist, rausgefunden was das wirkliche Problem ist:
Das Signal das den Prozessalarm auslöst wird im OB40 bzw. in der Funktion die von OB40 aufgerufen wird abgefragt. Wenn bis da das Prozessabbild aber nicht erneuert wurde kann die Signaländerung auch nicht erfasst werden. Und im nächsten Zyklusdurchlauf wird der OB40 und damit die entsprechende Funktion nicht mehr aufgerufen.

Ich könnte natürlich die Funktion im OB1 aufrufen, ich dachte aber dass die Signaländerung über den Prozessalarm schneller erkannt wird. (Wird sie ja auch, nur habe ich davon eben keinen nutzen)

Hat jemand einen Tip wie ich die Signaländerung sonst so schnell wie möglich auswerten kann ohne einen ganzen Zyklus durchlaufen zu müssen?
 
Zuletzt bearbeitet:
Hallo Eddie,

mit dem Befehl
Code:
L PEW ...
wird das Prozessabbild des aufgerufenen Analogeinganges zur Laufzeit erneuert.

Gruß Approx
 
ich hab jetzt, nachdem die gleiche Problematik auch an den Digitaleingängen aufgetreten ist, rausgefunden was das wirkliche Problem ist:
Das Signal das den Prozessalarm auslöst wird im OB40 bzw. in der Funktion die von OB40 aufgerufen wird abgefragt. Wenn bis da das Prozessabbild aber nicht erneuert wurde kann die Signaländerung auch nicht erfasst werden. Und im nächsten Zyklusdurchlauf wird der OB40 und damit die entsprechende Funktion nicht mehr aufgerufen.

Ich könnte natürlich die Funktion im OB1 aufrufen, ich dachte aber dass die Signaländerung über den Prozessalarm schneller erkannt wird. (Wird sie ja auch, nur habe ich davon eben keinen nutzen)

Hat jemand einen Tip wie ich die Signaländerung sonst so schnell wie möglich auswerten kann ohne einen ganzen Zyklus durchlaufen zu müssen?

Hallo Eddie,

zunächst kannst Du wie weiter oben beschrieben über die Lokaldatenbits
abfragen von wo der Alarm ausgelöst wurde.
Wenn Du z.B. bei einem Digitalsignal bei steigender und fallender Flanke einen Alarm auslöst und diese unterscheiden willst,
kannst Du direkt auf die Peripherie schauen welchen Zustand das betreffende Bit hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Beispiel

z.B. E0.0 löst Alarm auf steigende und fallende Flanke aus (Lokaldatenbit L8.0):

Code:
L PEB0      // direkt auf Peripherie zugreifen und 
T MB100   // speichern
 
U L8.0     // Alarm von E0.0
U M100.0 // E0.0 = 1 also steigende Flanke
SPB STFL
 
U L8.0     // Alarm von E0.0
UN M100.0 // E0.0 = 0 also fallende Flanke
SPB FAFL
 
....
 
Vielen Dank für die Antworten.
Das auswerten der Lokaldatenbits hat dann zum gewünschten Ergebnis geführt :)
 
Zurück
Oben