TIA GRAPH Schrittnummer bei parallelen Schritten

Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe noch nie mit Prodiag gearbeitet.
Ich habe mir einen Aktoransteuerbaustein (z.B. für Pneumatikzylinder) geschrieben, welcher den Aktor ansteuert (je nach Ventil mit oder ohne Selbsthaltung), Positionsfehler und Freigabefehler ausgibt, je nach Betriebsart (Hand/Auto) und mech. Freigabe verriegelt ....

So einen Baustein nutzen wir auch seit etwa 30 Jahren. Immer wieder an aktuelle Erfordernisse angepasst.
Die letzte größere Anpassung daran war die Integration von Prodiag. Paarüberwachung, Laufzeitüberwachung, Verriegelungsüberwachung usw. funktioniert sehr gut damit. In dem Zusammenhang ist dann der PLC-Codeviewer auf den Panels interessant. Damit brauchst du dann kaum mehr ein Notebook zur Fehlersuche.
 
EDIT: Such mal in der Hilfe nach
Erweiterungs-Funktionsbaustein erstellen und einem GRAPH-FB zuordnen
Du machst einen neuen FB mit GENAU (!) den vorgegeben InOut Parametern.
Dann hast Du in "io_G7S" den Status aller Schritte und programmierst was du willst (Ich bereite damit die HMI-Anzeige auf).

In deinen Graph-Bausteinen machst Du an InOut den Datentyp deines FBs ran und beim Aufruf dann jeweils einen IDB deines FBs...
Ist am Anfang etwas friemelig (Zuordnung Schritt-Nr !) , Grenzen ermitteln, ....
Geht aber.
Sonst noch mal melden
 
Zuletzt bearbeitet:
Ja, das geht mit dem Erweiterungsbaustein viel besser als mit dem durchrollen von S_NO!

Siehe dazu die Dokumentation. Folgender Inhalt des Erweiterungsbausteins gibt dann die Schrittnummern der aktiven Schritte aus:

// Init
#Steps := #Steps_init;

// Boundaries
#iLowerBound := DINT_TO_INT(LOWER_BOUND(ARR := #io_G7S, DIM := 1));
#iUpperBound := DINT_TO_INT(UPPER_BOUND(ARR := #io_G7S, DIM := 1));

// Data acquisition
FOR #i := #iLowerBound TO #iUpperBound DO
IF #io_G7S[#i].X THEN
#Steps.usiNumber[#siNumberOfActiveSteps] := INT_TO_USINT(#io_G7S[#i].SNO);
END_IF;
END_FOR;

Nur die Schritt Namen bekomme ich noch nicht...
 
Zurück
Oben