Hochregallager programmieren - aber wie ?

Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit dem Geld ist eine gute Idee, vielleicht sollte ich mal einen kostenpflichtigen Download für meine Programme einrichten. :sc7:

Jetzt geht es aber raus aufs Wasser, noch eine Runde segeln gehen. :sm21:

Gruß Kai
 
nur mal so nebenbei.;)
auf meiner hp liegt ein komplettes prog für ein 2-dimensionales hochregallager.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe das Programm an die neue Nummerierung angepasst.

Es wurden das Word-Dokument und der DB20 geändert.

Gruß Kai

Ihre seid sicher in der SPS Programmierung so weit fortgeschritten, dass ich den Anschluss fast verloren hätte.....
Als SPS Anfänger habe ich daher eine Bitte um detaillierte Erklärung:
1) Oben in der Aufgabenstellung liest man: Im Standardbaustein dürfen keine globalen Variablen vorkommen. Daher soll die Nummer des durchsuchten Datenbausteins als IN- Variable dem FC übergeben werden. Mir wurde jedoch erklärt, dass man keine Daten des DB in die Symboltabelle eintragen darf, wenn man auf lokale Daten zugreift. In Deiner Symboltabelle stehen trotzdem die Daten des Datenbausteins. Warum ?
2) Muss man immer zuerst die Nummer des DB mit dem Befehl L DB_NR laden und dann in ein Merkerwort transferien, bevor man ihn mit dem Befehl AUF _DB öffnet. Oder kann man den DB auch gleich mit dem AUF_DB aufschlagen ???
 
Zuletzt bearbeitet:
zu 2.
es kann auch mir auf db gearbeitet werden, dann muss der in-patameter aber als block-db deklariert sein.

mit einem int arbeiten ist schöner da du dadurch variabler bist.
 
1) Oben in der Aufgabenstellung liest man: Im Standardbaustein dürfen keine globalen Variablen vorkommen. Daher soll die Nummer des durchsuchten Datenbausteins als IN- Variable dem FC übergeben werden. Mir wurde jedoch erklärt, dass man keine Daten des DB in die Symboltabelle eintragen darf, wenn man auf lokale Daten zugreift. In Deiner Symboltabelle stehen trotzdem die Daten des Datenbausteins.

Leider habe ich Deine Frage nicht so richtig verstanden. :confused:

In der Symboltabelle stehen eigentlich keine Daten des DB, es stehen dort nur die Symbole für die Datenbausteine selber, also:

DB20_HOCHREGALLAGER für den DB20 und DB22_HOCHREGALLAGER für den DBD22

Kannst Du noch mal erklären, was Du mit Daten des DB meinst?

Gruß Kai
 

Anhänge

  • Symboltabelle.jpg
    Symboltabelle.jpg
    179,8 KB · Aufrufe: 89
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider habe ich Deine Frage nicht so richtig verstanden. :confused:

In der Symboltabelle stehen eigentlich keine Daten des DB, es stehen dort nur die Symbole für die Datenbausteine selber, also:

DB20_HOCHREGALLAGER für den DB20 und DB22_HOCHREGALLAGER für den DBD22

Kannst Du noch mal erklären, was Du mit Daten des DB meinst?

Gruß Kai
Vielleicht habe ich mich nicht deutlich genug ausgedruckt. Wenn man auf lokale Daten des DB zugreifen möchte, sollte man etwas nichts vom DB in der Symboltabelle stehen lassen.
Gruß Elektrobody
 
Wenn man auf lokale Daten des DB zugreifen möchte, sollte man nichts vom DB in der Symboltabelle stehen lassen.

Das ist so nicht richtig. Dadurch, dass der DB in der Symboltabelle steht, wird das Programm sehr viel übersichtlicher.

Man kann z. B. ohne Probleme auf das DW0 und DW2 des DB22 zugreifen, obwohl der DB22 in der Symboltabelle steht.

Gruß Kai
 

Anhänge

  • Datenbaustein.jpg
    Datenbaustein.jpg
    44,2 KB · Aufrufe: 71
Nachtrag:

Es ist natürlich nicht möglich, in der Symboltabelle Symbole für einzelne DW eines DB zu vergeben, also z. B. das Symbol LP1 für das DW0 des DB22. Der Editor der Symboltabelle gibt dann eine Fehlermeldung aus, dass der Adresstyp unbekannt ist.

Eine solche Symbolvergabe würde ja auch keinen Sinn machen. Bei der Verwendung von mehreren DBs hätte man ja für jeden DB ein eigenes DW0, und in der Symboltabelle müsste man mehrere Symbole für das DW0 vergeben. Das geht natürlich nicht, da eine eindeutige Zuordnung nicht mehr gegeben wäre.

Gruß Kai
 
Ich habe von Elektrobody heute folgende Nachricht bekommen:

Elektrobody schrieb:
Hallo Kai,
Ihre letzte Lösungsmöglichkeit zur Programmierung des Hochregallagers mit drei Zählern kann ich als SPS-Anfänger besser nachvollziehen. Noch einmal danke dafür.
eine andere Aufgabe zum Hochregallager:
Die Beschreibung zum Aufbau und zur Lagerbelegung bleibt die gleiche wie sie ich eingangs im Forum "Hochregallager programmieren aber wie ?" bereits gepostet habe. Vorher hieß es den erste leeren LP zu suchen.
Jetzt soll die jetzige Aufgabe so wie folgt aussehen:
Bei einer steigenden Flanke am Taster BD_SH6 soll in dem DB für einen vorgegebenen Lagerplatz ein ebenfalls vorgegebener Code geschrieben werden. ( Dabei könnte der alte Code auch überschreiben werden ) Lagerplatz und Code sollen über IN-Variablen im Format INT vorgegeben werden.Wird dieses bereits erstelltes Programm nur noch ein wenig geändert oder soll es total umgekrempelt werden um dieser neuen Aufgabe gerecht zu werden ?
Gruß ELektrobody

Hier eine mögliche Lösung der neuen Aufgabe. Es wurden ein neuer FC24 und ein neuer DB24 erstellt. :cool:

Gruß Kai
 

Anhänge

  • OB1.pdf
    3,6 KB · Aufrufe: 84
  • FC24.pdf
    3,1 KB · Aufrufe: 102
  • DB24.pdf
    4,6 KB · Aufrufe: 68
  • Hochrega.zip
    204,9 KB · Aufrufe: 56
Zurück
Oben