TIA Abfrage Logik für ein Hochregallager

Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
wie shrimps in #2 schon geschrieben hat, wäre das mit einem Platzdate-DB und einem zweidimensionalem Array sehr charmant zu lösen.
Dafür müsstest du als erstes einen DB bestehend aus Array[1..5,1..5] of Bool erstellen
Der erste Bereich des Arrays repräsentiert deine X-Koordinaten, der zweite deine Y-Koordinaten.
-> ist der Bool-Eintrag true, dann ist das Fach belegt.
Anhang anzeigen 41373
Dein FC müsste in SCL jetzt z.B. so aussehen, dass du zwei ineinander geschachtelte FOR-Schleifen verwendest, in der äußeren zählst du bspw. die Y-Koordinaten hoch, in der inneren die X-Koordinaten.
Hast du ein freies Feld gefunden, dann gibst du die Schleifenzähler als Koordinaten aus deinem Baustein heraus.
Anhang anzeigen 41374
Das wäre mal ein mögliches Vorgehen. Dazu kannst du deinen DB remanent machen, dann behält er auch beim Ausschalten, deine aktuelle Belegung.
Den FC könntest du noch mit einem Start-Eingang versehen, um ihn einmal vor deiner Positionierung zu starten.
Den Fall, wenn kein Fach frei ist, musst du gesondert behandeln -> was soll dann passieren (z.B. Störung "Lager ist voll" anzeigen)

Hallo, deine Lösung ist sehr elegant,

wie schreibt dein Programm ein true in den Array? Das klappt bei mir leider nicht.

Schöne Grüße Christian
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mahlzeit,
wir stehen gerade vor dem gleichen Problem, wissen quasi nicht wie wir nun weiter machen sollen damit ein True gesetzt wird. Haben ein Hochregallager von x=5 und y=4. Wir haben eine Schrittkette in FUP programmiert und müssen jetzt quasi die einzelnen Plätze zuweisen...sind am hin und her versuchen kommen aber leider nicht wirklich weiter. Hat vielleicht jemand einen kleinen Gedankenanstoß wie wir weiter vorgehen können?

Mit freundlichen Grüßen
 
Moin,
gleiche Antwort wie beim letzen mal. Jedes mal, wenn das RBG etwas an Stelle x,y einlagert, dann setzt ihr das Bit an Stelle x,y in eurem DB auf true um zu markieren, dass dieses Fach x,y belegt ist.
Oder wo liegt das Problem?
 
Im Automatikbetrieb ( Lager leeren bzw füllen ) funktioniert diese Herangehensweise leider nicht wir versuchen es mal weiter. :)
 
Im Automatikbetrieb ( Lager leeren bzw füllen ) funktioniert diese Herangehensweise leider nicht.
Welche BetriebsArten habt ihr?
In Automatik funktioniert es nicht . . . habt ihr eine BetriebsArt, in der es bereits funktioniert?
Was läuft da anders?
Bereitet das Arbeiten mit Arrays irgendwelche Probleme? Welche?
Nutzt ihr Arrays, um z.B. die X- und Y-Koordinaten der LagerPlätze abzuspeichern?
Wenn ja, benutzt ihr dafür z.B. Arrays of DINT und wisst nicht, wie ihr ein Array of BOOL dazwischen fummeln sollt?
Man kann doch auch ein Array of INT oder DINT dazu missbrauchen, lediglich die Info belegt bzw. nicht belegt abzuspeichern.
Ich könnte mir z.B. vorstellen, dass man ein Array hat, in dem man für jedes RegalFach die Info abspeichert, wieviel die dort abgelegte Ware wiegt. Dann könnte man es so machen, dass =0 immer bedeutet, das Fach ist leer und <>0 bzw. >0 das Fach ist belegt.
Ich denke mal, dass ein Array of Struct für diese Anwendung am sinnvollsten ist.
Nicht ganz so übersichtlich wäre ein mehrdimensionales Array und für "Anfänger" im Umgang mit Arrays wäre dies ausserdem wohl eher abschreckend.
Wie wäre es mit je 1 Array für die verschiedenen Informationen (X-Koordinate, Y-Koordinate, Gewicht, Status, etc. ...)?
Wenn man nur wüsste, worin euer Problem konkret besteht . . .
 
Zurück
Oben