Bit Kontrolle über WinCC Flexible Runtime

ohmbe

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

ich soll eine Visualisierung von Bits erzeugen. Dazu benutze ich WinCC flexible 2008.
Ich habe einen DB in einem S7-Programm angelegt. Welcher 8 Arraywerte besitzt mit je 36k Bits.
Diese Bits sollen nun gleichzeitig in einem Kurvendiagramm zyklisch angezeigt werden. Mit dem Diagramm
soll man dann die Abhängigkeit einzelner Bits bestimmen können.
Wenn es geklappt hat, befindet sich im Anhang noch eine Skizze, wie ich mir das vorstelle.

Meine Fragen wären:
Ist das möglich?
Kann die Kurvenanzeige mit so vielen Werten arbeiten?


Danke im Vorraus

ohmbe
 

Anhänge

  • 20130924_143341.jpg
    20130924_143341.jpg
    345,8 KB · Aufrufe: 60
Hallo,
nein ... das ist nicht möglich. Die Flex-Kurvenanzeigen kann nicht mal annähernd mit so vielen Werten arbeiten. Darüber hinaus hat sie auch schon bei sehr wenigen Werten (bei einer Profilkurve) das Problem, sie aktuell zu halten.
Ich bin mir gerade wegen der Anzahl nicht sicher, meine aber dass eine Profilkurve max. 999 (ggf. sogar nur 900) Werte darstellen kann ...

Gruß
Larry
 
Was willst du überhaupt damit erreichen? Rein zur Diagnose von SPS-Daten ist das unsinnig.
Wenn es nicht archiviert werden muss könnte evtl. eine Byte-Indizierte Anzeige (also immer ein Byte je nach vorheriger Auswahl) helfen.

Gruß MK
 
Hi,

das ist nur eine Übergangslösung. Sie dient zur Veranschaulichung.
Kannst du mir das mit der Byte-Indizierten Anzeige genauer erklären?

Gruß
ohmbe
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Machst zwei Tasten im Panel (plus und minus) mit der du die Funktion "Erhöhe Wert" bzw. "Verringere Wert" aufrufst.
In den Funktionen wird eine interne Variable (nennen wir sie "Zeiger") vom Typ Int erhöht bzw. verringert.
Diese interne Variable "Zeiger" gibst du unter Eigenschaften/Adressierung der DB-Variable bei DBB als Multiplex an.
Nicht vergessen zyklisch fortlaufend zu aktualisieren.
Nun kannst du die DB-Variable auf die Kurvenanzeige legen. Es wird immer das Byte aus dem DB angezeigt, mit dem Wert von der Variable "Zeiger". Kann aber sein das die Kurvenanzeige erstmal immer von vorn(leer) beginnt.

Gruß MK
 
Ich hätte da noch einmal eine Frage ist diese Darstellung möglich wenn sie nicht zyklisch ist.
Also wenn ich zuerst alle Daten in den DB einlese und erst danach visualisieren lasse. Oder sind es einfach zu viel Werte?

Gruß ohmbe
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn jemand am Bildschirm jedes einzelne Bit von den 36000 erkennen können soll, brauchst du erstmal eine Anzeige mit der entsprechenden Anzahl an Pixen in der Horizontalen. Daran scheitert es doch schonmal als erstes.

Wenn das Diagramm mehr oder weniger statisch sein soll, könntest du auch alles per Hand selber zeichnen. Mit Bildbausteinen hält sich der Aufwand dafür sogar noch in Grenzen.
Dazu erstellst du einen Bildbaustein mit 32 vertikalen Linien in horizontaler Breite. Der Bildbaustein bekommt eine Eigenschaft mit einer Variable vom Typ Long. Für jede der Linien schaltest du die Sichbarkeit in Abhängigkeit der Bits 0 bis 31 der Eigenschaftsvariable ein oder aus (Bytedreher dabei beachten)
Dann hast du ein Baustein um 32 Bits zu visualisieren.

Man angenommen du hast einen Bildschirm mit 1900 Pixel in der Breite, dann könntest du 59 dieser Bausteine nebeneinander platzieren, also 59 * 32 = 1888 Bits. Über indirekte Adressierung am Panel könnte man jetzt eine Navigation programmieren, um (z.B. in 32 Bit Sprüngen) durch die 36000 Bits zu "blättern".

Wenn du deine 8 Linien untereinander darstellen willst, wären das 59*8 = 472 Dword Variablen im Bild. Lizenztechnisch mit WinCCflex noch machbar. Ich weiß nur nicht ob das System mit der Anzahl an Bildobjekten klarkommt, ich meine mal gelesen zu haben dass wenn die Objekte gruppiert sind diese als eines zählen.

Aber Versuch macht kluch, der größte Aufwand ist einmalig den Bildbaustein mit den 32 Linien zu zeichnen.
Sieht aber dann nicht ganz so aus wie von dir skizziert. Eine Reihe von 1-Signalen stellt sich dann als Block dar. Auf der Nullinie legt man einfach eine statische durchgehende Linie.
 
Ich habe mal probiert was WinCCflexible zu der Anzahl der Linien sagt. Dazu habe ich mir einen kleinen 8-Kanal Logikanalysator für die SPS geschrieben, und eine WinCCflexible Visualisierung dazu. In der SPS werden die Bits durch ein 20 Dword großes Array pro Kanal geschoben, damit in der Visualisierung das aktuellste Bit immer ganz rechts steht.
Die Linie für ein Bit ist in der Visu ein Pixel breit, pro Kanal also 20*32 = 640, und für alle 8 Kanäle insgesamt 5120 Linien.
Bis auf dass der Editor etwas träge wird, scheint das zumindest in der PC-Runtime so zu laufen.

Eigentlich ein ganz nützliches Tool, wenn man in der SPS bei bestimmten Bedingungen den Signalverlauf aufzeichnen möchte. Ich habs im Simulator mal mit dem CPU Taktmerkerbyte probiert.

SPS-Wcf-8ch-Logikanalysator.png
 
Hallo Thomas_v2.1,

danke für deine Antwort.
Könntest du mir das Programm und die Visualisierung gezipt zukommen lassen?

Grüssle
ohmbe
 
Zurück
Oben