Skip to main content

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
. Specifica:
  • 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 definizione Parent 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 vuoto Parent 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 questo Device tipo.

    • Le definizioni Type, ID, ModuleID, E Version del Identification 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 la ModuleID 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 di Value E ChildIndex

      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 dispositivo

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

Esempio 30. Esempio
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


Esempio 31. Esempio con parametri
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


Esempio 32. Esempio di definizione del nome di un dispositivo
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