PCS 7 - Uhrzeit in WinCC einstellen und in CFC bearbeiten

Benny

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

ich habe zur Zeit ein Problem mit WinCC bzw. PCS 7. Ich verwende zur Zeit folgende Softwarestände:
PCS 7 V7.1 + SP3
WinCC Runtime V7.0 + SP2 + Upd4

Ich habe in meinem Programm einen Motor anzusteuern, der zur Uhrzeit X (z.B. 8 Uhr Morgens) angehen und Abends um 20 Uhr wieder abschalten soll. Die Uhrzeiten möchte ich aber in WinCC variabel anstellen können. Die Frage die sich mir jetzt stellt ist eher wie bekomme ich einen Wert von WinCC als TOD (Time of Day) oder DATE AND TIME oder ähnliches in den CFC Plan um ihn dort zu verschalten und zu verarbeiten? Ich habe hier im Forum schon ein paar Tipps bekommen, z.B. einen Baustein selber schreiben und das passende Faceplate zu erstellen, aber das geht zur Zeit über mein Kentnisse hinaus und da fehlt mir ehrlich gesagt die Zeit.

Hat da jemand eine Idee, oder gibt es da fertige Blocks/Templates die mir da weiterhelfen? Oder wie kann ich denn generell in WinCC ein Uhrzeit eingeben und diese dann im CFC Plan verarbeiten?

Gruß
Benny
 
Oder gibt es denn einen Baustein, der mir diese TIME OF DAY Format in verschiedene Integer oder Doppelinteger zerlegt? Ich würde dann jeweils für hh, mm und ss ein EA-Feld erstellen und diese 3 Werte dann übergeben. Dann könnte ich ja die Uhrzeit einfach als mehrere Integer in WinCC einlesen und dann in der Steuerung mit der aktuellen Systemzeit vergleichen.

Oder ist das nicht zu empfehlen, oder nicht möglich?

Gruß Benny
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Finde das nicht so schön.
Grund Du vermischst die Funktionalität einer Sache zwischen AS und OS. Eine Funktion sollte meiner Meinung nach immer nur in einem stecken und dies möglichst in der PLC.
Somit bestehen zwei Möglichkeiten:
1. Du machst alles aus der OS und schickst einfach nur das Bit runter in die PLC oder
2. Alles wird in der PLC umgesetzt.
Da hätte ich zwei Ansätze:
Ansatz A - Uhrzeitalarme:
Mal wieder würde ich einen kleinen Baustein schreiben. Dem Du die Zeiten wie Du beschrieben hast zusendest. Das zusammenführen der Werte kann dann auch der neue Baustein übernehmen.
Nehmen wir an, dass wir mit zwei Uhrzeitalarmen arbeiten, die den Baustein um 03:00 Uhr und 15:00 Uhr initialisiert. Ab hier eine Differenz laufen lassen, zu der vom Bediener eingestellten Zeit und die Aktion ausführen.

Ansatz B - READ_CLK(SFC1):
Es wird ein kleiner Baustein geschrieben, der deine eingestellten WinCC-Zeiten entsprechend umsetzt und dann mit dem SFC1 - READ_CLK vergleicht.

Bei beiden Varianten A/B würde ich dem Bediener grundsätzlich keine Sekunden zur Verfügung stellen und mit dem Kunden ausmachen, das eine max. Genauigkeit von 2Min. besteht.
Dann könntest Du diese Funktionalität nämlich schön in den 2Min. OB werfen und deine Zykluszeit wird geschont. Ich würde sogar überlegen das in dem 5Min. Takt zu legen.

EDIT:
So simpel mit den E/A-Feldern würde ich nur arbeiten, wenn das anlagenweit eine einmalige Geschichte bleibt!
 
Ich würde dann jeweils für hh, mm und ss ein EA-Feld erstellen und diese 3 Werte dann übergeben. Dann könnte ich ja die Uhrzeit einfach als mehrere Integer in WinCC einlesen und dann in der Steuerung mit der aktuellen Systemzeit vergleichen.

Hatte ich doch in dem anderen Thread so vorgeschlagen...

Den Baustein allerdings wirst Du Dir selber schreiben müssen, es sei denn, jemand stellt Dir hier einen rein, ich hab jedenfalls keinen. Jedenfalls findet Goggle einige Anregungen zur Konvertierung der Zeitformate in der gewünschten Programmiersprache. Ich würds in SCL machen, aber natürlich geht auch AWL...

Gruß.
 
EDIT:
So simpel mit den E/A-Feldern würde ich nur arbeiten, wenn das anlagenweit eine einmalige Geschichte bleibt!

Jo...

die Vorgehensweise mit den Bausteinen/Anwenderobjekten/Faceplates hatten wir ja schon in dem anderen Thread erläutert...

Gruß.

PS: das mit den Uhrzeitalarmen (Ansatz A) find ich aber nicht so glücklich :)

Ich denke Benny verfolgt Ansatz B, nur will er keinen Baustein schreiben sondern alles in CFC verschalten. Leider fehlt dort nen Baustein der TOD oder DT in nen INT wandelt, um es mit den aus WinCC eingestellten Zeiten zu vergleichen... Tja, wer schreibt ihm jetzt den Bauustein?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hatte ich doch in dem anderen Thread so vorgeschlagen...

Den Baustein allerdings wirst Du Dir selber schreiben müssen, es sei denn, jemand stellt Dir hier einen rein, ich hab jedenfalls keinen. Jedenfalls findet Goggle einige Anregungen zur Konvertierung der Zeitformate in der gewünschten Programmiersprache. Ich würds in SCL machen, aber natürlich geht auch AWL...

Gruß.

Genau so wollte ich es ja machen, allerdings weiß ich gerade nicht, wie ich mir meine Systemzeit (Time of Day) in einzelne Integer umwandle, damit ich die vernünftig mit den Werten aus dem WinCC vergleichen kann.
 
Zurück
Oben