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

Ergebnis 1 bis 5 von 5

Thema: sich Ändernde Werte finden

  1. #1
    Registriert seit
    02.03.2009
    Beiträge
    301
    Danke
    3
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    wer hat auf die schnelle eine schlaue Lösung....

    ich habe viele DB´s (über 30) mit je 24 INT-Werten. Sobald sich einer der 720 Werte ändert, soll dieser angezeigt werden. Also ein FC der am Ausgang diesen Wert ausgibt. Es ist defininitv immer nur ein Wert, der sich ändert.

    Jemand eine Spontane Idee? Ich dachte an Pointer bzw. einen Vergleicher, aber dazu müsste ich zu jedem der 720 Werte eine weitere Variable erstellen. Gibt es etwas einfacheres?
    Zitieren Zitieren sich Ändernde Werte finden  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.289 Danke für 2.658 Beiträge

    Standard

    Spontane Idee: Eine Prüfsumme (CRC, Hash) über alle Werte vergleichen. Da gibt es Verfahren zur Fehlerkorrektur, die ausgeben können, welcher Wert falsch/geändert ist.
    Bei "nur" 720 Werten ist es aber wohl einfacher, mit 720 Kopien (bzw. 30 extra DBs) zu vergleichen - es sei denn Du nutzt TIA mit "optimierten" DB und die Werte sind nicht in Arrays.

    Harald
    Geändert von PN/DP (02.06.2016 um 12:37 Uhr)
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    SPS_NEU ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.03.2009
    Beiträge
    301
    Danke
    3
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Danke - wie funktioniert das mit der CRC-Prüfung?

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.289 Danke für 2.658 Beiträge

    Standard

    Die CRC mit Fehlerkorrektur war eine spontane Idee Falls Dich das Thema näher interessiert, dann kannst Du ja mal den Gockel nach "Fehlerkorrektur CRC" befragen, doch für Deine Aufgabe etwas anpassen wird vermutlich vieeel zu aufwendig. Eine fertige Lösung kann ich Dir nicht präsentieren.

    Weil Du die Besonderheit hast, daß sich höchstens 1 Wert ändert, kannst Du ein einfacheres Verfahren anwenden:

    Du denkst Dir Deine 720 Werte als Tabelle mit 30 Spalten (je DB eine) und 24 Zeilen (je Wert im DB eine). Nun kannst Du für alle 30 Spalten alle 24 Werte einer Spalte zusammenaddieren und in eine zusätzliche Summenzeile (darunter) schreiben. Das gleiche machst Du mit den Zeilen: 24 mal alle 30 Werte einer Zeile addieren und in eine zusätzliche Spalte (rechts daneben) schreiben. (beim Addieren alle INT-Überläufe einfach ignorieren)
    Nun brauchst Du nur die 30 + 24 = 54 Summen zu speichern (anstatt 720 Werten). Im nächsten Zyklus machst Du die Berechnungen wieder und vergleichst mit den gespeicherten Summen. Da wo die Summe nicht übereinstimmt ist ein geänderter Wert. Je nachdem welche Summen nicht übereinstimmen, hast Du eine Info, in welchem DB (Index der Spaltensumme) welcher Wert (Index der Zeilensumme) sich geändert hat.

    Damit die Berechnungen einfach in Schleifen gemacht werden können, müssen die Werte in den DB indizierbar angeordnet sein (Array oder die Adressen DBW.. indizieren). Falls Du TIA und "optimierte" DB verwendest, kann es sein, daß Dir TIA die Aufgabe der indizierten Ansprache der DB gehörig erschwert (habe ich keine Erfahrung).

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    SPS_NEU ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.03.2009
    Beiträge
    301
    Danke
    3
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Interressant - Danke erstmal.

Ähnliche Themen

  1. Antworten: 23
    Letzter Beitrag: 09.10.2015, 16:40
  2. Antworten: 5
    Letzter Beitrag: 08.06.2015, 19:12
  3. Antworten: 3
    Letzter Beitrag: 07.10.2014, 03:33
  4. Sich ändernde Steuerungskonfiguration/Muster bei der Adressvergabe?
    Von KingHelmer im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 19.06.2012, 15:07
  5. Antworten: 2
    Letzter Beitrag: 21.01.2009, 09:56

Lesezeichen

Berechtigungen

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