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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Vorgegebene Werte fest in SPS speichern und abfragen

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von tocama Beitrag anzeigen
    Ich möchte gerne 25 verschiedene Werte fest in der SPS einspeichern. Diese Werte stellen einzelne Stromvebracuhe in kwh ohne Nachkommastelle dar (also zB 790000 kW/h).
    [...]
    Die aktiven Merker bzw die ausgegebenen Werte möchte ich am Ende addieren, sodass ich ein Ergebnis erhalte, das Live immer alle aktiven Werte addiert hat.
    Wenn Du das Programm sauber in FUP erstellen willst dann verbietet sich der Datentyp WORD, weil man mit WORD nicht rechnen darf (außer in AWL, da kann man rücksichtslos alles zusammenrechnen ).

    Sinnvoll sind die Datentypen INT, DINT und REAL.

    * Zuerst mußt Du überlegen:
    - ob Du bei der Berechnung Nachkommastellen brauchst? wenn ja --> REAL
    - wie groß die Gesamtsumme werden kann? wenn höchstens 32767 --> INT
    - ansonsten --> DINT

    Vermutlich kommst Du mit DINT am besten hin.

    * Die Werte "fest" hinterlegen:
    In einem Datenbaustein legst Du 25 Variablen von dem erforderlichen Datentyp (DINT) an und trägst den gewünschten Wert in der Spalte "Anfangswert" ein. Wenn alle 25 Werte festgelegt sind, dann müssen diese Werte noch in die Spalte "Aktualwert" übertragen werden (in der Datenansicht), entweder per Hand eintragen oder "Datenbaustein initialisieren". Falls Deine unbekannte SPS das unterstützt, könntest Du auch noch den DB als "schreibgeschützt in der AS" markieren. Danach den DB in die SPS laden.
    Dem DB gibst Du noch einen symbolischen Name, dann erscheinen Deine Variablen im Programm mit dem im DB festgelegten Name.

    * Bedingtes Aufsummieren:
    - eine Variable "Summe" von dem erforderlichen Datentyp (DINT) anlegen (in einem Datenbaustein oder in TEMP)
    - zuerst mit einem MOVE den Wert 0 in "Summe" schreiben
    - danach mit 25 bedingten Additionen die aktiven Werte aufsummieren mit "ADD_DI" und den Aktiv-Merkern am EN-Eingang
    Code:
              +--------+
              |  MOVE  |
         ...--|EN   OUT|--#Summe
           0--|IN   ENO|--
              +--------+
              +--------+
              | ADD_DI |
        M1.0--|EN      |
    DB1.DBD0--|IN1  OUT|--#Summe
      #Summe--|IN2  ENO|--
              +--------+
              +--------+
              | ADD_DI |
        M1.1--|EN      |
    DB1.DBD4--|IN1  OUT|--#Summe
      #Summe--|IN2  ENO|--
              +--------+
    ...
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    tocama (08.04.2015)

  3. #12
    tocama ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.04.2015
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Harald,

    danke für deine ausführliche Antwort. Ich werde mich im Laufe des Nachmittags damit beschäftigen sobald ich zuhause bin. Gibt es beim DINT auch eine Obergrenze für den Wert wie bei INT?

    Gruß
    Torben

  4. #13
    Registriert seit
    15.10.2007
    Ort
    St.Pölten
    Beiträge
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Standard

    DINT --> Ganze Zahlen mit Vorzeichen -2147483648 bis +2147483648 Größe 32 bit

    Gruß Gerhard
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

  5. #14
    Registriert seit
    16.12.2014
    Beiträge
    14
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    also die Werte ablegen kannst du via Startwerte in den DB's oder im Anlauf OB (OB100) die Werte hinschreiben wohin die willst. Kann auch in den DB sein. Du solltest Dir noch überlegen ob du sie verändern willst und nach einem Wiederanlauf die geänderten Werte wieder verfügbar sein sollen. Wenn ja, dann sollten sie noch als Remanent gekennzeichnet werden.

    Gruss,
    Martin

  6. #15
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Wenn sich die "festen" Werte tatsächlich fast "nie" ändern, dann kann man die auch gleich als Konstante an die ADD_DI-Boxen schreiben, braucht keinen DB und braucht nicht über Remanenz nachdenken.

    Übrigens ist für den Anwendungsfall des TE Remanenz völlig unwichtig. Remanenz ist nur interessant für Werte, welche zur Programmlaufzeit geändert werden. Nicht-remanente (Non-Retain) DB werden bei jedem STOP/RUN-Übergang erneut aus dem Ladespeicher in den Arbeitsspeicher geladen und erhalten damit automatisch die Werte, welche beim Laden in die CPU in der Spalte "Aktualwert" eingetragen waren.

    PS: Die DB-"Anfangswerte" haben auf das Verhalten in der CPU keinen Einfluß.

    Harald
    Geändert von PN/DP (09.04.2015 um 01:05 Uhr) Grund: PS: Anfangswerte
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #16
    tocama ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.04.2015
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So nach knapp einer Woche meld ich mich mal wieder zurück. Danke noch für die weiteren Antworten, werde jetzt erstmal komplett auf den DB verzichten (bzw versuche es )

    Ich meld mich sobalds was neues gibt

    Gruß
    tocama

Ähnliche Themen

  1. Step 7 Daten/Werte von der SPS S7 1200 in eine Datebank speichern
    Von Aleksandar im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 12.11.2013, 18:23
  2. Step 7 Daten/Werte von der SPS S7 1200 in eine Datebank speichern
    Von Aleksandar im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 12.11.2013, 16:14
  3. Antworten: 3
    Letzter Beitrag: 26.01.2012, 10:00
  4. Antworten: 5
    Letzter Beitrag: 12.10.2011, 12:22
  5. Antworten: 2
    Letzter Beitrag: 27.08.2008, 15:07

Lesezeichen

Berechtigungen

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