HOME会社概況業務内容開発分野開発事例CANモジュールソフテックだよりお問い合わせ
HOME > ソフテックだより > 第267号(2016年10月5日発行) 技術レポート「e-RT3 plusの新機能について」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより(技術分野別)のページへ
ソフテックだより(シーン別)のページへ


ソフテックだより 第267号(2016年10月5日発行)

技術レポート

「e-RT3 plusの新機能について」

1. はじめに

私が担当している案件で、横河電機製のe-RT3 PlusのF3RP71を使用する機会がありました。
e-RT3は、リアルタイムOS対応のCPUモジュールで、FA-M3シリーズの各種モジュールと組み合わせて使用します。e-RT3 Plusは、e-RT3の新シリーズです。
今回、e-RT3 Plus を使用してみて、e-RT3と比較して便利だと思った機能について紹介します。なお、F3RP71はLinux OSのe-RT3 Plusですので、今回はLinux OSのe-RT3に限定した内容とさせていただきます。

2. アプリケーションのインストール

e-RT3では、ターミナルソフトからコマンドを実行してアプリケーションファイルをコピーする必要がありました。
しかし、e-RT3 Plusではシステムロード機能を使用し、SDカードからe-RT3 PlusのフラッシュROM上にファイルをインストールすることができます。インストールしたいファイルを格納したSDカードをe-RT3 Plusに挿入し、e-RT3 PlusのMODEスイッチを7にあわせて起動すると、システムロードを実行します。アプリケーションをインストールするのにPCは不要で、アプリケーションファイルを格納したSDカードだけあればインストールできます。Linuxの内部構造を理解していなければコマンドを実行することはできないため、Linuxの内部構造を知らない人でもインストールできるようになったと思います。

システムロード機能は、起動モードの一種で、起動モードには以下のような機能があります。 MODEスイッチを合わせて電源投入すると、該当するMODEスイッチのモードで起動します。

MODEスイッチ 起動モード 機能 新機能(※1)
0 ユーザ指定起動 起動パラメータに従いLinuxを起動します。 デフォルトではプリインストールユーザランド(出荷時に組み込まれるユーザランド)で起動します。
1 コマンドモード 起動パラメータなどの環境変数の参照・設定をする起動モードです。
2 ネットワークブート ネットワーク上のユーザランドで起動するモードです。
3 フラッシュROMブート フラッシュROM上のユーザランドで起動するモードです。
4 Reserved 予約番号(使用できません)

5

SDメモリカードブート SDメモリカード上に展開したユーザランドで起動するモードです。
6 Reserved 予約番号(使用できません)
7 システムロード SDカードからフラッシュROM上にファイルをロードするモードです。
8 システムセーブ フラッシュROM上にあるファイルをSDカードに保存するモードです。
9 パラメータ初期化 環境変数を初期化するモードです。
A SDメモリカードフォーマット SDカードをFAT32形式にフォーマットします。
B 自己診断 ハードウェアに異常がないかを診断するモードです。
C システムコンバート SDカード上のユーザランドをフラッシュROMに書き込むモードです。
D フラッシュROMフォーマット フラッシュROMをフォーマットするモードです。
E Reserved 予約番号(使用できません)
F Reserved 予約番号(使用できません)

表1. 起動モード対応表

※1 e-RT3 Plusで追加された機能を○、e-RT3からある機能を△で記載します。
3. Webメンテナンスツール

e-RT3では、IPアドレス設定等の環境設定を変更する場合、ターミナルソフトからコマンドを実行してファイルを編集する必要がありました。しかし、e-RT3 PlusではWebメンテナンスツールの機能が追加され、Webメンテナンスツールから環境設定を変更できるようになりました。また、Webメンテナンスツールではe-RT3 Plusの内部パラメータをモニタリング・設定することもできます。
Webメンテナンスツールの使用方法は簡単で、PCとe-RT3 Plusをネットワーク接続するだけです。
あとは汎用のWebブラウザにe-RT3 PlusのIPアドレスを打ち込むと、Webメンテナンス画面を表示し、使用することができます。

Webメンテナンスツール 接続図
図1. Webメンテナンスツール 接続図

Webメンテナンスツールの機能としては以下のものがあります。

3.1 CPU設定

IPアドレスの変更やデバイス設定などの基本的な設定を行うことができます。e-RT3では、ターミナルソフトからコマンドを実行してファイルを編集する必要がありましたが、本機能が追加されたことにより、Webメンテナンスツールから簡単に設定できるようになりました。

Webメンテナンスツール CPU設定 IPアドレス設定画面
図2. Webメンテナンスツール CPU設定 IPアドレス設定画面

CPU設定で設定・参照できる機能を以下に簡単にまとめます。

No CPU設定 内容 内容
1 トップ/ログイン ユーザ名とパスワードを入力してログインします。
ログインすると、内部レジスタへの書き込み等ができるようになります。
2 サービス スマートアクセス機能等のサービスの状態(有効/無効)の表示・設定を行います。
3 ユーザ管理 ユーザの追加や削除を行います。
4 IPアドレス IPアドレスの設定等のネットワーク設定を行います。

5

カレンダ/時刻 e-RT3 Plusの日付・時刻を設定します。
6 起動スクリプト 起動スクリプトの設定を行います。
7 メモリ/ログ e-RT3 Plusのメモリの使用状況やログを表示します。
8 デバイス設定 e-RT3 Plusのデバイス割り付けの設定等を行います。
9 動作設定 e-RT3 Plusの周辺サービス(上位リンクサービス等)の設定を行います。

表2. Webメンテナンスツール CPU設定

3.2 デバイスモニタ

e-RT3 Plusの内部リレーや内部レジスタ、さらに各スロットに装着されているIOモジュールの入出力リレーや入出力レジスタ等を参照することができます。また、CPU設定でユーザ名とパスワードを入力して、ログインしておけば、データの書き込みもできるようになります。自分が作成したプログラムがきちんと動いて、期待した値が内部レジスタに設定されていることを確認できるため、アプリケーションの開発でも大いに活用しました。今まで、e-RT3を利用した開発ではシーケンスCPUと一緒に使用していたため、シーケンスCPU経由で入出力リレーや入出力レジスタの値をモニタしていました。今回の案件ではe-RT3 Plus単独で使用するため、どうやってモニタしようかと考えていましたが、本機能を使用して簡単にモニタすることができました。

Webメンテナンスツール デバイスモニタ
図3. Webメンテナンスツール デバイスモニタ

4. IOモジュール制御方法

IOモジュールを制御する場合など、e-RT3では、ioctl関数に各種コマンドを指定してモジュールにアクセスします。以下のコードはスロット3の接点入力モジュールの接点1〜32 のデータを取得するプログラムです。

int fd;
M3IO_ACCESS_REG inrly;

fd = open("/dev/m3io", O_RDWR);
if(fd < 0)
{
     return -1;     /* オープンエラー */
}

inrly.unitno = 0;
inrly.slotno = 3;
inrly.start = 1;
inrly.count = 2;       /* 2block = 32点 */
if (ioctl(fd, M3IO_READ_INRELAY, &inrly) < 0)
{
     return -1;     /* 読み込みエラー */
}

e-RT3の開発では、上記のようなプログラムは直感的でないため、上記プログラムを関数化して、その関数をコールしていました。e-RT3 Plusでは、専用のAPIが用意されているため、わざわざ関数化する必要がなく、該当するAPIをコールするだけです。そのため、プログラムの作成量を減らすことができました。
上記プログラムと同じ処理をe-RT3 Plusで行うと、以下のようになります。

unsigned short data[4];
if(readM3InRelay(0, 3, 1, 2, data) < 0)
{
     return -1;     /* 読み込みエラー */
}
5. スマートアクセス機能

e-RT3 Plusからスマートアクセス機能が追加になりました。
起動後にMODEスイッチをあわせてSETスイッチを押下すると、予め設定した処理を実行することができます。例えば、MODEスイッチをBにあわせ、SETスイッチを押下すると、Linuxシャットダウンを実行します。

初期状態で登録されている機能とMODEスイッチ番号の対応を下表に記載します。
自作スクリプトを作成し、処理を実行することも可能です。自作スクリプトが登録可能な番号は6〜Aです。

MODEスイッチ 機能
0-5 予約番号(使用できません)
6 ユーザスクリプト実行
7 ユーザスクリプト実行
8 ユーザスクリプト実行
9 ユーザスクリプト実行

A

ユーザスクリプト実行
B Linux シャットダウン
C SRAM領域の保存(F3RP71-2Lのみ)
D SRAM領域の復元(F3RP71-2Lのみ)
E SD1スロットのSDメモリカードを“/media/sd”にマウント
F SD1スロットのSDメモリカードをアンマウント

表3. スマートアクセス機能対応表

今回はLinuxシャットダウンしか使用していませんが、スクリプトを作成して、動作確認等に役立てられるかもしれません。
今考えている使い方としては、例えばMODEスイッチ6にアプリケーションAを起動するスクリプトを登録、MODEスイッチ7にアプリケーションBを起動するスクリプトを登録する等を考えています。そうすると、単独でそれぞれのアプリケーションを実行した場合の動作や同時に実行した場合の動作を確認することができます。
機会がありましたら、試してみたいと思います。

6. 最後に

e-RT3 Plusの新機能について、簡単ではありますがまとめてみました。
今回紹介したのは、Linux対応のCPUモジュールですが、e-RT3シリーズには、その他にも、VxWorksやNORTiなどに対応したCPUモジュールもあります。これらのCPUモジュールについて、第73号(2008年9月3日発行)現場の声「RTOS対応組み込みコントローラとモーションコントローラによる機械制御」第114号(2010年5月26日発行)技術レポート「e-RT3 2.0を使った開発方法について」で触れていますので、ご参照ください。

また、今回紹介させていただきました、スマートアクセス機能については、担当している案件では使用する機会がありませんでした。使用する機会がありましたら、もう少し突っ込んだ形で、改めて紹介させていただきたいと思います。

最後までお読みいただき、ありがとうございました。

(T.M.)

[参考]
IM 34M06M52-01 e-RT3 CPU モジュール(F3RP7□用)取扱説明書
IM 34M06M52-02 e-RT3 BSP (SFRD□2 用)共通機能説明書
IM 34M06M52-22 e-RT3 Linux BSP(SFRD12 用)プログラミング説明書
IM 34M06M52-23 e-RT3 Linux 対応CPU モジュール Web メンテナンスツール説明書
RTOSコントローラ:http://www.yokogawa.co.jp/rtos/rtos-index-ja.htm?nid=left

関連ページへのリンク

関連するソフテックだより