Step 7 CPU Status mit WinCC Runtime visualisieren

Nightwalker1987

Level-1
Beiträge
23
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich habe ein kleines Problem. Bei mir auf Arbeit habe ich ein Leitbild übernommen, was mit WinCC flex 2008 realisiert (PC Runtime) wurde. Die Anlage besteht aus mehreren unterschiedlichen SPSen.
Es kommt hin und wieder mal vor, dass durch Instandhaltungsmaßnahmen Teile (SPSen) abgeschaltet werden müssen. Um dies immer einwandfrei zu sehen (auch Fehler im BUS) würde ich gern den Status der einzelnen SPSen mir auf dem leitbild anzeigen lassen. Also Run->Stop->Offline. Ich habe diesbezüglich auch schon eine Anleitung (http:\\support.automation.siemens.com/WW/view/de/35538370) von Siemens ausprobiert. Dies klappte aber nicht so wie gewünscht. Die erste Variante klappte gar nicht (CPU immer offline) und die zweite klappt ja eigentlich nur, wenn nur eine SPS an der Visu hängt. Es tritt unteranderem auch das Problem auf, dass sich eine CPU verabschiedet, danach eine zweite, diese dann wieder auftaucht und somit in der 2. Variante dann alles wieder ok ist, obwohl die erste nicht wieder da ist. Mein Testaufbau war WinCC flex Runtime 2008 und eine CPU 315-2 PN/DP über Ethernet angeschlossen.
Wer kann mir helfen.
Oder hat eine andere Idee.

mfG N8
 
Hallo!

Wie Du schon selbst festgestellt hast, kann die zweite Variante aus dem Siemens-Beispiel mit dem "Kommen"-Ereignis der Systemmeldungen nur bei genau einer Verbindung im Projekt funktionieren. Was Siemens allerdings da nicht hinschreibt.

Die erste Variante mit der Auswertung der CPU-Taktmerker sollte aber funktionieren, die Auswertung dauert nur etwas länger
Siemens FAQ 35538370 schrieb:
Im folgenden FAQ ist beschrieben, wie man den aktuellen Status einer CPU visualisieren und zuverlässig am Panel anzeigen lassen kann.
Was in dem Siemens-Beispiel auch noch "vergessen" wurde zu erwähnen:
Hast Du die HW Konfig mit den aktivierten Taktmerkern in die CPU geladen?
Steht in WinCCflex die Taktmerker-Variable auf "zyklisch fortlaufend lesen"?

Mache doch mal zum Test in ein Bild ein Ausgabefeld für den Wert des Taktmerkerbytes rein - ändert sich der angezeigte Wert?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Nightwalker
Ich habe die FAQ kurz mal ueberflogen. Beide funktionieren, nach meiner Ansicht, einwandfrei(Nicht getestet)! Du musst das natuerlich fuer jede CPU machen. Im zweiten Beispiel musst Du natuerlich pro CPU ein "Tag_x" anlegen. Ansonsten probiere ich das heute Abend gerne mal aus!

Gruss
Christoph
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Einfache "Lebt noch"-Anzeige

Wenn meine Anlagenbediener eine Anzeige für den CPU/Verbindungs-Status auf einem Panel haben wollen, dann mache ich einfach einen "Fortschrittsbalken" ins Permanentfenster und kopple das auf eine Variable, welche in der CPU im 1-sek-Rhytmus von 0..4 erhöht wird. Wenn der Balken stehenbleibt (die ausgefüllte Länge sich nicht ändert) dann ist die Verbindung unterbrochen oder die CPU ist in Stop.

Die Grafiken für das symbolische EA-Feld "Fortschrittsbalken" sehen etwa so aus:
Wert = 0: ____ (Standard)
Wert = 1: X___
Wert = 2: XX__
Wert = 3: XXX_
Wert = 4: XXXX

(X Balken ausgefüllt / _ Balken nicht ausgefüllt)

Oder ein drehender Zeiger:
Wert = 0: | (Standard)
Wert = 1: /
Wert = 2: -
Wert = 3: \

Für eine noch einfachere Anzeige ist auch denkbar, nur ein Sekundentaktbit auf eine Anzeige mit den Stati "|" und "-" oder auf ein Rechteck/Kreis mit 2 Füllfarben zu legen. Da sieht man auch, ob die Anzeige sich noch dreht oder blinkt.

Harald
 
Hallo Harald.
Ich habe deine erste Variante. Bei mir ist es zwei normalen Analog-Balken die mit visibility-Animation wechseln, von 0-50 eine Weis-Blaue Balke. Von 51-100 eine Blau-Weise Balke. Das sieht aus wie eine fliegende Balke wie man es oft sieht in viele Programme.
Der zweite Variante mit eine drehende Zeiger ist viel zu diskret.
Selbst mit der fliegende Balke finde ich das es ist nicht genug. Deswegen verwende ich den "gehende" Meldung um den Balke ins Rot zu wechseln. Genau dann habe ich das Problem mit mehrere Verbindungen.
 
Hallo Christoph,

wie unterscheidest Du, für welche Verbindung die Systemmeldungen 140000 und 140001 kommen? :confused:

Harald

Hallo Harald

Ich hatte angenommen, dass diese Events pro CPU angelegt werden! Ist natuerlich nicht so, aber ich wuerde annehmen, dass das Systemevent die Informationen in sich traegt! (%1, Station %2, Rack %3, Slot %4) Ich habe aber kein flexible zur Hand, so dass ich erst heute abend gucken kann!

@JesperMP
Eigentlich wollte ich vom TS nur ein paar mehr Informationen was denn nicht funktioniert. Denn wie Harald schreibt, funktioniert diese Variante, auch fuer mehrere CPU's!

Gruss
Christoph
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Cristoph, du hast gesagt das beide Verfahren wird einwandfrei funktionieren.

Die "placeholders" %1, %2, %3 und %4 werden für den Meldefenster Anzeige verwendet. Man kann meines Wissens den Information in die Placeholders nicht mit etwas anders verbinden.
 
Jesper
Habe ich ja inzwischen revidiert, da ich von der Tatsache ausging, dass die Systemevents pro Verbindung existieren, sind aber pro Panel!

Gruss
Christoph
 
Das ist wieder eine Antwort, bei der mir der Hut unter der Decke hängt.
"Ich hatte angenommen..."
Das Problem mit der Anzeige hat jeder, der mehrere PLC an eine Visualisierung anbinden muss.
Es ist immer schwer richtige Informationen von den CPU zu bekommen und diese sinnvoll auszuwerten.
An diesem Punkt hilft selbst der Dino PCS7 nicht wirklich.

Daher finde ich den Vorschlag von Harald gut.
Bei uns mache ich es über ein Lebensbit, das entsprechend angezeigt und bei Fehlern gemeldet wird.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die vielen Antworten.
Ich finde die Idee von Harald auch ganz gut. Jedoch stört es mich ein wenig, dass ich nicht zwischen "Stop" und "offline" unterscheiden kann.
Ich werde es morgen mal versuchen umzusetzen.

@Harald: ja ich habe den Taktmerker geladen und die Variable eingestellt
 
Mache doch mal zum Test in ein Bild ein Ausgabefeld für den Wert des Taktmerkerbytes rein - ändert sich der angezeigte Wert?
Hast Du das ausprobiert?


Jedoch stört es mich ein wenig, dass ich nicht zwischen "Stop" und "offline" unterscheiden kann.
Das ist eigentlich auch nicht so wichtig. In beiden Fällen kann das HMI die SPS nicht steuern. In beiden Fällen bleibt der Balken stehen.
Zur Diagnose kann man dann ja in den Meldepuffer schauen, ob die Verbindung abgebaut wurde - dann ist die CPU offline. Wenn die Verbindung nicht abgebaut wurde, dann ist die CPU in Stop. Oder man schaut auf EA-Felder: sind die ####, dann ist die CPU offline; stehen Werte drin, dann ist die CPU "nur" in Stop.
Wenn man einen Digitalausgang frei hat, dann kann man den Ausgang als Run-Indikator benutzen und im HMI direkt diesen Ax.y abfragen. Im SPS-Programm wird der Ausgang fest auf 1 eingeschaltet. Geht die SPS in Stop, dann schaltet sie alle Ausgänge auf 0.

Warum ich nicht mehr wie Jesper einfach das Analog-Balken-Objekt nehme:
Bei kleineren Panels ist die Anzahl Analog-Balken pro Bild begrenzt und frisst auch ganz schön Performance. Da war ich irgendwann mal an der Grenze und habe mir seitdem angewöhnt den Balken aus einfachen Objekten zusammenzubauen. (*)
Der drehende Zeiger ist eine Lösung, wenn nicht viel Platz zur Verfügung steht, um diesen in jedes Bild einzubauen - z.B. bei Textdisplays, da benötigt er nur den Platz für 1 Zeichen.

Tip: einen "fliegenden" (oder rotierenden) Balken kann man auch erstellen:
Wert = 0: ____ (Standard)
Wert = 1: X___
Wert = 2: XX__
Wert = 3: XXX_
Wert = 4: XXXX
Wert = 5: _XXX
Wert = 6: __XX
Wert = 7: ___X


[offtopic]
(*) Da ich oft viele Tankstände auf einem Bild habe erstelle ich die Füllstands-Balkenanzeigen nicht aus dem Balken-Objekt sondern per vertikale Bewegung eines Rechtecks unter einem anderen verdeckenden Rechteck heraus.

Harald
 
Kann man die "Full Block" Character in die kleine Panele verwenden ?
Es ist Unicode Character 2588 "█".
In PC RT scheint es zu gehen.

Dann wurde es so aussehen was gar nicht schlecht wäre:

Wert = 0: ____ (Standard)

Wert = 1: ___
Wert = 2: ██__
Wert = 3: ███_
Wert = 4: ████
Wert = 5: _███
Wert = 6: __██
Wert = 7: ___
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In Text-Panels ist das "Full Block" Character "█" das ASCII-Zeichen 193
Bei kleinen Grafikpanels oder WinCE-Panels müsste ich mal testen. Ich meine, da ist es das Zeichen 145

Harald
 
Zurück
Oben