TM3_GetModuleInternalStatus: obtener estado interno del módulo TM3

Descripción de la función

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.

NOTA: Este bloque de funciones está diseñado para usarse con módulos de E/S analógicos y de temperatura. Para obtener información de estado de los módulos de E/S digitales, consulte TM3_GetModuleBusStatus.
NOTA: Es posible actualizar el valor de los bytes de diagnóstico invocando la función TM3_GetModuleInternalStatus solo si el parámetro Estado habilitado de la ficha Configuración de E/S está desactivado.

Biblioteca y espacio de nombres

Nombre de biblioteca: TM3System

Espacio de nombres: SEC_TM3Sys

Representación gráfica

Representación IL y ST

Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de funciones y de bloques de funciones.

Descripción de variables de E/S

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
FUNCIONAMIENTO NO DESEADO DEL EQUIPO
Asegúrese de que pStatusBuffer apunte a un área de memoria que haya sido suficientemente asignada para el número de canales que se van a leer.
Si no se siguen estas instrucciones, pueden producirse lesiones graves, muerte o daños en el equipo.

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

TM3_ERR_CODE

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.

Ejemplo

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