Skip to main content

保持変数を使用してデータを取得する

保持変数は、ウォームスタート後もその値を保持します。ただし、値の保持の程度は、永続変数の方が高くなります。

NVRAMやUPSなどの耐用年数を延ばすには、コントローラに特別な不揮発性メモリ領域が必要です。このようなメモリに保持変数を保存する場合、追加の時間は必要ありません。これは、PersistenceManagerを使用したデータ保持よりも優れています。コントローラがハードウェアサポートを提供しない場合、データは通常ファイルに保存されます。コントローラを正しくシャットダウンすると、データが保持されます。ただし、停電や「プラグを抜く」とデータが失われます。

宣言

保持変数を宣言するには、変数宣言にキーワードを追加します RETAIN 追加した。

行動

. 価値の保持
  • コントローラーの再起動

  • 制御されない終了 (NvRAM などのハードウェア サポートでのみ利用可能)

  • コマンドを呼び出す ウォームリセット

. での再初期化
  • アプリケーションを再度ダウンロードします

  • コマンドを呼び出す コールドリセット (永続変数とは対照的に)

  • コマンドを呼び出す 原点をリセット

アプリケーションを再起動すると、その変数は通常、明示的に指定された初期値またはデフォルト値で初期化されます。キーワードでタグ付けされた変数 RETAIN マークは、ターゲットシステムに応じて別のメモリ領域で管理され、その値を保持します。たとえば、変数は電源障害から保護されています。そのため、製造施設のピースカウンターで保持変数を使用して、停電後もカウントを継続できます。

ファンクションブロックインスタンスを保持するメモリの場所

ファンクションブロックインスタンスは、メモリ内の1つのピースにあります。これは、同じコードが異なるインスタンスで機能できるようにするために必要です。今なら、関数ブロック内の変数は RETAIN マークを付けると、機能ブロックの各インスタンスがすべての変数とともに保存されます。また、このようにマークされていない機能ブロックの変数。ただし、不揮発性メモリはメインメモリと同程度には使用できません。

変数としてSRAM内のインスタンスへのポインタを持つ機能ブロックは、保護されたメモリに格納されません。

からのインポート CoDeSys V2.3-プロジェクト

あなたが CoDeSys V2.3-プロジェクトを開いて配置します CODESYS V3をインポートすると、保持変数の宣言は保持され、変更されずに有効になります。

詳細については、を参照してください。 RETAINV2.3プロジェクトを開く