指针监控函数(Checkpointer)
使用该函数可监控运行模式下指针的内存访问。与其他监测功能相比,CheckPointer
。您必须根据自己的要求确定实施方案。
CheckPointer
函数应检查返回的指针是否引用了有效的内存地址;监控引用内存范围的方向是否与指针引用的变量类型相匹配。如果两个条件都满足,则返回指针。否则,函数应完成适当的错误处理。




小心

要获得监控功能,请勿编辑声明部分。不过,您可以添加本地变量。




注意

THIS 指针和 SUPER 指针不会发生隐式监控函数调用。




注意

在 3.5.7.40 及更高版本的编译器中,隐式检查函数“Checkpointer” 也以与指针变量相同的方式作用于REFERENCE
变量。
模型
声明
// 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
实施:(不完整)
// Not a standard implementation. Please add your own code here. CheckPointer := ptToTest;
调用该函数时,CODESYS 会提供以下输入参数:
-
ptToTest
:指针的目标地址 -
iSize
:引用变量的大小;iSize
的数据类型必须与INT
兼容,并涵盖变量的维度范围。 -
iGran
:引用大小的粒度;这是引用变量中包含的最大非结构化数据类型;iGran
的数据类型必须与INT
-
bWrite
:访问类型(TRUE
= 写访问,FALSE
= 读访问);bWrite
的数据类型必须是BOOL
如果检查结果为正,则返回不变指针 (ptToTest
)。