Skip to main content

POU: CheckPointer

指针监控功能(CheckPointer)

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

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

小心

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

重要

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

重要

在编译器版本 3.5.7.40 及更高版本中, 检查指针 也影响 REFERENCE 变量与指针变量相同。

538. 模板

宣言:

//  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. Insert your code here.
CheckPointer := ptToTest;
. 调用该函数时,它接收以下输入参数:
  • ptToTest: 指针的目标地址

  • iSize: 引用变量的大小;的数据类型 iSize 必须兼容 INT 并覆盖变量的维度范围

  • iGran:参考尺寸的粒度;这是引用变量中包含的最大的非结构化数据类型;的数据类型 iGran 必须兼容 INT

  • bWrite:访问类型(TRUE = 写访问, FALSE = 读访问);的数据类型 bWrite 必须 BOOL

当检查结果为正时,返回不变的指针 (ptToTest)。