F
Flatpro
Guest
-> Hier kostenlos registrieren
Hallo zusammen,
ich häng gerade voll in der Luft, darum ergieße ich mal mein Geist in diesen Beitrag
Ich habe eine Kiste mit 10 Reihen, 5 Spalten und 4 Lagen, sagen wir mal alles im 20mm Raster.
Ich möchte die x,y,Z-Position zur Laufzeit berechnen, d.h. Immer wenn ich meinen Greifer öffne Incrementiere ich meinen Teilezeiger um + 1
Es sollen zuerst die Reihen befüllt werden und danach die Spalten und danach die Lagen.
In AWL wüsste ich wie ich das mache aber wie zum Geier macht man da "schön" in SCL?
Nun habe ich zwei Ansätze:
1. Ich schaffe mir einen Reihen, Spalten und Lagenzähler ==> z.B. Ich lege Teil 12 ab also Reihe 2, Spalte 2, und Lage 1
AnzahlPalettenNester := AnzahlReihen x AnzahlSpalten x AnzahlLagen;
// Berechnung initialisieren
L INT#1
T Reihenzähler
T Spaltenzähler
T Lagenzähler
// Reihe, Spalte und Lage bestimmen
FOR i=1 to Palettenzeiger do By 1
IF Reihenzähler < Max.AnzahlReihen THEN
Reihenzähler := Reihenzeiger + 1;
IF Reihenzähler >= Max.AnzahlReihen THEN
Spaltenzähler:= Spaltenzähler + 1;
Reihenzähler := 1 // Wieder bei Reihe 1 anfangen
IF Spaltenzähler >= Max.Anzahl Spalten THEN
Lagenzähler := Lagenzähler + 1;
IF Reihenzähler * Spaltenzähler * Lagenzähler >= Palettenzeiger THEN // Kontrolle ob Position gefunden
EXIT;
END_IF;
END_IF;
END_IF;
END_FOR;
Dann die Positionen berechnen:
X-Position := X-StartpunktReihenzähler * Reihenraster
Y-Position := Y-StartpunktSpaltenzähler * Spaltenraster
Z-Position := Z-Startpunkt - Lagenzähler * Lagenraster
Ich lauf gleich im viereck... kann mir mit dem komischen Konstruckt etwas auf die Sprünge helfen?
Gruß und Danke Fatti
ich häng gerade voll in der Luft, darum ergieße ich mal mein Geist in diesen Beitrag

Ich habe eine Kiste mit 10 Reihen, 5 Spalten und 4 Lagen, sagen wir mal alles im 20mm Raster.
Ich möchte die x,y,Z-Position zur Laufzeit berechnen, d.h. Immer wenn ich meinen Greifer öffne Incrementiere ich meinen Teilezeiger um + 1
Es sollen zuerst die Reihen befüllt werden und danach die Spalten und danach die Lagen.
In AWL wüsste ich wie ich das mache aber wie zum Geier macht man da "schön" in SCL?
Nun habe ich zwei Ansätze:
1. Ich schaffe mir einen Reihen, Spalten und Lagenzähler ==> z.B. Ich lege Teil 12 ab also Reihe 2, Spalte 2, und Lage 1
AnzahlPalettenNester := AnzahlReihen x AnzahlSpalten x AnzahlLagen;
// Berechnung initialisieren
L INT#1
T Reihenzähler
T Spaltenzähler
T Lagenzähler
// Reihe, Spalte und Lage bestimmen
FOR i=1 to Palettenzeiger do By 1
IF Reihenzähler < Max.AnzahlReihen THEN
Reihenzähler := Reihenzeiger + 1;
IF Reihenzähler >= Max.AnzahlReihen THEN
Spaltenzähler:= Spaltenzähler + 1;
Reihenzähler := 1 // Wieder bei Reihe 1 anfangen
IF Spaltenzähler >= Max.Anzahl Spalten THEN
Lagenzähler := Lagenzähler + 1;
IF Reihenzähler * Spaltenzähler * Lagenzähler >= Palettenzeiger THEN // Kontrolle ob Position gefunden
EXIT;
END_IF;
END_IF;
END_IF;
END_FOR;
Dann die Positionen berechnen:
X-Position := X-StartpunktReihenzähler * Reihenraster
Y-Position := Y-StartpunktSpaltenzähler * Spaltenraster
Z-Position := Z-Startpunkt - Lagenzähler * Lagenraster
Ich lauf gleich im viereck... kann mir mit dem komischen Konstruckt etwas auf die Sprünge helfen?
Gruß und Danke Fatti