Step 7 cpu313c2-dp Prozessalarm

volker

Supermoderator
Teammitglied
Beiträge
5.805
Reaktionspunkte
1.027
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ich habe eine 313c2-dp die mit einer zykluszeit von ca 20ms läuft.

nun werde ich ein eingangssignal erfassen müssen welches ca alle 500ms für ca 20-25ms 1-signal liefert.
für den normale zyklus also zu langsam.

jetzt habe ich in der hwconfig für e12-15 den prozessalarm bei steigender flanke aktiviert.
im ob40 habe ich zum testen folgendes stehen

set
s m 100.0

das ganze wollte ich mit plcsim testen.
setzte ich nun in der sim e1.4 wird der ob40 nicht aufgerufen und m100.0 nicht gesetzt.

funktioniert das nicht mit plcsim?

habe auch mal im ob1 sfc 40 aufgerufen. bringt aber auch nichts.
CALL SFC 40
MODE :=B#16#1 //auch mit 0 getestet
OB_NR :=40
RET_VAL:=#retval
L #retval
 
Laut Siemens wird der Prozessalarm (Ob40, Ob70 etc..) von PLCSIM unterstützt

https://support.industry.siemens.com/cs/document/54667828/s7-plcsim?dti=0&lc=de-WW

..Ansonsten den Fehlercode vom SFC40 auslesen?


Edit.................


Muss in Mode evtl. 2 stehen?!

MODE

MODE Bedeutung

0 Alle neu auftretenden Alarm- und Asynchronfehlerereignisse werden freigegeben.

1 Alle neu auftretenden Ereignisse einer angegebenen Alarmklasse werden freigegeben. Die Alarmklasse kennzeichnen Sie wie folgt:· Uhrzeitalarme: 10· Verzögerungsalarme: 20· Weckalarme: 30· Prozeßalarme: 40· Alarme für DPV1: 50· Multicomputingalarm: 60· Redundanzfehleralarme: 70· Asynchrone Fehleralarme: 80

2 Alle neu auftretenden Ereignisse eines angegebenen Alarms werden freigegeben. Den Alarm kennzeichnen Sie durch die OB-Nummer.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
habs mal mit 2 getestet. funktioniert trotzdem nicht.

sfc40 meldet keinen fehler. egal in welchem mode ich ihn aufrufe.

ist es überhaupt nötig den aufzurufen?
 

Anhänge

  • Zwischenablage01.jpg
    Zwischenablage01.jpg
    50,3 KB · Aufrufe: 19
Zuletzt bearbeitet:
In der Hardware Konfiguration der CPU kannst du unter Alarm sehen, welche OB´s überhaupt für deine CPU für den Prozessalarm vor- bzw. freigegeben sind. In der Regel OB40-OB47. Nur zum überprüfen...

Dein Eingang hast du auch schon passend ausgewählt.


und zur Frage, Ja es ist notwendig einen Ob aufzurufen, um mit dem Prozessalarm etwas auswerten zu können.
 
In PLCSIM löst das Setzen eines Eingangs in einem Eingangs-Dialogfenster keinen Prozessalarm aus.
Prozessalarme kann man so testen: in PLCSIM > Ausführen > Fehler-OB auslösen > Prozessalarm (OB40-OB47)...

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja es ist notwendig einen Ob aufzurufen, um mit dem Prozessalarm etwas auswerten zu können.
Prozessalarm-OBs kann man nicht aufrufen (genau wie alle anderen OBs) - die OB werden von der CPU-Firmware bei den entsprechenden Ereignissen aufgerufen.

Harald
 
ich habe jetzt einen test am lebendem projekt gemacht.
einen ausgang der vom taktmerker im 2 sek rhythmus blinkt auf e1.4 gelegt.

zuerst mal ohne sfc40 getestet. ob40 wird nicht angesprungen. und ja der ist in der cpu und die hwconfig habe ich natürlich auch in die cpu übertragen. :ROFLMAO:
sfc40 mit mode 0,1,2 probiert. geht auch nicht. sfc40 meldet keinen fehler.

cpu ist eine 6es7313-6ce01-0ab0 fw2.0
 

Anhänge

  • Zwischenablage02.jpg
    Zwischenablage02.jpg
    29,6 KB · Aufrufe: 15
Zuletzt bearbeitet:
und zur Frage, Ja es ist notwendig einen Ob aufzurufen, um mit dem Prozessalarm etwas auswerten zu können.
das ich den OB40 in der cpu haben muss und in diesem auf das ereignis reagieren muss ist klar.
ich meinte ob es überhaupt nötig ist den sfc40 aufzurufen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Um den Alarm auszuführen brauch es kein SFC40, ich musste ersteinmal googeln wozu der überhaupt gut ist.

Ich habe schon auf allen Plattformen, sehr häufig mit Prozessalarmen gearbeitet. Noch nie habe ich den
SFC gebraucht. Einfach den OB40 rein, Hardware einstellen und es muß funktionieren
 
@PN/DP: da hab ich mich sehr unglücklich ausgedrückt bzgl des OB´s "Aufrufs" ich meinte vielmehr das Einfügen des Ob´s als Baustein, ansonsten müsste die CPU auch in stopp gehen (wenn ich mich nicht täusche)

Wie bzw. woher weiss dann dann der "Prozessalarm" ohne SFC40 welchen Ob er aufrufen soll, um dementsprechend etwas auszuführen?
 
Zuletzt bearbeitet:
Wie bzw. woher weiss dann dann der "Prozessalarm" ohne SFC40 welchen Ob er aufrufen soll, um dementsprechend etwas auszuführen?

Aus der Hardwarekonfig, dort wird der CPU mitgeteilt, das der gewünschte Eingang
einen Prozessalarm ausführen soll. Bei der 31XC gibt es für diese Anwendung nur
einen, den OB40, also wird dieser aufgerufen. Einfach so ...
 
d.h. in dem Fall wird automatisch der OB40 verwendet.
Wenn weitere OB40-47 zuverfügung stehen muss dies aber mit dem SFc40 zugewiesen werden

Wenn ich das richtig in Erinnerung habe sind unterschiedliche Alarm OBs den 400er
Vorbehalten und dort wird dann auch in der Konfig eingestellt, welcher Baustein
aufgerufen werden soll. Die SFCs 39/40/41 dienen dazu die Alarmbearbeitung zu
deaktivieren und ggf wieder zu aktivieren. Wenn der OB da ist wird dieser erst einmal
Automatisch aufgerufen, wenn er denn nicht deaktiviert wurde.
 
ich habe jetzt einen test am lebendem projekt gemacht.
einen ausgang der vom taktmerker im 2 sek rhythmus blinkt auf e1.4 gelegt.

zuerst mal ohne sfc40 getestet. ob40 wird nicht angesprungen.
Ich würde mal
- für alle 16 Eingänge den Prozessalarm projektieren und testen
- im OB40 ein Word incrementieren (Aufrufzähler)
- eventuell testhalber den OB40 online löschen, dann geht die CPU bei Prozessalarm in STOP
- testhalber mal die Adressierung der integrierten Eingänge auf E124 stehen lassen (default Adresse)


cpu ist eine 6es7313-6ce01-0ab0 fw2.0
Da könnte eventuell ein Firmwareupdate sinnvoll sein.


ob es überhaupt nötig ist den sfc40 aufzurufen.
Braucht man nicht.
SFC40 braucht man nur, wenn man zuvor mit SFC39 Interrupts gesperrt hatte.


Um den Alarm auszuführen brauch es kein SFC40
[...]
Ich habe schon auf allen Plattformen, sehr häufig mit Prozessalarmen gearbeitet. Noch nie habe ich den
SFC gebraucht. Einfach den OB40 rein, Hardware einstellen und es muß funktionieren
So ist auch meine Erfahrung. Einfach nur Hardware Konfig laden und es funktioniert.


Wie bzw. woher weiss dann dann der "Prozessalarm" ohne SFC40 welchen Ob er aufrufen soll, um dementsprechend etwas auszuführen?
Weil diese CPU nur den einen Prozessalarm-OB OB40 unterstützt und die Prozessalarme der Signalbaugruppen fest mit dem OB40 verknüpft sind.
Die Zuordnung kann man nicht ändern, auch nicht mit SFC39/SFC40 - die sperren und enablen die Alarme nur zeitweise.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde mal
- für alle 16 Eingänge den Prozessalarm projektieren und testen
- im OB40 ein Word incrementieren (Aufrufzähler)
- eventuell testhalber den OB40 online löschen, dann geht die CPU bei Prozessalarm in STOP
- testhalber mal die Adressierung der integrierten Eingänge auf E124 stehen lassen (default Adresse)
alles mal getestet. ohne erfolg.
Da könnte eventuell ein Firmwareupdate sinnvoll sein.
habe nochmal online geschaut. firmware ist 2.0.11. das neuste ist 2.0.12 und in der updatebeschreibung steht nicht von prozessalarmen.

ich werde jetzt wohl hergehen und den ob35 alle 10ms aufrufen und das peb0 in ein merkerbyte transferieren.
bei 5ms geht die cpu in stop mit zyklusfehler wenn ich auf beobachten gehe.
das ist zwar nicht wirklich zufriedenstellend aber was anderes fällt mir jetzt nicht ein.

sollte das nicht funktionieren (erst mal warten bis ich die hardware installiert habe) könnte ich evtl was mit dem zählereingang machen. muss ich mal genauer drüber nachdenken
 
Hallo Volker,
da läuft doch irgend etwas schief bei dir, die CPU muss den Prozessalarm ausführen,
wenn den alles richtig eingestellt und die Software darauf hin angepasst ist.

Ein Prozessalarm funktioniert doch schon bei dieser Art der CPU seit der S5-95U !
 
ich wüsste nicht was ich da falsch machen kann.
in hwconfig den alarm unter eingänge anhaken. config übersetzen und übertragen.
ob40 in die cpu spielen. in ob40
set
s m100.0
merker wird nicht gesetzt. merker wird definitiv nicht irgendwo anders verwendet.
wenn ich ob40 beobachte und der alarm ausgelöst wird müsste man das sehen.

konkret geht es um folgende anwendung.
ich möchte den roten strich auf meinem zähler erfassen.
der zähler macht 75 u/kwh. bei 75kw verbrauch (habe nachtspeicher) dreht sich die scheibe 5625 mal pro stunde. also 0,64 sek pro umdrehung.
die scheibe hat geschätzt 9-10 cm im durchmesser. sagen wir mal einen umfang von 30 cm. der rote strich ist ca 1 cm lang.
==> 21 ms ist der rote strich zu sehen.

eine möglichkeit wäre den impuls zu verlängern. aber da ich seit 25 jahren mit elektonik nicht mehr viel am hut habe weiss ich jetzt, ohne mich wieder schlau zu machen, wie man das auf einfachen weg hinbekommt.
ich hänge die schaltung mal an.
der cny17f ist der optokoppler der das signal auf den eingang gibt.
 

Anhänge

  • IR-ReflexLichtschranke-S0.png
    IR-ReflexLichtschranke-S0.png
    6 KB · Aufrufe: 15
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast Du auch mal direkt 24V auf die Digitaleingänge gegeben? (z.B. Drahtbrücke oder Schalter)
Kannst Du den Eingang beobachten wie er von 0 auf 1 und wieder auf 0 geht und der OB40 setzt den Merker nicht? (ich steh' ja mehr auf Aufrufzähler)
Kannst Du den M100.0 in der Variablentabelle steuern (Strg-1/Strg-0)?

Hast Du die richtige CPU in HW Konfig gesteckt? Du könntest die mal testhalber als 313-6CE00 projektieren.

Nachtrag:
Hast Du weitere Technologiefunktionen projektiert, z.B. Zählen?
Du könntest auch mal versuchen den roten Strich mit einem schnellen Zähler zu zählen.

Harald
 
Zuletzt bearbeitet:
Hast Du auch mal direkt 24V auf die Digitaleingänge gegeben? (z.B. Drahtbrücke oder Schalter)
Kannst Du den Eingang beobachten wie er von 0 auf 1 und wieder auf 0 geht und der OB40 setzt den Merker nicht? (ich steh' ja mehr auf Aufrufzähler)
Kannst Du den M100.0 in der Variablentabelle steuern (Strg-1/Strg-0)?

Hast Du die richtige CPU in HW Konfig gesteckt? Du könntest die mal testhalber als 313-6CE00 projektieren.

Nachtrag:
Hast Du weitere Technologiefunktionen projektiert, z.B. Zählen?
Du könntest auch mal versuchen den roten Strich mit einem schnellen Zähler zu zählen.

Harald
Ich habe einen Ausgang, gesteuert über Taktmerker, auf den Eingang gelegt. der Eingang kommt auch. sowohl auf der Diode als auch im Pogramm sichtbar.
Den Merker kann ich steuern. Habe aber auch andere versucht.
CPU ist auf jeden Fall die richtige projektiert.
Alle Technologiefungtionen sind deaktiviert.

Das Gerät für den roten Strich habe ich noch nicht. Wie oben erwähnt teste ich das mit dem A->E.
 
Das klingt nicht normal, so als ob irgendwas kaputt wäre.
Hast Du vielleicht eine zweite CPU zum testen?

Ich würde mal ein komplett neues leeres Test-Projekt erstellen, in HW Konfig bei der CPU nur die Prozessalarme aller Eingänge freigeben und testen. Wenn kein Prozessalarm ausgelöst wird, dann ist wohl was kaputt. Dann würde ich versuchen, einen der 3 schnellen Zähler (E124.0/124.3/124.6) zu nutzen (Endlos-Zählen, Impuls/Richtung) - da reicht es, im OB1 den Zählerstand zu vergleichen, ob er sich geändert hat. Man könnte auch den Prozessalarm der HW-Tore (E124.2/124.5/125.0) freigeben und im OB40 auswerten (Zählerstand wäre dann egal). Das HW-Tor kann man auch nehmen um den OB40 zu testen; um zu sehen ob da der Prozessalarm ausgelöst wird oder ebenfalls nicht.

Harald
 
Zurück
Oben