Profinet-Diagnose

hey das sieht ja schon nicht so schlecht aus. kannst du das etwas näher errläutern...wo was gemacht werden muss??? ist etwas aus dem zusammenhang. Und das sieht mir verdammt nach vb aus oder???
 
Hallo,
ich habe jetzt Helmuts Lösung so probiert (sry Helmut mit der Frage nach der Variable OB86_Z23 - wer die F1-Taste bedienen kann ist klar im Vorteil):
Code:
//Kommendes Ereignis
      L     #OB86_EV_CLASS
      L     B#16#39
      ==I   
      =     #kommend
//gehendes Ereignis
      L     #OB86_EV_CLASS
      L     B#16#38
      ==I   
      =     #gehend
//Fehler Code für PROFINET IO-Stationsausfall/Stationswiederkehr
      L     #OB86_FLT_ID
      L     B#16#CB
      ==I   
      =     #Profinet_IO
//Teilnehmer Nr aus Bit 0 bis 10 ausmaskieren
      L     #OB86_Z23
      L     DW#16#7FF
      UW    
      T     #Teinehmer_Nr
und das ganze funktioniert prima!
Werde jetzt mal noch den Baustein von Daniel ausprobieren.
Gruß Schnicker
 
Hallo Daniel,
habe dein Programm auch mal ausprobiert. Ist auch ne schöne Lösung. Erinnert auch am meisten an den PB-FC, da ich auch ein Bit pro Teilnehmer auswerten kann.
Gruß Schnicker
 
@ all

Ich habe deine Awl-Quelle ausprobiert und werde jetzt damit arbeiten. Sie Funktioniert so wie ich es brauche.

Danke für eure Hilfe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kommende und gehende Erreichnisse

Ich habe die Ausfalldiagnose sehr ähnlich gemacht wie in diesem Thread vorgeschlagen wurde. Wenn OB86 meldet, dass ein Profinet-Station ausfällt, also ein "kommendes Erreichnis" wird ein zu diesem Station gehörendes Alarmbit gesetzt, und wenn das "gehende Erreichnis" kommt wieder zurückgesetzt. Leider habe ich hier noch nicht die Hardware um es auszuprobieren. Jetzt ist aber meine Frage: wird ein "kommendes Erreichnis" von OB86 irgendwann wiederholt, z.B. nach einem Versuch nochmals Kontakt mit dem Teilnehmer aufzunehmen, oder kommt es nur einmal. Des weiteren habe ich noch ein wenig Bedenken, es könnte irgendein Situation geben, dass mein Programm das "gehende Erreichnis" verpasst und der Alarm dann "für immer" stehen bleibt, dann wäre so eine wiederholung des "kommende Erreichnis" ganz nützlich, ich könnte dann nach einem Time-Out den Alarm automatisch zurücksetzen. Weiss jemand hier genaueres?
 
Hi,

anbei ein kleines Beispiel als AWL-Quelle mit der Auswertung über den SFC51 "RDSYSST". Hier kannst Du dann ganz einfach einen Ausfall eines Teilnehmers erkennen.

Gruss Daniel

Hallo !
Beim übersetzen der Awl Qulle bekomme ich immer 7 Fehler
Syntax Error usw. Mache ich was falsch ?
Kopiere den Code und füge ihn in einer neuen AWl Quelle ein
anschl. übersetze ich ihn .
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi, anbei ein kleines Beispiel als AWL-Quelle mit der Auswertung über den SFC51 "RDSYSST". Hier kannst Du dann ganz einfach einen Ausfall eines Teilnehmers erkennen. Gruss Daniel
Die Quelle ist sehr hilfreich, aber was mich noch interessieren würde ist, ob ich den Baustein auch im OB86 aufrufen kann. Eigentlich muss der nicht in jedem Durchlauf angestossen werden, sondern nur wenn es wirklich einen Ausfall gab, oder sehe ich das verkehrt? Danke schonmal
 
Die Quelle ist sehr hilfreich, aber was mich noch interessieren würde ist, ob ich den Baustein auch im OB86 aufrufen kann. Eigentlich muss der nicht in jedem Durchlauf angestossen werden, sondern nur wenn es wirklich einen Ausfall gab, oder sehe ich das verkehrt? Danke schonmal

Dann solltest du die Diagnose aber zusätzlich einmal nach dem SPS Neuanlauf aufrufen. Andernfalls würde deine Diagnose nicht funktionieren, z.B. wenn du schon mit ausgefallenem Teilnehmer die SPS hochlaufen lässt. Aber ich glaube so viel Rechenzeit benötigt der Baustein auch nicht, als dass man ihn nicht zyklisch aufrufen könnte.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kann jetzt nur sagen, dass der Aufruf im OB 86 und OB 100 nicht funktioniert. Da der SFC 51 wohl mehrere Zyklen lang braucht bis er das komplette Netzwerk untersucht hat, schafft er das wohl nicht wenn er im OB 86 oder OB 100 nur einmalig aufgerufen wird. Es stimmt, dass er nicht viel Zykluszeit verbraucht, aber man muss ihn trotzdem nicht in jedem Zyklus anstossen. Nunmehr rufe ich ihn mit dem MX.5 Blinker auf und bekomme mit nur einer kurzen Zeitverzögerung mit wenn ein PN Teilnehmer ausfällt.
 
Nunmehr rufe ich ihn mit dem MX.5 Blinker auf und bekomme mit nur einer kurzen Zeitverzögerung mit wenn ein PN Teilnehmer ausfällt.

Was versprichst du dir dadurch? Ein Zyklus, dann wenn der blinker den SFC51 auslöst ist ja dann trotzdem länger.
Nichts dagegen etwas das Zykluszeitbelastend ist zu optimieren, aber dann verteilt man die Aufgabe gleichmässig über mehrere Zyklen. Das tut die Funktion aber offenbar schon also würde ich solche Sachen nicht noch erweitern.

Es gibt nämlich auch Leute die Packen einen fetten Bubblesort in jeden 1000. Zyklus was zu recht lustigen Zykluszeitschiebungen führt die ein späterer Programmierer nur sehr schwer findet.

mfG René
 
Was versprichst du dir dadurch?
Ich möchte schlicht den Traffic auf dem Netzwerk verringern und Anfragen die mir nichts bringen soweit wie möglich reduzieren/ ganz verhindern. Wenn alles Fehlerfrei läuft ist das schön, aber ich muss es nicht jeden Zyklus nachfragen, sondern nur dann wenn es einen Ausfall gab.
Ein Zyklus, dann wenn der blinker den SFC51 auslöst ist ja dann trotzdem länger.
Natürlich, aber alle X00 Zyklen einen Zyklus länger ist schneller wie jeder Zyklus länger.
Nichts dagegen etwas das Zykluszeitbelastend ist zu optimieren, aber dann verteilt man die Aufgabe gleichmässig über mehrere Zyklen. Das tut die Funktion aber offenbar schon also würde ich solche Sachen nicht noch erweitern.
Ich wollte halt mal üben wie ich solch eine Diagnose in ein Programm einbauen kann, dass sie so klein und unauffällig ist wie nur möglich. Der SFC Aufruf in jedem Zyklus in dem er nicht bereits aktiv ist, erscheint mir unnötig und etwas in mir sträubt sich gegen Unnötiges.
Es gibt nämlich auch Leute die Packen einen fetten Bubblesort in jeden 1000. Zyklus was zu recht lustigen Zykluszeitschiebungen führt die ein späterer Programmierer nur sehr schwer findet. mfG René
Ja, solche Leute soll es ja geben. Ich habe in meiner kurzen Berufslaufbahn bisher nicht viel gesehen, aber was ich teilweise von Firmen gesehen habe, teilweise sogar sehr namhaften weltweit bekannten und agierenden Firmen, bringt etwas in mir echt zum sträuben. In dem Sinne ist mir gerade noch eingefallen, dass ich den Start der Abfrage über "Bit setzen" doch in den OB 86 und OB 100 legen kann, die Bearbeitung dann aber über mehrere Zyklen danach im OB1 erfolgt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Den Request, lege ich oft auch in den entsprechenden OB. Das funktioniert ganz gut. Wird immer etwas Tricky wenn man den SFC auch für andere Aufgaben nutzt und diesen aber nicht paralell über mehrere Aufträge ackern lassen will oder kann, bei der 400 ist das oft schnell mal kritisch, nicht weil sie weniger Aufträge paralell kann, sondern weil man bei der oft mehr Wissen will.

mfG René
 
Ich möchte schlicht den Traffic auf dem Netzwerk verringern und Anfragen die mir nichts bringen soweit wie möglich reduzieren/ ganz verhindern.
Die Abfrage der entprechenden SZLs über den SFC erzeugt aber keinen Traffic auf dem Netzwerk, er fragt nur die intern vorhandenen Informationen ab. Die Steuerung weiß in jedem Fall immer, ob ein Profinet-Teilnehmer vorhanden oder ausgefallen ist, auch ohne dass du den SFC anstößt.
 
Hi,

anbei ein kleines Beispiel als AWL-Quelle mit der Auswertung über den SFC51 "RDSYSST". Hier kannst Du dann ganz einfach einen Ausfall eines Teilnehmers erkennen.

Gruss Daniel


Vielen Dank für die AWL-Quelle, konnte was Hübsches daraus entwickeln. Der Grundgedanke hat echt weitergeholfen.
_________________________________________________________________________________________________

Gruß
 
Zurück
Oben