Texas Instruments 技術情報

新しいSitaraシリーズ AMIC110でEtherCATスレーブを動かしてみる

[最終更新日 : 2017/07/28]


はじめに

こんにちは、TAZです。

このところ、"インダストリー4.0"は産業機器業界では注目を集めており、よく耳にすることがあると思います。インダストリー4.0は「第4の産業革命」を意味しており、製造業のデジタル化によって製造業における生産性の向上や市場投入にかかる期間の短縮などを目的とする技術革新を指しています。

インダストリー4.0の中には産業ネットワーク技術が含まれています。産業ネットワーク技術には現在さまざまなプロトコルが策定されていますが、その中でも代表的なプロトコルである"EtherCAT"はすでに多くの日本企業で導入が始まっています。

このような世の中の潮流をうけ、Texas Instruments(以降、TI)社は2017年6月7日に新Sitaraシリーズ"AMIC110"を発表しました。

日本TI、マルチプロトコル対応 産業用Ethernet通信の コスト削減に役立つ、新型SoC製品を発表

このAMIC110は、実装するソフトウェアを変更することにより、EtherCATをはじめとする10種類以上のプロトコルをサポートすることが可能なマルチプロトコル対応のSoCです。このSoC向けのソフトウェアは順次リリースされていますが、本記事ではTI社から新しくリリースされた"Processor-SDK-RTOS"および、EtherCATスレーブ向けのソフトウェアである"PRU-ICSS-ETHERCAT-SLAVE"を実際に動作させてみましたので、その手順について解説します。

AMIC110について

手順に入る前に、まずは新しくリリースされたAMIC110について簡単に紹介します。AMIC110はTI社からリリースしているEtherCATのプロトコルをサポート可能なデバイスの中で、現時点で最も安価なデバイスです。

AMIC110は既存のSitaraシリーズであるAM335xに搭載されている機能のうち、グラフィック・アクセラレータやLCDコントローラなどの一部の機能を削減することで価格を抑えた製品です。また、AMIC110はAM335xとピン、パッケージの互換性がありますので、300MHzのAMIC110でパフォーマンス不足であれば1GHzのAM335xにアップグレードする、といった使い分けをすることもできます。

次に、AMIC110の評価ボードとしてはTMDXICE110-BTAがリリースされています。この評価ボードにて、TI社ではConformance Testing Toolを使用したEtherCAT スレーブ適合試験に合格しています。

TMDXICE110-BTA

また、ソフトウェアはPROCESSOR-SDK-RTOS-AM335X(AM335xとAMIC110のProcessor SDKは現時点で共通)を基盤として、その上位の階層に各産業ネットワークのプロトコルが構成されます。EtherCATも例外ではなく、同じようにProcessor SDKの上位の階層にPRU-ICSS-ETHERCAT-SLAVEを使用してEtherCATスレーブの動作を実現します。

EtherCATスレーブの動作手順

それでは実際にAMIC110でEtherCATスレーブを動作させてみましょう。まずは必要なハードウェアとソフトウェアの準備と、そのあとに手順について説明していきます。

ハードウェアとソフトウェアの準備

使用するハードウェアは、以下のものです。

必要となるソフトウェアは以下のものです。いずれも無償で利用することができます。

構成としては下図のようになります。

EtherCATスレーブ装置構成

AMIC110のプロジェクトを作成する

本記事では、PRU-ICSS-ETHERCAT-SLAVE(version 1.00.03)を使用します。まずはこれをインストールしましょう。インストールしたら、環境の確認が必要になります。以下のフォルダに用意されているUser Guideの1ページ目に推奨の環境が記載されています。

  • ファイル名:PRU_ICSS_EtherCAT_User_Guide.pdf
  • ファイルの場所:C:\ti\PRU-ICSS-EtherCAT_Slave_01.00.03.01\docs

このドキュメントに記載されている通り、今回はTMDXICE110-BTACode Composer Studio(以降、CCS)のversion 7.0.0、PROCESSOR-SDK-RTOS-AM335Xのversion 03.03.00.04を使用します。

次に、上記の環境に合わせて、以下のパスにあるバッチファイルをテキストエディタで開き、中身を編集します。この中でワークスペースの場所を指定する項目(CCS_WORKSPACE_LOC)があります。この指定先は任意ですが、後ほど利用しますのでメモなどをして覚えて置きましょう。この編集ができたら、バッチファイルを保存してください。

  • ファイル名:projectCreate.bat
  • ファイルの場所:C:\ti\PRU-ICSS-EtherCAT_Slave_01.00.03.01\protocols\ethercat_slave\projects

projectCreate.bat

その後、コマンドプロンプトを開き、そこで、以下のようにコマンドを実行してください。

> cd C:\ti\PRU-ICSS-EtherCAT_Slave_01.00.03.01\protocols\ethercat_slave\projects
> projectCreate.bat AMIC11x arm ethercat_slave_demo

“Done!”が表示されれば成功です。完了まではすこし時間がかかるかもしれません。

コマンドプロンプト

CCS上のセットアップ

先ほど作成したプロジェクトを実際に動かしてみましょう。まずはCCSを起動させて、先ほどのワークスペースの場所を指定して、OKをクリックします。

CCSワークスペース

CCSが立ち上がると、”ethercat_slave_demo_AMIC11x_arm”というプロジェクトがあると思います。そのプロジェクトを選択し、”Active”となったのを確認したら、Buildボタンをクリックして、ビルドします。

CCSビルド

次に、ターゲット・コンフィグレーション・ファイルを作成します。 CCS上で、File --> New --> Target Configuration Fileと選択します。

Target Configuration View

すると、ターゲット・コンフィグレーション・ファイルが画面に開かれます。ターゲット・コンフィグレーション・ファイルの名前は適当で構いませんが、今回は”AMIC110.ccxml”としました。このターゲット・コンフィグレーション・ファイルを下図のように設定してください。使用するJTAGエミュレータは任意ですが、今回はTMDSEMU200-Uを使用したので”XDS2xx USB”を選択しています。設定が完了したら、Saveをクリックして完了です。

Target Configuration File

先ほど作成したプロジェクトを実際にAMIC110にロードしてみましょう。CCS上から、View --> Target Configurationを選択するとTarget Configuration Windowが出てきます。そこで、先ほど作成したターゲット・コンフィグレーション・ファイルを右クリックし、”Launch Selected Configuration”をクリックします。

Launch Selected Configuration

“Launch Selected Configuration”をクリックするとCCSの画面がデバッグモードに切り替わります。切り替わったら、Debugウインドウにある“Texas Instruments XDS2xx USB Debug Probe_0/CortexA8”を右クリックして、Connectを選択します。

CCS接続

次に、Run --> Load --> Load Programから、先ほどBuildしたout ファイルをロードします。

CCSロード

ロードが完了すると以下のような画面になり、プログラム・カウンタがmain関数の先頭で止まっています。

CCS mainで停止中

EtherCATスレーブの動作確認

まず、TwinCATのセットアップをします。TwinCATはBECHOFF社のホームページからダウンロードすることができます。インストールしたら起動し、TwinCAT上で、File --> New --> Projectを選択すると、以下のような画面になります。プロジェクト名は任意ですが、今回はデフォルトの名前のままOKをクリックします。

TwinCAT 新規プロジェクト作成

次のステップに行く前に、CCSのResumeボタンをクリックしてプログラムを実行させておきます。

CCS Resume

次に、TwinCAT Project --> I/O --> Devicesを右クリックし、Scanをクリックします。その後、boxをスキャンするか聞かれますので、”はい”をクリックします。

TwinCAT Scan

スキャンが成功すれば、以下のように、緑のLEDが点滅し始めます。Activate Free Runと聞かれますので、”はい”をクリックします。

TMDXICE110 LED点灯

ここからは、実際に通信できているか、Debugにて確認していきます。 TwinCAT上で、TwinCAT Project --> I/O --> Device --> Device2をダブルクリックして、Onlineタブを選びます。ここでは通信フレーム数などを確認することができます。まずは、通信ができているかを確認しましょう。

TwinCAT Frames

次に、CCS上で、Suspendボタンをクリックし、tiescappl.cの88行目にブレイクポイントをはり、もう一度、Runしてみましょう。ここで、View --> Expressions上で、”LED”と入力します。このとき、”LED”という変数は”0”となっていることがわかります。

CCS ブレイクポイント

次に、TwinCAT上で、TwinCAT Project --> I/O --> Devices --> Device2 --> Box1 --> RxPDO --> 32Bit Outputをダブルクリックし、Onlineタブをクリックします。その後、Writeボタンをクリックし、“5”という値を入力して、OKをクリックします。

TwinCAT フレーム送信

それではLED変数がどのような値になっているか確認してみましょう。先ほどのtiescappl.cの88行目にブレイクポイントを設定した状態で実行させてみると、LEDに”5”という値が入っており、無事通信できていることが確認できます。

CCS 実行結果

おわりに

本記事ではTI社が提供する新しいSitara シリーズ AMIC110を用いたEtherCATスレーブのサンプルプログラムを動作させる方法に関して説明しました。今回はEtherCATマスターからEtherCATスレーブのLEDを制御していますが、これをモーター制御に変更することもできますし、EtherCATスレーブを複数台接続することもできますので、より高度なアプリケーションに応用することができるはずです。

本製品に関するより詳細な情報をお求めの方は弊社の問い合わせフォームからお問い合わせください。

お問い合わせはこちら

関連情報はこちら


※本記事に記載されている会社名、製品名、ネットワーク名称は、それぞれ各社の商標または登録商標です。

取り扱いメーカー

お問い合わせ