# Einfache Wochenzeitschaltuhr im WinCC?



## vision1001 (21 März 2008)

Hallo erstmal...

..ich hab ja hier schon nach Schaltuhr gesucht und das geht mir hier alles viel zu weit.

Ich selbst hab von WinCC so ziemlich null Ahnung und will mich da gar nicht sonderlich rein vertiefen... kennt vielleicht irgendwer eine Lösung für folgendes Problem:

Vohanden: Anlagenvisualisierung mit WinCC, darin zwei Schaltflächen Gesamtanlage EIN und AUS.

Nun möchte ich einfach ein Fenster in dem ich eine Zeit für EIN eingeben kann und eine Zeit für AUS. Dazu noch 7 häkchenfelder für den Wochentag. Haken gesetzt = Zeitschaltuhr aktiv, haken nicht gesetzt eben nicht...

Als Zeitbasis reicht mir die PC (Server) Zeit der WinCC Runtime völlig aus.


Ist das wirklich sooo schwer, dass ich dazu keine Lösung finde, oder zu einfach?


----------



## marlob (21 März 2008)

Falls du dich nicht in WinCC vertiefen willst, dann programmiere die Zeitschaltuhr doch in deiner SPS und übergebe nur die Start und Stopzeiten von WinCC zur SPS.
Falls du eine S7 benutzt, dann gibt es hier im Forum schon ein paar Beispiele für eine Zeitschaltuhr


----------



## vision1001 (21 März 2008)

Problem:

es wären 16 SPSen  außerdem sollen die eh übers WinCC konfigurierbar sein... also Aktivierung pro Tag und zwei Zeiten für An und Aus... ich will ja nicht mal unterschiedliche Zeiten oder gar ein Jahresprogramm haben...

Und die Buttons EIN & AUS gibts ja im WinCC schon... also ich würd mich schon gern soweit einarbeiten... 

Bissi mit dem Grafik Designer und AlarmLogging hab ich ja schon gemacht.

Ist sowas denn sooooo aufwendig?

Ich mein ne Uhr gibts ja im WinCC, Buttons mit Häkchen drin doch wohl auch...


----------



## Ralle (21 März 2008)

Nicht das ich dir nun so groß weiterhelfen kann, da ich mich auch erst in das Problem der Zeitschaltuhr usw. reinwurschteln müßte, aber folgender Ansatz hilft evtl. weiter. Ich denke, du mußt das ganze mit einem VBA-Script lösen (C-Script geht natürlich auch). Leider ist WinCC mit Zeiten absolut überfordert, so daß du zuerst mal überlegen solltest, in welchem Format du die Zeiten auf der Oberfläche anzeigen und editieren willst, String oder jeweils einzelne Int für Std. Min. und Sek. erscheinen mir da am sinnvollsten. Das Script sollte global laufen, mit einem Timerereignis von 1 Sekunde oder auch 10 Sekunden, je nachdem, wie genau es sein soll. Im Script würde ich die aktuelle Systemzeit mit der jeweils eingegebenen Start- und Endzeit vergleichen, dazu noch den Wochentag auswerten und je Zeitschaltuhr eine Variable setzen.


----------



## funkdoc (21 März 2008)

ich weiss wir sind hier hmi forum, aber so sachen wie zeitschaltuhr etc würde ich in der sps umsetzen.

einwenig mehr infos wären schon nciht schlecht. zb welche steuerungen und auf was hast du erfahrung

das programm der zeitschaltuhr brauchst du auch nur auf einer steuerung haben, da wäre jetzt natürlich  die vernetzung interessant. 

grüsse


----------



## vision1001 (21 März 2008)

Danke erstmal für das Interesse.

Ich war eigentlich davon ausgegangen, daß mir hier einer sagen kann, woher man ein einfaches fertiges Script bekommt, daß ich dann nur einbaun muss.

Das das wohl VBA oder C+ sein wird, hab ich mir schon gedacht...

Genauigkeit von 1 Minute reicht vollkommen... vernetzt sind die SPS via TCP/IP. 

Ich habe im bestehenden WinCC Projekt ja schon zwei Schalter... also (ich weis es nicht genau, aber das lässt sich ja raus finden) ich denke die Schalter setzten/rücksetzten in den SPSen einfach ein Bit Anlage ein.

Die SPSen an sich laufen einfach durchgehend.

Ich möchte also einfach ein Feld haben, indem ich eine Startzeit und eine Stopzeit eingebe (Format z.B.: 06:00 und 22:00), darunter z.B. sieben Schalter (Felder mit Häkchen, Buttons oder was das WinCC so hergibt) wo ich die Wochentage aktivieren kann. Ist der Wochentag aktiv wird bei der Einschaltzeit die Funktion des EIN Buttons einmal kurz aktiviert und mit der Ausschaltzeit der Aus Button.

Das muss nicht schön oder sonderlich genau sein oder so... also völlig unzeitkritisch. Es soll sich nur einfach von der WinCC Oberfläche aus bedienen lassen... und zwar von jedem Anwender.

Ich stell mir das ganz primitiv vor...


----------



## funkdoc (21 März 2008)

ja gut aber ein so ein script wird hier eben keiner aus dem ärmel schütteln können weil man eben das in der sps macht.

und wenn die steurungen sowieso die ganze zeit durchlaufen, ists ja kein problem. man braucht sich nur mal mit dem format DATE_TIME etwas beschäftigen (lesen) und schon hast du die grundlage für einen selbstgeschriebenen Zeitschaltuhr -FB.
im wincc legst du dann blos eine boolsche variable für die 15 weiteren steurungen fest, die von einer zb. s7 gesetzt wird. 
da kann dir hier auch sehr gut geholfen werden. aber im forum simatic.

vielleicht findet sich ja noch wer der dir das schreibt in vb.

grüsse


----------



## Larry Laffer (21 März 2008)

... es wäre auch kein Problem, dass als VB-Script zu erstellen, nur muss ich zugeben, dass ich von WinCC keine Ahnung habe. Für Flex oder ProTool wäre das kein Thema. Ich bin allerdings auch der Meinung, dass man nicht etwas in sein Projekt integrieren sollte, von dem man keine Ahnung hat ...

Gruß
LL


----------



## vision1001 (22 März 2008)

hmpf... naja danke erstmal 

Ich dachte auch eher irgendwer hätte sowas im Ärmel.


Nettes Forum hier... vielleicht hab ich ja nochmal Fragen... dann komm ich gern wieder.


----------



## Ralle (22 März 2008)

Larry Laffer schrieb:


> ... es wäre auch kein Problem, dass als VB-Script zu erstellen, nur muss ich zugeben, dass ich von WinCC keine Ahnung habe. Für Flex oder ProTool wäre das kein Thema. Ich bin allerdings auch der Meinung, dass man nicht etwas in sein Projekt integrieren sollte, von dem man keine Ahnung hat ...
> 
> Gruß
> LL



Genau, aber wie ich schon schrieb, die Ein- Ausgabe einer Uhrzeit muß man sich in WinCC selbst erstellen, dafür gibt es keinen vordefinierten Typen und kein E/A-Feld, daß man einfach auf Uhrzeit stellen kann. Siemens scheint da der Meinung zu sein, das braucht kein SPS-Programmierer und keine HMI. Schönste Variante wäre wohl ein kleines ActiveX-Control  !


----------



## funkdoc (22 März 2008)

ich versteh nicht warum man sich bei einer wochenzeitschaltuhr das mehrere anlagen ein/abschalten soll auf so leicht manipulierbaren und wenig stabilen visualisierungs PC einlässt. ich meine funktionieren tuts wahrscheinlich  auch genau so gut, aber man sollte doch nicht die kirche ums kreuz tragen.

bis dass das sojemand als vbscript in wincc eingebunden (geschweige denn programmiert) hat, hätte er in step7 schon 10mal eine  
solche zeitschaltuhr in einem funktionsbaustein programiert.

an deiner stelle würd ich mich wirklich fragen ob sowas denn in wincc einen sinn hat. aber manche leute setzen halt schon vorraus...


grüsse


----------



## Larry Laffer (22 März 2008)

funkdoc schrieb:


> ich versteh nicht warum man sich bei einer wochenzeitschaltuhr das mehrere anlagen ein/abschalten soll auf so leicht manipulierbaren und wenig stabilen visualisierungs PC einlässt.


 
Ohh Kacke ...
und da gibt es Leute, die steuern mit WinCC (über einen PC) ganze Kraftwerke ... bin ich froh, das davon keins bei uns direkt in der Nähe steht ... oder doch ...?

Aber mal Spaß beiseite, welche Visu hat dir denn so einen bösen Streich gespielt, dass du dieser Meinung bist ...?
Denk immer daran ... die Eingabewerte kommen letztendlich immer aus irgendeiner Visu ...

Gruß
LL


----------



## funkdoc (22 März 2008)

wer sagt denn das man die wochenzeitschaltuhr nicht in einer visu bedienen sollte. 

mir ist schon klar was er meint... er möchte taglich einen einschalt- und ausschaltzeitpunkt über die wochentage (montag, dienstag mittwoch..) separat setzen. und warum sollte die umrechnerei plötzlich ein pc lösen?

visualisieren kann man es ja ohne weiteres am pc, aber die funktion sollte schon eine sps übernehmen.
das wäre das selbe wie wenn ich jetzt einen ablaufrelevanten FB aus dem programm einer sps heraus operiere und in ein VBscript schreib welches in wincc eingebunden wird.

es sei denn her hat von SPS programmiererei auch keine ahnung... dann sollte aber auch die finger von anlagensteuerungen lassen (nicht bös gemeint)

grüsse


----------



## Onkel Dagobert (22 März 2008)

Sehr richtig, funkdoc!

Automatisierungsaufgaben gehören nun einmal in die Steuerung. Der Visualisierung sollten nach Möglichkeit die vorgesehnen Funktionen wie Bedienen, Beobachten und meinetwegen noch Archivieren vorbehalten bleiben.


Gruß, Onkel


----------



## vision1001 (22 März 2008)

Also ich kann das auch begründen (warum im WinCC und nicht in der SPS):

Wär die Uhr in den SPSen, würd sie wahrscheinlich immer mit den zuletzt eingestellten Werten laufen, denn vermutlich würd ich ja die Werte in ein DB schieben und dann im FC auswerten... die Anlage soll sich aber nicht einfach selbst einschalten oder so. Die Uhr ist einfach eine Erweiterung der Visualisierung, soll aber gar keine Anlagenfunktion sein. Dashalb möchte ich das auch nicht in die SPSen programmieren, sondern einfach die Visu dadurch erweitern...

Ich kann auf die Uhrgesteuerte Ein/Aus Schaltung ja schließlich verzichten. Also wenn der Steuerungs PC aus irgendwelchen Gründen mal nicht läuft, dann gehts halt nicht automatisch... zum Ausschalten ist eh immer einer da... die Zeitsteuerung wär da mehr ein netter Gimmick.

Also nochmal deutlich... ich halte es in der SPS für unangebracht, weil ich die Sicherheit, daß die Uhr auch ohne Visu funktioniert weder haben will, noch gebrauchen kann.

Übrigens gibts im WinCC sehrwohl eine fertige Uhr... das ist halt nur ne Anzeige der Aktuellen Uhrzeit und des Datums... einstellen kann man sogar ab Analog oder Digitaluhr, sowie Farben, Schriftart etc. pp.


Komisch das die Diskussion jez in die Richtung läuft ob das in der SPS oder im WinCC besser oder schlechter wär... das hat doch gar nix mit meiner Frage zu tun...


----------



## mst (22 März 2008)

Onkel Dagobert schrieb:


> Sehr richtig, funkdoc!
> 
> Automatisierungsaufgaben gehören nun einmal in die Steuerung. Der Visualisierung sollten nach Möglichkeit die vorgesehnen Funktionen wie Bedienen, Beobachten und meinetwegen noch Archivieren vorbehalten bleiben.
> 
> ...


 
*ACK* Sehe ich auch so.


----------



## vision1001 (22 März 2008)

maaaaaaaaaaaaaaaaaaaaaaaaaaaaaan... *es Soll Doch Auch Nur Eine Bedienfunktion Sein *!!!!!!!!!!!!!!!!!! Ich Will Mir Nur Und Ausschliesslich Das Bedienen Vereinfachen *und Keinesfalls Das Ein/-ausschalten Automatisieren *!!!!


----------



## funkdoc (22 März 2008)

@vision1001



> Wär die Uhr in den SPSen, würd sie wahrscheinlich immer mit den zuletzt eingestellten Werten laufen, denn vermutlich würd ich ja die Werte in ein DB schieben und dann im FC auswerten


die zeitschaltuhr läuft mit den werten die du am visuPC eingestellt hast. ist der pc jetzt nicht eingeschaltet, kann auch keine wincc-variable von der einen steuerung mit der uhr geschrieben werden. die eine variable must du in die anderen steuerugnen (was auch immer du da hast, weiss man ja bis jetzt noch nicht) schreiben. sogesehen eine ein-ausgangsvarible wir sprechen hier von einem bit. das ist die variable die du da ja schon mit einer schaltfläche setzt. heisst auch dass du da im wincc nicht mehr viel machen brauchst.

...als netter gimmick wird sich hier aber nicheinmal das s7 programmschreiben lohnen, es sei denn man machts führ einen selbst



> Komisch das die Diskussion jez in die Richtung läuft ob das in der SPS oder im WinCC besser oder schlechter wär... das hat doch gar nix mit meiner Frage zu tun...


indirekt schon, du wolltest hilfe stellung zu einer wochenzeitschaltuhr die wahrscheinlich mit siemens cpu funktionieren soll. es hat hier bis jetzt keiner ein script gepostet und du möchtest dich ja auch nicht in wincc vertiefen.
also hab ich mir gedacht ich schlag dir die lösung per sps vor



> Ich Will Mir Nur Und Ausschliesslich Das Bedienen Vereinfachen *und Keinesfalls Das Ein/-ausschalten Automatisieren *!!!!


sorry diesen satz versteh ich in zusammenhang mit deinen anforderungen nicht

grüsse


----------



## Onkel Dagobert (22 März 2008)

vision1001 schrieb:


> maaaaaaaaaaaaaaaaaaaaaaaaaaaaaan... *es Soll Doch Auch Nur Eine Bedienfunktion Sein *!!!!!!!!!!!!!!!!!! ...!!!!


Die letzen Worte eines Programmierers?


Gruß, Onkel


----------



## Ralle (22 März 2008)

vision1001 schrieb:


> Übrigens gibts im WinCC sehrwohl eine fertige Uhr... das ist halt nur ne Anzeige der Aktuellen Uhrzeit und des Datums... einstellen kann man sogar ab Analog oder Digitaluhr, sowie Farben, Schriftart etc. pp.



Lol, und? Kannst du das mit der eingebauten Uhr machen, was du vor hast? 
Ansonsten hab ich zumindest schon kapiert, was du machen willst, das geht auch in Ordnung, muß wirklich nicht unbedingt in der SPS laufen. Hab dir ja auch meinen Ansatz geschrieben. Vielleicht hat marlob ja was parat, falls er hier reinschaut nach dem WE. 

PS: Schreien ist unhöflich  !


----------



## funkdoc (22 März 2008)

ich hab dir was gemalt


----------



## Kai (22 März 2008)

Eigentlich sollte es doch kein Problem sein, eine Schaltuhr in WinCC zu projektieren.

Mit dem folgendem C-Script liest man in WinCC die lokale Rechnerzeit aus und speichert sie in internen Variablen ab:


```
#include "apdefap.h"
int gscAction( void )
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
 
#pragma code("kernel32.dll")
 
VOID GetLocalTime(SYSTEMTIME *lpst);
 
#pragma code();
 
SYSTEMTIME Systemzeit;
 
GetLocalTime(&Systemzeit);
 
SetTagWord("Systemzeit_Jahr",Systemzeit.wYear);
 
SetTagWord("Systemzeit_Monat",Systemzeit.wMonth);
 
SetTagWord("Systemzeit_Wochentag",Systemzeit.wDayOfWeek);
 
SetTagWord("Systemzeit_Tag",Systemzeit.wDay);
 
SetTagWord("Systemzeit_Stunde",Systemzeit.wHour);
 
SetTagWord("Systemzeit_Minute",Systemzeit.wMinute);
 
SetTagWord("Systemzeit_Sekunde",Systemzeit.wSecond);
 
SetTagWord("Systemzeit_Millisekunde",Systemzeit.wMilliseconds);
 
return 0;
}
```
 
Siehe dazu auch die folgende Siemens-FAQ:

Wie kann mit WinCC Global Script auf die Systemzeit zugegriffen werden?

Gruß Kai


----------



## Kai (22 März 2008)

Und wenn man dann noch die Möglichkeiten von WinCC nutzt, also mit Struktutypen als Variablen und Bildfenstern mit Variablen-Präfix arbeitet, kann man relativ einfach die notwendigen Bilder und Scripte projektieren.

Gruß Kai


----------



## vision1001 (23 März 2008)

Danke Kai... genau so! Hast Du die Grafik fix selbst gemacht, oder kann ich mir das Bild so irgendwo downloaden? Gut... selber malen ging auch... aber weisst scho 


Frohe Ostern allen


----------



## Benny (24 Juli 2012)

Sorry wenn ich das Thema jetzt nach so langer Zeit hier wieder hoch hole, aber ich bin halt über die Suchfunktion drauf gestoßen.

Ich verwende zur Zeit folgende Softwarestände:
PCS 7 V7.1 + SP3
WinCC Runtime V7.0 + SP2 + Upd4

Ich möchte eigentlich auch nichts anderes als eine einfache Zeitschaltuhr, die mir einen Motor zu einer (in WinCC) einstellbaren Zeit einschaltet und zu einer bestimmte einstellbaren Zeit (in WinCC) wieder ausschaltet. Und das ganze jeden Tag. (Die DATE Variable interessiert mixh also an der Stelle gar nicht.)
Wie ich das mehr oder weniger in S7 (benutze zwar eigentlich PCS7, aber ich wäre froh das ganze überhaupt so einmal zu verstehen) programmiere ist mir schon klar, aber wie bekomme ich die Variablen von WinCC (DATE_AND_TIME oder TIME_OF DAY) in die Programmierung???? Ich verstehe es einfach nicht. Ich habe hier im Forum schon ein paar Beispiele gefunden, sich z.B. einen DB mit vorzeichenlose, 8-Bit Wert in dem Variablenhaushalt anzulegen, aber wie bitteschön kann ich diese Variablen dann in der Steuerung (S7 oder halt PCS 7) auch verwenden???

Ich bin echt etwas überfragt, dabei will ich doch nur eine einfache Ein- Ausschaltsteuerung über Uhrzeit realisieren. In WinCC flexible ist das so einfach, aber hier bin ich mit meinem Latein echt am Ende....

ICh wäre über jeden Hinweis oder Hilfe echt froh...


Gruß Benny


----------

