Sektion: CFCCreation
In dieser Sektion sind alle Untersektionen enthalten, die vom CFC-Generator interpretiert werden.
SEC cfc.CFCCreation SEC CreateCFCProgram : <CFC program identifier> //optional: yes, modifier [UPDATE] StandardCallTask := <Task type>; //optional: yes, type: ID CustomCallTask := <Task type>; //optional: yes, type: ID ParentFolder := <create folder ID; //optional: yes, type: ID END_SEC SEC CreateCFCModuleCall //optional: yes, modifier [UPDATE] PreferredCFCProgram := <CFC program> //optional: yes; type: FB type END_SEC SEC CreateCFCIOCall : <CFC IO call ID> // optional: yes; modifier [UPDATE] FB := <FB name>; // optional: no; type: FB type PreferredCFCProgram := <CFC program> // optional: yes; type: FB type FBInstanceBaseName := AInput; // optional: yes; type: identifier END_SEC SEC CreateFolder : <folder ID> //optional: yes, modifier [UPDATE] ParentFolder := <folder name>; //optional: yes, type: ID END_SEC END_SEC
Details über die Syntax der Definitionstypen sind im Kapitel Syntax der Moduldeklaration beschrieben.
Untersektion: CreateCFCProgram
Wenn eine Moduldeklaration eine Sektion cfc.CFCCreation
inklusive der Untersektion CreateCFCProgram
besitzt, wird für den zugehörige Modultyp ein CFC-Programm erzeugt. Das CFC-Programm wird unter der Zielapplikation der nächsthöheren Toplevel/Decoupled-Vater-Modul-Instanz angelegt. Mit Hilfe der Definitionen CustomCallTask
oder StandardCallTask
kann angegeben werden, welche Task dazu verwendet werden soll das entstehende CFC-Programm aufzurufen.
Das Target der Sektion
CreateCFCProgram
identifiziert die CFC-Programme dieses Modultyps. Potentiell kann ein Modultyp für seine Modulinstanzen mehrere CFC-Programme definieren und erzeugen lassen.Eine der Definitionen
StandardCallTask
oderCustomCallTask
muss vorhanden sein, es dürfen aber nicht beide vorhanden sein.Für
StandardCallTask
stehen die drei IDsLOW
,MEDIUM
undHIGH
zur Verfügung, die die jeweilige Task in der nächsthöheren Toplevel/Decoupled-Vater-Modul-Instanz bezeichnen.Für
CustomCallTask
stehen alle Target-IDs zur Verfügung, die für die jeweilige Custom-Task in der nächsthöheren Toplevel/Decoupled-Vater-Modul-Instanz verwendet wurden.
In
ParentFolder
kann die Target-ID einer SektionCreateFolder
eingetragen werden. Damit wird das erzeugte CFC-Programm in diesem Unterordner (CreateFolder
) angelegt.
Untersektion: CreateCFCModuleCall
Wenn eine Moduldeklaration eine Sektion cfc.CFCCreation
inklusive der Untersektion CreateCFCModuleCall
besitzt, wird für den zugehörigen Modultyp im CFC-Programm der nächsthöheren Vater-Modul-Instanz ein Aufruf des Modul-Instanz-FBs erzeugt.
PreferredCFCProgram
gibt an, welches CFC-Programm verwendet werden soll, falls mehrere zur Verfügung stehen.
Untersektion: CreateCFCIOCall
Diese Sektion dient dazu E/As eines Modultyps bzw. einer Moduldeklaration zu kennzeichnen. Für diese E/As werden FB-Instanzen eines vorgegebenen Typs angelegt, für die dann Aufrufe innerhalb eines CFC-Programms erzeugt werden.
Mit dem Target der Sektion
CreateCFCIOCall
wird diejenige Modul-E/A-ID angegeben, für die ein E/A-FB global angelegt und innerhalb eines CFC-Programms aufgerufen wird.FB
gibt den Typ des Funktionsbausteins an, der für den obigen E/A-FB global instanziiert und aufgerufen wird.PreferredCFCProgram
gibt an, welches CFC-Programm verwendet werden soll, falls mehrere zur Verfügung stehen.FBInstanceBaseName
erlaubt es einen „Basisnamen“ zu definieren, der für die Benennung der angelegten E/A-FBs verwendet wird. Ist diese Definition nicht vorhanden wird als „Basisname“ der Name der Modulinstanz verwendet.
Untersektion: CreateFolder
Diese Sektion dient dazu Unterordner unterhalb des Ordners AC_CFC_Programs
anzulegen. Entsprechend kann in den Sektionen CreateCFCProgram
ein ParentFolder
angegeben werden. Dann werden CFC-Programme in dem Verzeichnis erzeugt, das durch die CreateFolder
-Sektion angelegt wird. Verzeichnisse können selbst ein ParentFolder
angeben um weitere Unter- und Unter-Unter-Verzeichnisse zu spezifizieren.
In
ParentFolder
kann die Target-ID einer SektionCreateFolder
eingetragen werden. Damit wird das erzeugte Verzeichnis in diesem Unterordner (CreateFolder
) angelegt.
SEC cfc.CFCCreation SEC CreateCFCProgram : Standard StandardCallTask := MEDIUM; ParentFolder := SubFolderUnderFolder; END_SEC SEC CreateFolder : SubFolderUnderFolder ParentFolder := SubFolder; END_SEC END_SEC