TIA Watchdog

S.Schleich

Level-2
Beiträge
90
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe schon fleißig nach Ideen gesucht, aber nichts gefunden..

Hat jemand eine Idee, wie ich einen Watchdog zwischen SPS und HMI in der HMI realisieren kann?
Ich möchte/darf keine Systemmeldungen verwenden und den Bereichszeiger "Koordinierung" möchte ich nicht nutzen, da die Störung ja dann nicht mehr von der Steuerung an das HMI rübergegeben werden kann.

Gibt es ne Möglichkeit, eine Art Timer in einem Skript zu erstellen, bzw. zu nutzen?


Gruß
Silas
 
Zuletzt bearbeitet:
Ich nutze eine S7 315-2 PN/DP und ein TP1200 comfort.

Wenn ich das Kabel abziehe, kann ja ein möglich generiertes Störmeldebit nicht mehr übertragen werden, oder sehe ich das falsch?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie meinst du das? Der Steuerungsauftrag liefert der SPS ein Lebensbit. Fällt das Panel aus, dann hast du doch genau das was du möchtest.
ja, dann werte ich den Verlust der Verbindung in der CPU aus... ich möchte aber sicherstellen, dass eine Meldung generiert wird, wenn die Verbindung weg ist. Wenn ich nun dieses Toggel-Bit in der SPS nutze um ein Störungsbit zu generieren, ist ja nicht gewährleistet, dass das Bit wieder in die HMI übertragen wird
 
Nur dadurch, dass du den Bereichszeiger "Koordinierung" einrichtest, geht die Verbindung nicht weg.
das ist mir schon klar, aber wenn ich in der Steuerung bspw. sage, dass eine Meldung kommen soll, wenn das Toggelbit 3 Sek false ist, dann gibt es ja keine Verbindung mehr von CPU und HMI. Also kommt dieses Meldebit nicht mehr im HMI an.
 
Was meinst du mit "die Störung" bzw. "diese eine Meldung"?
Wenn die Verbindung zwischen SPS und HMI verloren geht, möchte ich eine Meldung im Panel generieren (z.B.: Verbindung HMI<->SPS gestört)
in der CPU kann ich mir ne Logik bauen, z.B.: wenn das toggelnde Bit von der Koordinierung 3 Sekunden false bleibt, wird ein Bit in einem Störmeldewort gesetzt.
Da aber die Verbindung weg ist, wird dieses Bit nicht mehr von der HMI als true empfangen und die Meldung nicht generiert.
 
Oder willst du nur ganz allgemein auf dem HMI eine Meldung anzeigen, wenn die Verbindung zur CPU weg ist?
(PS: ah ja, das willst du)

Da könntest du in der CPU eine INT-Variable alle paar Sekunden incrementieren und mit dem Aufgabenplaner jede Minute nachsehen, ob der Wert sich noch ändert. Die Variable muss dann im HMI zyklisch fortlaufend aktualisiert werden.
Es kommt aber sowieso schon eine Systemmeldung "Verbindung abgebaut" - reicht die nicht? Du bräuchtest nur eine Meldeanzeige, die auch Meldeereignisse der Meldeklasse "System" anzeigt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Oder willst du nur ganz allgemein auf dem HMI eine Meldung anzeigen, wenn die Verbindung zur CPU weg ist?
Da könntest du in der CPU eine INT-Variable alle paar Sekunden incrementieren und mit dem Aufgabenplaner jede Minute nachsehen, ob der wert sich noch ändert.
Es kommt aber sowieso schon eine Systemmeldung "Verbindung abgebaut" - reicht die nicht? Du bräuchtest nur eine Meldeanzeige, die auch Meldeereignisse der Meldeklasse "System" anzeigt.
die Problematik dabei ist halt, dass wir die anderen Systemmeldungen nicht haben wollen, sondern nur diese eine. Also müsste man diese im Vorfeld filtern. Das ist soweit ich recherchiert habe nicht möglich.

Wie würdest du das im Aufgabenplaner realisieren?
 
Im Aufgabenplaner alle 1 Minute ein Skript aufrufen, was den Wert der Variable von der CPU liest und mit einem gespeicherten Wert vergleicht. Dann den Wert speichern. Wenn der Wert sich nicht geändert hat, dann eine interne HMI-Variable auf 1 setzen, was dann irgendwo angezeigt wird, z.B. einen Text sichtbar und ggf blinkend macht. Das Skript könnte auch mit ShowSystemAlarm eine Meldung erzeugen, doch die würde nicht angezeigt werden, wenn du keine Systemmeldungen angezeigt haben willst. (ShowSystemAlarm Meldungsnummer ist glaube ich 60000 ?)

Vielleicht gibt es auch mal wieder einen Siemens FAQ dazu? Die zeigen immer wieder mal "Lösungen", wie man den Status der Verbindung anzeigen kann. Wenn überhaupt, dann funktionieren die allerdings nur, wenn man nur eine einzige HMI-Verbindung hat.

Ich zeige in meinen HMI einen Fortschrittsbalken oder einen drehenden Zeiger an und gut ist.

Das Thema hatten wir hier schon öfters. Suche mal mit der Forumssuche nach: 140001
oder schau mal hier:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Im Aufgabenplaner alle 1 Minute ein Skript aufrufen, was den Wert der Variable von der CPU liest und mit einem gespeicherten Wert vergleicht. Dann den Wert speichern. Wenn der Wert sich nicht geändert hat, dann eine interne HMI-Variable auf 1 setzen, was dann irgendwo angezeigt wird, z.B. einen Text sichtbar und ggf blinkend macht. Das Skript könnte auch mit ShowSystemAlarm eine Meldung erzeugen, doch die würde nicht angezeigt werden, wenn du keine Systemmeldungen angezeigt haben willst. (ShowSystemAlarm Meldungsnummer ist glaube ich 60000 ?)

Vielleicht gibt es auch mal wieder einen Siemens FAQ dazu? Die zeigen immer wieder mal "Lösungen", wie man den Status der Verbindung anzeigen kann. Wenn überhaupt, dann funktionieren die allerdings nur, wenn man nur eine einzige HMI-Verbindung hat.

Ich zeige in meinen HMI einen Fortschrittsbalken oder einen drehenden Zeiger an und gut ist.
Suche mal mit der Forumssuche nach: 140001
oder schau mal hier:
weißt du, ob die Systemmeldung kommt, wenn ich diese in keiner Meldeanzeige hinterlege?
Also kann ich die Meldung mit "Gekommen" auswerten, sie aber nicht anzeigen?
 
Die Systemmeldung von ShowSystemAlarm steht wie alle Systemmeldungen ein paar Sekunden lang an (so lange wie du projektiert hast). Du kannst in einer Vorlage (oder Grundbild?) ein Meldefenster projektieren, z.B. nur für die Meldeklasse System, dann geht für ein paar Sekunden das Meldefenster auf, allerdings auch für die Systemmeldungen, die du "verheimlichen" willst.
Systemmeldungen "Kommen" nur, es gibt kein "Gehen"

Wenn es nur eine einzige HMI-Verbindung gibt, dann ist es am einfachsten, bei den Systemmeldungen 140000 und 140001 eine Panel-Variable zu setzen und rückzusetzen (in den Ereignissen der jeweiligen Meldung). Aber das willst du ja auch nicht.
 
Die Systemmeldung von ShowSystemAlarm steht wie alle Systemmeldungen ein paar Sekunden lang an (so lange wie du projektiert hast). Du kannst in einer Vorlage (oder Grundbild?) ein Meldefenster projektieren, z.B. nur für die Meldeklasse System, dann geht für ein paar Sekunden das Meldefenster auf, allerdings auch für die Systemmeldungen, die du "verheimlichen" willst.
Systemmeldungen "Kommen" nur, es gibt kein "Gehen"

Wenn es nur eine einzige HMI-Verbindung gibt, dann ist es am einfachsten, bei den Systemmeldungen 140000 und 140001 eine Panel-Variable zu setzen und rückzusetzen (in den Ereignissen der jeweiligen Meldung). Aber das willst du ja auch nicht.
ich hatte gedacht:

ein Bild erstellen, dass man aber in der HMI nicht öffnen kann. Darauf ein Meldefenster mit dem Haken bei Systemmeldungen.
wenn die Systemmeldung 140000 (Verbindung abgebaut) gekommen ist, soll ein Skript starten.
In diesem Skript schreibe ich einfach ein booleschen Wert auf true.
Dieses Bit verwende ich in den Bitmeldungen und lege es als HMI-Variable mit Verbindung zur SPS an.

Von der CPU lasse ich dieses Bit zyklisch auf false schreiben.
 
Zurück
Oben