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

Ergebnis 1 bis 4 von 4

Thema: DB in SCL durchsuchen (Pointer?)

  1. #1
    Registriert seit
    24.07.2012
    Beiträge
    58
    Danke
    36
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an alle,

    meine SCL- und Pointerkenntnisse sind sehr bescheiden. Deshalb will ich mich da etwas weiterbilden.
    Für ein vielleicht zukünftiges Projekt will ich ein paar Ideen ausprobieren.

    Mein erstes Ziel ist grob gesagt einen DB (alles bool) zu "durchsuchen".

    Ich übergebe also die DB-Nummer und will sinngemäß folgendes mit SCL tun:
    -----
    DBNr = DB_Nummer
    Pointer = 0.0

    FOR zähler= 0 TO 31 BY 1 DO
    IF DB[DBNr].DBX[Pointer]=1 THEN .....

    Pointer erhöhen
    zähler erhöhen
    END FOR
    -----

    Ich weiß nur nicht, wie ich mit Pointern in SCL arbeite.
    Wenn es in SCL für so etwas einen "eleganteren Ansatz" gibt, möchte ich mir den auch gern ansehen.

    Danke.
    Zitieren Zitieren DB in SCL durchsuchen (Pointer?)  

  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,
    naja ... das war ja schon nicht so schlecht. Es müßte nur eher so heissen :
    Code:
    myBool := DB[DBNr].DBX[ByteNummer , BitNummer]
    Du kannst dir natürlich die ByteNummer und die BitNummer der jeweiligen DB-Adresse auch aus einem Index zurückrechnen.
    Wie hast du das denn genau vor ?

    Gruß
    Larry

    Nachtrag :
    END_FOR erhöht automatisch die Variable der FOR..TO-Schleife um die angegebene Schrittweite (BY ...). Du mußt Zähler also nicht erhöhen ...

  3. #3
    Registriert seit
    24.07.2012
    Beiträge
    58
    Danke
    36
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Danke @Larry Laffer,

    ich möchte eine Art Störspeicher erstellen. Ich stelle mir das so vor, dass in der S7 Störungen erfasst werden.
    Es gibt also einen DB und darin für jede Störung ein Bit, welches bei einer Störung 1 wird.

    Ich durchsuche den DB, ob sich ein Bit geändert hat. Bei Änderung trage ich das mit Zeitstempel in einen weiteren DB, sodass ich kommen und gehen einer Störung erfassen kann.
    Ähnlich dem Meldefenster in WinCC flexible.

    Wir haben meist ein übergeordnetes "fremdes Automatisierungssystem", welches unsere Störungen erfasst, auswertet,...
    Ich will halt die Störungen auch intern erfassen, um bei Problemen vergleichen zu können und das Problem zu lösen/finden.

    Zum Durchsuchen des DB mit den Störungen stelle ich mir vor, dies als Schleife in SCL zu probieren. Vor allem auch als SCL-Übung für mich.
    Ich dachte mit Pointern ist es am einfachsten. Bit anfragen - Pointer erhöhen - nächstes Bit abfragen - Pointer erhöhen - ...
    Das ganze in einer FOR-Schleife mit der Anzahl der zu prüfenden Bits.

    Wie gesagt, im Moment eher für mich als Übung/Weiterbildung. Deshalb hab ich auch keinen Druck und kann viel probieren und lernen.

  4. #4
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Nico1977 Beitrag anzeigen
    Zum Durchsuchen des DB mit den Störungen stelle ich mir vor, dies als Schleife in SCL zu probieren. Vor allem auch als SCL-Übung für mich.
    Ich dachte mit Pointern ist es am einfachsten. Bit anfragen - Pointer erhöhen - nächstes Bit abfragen - Pointer erhöhen - ...
    Das ganze in einer FOR-Schleife mit der Anzahl der zu prüfenden Bits.
    Schau Dir mal den 2. FB in diesem Post an.

    Dort werden in den FOR-Schleifen (Anzahl der Bits) die Ein- bzw. Ausgänge byte/bitweise der Reihe nach angesprochen.
    Das wäre ja dann das Gleiche wie bei Dir die Bits im DB.
    Geändert von hucki (12.11.2014 um 18:54 Uhr) Grund: Link vergessen, ich Depp!

Ähnliche Themen

  1. Step 7 Datenbaustein mit Pointer durchsuchen
    Von Günni1977 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 31.07.2014, 17:11
  2. Step 7 SCL Pointer
    Von Sickone4 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 03.06.2014, 16:27
  3. Gernzwert bestimen SCL / Array durchsuchen
    Von zloyduh im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 29.08.2012, 18:03
  4. ARRAY mit SCL durchsuchen oder evtl anders
    Von spsguru im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 03.05.2011, 13:00
  5. DB nach Werten durchsuchen - SCL ?
    Von karsten.schmidt im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 26.03.2011, 13:15

Lesezeichen

Berechtigungen

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