1 bDone := TRUE; bCmdOpenSpindle := FALSE; IF rtStart.Q AND bInfeedEnabled THEN bExecute := FALSE; bDone := FALSE; nState := 10; END_IF 10: // Warten auf Einschaltbereit wStW1.0 := 0; // Ein wStW1.1 := 1; // Nicht Austrudel wStW1.2 := 1; // Kein Schnellhalt wStW1.3 := 1; // Betrieb freigeben wSTW1.4 := 1; // EPOS nicht Verwerfen wSTW1.5 := 1; // EPOS kein Zwischenhalt wSTW1.6 := 0; // EPOS Verfahrauftrag aktivieren 0 -> 1 IF wZSW1.0 THEN // Einschaltbereit nState := 20; END_IF 20: // Warten auf Betriebsbereit wStW1.0 := 1; // Ein wStW1.1 := 1; // Nicht Austrudel wStW1.2 := 1; // Kein Schnellhalt wStW1.3 := 1; // Betrieb freigeben wSTW1.4 := 1; // EPOS nicht Verwerfen wSTW1.5 := 1; // EPOS kein Zwischenhalt wSTW1.6 := 0; // EPOS Verfahrauftrag aktivieren 0 -> 1 IF wZSW1.2 THEN // Betriebsbereit nState := 30; END_IF 30: // Betreibsbereit -> Greifen wStW1.0 := 1; // Ein wStW1.1 := 1; // Nicht Austrudel wStW1.2 := 1; // Kein Schnellhalt wStW1.3 := 1; // Betrieb freigeben wSTW1.4 := 1; // EPOS nicht Verwerfen wSTW1.5 := 1; // EPOS kein Zwischenhalt wSTW1.6 := 1; // EPOS Verfahrauftrag aktivieren 0 -> 1 // Starte beim ersten Satz uiSatzAnw := 0; IF wZSW1.12 AND (NOT wZSW1.10) THEN // Verfahrauftrag aktiv nState := 40; END_IF 40: // Warten auf in Position wSTW1.6 := 0; // EPOS Verfahrauftrag aktivieren 0 -> 1 IF wZSW1.10 THEN nState := 50; END_IF 50: // Warten auf Spindel offen bCmdOpenSpindle := TRUE; uiSatzAnw := 1; IF bSpindleOpen THEN nState := 60; END_IF 60: // Warten auf nächste Position (Werkzeuge getauscht) wSTW1.6 := 1; // EPOS Verfahrauftrag aktivieren 0 -> 1 IF wZSW1.12 AND (NOT wZSW1.10) THEN nState := 65; END_IF 65: // Warten auf in Position wSTW1.6 := 0; // EPOS Verfahrauftrag aktivieren 0 -> 1 IF wZSW1.10 THEN nState := 70; END_IF 70: // Warte auf Spindel zu uiSatzAnw := 2; wSTW1.6 := 0; bCmdOpenSpindle := FALSE; IF (NOT bSpindleOpen) THEN nState := 80; END_IF 80: // Warte auf nächste Position (Ruheposition) wSTW1.6 := 1; IF wZSW1.12 AND (NOT wZSW1.10) THEN nState := 85; END_IF 85: // Warte auf position erreicht wSTW1.6 := 0; // EPOS Verfahrauftrag aktivieren 0 -> 1 IF wZSW1.10 THEN nState := 90; END_IF 90: // Ausschalten wStW1.0 := 0; // Ein wStW1.1 := 1; // Nicht Austrudel wStW1.2 := 1; // Kein Schnellhalt wStW1.3 := 1; // Betrieb freigeben wSTW1.4 := 0; // EPOS nicht Verwerfen wSTW1.5 := 0; // EPOS kein Zwischenhalt wSTW1.6 := 0; // EPOS Verfahrauftrag aktivieren 0 -> 1 IF NOT wZSW1.1 THEN nState := 0; END_IF 99: // Error bError := TRUE; END_CASE // Umrichterwerte schreiben uiSTW1 := WORD_TO_UINT(wSTW1);]]>