FC114 – V00/00.00.00 vom 06.06.2009
Die Jahreszeitschaltuhr
Durch die flexiblen, universellen Einsatzmöglichkeiten der SPS-Steuerungen, sowie der aktuellen SPS-Systeme, ist es mögliche viele Baugruppen die an die SPS angeschlossen wurden, in diese über einen SPS-Baustein zu integrieren.
Dazu gehört auch eine Jahreszeitschaltuhr, welche mit dem FC114 umgesetzt wurde, und einfach in Ihr SPS-Programm integriert werden kann. Mit der Softwarelösung der Jahreszeitschaltuhr in einer SPS, bieten sich einige Vorteile, wie z.B.:
- Hohe Anzahl von Steuerausgängen
- Hohe Anzahl von projektierbaren Zeiten
- Besseren Manipulationsschutz
- Gute Integration in das Anlagensystem
- Sehr gute/vielseitige Visualisierungsmöglichkeiten
- Geringere Kosten
Allgemeines
In den FC114-Baustein wurde von uns die Jahreszeitschaltuhr programmiert, welche für den kompletten Funktionsumfang noch die Datenbausteine DB113/DB114 benötigt.
Der FC114 wird entsprechend beschaltet, und benötigt nur wenige Signale/ Daten, da die meisten Signale/Daten für die Funktionen bereits in dem Datenbaustein selbst enthalten sind. Diese werden vom FC entsprechend ausgewertet, und geprüft. Sollten Fehler erkannt werden, wird eine Störung mit weiteren Informationen angezeigt.
Der DB113 enthält die Zeiteinstellung. Die Anzahl der Zeitfunktionen hängt von der Leistungsfähigkeit der SPS/CPU ab. Wenn die SPS Datenbausteine von 16384 Byte verarbeiten kann, können bis zu 1024 Zeitfunktionen angelegt werden. Die Ausgabe der Zeitsignale erfolgt über den DB114, der auch als Schnittstelle dient, und die benötigten Signale/Daten vom FC114 enthält.
Für das SPS-System ist eine schnelle Reaktionszeit wichtig, welche durch den Umfang des Programmcodes beeinflusst wird, sowie von den enthaltenen Schleifen. Damit die SPS-Zykluszeit nicht all zu sehr durch die Jahreszeitschaltuhr erhöht wird, wurde festgesetzt, daß pro Ausführung des FC114 ein Zeitdatensatz bearbeitet wird. Daher ist zu beachten, dass die minimale Zeitspanne der einzelnen Schaltzeitdauer die Anzahl der Datensätze * die max. Zykluszeit nicht unterschreitet. Dies gilt auch für die Genauigkeit der Zeitsignale, beim ein-/ausschalten.
FC114 Beschaltung INPUT
- db_zeit_vorg = DB-Block = DB(113) mit den Zeitvorgaben – db_zeit_sig_dat = DB-Block-> DB(114) mit Zeitsignalen/-daten der Funktion
- bii_1_zeit_uebern = BOOL->1=Zeitvorgabe neu übernehmen aus dem DB(112)
- dii_datum = DINT-> aktuelles Datum (jjjj:mm:tt)
- dii_uhrzeit = DINT-> aktuelle Uhrzeit (hh:mm:ss:mmm)
FC114 Beschaltung OUTPUT
- bio_1_stor BOOL 1=Störung vorhanden
- dio_stor_nr DINT Störungsnummer, für eine weitere Unterscheidung der Störung
- dio_stor_dat_nr DINT Datensatznummer mit der Störung
- dio_dat_sat_anz DINT Anzahl der Datensätze/Zeitfunktionen
FC114 Beschaltung IN-/OUTPUT
- diio_visu_dat_nr DINT VISU- Datensatznr., die angezeigt werden soll
Beschreibung zu der Beschaltung
Zu der Beschaltung des FC-Bausteins folgen weitere Informationen:
db_zeit_vorg
Hier wird der DB mit den Zeitvorgaben angeschaltet. In dem DB113 sind die entsprechenden Strukturen mit den Ein-/Ausschaltzeiten, und einer kurzen Beschreibung enthalten. Der DB113 wurde mit dem FC114 entwickelt, um eine leichte und schnelle Bearbeitung der Daten zu gewährleisten. Weitere Informationen zum DB113 finden Sie weiter unten.
db_zeit_sig_dat
Hier wird der DB114 angeschaltet, den der FC114 für die internen Signale-/Datenzwischenspeicherung benötigt. In den Datenbausteinen sind noch weitere Signale/Daten enthalten, die für das weitere SPS-Anwenderprogramm oder die Visualisierung von Bedeutung sind. Am Ende des DB’s befindet sich ein ARRAY, in dem die Bit’s von den Zeitfunktionen organisiert werden. Weitere Informationen zum DB114 finden Sie weiter unten.
bii_1_zeit_uebern / BOOL
Wenn hier eine VKE-1 anliegt, werden die Zeitvorgaben, die im DB114 eingetragen sind, in den DB113 übernommen. Die entsprechende Datensatznummer, in dem die Zeitangabe gespeichert werden soll, wird mit dem FC-Parameter ‘diio_visu_dat_nr’ angegeben.
dii_datum / DINT
Die Jahreszeitschaltuhr wird nicht als Tageszeitschaltuhr verwendet, im Gegensatz zur Wochenzeitschaltuhr, bei der dies mögliche wäre. Das aktuelle Datum wird als 8 stellige Zahl übergeben, in der sich der Tag, Monat, Stunde an der entsprechenden Ziffernposition befinden (jjjj:mm:tt). Hier ein Beispiel: Datum: 31.12.2009 –> L#20091231 Jahr: 2009 Monat: 12
Tag: 31
In den Grundfunktionalitäten, die im OB1 umgesetzt wurden, ist bereits das aktuelle Datum in verschiedenen Formen enthalten. Der DB99.DBD50 enthält das aktuelle Datum, welches an den FC angeschaltet werden könnte.
dii_uhrzeit / DINT
Die aktuelle Uhrzeit wird als 9 stellige Zahl übergeben, in der sich die Stunde, Minute, Sekunde und Millisekunde an der entsprechenden Ziffernposition befinden (hh:mm:ss:mmm). Hier ein Beispiel:
Uhrzeit: 21:59 –> L#215914012 Stunde: 21
Minute: 59
Sekunde: 14
Millisek.: 12
In den Grundfunktionalitäten, die im OB1 umgesetzt wurden, sind bereits die aktuellen Zeiten in verschiedenen Formen enthalten. Der DB99.DBD54 enthält die aktuelle Uhrzeit, die an den FC angeschaltet werden könnte.
bio_1_stor / BOOL
Wenn eine Störung erkannt wurde, die z.B. durch die FC-Beschaltung oder einen unlogischen Datensatzeintrag im DB113 seine könnte, wird eine true/1 ausgegeben. Eine Aufschlüsselung, bzw. weitere Informationen sind in weiteren Ausgabewerten enthalten.
dio_stor_nr / DINT
Zu jeder Störungsnummer ist ein spezieller Fehler zugeordnet. Hierzu die entsprechende Aufstellung:
L#0 = Keine Störung vorhanden
L#114000801 = Datum: Wert für Monat zu klein
L#114000802 = Datum: Wert für Monat zu groß
L#114000803 = Datum: Wert für Tag zu klein
L#114000804 = Datum: Wert für Tag zu groß
L#114000805 = Uhrzeit: Wert für Stunde zu klein
L#114000806 = Uhrzeit: Wert für Stunde zu groß
L#114000807 = Uhrzeit: Wert für Minute zu klein;
L#114000808 = Uhrzeit: Wert für Minute zu groß
L#114113701 = DB(113) größe mit Zeitdaten, ist zu klein
L#114113702 = DB(113) größe mit Zeitdaten, ist unlogisch
L#114114701 = DB(114) größe für VISU, ist zu klein
L#114114702 = DB(114) größe für VISU, ist unlogisch
L#114113501 = Zeitvorgabe – Ein: Wert für Monat zu klein
L#114113502 = Zeitvorgabe – Ein: Wert für Monat zu groß
L#114113503 = Zeitvorgabe – Ein: Wert für Tag zu klein
L#114113504 = Zeitvorgabe – Ein: Wert für Tag zu groß
L#114113505 = Zeitvorgabe – Ein: Wert für Stunde zu klein
L#114113506 = Zeitvorgabe – Ein: Wert für Stunde zu groß
L#114113507 = Zeitvorgabe – Ein: Wert für Minute zu klein
L#114113508 = Zeitvorgabe – Ein: Wert für Minute zu groß
L#114113511 = Zeitvorgabe – Aus: Wert für Monat zu klein
L#114113512 = Zeitvorgabe – Aus: Wert für Monat zu groß
L#114113513 = Zeitvorgabe – Aus: Wert für Tag zu klein
L#114113514 = Zeitvorgabe – Aus: Wert für Tag zu groß
L#114113515 = Zeitvorgabe – Aus: Wert für Stunde zu klein
L#114113516 = Zeitvorgabe – Aus: Wert für Stunde zu groß
L#114113517 = Zeitvorgabe – Aus: Wert für Minute zu klein
L#114113518 = Zeitvorgabe – Aus: Wert für Minute zu groß
dio_stor_dat_nr / DINT
Bei Störungen die in den Zeitvorgaben liegen, wird hier die entsprechende Datensatznummer vom DB113 angegeben. Daher ist es sinnvoll, in dem Symbolnamen die Datensatznummer anzugeben (z.B. zeit0000, zeit0001, usw.).
dio_dat_sat_anz / DINT
Anzahl der Datensätze/Zeitfunktionen die im DB113 angelegt/enthalten sind.
diio_visu_dat_nr / DINT
Als Schnittstelle für das Anwenderprogramm zum anzeigen/bearbeiten der Zeitvorgaben im DB113, dient diese Beschaltung. Hier wird die Datensatznummer von der Zeitangabe angegeben die angezeigt, bzw. bearbeitet werden soll. Der FC speichert die Daten aus dem DB113 in den DB114 entsprechend um. Bei der Übernahme der neuen Zeitdaten in den DB114, werden die Werte im Datensatz vom DB113 abgelegt, auf dem der Wert ‘diio_visu_dat_nr’ zeigt.
Beschreibung zu des DB113, für die Zeit
Der einzelne Datensatz:
Ein Datensatz, der als Struktur angelegt ist, ist 16 Byte groß. Darin enthalten sind zwei weitere Strukturen:
Einschaltzeitpunkt / ‘ein’
Ausschaltzeitpunkt / ‘aus’
Für jeden Zeitschaltpunkt ist die Angabe für den Monat, Tag, Stunde und Minute enthalten. Jede Angabe wird vom Programm überprüft, und ggf. bei unkorrektem Eintrag als eine Störung angezeigt. Hier eine Aufstellung der zulässigen Angaben:
Monat
Der gültige ist Eintrag 1..12.
Tag
Der gültige ist Eintrag 1..31, eine genauere Prüfung der Angabe wird nicht gemacht.
Stunde
Die Angabe ist als 24 Stundenwert umgesetzt. Entsprechend ist der gültige Eintrag 0..23.
Minute
Der gültige ist Eintrag 0..59.
Datensatznummer
Wir empfehlen die Systematik des Symbolnamens fortzuführen, weil diese die Zuordnung zum Schaltzeitsignal ist, wobei bei Störungen im Datensatz über die Outputvariable ‘dio_stor_dat_nr’ eine entsprechend einfache Zuordnung gewährleistet wird. Alternativ dazu kann die Vorgabestruktur in ein ARRAY (ARRAY[0..#]) eingebunden werden, wodurch die Möglichkeit zum Verändern des Kommentars genommen wird.
Im DB113 beginnt der Symbolname mit ‘zeit_’ gefolgt von einer 4-stelligen Zahl, die der Datensatznummer entspricht. Diese sollte lückenlos aufsteigend sein.

Beschreibung zum DB114, die Schnittstelle für die Anwendung
Der DB114 ist die Schnittstelle für weitere SPS-Programmteile, sowie Signal-/Datenspeicher für die Funktionsausführung des FC114. Dazu sind Strukturen enthalten, für die verschiedenen Funktionalitäten:
Signal-/Datenspeicher des FC114
In der Struktur ‘dat_kopf’ sind die Daten für die FC-Ausführung enthalten. Zusätzlich gibt es die Struktur ‘input’, die im FC114 nicht verwendet werden, sondern allein für den Programmierer gedacht sind, um diese Variable an den FC zu beschalten. Dieser muß dann nicht extra angelegt werden:

Daten für VISU
Die Schnittstelle für die VISU zur Anzeige/Einstellung sind in drei Strukturen unterteilt, die wie folgt aussehen:
- Aktuelle Zeitdaten
- Datensatz/Schaltzeiten für die Auswertung
- Neue Einstellungen der Schaltzeituhr
Aktuelle Zeitdaten
Hier werden die Daten abgelegt, die vom FC zur Auswertung verwendet werden.

Datensatzschaltzeiten für die Auswertung
In dieser Struktur wird ein Datensatz der Jahreszeitschaltuhr angezeigt, wie dieser in der Vorgabe DB(113) hinterlegt ist. Die Daten die angezeigt werden, gelten für den Datensatz, der mit dem Übergabeparameter ‘diio_visu_dat_nr’ übergeben wird.
Neue Einstellungen der Schaltzeituhr
Bei der Entwicklung der Funktion wurde darauf geachtet, dass die Vorgaben editierbar sind. Dazu wurde eine Struktur vorgesehen, in der die neuen Werte für die Übernahme enthaltenen sind. Solange der FC-Eingang ‘bii_1_zeit_uebern’ auf true/1 ist, werden die neuen Zeitdaten in den Vorgaben auf die Datensatznummer DB(113) umgespeichert und mit dem Übergabeparameter ‘diio_visu_dat_nr’ übergeben.
Schaltzeitsignal
Für die Schaltsignale der Wochenschaltzeituhr ist am Ende des DB’s eine Array enthalten, welcher vom Wert 0 bis X geht. Das Array muss die gleiche Anzahl von Bit’s enthalten, wie die in der Vorgabe DB(113) an den Datensätzen enthalten sind. Für die bessere Übersicht ist deshalb im Vorgabe DB(113) die Datensatznummer im Symbolnamen einzutragen, beginnend von 0.
Die Zuordnung Datensatznr./Schaltsignal ist eins zu eins. Als Beispiel: Die DB-Vorgabe ‘zeit_0001′ entspricht den Schaltsignalen ‘zeit_sig[1]‘.







