FC112 – V00/00.00.00 vom 06.06.2009

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, diese von einen SPS-Programm nach zu bilden. Dazu gehört auch eine Zeitschaltuhr, bzw. Wochenzeitschaltuhren.

Die Funktionalitäten einer Wochenzeitschaltuhr in einer SPS, bieten flexible Lösungen zur Anlagensteuerung, z.B. von:

  • Heizungen die vor Arbeitsbeginn anfahren
  • Dem zeitgesteuerten freigeben für das Füllen von Wasserspeichern
  • Dem Energiemanagement
  • Dem klassischen Einsatzgebiet der Lichtsteuerungen,

………… um nur ein paar zu nennen.

Mit der Softwarelösung der Wochenzeitschaltuhr in einer SPS bieten sich einige Vorteile, wie z.B.:

  • Hohe Anzahl von Steuerausgänge
  • Hohe Anzahl von projektierbaren Zeiten
  • Besseren Manipulationsschutz
  • Gute integration in das Anlagensystem
  • Sehr gute/vielseitige Visualisierungsmöglichkeiten
  • Geringere Kosten

Allgemeines

In den FC112-Baustein wurde von uns die Wochenzeitschaltuhr programmiert, welcher für den kompletten Funktionsumfang, werden noch die Datenbausteine DB111/DB112 benötigt.

Der FC112 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 FC112 entsprechend ausgewertet, und geprüft. Sollten Fehler erkannt werden, wird eine Störung mit weiteren Informationen angezeigt.

Der  DB111 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  DB112, der auch als Schnittstelle dient, und die benötigten Signale/Daten vom FC112 enthält.

Für das SPS-System ist eine schnelle Reaktionszeit wichtig, welches durch den Umfang des Programmcodes beeinflusst wird, sowie von den enthaltenen Schleifen. Damit die SPS-Zykluszeit nicht all zu sehr durch die Wochenzeitschaltuhr erhöht wird, wurde festgesetzt, daß pro Ausführung des FC112 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.

FC112 Beschaltung INPUT

Die folgende Aufstellung gibt einen Überblick über die Beschaltung:

  • db_zeit_vorg    DB-Block   DB(111) mit den Zeitvorgaben
  • db_zeit_sig_dat Block     DB(112) mit Zeitsignale/-daten der Funktion
  • bii_1_zeit_uebern    BOOL          1=Zeitvorgabe neu übernehmen aus dem DB(112)
  • dii_wochentag         DINT           aktueller Wochentag (01..07 = mo..so / 0=ohne auswertung)
  • dii_uhrzeit                 DINT           Aktuelle Uhrzeit (hh:mm:ss:mmm)

                       

FC112 Beschaltung OUTPUT

Die  folgende Aufstellung gibt einen Überblick über die Beschaltung:

  • 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

                       

FC112 Beschaltung IN-/OUTPUT

Die folgende Aufstellung gibt einen Überblick über die Beschaltung:

diio_visu_dat_nr        DINT        VISU- Datensatznr. die angezeigt werden soll

Beschreibung zur Beschaltung

Zu der Beschaltung des FC112-Bausteins folgen weitere Informationen:

 

db_zeit_vorg / DB-Block

Hier wird der DB mit den Zeitvorgaben angeschaltet. In den DB111 sind die entsprechenden Strukturen mit den Ein-/Ausschaltzeiten, und einer kurzen Beschreibung enthalten. Der DB111 wurde mit dem FC112 entwickelt, um eine leichte und schnelle Bearbeitung der Daten zu gewährleisten. Weitere Informationen zum DB111 finden Sie weiter unten.

db_zeit_sig_dat / DB-Block

Hier wird der DB112 angeschaltet, den der FC112 für die internen Signale-/Datenzwischenspeicherung benötigt. In den Datenbausteinen sind noch weitere Signale/Daten enthaltenen, 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 DB112 finden Sie weiter unten.

bii_1_zeit_uebern / BOOL

Wenn hier eine VKE-1 anliegt, werden die Zeitvorgaben, die im DB112  eingetragen sind, in den DB111 übernommen. Die entsprechende Datensatznummer, in der die Zeiteingabe gespeichert werden soll, wird mit dem FC-Parameter ´diio_visu_dat_nr` angegeben.

dii_wochentag / DINT

Die Wochenzeitschaltuhr kann auch als Tageszeitschaltuhr verwendet werden, in dem hier der Wert L#0 angeschaltet wird. Sollten die vollen Funktionalitäten des FC-Bausteins benötigt werden, ist hier der Wochentag als Zahl zu übergeben. Für die Ermittlung des aktuellen Wochentages, gibt es bereits entsprechende Programmteile, die verwendet werden können, wie z.B. FC 7/DT_DAY (aus dem KOP/FUP Editor Bibliothek), der aus aus dem Format DATE_AND_TIME den Wochentag errechnet. Hier eine Aufstellung der Zuordnung Wert/Wochentag:

  • L#00    = FC als Tageszeitschaltuhr
  • L#01    = Montag
  • L#02    = Dienstag
  • L#03    = Mittwoch
  • L#04    = Donnerstag
  • L#05    = Freitag
  • L#06    = Samstag
  • L#07    = Sonntag

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:

L#234514987

  • Stunde: 23
  • Minute: 45
  • Sekunde: 14
  • Millisek.: 987

In den Grundfunktionalitäten, die im OB1 umgesetzt wurden, sind bereits die aktuellen Zeiten in verschiedenen Formen enthaltenen. 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 DB111 seine könnte, wird eine true/1 ausgegeben. Eine Aufschlüsselung bzw. weitere Informationen sind in weiteren Ausgabewerten enthaltenen.

dio_stor_nr / DINT

Zu jeder Störungsnummer ist ein spezieller Fehler zugeordnet. Hierzu die entsprechende Aufstellung:

  • L#0                    = Keine Störung vorhanden
  • L#112000801    = Aktueller Wochentag Wert zu klein
  • L#112000802    = Aktueller Wochentag Wert zu groß
  • L#112000803    = Aktuelle Uhrzeit – Wert für Stunde zu klein
  • L#112000804    = Aktuelle Uhrzeit – Wert für Stunde zu groß
  • L#112000805    = Aktuelle Uhrzeit – Wert für Minute zu klein
  • L#112000806    = Aktuelle Uhrzeit – Wert für Minute zu groß
  • L#112111701    = DB mit Zeitvorgaben minimale Größe nicht vorhanden
  • L#112111702    = DB Größe der Zeitvorgaben nicht korrekt
  • L#112112701    = DB mit Zeitdaten minimale Größe nicht vorhanden
  • L#112112702    = DB Größe der Zeitdaten nicht korrekt
  • L#112111501    = Datensatz Zeit ein – Vorgabe Wochentag
  • L#112111502    = Datensatz Zeit ein – Vorgabe Stunde zu klein
  • L#112111503    = Datensatz Zeit ein – Vorgabe Stunde zu groß
  • L#112111504    = Datensatz Zeit ein – Vorgabe Minute zu klein
  • L#112111505    = Datensatz Zeit ein – Vorgabe Minute zu groß
  • L#112111511    = Datensatz Zeit aus – Vorgabe Wochentag
  • L#112111512    = Datensatz Zeit aus – Vorgabe Stunde zu klein
  • L#112111513    = Datensatz Zeit aus – Vorgabe Stunde zu groß
  • L#112111514    = Datensatz Zeit aus – Vorgabe Minute zu klein
  • L#112111515    = Datensatz Zeit aus – Vorgabe Minute zu groß

dio_stor_dat_nr / DINT

Bei Störungen die in den Zeitvorgaben liegen, wird hier die entsprechende Datensatznummer vom DB111 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 DB111 angelegt/enthalten sind.

diio_visu_dat_nr / DINT

Als Schnittstelle für das Anwenderprogramm zum anzeigen/bearbeiten der Zeitvorgaben im DB111 dient diese Beschaltung. Hier wird die Datensatznummer von der Zeitangabe angegeben, die angezeigt bzw. bearbeitet werden soll. Der FC speichert die Daten aus dem DB111 in den DB112 entsprechend um. Bei der Übernahme der neuen Zeitdaten in den DB112, werden die Werte im Datensatz vom DB111 abgelegt, auf dem der Wert ‘diio_visu_dat_nr’ zeigt.

 Beschreibung zum DB111, für die Zeit

Der einzelne Datensatz, der als Struktur angelegt ist, beträgt 16 Byte. Darin enthalten sind zwei weitere Strukturen: 

  • Einschaltzeitpunkt / ‘ein’
  • Ausschaltzeitpunkt / ‘aus’

Für jeden Zeitschaltpunkt ist die Angabe für den Wochentag, 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:

Zur besseren Eingabe vom Programmierer, wird der Wochentag in ASCII-Zeichen angegeben, wobei nur kleine Buchstaben zulässig sind.

  • ‘mo’     =  Montag
  • ‘di’       =  Dienstag
  • ‘mi’      =  Mittwoch
  • ‘do’      =  Donnerstag
  • ‘fr’        =  Freitag
  • ’sa’      =  Samstag
  • ’so’      =  Sonntag
  • ‘–’        =  ohne Wochentage, Auswertung als Tageszeitschaltuhr

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, sowie 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 DB111 beginnt der Symbolname mit ‘zeit_’ gefolgt von einer 4-stelligen Zahl, die der Datensatznummer entspricht. Diese sollte lückenlos aufsteigend sein. 

Beschreibung zum DB112, die Schnittstelle für die Anwendung

Der DB112 ist die Schnittstelle für weitere SPS-Programmteile, sowie Signal-/Datenspeicher für die Funktionsausführung des FC112. Dazu sind Strukturen enthalten, für die verschiedenen Funktionalitäten:

  • Signal-/Datenspeichern für den FC112
  • Daten für VISU zum anzeigen/einstellen des angewählten Datensatz
  • Schaltzeitsignal der entsprechenden Datensätze

Signal-/Datenspeicher des FC112

In der Struktur ‘dat_kopf’ sind die Daten für die FC-Ausführung enthalten. Zusätzlich gibt es die Struktur ‘input’, die im FC112 nicht verwendet werden, sondern allein für den Programmierer gedacht sind, um diese Variable an den FC zu beschalten, damit diese nicht extra angelegt werden muß:

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. 

Datensatz/Schaltzeiten für die Auswertung

In dieser Struktur wird ein Datensatz der Wochenzeitschaltuhr angezeigt, wie dieser in der Vorgabe DB(111) hinterlegt ist. Für die Darstellung des Wochentags im Bediengerät wurde der String mit dem Wochentagskürzel in eine Integer umgewandelt, für eine bessere Verarbeitung.  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 dem 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(111) umgespeichert, welcher mit dem Übergabeparameter ‘diio_visu_dat_nr’ übergeben wird.

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, die in der Vorgabe DB(111) an den Datensätzen enthalten sind. Für die bessere Übersicht ist deshalb im Vorgabe DB(111) 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]‘.

Kommentieren ist momentan nicht möglich.