langEnglish
ホーム > RT-C言語コントローラ > 技術情報 > RTC グローバルメモリを使用したデバッグ方法

RT-C言語コントローラ技術情報
RTC グローバルメモリを使用したデバッグ方法

■ 1. 概要
RT-C言語コントローラは、RTC C#開発ツール(Visual Studio)を使用してデバッグ実行などの機能が使用出来ません。
代替となるデバッグ機能として用意されているRT-C言語コントローラユーザーズマニュアル(RTC_UsersManual.pdf)に記載されているRTC グローバルメモリ構造体(M_Area)を通してRTC 開発・デバッグツール(MULTIPROG)でC#プログラム内の変数やEtherCATスレーブのデータの読書を行うデバッグ方法をご説明します。
概要
■ 2. システム構成図
説明で使用するシステム構成は下記のようにRT-C言語コントローラにEtherCAT®スレーブの4chアナログ入力ユニット(ECEA402)と4chアナログ出力ユニット(ECEA042)を使用した例で説明します。
システム構成図
  
■ 3. EtherCAT®スレーブを使用する場合に事前に必要な情報
EtherCAT®スレーブを使用した場合に必要な情報として、RSI-ECAT-Studio (EtherCAT®コンフィグレータソフトウェア)の情報が必要となります。
ENIファイル(EtherCAT Network Information)を作成した時に生成されるProcess Image情報が必要となります。
Process Image情報
■ 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
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#で定義したデータ型や順番を合わせてください
デバッグツール_1
設定例
下記の設定例はプログラム内の変数とEtherCAT®スレーブのProcess Image情報をC 開発・デバッグツール(MULTIPROG)で読書を行う設定例です。
※C#で定義したメンバ構成と合わせて作成します。
デバッグツール_2

 4.4. オンラインデバッグ設定

C 開発・デバッグツール(MULTIPROG)でメイクしRT-C言語コントローラへプログラムをダウンロードし実行後、オンラインでデバッグを行います。
オンラインデバッグ手順
C 開発・デバッグツール(MULTIPROG) )を使用して各種デバッグを行うことができます。
デバッグを行う際には、以下の手順を行ってデバッグをオン状態にする必要があります。

MULTIPROGプロジェクトを開き、[オンライン]メニューの[デバッグ]を選択します。
デバッグ手順_1
デバッグがオンになると以下のようにアイコン表示が変わります。
デバッグ手順_2

 4.5. ウォッチウィンドウ機能

ウォッチウィンドウでは、ウォッチウィンドウに追加した変数の現在値をモニタすることができます。
また、配列や構造体などのユーザ定義 データ型の要素をデバッグするのに使います。
ウォッチウィンドウを表示するには、[表示] メニューの [ウォッチウィンドウ] を選択します。
ウォッチウィンドウ_1
RTC グローバルメモリ構造体(M_Area)変数をウォッチウィンドウに追加するには、まず デバッグ を オン 状態に設定します。
次にプロジェクトツリーウィンドウの[物理ハードウェア]の中にある[Global _Variables ]を ダブルクリック します。
ウォッチウィンドウ_2
RTC グローバルメモリ構造体変数[M_Area]を右クリックし、表示されたメニューより「ウォッチウィンドウへ 追加する」を選択します。
ウォッチウィンドウ_3
選択するとウォッチウィンドウ に変数が追加されます。
ウォッチウィンドウ_4
変数を展開すると構造体メンバの値をオンラインで読書が行えます。
データを書き換える場合は、値の項目をダブルクリックする事でデバッグ用ダイアログが表示されますので、書き換えたい値を書き込み「上書」ボタンで書き込む事が出来ます。
【注意】C#プログラムで構造体メンバに書込みを行っているメンバに対しての上書きは出来ません。
上書きしてもC#プログラム側から書き換えられてしまいます。
今回の設定例で書き換え可能な構造体メンバはアナログ出力ユニットにセットしているメンバのみです。
設定例の場合、ウォッチウィンドウで書き込んだ値はアナログ出力ユニットにセットから出力されます。
ウォッチウィンドウ_5

 4.6. デバッグの終了

MULTIPROG[オンライン]メニューの[デバッグ]を再度選択するとオンラインデバッグが解除されます。
【注意】オンラインデバッグ中は、操作出来ないメニューも有るのでデバッグ終了後は必ずオンランデバッグを解除してください。
デバッグの終了