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

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

Thema: DBs in Schleife SCL

  1. #1
    Registriert seit
    06.02.2012
    Beiträge
    102
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich bin dran in der TIA ein DB für eine bestimmte Schleife hochzuzählen.
    Bsp.: Habe mehrere Regler, welche Ihre Daten in unterschiedliche DBs speichern.
    Nun möchte ich über Parameter in den DBs an einen bestimmten Wert, sagen wir mal den Grenzwert setzen.
    Und das am besten in einem Netzwerk und sofort für alle DBs

    Mein Beispiel in AWL:
    Code:
    // Übertragener Wert
          L     10
          T     #Wert
    // Grenzwerte Erstellen
          L     30
          T     #MinDB
          L     32
          T     #MaxDB
    // Schleife, selbstgemacht für einen individuellen Schleifen start und Ende
    trans: L    #MinDB
          T     #Index
          AUF DB [ #Index]
          L     #Wert
          T     %DBB1
    // Variable hochzählen 
          L     #Index
          L     1
          +I
          T     #Index
    //und Prüfung ob der Index größer gleich MaxDB ist
          L     #Index
          L     #MaxDB
          >=I
          SPBN  trans
    // Kann noch weiterer Quellcode enthalten
          BEA
    Ist das auch in SCL möglich? Habe es mit unterschiedlichster Klammersetzung und anderen Möglichkeiten Versucht aber nichts gefunden.
    Kann mir jemand helfen??
    Zitieren Zitieren DBs in Schleife SCL  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Hallo,
    klar ist das auch in SCL machbar ...
    Ich müßte jetzt allerdings wissen, wie du es angefangen hast.
    Um aus deinem Index einen DB zu machen gibt es die Anweisung "WORD_to_Block_DB".

    Gruß
    Larry

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.741
    Danke
    143
    Erhielt 1.687 Danke für 1.226 Beiträge

    Standard

    Ich bin ja kein Freund von diesem DB-Nummer und Absolut-Adressgefrickel.
    Warum machst du nicht aus dem Aufbau des DBs eine UDT (ein Reglerdatensatz), und machst dann eine Funktion die als Parameter diese UDT als In-Out hat (Funktion "Init-Reglerdatensatz")? Dann ist alles voll symbolisch, und bei Änderungen musst du dir keine Sorgen machen dass irgendwelche magischen Zahlenwerte nicht mehr passen.

  4. #4
    Avatar von WinniePooh
    WinniePooh ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.02.2012
    Beiträge
    102
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard

    @ Larry: Ne ich habe kein WORD_TO_BLOCK oder was ähnliches. Ich greife einfach so von einem FC auf dem DB in einer Schleife zu.
    müsste ich dann hinschreiben DB[Word_TO_BLOCK(INDEX)]

    @ Thomas: dann müssten sich ja die Daten in einem DB abspeichern. Hier sind für die gleichen Daten in unterschiedliche DBs gespeichert. Also muss ich zwingend dann jeden DB aufmachen oder ich mach das halt in einer Iteration.

  5. #5
    Registriert seit
    17.01.2011
    Beiträge
    105
    Danke
    12
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Ich habe eine UDT noch nie benutzt, wie wird das als In-Out angelegt? Kannst du mir dazu weiterhelfen wie das gemacht wird, sowie eine Anleitung oder Beispiel?

    Gruss
    TMaroni

  6. #6
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard

    UDT mit den Elementen anlegen, Global-DB mit dem UDT als "Variable" anlegen, Antragen des UDT durch Angabe des symbolischen Namens.

    Z.B..: "Achse_1".Parameter

    Achse_1 ist der Name des Global-DB. Parameter der Name der Variablen des UDT.
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  7. #7
    Registriert seit
    17.01.2011
    Beiträge
    105
    Danke
    12
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Wie wird dann im In-Out das UDT deklariert gemäss dein Beispiel, wenn dann mehrere Parameter hinterlegt sind?

    VAR_IN_OUT
    UDT : "Achse_1".Parameter1
    "Achse_1".Parameter2
    usw.
    END_VAr

    Gruss
    TMaroni

  8. #8
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard

    VAR_IN_OUT
    Parameter_1 : UDT_1
    Parameter_2 : UDT_1
    Parameter_3 : UDT_1
    usw.
    END_VAR

    Beim Baustein-Aufruf dann passend symbolisch antragen
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    @TMaroni:
    Du mußt vielleicht auch einfach mal ein bißchen damit herum-probieren ...
    So direkt "im Trocknen" wirkt das komplizierter als es ist ...

    @WinniePooh:
    Der von mir genannte Befehl heißt "WORD_to_Block_DB" und dazu solltest du dir die SCL-Hilfe mal ansehen.
    Vom Grundsatz her ist es aber richtig, sich solche Zugriffe zu verkneifen ...
    Gerade bei Verwendung von SCL ist es immer sehr praktisch, mit "Bekannten" zu arbeiten - das wäre dann z.B. ein UDT - nicht aber ein externer DB ...

    Gruß
    Larry

  10. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    TMaroni (31.10.2012)

  11. #10
    Avatar von WinniePooh
    WinniePooh ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.02.2012
    Beiträge
    102
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    oder man schreibt alles aus bsp.:

    L #Wert
    T DB1.WertDB
    L #Wert
    T DB2.WertDB

    ...
    usw.

Ähnliche Themen

  1. For Schleife SCL
    Von Gucky_av im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 19.09.2012, 18:58
  2. Bool Schleife in DB schreiben SCL
    Von Limette im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 02.02.2012, 22:15
  3. While Schleife in ST
    Von Snooky im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 30.11.2010, 21:50
  4. indirekt DBs in SCL ansprechen
    Von Bensen83 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 01.08.2010, 22:29
  5. Probleme mit DBs in SCL
    Von chrissi im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 09.08.2007, 13:06

Stichworte

Lesezeichen

Berechtigungen

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