Zusammengesetzte Variable in Graph Aktion

Spens

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

ich habe folgende Frage. Gibt es eine Möglichkeit eine Variable x in einer DB-Variablen zu deklarieren, die als Aktion in Graph verwendet wird?

Ungefähr so:

" "Hochregal_Bausteine".Reihe1.Fach1.Fuellstand " für die "1" nach "Reihe"

"Hochregal_Bausteine".ReiheX.Fach1.Fuellstand ---> z.B. x=1 usw. das x wird durch eine Abfrage jeweils geändert.

Ich hoffe meine Frage wurde überhaupt verstanden!

MFG Spens
 
"Hochregal_Bausteine".ReiheX.Fach1.Fuellstand ---> z.B. x=1 usw. das x wird durch eine Abfrage jeweils geändert.

Wenn mich meine Kenntnisse nicht trügen wird es NICHT gehen, da
"Hochregal_Bausteine".ReiheX.Fach1.Fuellstand ein SYMBOL ist.

Und dieses Symbol verweist auf die Position im DB.

Du könntest aber einen UDT generieren von 10 Byte, der Reihe, Fach und Füllstand beinhaltet und evtl. Reserven zum Auffüllen, dann wird die Rechnerei leichter.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Richtig " "Hochregal_Bausteine".Reihe1.Fach1.Fuellstand " ist ein Symbol einer Adresse in einem DB. Aber es gibt
" "Hochregal_Bausteine".Reihe1.Fach1.Fuellstand "
" "Hochregal_Bausteine".Reihe2.Fach1.Fuellstand "
" "Hochregal_Bausteine".Reihe3.Fach1.Fuellstand "
.
.
.
usw.

Nun sollte eben nur wie auch in C/C++ möglich die Zahlen hochgesetzt werden (durch einen Platzhalter)um immer ein anderen DB Wert zu verändern.

Die Lösung mit UDT müssest du mir bitte genauer erklären, da ich damit noch nicht gearbeitet habe, oder ich bemühe die Hilfe wenn das dort gut beschrieben ist.

Vielen Dank schon einmal.
Gruß
 
Ein UDT ist nichts besonderes.

Mit "neues Objekt einfügen" -> Datentyp aufrufen und die üblichen Bezeichner eingeben.
Dann öffnen und editieren wie einen DB.

---------

Eine SPS arbeitet leider etwas anders als die Hochsprachen für Rechnerumgebungen. Die Symbole tauchen nur im Editor auf, den Prozessor interessiert nur die Adresse.

Deswegen wirdt Du über die Adressen vorgehen müssen.
 
Funktion nutzen

Das was Du vor hast geht nicht in Graph direkt, aber was spricht dagegen ein entsprechend kleines AWL/SCL/KOP/FUP-Programm zu schreiben und im jeweiligen Schritt mit "CALL" bzw. "S1 CALL" aufzurufen. So habe ich das mit komplexen Berechnungen gemacht, die ich in der Schrittkette brauchte. Manches geht außerhalb der Schrittkette besser und man bindet diese Dinge einfach mit ein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Klingt nach einem Plan. Ähnliches habe ich auch schon in Foren gefunden, die entsprechende AWL-Anweisungen geschrieben haben. Jedoch dachte ich das es eine elegante Lösung in der Schrittkette selbst gibt. Ich werde mein Glück mit UDT probieren und wenn dies keine Fortschritte bringt, gehe ich mit AWL vor.

Weiterhin vielen Dank für die Antworten.....
 
Also nur um das was du in Kürze herausfinden wirst vorweg zu nehmen,
es gibt für dein Problem überhaupt keine direkte "elegante" Lösung,
weder in Graph noch in AWL noch in SCL.

In SCL würde es erst eine elegante Lösung geben wenn du dein Struct was sich hinter "Reihe" versteckt in einen UDT packst,
und dieses dann als z.B. ARRAY[1..10] OF UDT? in einen DB einträgst.

Wenn du keinen UDT anlegst, musst du immer die Adressen für die indirekte Adressierung "händisch" berechnen, egal ob in AWL oder SCL.

Mfg
Manuel
 
SCL habe bzw. kann ich garnicht. Du meinst also um es einfach zu machen alle Adressen über die Symbole einzeln in der Schrittkette programmieren, damit gehe größeren Problemen aus dem weg?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du könntest das ganze schon in einem ausgelagerten AWL Baustein indirekt machen, allerdings ist das vergleichsweise komplex.

Wieviele "Reihen" bzw. Variablen in den Reihen hast du denn, die du in der SK brauchst?

Mfg
Manuel
 
Für ein relativ kleines Hochregallager habe ich 4 Reihen á 5 Fächer mit erstmal nur einer int Variablen pro Fach. Doch dies soll ja einfach erweiterbar sein. Wenn das jedoch zu komplex wird, um die Erweiterbarkeit zu gewährleisten, dann bin ich auch für eine einfach Lösung dankbar. Dies ist "nur" eine Studienarbeit. Ich muss das nachher nur gut verkaufen^^
 
Hi,
ich habe das gleiche Problem mit der Realisierung über ein UDT!

Wie kann ich sowas realisieren? Wie kann ich in einem Lager über die Zählerposition des Schlittens die Variable festlegen auf die er Zugreifen soll?!?


Gruss Schuld
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
ich habe das gleiche Problem mit der Realisierung über ein UDT!

Wie kann ich sowas realisieren? Wie kann ich in einem Lager über die Zählerposition des Schlittens die Variable festlegen auf die er Zugreifen soll?!?


Gruss Schuld

Man liest die gewünschten Daten mit Hilfe eines Pointers! Durchsuch mal das Forum danach.
 
Zurück
Oben