Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Zusammengesetzte Variable in Graph Aktion

  1. #1
    Registriert seit
    10.11.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    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
    Zitieren Zitieren Zusammengesetzte Variable in Graph Aktion  

  2. #2
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Zitat Zitat von Spens Beitrag anzeigen
    "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.
    Das Grauen lauert in der Zwischenablage !!

  3. #3
    Spens ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.11.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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ß

  4. #4
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    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.
    Das Grauen lauert in der Zwischenablage !!

  5. #5
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    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.
    Grüße
    Michael

    1001101110110100... Das ist meine Welt
    Zitieren Zitieren Funktion nutzen  

  6. #6
    Spens ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.11.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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.....

  7. #7
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    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
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  8. #8
    Spens ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.11.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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?

  9. #9
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    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
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  10. #10
    Spens ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.11.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    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^^

Ähnliche Themen

  1. Aktion aufrufen
    Von HK09 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 09.08.2010, 22:59
  2. Graph 7 Transition und Aktion
    Von Fabix im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 12.10.2008, 13:00
  3. Globale Variable in einer Aktion?
    Von Phase8421 im Forum HMI
    Antworten: 3
    Letzter Beitrag: 17.06.2008, 15:00
  4. Typumwandlung in GRAPH Aktion
    Von manas im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 20.01.2008, 15:42
  5. MOVE in Graph Aktion
    Von manas im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 15.09.2007, 21:26

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •