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

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

Thema: WinCC Flexible. Wie erkennen WELCHE Verbindung auf/abgebaut ist ?

  1. #1
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.631
    Danke
    377
    Erhielt 802 Danke für 643 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe SPS Freunde.

    In WinCC Flexible verwende ich die System Events 140000 und 140001 um zu erkennen ob der Online Verbindung OK ist oder nicht.
    Dies visualisiert dann eine Meldung an der Benutzer so dass er erkennt das der HMI online ist oder nicht.
    Funktioniert gut.

    Nun habe ich aber ein HMI mit mehrere Verbindungen.
    Wie erkenne ich das Verbindung 1 ist OK und Verbindung 2 ist nicht OK ?

    Kann man irgendwie den Systemmeldungstext abfangen und interpretieren ?
    Kann man die Werte von die "Placeholders" lesen ? (sie Bild)
    WinCCflex_sysevent_140000.jpg

    Danke im voraus.
    Jesper M. Pedersen
    Zitieren Zitieren WinCC Flexible. Wie erkennen WELCHE Verbindung auf/abgebaut ist ?  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.207
    Danke
    927
    Erhielt 3.293 Danke für 2.662 Beiträge

    Standard

    Meines Wissens kann man nicht unterscheiden, für welche Verbindung die Systemmeldungen kommen. (man müßte mal Siemens fragen..)
    Man kann mehrere "Fortschrittsbalken" in ein Bild (z.B. das Permanentbild) machen. Der Balken der stehenbleibt - dessen Verbindung ist abgebaut (oder die CPU in Stop).

    CPU-Variablen auf Wertänderung überwachen dauert lange, weil man im Aufgabenplaner nur min. 1 Minute angeben kann.

    Vielleicht könnte man irgendwie die Verbindungen sich gegenseitig überwachen lassen? (daß die Wertänderung einer Variablen der einen Verbindung die Wertänderung einer Variablen der anderen Verbindung überwacht)
    Kommunizieren die CPU miteinander? Dann könnten die CPU den Ausfall der Verbindung der anderen CPU melden.

    Vielleicht geht auch sowas, daß bei Verbindungsausfall ein Skript gezielt versucht, nacheinander in die CPUs zu schreiben bis die Systemmeldung "Wertübernahme nicht möglich" kommt? Oder besser: in jede CPU in eine Variable schreibt, welche in der CPU in eine weitere Variable kopiert wird, welche im HMI auf Wertänderung eine Reaktion hat. Von der abgebauten Verbindung käme keine Reaktion. Das ginge innerhalb von Sekunden auszuwerten.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    JesperMP (24.09.2014)

  4. #3
    Avatar von JesperMP
    JesperMP ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.631
    Danke
    377
    Erhielt 802 Danke für 643 Beiträge

    Standard

    Hallo Harald.

    Ja ich habe die "fliegender Balken". leider sind die etwas zu diskret. Wenn etwas schiefgeht sieht man es nicht sofort. Deswegen habe ich den Farbwechsel auf Rot wenn 140001 kommt.

    Was mich ärgert ist das ich kann auch nicht eine Visualisierung machen mit ein Warnschild (etwa wie "Kommunikationsproblem, einer von 2 Verbindungen gestört") weil wenn 140000 kommt wurde das den Warnung entfernen obwohl 1 Verbindung noch gestört ist.

    Zitat Zitat von PN/DP
    CPU-Variablen auf Wertänderung überwachen dauert lange, weil man im Aufgabenplaner nur min. 1 Minute angeben kann.
    Ja ich kenne diese Verfahren auch. Ich glaube das dies wird den Antwort von Siemens Support sein. Wenn es kein bessere Lösung gibt, dann muss ich mit den 1 Minute leben.

    Zitat Zitat von PN/DP
    Vielleicht könnte man irgendwie die Verbindungen sich gegenseitig überwachen lassen? (daß die Wertänderung einer Variablen der einen Verbindung die Wertänderung einer Variablen der anderen Verbindung überwacht)
    Kommunizieren die CPU miteinander? Dann könnten die CPU den Ausfall der Verbindung der anderen CPU melden.
    Ja, die CPUs kommunizieren mit einander mittels Profinet i-device. Das wäre ein Möglichkeit und sogar nicht kompliziert.
    Aber es kann ja sein das die CPUs miteinander redet, aber trotzdem hat der HMI ein Problem. Die Verbindungsprobleme kann ja alles mögliches sein.

    Zitat Zitat von PN/DP
    Vielleicht geht auch sowas, daß bei Verbindungsausfall ein Skript gezielt versucht, nacheinander in die CPUs zu schreiben bis die Systemmeldung "Wertübernahme nicht möglich" kommt? Oder besser: in jede CPU in eine Variable schreibt, welche in der CPU in eine weitere Variable kopiert wird, welche im HMI auf Wertänderung eine Reaktion hat. Von der abgebauten Verbindung käme keine Reaktion. Das ginge innerhalb von Sekunden auszuwerten
    Das konnte ein Weg sein. Aber lautet sehr kompliziert, u.A weil es gibt kein Zeitverzögerung in WinCC Flexible. Das macht es schwierig erst der erste Verbindung zu testen, abwarten auf den Antwort, und dann nächste Verbindung testen und auf den Antwort abwarten. Und ich habe mehrere Skripte (meistens für Loggen von Daten) die ich nicht gerne sperren will wenn diese Verbindungstest lauft.
    Jesper M. Pedersen

  5. #4
    Avatar von JesperMP
    JesperMP ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.631
    Danke
    377
    Erhielt 802 Danke für 643 Beiträge

    Standard

    Noch eine Variante:

    Zwei WinCC Flexible interne Variabeln anlegen "verb1ok" und "verb2ok".

    Zwei WinCC Flexible externe Variabeln anlegen "verb1onlinebanner" und "verb2onlinebanner" (habe ich schon) die mit die 2 Steuerungen verbunden sind. Der SPS rollt der Wert 0..1..2.......98..99..0..1.. usw.
    Per Wertänderung von "verb1onlinebanner" und "verb2onlinebanner" werden "verb1ok" oder "verb2ok" gesetzt.

    Wenn 140001 kommt, dann beide "verb1ok" und "verb2ok" rücksetzen.

    Einfach.
    Einzigste Nachteil ist das wenn 140001 kommt, dann flackert "verb1ok" oder "verb2ok" ganz kurz, was ein bisschen visuel störend sein kann.
    Jesper M. Pedersen

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

    PN/DP (24.09.2014)

  7. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo Jesper,
    was ich mir (in Anlehnung an den Vorschlag von Harald) noch vorstellen könnte wäre :
    Du hast ein Script, dass auf die Wertänderung einer jeden Toggle-Variablen der jeweiligen Verbindung reagiert (also der Variablen, deren Wertänderung in der jeweiligen SPS erfolgt).
    Läuft das Script so wird zu der entsprechenden Toggle-Variablen die aktuelle Systemzeit der Visu (Now) gespeichert. Kommt ein neuer Toggle und die Zeitdifferenz einer Verbindung ist zu groß (Now - gespeicherte_Zeit_Verbindung) dann ist diese Verbindung gestört und du könntest darüber eine andere Variable setzen und/oder irgendetwas animieren.

    Gruß
    Larry

  8. #6
    Avatar von JesperMP
    JesperMP ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.631
    Danke
    377
    Erhielt 802 Danke für 643 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Du hast ein Script, dass auf die Wertänderung einer jeden Toggle-Variablen der jeweiligen Verbindung reagiert (also der Variablen, deren Wertänderung in der jeweiligen SPS erfolgt).
    Läuft das Script so wird zu der entsprechenden Toggle-Variablen die aktuelle Systemzeit der Visu (Now) gespeichert. Kommt ein neuer Toggle und die Zeitdifferenz einer Verbindung ist zu groß (Now - gespeicherte_Zeit_Verbindung) dann ist diese Verbindung gestört und du könntest darüber eine andere Variable setzen und/oder irgendetwas animieren.
    Aber wenn beide SPS'en offline sind, dann wird das Skript nicht ausgeführt.
    Jesper M. Pedersen

  9. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.207
    Danke
    927
    Erhielt 3.293 Danke für 2.662 Beiträge

    Standard

    Zitat Zitat von JesperMP Beitrag anzeigen
    Per Wertänderung von "verb1onlinebanner" und "verb2onlinebanner" werden "verb1ok" oder "verb2ok" gesetzt.

    Wenn 140001 kommt, dann beide "verb1ok" und "verb2ok" rücksetzen.

    Einfach.
    Einzigste Nachteil ist das wenn 140001 kommt, dann flackert "verb1ok" oder "verb2ok" ganz kurz, was ein bisschen visuel störend sein kann.
    Ja genau! In diese Richtung ging meine zuletzt genannte Idee, sie war nur noch nicht fertig.

    In meiner Idee wollte ich erst in alle CPU schreiben um eine Wertänderung zu provozieren. Doch das ist ja unnötig. Deine Idee mit der sich immer ändernden CPU-Variable ist besser.

    Falls das kurzzeitige visuelle Flackern stört - das kann man vielleicht mit einem Zähler verhindern, vielleicht mit Hilfe von "SimuliereVariable"? Da müßte ich mal was ausprobieren. Das Problem: es muß was panel-internes zeitversetzt passieren, wenn von extern keine Events mehr kommen. Mit "SimuliereVariable" kann sich eine Variable alle 200ms ändern ohne weitere Events.

    Man könnte auch ein Skript starten, was 1 bis 2 Sekunden lang läuft, wenn die anderen Skripte solange warten können.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #8
    Avatar von JesperMP
    JesperMP ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.631
    Danke
    377
    Erhielt 802 Danke für 643 Beiträge

    Standard

    Ich bevorzüge "einfach und zuverlässig" über "komplizert, aber perfekt".
    Ich denke ich bleibe bei der einfachere Variante.

    Danke für die Diskussion
    Jesper M. Pedersen

  11. #9
    Registriert seit
    20.11.2008
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich ich auch!
    Hätte als Idee noch gehabt, die Systemzeit des HMI beide CPU´s zu übertragen. Die CPU´s senden sie einfach wieder zurück. Stimmt eine nicht dann klemmt die Verbindung auf dies CPU.

  12. #10
    Registriert seit
    06.10.2003
    Beiträge
    3.414
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich mache so etwas mit einem Toggle-Bit aus den Taktmerkern der jeweiligen CPU. Zunächst zähle ich im Aufgabenplaner im Minutentakt jeweils eine interne Integer-Variable hoch. Bei Wertänderung des Toggle-Bits setze ich diesen Zähler zurück. Soweit wurde diese Idee von euch ja schon diskutiert. Aus diesen Zähler generiere ich allerdings eine Analogmeldung. Erreicht der Zählerstand den Wert "2" (Grenzwert=1), erfolgt eine Störungsmeldung. Der Vorteil ist dabei dass eine "richtige" Störungsmeldung angezeigt wird und dass hierfür kein Script notwendig ist. Dass es bis zu zwei Minuten dauern kann bis diese Meldung erscheint, stört mich eigentlich nicht. Es handelt sich dann ohnehin um einen "schweren Ausnahmefehler", zumindest in meinen Fällen. Wenn man irgendwie mit "Simuliere Variable" den Zähler schneller hochzählen könnte, wäre das natürlich gut. Vielleicht hat dazu jemand eine Idee?
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 29.08.2014, 23:03
  2. TIA Fehler 140001 Verbindung abgebaut
    Von EK1952 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 05.05.2014, 16:35
  3. Antworten: 9
    Letzter Beitrag: 05.09.2013, 11:00
  4. Protool verbindung abgebaut
    Von demmy86 im Forum HMI
    Antworten: 3
    Letzter Beitrag: 21.03.2008, 17:29
  5. Antworten: 4
    Letzter Beitrag: 20.01.2006, 07:56

Lesezeichen

Berechtigungen

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