Guten Tag.
Ich bräuchte mal eure Hilfe was das programmieren angeht.
Ich soll das Modell Hochregallager http://www.festo-didactic.com/ov3/media ... 094364.jpg (sieht so ähnlich aus) programmieren. Und meine Frage ist wie mache ich das mit den Lagerplätzen.
wir haben 16 lagerplätze (4 mal 4) und ich soll ein automatikbetrieb über ein Touchpanel für ein- und auslagern machen. Mein Problem ist wie weiss der Greifer das der Lagerplatz frei oder belegt ist. An den Lagerplätzen sind keine Sensoren verbaut, sonst wäre es ja logisch 1 belegt 0 frei.
Hab in hand die Positionen mal abgefahren und mir die Koordinanten aufgeschrieben. Aber das Problem ist jetzt das merken der ein oder auslagerung. Hat das schonmal einer gemacht ?? kann mir einer irgendwie helfen ?? ich komme nicht weiter.
S7 Hochregallager
Re: S7 Hochregallager
http://www.christiani.de/product_info.p ... ts_id/1094
hab das richtige Modelle gefunden. Bitte um hilfe
hab das richtige Modelle gefunden. Bitte um hilfe
Re: S7 Hochregallager
Feines Spielzeug ![Smile :)](./images/smilies/icon_smile.gif)
Ich würde einen Ecklagerplatz als Referenzpunkt nehmen und die anderen Fächer ausgehend von dem Ausrechnen lassen, quasi immer den Abstand zum nächsten Fach zu dem Offset dazurechnen. Irgendwie mußte ja die Anfahrt an die einzelnen Fächer programmieren und mußt so quasi nur einmal "teachen" wenn es Veränderungen gibt, dann brauchst nur einen FC machen und da halt die Werte ändern. Jetzt in einem Datenbaustein ein Array machen und da den Status für jedes Fach anlegen, eventuell Merker falls du nicht weißt wie man DBs erstellt. Wenn was hingeschafft wurde das Bit für das Fach auf TRUE setzen und wenn etwas geholt wurde zurücksetzen. Da kann man sich eine VAT machen und hat halt immer nen guten Überblick.
Ich denke mal so als Ansatz sollte das erstmal reichen, du kannst gerne dazu Fragen, aber ich werde dir das nicht programmieren. Mach halt soweit du kommst und zeig wo es klemmt, dann schauen wir weiter.
Die Aufgabe ist schon anspruchsvoll, aber man wächst mit seinen Aufgaben.
![Smile :)](./images/smilies/icon_smile.gif)
Ich würde einen Ecklagerplatz als Referenzpunkt nehmen und die anderen Fächer ausgehend von dem Ausrechnen lassen, quasi immer den Abstand zum nächsten Fach zu dem Offset dazurechnen. Irgendwie mußte ja die Anfahrt an die einzelnen Fächer programmieren und mußt so quasi nur einmal "teachen" wenn es Veränderungen gibt, dann brauchst nur einen FC machen und da halt die Werte ändern. Jetzt in einem Datenbaustein ein Array machen und da den Status für jedes Fach anlegen, eventuell Merker falls du nicht weißt wie man DBs erstellt. Wenn was hingeschafft wurde das Bit für das Fach auf TRUE setzen und wenn etwas geholt wurde zurücksetzen. Da kann man sich eine VAT machen und hat halt immer nen guten Überblick.
Ich denke mal so als Ansatz sollte das erstmal reichen, du kannst gerne dazu Fragen, aber ich werde dir das nicht programmieren. Mach halt soweit du kommst und zeig wo es klemmt, dann schauen wir weiter.
Die Aufgabe ist schon anspruchsvoll, aber man wächst mit seinen Aufgaben.
Re: S7 Hochregallager
DBs kenne ich ,aber kannst du mir kurz das Prinzip vom Array erklären ?? Wie ist der aufgebaut und funktion
Re: S7 Hochregallager
Ok, lassen wir das Array erstmal weg und machen das so im DB, ist vielleicht übersichtlicher. Erstell dir einen DB und lege in dem die Bits für den Status an.
![Bild](http://s14.directupload.net/images/130306/xwolrddb.jpg)
Den DB mußte dann auch in die Symboltabelle eintragen. Wie du die Bits setzt und rücksetzt hängt davon ab in was du programmieren willst.
In AWL zBsp.
U "was in Fach 1 hingefahren"
S DB1.DBX0.0
U "was aus Fach 1 geholt"
R DB1.DBX0.0
in SCL geht das so
DB1.DBX0.0 := TRUE;
bzw.
DB1.DBX0.0 := FALSE;
Das Bit setzt am besten im Programm am Ende das "Hinschaffens" bzw. "Holens"
Somit hättest du für jedes Fach ein Statusbit.
![Bild](http://s14.directupload.net/images/130306/xwolrddb.jpg)
Den DB mußte dann auch in die Symboltabelle eintragen. Wie du die Bits setzt und rücksetzt hängt davon ab in was du programmieren willst.
In AWL zBsp.
U "was in Fach 1 hingefahren"
S DB1.DBX0.0
U "was aus Fach 1 geholt"
R DB1.DBX0.0
in SCL geht das so
DB1.DBX0.0 := TRUE;
bzw.
DB1.DBX0.0 := FALSE;
Das Bit setzt am besten im Programm am Ende das "Hinschaffens" bzw. "Holens"
Somit hättest du für jedes Fach ein Statusbit.