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.
Per la rappresentazione generale in linguaggio IL o ST, fare riferimento al capitolo Rappresentazione di funzioni e blocchi funzione.
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 | |
---|---|
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 |
Restituisce |
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