POU:CheckPointer
ポインタ監視機能(CheckPointer)
この関数を使用して、ランタイムモードでポインタのメモリアクセスを監視します。他とは対照的に 監視機能、の実装のための標準的な提案は存在しません CheckPointer
。独自の要件に従って実装を定義する必要があります。
The 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. Insert your code here. CheckPointer := ptToTest;
ptToTest
:ポインタのターゲットアドレスiSize
:参照される変数のサイズ。のデータ型iSize
と互換性がある必要がありますINT
変数の次元スコープをカバーしますiGran
:参照サイズの粒度。これは、参照される変数に含まれる最大の非構造化データ型です。のデータ型iGran
と互換性がある必要がありますINT
bWrite
:アクセスタイプ(TRUE
=書き込みアクセス、FALSE
=読み取りアクセス);のデータ型bWrite
である必要がありますBOOL
チェックの結果が正の場合、変更されていないポインタが返されます(ptToTest
)。