POU: CheckPointer
Fonction de surveillance des pointeurs (CheckPointer)
Utilisez cette fonction pour surveiller l'accès mémoire des pointeurs en mode d'exécution. Contrairement à d'autres fonctions de surveillance, il n'existe pas de suggestion standard pour l'implémentation de CheckPointer
. Vous devez définir une implémentation en fonction de vos propres besoins.
le CheckPointer
La fonction doit vérifier si le pointeur passé référence ou non une adresse mémoire valide, et si l'orientation de la zone mémoire référencée correspond ou non au type de variable auquel le pointeur se réfère. Si les deux conditions sont remplies, le pointeur est renvoyé. Si ce n'est pas le cas, la fonction doit effectuer une gestion d'erreur appropriée.
Attention
Pour obtenir la fonctionnalité de surveillance des fonctions, ne modifiez pas la partie déclaration. Cependant, vous êtes autorisé à ajouter des variables locales.
Important
Aucun appel de fonction de surveillance implicite ne se produit pour THIS
pointeur et SUPER
pointeur.
Important
Dans la version 3.5.7.40 et supérieure du compilateur, le CheckPointer affecte également REFERENCE
variables identiques aux variables de pointeur.
Déclaration:
// Automatically generated code: DO NOT EDIT FUNCTION CheckPointer : POINTER TO BYTE VAR_INPUT ptToTest : POINTER TO BYTE; iSize : DINT; iGran : DINT; bWrite: BOOL; END_VAR
Implémentation : (incomplète)
// Not a standard implementation. Insert your code here. CheckPointer := ptToTest;
ptToTest
: Adresse cible du pointeuriSize
: Taille de la variable référencée ; le type de données deiSize
doit être compatible avecINT
et couvrir la portée dimensionnelle des variablesiGran
: Granularité de la taille référencée ; il s'agit du plus grand type de données non structurées contenu dans les variables référencées ; le type de données deiGran
doit être compatible avecINT
bWrite
: Type d'accès (TRUE
= accès en écriture,FALSE
= accès en lecture); le type de données debWrite
doit êtreBOOL
Lorsque le résultat de la vérification est positif, le pointeur inchangé est retourné (ptToTest
).