ブレークポイントの使用
ブレークポイントは通常、プログラムのデバッグに使用されます。 CODESYS すべてのIECエディタでブレークポイントをサポートします。
プログラムの特定の位置にブレークポイントを設定して、実行を強制的に停止し、変数値を監視することができます。特定の変数の値が変更されたときにプログラムの実行を停止するために、特別な「データブレークポイント」を設定できます。
ブレークポイントまたはデータブレークポイントでの停止は、追加の条件の対象となる可能性があります。ブレークポイントとデータブレークポイントを、プログラムが停止せずに特定のコードを実行する「実行ポイント」として再定義することもできます。
ヒント
景色 ブレークポイント 定義されたすべてのブレークポイントの概要を示します。複数のブレークポイントを一度に変更するための追加のコマンドを提供します。
エディターでは、ブレークポイントと実行ポイントのステータスが次のアイコンでマークされます。
:ブレークポイントが有効になっています。
:ブレークポイントは無効です。
:ブレークポイントは、エディターで現在開いているブロックの別のインスタンスに設定されます。
:プログラムはブレークポイントで停止します。
:条件付きブレークポイントが有効になっています。
:条件付きブレークポイントは無効です。
:実行ポイントがアクティブになります。
:実行ポイントは無効になっています。
:条件付き実行ポイントが有効になります。
:条件付き実行ポイントは無効になっています。
:データブレークポイントが有効になっています。
:データブレークポイントは無効になっています。
:プログラムはデータブレークポイントで停止します。
:データ実行ポイントが有効になります。
:データ実行ポイントが無効になります。
:プログラムはデータ実行ポイントで停止します。
:条件付きデータ実行ポイントが有効になります。
:条件付きデータブレークポイントが有効になります。
詳細については、以下を参照してください。 ブレークポイント
データブレークポイント
ヒント
データブレークポイントの機能は、ターゲットシステムによって異なります。現在、データブレークポイントは CODESYS Control Win 可能。
データブレークポイントは、特定の変数またはメモリアドレスの値が変更されると、プログラムの実行を停止します。 「通常の」ブレークポイントと同様に、停止を追加の条件にリンクしたり、停止の代わりに特定のコードを処理したりできます(データ実行ポイントへの変換)。
コマンドでデータブレークポイントを設定します 新しいデータブレークポイント メニューから デバッグ、またはビューで ブレークポイント ボタン経由 新しい。その際、修飾変数名を指定するか、値の変更を監視するメモリアドレスを直接指定します。
次のサンプルコードでは、Variableのメモリスペース iNumber
意図せずに上書きされました。変数にデータブレークポイントがある iNumber
ただし、値が変わると通知されます。次に、配列アクセスで対応するメッセージが表示されて処理が停止し、変数値が上書きされます。 Idx
= 7
。
以下も参照してください:「データブレークポイントの設定」
PROGRAM PLC_PRG VAR Idx : INT; Ary : ARRAY[0..3] OF BYTE; iNumber : INT := 55; END_VAR FOR idx := 0 TO 6 DO Ary[idx] := 0; END_FOR
マルチタスクアプリケーションのブレークポイント
基本的に、同時に複数のタスクでデバッグすることはできません。ブレークポイントまたはステップスルーのあるタスクで作業している限り、他のタスクのブレークポイントは無視されます。
ブレークポイントが設定されているブロックが複数のタスクで使用されている場合、最初にブレークポイントに到達したタスク(「デバッグタスク」)のみが停止されます。他のすべてのタスクは引き続き実行されます。対話中 コールスタック 現在中断されているタスクを確認します。
特定のタスクのみがブレークポイントの影響を受けるようにする場合は、ブレークポイントのプロパティでこれを指定できます。
ブレークポイントはアプリケーションごとに個別に機能するため、「BPでのブレーク」は他のアプリケーションに影響を与えません。これは、複数のアプリケーションで使用され、コードがPLCに1回だけ存在するブロックにブレークポイントが設定されている場合でも、親/子アプリケーションにも当てはまります。
重要
「デバッグタスク」によって提供されるI / Oは、オプションを選択した場合でも、ブレークポイントでの停止時に更新されません。 停止中のI / Oの更新 PLC設定で有効になります。
ヒント
PLC上のアプリケーションがブレークポイントにある場合、オンラインで変更またはダウンロードすると、すべてのタスクが停止します。つまり、PLCが停止します。この場合は CODESYS 対応するメッセージが表示され、ログインを続行するかどうかを決定できます。
単純なブレークポイントの設定(STエディターの例)
要件:アプリケーションはオンラインで実行されています。動作モードは デバッグ。
メモ帳でST言語のPOUを開きます。
ブレークポイントを設定する行にカーソルを置きます。
コマンドを選択します F9。
またはボタンを押します線は赤でマークされ、アイコンが付いています
(ブレークポイントがアクティブ化)マークされています。プログラムがブレークポイントにあるとき、アイコンのある行
(ブレークポイントで停止)マーク。プログラムの処理が停止します。これはステータスバーに表示され、ステータスは赤で強調表示されます
HALT AUF BP
信号。コマンドを選択します F5。
またはボタンを押しますプログラムは続行されます。
より多くのブレークポイントを設定し、ブレークポイントで変数の値を確認します。
ブレークポイントを削除する行にカーソルを置きます。
コマンドを選択します F9。
またはボタンを押しますマークが消えます。ブレークポイントが削除されます。
ブレークポイント条件の定義(STエディターの例)
メモ帳でST言語のPOUを開きます。
ブレークポイントを設定する行にカーソルを置きます。
コマンドを選択します
。ダイアログが開きます 新しいブレークポイント。
タブを選択します 調子。
セクションで選択 ヒット数 オプション ヒット数がの倍数になったときに停止します。
右側のフィールドに値5を入力します。
さらに、ブレークポイントをアクティブにする必要がある場合のブール条件を定義します。これを行うには、オプションをアクティブにします trueの場合は停止。右側のフィールドにブール変数を入力します。
オプションを有効にする ブレークポイントをすぐに有効にする。
ダイアログを閉じます。
線は赤でマークされ、アイコンが付いています
マークされた。
次に、実行中のプログラムを監視します。条件のブール変数である限り FALSE
、ブレークポイントの条件が満たされていないため、プログラムが実行されます。変数をに設定した場合 TRUE
設定すると、条件が満たされ、プログラムは5回の実行ごとにこのブレークポイントで停止します。
実行ポイントの指定(STエディターの例)
メモ帳でST言語のPOUを開きます。
実行ポイントを設定する行にカーソルを置きます。
コマンドを選択します
。ダイアログが開きます 新しいブレークポイント。
タブを選択します 実行ポイントの設定。
オプションを有効にする 実行ポイント。
ボックスに入力します 次のコードを実行します 次のステートメントを入力します。
iCounter := iCounter + 1;
ボックスに入力します デバイスログにメッセージを出力します 次のテキストを入力します。
Ausführungspunkt erreicht {iCounter}
ダイアログを閉じます。
プログラムが実行ポイントに到達すると、プログラムは停止せず、代わりに上記で定義されたコードを実行します。デバイスログにもメッセージが出力されます。
データブレークポイントを設定する
要件:アプリケーションはオンラインで実行されています。
コマンドを選択します
。コマンドを選択します
。ダイアログをクリックします 新しいブレークポイント タブ内 データ ボタンに
。
ダイアログで選択 入力ヘルプ タブ内 変数を監視する 値がプログラムを変更する変数は停止する必要があります。
または、タブに入力します データ 変数の修飾名を入力行に直接入力します。例:
PLC_PRG.iNumber
。監視する正確なバイト数は呼び出されます サイズ 指定。ここでは、データ型に対応する値が自動的に指定されますが、監視するバイト数を減らすこともできます。ビューで選択 ブレークポイント データブレークポイントのある行をクリックしてボタンをクリックします
。
線はマークされ、アイコンが付いています
(データブレークポイントが有効)。プログラムがデータブレークポイントに到達すると、つまり選択した変数の値が変化すると、プログラムの実行が停止します。ブロックの実装部分では、次の行が矢印でマークされています
マークされた。これはステータスバーに表示され、ステータスは赤で強調表示されます
HALT AUF BP
信号。コマンドを選択します F5。
またはボタンを押しますプログラムは実行を継続し、変数の値が再び変更されると再び停止します。