Skip to main content

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.

. Spezifikation:
  • 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 oder CustomCallTask muss vorhanden sein, es dürfen aber nicht beide vorhanden sein.

    • Für StandardCallTask stehen die drei IDs LOW, MEDIUM und HIGH 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 Sektion CreateFolder 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.

. Spezifikation:
  • 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.

. Spezifikation:
  • 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.

. Spezifikation:
  • In ParentFolder kann die Target-ID einer Sektion CreateFolder eingetragen werden. Damit wird das erzeugte Verzeichnis in diesem Unterordner (CreateFolder) angelegt.

Beispiel 39. Beispiel
 SEC cfc.CFCCreation
                SEC CreateCFCProgram : Standard
                        StandardCallTask := MEDIUM;
                        ParentFolder := SubFolderUnderFolder;
                END_SEC
        SEC CreateFolder : SubFolderUnderFolder
                ParentFolder := SubFolder;
        END_SEC
END_SEC