Cette fonction lit sélectivement l'état des voies d'E/S d'un module TM3 analogique ou de température, indiqué par ModuleIndex. Le bloc fonction écrit l'état de chaque voie demandée en commençant à l'emplacement mémoire indiqué par pStatusBuffer.
Pour voir la représentation générale en langage IL ou ST, consultez le chapitre Représentation des fonctions et blocs fonction.
Chaque voie d'E/S analogique/thermique du module demandé requiert un octet de mémoire. Si la mémoire allouée au tampon n'est pas suffisante pour le nombre d'états de voie de module d'E/S demandé, il est possible que la fonction écrase la mémoire allouée à d'autres fins ou essaie d'écraser une zone de mémoire à usage restreint.
AVERTISSEMENT | |
---|---|
Le tableau suivant décrit les variables d'entrée :
Entrée |
Type |
Commentaire |
---|---|---|
ModuleIndex |
BYTE |
Index du module d'extension (0 pour le module le plus proche du contrôleur, 1 pour le second plus proche, etc.) |
StatusOffset |
BYTE |
Décalage du premier état à lire dans la table d'états. |
StatusSize |
BYTE |
Nombre d'octets à lire dans la table d'états. |
pStatusBuffer |
POINTER TO BYTE |
Mémoire tampon contenant la table d'état de lecture (IBStatusIWx / IBStatusQWx). |
Le tableau suivant décrit la variable de sortie :
Sortie |
Type |
Commentaire |
---|---|---|
TM3_GetModuleInternalStatus |
Renvoie |
Les exemples suivants décrivent comment obtenir l'état interne du module :
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
Module TM3AQ2 (2 sorties)
Obtention de l'état de la première sortie QW0
StatusOffset = 0 (0 entrée x 2)
StatusSize = 1 (1 état à lire)
pStatusBuffer doit être d'au moins 1 octet
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]
Module TM3AM6 (4 entrées, 2 sorties)
Obtention de l'état des entrées IW1 et IW2 (IW0 étant la première)
StatusOffset = 1 (1 pour occulter l'état IW0)
StatusSize = 2 (2 états à lire)
pStatusBuffer doit être d'au moins 2 octets