Prioritätenliste 1 - 10

patrickm

Level-1
Beiträge
21
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

Ich Suche Ideen um eine Prioritätenliste zu erstellen.

Die Aufgabenstellung ist wie folgt :
Ich habe 10 Tanks, wobei jedem Tank 10 Sorten zugeteilt werden können.
Bei der Entleerung wenn mehrere Tanks die selbe Sorte haben, sollten sie eine aufsteigende Priorität 1-10 bekommen.
Die Priorität sollte nach Anwahl vergeben werden insofern sie die selbe Sorte besitzten.
Dieses Spiel sollte für jede Sorte für jeden Tank zugeordnet werden können.

Wenn jemand eine Idee hätte ich wäre sehr Dankbar

Danke im Vorraus :rolleyes:
Pat.
 
Hi ,
folgender Vorschlag Du ordnest jeder Sorte ein DB zu mit FiFo-Funktion so eine Funktion findest Du bei Volker auf der HP in der Du nach jedem Füllen eines Tanks mit einer bestimmten Sorte die Tanknummer in einem DW ablegst (hintereinander) und dann immer das entsprechende DW laden mit der Tanknummer aus der gezapft werden soll (erstes DW) wenn Tank leer einmal Weiterschieben.

HDD
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo HDD,

Danke zunächst für deine Antwort.
OK, das Auflisten für Füllen ist mir klar,
aber wenn ich nun ein oder mehrere Tanks mit der selben Sorte zum entleeren habe wie ordne ich mir dann die Tanks denn der Bediener z.B. möchte die Reihenfolge selbst bestimmen.

patrickm
 
Das ist an sich nicht so schwer zu machen, aber recht Zeitaufwändig.

10 Bausteine Für Tank mit DB

10 Bausteine Sortenanwahl mit DB

-Anzeige in der Sorte welche Tanks diese enthalten.
-Eine Reihenfolge 1-10 frei wählen lassen falls gewählter Tank Sorte enthaltet.
-- Mach 10 Datenbausteine mit Zahl 0-10
Nehmen wir an Tank 1 3 5 und 6 Haben Sorte A

Da machst du dir hierfür noch einen FB.

Erste Abfrage in DW0
Drücke 1, abfrage Sorte enthalten, wenn ja in Datenwort 0 die 1

Zweite Abfrage in DW2
Drücke 6, abfrage Sorte enthalten, wenn ja in Datenwort 2 die 6

Dritte Abfrage in DW4
Drücke 2, abfrage Sorte enthalten, passiert nichts, Anzeige falsche Auswahl.

Dritte Abfrage DW4 weiterhin
Drücke 5, abfrage Sorte Enthalten, wenn ja in Datenwort 4 die 5

Vierte Abfrage DW6
sonst will ich keine, den BEhäter 3 Will ich nicht auswählen oder keine weiteren vorhanen, bestätige ich mit Enter.
Schriebe in DW6, 8, 10, 12, 14, 16 eine 0



--

ann Abfrage ob etwas im Behäter.

DW0 = 1 Lehre Behäter 1 bis Lehr
Ist Behäter LEhr springe zu DW2
DW2 = 6 Lehre Behälter 6 bis Lehr
usw. usw.


Halt jetzt ganz grob als Struktur.

Hoffe ist dir hilfreich. Gibt auch noch einfachere Lösungen, aber in dem Weg währe es schön übersichtlich für dich und das sich jemand sehr shcnell darin einfindet.

u kannst auch mit reine Behäterdatens+tzenarbeiten und eine Hauptsortenanwahl. Habe ich so mal früher bei einen Gaszwischenlager programmieren müssen. Ist dann aber für andere schwer sich einzufinden.
 
Hi,
ja wenn der Bediener die Reihenfolge festlegen soll, so was habe ich mal folgenderweise gelöst ein Bild für jede Sorte in einem OP mit in deinem Fall 10 Auswahlfeldern mit hinterlegtem Text z.B. Tank1 wird in der Vari. eine 1 hinterlegt Tank 2 eine 2 also am Schluss maximal 10 Vari. dann kann er hier maximal pro Sorte 10 Tanks vorwählen. Beim leeren schiebst du die Datenwörter nach oben und füllst die unten mit 0 währe dann als Text leer.

HDD
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Welcher Tank hat denn die höchste Priorität?

Wenn der Tank 1 die höchste Priorität hat dann kannst ja in einer Schleife vom ersten Tank an gesehen nachschauen wann der nächste Tank das geforderte Produkt beinhaltet. Den entleerst du dann.

godi
 
Hallo Leute,

Die Priorität hat der Tank welcher vom Bediener als erster vorgewählt wurde. Das heißt wenn er z.B. T1 dann T4 dann T2 usw. anwählt dann müsste wenn alle diese Tanks dieselbe Sorte besitzten die Reihenfolge wie folgt sein :T1, T4, und T2.

Dies gilt dann für die restlichen Tanks mit anderer Sorte genauso.

patrickm
 
Hallo Leute,

Die Priorität hat der Tank welcher vom Bediener als erster vorgewählt wurde. Das heißt wenn er z.B. T1 dann T4 dann T2 usw. anwählt dann müsste wenn alle diese Tanks dieselbe Sorte besitzten die Reihenfolge wie folgt sein :T1, T4, und T2.

Dies gilt dann für die restlichen Tanks mit anderer Sorte genauso.

patrickm

Findest du mein Lösungsansatz verständlich oder ehr nicht so gut aufgebaut?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie wählt der Bediener die Priorität der Tanks aus?
Gibt es für jedes Produkt eine eigene Prioritätenliste?

Du könntest ja einen DB anlegen mit Prioritätenliste1 als Struct mit Tanknummer1 (Prioritätenliste1.Tanknummer1 enthält dann von deiner Prioritätenliste1 die Tanknummer mit der höchsten Priorität), Tanknummer2 usw bis 10. Für Prioritätenliste2 nochmals das selbe usw.
Dann legst du dir einen Word bereich an für Tank mit Medium gefüllt. (für Tank1 Bit1 für Tank2 Bit2 usw.)
Jetzt könntest du nach dem Medium 5 fragen. Da machst du dir eine Schleife mit nem Vergleicher und setzt alle Bits (in Tank mit Medium gefüllt) bei den Tanks die das Medium 5 beinhalten.
Danach Kontrollierst du ob für die Tanknummer in Prioritätenliste5.Tanknummer1 ein Bit gesetzt ist. Wenn ja dann leere deinen Tank. Wenn nein dann frage nach der Tanknummer in Prioritätenliste5.Tanknummer2 und kontrolliere ob das Bit gesetzt ist usw.

godi
 
Hallo Leute,

Also an sich wären eure Vorschläge gut aber ich denke ich habe euch einen Teil nicht genau genug beschrieben.
Und zwar Wenn der Bediener einen Tank (mit Sorte 1) vorwählt, dann ist dieser Nummer 1 in Reihenfolge für Entleeren. Wenn nun ein weiterer Tank (mit Sorte 1) dann ist dieser Nummer 2 in Reihenfolge ...usw.

Das Schreiben ist nicht das große Problem, mein Problem nummer 1 ist das Entleeren.
Denn Wenn in mitten der Liste einen Tank abgewähle wie fülle ich die Lücke mit den danachkommenden Tanknummern auf, da ich ja nicht genau weis wo dieser Stand.

patrickm
 
ich glaube da hab ich genau das was du suchst :ROFLMAO:

grundsätzliche funktion.

mit der positiven flanke einer aktion (bei dir tankanwahl) wird die stationsnummer in einen db geschrieben. die position im db wird mit dem zähler gehändelt.
ist nun die station die vorne im db steht fertig, wird der lifo-fc angesprungen. dieser schiebt alle daten des db um eins nach oben und somit die fertige station aus dem db raus. gleichzeitig wird der zähler verringert da ja nach unten wieder ein platz frei geworden ist.

das prog ist gekürtzt, sollte aber alle wichtigen bestandteile enthalten
 

Anhänge

  • lifo.zip
    21,7 KB · Aufrufe: 8
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Volker,

Ja so habe ich es in der Zwischenzeit auch zusammengedacht durch alle Antworten.
Jedoch ist noch ein Punkt offen wenn ich einen Tank irgendwo in der LIste Lösche wie kann ich dann den Fifo so verschieben dass die anderen nachrücken und ab wo ...
 
ich beziehe mich hier auf das prog von volker.
am lifo stehn statische werte für datenanfang und ende.
indem du den datenanfang variabel machst, kannst du auch nur einen teil verschieben.
 
Ich werds jetzt mal versuchen alle Eure Tipps in die Tat umzusetzten,
Melde mich wieder wenns funktioniert hat
Danke allen in der Zwischenzeit

patrickm
 
Zurück
Oben