Skip to main content

Subsección: Device

los Device La subsección define los dispositivos que agregará el generador de dispositivos. Hay varios tipos de dispositivos generados que se definen con las diferentes subsecciones Identification, Wildcard, y FlexibleWildcard .

Sintaxis:

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
. Especificación:
  • los Device La sección tiene una identificación de destino que la identifica de manera única entre los otros dispositivos generados de un módulo. Este ID se puede utilizar para hacer referencia a este dispositivo. Esto se hace principalmente en la definición. Parent de otros dispositivos creados o E/S conectadas.

  • los Parent La definición especifica el dispositivo principal deseado bajo el cual se montará el dispositivo creado.

    El dispositivo principal no se puede identificar en absoluto (la definición es opcional), por su ID o por un parámetro.

    En detalle, el dispositivo principal se determina de la siguiente manera:

    • Si no Parent se define en absoluto, siempre se utiliza el primer padre coincidente disponible, y para un vacío Parent la definición solo busca a partir del primer módulo principal. Si no se define ningún dispositivo en el propio módulo principal directo, se realiza un seguimiento del historial de los módulos principales hasta que finalmente haya un dispositivo que coincida o se alcance el módulo de nivel superior. En este caso, se utiliza su dispositivo de aplicación si es posible.

    • Si, además, se especifica un ID de dispositivo o un parámetro como Parent , el historial de los dispositivos principales se escanea de la misma manera, por lo que ahora también se tienen en cuenta los dispositivos del propio módulo de salida y un posible dispositivo principal también debe tener la ID correspondiente.

    • Si según las reglas descritas anteriormente no se puede encontrar ningún posible dispositivo principal, se genera un error durante la verificación de generación.

    • ParentSlotIndex: Especifica el índice de la ranura (número de ranura) del dispositivo principal en el que se insertará el dispositivo. Esto es útil cuando se requiere enchufar.

  • la subsección Identifikation incluye la descripción única de un dispositivo que se agregará. Esto crea una clara referencia a este tipo. Device fabricado.

    • Las definiciones Type, ID, ModuleID, y Version de El Identification sección identificar de forma única un tipo de dispositivo de una versión específica. Por ejemplo, un EtherCAT Master tiene la siguiente definición:

      Type := '64';

      ID := '000 0001';

      Version := '3.5.1.0';

      Si * se define como la versión, siempre se utiliza la última versión del dispositivo. Si el ModuleID no se utiliza la definición, se buscan dispositivos con DeviceIdentification en el sistema; de lo contrario, se buscan dispositivos con una identificación de módulo.

      Si el dispositivo definido no existe en el repositorio de dispositivos, ya se emite un mensaje de error correspondiente durante el proceso de exploración.

    • Subsección SetChildName con las definiciones Value y ChildIndex

      Estas opciones le permiten especificar el nombre que debe tener un dispositivo insertado automáticamente. Si se utiliza el mismo nombre más de una vez, el nombre resultante se vuelve único añadiendo un guión bajo y un número.

      • Value: Nombre deseado del dispositivo

      • ChildIndex: Índice del dispositivo insertado automáticamente al que se le cambiará el nombre

    Esta sección ofrece la posibilidad de llenar los campos con la ayuda del Input Assistant. Para hacer esto, coloque el cursor al final de la línea después de Identification y presiona Regreso. Posteriormente, Input Assistant se abre y ofrece los canales disponibles. Después de elegir un dispositivo, los parámetros correspondientes se transfieren a la declaración del módulo. Tenga en cuenta que esta función solo está disponible cuando el final de la subsección (END_SEC) aún no se ha introducido.

  • La definición archivos contiene una lista de dispositivos que se agregarán al proyecto. Estos dispositivos se configuraron y exportaron manualmente a una biblioteca.

ejemplo 30. Ejemplo
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


ejemplo 31. Ejemplo con parámetros
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


ejemplo 32. Ejemplo de configuración de un nombre de 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