■ 4. デバッグ手順
RTC C#開発ツール(Visual Studio)でプログラミングした際に下記の手順でRTC グローバルメモリ構造体(M_Area)を使用したデバッグを行ってください。
※ここではプログラムのデバッグ方法を説明します。RT-C言語コントローラのプログラミング方法は、RT-C言語コントローラユーザーズマニュアル(RTC_UsersManual.pdf)を参照してください。
4.1. C#側でRTC グローバルメモリ構造体(M_Area)のメンバを作成
RTC C#開発ツール(Visual Studio)にはRTC用のプロジェクトが用意されています。
このプロジェクトにはRTC
グローバルメモリ構造体(M_Area)も事前に用意されており、ユーザはこの構造体にデバッグ対象となるメンバを追加する事で、C#開発・デバッグツール(MULTIPROG)でデバッグが行えます。
構造体はRTC用のプロジェクトで用意されている下記の場所に宣言されています。
ファイル名:RTC_Program_Common.cs
構造体名:struct M_AREA
設定例
下記の設定例はプログラム内の変数とEtherCAT®スレーブのProcess Image情報をC 開発・デバッグツール(MULTIPROG)で読書を行う設定例です。
4.2. C#側でRTC
グローバルメモリ構造体(M_Area)のメンバにデータを書込・読込
RTC グローバルメモリ構造体に用意したメンバへデータの書込・読込を行います。
設定例
下記の設定例は、アナログ入力ユニットから読込んだデータを構造体メンバにセットします。
また、アナログ出力ユニットへ構造体メンバの値をセットしアナログ出力を行います。
- アナログ入力ユニットのデータはUINT型なのでWORD型データ読込APIのReadWord()を使用しています。
- アナログ出力ユニットのデータもUINT型なのでWORD型データ書込APIのWriteWord()を使用しています。
C#側で構造体メンバの登録とデータの読書設定が出来たら、コンパイルしてください。
4.3. C#開発・デバッグツール(MULTIPROG)でRTC グローバルメモリ構造体(M_Area)の作成
C#開発・デバッグツール(MULTIPROG)にはRTC用のテンプレートが用意されています。
このテンプレートにはRTC
グローバルメモリ構造体(M_Area)も事前に用意されており、ユーザはこの構造体にデバッグ対象となるメンバを追加する事で、C#開発・デバッグツール(MULTIPROG)でデバッグが行えます。
【注意】登録するメンバはC#で定義したデータ型や順番を合わせてください
設定例
下記の設定例はプログラム内の変数とEtherCAT®スレーブのProcess Image情報をC 開発・デバッグツール(MULTIPROG)で読書を行う設定例です。
※C#で定義したメンバ構成と合わせて作成します。
4.4. オンラインデバッグ設定
C 開発・デバッグツール(MULTIPROG)でメイクしRT-C言語コントローラへプログラムをダウンロードし実行後、オンラインでデバッグを行います。
オンラインデバッグ手順
C 開発・デバッグツール(MULTIPROG) )を使用して各種デバッグを行うことができます。
デバッグを行う際には、以下の手順を行ってデバッグをオン状態にする必要があります。
MULTIPROGプロジェクトを開き、[オンライン]メニューの[デバッグ]を選択します。
デバッグがオンになると以下のようにアイコン表示が変わります。
4.5. ウォッチウィンドウ機能
ウォッチウィンドウでは、ウォッチウィンドウに追加した変数の現在値をモニタすることができます。
また、配列や構造体などのユーザ定義 データ型の要素をデバッグするのに使います。
ウォッチウィンドウを表示するには、[表示] メニューの [ウォッチウィンドウ] を選択します。
RTC グローバルメモリ構造体(M_Area)変数をウォッチウィンドウに追加するには、まず デバッグ を オン 状態に設定します。
次にプロジェクトツリーウィンドウの[物理ハードウェア]の中にある[Global _Variables ]を ダブルクリック します。
RTC グローバルメモリ構造体変数[M_Area]を右クリックし、表示されたメニューより「ウォッチウィンドウへ 追加する」を選択します。
選択するとウォッチウィンドウ に変数が追加されます。
変数を展開すると構造体メンバの値をオンラインで読書が行えます。
データを書き換える場合は、値の項目をダブルクリックする事でデバッグ用ダイアログが表示されますので、書き換えたい値を書き込み「上書」ボタンで書き込む事が出来ます。
【注意】C#プログラムで構造体メンバに書込みを行っているメンバに対しての上書きは出来ません。
上書きしてもC#プログラム側から書き換えられてしまいます。
今回の設定例で書き換え可能な構造体メンバはアナログ出力ユニットにセットしているメンバのみです。
設定例の場合、ウォッチウィンドウで書き込んだ値はアナログ出力ユニットにセットから出力されます。
4.6. デバッグの終了
MULTIPROG[オンライン]メニューの[デバッグ]を再度選択するとオンラインデバッグが解除されます。
【注意】オンラインデバッグ中は、操作出来ないメニューも有るのでデバッグ終了後は必ずオンランデバッグを解除してください。