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_SECDetails ü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
CreateCFCProgramidentifiziert die CFC-Programme dieses Modultyps. Potentiell kann ein Modultyp für seine Modulinstanzen mehrere CFC-Programme definieren und erzeugen lassen.Eine der Definitionen
StandardCallTaskoderCustomCallTaskmuss vorhanden sein, es dürfen aber nicht beide vorhanden sein.Für
StandardCallTaskstehen die drei IDsLOW,MEDIUMundHIGHzur Verfügung, die die jeweilige Task in der nächsthöheren Toplevel/Decoupled-Vater-Modul-Instanz bezeichnen.Für
CustomCallTaskstehen 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
ParentFolderkann die Target-ID einer SektionCreateFoldereingetragen 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.
PreferredCFCProgramgibt 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
CreateCFCIOCallwird diejenige Modul-E/A-ID angegeben, für die ein E/A-FB global angelegt und innerhalb eines CFC-Programms aufgerufen wird.FBgibt den Typ des Funktionsbausteins an, der für den obigen E/A-FB global instanziiert und aufgerufen wird.PreferredCFCProgramgibt an, welches CFC-Programm verwendet werden soll, falls mehrere zur Verfügung stehen.FBInstanceBaseNameerlaubt 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
ParentFolderkann die Target-ID einer SektionCreateFoldereingetragen 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