-> Hier kostenlos registrieren
Hallo liebe Codierer,
ich nutze dieses Forum sehr oft, und komme auch meistens nur durch die Suche zur Lösung...
aber diesmal stoße ich grade an meine Programmiergrenzen...
Ich habe einen kleinen Puffer mit 11 Werkstückträgern (=WT) auf einem Laufband.
jeder Platz hat einen 'belegt' Sensor.
wenn ein WT auf einem Platz eingelagert wird, verweilt es dort 2h bis eine Art Prüfung abgelaufen ist.
ist dieses fertig, wird es wieder ausgelagert. (somit ist der 1.Platz frei)
werden während dieser Zeit weitere WT eingelagert, werden diese auf die nächsten freien Plätze gefahren.
ist der 1. Platz wieder frei, sollen die hinten anstehenden WT´s um einen verschoben werden.
also eine art Schieberegister. eigentlich nicht all zu schwer...
mein Problem ist jetzt, dass ich jeden einzelnen Platz übers HMI beliebig deaktivieren kann. (wg. defekten an Leitungen o.ä.)
wenn also beispielsweise Platz 3 und 5 deaktiviert sind , sollen diese auch nicht mehr angefahren werden.
--> wenn Platz 1 frei ist, dann soll wie folgt verschoben werden:
-2 auf 1
-4 auf 2
-6 auf 4 ...
für diesen Puffer hab ich ein array[0..11] of 'Datentyp' erstellt. (0=default zum Löschen)
meine ersten Ideen waren, dass ich die 11 Sensoren auf ein Temp-Array schreibe, und mir daraus mit einer FOR-schleife die Freien Plätze suche.
(frei = nicht belegt und nicht deaktiviert)
das funktioniert auch wunderbar.
somit kann ich mir auch den letzten freien Platz suchen und den nächsten WT dort hin fahren lassen.
nun hab ich aber meine Probleme dabei, dass ich beim Verschieben der Daten den deaktivierten Platz auslasse und dafür auf den nächsten Platz schreibe.
ich hab es hoffendlich verständlich erklährt, was ich machen möchte.
und vielleicht habt ihr ein paar bessere Ideen wie ich...
in SCL bin ich noch etwas unerfahren, komme aber eigentlich ganz gut zurecht...
vielen Dank schon mal!
MfG W@stl
ich nutze dieses Forum sehr oft, und komme auch meistens nur durch die Suche zur Lösung...
aber diesmal stoße ich grade an meine Programmiergrenzen...
Ich habe einen kleinen Puffer mit 11 Werkstückträgern (=WT) auf einem Laufband.
jeder Platz hat einen 'belegt' Sensor.
wenn ein WT auf einem Platz eingelagert wird, verweilt es dort 2h bis eine Art Prüfung abgelaufen ist.
ist dieses fertig, wird es wieder ausgelagert. (somit ist der 1.Platz frei)
werden während dieser Zeit weitere WT eingelagert, werden diese auf die nächsten freien Plätze gefahren.
ist der 1. Platz wieder frei, sollen die hinten anstehenden WT´s um einen verschoben werden.
also eine art Schieberegister. eigentlich nicht all zu schwer...
mein Problem ist jetzt, dass ich jeden einzelnen Platz übers HMI beliebig deaktivieren kann. (wg. defekten an Leitungen o.ä.)
wenn also beispielsweise Platz 3 und 5 deaktiviert sind , sollen diese auch nicht mehr angefahren werden.
--> wenn Platz 1 frei ist, dann soll wie folgt verschoben werden:
-2 auf 1
-4 auf 2
-6 auf 4 ...
für diesen Puffer hab ich ein array[0..11] of 'Datentyp' erstellt. (0=default zum Löschen)
meine ersten Ideen waren, dass ich die 11 Sensoren auf ein Temp-Array schreibe, und mir daraus mit einer FOR-schleife die Freien Plätze suche.
(frei = nicht belegt und nicht deaktiviert)
das funktioniert auch wunderbar.
somit kann ich mir auch den letzten freien Platz suchen und den nächsten WT dort hin fahren lassen.
nun hab ich aber meine Probleme dabei, dass ich beim Verschieben der Daten den deaktivierten Platz auslasse und dafür auf den nächsten Platz schreibe.
ich hab es hoffendlich verständlich erklährt, was ich machen möchte.
und vielleicht habt ihr ein paar bessere Ideen wie ich...

in SCL bin ich noch etwas unerfahren, komme aber eigentlich ganz gut zurecht...
vielen Dank schon mal!
MfG W@stl