Sottosezione: Dispositivo
IL Device
la sottosezione definisce i dispositivi che devono essere aggiunti dal generatore di dispositivi. Esistono diversi tipi di dispositivi generati definiti con le diverse sottosezioni Identification
, Wildcard
, E FlexibleWildcard
.
Sintassi:
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_SEC
IL
Device
sezione ha un ID di destinazione che la identifica in modo univoco tra gli altri dispositivi generati di un modulo. Questo ID può essere utilizzato per fare riferimento a questo dispositivo. Ciò avviene principalmente nella definizioneParent
di altri dispositivi creati o I/O collegati.IL
Parent
definizione specifica il dispositivo genitore desiderato sotto il quale deve essere montato il dispositivo creato.Il dispositivo genitore non può essere identificato affatto (la definizione è facoltativa), tramite il suo ID o tramite un parametro.
Nel dettaglio, il dispositivo genitore viene poi determinato nel seguente modo:
Se no
Parent
è definito, viene sempre utilizzato il primo genitore disponibile corrispondente e per un vuotoParent
la definizione cerca solo a partire dal primo modulo genitore. Se nessun dispositivo è definito nel modulo genitore diretto stesso, la cronologia dei moduli genitori viene tracciata fino a quando non viene finalmente trovato un dispositivo che corrisponde o viene raggiunto il modulo di livello superiore. In questo caso, se possibile, viene utilizzato il relativo dispositivo di applicazione.Se inoltre viene specificato un ID dispositivo o un parametro come a
Parent
, la cronologia dei dispositivi principali viene scansionata allo stesso modo, per cui ora vengono presi in considerazione anche i dispositivi del modulo di uscita stesso e anche un possibile dispositivo principale deve avere l'ID corrispondente.Se secondo le regole sopra descritte non viene trovato nessun possibile dispositivo genitore, durante il controllo della generazione viene emesso un errore.
ParentSlotIndex
: specifica l'indice dello slot (numero) del dispositivo principale in cui è inserito il dispositivo. Ciò è utile quando è necessario il collegamento.
IL
Identification
la sottosezione include la descrizione univoca di un dispositivo da aggiungere. Questo crea un riferimento univoco a questoDevice
tipo.Le definizioni
Type
,ID
,ModuleID
, EVersion
delIdentification
sezione identifica in modo univoco un tipo di dispositivo di una versione specifica. Ad esempio, un Master EtherCAT ha la seguente definizione:Type := '64';
ID := '000 0001';
Version := '3.5.1.0';
Se
*
è definita come la versione, viene sempre utilizzata la versione più recente del dispositivo. Se laModuleID
non viene utilizzata la definizione, nel sistema vengono cercati i dispositivi con DeviceIdentification, altrimenti vengono cercati i dispositivi con identificativo modulo.Se il dispositivo definito non esiste nell'archivio dispositivi, durante il processo di scansione viene già emesso un messaggio di errore corrispondente.
Sottosezione:
SetChildName
con le definizioni diValue
EChildIndex
Queste opzioni permettono di specificare il nome che dovrà avere un dispositivo inserito automaticamente. Se lo stesso nome viene utilizzato più di una volta, il nome risultante viene reso univoco aggiungendo un carattere di sottolineatura e un numero.
Value
: nome desiderato del dispositivoChildIndex
: Indice del dispositivo inserito automaticamente da rinominare
Questa sezione offre la possibilità di compilare i campi con l'aiuto dell'Input Assistant. Per fare ciò, posiziona il cursore alla fine della riga successiva
Identification
e premere Ritorno. Successivamente, l'Assistente di input si apre e offre i canali disponibili. Dopo aver scelto un dispositivo, i parametri corrispondenti vengono trasferiti nella dichiarazione del modulo. Tieni presente che questa funzione è disponibile solo alla fine della sottosezione (END_SEC
) non è stato ancora inserito.La definizione File contiene un elenco di dispositivi che verranno aggiunti al progetto. Questi dispositivi sono stati configurati manualmente ed esportati in una libreria.
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_SEC
SEC 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_SEC
SEC 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