Esta función llena pStatusBuffer con la tabla de estado del módulo ModuleIndex.
Esta función lee selectivamente el estado del canal de E/S de un módulo TM3 analógico o de temperatura, que se indica mediante ModuleIndex. El bloque de funciones escribe el estado de cada canal solicitado a partir de la ubicación de la memoria señalada por pStatusBuffer.
Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de funciones y de bloques de funciones.
Cada canal de E/S analógico o de temperatura del módulo solicitado requiere un byte de memoria. Si no hay suficiente memoria asignada al búfer para el número de estados de canal del módulo de E/S solicitado, es posible que la función sobrescriba la memoria asignada para otros fines o quizás intente sobrescribir un área restringida de memoria.
ADVERTENCIA | |
---|---|
En la siguiente tabla se describen las variables de entrada:
Entrada |
Tipo |
Comentario |
---|---|---|
ModuleIndex |
BYTE |
Índice del módulo de extensión (0 para el módulo más cercano al controlador, 1 para el segundo más cercano y así sucesivamente). |
StatusOffset |
BYTE |
Offset del primer estado que se debe leer en la tabla de estado. |
StatusSize |
BYTE |
Número de bytes que se deben leer en la tabla de estado. |
pStatusBuffer |
POINTER TO BYTE |
Búfer que contiene la tabla de estado de lectura (IBStatusIWx/IBStatusQWx). |
En la siguiente tabla se describe la variable de salida:
Salida |
Tipo |
Comentario |
---|---|---|
TM3_GetModuleInternalStatus |
Devuelve TM3_NO_ERR (00 hex) si el comando es correcto. En caso contrario, devuelve el código ID del error. A los efectos de este bloque de funciones, cualquier valor devuelto distinto de cero indica que el módulo no es compatible con la solicitud de estado o que el módulo tiene otros problemas de comunicación. |
En los siguientes ejemplos se describe cómo obtener el estado interno del módulo:
VAR
TM3AQ2_Channel_0_Output_Status: BYTE;
END_VAR
TM3AQ2 is on position 1
Status of channel 0 is at offset 0
We read 1 channel
TM3_GetModuleInternalStatus(1, 0, 1, ADR(TM3AQ2_Channel_0_Output_Status));
status of channel 0 is in TM3AQ2_Channel_0_Output_Status
Módulo TM3AQ2 (2 salidas)
Obtención del estado de la primera salida QW0
StatusOffset = 0 (0 entradas x 2)
StatusSize = 1 (1 estado para leer)
pStatusBuffer debe tener al menos 1 byte
VAR
TM3AM6_Channels_1_2_Input_Status: ARRAY[1..2] OF BYTE;
END_VAR
TM3AM6 is on position 1
Status of channel 1 is at offset 1
We read 2 consecutive channels
TM3_GetModuleInternalStatus(1, 1, 2, ADR(TM3AM6_Channels_1_2_Input_Status));
status of channel 1 is in TM3AM6_Channels_1_2_Input_Status[1]
status of channel 2 is in TM3AM6_Channels_1_2_Input_Status[2]
Módulo TM3AM6 (4 entradas, 2 salidas)
Obtención del estado de la entrada IW1 e IW2 (IW0 es la primera)
StatusOffset = 1 (1 para omitir el estado IW0)
StatusSize = 2 (2 estados para leer)
pStatusBuffer debe tener al menos 2 bytes