マルツTOP > APPLICATION LAB TOPページ おすすめ技術記事アーカイブス > 産業用オートメーションの通信と処理にSitaraの専門サブシステムを活用

産業用オートメーションの通信と処理にSitaraの専門サブシステムを活用

著者 Stephen Evanczuk 氏
Digi-Keyの北米担当編集者 提供
2019-11-21
マルツ掲載日:2020-02-17


 産業用オートメーションシステムで信頼性の高い通信を実現しようとすると、開発者たちはこの分野ならではの課題に直面します。こうしたシステムは、産業環境内で使用される多様なサブシステムと信頼性の高いリアルタイム接続を維持するために、複数の通信プロトコルを必要とするのです。

 このような環境において、従来の汎用プロセッサでは、アプリケーションソフトウェアを実行した時のリアルタイム通信という要件を確実に満たせないことがあります。そのため、産業用アプリケーションの多様な要求に対し、簡単に対応できるような開発プラットフォームが必要です。

 この記事では、そのまますぐに使えるTexas Instrumentsの開発キットを使用して、産業用通信ソリューションの開発を迅速化する方法を紹介します。このキットの中心であるTexas InstrumentsのSitaraプロセッサには、産業用アプリケーションで必要とされる計算リソースと専用通信機能が搭載されています。

産業用通信の要件

 高度な製造戦略において不可欠な要素である産業用通信システムには、あらゆるセンサ、モータ、アクチュエータ、プログラマブルロジックコントローラ(PLC)とヒューマンマシンインターフェース(HMI)との接続におけるリアルタイムなレスポンスと信頼性が求められており、その要求はますます厳しくなっています。

 産業用アプリケーションは、このように多様なサブシステムの集まりであることに加え、場合によっては性能要件や、専門機器、レガシーシステムも抱えているため、複数のネットワーク技術やプロトコルをサポートする必要に迫られることもあります。

 その結果、1つの環境で複数のフィールドバスプロトコル(Control Area Network(CAN)、Modbus、Profibusなど)や産業用Ethernetプロトコル(Profinet、EtherCAT、Sercos IIIなど)をサポートしなければならない可能性があります。

 フィールドバス規格と同様に、産業用Ethernetの各規格も、特定の要件に対応するために登場したものです。どの規格も、従来のEthernetにはありませんが産業用通信では必須となる、ある種のリアルタイム性能を提供します。このリアルタイム性能の実現方法は、それぞれの産業用Ethernet規格で大きく異なります。

 たとえばProfinetでは、マスタコントローラはネットワーク上の全デバイスと通信できます。スレーブデバイスはこれに続いて、マスタコントローラとフレームをやりとりすることができます。しかしスレーブデバイスは、他のデバイスとは非周期的な通信しかできません。

 通信の際、従来のリアルタイムではないデータ交換の場合は、標準的なTCP/IP(伝送制御プロトコル/インターネットプロトコル)チャンネルを提供します。リアルタイムなデータ交換の場合は、Profinetのリアルタイムチャンネルで、マスタコントローラとスレーブの間の周期的および非周期的データ交換をサポートします(図1、左)。

図1:産業用EthernetのProfinet(左)とEtherCAT(右)のスタックは異なりますが、従来のEthernetなど、同じサービスも提供できます。しかし、上層のプロトコルや下層の媒体アクセス制御(MAC)とデータリンク層(DLL)サービスにおけるリアルタイム通信サポートのアプローチは大きく異なります。(画像提供:Texas Instruments)

 EtherCATでは、マスタがスレーブと通信する場合、ノードからノードへと伝送されるフレームに、各スレーブに対するコマンドとデータを入れます。各スレーブノードは、フレームが通過するときに、自分宛てのコマンドとデータを読み取り、自分のデータを続けてそのフレームに付加します。EtherCATもProfinetと同様に、Ethernet互換の通信には従来のTCP/IPチャンネルを使用しますが、スピードが求められる通信にはリアルタイムチャンネルを使用します(図1、右)。

 産業用Ethernet規格は、それぞれが大きく異なるメカニズムを採用しています。しかし、従来のEthernetにはないけれども、産業用通信では必須となる、ある種のリアルタイム性能を提供できるという点は共通しています。ところが、これらの規格を実装しようとすると、一般的な設計方法による性能の限界と、アプリケーションのリアルタイム性能要件との間で、板挟みになるかもしれません。

 リアルタイムアプリケーションでは、コマンドや入力など何らかの刺激があった後、低いレイテンシで一定の時間内に応答する必要があります。産業用システムで使用される周期ベースのプロセスでは、レイテンシの低い仕組みによって、各周期の開始になるべく近いタイミングで処理が行われるようにします。また、これらのシステムが持つジッタ(揺らぎ)などの要素は、周期に予測不可能な変動をもたらし、信頼性と一貫性をもって高速周期のプロセスを処理することが困難になる可能性があります。

 以前は、産業用通信に付随するリアルタイム性の問題に対処するため、ハードウェアソリューションを自分たちで設計しなければなりませんでした。しかし、汎用計算処理用のソフトウェアやハードウェアにおいて重視されているのは、アプリケーション実行の全体パフォーマンスの最適化であり、リアルタイム性能要件への対応ではありません。このことが、多くのアプローチを難しくしています。

 ソフトウェアレベルで見ると、産業用アプリケーションの開発者が必要としているのは、低レイテンシの確定的な応答能力であり、一般的にはリアルタイムなLinuxや、より厳密なレベルで言うとリアルタイムオペレーティングシステム(RTOS)が備えている能力です。レイテンシや確定的な性能は、根本的には下層にあるハードウェアプラットフォームで使用されているプロセッサに依存します。

 Arm Cortex-Aコアのような汎用プロセッサは、あらゆるアプリケーションの高レベルタスクの実行に最適です。これには、産業用オートメーションで必要とされるようなアプリケーションも含まれます。一般的な汎用プロセッサでは、処理速度を上げるために、複数レベルのキャッシュメモリ階層と複数段の命令パイプラインを使用します(図2)。

図2:Arm Cortex-Aなどの汎用プロセッサのアーキテクチャでは、複数レイヤのインターコネクトとリソースを使用して、アプリケーション実行時に生じる多様なワークロード実行を最適化します。(画像提供:Texas Instruments)

 産業用通信の開発者から見ると、アーキテクチャのこの特性が、一般的な産業用オートメーションシステムやリアルタイムEthernetシステムで求められるリアルタイム性能の実現を難しくしています。キャッシュ、メモリ、インターコネクトの各層を経ることで、周期ベースのプロセスを履行するために必要な時間(レイテンシ)が長くなります。プロセッサがこのレイヤのどこまで行かなければならないかは周期ごとに変わるため、応答時間が大きく変動する可能性もあります。

 かつては、この問題に直面すると、システムの時間や性能が重視される部分の実装には、専用ハードウェアであるFPGAやASICを使用していました。リアルタイムEthernetのサポートに関して言うと、このアプローチは具体的には、FPGAやASICにMACなどのリアルタイム機能を実装することを意味していたのです。

 カスタムハードウェアは、性能面においてはきわめて効果的なソリューションになりますが、コストが大きくかさむことと、また完成した設計が複雑になることから、このアプローチは性能要件が何よりも優先されるアプリケーション以外では、現実的ではありませんでした。産業用通信のために、Texas Instrumentsでは、Sitaraプロセッサファミリのマルチプロセッサアーキテクチャを最大限にいかし、より現実的でコスト効率の良いソリューションを提供しています。

産業用通信サブシステム

 Sitaraプロセッサファミリには、高性能なArm Cortex-Aアプリケーションプロセッサが1個と、プログラマブルリアルタイムユニットおよび産業用通信サブシステム(PRU-ICSS)が1個~複数個搭載されています。Cortex-Aプロセッサはメインアプリケーションを実行する一方で、PRU-ICSSはリアルタイム処理と、産業用Ethernetプロトコルやその他の制御機能(図3)に必要なIO機能を提供します。

図3:Texas InstrumentsのSitaraプロセッサファミリ製品には、汎用Arm Cortex-Aプロセッサとともに、リアルタイムアプリケーションに必須の低レイテンシと確定的な性能を提供するために最適化された専門プログラマブルリアルタイムユニットが搭載されています。(画像提供:Texas Instruments)

 Sitaraのプログラマブルリアルタイムユニット(PRU)サブシステムごとに、200MHzのリアルタイムコアが2個搭載されており(図3のPRU0とPRU1)、1命令あたり5nsの周期で実行します。シングルサイクルで確定的に命令を実行できるよう、これらのPRUコアには命令パイプラインを使わずに処理される命令が搭載されています。

 ペリフェラル操作のレイテンシを抑えるために、PRUコアは32ビットの専用インターコネクトを介して共有リソースにアクセスします。このインターコネクトにより、リアルタイムEthernetに必要な複数のペリフェラル(管理用データ入出力(MDIO)や媒体独立インターフェース(MII)など)に接続します。また、各PRUコアには最大で30の入力と32の出力があり、この入出力を通じてデバイスの外部ピンと直接接続します(図4)。

図4:Texas InstrumentsのSitaraプロセッサに内蔵されたPRUは、入出力ピンとその他ハードウェアリソースへの直接アクセスにより、産業用アプリケーションにおけるレイテンシを抑えます。(画像提供:Texas Instruments)

 このペリフェラルと密結合したアーキテクチャではリアルタイムコアが単独で動作できるため、一般的な汎用処理システムにおいて複数のインターコネクトやレイヤを介することで生じる遅延を回避できます。高速なシングルサイクル実行とペリフェラルへの直接アクセスにより、周期ベースのプロセスを確定的に実行できるため、外部イベントに対して迅速かつ予測どおりに応答できます。その結果、PRUサブシステムのIO操作と外部ピンへのアクセスの効率は、ともに内蔵されている汎用プロセッサよりも、大幅に高くなっています(図5)。

図5:TIのSitaraプロセッサに組み込まれたプログラマブルリアルタイムユニット(PRU)サブシステムは、シングルサイクルの命令実行とデバイスピンへの直接アクセスにより、デバイスピン(右)の信号を読み書きする際に介するレイヤ数がずっと少なくなるため、ともに内蔵されているArm Cortex-Aプロセッサ(左)よりも高速なペリフェラル操作が可能です。(画像提供:Texas Instruments)

 PRUコアの高速なIOと5ns周期により、産業用通信に必要な低レイテンシと確定的な実行能力を実現できます。より上のレベルでは、Arm Cortex-AとPRUサブシステムの連携を最適化して、産業用アプリケーションの性能を最大限に引き出すための柔軟なメカニズムを提供しています。

 必要に応じて専用リソースと共有リソースを使い分けることで、複雑なリアルタイムタスク実行において、さまざまなコアが単独もしくは連携して最大限の性能を発揮できます。ある1つのコアに適したタスクはそのコアで独立して実行でき、要求の厳しいリアルタイムタスクの場合は、いくつかの密結合したコア間で処理負荷を共有できます。PRUコアからはCortex-Aコアのリソースへ直接アクセスできるため、リアルタイム操作やペリフェラルとのやりとりをどちらの操作モードでも高パフォーマンスで実行できます。

 密結合実行におけるリソースの割り当てと管理を最適化するために、Sitaraのシステムアーキテクチャではハードウェアとソフトウェアの両方の連携メカニズムがあります。ハードウェアレベルでは、プロセッサ間通信機能(ハードウェアベースのメールボックスやリソースロックレジスタなど)により、Cortex-AプロセッサとPRU-ICSSの同期を可能にしています。

 ソフトウェアレベルでは、Linuxのマルチプロセシングサービスをサポートすることで、密結合操作におけるタスク実行を連携させるための標準的な操作環境を提供します。実行時、Arm Cortex-Aコア上で実行されているオペレーティングシステムのカーネルは、RemoteProc(リモートプロセス)制御サービスとrpmsg(リモートプロセスメッセージング)サービスと、独自ドライバとPRUファームウェア内の対応ドライバを使用して、PRUシステムの操作を連携させます。

 RemoteProcサービスは、PRUファームウェアのロードと後続処理を管理します。rpmsgフレームワークでは、virtio仮想化インターフェースを使用してアプリケーションからPRUへのメッセージ交換を実現しています(図6)。

図6:Texas InstrumentsのSitaraプロセッサは、アプリケーションの相互作用とArm Cortex-AホストプロセッサとPRUサブシステムの連携のための標準的なサービスセットをサポートしています。(画像提供:Texas Instruments)

 このアーキテクチャの利点が顕著になるのは、シリアル通信インターフェース(SPIなど)から複雑な産業用Ethernetプロトコルまで、さまざまな産業用通信方式の開発を簡素化できる点、そしてその性能を向上できる点です。

 TIのSitaraプロセッサは、Cortex-Aプロセッサ上で実行されるプロトコルソフトウェアスタックと、PRUファームウェアによって管理されるリアルタイムサービスの組み合わせにより、リアルタイムEthernetプロトコル(Profinetなど)を効率的に実行できます(図7)。

図7:Texas InstrumentsのSitaraプロセッサは、Arm Cortex-Aホストプロセッサにおけるソフトウェア実行と、PRUサブシステムにおけるファームウェア実行を連携させることで、汎用処理の要件と産業用Ethernetプロトコル(Profinetなど)で求められるリアルタイム性能の要件を満たしています。(画像提供:Texas Instruments)

 このアプローチにより、複数のプロトコルを1つのアプリケーションでサポートする、シンプルなソリューションを提供します。開発者は、各プロトコルに必要なスタックとファームウェアをSitaraプロセッサ上で同時に実行するだけです(図8)。

図8:Texas InstrumentsのSitaraプロセッサは、PRUのファームウェア実行の効率と、Arm Cortex-Aプロセッサのソフトウェア実行の性能により、複数の産業用通信インターフェースとプロトコルを同時サポートします。(画像提供:Texas Instruments)

 Sitaraプロセッサは、各種のシリアル通信プロトコル、フィールドバスプロトコル、リアルタイムEthernetプロトコル(EtherCAT、Profinet、Sercos III)のプロトコルスタックを幅広く搭載しています。

 一般的なPLCや産業用スイッチには、たとえばホスト側では産業用Ethernet(Profinetなど)、ペリフェラル側ではフィールドバス(ProfibusやIO-Linkなど)というように多様な接続要件がありますが、Sitaraベースのシステムには各種プロトコルスタックが搭載されているため、こうした要件に対応できます。

 市販されている一般的な産業用Ethernetパッケージはブラックボックスのバイナリとして提供されますが、TIは開発者向けに産業用通信サービスのサンプルを数多く提供しています。

 アプリケーション開発のために、ファミリ別のTIプロセッサソフトウェア開発キット(Processor-SDK)(たとえばAM437x Sitaraプロセッサ用プロセッサSDK)により、対応するプロセッサファミリ向けのアプリケーションプログラミングインターフェース(API)が提供されています。

 ファミリ別の機能を提供するために、このAPI群には、GPIOやIO-Linkトランザクションなどの低レベル操作を行うための直感的な抽象機能が用意されています(リスト1)。

/* GPIO LED toggling*/
...Board_init(boardCfg);
GPIO_init();
While(1)
{
GPIO_write(Board_LED1, GPIO_PIN_VAL_HIGH);
Delay();
GPIO_write(Board_LED1, GPIO_PIN_VAL_LOW);
Delay();
}
/* IO-LINK status */
...Board_init(boardCfg);
...IOLINK_socGetFwCfg(peripheralNum, &iolink_cfg);
...IOLINK_socSetFwCfg(peripheralNum, &iolink_cfg);
...IOLINK_init();
...iolinkHandle = IOLINK_open(peripheralNum, &iolinkParams);
...status = IOLINK_control(iolinkHandle, iolinkCmd, &iolinkCmdArg);
...
リスト1:このスニペット(断片)が示すように、Texas Instrumentsの各Sitaraファミリ用プロセッサSDK APIを使用すれば、抽象機能を使うだけで済むようになり、低レベルのビット操作やレジスタアクセスのために時間を費やす必要がなくなります。(コード提供:Texas Instruments)

開発の迅速化

 Sitaraプロセッサに産業用通信プロトコルを実装するためにTIが提供しているコードやツールに加えて、サードパーティのプロトコルスタックプロバイダが提供するアドオンパッケージに含まれるプロトコル、ドライバ、PRUファームウェアを使用することで、独自の産業用通信ソフトウェア開発を迅速化できます。

 また、TIのTMDSIDK437X産業用開発キット(IDK)も、産業用アプリケーション向けにSitaraベースの総合ハードウェアプラットフォームを提供することで、開発スピードを向上させます(図9)。

図9:Texas InstrumentsのTMDSIDK437X IDKには、Sitaraプロセッサとメモリに加え、ペリフェラル、インターフェース、通信チャンネルなどすべてが搭載されており、産業用通信プロトコルの評価や産業用オートメーションアプリケーションのスピード開発を行うためのプラットフォームとなります。(画像提供:Texas Instruments)

 TIのTMDSIDK437X IDKのボードには、1GバイトのDDR3 RAM、クワッドSPI NORフラッシュ、TIのSitaraプロセッサAM4379が搭載されています。AM4379プロセッサには、Arm Cortex-A9プロセッサ1個とPRUサブシステム2個が搭載されており、PRUサブシステムにはPRUコアが2個ずつあります。

 一般的な産業用オートメーションネットワークでは、Sitara AM4379は複数の役割を果たすことができます。PLC、スイッチ、ゲートウェイなどの複数プロトコルシステムでも使用できますが、グラフィックと表示のサブシステムを内蔵しているため、HMIサポートを必要とする端末でも使用できます。

 このIDKボードには、複数のペリフェラルと通信ポートに加えて、Texas Instrumentsの産業用Ethernet接続用10/100Mビット/秒PHYトランシーバであるTLK105や、Microchip Technologyの従来型Ethernet接続用GbitトランシーバPHYであるKSZ9031RNXIA-TRなどのEthernetインターフェースチップも搭載されています。

 このキットを使用した産業用通信アプリケーションの実装は単純で、必要なのは24V電源と、開発システムにEthernetケーブルをつなぐことだけです。

 TIのPRU-ICSS対応産業用ソフトウェアセットは、上記で述べた産業用通信プロトコル用の各種ソフトウェアパッケージを提供します。TIの統合開発環境(IDE)であるCode Composer Studioを使用することで、パッケージに付属する各種サンプルアプリケーションをすばやくロードし、ビルドし、実行することが可能です。このサンプルを最初に参考として見たり、独自アプリケーションの制作時に活用したりできます。

 TIのソフトウェアとPRU-ICSS対応産業用ソフトウェアパッケージを使用することで、Ethernet接続されたモータドライブシステムといった高度な産業用オートメーションシステムを迅速に実装できます(図10)。

図10:Texas InstrumentsのTMDSIDK437X IDKとソフトウェアを組み合わせることで、きわめて効率的な開発プラットフォームとなり、ここに示すようなEtherCAT接続されたモータコントローラなどの産業用システムを迅速に実装できます。(画像提供:Texas Instruments)

 このモータドライブコントローラのアプリケーションの場合、PRUサブシステムがTMDSIDK437XボードのA/Dコンバータ(ADC)インターフェースかEnDatデジタル双方向エンコーダインターフェースを使用して、モータの位置データを収集します。

 Arm Cortex-Aプロセッサがこのデータを使用してフィールド指向制御(FOC)アルゴリズムを実行して、新しいモータ制御パラメータを生成します。そのパラメータはSitaraのパルス幅変調(PWM)チャンネルを介して配信されます。最後に、TMDSIDK437Xボードに搭載されたTIのDRV8313モータドライバが、調整されたモータパラメータを出力します。

 TMDSIDK437X IDKハードウェアボードをTIのソフトウェアとともに使用することで、さまざまなインターフェースや通信プロトコルによって接続される産業用オートメーションアプリケーションを迅速に実装できます。

 カスタムアプリケーションの場合、このキットは総合的なリファレンス設計として機能し、ハードウェア開発の迅速化に貢献します。TIのプロセッサSDKとPRU-ICSS対応産業用ソフトウェアパッケージをこのハードウェア基盤とともに使用することで、最近増えている多様な産業用通信プロトコルを使用するアプリケーションの要件に対応できる開発プラットフォームとなります。

まとめ

 高度な産業用オートメーションシステムを実現するためには、数ある要件の中でも、産業用通信プロトコルを高パフォーマンスで実行することがきわめて重要です。これらのシステムでアルゴリズムや高レベルプロセスを実行するためには汎用プロセッサが必要です。

 一方で、フィールドバスや産業用Ethernet接続のためにリアルタイムな産業用通信プロトコルをサポートするためには、低レイテンシで確定的な性能を実現しなければならず、多くの場合、専門デバイスが必要になります。

 この記事で紹介したとおり、Texas InstrumentsのSitaraファミリには、こうした多様な要件を満たすために必要となる汎用処理ユニットとリアルタイム処理ユニットの両方が用意されています。Texas InstrumentsのSitaraをベースとした産業用開発キットとともに、組み込み済みの通信プロトコルスタックを使用することで、幅広い産業用通信方式に対応可能な洗練された産業用オートメーションアプリケーションを迅速にデプロイできます。




免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。


 

このページのコンテンツはDigi-Key社より提供されています。
英文でのオリジナルのコンテンツはDigi-Keyサイトでご確認いただけます。
   


Digi-Key社の全製品は 1個からマルツオンラインで購入できます

※製品カテゴリー総一覧はこちら



ODM、OEM、EMSで定期購入や量産をご検討のお客様へ【価格交渉OK】

毎月一定額をご購入予定のお客様や量産部品としてご検討されているお客様には、マルツ特別価格にてDigi-Key社製品を供給いたします。
条件に応じて、マルツオンライン表示価格よりもお安い価格をご提示できる場合がございます。
是非一度、マルツエレックにお見積もりをご用命ください。


ページトップへ