Cette fonction copie la table d'états du module ModuleIndex dans pStatusBuffer.
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 plus proche du contrôleur, 1 pour le suivant, et ainsi de suite) |
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'états lus. |
Le tableau suivant décrit la variable de sortie :
Sortie |
Type |
Commentaire |
---|---|---|
TM3_GetModuleInternalStatus |
Renvoie TM3_NO_ERR (00 hex) si la commande est correcte, sinon renvoie le code d'identification de l'erreur. Dans le cadre de ce bloc fonction, toute valeur renvoyée différente de zéro indique que le module n'est pas compatible avec la requête d'état ou qu'il rencontre d'autres problèmes de communication. |
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 9
We read 2 consecutive channels
TM3_GetModuleInternalStatus(1, 9, 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 = 9 (4 entrées x 2 + 1 pour ignorer l'état IW0)
StatusSize = 2 (2 états à lire)
pStatusBuffer doit être d'au moins 2 octets