.
“CheckPointer”POU
.
.

指针的监视功能(Checkpointer)

使用此功能可以在运行时模式下监视指针的内存访问。  与其他监视函数不同,不存在用于实现CheckPointer的标准建议。您必须根据自己的要求定义实现。

函数应监视传递的指针是否引用了有效的内存地址CheckPointer所引用的内存区域的方向是否与指针所引用的变量类型匹配。如果两个条件都满足,则返回指针。否则,则该函数应完成适当的错误处理。

小心!

要获得用于监视功能的功能,请勿编辑声明部分。但是,您可以添加局部变量。

提示!

THIS指针和SUPER指针不会发生隐式监视功能调用。

提示!

对于编译器版本3.5.7.40和更高版本,隐式检查函数Checkpointer也以与指针变量相同的方式作用于REFERENCE变量。

.

.模型

.声明:


// Automatically generated code: DO NOT EDIT
FUNCTION CheckBounds : POINTER TO BYTE 
VAR_INPUT
    ptToTest : POINTER TO BYTE;
    iSize : DINT;
    iGran : DINT;
    bWrite: BOOL;
END_VAR
 

.实现:(incomplete)


// Not a standard implementation.Please add your own code here.
CheckPointer := ptToTest;
 

.调用该函数时,CODESYS提供以下输入参数:

  • ptToTest:  指针的目标地址
  • iSize:  引用变量的大小;iSize的数据类型必须与INT兼容并涵盖变量的维数范围。
  •  iGran: 参考大小的粒度;这是引用变量中包含的最大非结构化数据类型; iGran的数据类型必须与INTINT兼容
  • bWrite: 访问类型(TRUE=写访问,FALSE=读访问);bWrite的数据类型必须为BOOL

当检查结果为肯定时,返回未更改的指针(ptToTest)。