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

Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 54

Thema: S7 Datenkonsistenz bei HMI Kommunikation

  1. #21
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von rostiger Nagel Beitrag anzeigen
    Den Status kannst du doch beim lesen in der SPS vlt. auch verwenden.
    Indem ich es selber am Panel nachprogrammiere. Oder meinst du was anderes?

  2. #22
    Registriert seit
    13.10.2007
    Beiträge
    12.034
    Danke
    2.789
    Erhielt 3.269 Danke für 2.157 Beiträge

    Standard

    der Status ist doch beim lesen und beim schreiben wirksam, ich bin bisher davon ausgegangen,
    wenn dazu eine SPS Variable genutzt wird, das diese dann auch den zustand rausgiebt, ob
    der Datensatz komplett gelesen bzw. geschrieben ist und die Werte auch gültig in der Steuerung
    stehen.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  3. #23
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Ah, du meinst den Bearbeitungsstatus bei der WinCCflexible Funktion SchreibeDatensatzInSteurung. Das funktioniert wirklich. Wenn ich das anstoße wird erst nur der Bearbeitungsstatus=2 geschrieben, dann eine oder mehrere PDUs mit den Rezeptdaten, und dann nochmal separat der Bearbeitungsstatus=4 hinterher. Wenn man das im SPS-Programm auswertet (d.h. solange Bearbeitungsstatus=2 dann Finger weg) ist es garantiert konsistent.
    Den Status auszuwerten ist über die erweitere Rezepturanzeige aber nicht möglich, wenn ich das richtig sehe.

  4. #24
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zu früh gefreut. Die Auswertung des Bearbeitungsstatus ist wohl nur bei einer 300er mit "nicht priorisierter BuB Kommunikation" ausreichend.

    Ich habe bei meiner 1200er diesen Status auf ein Merkerwort gelegt, die Rezeptdaten in einen DB. Trotz Auswertung des Bearbeitungsstatus habe ich inkonsistente Daten in dem DB. Evtl. werden Merkerbereiche eher oder anders eingebunden als Datenbausteine.
    Geändert von Thomas_v2.1 (21.02.2015 um 11:25 Uhr)

  5. #25
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Bei der 1200er habe ich mir eben selber einen Fehler eingebaut, indem ich den Bearbeitungsstatus als InOut verwendet habe. Wenn man das richtig macht, dann funktioniert das mit dem Bearbeitungsstatus wohl auch bei Steuerungen welche die Daten mitten im Zyklus einbinden zuverlässig.

  6. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    winnman (14.04.2017)

  7. #26
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo Thomas,
    erstmal recht herzlichen Dank für deine Untersuchungen zu diesem (mich auch brennend interessierenden) Thema und im gleichen Zug für diesen Thread.
    Für mich ist an dieser Stelle immer wieder interessant, Ereignisgesteuert Daten aus der SPS zu Lesen um sie dann zu speichern - es handelt sich hier i.d.R. um Daten, die zu einem gefertigten Bauteil erfasst / ermittelt wurden.
    Wenn ich dich also recht verstanden habe dann ist es so, dass wenn man "priorisierte BuB" aktiviert hat man bei einer neueren 317 oder sogar einer 319 auch nicht sicherstellen kann, dass man mit der Rückmeldung der Lade-Routine die Daten wirklich zusammengehörig in der Visu hat ...? (es können also immer noch "alte" Daten mit in dem Block stecken ?)

    Gruß
    Larry

  8. #27
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Prinzipiell geht das nur 100%ig zuverlässig mit einem extra Handshake.
    D.h. wenn man einen Datensatz konsistent aus der SPS lesen will, muss man erst ein Flag in der SPS setzen damit diese die Daten nicht mehr schreibend anfasst. Dann die Daten auslesen und über ein Flag die Bearbeitung in der SPS wieder freigeben.


    Ich habe gerade nochmal versucht aufzudröseln wie weit die Daten überhaupt konsistent geschrieben werden. Im S7-Protokoll gibt es die Möglichkeit als Transportgröße DWord anzugeben. Selbst damit landet nicht einmal dieses DWord garantiert konsistent im Speicher!
    Mein Testprogramm schreibt abwechselnd 0xa5a5a5a5 und 0x5a5a5a5a in die SPS. Mein SPS Programm prüft ob eines dieser beiden erlaubten Werte im Datenbaustein stehen, und das ist NICHT immer der Fall.

    Beispiel was das für Auswirkungen haben kann:
    Ich habe einen Sollwert als DINT.
    Erste Einstellung: 1 (16#0000_0001)
    Jetzt schreibt jemand von der Visualisierung einen neuen Sollwert -1 (16#FFFF_FFFF).
    Es besteht die Möglichkeit, dass die SPS für einen oder mehrere Zyklen den Wert 65535 (16#0000_FFFF) sieht.

    Es wäre zu prüfen ob das nur bei der 1200er so ist, oder ob das die 300/400er auch schon ignoriert haben.

  9. #28
    Registriert seit
    29.10.2007
    Beiträge
    66
    Danke
    27
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo alle,
    habe auch gerade ein Projekt mit einer 1200 + WinCC RT. Das HMI sendet Auftragsdaten an die SPS, bestehend aus diversen Sollwerten und Startbefehlen.
    Ich stelle nun in der SPS die Aktualität sicher mit folgendem Mechanismus:
    - die SPS initialisiert die Sollwerte im Auftragsdatenbaustein mit lauter -999999 Werten (also prozesstechnisch irgendein unsinniger Wert)
    - die RT beschreibt alle Sollwerte neu und setzt das Startbit
    - SPS erkennt irgendwann das Startbit und wartet solange, bis alle Sollwerte <> -999999 sind. Dann werden alle relevanten Sollwerte in einen separaten DB übernommen und effektiv gestartet. Bei Übernahme der Daten werden die HMI-Auftragsdaten wieder mit -999999 beschrieben.

    Das erscheint mir als effiziente Prüfungsmethode - was meint ihr dazu?

    LG, Christoph

  10. #29
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Sollte vom Prinzip her funktionieren.

    Wenn du Rezepturen an einem Siemens-HMI verwendest, sollte es aber auch funktionieren wenn du den Bearbeitungsstatus in der SPS auswertest. Zumindest habe ich dabei noch keine Inkonststenz festgestellt.

    Mit deiner Variante bist du unabhängig von Funktionen eines Siemens Gerätes, d.h. könntest unter Umständen auch eine andere Visualisierung verwenden.

  11. #30
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Mal eine Frage an die TIA-Experten:

    Wie muss ich bei der Stringverarbeitung in der SPS (1200/1500) vorgehen, damit ein HMI garantiert einen konsistenten String einliest?
    Die Strings liegen in optimierten Datenbausteinen.

    Beispielweise wenn ich einen String dynamisch in der SPS mit CONCAT zusammensetze, dann muss ich wenn ich direkt auf dem HMI-String arbeite damit rechnen, dass der String während der Bearbeitung gelesen wird.
    Jetzt könnte ich auf einem temporären String arbeiten, und wenn dieser fertiggestellt ist dem HMI-String zuweisen. Es ist jedoch nirgends angegeben, dass diese Operation ununterbrechenbar ist. Es wird dann höchstens die Wahrscheinlichkeit verringert, dass ein nicht konsistenter String gelesen wird.

    Mit UMOVE_BLK lassen sich direkt keine Strings in "optimierten" DBs verschieben.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

Ähnliche Themen

  1. TIA S7-1500 HMI-Kommunikation (Zykluskontrollpunkt)
    Von steuerung im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 08.01.2014, 13:39
  2. Datenkonsistenz Bereichszeiger Datum/Uhr
    Von Perfektionist im Forum HMI
    Antworten: 6
    Letzter Beitrag: 26.06.2012, 16:44
  3. Datenkonsistenz von AG_RECV
    Von oid im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 19.07.2009, 18:42
  4. Datenkonsistenz in DB's sicherstellen
    Von SPS-Dummy im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 05.11.2007, 11:55
  5. Kommunikation Möller SPS-HMI???
    Von Anonymous im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 29.09.2005, 10:37

Lesezeichen

Berechtigungen

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