1-1 | 適合するコンピュータ |
RSI-ECAT-Masterは、コンピュータの搭載するオンボードEthernetポートまたは、拡張Ethernetカードをインターフェースとして使用することが特長のソフトウェア製品です。 適合するEthernetコントローラは、下記、適合表の内、系ネットワークになります。
|
1-2 | 適合するスレーブ機器 |
スレーブ機器メーカー各社様のご協力により、弊社にてRSI-ECATとの組み合わせで動作の確認がとれているEtherCAT®スレーブ機器については以下のページにてご紹介いたしております。
|
1-3 | Beckhoff社製コンフィグレータ |
現在サポートされておりません。 RSI-ECAT-Masterは、弊社で取り扱うRSI-ECAT-Studioのみをコンフィガレータとしてサポートしています。 |
1-5 | スレーブ処理に時間がかかることで、サイクリック周期が破綻することはありますか? |
市販のEterhCATスレーブが原因でサイクリック周期が破綻することはなく、またそのような事例の報告もありません。EterhCATスレーブ機器は商品化にあたり認定試験が設けられており、品質は極めて安定しています。 サイクリック周期が破綻する要因として、考えられることは、マスター側の処理がサイクル周期内に完了しない場合です。 このような状況になる原因しましては、接続スレーブ数が多くなる、接続しているスレーブのプロセスイメージが大きい、ユーザーアプリケーション内のスレッドによる影響などが考えられます。 (詳細は 5-1-1 サイクリック周期以内に、サイクリック時の処理が終わらない場合 を参照ください) |
1-6 | スレーブをソフトで開発することはできませんか? | |||||||||
EtherCAT®スレーブには必ずESCチップが必要になります。ソフトウェアではEtherCAT®のオンザフライ通信を処理できないためです。 PCをEtherCAT®スレーブとして使用する場合、ESCチップを搭載したPCIボードを使用します。以下PCIボードは、メーカーからINtime®用ドライバが提供されていますのでINtime® SDKお持ちであれば、すぐにスレーブアプリケーションを開発できます。詳細は弊社営業までご連絡ください。
|
2-1 | RSI-ECAT-Masterは、周期的に処理を行いますが、どのような処理を行っているのでしょうか ? |
RSI-ECAT-Master タイミングチャートにおいて、説明しております。ご参照ください。 |
2-2 | DC(Distributed Clock)は使用できますか ? |
DCが利用可能なエディション RSI-ECAT-Master/DC または RSI-ECAT-Master/RED にて使用可能です。 RSI-ECAT-Master では使用できません。 |
2-3 | DC(Distributed Clock)とFree runを混在して使用できますか ? |
はい、使用可能です。 DCを使う為に、DCが利用可能なエディション RSI-ECAT-Master/DC または RSI-ECAT-Master/RED が必要になります。 |
2-6 | プロセスデータ内の項目数やデータサイズ、オフセット情報は、どこで確認できますか? |
EtherCAT®バス内の各スレーブデータは、1つのプロセスデータとしてやりとりされます。 RSI-ECAT-Master では、この1つのプロセスデータを入力用と出力用に分け、管理しています。 RSI-ECAT-Master では、プロセスデータと同等のメモリ空間として、VIOSメモリ空間を用意しており、入力用は、VIOS-INメモリ空間、出力用はVIOS-OUTメモリ空間にアクセスする事でやりとり可能です。 プロセスデータ内の項目数、データサイズ、データオフセット情報は、コンフィグレーション段階の RSI-ECAT-Studio にて、Process Image タブをクリックする事で確認する事が可能です。 その他、ENIファイル内の ProcessImage タグ内を見るか、RSI-ECAT-Master 3.0 以降に付属する ENI Viewerツールを使用する事で確認できます。 RSI-ECAT-Studio の Process Image タブや、ENIファイル内の ProcessImage タグ内のデータサイズ、データオフセット情報は、ビット(bit)単位で表記されている事に注意してください。 RSI-ECAT-Studio の Process Image タブ情報 例: ![]() ENIファイル内の ProcessImage タグ情報 例: ![]() |
2-7 | 断線時には再送信処理は行いますか?(ホットコネクト機能は無しのとき) |
EtherCAT®通信に再送の概念はなく、EtherCAT®マスターは断線の有無に関わらず、マスター周期ごとにパケット送信が繰り返されます。 |
2-8 | スレーブ単位での断線検知はできますか? |
アプリケーションは断線をイベントで検知できます。アプリケーションは各スレーブのレジスタ読み取りを試行し、エラーになることをもって、断線位置を特定することもできます。 |
2-9 | 断線時のスレーブステートはどうなりますか? |
スレーブからすれば、断線は時間内にパケットが流れてこなかった認識になります。(ウォッチドッグタイムアウト) このときSafe-Operationalに移行するのがEtherCAT®スレーブの実装ガイドラインとしてあるようですが、実際には、各スレーブメーカの事情により必ずしもSafe-Operationalに移行するとは限りません。 |
2-10 | RSI-ECAT-Masterのサイクル周期以外の設定は、どのように設定しますか? | ||||||||||
RSI-ECAT-Studio にて、各所設定した後、ENIファイルへエクスポートし、規定の位置へ配置してください。 そのうえで、ドライバ起動パラメータとして、"-cycle=eni" をご指定ください。 "-cycle=eni"を指定することで、以下の内容がENIファイルから設定を利用します。
|
2-11 | RSI-ECAT-Masterのサイクル周期等のデフォルト値はいくつですか? | ||||||||||
各項目のデフォルト値は以下の通りです。
|
4-1 | EhWaitForCyclic()で知らされるサイクリック処理開始とは、どんなタイミングでしょうか ? |
RSI-ECAT-Master タイミングチャートで示されるサイクリック開始通知のタイミングになります。 |
4-2 | EhWaitForCyclic()の応答後、出力情報を書き込んだ場合、この情報はいつ出力されますか ? |
プライオリティに左右されます。 プライオリティ 81 (※1)よりも高いプライオリティのスレッド(数値的には80以下(※2))が、EhWaitForCyclic()で待機していた場合は、次のサイクリック処理開始前に出力されます。(※3) プライオリティ 81 (※1)よりも低いプライオリティのスレッド(数値的には81以上(※2))が、EhWaitForCyclic()で待機していた場合は、次の、そのまた次のサイクリック処理開始前に出力されます。 ※1 ecatmkpa.ini ファイルの BaseTaskPriority 値を 80 から変更された場合は、変更した値 + 1 になります。 ※2 プライオリティは、小さい数値ほど高プライオリティ(優先度が高い)となり、大きい数値ほど低いプライオリティ(優先度が低い)となります。 ※3 他の高プライオリティスレッドが長期間動作していない事が前提です。
|
5-1 | ステートチェンジが行えません。 |
ステートチェンジが行えない場合、いくつかの要因が考えられます。 |
5-1-1 | サイクリック周期以内に、サイクリック時の処理が終わらない場合 |
サイクリック周期よりもサイクリック時の処理時間の方が長い為に、EtherCAT®通信が成り立たない場合に発生します。 サイクリック周期 ≦ サイクリック時の処理時間 = EtherCAT®通信は成り立たない サイクリック周期は、デフォルト値としてINtime® カーネルティック値と同じになります。 EhGetSystemInfo()をコールすることで、動作中のサイクリック周期(μ秒単位)を得ることが可能です。 サイクリック時の処理時間は、INtime®ツールに含まれる INscope を使用することで、確認することが可能です。 RSI-ECAT-Masterは、RtEcHdr.RTA というプロセスとして動作しております。 INscope でトレースした例 : ![]() サイクリック時の処理時間は、CPUの処理能力に大きく影響します。 Core™ i3 や i5, i7 CPUでは、1サイクリック処理にかかる時間が、約100μs 程度で処理できますが、Atom® CPUでは、約600μs ほど必要とします。 また、INtime®の共有モード、専有モードによっても変化します。
|
5-1-2 | ENIファイル内のスレーブ構成と、実際に接続しているスレーブ構成が違う場合 |
ENIファイルに構成されているスレーブ構成、接続順と、 実際に使用しているスレーブ構成、接続順が違う場合に発生します。 (※ エイリアス配置設定がされているENIファイルの場合、接続順は無視されます。) |
5-1-3 | ステートチェンジの指令と、確認方法が誤っている場合 |
ステートチェンジには EhRqState() を使用しますが、EhRqState()は、ステートチェンジ要求を出した後、即応答を返します。 要求後、直ぐにステートチェンジが完了するわけではございません。 EhRqState()を発行後に、EhGetState()にてステートチェンジが完了したかどうかを確認する必要があります。 WORD woResult; WORD woReqState, woReqState; woResult = EhRqState(hAPI, MST_OPERATIONAL); if( woResult != 0 ) { printf("EhRqState() failed. status=%04xH\n", woResult); return; // error } while(1) { woReqState = 0; woReqState = 0; woResult = EhGetState(hAPI, &woReqState, &woNowState); if( woResult != 0 ) { printf("EhGetState() failed. status=%04xH\n", woResult); return; // error } if( woNowState == MST_OPERATIONAL ) { break; // ステートチェンジ完了 } RtSleep(500); // 通信処理するためにもRtSleep等で制御を返す必要があります } |
5-1-4 | ENI作成時に Download to slave にチェックが入っている場合 |
スレーブのESIによってはデフォルトで、PDOアサイン情報/PDOコンフィグ情報の書き込みにチェックが入っていても許可していないスレーブがあります。 このようなスレーブの場合、PDOアサイン情報/PDOコンフィグ情報の書き込みに対してエラーになるため、Pre-Operational から Safe-Operational に遷移しなかったり、Safe-Operational から Operational に遷移しない現象として現れます。 対処方法 RSI-ECAT-Studio から、Download to slave のチェック状態を確認します。 1) RSI-ECAT-Studio 起動後、スレーブを検出してください。 2) 左ツリーウィンドウより、設定を確認したいスレーブをクリック後、右ウィンドウから FMMU/SM タブをクリックしてください。 3) Download to slave グループにある、PDO assignment と PDO configuration にチェックが入っている場合は、チェックを外してください。 ![]() 4) ENIファイル(RtEcHdr.XML)としてエクスポートして、これを使用してください。 |
5-2 | DCを使用すると、時刻戻ったり進んだりしてしまいます。 |
DCによる時刻同期がマスターにも適用されていることが原因です。 RSI-ECAT-Studioでは、DCのリファレンスクロックをデフォルト値として最初に見つかったDCスレーブを設定します。 ![]() リファレンスクロックとして指定されたスレーブの時刻を全てのスレーブとマスターに、時刻を反映させます。 そのため、マスターが使用している時刻を調整されることから、時刻が戻ったり進んだりする現象として現われます。 マスターの時刻を調整されたくない場合には、リファレンスクロックの指定をマスターに設定します。 ![]() ※ リファレンスクロックをマスターにすることで、マスターの時刻を全スレーブへ通知することになります。 マスターとして使用しているPCのAPICタイマー応答性能次第では、DCの性能を十分に発揮できない可能性があります。 INtime® Graphical Jitter Display ツールにて、PCのAPICタイマー応答性能を確認することができます。 応答性能の揺らぎが大きい場合には、時刻を優先させるか、DCを優先させるかの選択が必要になります。 これらの設定は、ENIに反映されますので、ENIを出力し、このENIを使用するようにしてください。 |
5-3 | Digital Output をオブジェクトディクショナリ経由で書き込みましたが、値が反映されず出力されません。 |
PDOにマッピングされているオブジェクトディクショナリの項目は、値が書き込めないようスレーブからエラーが返却されるか、値が反映される前にプロセスイメージで上書きされてしまいます。 オブジェクトディクショナリ経由で書き込みたい場合には、PDOのマッピングを解除する必要があります。 PDOのマッピングを解除するには、RSI-ECAT-Studio 上からスレーブが持つ FMMU/SM 項目にて設定します。 ※ スレーブによっては必ずPDOにマッピングする必要がある項目については、FMMU/SM から変更できない場合もあります。 |
5-4 | EhReadOD, EhWriteOD, EhReadODByAlias, EhWriteODByAlias, で、ステータス 0x0049 : ER_EHAPI_LENGTH が返却されます。 |
RSI-ECAT-Master 2.7 までの仕様上、オブジェクトディクショナリへの最大データ長は、63バイトまでとなります。 64バイト以上のデータ長を持つオブジェクトディクショナリの項目を読み書きする場合には、RSI-ECAT-Master 2.8 以降をお使いください。 RSI-ECAT-Master 2.8 からは、255バイトまで拡張されております。 |
5-5 | サイクリック破綻通知のコンソール表示を行わない方法はありませんか? |
RSI-ECAT-Master 2.6 以降であれば、RSI-ECAT-Master
(RtEcHdr.rta)の起動パラメータとして、"-console=hide"を指定することでサイクリック破綻通知のコンソール表示を行わなくなります。![]() RSI-ECAT-Master 2.6 未満の場合は、EH APIの EhSetOverrunCheck にて、woNoticeMode = 0 をセットすることでサイクリック破綻通知のコンソール表示を行わなくなります。 このEH API設定は、2.6以降も使用可能です。 |
5-6 | 5-6. RSI-ECAT-Studio 使用中に、No license... と表示されます。 |
RSI-ECAT-Studio にて、Attach Master後、ライセンスが無い旨のメッセージが表示されますが、これは KPA EtherCAT Master for Windows
ライセンスが無い為に表示されています。![]() RSI-ECAT-Studio は、EtherCAT®通信にWindowsネットワークを用いますが、その際の EtherCAT Master として KPA EtherCAT Master for Windows を介して行います。 KPA EtherCAT Master for Windows を用いて開発、提供する場合には別途ライセンスが必要となりますが、コンフィグレーションのみの場合は免除されており、デモライセンスモードとして動作するようになっており、その旨を通知するメッセージとなっております。 その為、そのままご使用いただいて問題ございません。 |
5-7 | 5-7. DC機能で動作中、出力タイミングが不安定になる場合がありますが、これは何が影響していますか? 例1: デジタル出力において、出力される波形が不安定になる 例2: アナログ出力において、 同じ値が出力される時がある 例3: モーション制御において、異音がする |
スレーブ側のDCイベント発生タイミングに、ばらつきが生じている可能性があります。コンフィグレーションにて、次の設定項目を調整し、動作を確認してください。 RSI-ECAT-Studio において、 左ツリーウィンドウから Master 1 選択 > 右ウィンドウから、Distributed Clocks タブを選択します。
![]() |
5-8 | 5-8. インストール途中で Unable to access the "Firewall" service. ... と表示されます。 |
RSI-ECAT-Studio インストール途中で、次のようなメッセージが表示される場合があります。![]() 本メッセージは、RSI-ECAT-Studio インストーラーが、Windowsファイアウォールへのアクセスに失敗した場合に表示されます。 Windowsファイアウォールへのアクセスが必要な理由として、RSI-ECAT-Studio インストーラーに含まれる Licensing Utilities が様々なライセンス認証方式をサポートしており、その内の1つに、ネットワーク認証方式があるためです。 RSI-ECAT-Studio のライセンス認証方法はUSBドングルキーのみとしておりますので、ネットワーク認証方式は使用しない事から本エラーは問題となりません。OKボタンを押してインストールを続行してください。 |
5-9 | 5-9. RSI-ECAT-Studio が起動しません。 |
RSI-ECAT-Studio は、.NET Framework 2.0 を必要とします。.NET Framework 2.0 をインストールしてください。 |
6-1 | RSI-ECAT-Masterについて |
6-1-1 | EhWaitForCyclic で待機中にEhCloseを実行しても、EhWaitForCyclicから応答が返りません。 |
EhWaitForCyclic で待機中にEhCloseを実行されると、応答が返らなくなる現象を確認しております。 回避方法としまして、EhWaitForCyclic のタイムアウト値を短くするか、EhWaitForCyclic でブロックしているスレッドを削除してください。 |
6-1-2 | 下位バージョンでビルドしたRTAを、上位バージョン実行すると、ページ違反例外が発生します。 |
RSI-ECAT-Master 2.4 よりバージョンが低い環境において、EH
APIを使用し、ビルドされたものをビルド環境よりもバージョンの高い環境で動作させた場合に、ページ違反例外として終了してしまう問題を確認しております。 これは、EH API に含まれる SLAVE_DETAIL 構造体が、2.3以下、2.31、2.32、2.4 でそれぞれサイズが異なる為に起こっております。 SLAVE_DETAIL 構造体を利用する EH API は、次の通りです。
回避方法 : これらの EH API に渡す SLAVE_DETAIL 構造体を、以下に定義した新しい構造体に変更し、stDetails を使用します。 // 新しい構造体 : union chReserved[256] によりバッファを増設しています。 #pragma pack(push, 1) typedef struct { union { SLAVE_DETAIL stDetails; char chReserved[256]; }; } SLAVE_DETAIL_FIX; #pragma pack(pop) SLAVE_DETAIL_FIX stSlave; stSlave.stDetails.dwSize = sizeof(SLAVE_DETAIL); stSlave.stDetails.woAlias = 33; EhFindSlaveByAlias( ehApi, &stSlave.stDetails ); |
6-1-3 | イベントビューワに Set media status というログが記録されます。 |
EhOpenをコールするたびに、イベントビューワのINtime®カテゴリへ、Set media status というイベントログが記録されることを確認しております。 これは、ネットワークドライバに対して全二重(フルデュプレックス)の設定を行おうとしておりますが、INtime® 4とINtime® 5で設定方法が異なるため、警告として記録されるものです。 このログが記録されても全二重(フルデュプレックス)の設定は行われるので動作的には問題ありませんが、イベントログとして記録されてしまいます。 RSI-ECAT 2.4以降をお使いの場合 : 次のファイル削除してください。 1. (Program Files)\Micronet\RSI-ECAT\bin\hpeif2.rsl 2. (Program Files)\Micronet\RSI-ECAT\bin\hpeif2.org 削除後、INtime®カーネルを再起動してください。 RSI-ECAT 2.4以前(2.0~2.32)をお使いの場合 : 本問題を解消する方法はなく、RSI-ECAT 2.4以降へアップグレードしてください。 |
6-1-4 | INtime® 6上で実行できません |
INtime® 6上にインストールした場合、RSI-ECATを正しくロードすることができません。これは、RSI-ECATの参照するライブラリパスが INtime® Configuration
上に設定されない問題のためです。RSL検索パスリストにRSI-ECATのインストールパスを追加してください:![]() |
6-1-5 | INtime® 6上で実行するとページ違反例外が発生します |
INtime® 6のワークスペースでアプリケーションをビルドすると、EhGetEhNodeStatusの実行時にページ違反例外が出力されます。原因は、RSI-ECATのライブラリが、INtime®
6にて採用されたXM Modeに対応していないためです。
|
6-1-6 | Intel® i219 の使用について |
Intel® i219LM や Intel® i219V 等、i219
と名称が付いているものを使用した際に、サイクル周期処理に要する時間が延びたり、ホットコネクト再接続時において通信が復旧しない問題が確認されております。 i219 にのみ本現象が発生する事から、i219 のエラッタやデバイスの特性について調べておりますが、未だ原因は断定できておりません。i219 シリーズのネットワークデバイスを使用しないようにしてください。 |
6-2 | RSI-ECAT-Studioについて |
6-2-1 | RSI-ECAT-Studioをインストールしても、ファイルがインストールされません。 |
RSI-ECAT-Studio v1.10.172.0 において、UAC機能がON状態("通知しない"以外)に設定されていると、ファイルのインストールがブロックされてしまいます。 UAC機能をOFFにした後、再度インストールを試みて下さい。 UAC機能をOFFにするには、 コントロールパネル → ユーザーアカウントと家族のための安全設定 → ユーザーアカウント → ユーザーアカウント制御設定の変更 を開き、バーを一番下の"通知しない"側に設定後、OKを押します。 その後Windowsの再起動が求められた場合は、Windowsを再起動してください。 |
6-2-2 | ジャンクションスレーブに接続されているスレーブを正しく検出できません。 |
ジャンクションスレーブの先に接続されているスレーブが、接続されている順に検出されないことを確認しております。 自動検出後、ドラッグ&ドロップにて、実際に接続されている位置と同じ位置にスレーブが存在するようツリーウィンドウを操作してください。 また、Process Imageタブからメモリ構成方法を Create PI by tree view に変更してください。
|
6-2-3 | RSI-ECAT-StudioでNetwork cardが認識されません |
Windowsのデバイスマネージャで有効となっているNICがRSI-ECAT-StudioのNetwork cardリスト(以下参照)に表示されず、選択できないことがございます。![]() RSI-ECAT-Studioのインストールに付随する「WinPcap」がインストールされる際、Network cardのリストが生成されます。 以下のようなNICはNetwork cardのリストと一致せず、Studioに認識されません。
上記理由により使用できないNICは、以下の手順で「WinPcap」を再インストールすることで、リストが再度生成されStudioで使用可能となります。 1. Windowsデバイスマネージャより、該当NICが有効となっていることを確認します。 2. 「コントロールパネル」より「プログラムの追加と削除」を開きます。 3. 「WinPcap X.X.X」をアンインストールします。 4. 以下のサイトの「Download」リンクよりWinpcapをダウンロードします。 https://www.winpcap.org/default.htm 5. ダウンロードした WinPcap_X_X_X.exe を実行し、指示に従いインストールします。 |
6-2-4 | モジュラーデバイス(MDP スレーブ)のPDO生成ができません |
バージョン1.12.102の[Module]タブから、MDP moduleの構成を行うことができません。これは1.12.102における[Modules]機能の問題で、後のバージョンにて修正予定となっています。 |
6-2-5 | KPA EtherCAT Master Runtime for Win32 Trial (MRT_WIN32_TRIAL_v....msi) のインストールに失敗します。 |
Microsoft Windows 10 において、KPA EtherCAT Master Runtime for Win32 Trial に含まれる WinPcap 4.1.3 が、 Microsoft Windows 10 非対応の為、インストールに失敗します。 ![]() 以下の方法を用いてインストールを行ってください。 1. インストールに失敗した、KPA EtherCAT Master Runtime for Win32 Trial をアンインストールします。 2. WinPcap 4.1.3 のインストーラーを次のURLより入手します。 ![]() 3. WinPcap 4.1.3 インストーラーEXEのプロパティを開き、"互換性"タブを開きます。 4. "互換モードでこのプログラムを実行する:" にチェックを入れます。 5. OSの選択を、"Windows 7"にします。 ![]() 6. "設定"の"管理者としてこのプログラムを実行する"にチェックを入れます。 7. OKボタンを押して設定を保存します。 8. WinPcap 4.1.3 インストーラーEXEを起動して、WinPcap 4.1.3 をインストールします。 9. KPA EtherCAT Master Runtime for Win32 Trial をインストールします。 10. Windows を再起動します。 ※ Studio 起動後、Network選択項目が空白の場合は、Studio の再起動を試みてください。 |
8-1 | ホットコネクトとは? |
ホットコネクト機能の利用には以下二つの利点が考えられます:
ホットコネクト機能で、接続される各スレーブに対するID(ステーションエイリアス)を設定することで、スレーブの接続数や接続順にかかわりなく稼働状態とすることができます。 ホットコネクト機能により、複雑バス構成、アクセス方法を設定(ENI)で吸収しアプリケーション処理を単純化することができます。 。 ![]() |
8-2 | ホットコネクト機能とDC機能の併用について |
ホットコネクト機能とDC機能を併用し、様々なスレーブ接続構成に適応したDC処理を行うことが可能です。しかし、接続されたスレーブをEtherCAT®バスから切断することで、スレーブ間で受け渡されるメッセージの通信時間は動的に変化し、結果としてDC同期が外れることになります。
現在RSI-ECAT Master/REDではEtherCAT®バス状態が動的に変更された状況においてDC機能を再設定できません。
切断、再接続時にEtherCAT®バスを初期化する必要があります。
|
9-1 | DCとは? |
DC(Distributed Clock)機能は、高精度時刻同期機能であり、フレームと同期してスレーブタスクを開始したり、
他のスレーブと同期して入力をラッチ、同時出力を行う、等の動作が可能になります。 DC機能には大きく分けて3つのモードがあります。
|
9-2 | DCはどんな時に使用しますか? |
常に最新値を取得したい場合や、他のスレーブと同期して動作したい場合に利用します。 例えば、A/D値の取得において、EtherCAT®のサイクル周期に応じた最新値を取得したい場合に、DC機能のSM同期モードを利用します。 その他、モーション制御において、X軸、Y軸、Z軸、それぞれ別モーション制御スレーブだった場合に、これらのスレーブと同期して補間動作を行う場合には、DC同期モードを利用します。 DC機能を利用しない場合で、DC機能を保有するスレーブの場合は、DC機能を使用しないフリーランモードを設定します。 |