Skip to main content

変数の強制と書き込み

注意

コントローラ上で実行されているアプリケーションで変数値が異常に変化すると、制御対象システムの望ましくない動作が発生する可能性があります。

変数値を強制する前に潜在的な危険性を評価し、適切なセキュリティ対策を講じてください。制御するシステムによっては、システムやワークピースに損傷を与えたり、人の健康や生命を危険にさらしたりする可能性があります。

あなたができる CODESYS オンラインモードでコントローラーの変数の値を変更します。以前に準備された値を強制することと書き込むことは区別されます。

コマンドで書き込みを行います 値を書き込むctrl + F7 変数を1回準備された値に設定します。したがって、値はいつでもプログラムによって上書きされる可能性があります。

強制はコマンドで行われます 力の値F7 準備された値を永続的に設定します。詳細については、以下を参照してください。

強制または書き込み用の値の準備は、いくつかの場所で可能です。

  • 宣言部分:フィールド 準備された価値

  • FBD / KOP / STLエディターの実装部分:インライン監視フィールド

  • 監視ウィンドウ:フィールド 準備された価値

これを行う方法については、以下を参照してください。すでに強制されている変数の新しい値を準備する場合は、このためのダイアログが開きます 価値を準備する 現在の力の値を処理するためのオプションがあります。

強制の仕組み

準備された値は、タスクサイクル(または他のタスクタイプの場合は処理ループ)の開始時と終了時に関連する変数に設定されます。

タスクの各サイクルの処理シーケンスは次のとおりです。

  1. 入力の読み取り

  2. 強制:最初のプログラム呼び出しの前に、準備されたすべての値は、タスクで使用されているかどうかに関係なく、ランタイムシステムによって変数に書き込まれます。

  3. IECコードの処理

  4. 強制:最後のプログラム呼び出しの後、タスクで使用されているかどうかに関係なく、準備されたすべての値がランタイムシステムによって変数に書き込まれます。

  5. 出力の書き込み

注意:IECコードが割り当てを行っているため、強制変数がサイクルのコード処理中に一時的に異なる値を取得する可能性があります。その後、変数はサイクルの最後にのみ強制値を受け取ります。変数値は、クライアントがアプリケーションのシンボルに書き込むときに、サイクルの途中で上書きすることもできます。この場合、オプションを参照してください IECタスクに同期した可変アクセス の中に プロパティ デバイスオブジェクトの、または設定 IECタスクとの同期を構成する シンボル構成で。これにより、クライアントによる書き込みアクセスと、PLCHandlerでサポートされているタスクサイクルとの同期が可能になります。

重要

強制値は記号でマークされています _cds_icon_forced_variable.png マークされた。 CODESYS 次のいずれかのアクションを通じて、ユーザーによって明示的に強制が解除されるまで強制を実行します。

  • コマンドの実行 すべての値を強制解除します

  • ダイアログによる力のキャンセル 価値を準備する

  • アプリケーションからログアウトします

    ログアウト時に強制変数がまだ存在する場合は、すべての変数の強制をキャンセルするかどうかを尋ねるダイアログが開きます。これを使用する場合 いいえ 答え、次にログインしたときに強制値が再度適用されます。

宣言部分の強制

要件:アプリケーションに宣言付きのブロックが含まれています。アプリケーションはオンラインモードです。

  1. コマンドを使用してエディターでブロックを開きます プロジェクト→オブジェクトの編集

  2. エディターの宣言部分で、列(1)をダブルクリックします。 準備された価値 変数。

    フィールドが編集可能になり、値を入力できます。ブール変数の場合は、フィールドをクリックして値を変更します。

    _cds_img_force_values_1.png
  3. その他の変数については、手順2を実行してください。

  4. コマンドを選択します デバッグ→値を強制する

    変数の値は、準備された値で上書きされます。値は記号付きです _cds_icon_forced_variable.png マークされた。

    _cds_img_force_values_2.png

ヒント

ビューで変数の値を表示することもできます モニター

実装部分での強制

要件:アプリケーションはオンラインモードです。

  1. コマンドを使用してエディターでブロックを開きます プロジェクト→オブジェクトの編集

  2. エディターの実装部分で、インライン監視フィールド(1)をダブルクリックします。

    ダイアログが開きます 値を準備する

  3. ボックスに入力します 次の書き込みまたは強制操作のために新しい値を準備します 新しい値を入力します。

    準備した値がインラインモニタリングフィールドに表示されます。

    _cds_img_force_values_3.png
  4. コマンドを選択します デバッグ→値を強制する

    変数の値は、準備された値で上書きされます。値は記号付きです _cds_icon_forced_variable.png マークされた。

    _cds_img_force_values_4.png

リスト内のすべての強制変数を表示および編集します

要件:アプリケーションはオンラインモードです。いくつかの変数が強制状態になっています。

  1. コマンドを選択 表示→監視→すべての力を表示

    景色 すべての力を表示 が表示されます。これには、現在強制されているアプリケーションのすべての変数がモニターリストの形式で含まれています。

  2. リスト内のすべての行を選択し、ビューの左上にある選択リストから選択します 強制解除→選択したすべての値を強制解除して保持します

    変数は強制されておらず、強制される前の値が与えられています。

CFCに機能ブロック入力を強制する

要件:CFCプログラムブロックを備えたアプリケーションは、機能ブロックを含み、オフラインモードになっています。

重要

このタイプの強制は、内部でデータブレークポイントを使用し、命令による強制とは異なります。 力の値 また。 F7 区別するために!

コマンドに関する値 FB入力を強制する コマンドに応答しないように強制された すべての力を表示 また すべての値を強制解除します

  1. ツリー内のオブジェクトをダブルクリックして、CFCプログラムブロックのエディタを開きます。

  2. ターゲットデバイス上のアプリケーションでログインします。

  3. コンパイラバージョン3.5.11.xまたは3.5.12.xを使用している場合:目的の機能ブロックに対して「強制可能性」をアクティブにします。これを行うには、CFCでブロック要素を選択し、コマンドを選択します CFC→強制用のブロック要素を準備する

  4. CFCで、機能ブロックの入力を選択し、コンテキストメニューでコマンドを選択します FB入力を強制する

    対話 力の値 が表示されます。

  5. 入力に新しい値を設定します。 1つの場合の例 TON-ブロック: FALSE ブール入力の場合 IN、 また t#4s 入り口用 PT (時間)。で確認する わかった

    設定値はすぐに強制されます。ブロック要素には左上に緑色の円が表示され、要素内の入力の名前は緑色で強調表示されます。ブール値の場合、値を指定した小さな監視ウィンドウも入力に表示されます。宣言部分などの監視ビューでは、強制値が列に表示されます 価値

  6. 強制値を削除するには、コマンドをもう一度選択してください FB入力を強制する。対話中 力の値 ここでオプションを選択します 値を削除

    強制は撤回されます。入力は再びコントローラーから現在の値を受け取ります。

詳細については、以下を参照してください。 力の値値を書き込む