Fehler Auswerten mit OB82/86

Ricko

Level-1
Beiträge
118
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS_ler!

ich möchte einfache Fehler im OB82 (Spannung fehlt) und im OB86 (Teilnehmer Ausfall) auswerten.

Die Anlage besteht nur aus 2 CPU 315-2DP (Master/Slave).
Die fehlende Steuerspannung (24V) soll mit Hilfe Diagnosefähiger AE Baugruppe gemeldet werden. Fehler Anzeige an dem MPanel.

Im OB82
L #OB82_FLT_ID
L B#16#42
== I
S M1.1 (wird angezeigt), aber wie setze ich ihn zurück ?


oder
U #OB82_EXT_VOLTAGE
= M1.2 (wird angezeigt), brauche es nicht RS !?

Muss ich alle Fehler auswerten damit die CPU nicht in STOP geht?


Im OB86
L #OB86_FLT_ID
L B#16#C4 (Ausfall einer Station)
== I
= M1.3 (wird nicht angezeigt!)

oder sollte ich den FC3 (DP_DIAG) nehmen?

Auf dem Master zeigt dann den Slave Ausfall und umgekehrt?


Grüße
Ricko
 
Muss ich alle Fehler auswerten damit die CPU nicht in STOP geht?

Nein. Wenn ein Fehler auftritt, dann versucht die CPU den Fehler-OB aufzurufen.
Ist dieser nicht vorhanden geht Sie in den meisten Fällen auf STOP.
Ist dieser in der Steuerung vorhanden, dann geht die CPU nicht in STOP.

Wenn du willst, dass sie in STOP geht, dann mußt du ihr das sagen.
Code:
call sfc46 "STP"

gruß wolder
 
Fehlerauswertung OB86

Dieses Beispiel gibt Aufgrund eines Stationsausfalles ein Bit aus (#Kommender_Fehler=1).
Desweiteren enthält das Byte #NR_ST die Nummer der ausgefallenen Station.
Über die Bedeutung von LB11 lies bitte die Doku OB86.Es beinhaltet die Nummer der Station.
Code:
// wenn eine Station ausfälllt gebe ein Bit 1=aktiv aus
L #OB86_FLT_ID // Auswertung Fehler kommend
L W#16#39
= #Fehler_Ereignis_ID_kommt
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
L #OB86_FLT_IDL  // Auswertung Fehler ID w#16#c4 Ausfall einer DP Station Fehler kommend
L B#16#C4
==I 
U #Fehler_Ereignis_ID_kommt
= #Kommender_Fehler //Bitzuweisung bool
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
L #OB86_FLT_ID // Auswertung Fehler ID w#16#c4 Ausfall einer DP Station Fehler gehend
L B#16#C4
UN #Fehler_Ereignis_ID_kommt
==I 
R #Kommender_Fehler //Bitzuweisung bool
//Auswertung Nr der Ausgefallenen DP Station
L 0 //Vorbelegung der ausgefallenen Stationnummer mit 0
T #NR_ST //Nummer der DP Station ablage in Byte
CLR 
U #Kommender_Fehler // wenn kein Stationsausfall Ende
SPBN m001
L LB 11 // Nummer der ausgefallenen Station 
T #NR_ST
m001: NOP 0
 
Zuletzt bearbeitet:
So sollte es auch funktionieren:

Code:
U(
L #OB86_FLT_ID
L B#16#C4                //Ausfall einer Station
== I
)
U(
L #OB86_EV_CLASS
L B#16#39                //kommendes Ereignis
== I
)
S  M1.3

U(
L #OB86_FLT_ID
L B#16#C4                //Ausfall einer Station
== I
)
U(
L #OB86_EV_CLASS
L B#16#38                //gehendes Ereignis
== I
)
R  M1.3
Wenn es nur einen Slave im Mastersystem gibt, erübrigt sich ja die Ermittlung der Adresse des ausgefallenen Teilnehmers.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
So sollte es auch funktionieren:

Code:
U(
L #OB86_FLT_ID
L B#16#C4                //Ausfall einer Station
== I
)
U(
L #OB86_EV_CLASS
L B#16#39                //kommendes Ereignis
== I
)
S  M1.3

U(
L #OB86_FLT_ID
L B#16#C4                //Ausfall einer Station
== I
)
U(
L #OB86_EV_CLASS
L B#16#38                //gehendes Ereignis
== I
)
R  M1.3

Sieh auf jeden Fall auch noch eine Möglichkeit vor, den Fehler (M1.3) außerhalb des OB zurückzusetzen. Ich habe es schon erlebt, daß ein gehendes Ereignis vom OB nicht registriert wurde und der Fehlermerker ist dann nicht mehr wegzubekommen, außer, ein neuer Fehler tritt auf. Außerdem gibt es von Siemens fertige Fehler-FC/FB, die dir ziemlich gute Auskünfte geben, aber ein wenig Zykluszeit konsumieren. Die alten FC/FB waren die FC125, FB125, die Neuen sind glaube ich FC126,FB126)
 
Sieh auf jeden Fall auch noch eine Möglichkeit Fc125,FB125,FB126

Die von Siemens können auch nicht Zaubern.
Wenn das AS einen Fehler nicht registriert,werden die angegeben Bausteine auch nicht gestartet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und was willst du uns damit nun genau sagen?

Wenn ein Fehler geht und die SPS das Ereignis nicht erkennt,weden die entsprechenden OB`s auch nicht gestartet.Somit auch nicht fc125,fb125,fb126.Ausserdem kann man dann nicht innerhalb der OB`s diffenzieren ob die SPS in STOP gehen soll oder nicht.Das muß dann wieder händisch in den OB`s nachprogrammiert werden. Lange Rede kurzer Sinn,
wenn das System auf die eigenen Bedürfnisse angepasst werden soll, kommt man nicht darum hin,sich mit den Deklarationen der OB`s auseinanderzusetzen.

Viele Grüße Bernard
 
Wenn ein Fehler geht und die SPS das Ereignis nicht erkennt,weden die entsprechenden OB`s auch nicht gestartet.Somit auch nicht fc125,fb125,fb126.Ausserdem kann man dann nicht innerhalb der OB`s diffenzieren ob die SPS in STOP gehen soll oder nicht.Das muß dann wieder händisch in den OB`s nachprogrammiert werden. Lange Rede kurzer Sinn,
wenn das System auf die eigenen Bedürfnisse angepasst werden soll, kommt man nicht darum hin,sich mit den Deklarationen der OB`s auseinanderzusetzen.

Viele Grüße Bernard

Ich hab noch nie eine SPS als Fehlerreaktion absichtlich ( ;) )in den Stop geschickt. Wenn schon, dann schalte ich die Anlage aus, aber nie die SPS in Stop. Der FB125 liefert eigentlich fast alle nur möglichen Informationen, schon fast zu viele, daher nutzen einige ja den FC125. Bisher hat der mein Informationsbedürfnis und das der Kunden immer eher übererfüllt. :ROFLMAO: Ich sehe keinen Grund, außer bei älteren VIPA, bei denen der FB nicht funktioniert, da um jeden Preis selbst Hand anzulegen. Ok, Zykluszeit sparen, das wäre der einzige Grund.
 
Ich hab noch nie eine SPS als Fehlerreaktion absichtlich ( )in den Stop geschickt

Ich schon,um mir im Inbetriebnahmefall nicht die Diagnosedaten zu zerschrotten(B_Stack,U_Stack).
 
Setz du nicht auch viele Vipa CPU`s ein??

Nein,hauptsächlich CPU315 2 PN/DP oder neuerdings WINAC 2008 RTX.
Die Soft SPS allerdings erst einmal nur zum testen im Büro
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wir sprachen ja auch von regulären Betrieb der SPS und nicht davon, den OB82 für die

Egal welcher Betrieb auch Immer.Meines Erachtens sollte ein S7-Programmierer in der Lage sein ,den OB-Deklarationsteil auszuwerten.
Die Frage des Themenstarters bezog sich auf die Fehlerauswertung mittels Deklarationsteil der OB`s.Nichts gegen die FC-FB von Siemens,aber wer den allgemeinen Ablauf nicht versteht,dem ist damit nicht unbedingt geholfen.

Viele Grüß Bernard
 
Ich hab auch immer mit den Temporären Variablen gearbeitet.
Jetzt such ich die FC125,FB125... um die mal auszuprobieren.

Wo sind die zu finden?
In den Bibliotheken kann ich die nicht finden, oder muß ich mir die irgendwo bei Siemens runterladen?

Gruß wolder
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Egal welcher Betrieb auch Immer.Meines Erachtens sollte ein S7-Programmierer in der Lage sein ,den OB-Deklarationsteil auszuwerten.
... wenn er sich denn sinnvoll auswerten läßt ...
Ich hatte irgendwann auch einmal versucht mittels der Ereignis-Bits /-Bytes eine Fehler-Auswertung zu programmieren. Die hat nicht unbedingt immer sauber funktioniert. Das hat sich dann gelegt, wo ich die Bausteine von Siemens dafür eingesetzt habe - bei mir war es dann der FC125 (der reichte mir völlig). Hier gibt es dann allerdings auch den signifikanten Unterschied. Der FC125 wertet gar nicht irgendwelche OB-Bits aus sondern der wird nur angetriggert und holt sich seine Infos mittels des SFC51 für jeden Teilnehmer und korrigiert seinen gespeicherten Status dann auch entsprechend.

Gruß
LL
 
Zurück
Oben