![]()
| Datum und Uhrzeit in Step 7 (TIA Portal)![]() Step 7 Tia Portal stellt mehrere Anweisungen zur Verfügung, die es ermöglichen, das aktuelle Datum und die Uhrzeit zu ermitteln und anzuzeigen.
In dem Beispiel verwenden wir nur zwei von ihnen: WR_SYS_T und RD_SYS_T. Mit der Anweisung WR_SYS_T wird das Datum und die Uhrzeit der CPU-Uhr eingestellt. Mit
der Anweisung RD_SYS_T kann das aktuelle Datum und die aktuelle Uhrzeit der CPU-Uhr ausgelesen werden. Weitere Anweisungen, die es ermöglichen, Lokalzeit,
Zeitzonen oder Sommer-/Winterzeitumschaltung einzustellen, werden in unserem kleinen Zeit-SPS-Projekt nicht berücksichtigt.
Projekt anlegen
Nachdem das Projekt angelegt wurde, werden in der Umgebung „Gerätekonfiguration“ die teilnehmenden Geräte eingefügt und miteinander verbunden.
In dem Beispiel werden die CPU 1215C und das Panel KTP700 Basic PN verwendet.
In dem Beispiel werden zwei zusätzliche Programmbausteine benötigt. Zunächst wird die FC-Funktion „Datum und Uhrzeit“ eingefügt. Beim Anlegen der
Funktion wird die Sprache SCL gewählt. Anschließend wird der Datenbaustein „Datum_und_Uhrzeit“ angelegt. Die entsprechende Auswahl wird angezeigt, nachdem man
„Neuen Baustein hinzufügen“ doppelt angeklickt hat.
In dem Datenbaustein werden insgesamt fünf Variablen definiert. Die wichtigste Variable ist „Time“ [Format DTL], mit der direkt die aktuelle in der
CPU-Uhr gespeicherte Zeit ausgelesen wird.
Am Eingang der Funktion werden drei bool-Variablen definiert: „Datum_Uhrzeit_Einstellen“, „Einstellungen_übernehmen“ und „Sekunden_Takt“.
// ************************************************************************************************** // Datum und Uhrzeit in Step 7 // TIA-Portal V19 // STEP 7 Professional / SCL // ************************************************************************************************** // Datum und Uhrzeit der CPU-Uhr neu einstellen // Eingaben erfolgen über HMI IF #Datum_Uhrzeit_Einstellen THEN // HMI neue Einstellungen Übernehmen ------------------------------------------------ IF #Einstellungen_übernehmen THEN #Ret_Val_Write := WR_SYS_T("Datum_und_Uhrzeit"."Time"); // Interne CPU-Uhr beschreiben "Datum_und_Uhrzeit".Ergebnis := 'Übertragung OK'; // Übertragung erfolgreich IF #Ret_Val_Write > 0 THEN "Datum_und_Uhrzeit".Ergebnis := 'Fehler'; // Übertragung fehlerhaft END_IF; END_IF; END_IF; IF NOT #Datum_Uhrzeit_Einstellen THEN "Datum_und_Uhrzeit".Ergebnis := '---'; END_IF; // ************************************************************************************************** // Datum und Uhrzeit der CPU-Uhr auslesen // Anzeige erfolgt auf HMI "R_TRIG_DB_1"(CLK:=#Sekunden_Takt, Q=>#Pos_Flanke); // Pos Flanke 1 Hz. IF NOT #Datum_Uhrzeit_Einstellen THEN IF #Pos_Flanke THEN #Ret_Val_Read := RD_SYS_T("Datum_und_Uhrzeit"."Time"); // CPU-Uhr auslesen END_IF; CASE "Datum_und_Uhrzeit"."Time".WEEKDAY OF // Wochentag bestimmen 1: "Datum_und_Uhrzeit".Wochentag := 'Sonntag'; 2: "Datum_und_Uhrzeit".Wochentag := 'Monntag'; 3: "Datum_und_Uhrzeit".Wochentag := 'Dienstag'; 4: "Datum_und_Uhrzeit".Wochentag := 'Mittwoch'; 5: "Datum_und_Uhrzeit".Wochentag := 'Donnerstag'; 6: "Datum_und_Uhrzeit".Wochentag := 'Freitag'; 7: "Datum_und_Uhrzeit".Wochentag := 'Samstag'; END_CASE; END_IF; // ************************************************************************************************** Der Programmcode der Funktion, der praktisch das Hauptprogramm des Projektes darstellt, besteht aus zwei Teilen. Im ersten Teil werden Daten, die
über HMI eingegeben wurden, in die CPU geschrieben.
Die fertiggestellte Funktion „Datum und Uhrzeit“ wird in das Organisationsbaustein „Main“ eingefügt. Die Eingänge werden mit den davor in dem
Datenbaustein „Datum_und_Uhrzeit“ angelegten Variablen belegt. Diese Variablen werden von dem HMI gesteuert und bestimmen, ob die Zeitdaten in die CPU geschrieben
oder von ihr gelesen werden. Bei der Variable „Clock_1Hz“ handelt es sich um einen Systemmerker. Systemmerkerbyte muss von der Verwendung in den Parametern der
CPU aktiviert werden. Der Merker bestimmt, dass die aktuelle Zeit im Sekundentakt aus der CPU gelesen wird.
Für das Panel werden drei Bilder angelegt. „Startbild“ dient in dem Projekt als Verteiler, von dem die anderen Bilder erreicht werden können. Das
Bild „Zeit_Einstellungen“ dient für die Einstellung von Datum und Uhrzeit. Auf dem Bild „Zeit_Aktuell“ wird die aktuelle Zeit angezeigt.
Auf der „Startseite“ werden zwei Schaltflächen positioniert.
Mit der ersten Schaltfläche kann zu dem Fenster „Zeit_Aktuell“ gewechselt werden. Weitere Aufgaben hat dieses Element nicht.
Die zweite Schaltfläche führt uns beim Betätigen zu dem Fenster „Zeit_Einstellungen“. In diesem Fenster kann die aktuelle Zeit neu eingestellt werden.
Beim Betätigen der Schaltfläche wird neben dem Fensterwechsel gleichzeitig die Bit-Variable „Zeit Eingaben“, die davor in dem Baustein „Datum_und_Uhrzeit“
definiert wurde, auf TRUE gesetzt. Sie bewirkt, dass das Beschreiben der CPU-Uhr mit neuen Zeitdaten möglich ist. Gleichzeitig wird das Auslesen der aktuellen
Zeit blockiert. Damit steht die DTL-Variable „Time“ für Veränderungen zur Verfügung.
Im Fenster „Zeit_Einstellungen“ werden fünf Elemente, die für den Ablauf relevant sind, definiert.
Das obere E/A-Feld wird für die Eingabe des aktuellen Datums verwendet. Es ist mit der variable „Time“ verknüpft und für Eingabe/Ausgabe definiert.
Mit dem unteren E/A-Feld wird die aktuelle Uhrzeit eingestellt. Es ist ebenfalls mit der Variable „Time“ verknüpft und befindet sich im Eingabe/Ausgabe-Modus.
Das folgende E/A-Feld, das auf Modus Ausgabe eingestellt wird, dient lediglich der Anzeige, die informiert, ob die Zeit-Daten erfolgreich in die CPU übertragen wurden oder nicht. Das Feld ist mit der Variable „Ergebnis“ verknüpft.
Mit der Schaltfläche „Eingaben Übernehmen“ wird der Schreibvorgang initiiert. Die neue Zeit-Daten, so das Datum als auch die Uhrzeit, werden in die CPU übertragen. Für die Dauer der Betätigung der Schaltfläche wird die Verknüpfungsvariable „Zeit_Setzen“ auf TRUE gesetzt.
Das Fenster „Zeit Einstellungen“ wird durch Betätigen der Schaltfläche „Zurück“ verlassen. Gleichzeitig wird die Bool-Variable „Zeit_Eingaben“
zurückgesetzt. Damit wird die DTL-Variable „Time“ für das Auslesen der aktuellen Zeitdaten freigegeben.
Mit drei Elementen im Fenster „Zeit Aktuell“ werden die aktuellen Zeit-Daten angezeigt. Die Anzeige vom Wochentag, Datum und Uhrzeit wird einmal pro Sekunde aktualisiert.
Mit dem E/A-Feld, das bei uns ganz oben positioniert ist, wird der aktuelle Wochentag angezeigt. Die Nummer des aktuellen Wochentages befindet sich in der DTL-Variable „Time“ unter „WEEKDAY“ und wird von der CPU automatisch berechnet. In unserer Funktion „Datum und Uhrzeit“ wird diese Variable mit der „CASE – OF…“ – Anweisung untersucht. Anschließend wird die Variable „Wochentag“ beschrieben und ihr Wert hier angezeigt.
Das zweite E/A-Feld dient der Ausgabe von Datum.
Mit dem dritten E/A-Feld, das ebenfalls wie die anderen, in den Modus Ausgabe geschaltet wird, wird die aktuelle Uhrzeit angezeigt. Die Anzeige
erfolgt im Sekundentakt. Beide Felder, Datum und Uhrzeit, sind mit der DTL-Variable „Time“ verknüpft. Schaltplan![]() Testschaltung![]() KurzvideoKurzvideo Weitere Themen:
|