Programación (S7-1500, S7-1500T)
6.2 Instrucciones de Motion Control (S7-1500, S7-1500T)
6.2.3
Transferencia de parámetros para bloques de función (S7-1500, S7-1500T)
Para reutilizar un bloque de función con instrucciones de Motion Control para diversos
objetos tecnológicos es necesario generar en la interfaz del bloque de función invocante un
parámetro de entrada del tipo de datos del objeto tecnológico correspondiente. El tipo de
datos se asigna en la interfaz de bloque mediante una entrada directa. Después este
parámetro se transfiere al parámetro "Axis" de las instrucciones de Motion Control como
referencia al objeto tecnológico. Los tipos de datos de objetos tecnológicos corresponden a la
estructura del bloque de datos de tecnología correspondiente.
A diferencia de los tipos de datos estándar, los tipos de datos de los objetos tecnológicos se
transfieren al bloque de función siempre en forma de punteros (Call by reference). Esto
también ocurre cuando se declaran los tipos de datos de los objetos tecnológicos en la
sección "Input" de la interfaz del bloque. Los accesos de escritura del bloque de función
siempre modifican el objeto tecnológico referenciado.
Ejemplo 1: Transferencia de variables con un tipo de datos determinado
Indicando el tipo de datos, las variables del objeto tecnológico se direccionan en el bloque de
función (<Parámetros de la interfaz de bloque>.<Variable del objeto tecnológico>). En el
capítulo "Tipos de datos (Página 134)" encontrará los tipos de datos para la referencia a los
objetos tecnológicos.
La tabla siguiente muestra la declaración de las variables utilizadas:
Variable
Declaración
axis
Input
on
Input
actPosition
Output
instMC_POWER
Static
El siguiente programa SCL muestra la transferencia de variables con un tipo de datos
determinado:
SCL
#instMC_POWER(Axis := #axis, Enable := #on);
#actPosition := #axis.ActualPosition;
Ejemplo 2: Transferencia de variables con "DB_Any"
El tipo de datos "DB_Any" ofrece otra posibilidad de transferencia con determinados tipos de
datos del objeto tecnológico. A diferencia de los tipos de datos del objeto tecnológico en el
programa, "DB_Any" se puede asignar en tiempo de ejecución.
En este ejemplo se muestra cómo programar una conmutación variable de cuatro perfiles de
levas en "MC_CamIn".
Dos perfiles de levas son del tipo "TO_Cam" y los otros dos son del tipo "TO_Cam_10k". Los
cuatro perfiles de levas se asignan en un bloque de datos como "Array of DB_Any".
114
Tipo de datos
TO_PositioningAxis
BOOL
LReal
MC_POWER
Explicación
//Llamada de la instrucción "MC_Power" de Motion
Control con habilitación del eje
//Consulta de la posición real del bloque de datos
tecnológico
S7-1500/S7-1500T Sinopsis de Motion Control V6.0, STEP 7 V17 o superior
Descripción
Referencia al objeto tecnológico
Señal para habilitar el eje
Consulta de la posición real del bloque de datos de
tecnología
Multiinstancia de la instrucción "MC_Power" de Motion
Control
Manual de funciones, 05/2021, A5E03879258-AG