変数:PERSISTENT
永続変数は宣言セクションで宣言されます VAR_GLOBAL RETAIN PERSISTENT 永続グローバル変数リスト内。でマークされている変数の場合 PERSISTENT 永続性エディターの外部のキーワードでは、インスタンスパスがそこに追加されます。
ヒント
現在 CODESYS V3.3.0.1、変数宣言 PERSISTENT RETAIN と同じ効果があります RETAIN PERSISTENT また PERSISTENT。
グローバル永続変数リストの宣言の構文 PersistentVars
VAR_GLOBAL PERSISTENT RETAIN
    <identifier> : <data type> (:= <initialization>)?;
 <instance path to POU variable>
END_VARPOUでの宣言の構文
<scope> PERSISTENT RETAIN
    <identifier> : <data type> ( := <initialization> )?; // ( ... )? : Optional
END_VAR
<scope> : VAR | VAR_INPUT | VAR_OUTPUT | VAR_IN_OUT | VAR_STAT | VAR_GLOBAL入力、出力、またはメモリアドレスの割り当て AT キーワードは許可されていません。
ヒント
絶対に使用しないでください POINTER TO 永続変数リストのデータ型。アプリケーションを再度ダウンロードすると、アドレスが変わる可能性があります。対応するコンパイラの警告がメッセージウィンドウに表示されます。
ヒント
残留変数の名前またはデータ型を頻繁に変更する場合は、それらを保持変数として宣言することをお勧めします。 RETAIN キーワードのみ。
重要
この場合、2倍のメモリが使用され、サイクルタイムが長くなる可能性があるため、インスタンスパスの挿入は避けてください。代わりに、永続変数のリストで変数を宣言してください。
の宣言 PersistentVars 永続変数リスト
{attribute 'qualified_only'}
VAR_GLOBAL PERSISTENT RETAIN
        g_iCounter : INT;
        // Generated instance path of persistent variable
        PLC_PRG.fb_A.iPersistentCounter_A: INT;
END_VARの宣言 FB_A ファンクションブロック
FUNCTION_BLOCK FB_A
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR PERSISTENT
        iPersistentCounter_A : INT;
END_VARの宣言 PLC_PRG プログラム
VAR
        fb_A1 : FB_A;
END_VAR| 可能な宣言場所 | 説明 | 
|---|---|
| 永続グローバル変数リストに直接 | 変数は永続的であり、保護されたメモリ領域にあります。 | 
| 永続変数リストにインスタンスパスがあるプログラムでローカルに 永続変数リストにインスタンスパスがある関数ブロックでローカルに | 変数は永続的であり、保護されたメモリ領域とメモリに配置されます(二重割り当て)。 | 
| プログラム内でのみローカル 機能ブロック内でのみローカル | 変数は永続的ではありません。メッセージウィンドウに警告が表示されます。 ヒントクリック 変数を永続変数リストにインポートします。 | 
| 関数内でローカルに | この種の宣言は効果がありません。変数は永続的ではありません。 | 
ヒント
永続性エディターで、をクリックします  ローカル変数がとしてマークされている場合 PERSISTENT。
ヒント
可能な限り、変数を次のようにマークすることは避けてください PERSISTENT これらは機能ブロックで宣言されています。これは、関数ブロックインスタンスが、マークされた変数だけでなく、完全に残留メモリに格納されているためです。