POU: CheckPointer
Función de supervisión para punteros (CheckPointer)
Utilice esta función para monitorear el acceso a la memoria de los punteros en el modo de tiempo de ejecución. A diferencia de otros funciones de vigilancia, no existe una sugerencia estándar para la implementación de CheckPointer. Debe definir una implementación de acuerdo con sus propios requisitos.
los CheckPointer La función debe verificar si el puntero pasado hace referencia o no a una dirección de memoria válida, y si la orientación del área de memoria a la que se hace referencia coincide o no con el tipo de variable al que se refiere el puntero. Si se cumplen ambas condiciones, se devuelve el puntero. De lo contrario, la función debería completar un manejo de errores apropiado.
Atención
Para obtener la función de supervisión de funciones, no edite la parte de la declaración. Sin embargo, se le permite agregar variables locales.
Importante
No se produce una llamada a la función de supervisión implícita para THIS puntero y SUPER puntero.
Importante
En la versión del compilador 3.5.7.40 y superior, el Puntero de control también afecta REFERENCE variables lo mismo que las variables de puntero.
Declaración:
// Automatically generated code: DO NOT EDIT
FUNCTION CheckPointer : POINTER TO BYTE
VAR_INPUT
ptToTest : POINTER TO BYTE;
iSize : DINT;
iGran : DINT;
bWrite: BOOL;
END_VARImplementación: (incompleta)
// Not a standard implementation. Insert your code here. CheckPointer := ptToTest;
ptToTest: dirección de destino del punteroiSize: Tamaño de la variable referenciada; el tipo de datos deiSizedebe ser compatible conINTy cubrir el alcance dimensional de las variablesiGran: Granularidad del tamaño referenciado; este es el tipo de datos no estructurados más grande contenido en las variables referenciadas; el tipo de datos deiGrandebe ser compatible conINTbWrite: Tipo de acceso (TRUE= acceso de escritura,FALSE= acceso de lectura); el tipo de datos debWritetiene que serBOOL
Cuando el resultado de la verificación es positivo, se devuelve el puntero sin cambios (ptToTest).