こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
この記事ではIO-Linkの紹介についての紹介、そしてSTM社が提供するIO-Linkソリューション「STMicroelectronics P-NUCLEO-IOD02A1評価キット」を用いて実際に性能を評価していきます。評価キットを実際に使用できるようにするためのセットアップから、実際の動作に至るまで解説していきます!
はじめに
STMicroelectronics P-NUCLEO-IOD02A1はST L6364Q IO-Linkトランシーバの評価用に設計されたSTM32 Nucleo Packで各種センサーに加えて、IO-Linkマルチセンサーデバイスノードの例を提供するデモ用ソフトウェアスタックを搭載しています。
IO-Linkとは?
IO-Linkは低コストで双方性を持つ産業用センサー及びアクチュエータインターフェースで、産業用Ethernetなどの別のフィールドバスとエンドデバイス(通常はセンサーやアクチュエータ)との接続を簡素化できる産業用インターフェース規格です。基本的なセンサーやアクチュエータでよく使われる一般的な3線式ケーブルで実行できるIO-Linkは、ほんの少しの追加コストで大幅な機能性を提供してくれます。拡張センサー診断やパラメータ設定、および制御に関する機能がすべて提供されます。
IO-Linkはインダストリー4.0の診断コンセプトを促進するものとして広く認識されており、オペレータがセンサーをチェックするよりも迅速に診断データを中央の統括部に戻すことができます。本質的にはアナログ信号かデジタル信号を選択して「最後の1メートル」まで、つまり一番端まで通信機能を提供することができるのです。
IO-Linkは下位互換も標準機能の一部です。これは、従来のバイナリセンサーや出力もこのIO-Linkシステムで使用することが可能という事です。同様に、バイナリIO-Linkセンサーでも従来のデジタル入力を使用するシステムに統合できます。この場合、バイナリセンサーのパラメータ化は引き続き可能でセンサー間で設定を複製できるため、生産性向上の可能性を広げることができます。
ハードウェア
評価キット
それでは、IO-Linkの性能を評価できるP-NUCLEO-IOD02A1評価キットを見ていきましょう!
ST社のP-NUCLEO-IOD02A1評価キットには、IO-Linkの評価とサンプルアプリケーション実行に必要な部品がすべて含まれています!
付属のNUCLEO-L452REボードには512KBフラッシュメモリ、160KB SRAM及び最大83個のGPIOを備えたSTM32L452REマイクロコントローラが搭載されています。また、Nucleo開発ボードにはST-LINKデバッガ及びプログラマが標準装備されています。
IO-Linkインターフェースで転送する実際のデータを生成するためにTX-NUCLEO-IKS02A1産業用センサーボードが付属しています。このボードには3軸加速度センサーとジャイロスコープ、3軸地磁気センサー、別にもう一つ3軸加速度センサー、デジタルマイクロホンが搭載されています。
最後に、ボードにはX-NUCLEO-IOD02A1 IO-Linkインターフェースボードも付属しています。これは産業用センサーアプリケーション向けに特別設計されたL6364Qデュアチャンネルトランシーバを搭載しています。
IO-Linkインターフェースボード
X-NUCLEO-IOD02A1に搭載されているL6364Qは5-35Vdcの広い入力電圧範囲や5-10.5Vdc間で最大50mAまで供給可能な統合DC-DCレギュレータ、オンチップ5Vdc及び3.3Vdcリニアレギュレータ、2つのLEDドライバー、SPIインターフェース、その他の多数の機能を備えた高性能なチップです。
上の図はL6364Qチップのブロック図です。短絡やサージ保護、逆極性保護などのような機能が複数示されています。これらの機能が全て4x4mmのQFN-20Lパッケージに収められており、加えてオンチップの電力調整機能と組み合わせることで理想的なIO-Linkトランシーバを設計するためのコンポーネントになるといえます。
また、このチップはデュアルチャンネルとしても宣伝されています。これは「CQ」IOピンと「DIO」IOピンの両方が存在するという事です。DIOピンはSPIインターフェース経由で制御可能で、GPIOピンとして動作する「DIO」モードと「CQ」ピンと組み合わせてIO-Link規格に準拠したダブルドライブ強度の入力/出力として動作する「JOIN」モードが選択できます。
ST社ではインターフェースボードの回路図を公開しています。併せてL6364Qのデータシートには回路図のサンプルが掲載されています。
IO-Linkソフトウェア評価を始める!
ST社は上に紹介したボードスタックを使用してIO-Linkシステムのテストに必要なものを詳しく説明した、わかりやすいスタートガイドを提供しています。
ここでは3枚のボードを含むP-NUCLEO-IOD02A1キットを使用して、必要なジャンパーはあらかじめ設定し終えている状態でセットアップを説明していきます。使用するキットは適切なファームウェアがすでに書き込まれているP-NUCLEO-IOM01M1キットです。
IO-Linkのセットアップを完了するにはマスターが必要になります、順に説明していきます。
ハードウェアセットアップ
始めるには拡張ボードを正しい順序でプラグ接続する必要があります。まずセンサーボードをNucleoボードのArduino 互換ヘッダーに挿し、次にIO-Linkトランシーバボードをセンサーボードの上に挿します。
CN2のL+、C/Q、L-ピンに接続された3本の配線(上図左の赤、白、黒の配線)だけで評価ボードとIO-Linkマスターの間にIO-Link接続を構築することができます。今回はIO-LinkデバイスとしてST社の別キットであるP-NUCLEO-IOM01M1を使用しています。
全ての電源はIO-Link接続を介して提供されているので、他のケーブルを接続する必要はありません。
ソフトウェアセットアップ
キットに付属するNucleo開発ボードにはすでにマルチセンサーデバイスノードのファームウェアがプログラムされているので、実際のプログラミングは必要ありません。
ですが、ボード用やユーザー用にファームウェアを書きたいのであればプログラミングが必要です。次にプログラミング環境について詳しく説明します。
ST開発環境のセットアップ
ST社はEclipseベースのIDEである「STM32CubeIDE」と、グラフィカルなマイクロコントローラ設定ツール 「STM32CubeMX」を提供しています。
始めるにあたって、まずSTM32CubeMXをインストールします。ソフトウェアのダウンロードにはST社のウェブサイトでアカウントを登録するかEメールの提供が必要になります。登録作業はすぐに完了できますので、すぐにソフトウェアのダウンロードが可能です!
ソフトウェアをインストールしたら、上のような画面が表示されます。ここからマイコンを選択するか、NUCLEO-L452REなどのボードを選択するか、サンプルプロジェクトを選択することによって新規プロジェクトを作成することができます。
今回はNUCLEO-L452Rを使用しているので「Access to board selector(ボード選択)」を選びました。ボードの選択は様々なフィルターにより絞り込み見つけることができます、もちろんボード名で検索することもできます。今回はすでにボードが接続された状態でしたので、ハイライト表示されたものを選択しました。次に、すべてのペリフェラルを初期化するオプションを選択しました。
上図のようにマイコンの概要がグラフィカルに表示されて構成・設定されているピンが表示されました。この状態で左側のメニューからオンチップの各種ペリフェラル、ソフトウェアのミドルウェア及びシステム構成パラメータをセットアップすることが可能です。
デモを実行するにはCANペリフェラルを有効にして構成を行いました。これでマイコン上のピンを自動的に有効にできます。ペリフェラルにはデフォルト値が提供されており、無効な組み合わせはハイライト表示されます(上の画像はデフォルトのCANタイムクォンタです)。
ピンの構成はこの画面で左クリックすることでも可能です。この操作をすると選択したピンに適用できる機能がドロップダウンメニューで表示されます。
その上、ピンにはユーザーが付けた信号名を適用でき、これは後に生成されるコードに反映されます。もし、自分の頭でPB15が青色LEDに接続されていることを覚えようとすると、複数のLEDがあった際には複雑性やミスが増えます。しかしこの機能を使えばその問題はありません。
STM32CubeMXにはマイクロコントローラの消費電力推定機能が搭載されています。これは各種の操作ステップ、バッテリータイプおよび以前に設定されたすべてのクロック、ペリフェラル、GPIOピンなどを入力として消費電力とバッテリー寿命の推定値を生成することができます。
マイコンを所望の構成にしたらIAR IDE、Keil IDE、STM32CubeIDEのいずれかにインポートします。
今回はプロジェクトをEclipseベースのSTM32CubeIDEにインポートします。IDEは最初のインストール時に必要なツールチェーンコンポーネントをすべてインストールするため、通常のマイクロコントローラのプログラミングとデバッグには他の追加ソフトウェアは必要はありません。
上のコードからわかるようにSTM32CubeMXで設定したピンラベルはピン名の説明とピン番号の両方の定義を含め、生成されたコードに落とし込まれています。CubeIDE内からこのプログラムをコンパイルし、マイコンにプログラムしてデバッグすることができます。
サンプルの実行
上述の通りキットに含まれるNucleoボードには、IO-Linkマルチセンサーデバイスノードのデモ用ファームウェアがあらかじめプログラムされています。デモ通りの環境・設定で実行する場合には特にソフトウェアに変更を加えずに実行できます。
IODDファイルのダウンロード
IO-Linkマスターがセンサーやアクチュエータを理解するためには、IODD(IO Device Description)が提供されている必要があります。これはXML形式のメインファイル、メインファイルに含まれるデータの翻訳をするためのオプション言語ファイル、メーカーロゴやデバイス画像のようなオプションのPNG形式のグラフィックファイルを含む一連のファイルです。メインファイルにはデバイスのID、パラメータ、プロセス&診断データ並びに通信プロパティに関する情報を含んでいます。
ST社はプロジェクトのソースコードとIO-Linkマスターに書き込むファイルなどを機能パックで提供しています。その機能パックはST社のウェブサイトで閲覧、ダウンロードすることができます。必要なファイルは、"STM32CubeFunctionPack_IOD02_V1.1.0Projects、STM32L452RE-Nucleo、Applications﹑IOD02A1_IKS02A1 "フォルダにあります。
データ表示
IODDデータをダウンロードしたらデータをIO-Linkマスターソフトウェアにインポートします。これでIO-Linkインターフェース上で閲覧できるパラメータとプロセス変数を提供してくれるはずです。
上の画像ではIODDデータが正常に読み込まれ、通信が実行されていることが確認できます。ボードスタックのイメージ図が接続されているデバイスのベンダーとデバイスIDと一致しています。
また、ボード上のセンサーの出力を見ることもできます。上図ではX軸、Y軸、Z軸を含む加速度センサーの1つの出力を見ています。
上の画像では実際にボードスタックを3軸方向で回転させ、IO-Link接続で出力をプロットしてみたものです。
最後に
この記事ではIO-Linkとは何か、ST社がIO-Linkソリューションの評価用に提供しているSTMicroelectronics P-NUCLEO-IOD02A1とは何か、L6364Qデュアルチャンネルトランシーバについて並びにIO-Linkの使い方を示す簡単なセンサー例について見てきました。
IO-Linkソリューションの有効性について多く示してきましたが、その性能を評価できるP-NUCLEO-IOD02A1評価キットはIO-Linkソリューションを促進させることができる実効的なコンポーネントと言えます。紹介した性能評価はごく一部です、是非ユーザー自身でその評価を確かめてください。