El bloque de funciones realiza la gestión de salida digital en el módulo indicado en Dirección de acuerdo con el comando de Moda definida. Para gestionar las salidas digitales en el módulo de la CPU, es necesario definir Address:=255 e Mode:=DO_MODE#DO_8_LL.
con la variable Mask es posible enmascarar las salidas a gestionar, el FB sólo transferirá los bits de Value donde el bit relativo de Mask está puesto. por ejemplo con Value:=16#FFFFFFFF e Mask:=16#00000003 sólo se activarán las salidas 0 y 1 del módulo. Esto permite:
- CODESYS: Para usar el FB en la misma tarjeta en diferentes POUs incluso en diferentes tareas.
- LogicLab: Utilizar el FB para gestionar las tarjetas de salida que se gestionan automáticamente en la imagen del proceso.
Función de bloqueo
CÓDIGOS: eCDSXUnificado12Lib
Laboratorio lógico: eLLabXUnified12Lib
Address (USINT) Es necesario especificar la dirección del módulo en el que gestionar las salidas digitales (Rango de 0 a 15). El valor 0 indica el primer módulo de extensión, 1 el segundo, y así sucesivamente. La dirección 255 indica el módulo de la CPU.
Mode (DO_MODE) Se debe especificar el modo de gestión de salidas digitales (definición).
Value (UDINT) Configure el valor a transferir a las salidas digitales.
Mask (UDINT) Máscara de salidas a gestionar. Solo los pedacitos de Value correspondiente al bit relativo de Mask colocar.
Done (BOOL) Conjunto de datos. Se activa para un lazo al final del ajuste de la salida digital.
Fault (BOOL) Error. Se activa en caso de error en la secuencia de configuración
Ejemplos
Cómo utilizar los ejemplos..
Las salidas digitales bajas (de Out 8 a Out 0) del módulo de expansión con dirección 7 se transfieren a 0, el valor en OutValue.
LogicLab (Ptp116)
PROGRAM ST_SysSetPhrDO
VAR
OutValue : UDINT; (* Digital output value *)
DOut : SysSetPhrDO; (* Digital output management *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_SysSetPhrDO"
// *****************************************************************************
// This program manages digital outputs.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// DIGITAL OUTPUT MANAGEMENT
// -------------------------------------------------------------------------
// Manage digital outputs Out 0 to Out 7 on module with address 0.
DOut.Address:=0; //Module address
DOut.Mode:=DO_MODE#DO_8_LL; //Management mode
DOut.Value:=OutValue; //Digital ouput value
DOut.Mask:=16#000000FF; //Output mask
DOut(); //Digital output management
// [End of file]
CODESIS (Ptp161)
PROGRAM ST_SysSetPhrDO
VAR
OutValue : UDINT; //Digital output value
DOut : SysSetPhrDO; //Digital output management
END_VAR
// *****************************************************************************
// PROGRAM "ST_SysSetPhrDO"
// *****************************************************************************
// This program manages digital outputs.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// DIGITAL OUTPUT MANAGEMENT
// -------------------------------------------------------------------------
// Manage digital outputs Out 0 to Out 7 on module with address 0.
DOut.Address:=0; //Module address
DOut.Mode:=DO_MODE.DO_8_LL; //Management mode
DOut.Value:=OutValue; //Digital ouput value
DOut.Mask:=16#000000FF; //Output mask
DOut(); //Digital output management
// [End of file]