オペレーター:ADR
演算子は、IEC61131-3規格の拡張です。
ADR
引数の32ビットアドレス(または可能であれば64ビットアドレス)を生成します。このアドレスを製造元の関数に渡すか、プロジェクト内のポインターに割り当てることができます。
構文
VAR <address name> : DWORD | LWORD | POINTER TO < basis data type> | __XWORD ; END_VAR <address name> := ADR( <variable name> );
FUNCTION_BLOCK FB_Adress VAR piAddress1: POINTER TO INT; iVar1 : INT := 5; lwAddress2 : LWORD; iVar2 : INT := 10; xwAddress3 : _XWORD; iVar3 : INT; END_VAR piAddress1 := ADR(iVar1); // piNumber is assigned to address of iVar1 lwAddress2 := ADR(iVar2); // works for 64 bit run time system xwAddress3 := ADR(iVar3); // works for 32 bit and 64 bit systems
重要
と違う CoDeSys V2.3、あなたは使用することができます ADR
関数名、プログラム名、関数ブロック名、およびメソッド名を持つ演算子。したがって、 ADR
を置き換えます INDEXOF
オペレーター。
関数ポインタを使用する場合、関数ポインタを外部ライブラリに渡すことはできますが、内部から関数ポインタを呼び出すことはできないことに注意してください。 CODESYS。システムコール(ランタイムシステム)を有効にするには、それぞれのオブジェクトプロパティを設定する必要があります(建てる タブ)関数オブジェクト用。
注意
オンライン変更を使用すると、アドレスの内容が変わる可能性があります。結果として、 ポインタ
変数が無効なメモリ領域を指している可能性があります。問題を回避するには、ポインタの値がサイクルごとに更新されることを確認する必要があります。
注意
戻らない Pointer-TO
関数とメソッドの変数を呼び出し元に割り当てるか、グローバル変数に割り当てます。