Rprogrammierung einer Analoguhr mit WinCC

Randy

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

ein Kumpel und ich haben einige Anlaufschwierigkeiten mit einer Aufgabe, die uns gestellt wurde. Dabei handelt es sich um die Darstellung einer analogen Uhr mit WinCC.

Unser Ansatz ist, eine Uhr vorerst mit dem Step 7 zu programmieren und eben über das die Darstellung zu steuern. Nur haben wir Probleme dabei, die Uhrzeiger entsprechend darzustellen (Stundenzeiger und Minutenzeiger).

Hat jemand von euch vielleicht ein paar hilfreiche Ratschläge oder Tipps auf Lager? Wir sind für jede Hilfe dankbar :)

MfG

Randy
 
Am einfachsten ist wohl eine Grafikliste für die Zeiger. Damit kommt ihr ohne Script aus.

Gruß
Dieter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Geht es hier um WinCC oder WinCC flexible? Und um welche Programmversion?

Wenn es um WinCC geht, würde ich die Uhrzeiger als Polygone zeichnen und dann die Polygone rotieren lassen.

Gruß Kai
 
Ein Programmbeispiel für die Rotation eines Polygons mit VB-Script in WinCC V6.0 findet man hier:

http://www.sps-forum.de/showthread.php?t=43856

Wenn man nicht mit VB-Script oder C-Script arbeiten will, kann man für die Rotation der Polygone auch den Dynamik-Dialog unter den
Objekteigenschaften der Polygone verwenden.

Gruß Kai
 
In Flex kannst du auch ein Objekt(linie)in Abhängigkeit einer variable einen Winkel zuweisen (irgendwo bei den eigenschaften). Wenn die Variable (Merker Dw ...) den entsprechenden Zeigerwinkel enthalten...

screenshots kann ich momentan nicht liefern bin mit dem handy unterwegs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Falls es nur darum geht eine Uhr anzuzeigen (keine explizite Programmieraufgabe), dann geht das am einfachsten über das Einfügen eines Uhrzeit-Controls:
WinCC-Explorer -->öffnen Graphics Designer -->OBjektpalette -->WinCC Digital/Analog Clock
Gruß Approx
 
Danke euch allen für die vielen Hinweise! Wir sind allerdings immernoch relativ am rätseln.

Wahrscheinlich habe ich mich aber auch anfangs sehr unverständlich ausgedrückt.

Ein paar genauere infos:

Wir benutzen Simatic S7-300, WinCC flexible 2007/Step 7 und ein TP 177B color PN/DP Panel.

Unsere Ausgabe sieht vor, dass wir eine analoge Uhr (Stunden+Minuten) visualisieren und diese am Touchpanel direkt einstellen/verstellen können. Das setzt quasi voraus, dass wir die Geschichte vorher mit Simatic programmiert haben, oder?
Zusätzlich sollen wir eine Datumsanzeige einbauen, dafür gibt es ja allerdings ein vorgefertigtes Element.

Den Vorschlag mit den Polygonen fand ich sehr gut, habe ihn allerdings nicht umgesetzt bekommen.

Habt ihr vielleicht noch andere Vorschläge bzw. einen Rat wie man dies unter WinCC flexible realisieren könnte?

Liebe Grüße

Randy
 
Zuletzt bearbeitet:
Unsere Ausgabe sieht vor, dass wir eine analoge Uhr (Stunden+Minuten) visualisieren und diese am Touchpanel direkt einstellen/verstellen können.
Analoge Uhr:
das erweiterte Objekt "Clock" in ein Bild einfügen und Häkchen bei "[v] Analoge Anzeige" machen
(das sollte es auch in WinCCflex 2007 schon geben, auch für TP177B)

Uhrzeit verstellen:
je nach Geschmack oder Vorgabe 1 oder 2 Datum-Uhrzeit-Feld(er) in ein Bild einfügen (Datum + Uhrzeit zusammen oder getrennt)
Modus: Eingabe/Ausgabe
(x) Systemzeit anzeigen
[v] Datum anzeigen und/oder [v] Uhrzeit anzeigen

Oder sollst Du "an den Zeigern drehen"?

Das setzt quasi voraus, dass wir die Geschichte vorher mit Simatic programmiert haben, oder?
Dafür muß nichts in der SPS programmiert werden.
Nur eine eventuelle Synchronisation der Panel-Uhr mit der CPU-Uhr erfordert etwas Programmierung in der CPU. Da wird es aber auch in WinCCflex komplizierter, ein Datum/Uhrzeit an die SPS zu übergeben, weil man vom Panel aus die Uhr der SPS stellen muß und das TP177B keine Scripte kann. Doch auch dafür gibt es fertige Anwendungen.

Zusätzlich sollen wir eine Datumsanzeige einbauen, dafür gibt es ja allerdings ein vorgefertigtes Element.
Jo, einfach auf dem Bild mit der Analoguhr ein Datum-Uhrzeit-Feld einfügen
Modus: Ausgabe
(x) Systemzeit anzeigen
[v] Datum anzeigen

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Analoge Uhr:
das erweiterte Objekt "Clock" in ein Bild einfügen und Häkchen bei "[v] Analoge Anzeige" machen
(das sollte es auch in WinCCflex 2007 schon geben, auch für TP177B)

Leider nicht - die Uhr steht einem bei dem Panel nicht unter den erweiterten Objekten zur Verfügung. Bei einem anderen Panel gibt es das, das habe ich auch schon gesehen.

Und an den Zeigern drehen soll ich glücklicherweise nicht :)

Trotzdem bereitet mir diese Uhr Kopfzerbrechen. Ich habe keinerlei Funktion gefunden, mit der man Uhrzeiger rotieren lassen könnte. Gibt es Funktionen, um Objekte in einem bestimmten Winkel zu drehen?

Bitte um Antwort :)

Liebe Grüße

Randy
 
Ich befürchte bei einen, so im Funtionsumfang eingeschränkten Panel, bleibt
dir nur die Grafikliste. Das ist aber eine Aufgabe für jemanden der Mutter und
Vater erschlagen hat. Könnt ihr diese Aufgabe nicht einfach überspringen ;)
 
Mit Grafikliste meinst du jede mögliche Zeigerstellung einzeln abarbeiten und entsprechend abrufen? Ein Glück, dass er keinen Sekundenzeiger verlangt hat.

Ich wünschte sehr ich könnte das einfach so überspringen aber das wird nicht gehen :/

LG

Randy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider nicht - die Uhr steht einem bei dem Panel nicht unter den erweiterten Objekten zur Verfügung.
Grrr, hast Recht, für TP177B gibt es die Clock nicht. :(

Gibt es in WinCCflex 2007 schon das Zeigerinstrument für das TP177B?
Damit kann man sich auch sehr einfach eine Analoguhr basteln, z.B. so:
  • 1. Zeigerinstrument "Uhr_Minuten", 192x192, im Hintergrund, transparent
  • 2. Zeigerinstrument "Uhr_Stunden", 128x128, im Vordergrund, transparent
  • "Uhr_Minuten" auf Vollkreis aufziehen: Min: 0 bei -90° / Max: 60 bei 270°
  • "Uhr_Stunden" auf Vollkreis aufziehen: Min: 0 bei -90° / Max: 12 bei 270°
  • Variablen in der SPS und in WinCCflex anlegen und den Zeigerinstrumenten zuweisen
    "Uhr_Stunden", DB1.DBB0, Byte
    "Uhr_Minuten", DB1.DBB1, Byte
  • dann noch die Skalen und Beschriftungen nach Bedarf unsichtbar oder farbig machen
  • eventuell ein schickes Ziffernblatt als Grafik dahinterlegen
  • in der CPU einen Programmschnipsel schreiben, der die Stunden und Minuten aus der Uhrzeit in die Variablen schreibt.
    Dafür gebe ich jetzt kein Beispiel - Du sollst ja auch noch was selber machen. ;)
    (ich habe 9 AWL-Operationen im OB1 benötigt, beachte: eine Analoguhr hat nur 12 Stunden)
Verbesserung: das Stunden-Zeigerinstrument auf 48 oder 60 Einheiten skalieren, dann gleitet auch der Stundenzeiger zwischen den Stunden-Teilstrichen und springt nicht erst zur vollen Stunde. Die Stunden in der CPU dann natürlich skaliert in die Variable schreiben.

Im Anhang ein Screenshot der TP177B-Panel-Simulation WinCCflex 2008 SP2. Ich habe zur Verdeutlichung die Skalen und Beschriftungen sichtbar gelassen, das Stunden-Zeigerinstrument rot.

Harald
 

Anhänge

  • TP177_Analoguhr.gif
    TP177_Analoguhr.gif
    19,8 KB · Aufrufe: 29
Zurück
Oben