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_VARImplé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 deiSizedoit être compatible avecINTet 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 deiGrandoit être compatible avecINTbWrite: Type d'accès (TRUE= accès en écriture,FALSE= accès en lecture); le type de données debWritedoit êtreBOOL
Lorsque le résultat de la vérification est positif, le pointeur inchangé est retourné (ptToTest).