TM3_GetModuleInternalStatus : Obtenir l'état interne du module TM3

Description de la fonction

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.

NOTE : Ce bloc fonction est destiné à être utilisé avec des modules d'E/S analogiques et thermiques. Pour obtenir des informations d'état sur les modules d'E/S numériques, consultez TM3_GetModuleBusStatus.
NOTE : Il est possible de mettre à jour la valeur des octets de diagnostic en appelant la fonction TM3_GetModuleInternalStatus à condition que le paramètre Etat activé de l'onglet Configuration d'E/S soit désactivé.

Représentation graphique

Représentation en langage IL et ST

Pour voir la représentation générale en langage IL ou ST, consultez le chapitre Représentation des fonctions et blocs fonction.

Description des variables d'E/S

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
FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT
Assurez-vous que pStatusBuffer pointe vers une zone mémoire suffisante pour le nombre de voies à lire.
Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.

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

TM3_ERR_CODE

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.

Exemple

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