Sektion: MacroModule
Die Sektion beschreibt die Parameter der Makro-Module. Diese Sektion wird automatisch angelegt, wenn Sie ein Makro-Modul erzeugen. Sie können die Sektion auch von Hand in eine Moduldeklaration einfügen oder eine automatisch erzeugte Sektion editieren.
SEC MacroModule //optional: yes, modifier: None
SEC Rootmodule : <identifier> //optional: no, modifier: None
SEC MacroParameter : <identifier> //optional: yes, modifier: None
Local_ParameterID := <parameter ID>; //optional: no, type: ID
New_Name := <parameter name>; //optional: no, type: text
New_Desc := <parameter description>; //optional: no, type: text
END_SEC
SEC MacroIO : <identifier> //optional: yes, modifier: None
Local_IOID := <IO ID>; //optional: no, type: ID
New_Name := <IO name>; //optional: yes, type: text
New_Desc := <IO description>; //optional: yes, type: text
END_SEC
SEC MacroSlot : <identifier> //optional: yes, modifier: None
Local_SlotID := <slot ID>; //optional: no, type: ID
New_Role := <role name>; //optional: yes, type: text
END_SEC
SEC Default_Allocation //optional: no, modifier: None
Module_Name := <module name>; //optional: no, type: QID
SEC VisuEmbeddings //optional: yes, modifier: None
Empty := TRUE/FALSE; //optional: yes, type: BoolFlag
SEC Embedding : <identifier> //optional: yes, modifier: None
VisuName := <visu ID>; //optional: no, type: ID
ProxyVisuName := <proxy visu ID>; //optional: no, type: ID
Target := <target ID>; //optional: yes, type: ID
LinkId := <linke ID>; //optional: yes, type: ID
END_SEC
END_SEC
SEC PageVisu //optional: yes, modifier: None
VisuName := <visu ID>; //optional: yes, type: ID
TopLevelTab := <top level tab>; //optional: yes, type: ID/Bool
END_SEC
SEC IOMappings : <identifier> //optional: no, modifier: None
SEC Mapping : <identifier> //optional: yes, modifier: None
NoMapping := TRUE/FALSE; //optional: yes, type: BoolFlag
STExpression := <ST expression>; //optional: yes, type: ID/ST expression
ModuleConnection := <module connection>; //optional: yes, type: ID/ST expression
END_SEC
END_SEC
SEC Parameters : <identifier> //optional: yes, modifier: None
SEC Param : <identifier> //optional: yes, modifier: None
Value := <value ID>; //optional: no, type: ID
END_SEC
END_SEC
END_SEC
END_SEC
SEC Submodule : <identifier> //optional: yes, modifier: None
Parent_Instance := <instance ID>; //optional: no, type: ID
Parent_Slot := <slot ID>; //optional: no, type: ID
SEC MacroParameter : <identifier> //optional: yes, modifier: None
Local_ParameterID := <parameter ID>; //optional: no, type: ID
New_Name := <parameter name>; //optional: yes, type: text
New_Desc := <parameter description>; //optional: yes, type: text
END_SEC
SEC MacroIO : <identifier> //optional: yes, modifier: None
Local_IOID := <IO Id>; //optional: no, type: ID
New_Name := <IO name>; //optional: yes, type: text
New_Desc := <IO description>; //optional: yes, type: text
END_SEC
SEC MacroSlot : <identifier> //optional: yes, modifier: None
Local_SlotID := <slot ID>; //optional: no, type: ID
New_Role := <role name>; //optional: yes, type: text
END_SEC
SEC Default_Allocation //optional: no, modifier: None
Module_Name := <module name>; //optional: no, type: QID
Instance_Name := <instance name>; //optional: no, type: ID
SEC VisuEmbeddings //optional: no, modifier: None
Empty := TRUE/FALSE; //optional: yes, type: BoolFlag
SEC Embedding : <identifier> //optional: yes, modifier: None
VisuName := <visu ID> //optional: no, type: ID
ProxyVisuName := <proxy visu ID> //optional: no, type: ID
Target := <target ID>; //optional: yes, type: ID
LinkId := <link ID>; //optional: yes, type: ID
END_SEC
END_SEC
SEC PageVisu //optional: yes, modifier: None
VisuName := <visu ID>; //optional: yes, type: ID
TopLevelTap := <top level tab>; //optional: yes, type: ID/Bool
END_SEC
SEC IOMappings : <identifier> //optional: yes, modifier: None
SEC Mapping : <identifier> //optional: yes, modifier: None
NoMapping := TRUE/FALSE //optional: yes, type: BoolFlag
STExpression := <ST expression> //optional: yes, type: ID/ST expression
ModuleConnection := <module connection> //optional: yes, type: ID/ST expression
END_SEC
END_SEC
SEC Parameters //optional: yes, modifier: None
SEC Param : <identifier> //optional: yes, modifier: None
Value := <value>; //optional: no, type: ID
END_SEC
END_SEC
END_SEC
END_SEC
SEC Reference : <identifier> //optional: yes, modifier: None
Parent_Instance := <instance ID>; //optional: no, type: ID
Parent_Slot := <slot ID>; //optional: no, type: ID
Referenced_Instance := <instance ID>; //optional: no, type: ID
END_SEC
END_SECDetails über die Syntax der Definitionstypen sind im Kapitel Syntax der Moduldeklaration beschrieben.
Macro_Module: Wenn diese Sektion definiert ist, darf innerhalb der gesamten Moduldeklaration keine weitere Sektion außer der SektionMetaDatavorhanden sein. Jede Moduldeklaration mit dieser Sektion ist eindeutig als Makro-Modul-Typ gekennzeichnet. Es darf auch keine weitere SektionMacroModuleinnerhalb einer Moduldeklaration geben.Rootmodule: Zeigt an, dass die folgenden Untersektionen das Wurzel-Submodul beschreiben, das die Wurzel dieses Macro-Modul-Typs sein soll und zu oberst als Vater aller anderen Submodule des Makro-Modul-Typs eingefügt werden soll.Submodule: Zeigt an, dass die folgenden Untersektionen ein Submodul beschreiben, das für den Makro-Modul-Typ irgendwo im Unterbaum unter dem Wurzel-Submodul eingefügt werden soll.MacroParameter: Wird eine solche Sektion innerhalb einer SektionSubmoduleoderRootverwendet, kann angegeben werden, dass ein bestimmter Parameter des definierten Submoduls (oder Root) als Parameter des Makro-Moduls selbst auftreten soll. Dazu wird das Target der SektionMacroParameterals neue Parameter-ID für den Makro-Modul-Parameter verwendet. Der Parameter des angegebenen Submoduls (oder Root) wird dann über die DefinitionLocal_ParameterIDangegeben. Zusätzlich können über die DefinitionenNew_NameundNew_DescTextlisten-Einträge angegeben werden. Diese Einträge werden für Name und Beschreibung des neuen Makro-Modul-Parameters anstelle derjenigen des Submodul- oder Root-Parameters verwendet. Alle angegebenen Targets aller SektionenMacroParameterinnerhalb eines gesamten Makro-Moduls müssen eindeutig sein, so dass alle Makro-Modul-Parameter eindeutige Parameter-IDs besitzen.MacroIO: Wenn eine solche Sektion innerhalb der SektionSubmoduleoderRootverwendet wird, kann angegeben werden, dass ein bestimmter IO des definierten Submoduls (oder Root) als IO des Makro-Moduls selbst auftreten soll. Dazu wird das Target der SektionMacroIOals neue IO-ID für den Makro-Modul-IO verwendet. Der IO des angegebenen Submoduls (oder Root) wird dann über die DefinitionLocal_IOIDangegeben. Zusätzlich können über die DefinitionenNew_NameundNew_DescTextlisteneinträge angegeben werden. Diese Einträge werden für Name und Beschreibung des neuen Makro-Modul-IOs anstelle derjenigen des Submodul- oder Root-IOss verwendet. Alle angegebenen Targets aller SektionenMacroIOinnerhalb eines gesamten Makro-Moduls müssen eindeutig sein, so dass alle Makro-Modul-IOs eindeutige IO-IDs besitzen.MacroSlot: Wird diese Sektion innerhalb der SektionSubmoduleoderRootverwendet, kann angegeben werden, dass ein bestimmter Steckplatz des definierten Submoduls (oder Root) als Steckplatz des Makro-Moduls selbst auftreten soll. Somit kann unterhalb dieses Steckplatzes der Makro-Modul-Instanz weitere Modulinstanzen eingefügt werden. Dazu wird das Target der SektionMacroSlotals neue SlotID für den Makro-Modul-Slot verwendet. Der Steckplatz des angegebenen Submoduls (oder Root) wird dann über die DefinitionLocal_SlotIDangegeben. Zusätzlich kann über die DefinitionenNew_Roleein Textlisteneintrag angegeben werden. Dieser Eintrag wird für die „Role“ des neuen Makro-Modul-Slots anstelle desjenigen des Submodul- oder Root-Slots verwendet. Alle angegebenen Targets aller SektionenMacroSlotinnerhalb eines gesamten Makro-Moduls müssen eindeutig sein, so dass alle Makro-Modul-Slots eindeutige Slot-IDs besitzen.Parent_Instance: Gibt eine ID an, die einer Target-ID einer SektionRootmoduleoderSubmoduleder umgebenden SektionMacroModuleentspricht. Diese Definition existiert nur innerhalb der SektionSubmodule. Sie definiert die Vater-Modul-Instanz unterhalb derer das durch die jeweilige SektionSubmodulebeschriebene Submodul des Makro-Modul-Typen „eingefügt“ werden soll. Dazu ist die DefinitionParent_Slotzusätzlich zwingend erforderlich.Parent_Slot: Gibt eine ID an, die der ID eines Steckplatzes entspricht, die unterhalb des durchParent_Moduleidentifizierten Submodul-Typs zu finden ist. Unter diesem Steckplatz wird das durch die SektionSubmodulebeschriebene Submodul des Makro-Modul-Typen eingefügt.Default_Allocation: Ist identisch zur gleichnamigen Sektion unterhalb der Slot-Deklarationen (SlotundSlot_Multi). Diese Sektion gibt sowohl für „Rootmodule“ als auch „Submodule“ an, was für ein Submodul des Makro-Modul-Typs mit welcher Instanz-Konfiguration eingefügt werden soll. Einziger Unterschied ist, dass fürDefault_Allocationunterhalb einer SektionRootmodulekeinInstance_Nameangegeben werden kann, dagegen unterhalb von SektionenSubmoduleschon. Der Grund ist, dass die als „Rootmodule“ eingefügten Modul-Instanzen ihren Namen von der Makro-Modul-Instanz bekommen und deshalb nicht „default“ angegeben werden können.Reference: Zeigt an, dass die folgenden Untersektionen eine Modul-Referenz beschreiben. Dabei wird eine Referenz unter der Modul-InstanzParent_Instanceunter dem SteckplatzParent_Sloterzeugt, wobei das SubmodulReferenced_Instancereferenziert wird. Diese referenzierte Instanz muss so wie dieParent_Instanceaus der Menge der Submodule- oder Rootmodule-Instanzen unterhalb der selben SektionMakro_Modulestammen.
Sie darf weder
IMPLEMENTED_BYnochIMPORTSin ihrer Moduldeklaration verwenden.Sie muss die Sektion
MetaDataundMacroModuleenthalten. Ansonsten dürfen keine weiteren Sektionen vorhanden sein.Unterhalb der Sektion
Macro_Modulmuss mindestens eine SektionRootmodulevorhanden sein. Es darf zudem keine zweite SektionRootmoduleexistieren.Für jedes
Submodulemuss innerhalb vonMacroModulesowohl dieParent_Instanceals auch derParent_Slotdefiniert sein. Dieser muss dann alsLocal_SlotIDinnerhalb vonMacroSlotderParent_Instancedefiniert sein.