6.1.5.4
Einfluss des Compilers auf die Variableninitialisierung
Compilerschalter "Einmalige Programmdateninstanziierung"
Der Compiler-Schalter kann an jeder Quelle gesetzt werden und überschreibt damit die
globale Einstellung. Der Compilerschalter wirkt unabhängig von der Erstellsprache, ist daher
auch in KOP/FUP und MCC anwendbar.
Der Compilerschalter steuert, wie die Instanzdaten der in einer Quelle enthaltenen
PROGRAM's anzulegen sind. Instanzdaten eines PROGRAMS werden dabei durch den
Inhalt des VAR Deklarationsblocks gebildet.
Generell gilt: ein Programm kann pro Task im Ablaufsystem einmal und nur einmal
eingehängt werden.
Ist "einmalige Programmdateninstanziierung" nicht eingestellt (DEFAULT) dann gilt
folgendes Verhalten:
● Das Programm kann nicht aus einer anderen POE aufgerufen werden
● die Instanzdaten eines Programms werden für jede Task getrennt angelegt, zu der das
● Die Dateninitialisierung der Instanzdaten erfolgt mit Starten der TASK;
● Instanzdaten von PROGRAMs in sequentiellen Tasks sind in diesem Modus in RUN
Die Aktivierung des Compilerschalters "einmalige Programmdateninstanziierung" (auch bei
Verwendung eines Programms in verschiedenen Tasks) bewirkt Folgendes:
● Instanzdaten so übersetzter Programme werden nur einmal angelegt. Die Instanzdaten
● Jede Verwendung eines so erstellten PROGRAM's arbeitet auf denselben Daten. Dies
● Bei Einstellung 'einmalige Programmdateninstanziierung' erfolgt die Dateninitialisierung
Basisfunktionen
Funktionshandbuch, 05/2009
Programm zugeordnet ist.
(sequentielle Task mit Taskstart, zykl. Tasks beim STOP-RUN Übergang)
änderbar (wenn ein Einwechseln prinzipiell möglich ist).
liegen in der Quelle, in der das PROGRAM deklariert ist.
betrifft die Zuordnung zu (ggf. mehreren) Tasks und den Aufruf in anderen PROGRAMS
oder Funktionsbausteinen.
nach den Regeln der globalen Dateninitialisierung (siehe Downloadeinstellungen am
Projekt) mit dem Download der Quelle/ des Codes, in der/dem das Programm liegt
(deklariert ist). Siehe auch Download im RUN von geänderten Quellen (Seite 457).
VORSICHT
Verändertes Verhalten bei der Dateninitialisierung, wenn Sie "Programminstanzdaten
nur einmal anlegen" ausgewählt haben.
Die Dateninitialisierung erfolgt bei sequentiellen Tasks nicht mehr mit einem Taskstart
bzw. bei zyklischen Tasks mit dem STOP-RUN-Übergang, sondern generell nur bei
einem Download. Ggf. muss nun die Dateninitialisierung applikativ in der StartUpTask
bzw. zu Beginn der Programme in sequentiellen Tasks erfolgen. Initialisierung im
STOP-RUN-Übergang ist mit einem Pragma möglich, siehe Initialisierung von Daten bei
einem STOP - RUN - Übergang (Seite 463). Einfluss des Compilerschalter in
Zusammenhang mit dem Download im RUN, siehe Download im RUN von geänderten
Quellen (Seite 457).
Ist ein Programm mehreren Tasks zugeordnet, wird auf den gleichen Daten gearbeitet.
Programmieren Ablaufsystem/Tasks/Systemtakte
6.1 Ablaufsystem
251