falseStau am Anfang eigener Bereich -> mit Stopper Antrieb ausSensor am Ende des Bereichs (invertierte Stauklappe!)Sensor im Bereich (invertierte Stauklappe!)Bereich +1 hat Rückstau -> Antrieb anhaltenAusschaltverzögerung des Antriebs ist abgelaufenAusschaltverzögerung des Antriebs ist aktivÜbergabefeld für StörungenFörderantrieb mit Nachlauf startenFörderantrieb stoppenStopper am Ende öffnenZu startende WaveZiel der zu startenden WaveWave, welche in diesen Bereich einfahren darf (-1 = Alle, 0 = Stop/Keine)-1Wave ist eingefahren -> Förderer leerfahrenAuf Förderer nach Kleidung suchenAktive Wave in diesem FörderbereichLetzte aktive Wave in diesem FörderbereichBereich aus welcher aktive Wave einfährt(EEEE = Nachlaufzeit aktiv, BereichsNr)Reset ist aktivGoIn im Bereich +1 zur Weiterfahrt benötigtDEST im Bereich +1 zur Weiterfahrt benötigtUnbekannte Kleidung bei RESET am FörderEnde erkannt (GoStart hier benötigt)"PC Loaded"-Bit wird erwartetReserveReserveReserveBereichs-Nr. des FörderbereichsNächster Bereich: DB (Parameter)Nächster Bereich: DW (Parameter)Ziel-FC vor Ausfahrt aufrufen, falls >0!DEST muss entweder im Bereich oder im Bereich+1 bekannt (PC_IN) sein !Stopper am Ende verbautKein Bereich +1 vorhanden/SorterbereichKleidung darf immer EinfahrenTRUEZum Beenden der Wave "PC Loaded"-Bit zusätzlich erforderlichAntrieb wird ausgeschaltet bei Stau +1Kein Neutriggern der Nachlaufzeit (nur bei Pin-Förderer ok!)aktive Wave vorhandenWave ist am Ende des Bereichs -> stoppenWave ist beim AusfahrenWave war am EndeNachlaufzeit ist aktivInput-Bit: Wave-Ausfahrt abbrechenInput-Bit: Neue Kleidung kommt von Bereich -11.Durchlauf fertigNachlaufzeit in Bereich +1 gestartetKleidung am Ende erkannt (bei Ausfahrt)Antrieb stop am Modul-EndeReset ist aktivReset war aktivNächster Bereich: DB (aktuell benützt)Nächster Bereich: DW (aktuell benützt)Reset ist aktivunbekannte Kleidung bei Reset erkanntBereich +1 noch andere Wave aktivNeu ausfahrende Kleidung durch PC_IN/GoIn gesperrtNeu ausfahrende Kleidung wegen ZielFC gestopptDEST-Info von PC_IN fehlt -> Ausfahrt gesperrtNeu ausfahrende Kleidung wegen Stau gestopptNeu ausfahrende Kleidung wegen wegen Input-Bit gestopptAusfahrende Kleidung durch PC_IN/GoIn gestopptAusfahrende Kleidung durch Stau +1 gestopptKein Bereich +1 definiertWave-Ausfahrt wegen Input-Bit abgebrochenWave-Ausfahrt wegen Bereich +1 (andere Source) abgebrochen"PC Loaded"-Bit wird erwartetFalls Puffer-FöBe: Ausfahrt wegen Einfahrt gesperrt (siehe PLC von Einfahrt)Falls Puffer-FöBe: Zug ist nicht am Stopper (Ausfahrt nicht möglich)Von PC freigegebene Wave starten (evtl. über DT)TRUEAktive Wave fertig (DT)"PC Loaded"-Bit ist gesetztLoaded-Signal von PC ist ausgewertetStartwert mit Offset 0Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)Ziel-FCBereich +1 ist definiertZiel-FC AufrufStandardMFöBereich160STLde-DEPC_IN:**************************************************************************
-GoStart: Zu startende Wave
(INT) IN: PC; PLC bei Reset-Start mit aktiver Wave
DEL: PC; PLC bei Wave starten und Wave/Reset beendet
-DEST: Ziel der zu startenden/aktiven Wave
(INT) IN: PC; PLC bei Wave-Einfahrt, falls DEST = 0 (DEST-1 <>0)
DEL: PC; PLC bei Wave/Reset beendet
-GoIn: Wave, welche in diesen Bereich einfahren darf
(INT) (0 = Stop/Keine, -1 = Alle, erlaubte Wave-Nr.)
IN: PC; PLC = -1, falls Parameter.Einfahren_immer_ok=1 und
Wave/Reset beendet
DEL: PC; PLC bei Wave/Reset beendet (Ausnahme s.IN)
-Loaded: Wave ist eingefahren -> Förderer leerfahren
(Bool) IN: PC
DEL: PLC
-Reset: Auf Förderer nach Kleidung suchen
(Bool) IN: PC
DEL: PLC
PLC_OUT:************************************************************************
-Wave_akt: Aktive Wave in diesem Förderbereich
(INT) IN/DEL: PLC
-Wave_last: Letzte aktive Wave in diesem Förderbereich
(INT) IN/DEL: PLC
-Source: Bereich aus welcher aktive Wave einfährt
(Word) (EEEE = Nachlaufzeit aktiv, BereichsNr)
IN/DEL: PLC
-Reset_akt: Reset ist aktiv
(Bool) IN/DEL: PLC
-GoIn_Plus_Err: GoIn im Bereich +1 zur Weiterfahrt benötigt
(Bool) IN/DEL: PLC
-DEST_Plus_Err: DEST im Bereich +1 zur Weiterfahrt benötigt
(Bool) IN/DEL: PLC
-Kleidungs_Err: Unbekannte Kleidung bei RESET am FörderEnde erkannt
(Bool) (GoStart hier benötigt)
IN/DEL: PLC
Int10Int0M160.1=Source; M160.3=Wave_akt + DEST wurde verändertErst malInt0sinnvoller Wert?Ja !Ziel-FC AufrufAlso kein nächster Bereich vorhandenNächster Bereich: DB (aktuell benützt)Nächster Bereich: DW (aktuell benützt)Int0Bekannt ?Ja !Default-Werte übergeben:Nächster Bereich: DB (aktuell benützt)Int0sinnvoller Wert?Nein !Nächster Bereich: DW (aktuell benützt)Int0sinnvoller Wert?Nein !Offset PC_INInt3Pointer erzeugen (Achtung: nur bis DWs <8192!)Bereich +1 ist definiertSTLde-DEde-DEOffsets / RückmeldungenZu startende WaveInt0von PC angegeben?Nein !Von PC freigegebene Wave startenbeide Tasten gleichzeitig nicht erlaubt! Alte WaveInt0noch aktiv ?Ja !Zu startende WaveWord16#0000von PC gestartetAlso nächster Bereich vorhandenInt0Teile kommen ja nie ans Ende!Zu startende WaveAuf Förderer nach Kleidung suchenAntrieb hat angefangen zu drehen (keine Leer-Meldung mehr!)Status R #Dyn.Status.EEEE_uebergebenErrorsNeu ausfahrende Kleidung wegen Stau gestopptNeu ausfahrende Kleidung wegen wegen Input-Bit gestopptKleidung am Ende erkannt (bei Ausfahrt)Sinnvolle WaveInt0aktiv ?Nein !Falls Kleidung bei Reset erkannt wird, dann sofort diese Wave !Letzte aktive Wave in diesem FörderbereichInt-1Reset-WaveWord16#EEEENachlaufzeit startenSTLde-DEde-DEWave zum Starten von PC vorhanden ? / Reset ?Int0aktive Wave vorhanden ?Ja !Word16#EEEENachlaufzeit starten ?Ja !***Einschalten bei:*********************************************************************************Aktive Wave vorhandenAntrieb stop am Modul-EndeWave will ausfahrenWave war am EndeAntrieb wird ausgeschaltet bei Stau +1, ...Neutriggerung, falls Taste nochmal betätigt Kleidung erkanntInput-Bit: Neue Kleidung kommt von Bereich -1***Nicht einschalten:*******************************************************************************Kein Stau am AnfangKleidung noch nicht am EndeKleidung am EndeAntrieb stop am Modul-EndeKein Bereich +1 vorhandenReset aktivVorhandene Wave ist noch nicht ausgefahrenWave war am EndeAntrieb soll leer fahrenKein Neutriggern der Nachlaufzeit (nur bei Pin-Förderer ok!)Input-Bit: Neue Kleidung kommt von Bereich -1***Nachlaufzeit aktiv*******************************************************************************Antrieb soll leer fahrenAntrieb stop am Modul-EndeAber Antrieb stehtAusschaltverzögerung des Antriebs ist abgelaufenKein Neutriggern der Nachlaufzeit (nur bei Pin-Förderer ok!)Kleidung erkanntmuss pro Zyklus neu neu gesetzt werden (von Extern)STLde-DEde-DEWave ist aktivLoaded-Signal von PC ist ausgewertetAktive Wave fertig (DT)beide Tasten gleichzeitig nicht erlaubt!Loaded-Signal von PC ist ausgewertetZum Beenden der Wave "PC Loaded"-Bit zusätzlich erforderlichInt0bekannt ?Ja ! -> Also auf Nachlaufzeit abgelaufen (EEEE) von dort warten!Zum Beenden der Wave "PC Loaded"-Bit zusätzlich erforderlichWord16#EEEENachlaufzeit startenSTLde-DEde-DEWave fertig geladen (PC/DT) ?Wave ist am Ende des Bereichs -> stoppenKeine Wave aktivWave fährt schon ausBereich +1 noch andere Wave aktivNeu ausfahrende Kleidung durch PC_IN/GoIn gesperrtNeu ausfahrende Kleidung wegen ZielFC gestopptDEST-Info von PC_IN fehlt -> Ausfahrt gesperrtNeu ausfahrende Kleidung wegen Stau gestopptNeu ausfahrende Kleidung wegen wegen Input-Bit gestopptKein Bereich +1 definiertWave ist am Ende des Bereichs -> stoppenErst mal alle möglichen Errors löschenNeu ausfahrende Kleidung wegen Stau gestopptNeu ausfahrende Kleidung wegen wegen Input-Bit gestopptReset aktiv ?:Auf Förderer nach Kleidung suchenWave zum Starten (vom PC)Int0Wave aktivierenInt0Wave zum Starten (vom PC)Auf Förderer nach Kleidung suchenReset war aktivBereich +1 ist definiertWave ist am Ende des Bereichs -> stoppenBereich-Plus:Also kein nächster Bereich vorhandenBereich +1 ist definiertKein Bereich +1 definiertFörderantrieb stoppenZiel-FC:Ziel-FC AufrufKeine Weiterfahrt von Ziel-FC !Beeinflussung der WeiterfahrtKeine Weiterfahrt von Ziel-FC !Förderantrieb stoppenAlso kein nächster Bereich vorhandenZeiger Bereich +1Übergabe von Ziel-FC, falls VeränderungInt0Nächster Bereich: DW (aktuell benützt)Offset PC_INInt3Pointer erzeugen (Achtung: nur bis DWs <8192!)Übergabe von Ziel-FC, falls VeränderungInt0Nächster Bereich: DB (aktuell benützt)Reset im Bereich +1?:Reset-AnforderungReset aktivBereich +1 noch andere Wave aktivFörderantrieb stoppenBereich+1/PC_IN: Leer oder gleiche Wave ?PLC_Out/Wave_aktInt0Leer ?Ja !Indentisch zur aktiven WaveNein !Bereich +1 noch andere Wave aktivFörderantrieb stoppenBereich+1/GoIn: Einfahren erlaubt ?PC_IN/GoInInt-1Alles erlaubt ?Ja!GoIn identisch zur erlaubten Wave ?Ja !Neu ausfahrende Kleidung durch PC_IN/GoIn gesperrtFörderantrieb stoppenDEST erforderlich ?DEST muss entweder im Bereich oder im Bereich+1 bekannt (PC_IN) sein !Ziel der zu startenden WaveInt0angegeben ?Ja !PC_IN/DEST im Bereich+1Int0angegeben ?Nein !DEST-Info von PC_IN fehlt -> Ausfahrt gesperrtFörderantrieb stoppenAusfahrende Wave abbrechen ?:Input-Bit: Wave-Ausfahrt abbrechenNeu ausfahrende Kleidung wegen wegen Input-Bit gestopptFörderantrieb stoppenStau in Bereich +1:Bereich +1 hat Rückstau -> Antrieb anhaltenFörderantrieb stoppenAlso kein nächster Bereich vorhandenDaten übergeben:aktive Wave PLC_Out/Wave_aktZiel der zu startenden WaveInt0angegeben ?Nein ! -> nicht übergebenZiel der zu startenden WavePC_IN/DESTBereichs-Nr.PLC_Out/SourceWave war am EndeWave ist am Ende des Bereichs -> stoppenM160.1=Source wurde verändertM160.3=Wave_akt + DEST wurde verändertWave ist am Ende des Bereichs -> stoppenFörderantrieb stoppenSTLde-DEde-DEWave am Ende erstmalig übergebenSensor am Ende des BereichsKleidung am Ende erkannt (bei Ausfahrt)Bereich +1 ist definiertAusfahrende Kleidung durch PC_IN/GoIn gestopptAusfahrende Kleidung durch Stau +1 gestopptKleidung am Ende erkannt (bei Ausfahrt)Ohne Stopper fahren bis Ende-Sensor erreicht !Wave-Ausfahrt wegen Input-Bit abgebrochenWave-Ausfahrt wegen Bereich +1 (andere Source) abgebrochenAusfahrende Kleidung durch PC_IN/GoIn gestopptAusfahrende Kleidung durch Stau +1 gestopptGoIn ok ?:Ausfahrende Kleidung durch PC_IN/GoIn gestopptPC_IN/GoInInt-1Alles erlaubt ?Ja!GoIn identisch zur erlaubten Wave ?Ja !Nur wenn Kleidung am EndeNur bei gleicher Wave/kein Reset in Bereich +1 weiterfahren:PLC_OUT/Wave_akt in Bereich +1 identisch ?Ja !Reset-AnforderungReset aktivDamit evtl. vorhandenes "EEEE" in Source +1 gelöscht wirdAlso obiges nicht gleich oder ResetAusfahrende Kleidung durch PC_IN/GoIn gestopptFörderantrieb stoppenStau in Bereich +1:Bereich +1 hat Rückstau -> Antrieb anhaltenNur wenn Kleidung am EndeAusfahrende Kleidung durch Stau +1 gestopptFörderantrieb stoppenAusfahrt wegen Bereich +1 abbrechen ?:PLC_Out/Wave_aktGleiche Wave ?Nein !Wave-Ausfahrt wird abgebrochenNeuanmeldung !/ S #Dyn.Status.Wave_am_Ende //Aktion sofort (nicht warten auf Kleidung/Sensor_Ende)Förderantrieb stoppen (diesen Zyklus noch!)Source in Bereich +1 auf "EEEE" setzen:Word16#EEEENachlaufzeit startenPLC_Out/SourceM160.1=Source wurde verändertPLC_Out/Sourcevon diesem Bereich ?Nein !Wave-Ausfahrt wird abgebrochenWave-Ausfahrt wird abgebrochenPLC_Out/Wave_aktPLC_Out/SourceInt0alles abgearbeitet ?Ja ! PLC_Out/Wave_aktGleiche Wave ?Ja ! Reset-AnforderungReset aktivWave-Ausfahrt wird abgebrochenNeuanmeldung !/ S #Dyn.Status.Wave_am_Ende //Aktion sofort (nicht warten auf Kleidung/Sensor_Ende)Förderantrieb stoppen (diesen Zyklus noch!)Ausfahrende Wave abbrechen ?:Input-Bit: Wave-Ausfahrt abbrechenWave-Ausfahrt wird abgebrochenBereich +1 ist definiertSource in Bereich +1 auf "EEEE" setzen:Word16#EEEENachlaufzeit startenPLC_Out/SourceM160.1=Source wurde verändertWave-Ausfahrt wird abgebrochenInput-Bit: Wave-Ausfahrt abbrechenWave-Ausfahrt wegen Bereich +1 (andere Source) abgebrochenNeuanmeldung !/ S #Dyn.Status.Wave_am_Ende //Aktion sofort (nicht warten auf Kleidung/Sensor_Ende)Förderantrieb stoppen (diesen Zyklus noch!)Ausfahrt abgebrochen:Wave-Ausfahrt wegen Input-Bit abgebrochenWave-Ausfahrt wegen Bereich +1 (andere Source) abgebrochenFörderantrieb stoppenSTLde-DEde-DEAusfahrende Wave stoppen / unterbrechen ?Bereich +1 ist definiertKein autom. Löschen, da evtl. Abbruch in Bereich +1 durch Ziel-FC erwünscht!Gleiche Wave im Bereich +1 noch aktiv ?:Wieder gleiche Wave ?PLC_Out/Wave_aktNein !Source in Bereich noch auf "EEEE" ?:PLC_Out/SourceWord16#EEEENachlaufzeit startenNein !Bereich wieder übergeben -> Neutriggerung AntriebPLC_Out/Source/ S #Dyn.Status.Wave_am_Ende //Aktion sofort (nicht warten auf Kleidung/Sensor_Ende)M160.1=Source wurde verändertSTLde-DEde-DESource "EEEE" im Bereich +1 löschen Kleidung am Ende erkannt (bei Ausfahrt)Wave ist am Ende des Bereichs -> stoppenNeu ausfahrende Kleidung wegen Stau gestopptAusfahrende Kleidung durch Stau +1 gestopptFörderantrieb stoppenNegierter Sprung !Bereich +1 ist definiertAlso jetzt Bit setzen (wird im Modul "Bereich +1" zurückgesetzt):PLC_Out/Wave_aktGleiche Wave ?Nein !Int0Andere Wave vorhanden ?Ja !Input-Bit: Neue Kleidung kommt von Bereich -1STLde-DEde-DE"Neue Kleidung kommt" im Bereich +1 setzen Antrieb stop am Modul-EndeFörderantrieb stoppenAktion sofort (nicht warten auf Kleidung/Sensor_Ende)Kein Neutriggern der Nachlaufzeit (nur bei Pin-Förderer ok!)Antrieb wurde neu gestartetFörderantrieb stoppenAntrieb stop am Modul-EndeFörderantrieb stoppenKleidung am AusfahrenFörderantrieb stoppen, da Kleidung am Stopper gestoppt wirdSensor am Ende des BereichsAntrieb stop am Modul-EndeAktion sofort (nicht warten auf Kleidung/Sensor_Ende)Kleidung am Ende erkannt (bei Ausfahrt)Kein Neutriggern der Nachlaufzeit (nur bei Pin-Förderer ok!)KB hat gerade Ende-Sensor verlassenSTLde-DEde-DEStopperAntrieb wird noch gestartetKleidung noch im Bereich (Folgendes wegen EnergySaver)Aktion sofort (nicht warten auf Kleidung/Sensor_Ende)Kleidung am Ende erkannt (bei Ausfahrt)Antrieb stop am Modul-EndeWave war am Endeund Bereich +1 vorhandenReset aktivAusschaltverzögerung des Antriebs ist abgelaufenReset aktivReset war aktivZum Beenden der Wave "PC Loaded"-Bit zusätzlich erforderlichAuswertung wiederholenLetzte aktive Wave in diesem FörderbereichWave war am EndeReset aktivBereich +1 ist definiertSource in Bereich +1 auf "EEEE" setzen, falls Bereich +1 gleiche Source:PLC_Out/Sourcevon diesem Bereich ?Nein !Word16#EEEENachlaufzeit startenPLC_Out/SourceM160.1=Source wurde verändertWave schon zum Starten angegeben,aber anders als bisher aktive ?Ja ! -> nicht löschenBei Reset immer löschen!Int0Int0 T #Dyn.BereichPlus_DB //Bleibt, falls Reset, usw. mit Bereich+1-Zugriff T #Dyn.BereichPlus_DWLoaded-Signal von PC ist ausgewertetWave war am EndeUrsprünglicher Bereich +1 übergeben:Nächster Bereich: DB (aktuell benützt)Nächster Bereich: DW (aktuell benützt)Int-1-1 = Alles darf einfahrenSTLde-DEde-DEGeladene Wave ausgefahren ?Werden extern erzeugt, und für Anzeige an PC/OP übergebenWerden extern erzeugt, und für Anzeige an PC/OP übergebenSTLde-DEde-DEZusätzliche Bit für PLC_Out:STLde-DEde-DEEndede-DEFörderbereich Kleidung