Untersektion: Device
Die Untersektion Device definiert Geräte, die vom Gerätegenerator hinzugefügt werden sollen. Es gibt mehrere Typen von generierten Geräten, die mit den verschiedenen Untersektionen Identification, Wildcard und FlexibleWildcard festgelegt werden.
Syntax:
SEC DeviceGenerator //optional: yes, modifier: [UPDATE]
SEC Device : <target ID> //optional: yes, modifier [UPDATE]
Parent := <target ID>; //optional: yes, type: ID
ParentSlotIndex := <slot number>; //optional: yes, type: literal/integer
SEC Identification //optional: yes, modifier: [UPDATE]
Type := <type number>; //optional: no, type: literal/string
ID := <ID mumber>; //optional: no, type: literal/string
ModuleID := <module ID>; //optional: yes, type: literal/string
Version := <version mumber>; //optional: no, type: literal/string
SEC SetChildName //optional: yes, modifier: [UPDATE]
Value := <child name>; //optional: no, type: literal/string
ChildIndex := <index number>; //optional: no, type: literal/string
END_SEC
END_SEC
END_SEC
SEC ExportDevice //optional: yes, modifier: [UPDATE, HIDE]
Files :=[<filename1>, <filename2>, ...]; //optional: no, type: string
END_SEC
END_SECDer Abschnitt
Devicebesitzt eine Target-ID, die ihn unter den anderen generierten Geräten eines Moduls eindeutig kennzeichnet. Diese ID kann dazu verwendet werden, auf dieses Gerät zu referenzieren. Dies erfolgt hauptsächlich in der DefinitionParentanderer erzeugter Geräte oder verbundener E/As.Die Definition
Parentspezifiziert das gewünschte Elterngerät, unter dem das erzeugte Gerät eingehängt werden soll.Das Elterngerät kann gar nicht (Definition ist optional), über seine ID oder über einen Parameter identifiziert werden.
Im Detail wird das Elterngerät dann auf folgende Art und Weise ermittelt:
Ist überhaupt kein
Parentdefiniert, wird stets das erste passende zur Verfügung stehende Elterngerät verwendet, wobei für eine leereParent-Definition nur ab dem ersten Elternmodul gesucht wird. Wenn im direkten Elternmodul selbst kein Gerät definiert ist, wird so lange die Historie der Elternmodule nachverfolgt, bis schließlich ein Gerät vorhanden ist, das passt oder das Toplevel-Modul erreicht ist. In diesem Fall wird dann, falls möglich, dessen Applikationsgerät verwendet.Ist zudem eine Device-ID oder ein Parameter als
Parentangegeben, wird in selber Weise die Historie der Elterngeräte durchforstet, wobei nun zusätzlich die Geräte des Ausgangsmoduls selbst mit in Betracht gezogen werden und ein mögliches Elterngerät auch die entsprechende ID besitzen muss.Wenn, nach den oben beschriebenen Regeln, kein mögliches Elterngerät gefunden werden kann, wird beim Generierungs-Check ein Fehler ausgegeben.
ParentSlotIndex: Gibt den Index des Steckplatzes (Slot-Nummer) des übergeordneten Geräts an, in den das Gerät eingefügt werden wird. Das ist dann hilfreich, wenn ein Einstecken erforderlich ist.
Die Untersektion
Identifikationumfasst die eindeutige Beschreibung eines Devices, das hinzugefügt werden soll. Es wird damit ein eindeutiger Bezug zu diesem TypDevicehergestellt.Die Definitionen
Type,ID,ModuleIDundVersionder SektionIdentificationidentifizieren eindeutig einen Gerätetyp einer bestimmten Version. Ein EtherCAT-Master hat beispielsweise folgende Definition:Type := '64';ID := '000 0001';Version := '3.5.1.0';Wenn als Version
*definiert wird, wird stets die neuste Version des Gerätes verwendet. Wenn die DefinitionModuleIDnicht verwendet wird, wird das System nach Geräten mit einer DeviceIdentification durchsucht, andernfalls wird nach Geräten mit einer ModuleIdentification gesucht.Wenn das definierte Gerät im Geräterepository nicht vorhanden ist, wird eine entsprechende Fehlermeldung bereits beim Scan-Vorgang ausgegeben.
Untersektion
SetChildNamemit den DefinitionenValueundChildIndexMit Hilfe dieser Optionen können Sie den Namen festlegen, den ein automatisch eingefügtes Gerät haben soll. Wird derselbe Name mehr als einmal verwendet, wird der resultierende Name durch Anhängen eines Unterstrichs und einer Zahl eindeutig gemacht.
Value: Gewünschter Name des GerätsChildIndex: Index des automatisch eingefügten Geräts, das umbenannt werden soll
Diese Sektion bietet die Möglichkeit, die Felder mit Hilfe des Eingabeassistenten zu belegen. Dazu wird der Cursor auf das Zeilenende hinter
Identificationgesetzt und Return gedrückt. Danach öffnet der Assistent und bietet die verfügbaren Geräte an. Nach der Auswahl eines Gerätes werden die entsprechenden Parameter in die Moduldeklaration übernommen. Bitte beachten Sie, dass diese Funktion nur zur Verfügung steht, falls das Ende der Untersektion (END_SEC) noch nicht eingegeben wurde.Die Definition Files enthält eine Liste von Geräten, die zum Projekt hinzugefügt werden. Diese Geräte wurden manuell konfiguriert und in eine Bibliothek exportiert.
SEC Device : Buskoppler2
SEC Identification
Type := '65';
ID := '2_044C2C5200110000';
Version := '*';
END_SEC
END_SEC
SEC Device : KlemmeDigitalOutput
Parent := Buskoppler2;
SEC Wildcard : KlemmeTyp
Desc := TL.WildDesc;
END_SEC
SEC ExportDevices
Files := [ExtFile.BK5120_1SDO, ExtFile.BK5120_2SDO];
END_SEC
END_SECSEC std.DeviceGenerator
SEC Device : CANopen_Manager
Parent := CurrentCAN;
SEC FlexibleIdentification
Type := '16';
ID := '181016';
Version := '*';
Maximum := 1;
END_SEC
END_SEC
END_SEC
SEC std.Parameters
SEC Param : CurrentCAN
Name := TL.CurrentCAN_Name;
Desc := TL.CurrentCAN_Desc;
VariableType := wSTRING;
Default := 'CANBus_0';
END_SEC
END_SECSEC std.DeviceGenerator
SEC Device : EcoVario
Parent := CanManager;
SEC Identification
Type := '18';
ID := '1619 0001';
Version := '*';
SEC SetChildName : ChildDevice
Value := 'ChildName';
ChildIndex := 0;
END_SEC
END_SEC
END_SEC
SEC Parameters : EcoVario
SEC AddParameter : BoolParamAdd
ParameterID := '150';
ParameterName := 'BoolParam';
ParameterType := 'std:BOOL';
ChildIndex := 0;
END_SEC
SEC SetParameter : BoolParamAdd
ParameterID := '150';
ElemPath := '';
Value := 'TRUE';
ChildIndex := 0;
END_SEC
SEC SetParameter : bVirtual
ParameterID := '1040';
ElemPath := '';
ConnectorID := '0';
Value := 'TRUE';
ChildIndex := 0;
END_SEC
END_SEC
SEC InstRefMapping : Axis
SEC Demand
Desc := TL.DescAxis;
Properties := [SM_DRIVE_CAN];
END_SEC
END_SEC
END_SEC