# Vorrangschaltung



## Ingeborg (26 August 2009)

Moin Jungs,

stehe gerade voll auf dem Schlauch. Meine Problematik ist folgende:

Ich möchte aus 4 Tanks Produzieren. Jeder Tank kann für die Produktion vom Bediener angewählt werden. Ist der produzierende Tank leer, soll auf den nächsten vorgewählten Tank geschaltet werden. Wichtig ist dabei die Einhaltung der Reihenfolge. Also z.B. Auswahlreihenfolge: Tank 1-3-4-2, ist nun Tank 1 leer sollte Tank 3 starten usw.

Ist bestimmt easy, habe aber riesigen Knoten im Kopf...


----------



## Larry Laffer (26 August 2009)

Na ... so einfach ist es denn nun doch nicht ...

Wichtig ist hier in erster Linie erstmal der Bediener-Dialog.
Hier würde ich die die Reihenfolge der Tank-Nummern in einen DB schreiben (in Byte 0..3 z.B.).
Am Start der Lese-Pointer für den DB auf Byte 0.
Ist der Tank[Pointer] abgearbeitet, so erhöhst du den Pointer und bearbeitest den entsprechend nächsten Tank.

Gruß
LL


----------



## Ingeborg (26 August 2009)

Danke Larry für die schnelle Antwort,

aber das Problem ist noch nicht vom Tisch, oder ich stehe auf allen Schlächen die es so gibt... 

Nicht die Aufrufreihenfolge von der CPU her (Programmablauf) sollte als Abarbeitung der Tanks dienen, sondern die Reihenfolge der Produktionsfreigabe durch den Bediehner (per Bit) legt die Reihenfolge fest. Wird ein freigegebener Tank der noch nicht produziert rausgenommen und wieder freigegeben muss dieser als letztes in die Produktion mit aufgenommen werden...

Sorry, ist wohl doch eher eine "Kopfnuss" für schöne abendliche Stunden und einer Flasche ...


----------



## Larry Laffer (26 August 2009)

... das hatte ich (glaube ich) schon richtig verstanden ... 

Du kommst hier um einen Abarbeitungs-Stack (FIFO) nicht drum herum.
Entscheidend für das SPS-Programm (das letztlich dann nur einen Puffer ausliest und abarbeitet) ist in erster Linie der Bildschirmdialog. Ich würde das so ausführen, dass der Bediener die vorgegebene Reihenfolge auch "sehen" kann. Wenn du das mit "Bit setzen" und "Bit rücksetzen" und Berücksichtigung einer chronologischen Reihenfolge machen willst, dann geht das sicher auch, stellt aber noch größere Ansprüche an dein Script.

Gruß
LL


----------



## Ingeborg (26 August 2009)

Ja das sehe ich auch so, vielen Dank Larry.


----------



## Larry Laffer (26 August 2009)

... und nun ... wie geht es weiter ?


----------



## hausenm (26 August 2009)

Dialog über WinCC oder Intouch- dort gibt es Rezepturen. Dann müssen die Tanks nur initialisiert werden (zB. -463B23-HF1 oder so) . 
In der Rezeptur legt der Bediener die Reihenfolge der Ansteierung fest.
Diese Reihenfolge wird dann bei einer "Leermeldung" angesprochen.
Den leeren Tabk kannst du dann "rausnehmen" und zB CIPen oder was auch immer.
Haut so seit satten 12 Jahren bei Biotest hin.


----------



## Ingeborg (31 August 2009)

Moin Jungs,

der Bediener-Dialog wird mittels WinCC flex realisiert. Habe mit dem Kunden Rücksprache gehalten und einen fifo Puffer installiert. Kunde ist happy .

Vielen Dank für Eure Unterstützung.


----------

