TM3_GetModuleInternalStatus: Recupero dello stato interno del modulo TM3

Descrizione della funzione

Questa funzione legge in modo selettivo lo stato del canale di I/O di un modulo TM3 analogico o di temperatura, indicato da ModuleIndex. Il blocco funzione scrive lo stato di ogni canale richiesto a partire dalla posizione di memoria indicata da pStatusBuffer.

NOTA: Questo blocco funzione è destinato all'uso con moduli di I/O analogici e di temperatura. Per ottenere informazioni di stato per i moduli di I/O digitali, vedere TM3_GetModuleBusStatus.
NOTA: È possibile aggiornare il valore dei byte di diagnostica chiamando la funzione TM3_GetModuleInternalStatus solo se il parametro Status Enabled nella scheda Configurazione I/O è disattivato.

Rappresentazione grafica

Rappresentazione IL e ST

Per la rappresentazione generale in linguaggio IL o ST, fare riferimento al capitolo Rappresentazione di funzioni e blocchi funzione.

Descrizione delle variabili di I/O

Ogni canale di I/O analogico/di temperatura del modulo richiesto richiede un byte di memoria. Se la memoria allocata al buffer non è sufficiente per il numero di stati del canale del modulo di I/O richiesti, è possibile che la funzione sovrascriva la memoria allocata per altri scopi o tenti di sovrascrivere un'area di memoria limitata.

 AVVERTIMENTO
FUNZIONAMENTO ANOMALO DELL'APPARECCHIATURA
Accertarsi che pStatusBuffer punti a un'area di memoria allocata in modo sufficiente per il numero di canali da leggere.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.

La seguente tabella descrive le variabili di ingresso:

Ingresso

Tipo

Commento

ModuleIndex

BYTE

Indice del modulo di espansione (0 per il modulo più vicino al controller, 1 per il secondo più vicino e così via)

StatusOffset

BYTE

Offset del primo stato da leggere nella tabella degli stati.

StatusSize

BYTE

Numero di byte da leggere nella tabella degli stati.

pStatusBuffer

POINTER TO BYTE

Buffer contenente la tabella di stato di lettura (IBStatusIWx / IBStatusQWx).

Nella tabella seguente è descritta la variabile di uscita:

Uscita

Tipo

Commento

TM3_GetModuleInternalStatus

TM3_ERR_CODE

Restituisce TM3_NO_ERR (00 hex) se il comando è corretto, altrimenti restituisce il codice ID dell'errore rilevato. Ai fini di questo blocco funzione, qualsiasi valore restituito diverso da zero indica che il modulo non è compatibile con la richiesta di stato o che il modulo ha altri problemi di comunicazione.

Esempio

Gli esempi seguenti descrivono come ottenere lo stato interno del modulo:

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

Modulo TM3AQ2 (2 uscite)

Recupero dello stato della prima uscita QW0

  • StatusOffset = 0 (0 ingressi x 2)

  • StatusSize = 1 (1 stato da leggere)

  • pStatusBuffer deve essere almeno 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]

Modulo TM3AM6 (4 ingressi, 2 uscite)

Recupero dello stato degli ingressi IW1 e IW2 (IW0 è il primo)

  • StatusOffset = 1 (1 per saltare lo stato IW0)

  • StatusSize = 2 (2 stati da leggere)

  • pStatusBuffer deve essere di almeno 2 byte