PCプラットフォームによる PCプラットフォームによる 産業用ソリューションプロバイダー 産業用ソリューションプロバイダー


採用情報


お問合せ

JapaneseEnglish

  • PP263
ホーム > RT-edge > コンテナ仕様 仮想マイコン コンテナ機能
RT-edge 仮想マイコンコンテナ機能
 概要
センサ入力や、制御出力信号に小型マイコンを用いていた産業用エッジシステムのケースにおいて、RT-edge仮想マイコンコンテナ機能は有効なソリューションです。

産業コンピューターが搭載するIntel CPU マルチコアを応用することでソフトウェアが作り出す仮想のマイコンプラットフォームを提供します。Intel CPU がマイコンの処理能力をカバーできるので、マイコンハードウェアを必要とせずに、この仮想プラットフォーム上に C言語/C++言語で開発できるマイコンアプリケーションを実行させて目的の機能を実現できます。
 特長
  1. 市販マイコン同等の処理が可能
  2. inp/outp関数でレジスタアクセス
  3. タスクテーブルへの登録で動作するリアルタイムマルチタスク
  4. リアルタイムタスクとタスク間のイベント通知機能
  5. 他コンテナとのメッセージ通信機能
  6. 新規アプリケーション開発を支援するウィザード機能
  7. C言語プログラミングでアプリケーション開発
  8. Microsoft Visual Studio使用
  9. 無償のVisual Studioも対応可
  10. コンフィグファイル(XML)にI/Oレジスタ構成を定義
 仕様
タスク機能
No 項目 内容 備考
1 プライオリティ 256段階
2 スタックサイズ 128KB
3 最大タスク数 64 最大タスク数より多く指定した場合はエラーとし、タスクは全て消去する。
4 最大プロセス 64
仮想I/O機能
No 項目 内容 備考
1 アドレス範囲 0x0000~0xFFFF
2 アクセス形式 リトルエンディアン形式
メッセージ機能
No 項目 内容 備考
1 メッセージ名 VM_M[1]
[1]:EgStartでのEgVMを使用した
プロセスの起動番号 ( 00 .. 63 )
フレームワークで生成したメッセージをキューイングする。
2 個数 1
3 レコード長 2048バイト
4 レコード数 1024
イベント機能
No 項目 内容 備考
1 カタログ名 VM_E[1][2]
[1]:EgStartでのEgVMを使用した
プロセスの起動番号 ( 00 .. 63 )
[2]:タスクテーブルの
タスクの起動番号 ( 00 .. 63 )
EgMailboxを使用
2 個数 64 vmInitで生成
3 レコード長 1バイト RT-edge仕様上最小値をセット
4 レコード数 2 RT-edge仕様上最小値をセット
5 メッセージ番号 20000 ユーザーメッセージを使用
 プライオリティ指定付きリアルタイムタスク機能
256段階の優先度を持ったリアルタイムタスクを構成することができます。リアルタイムタスクはタスクテーブルに登録することにより生成されます。 生成されたタスクはそれぞれ異なる周期、異なるトリガーで動作するループ処理として構築され、I/O、演算処理、判断といったループを繰り返すことになります。
リアルタイムタスク機能
 タスク間イベント通信機能
タスクは他タスクにトリガーをかけるイベント機能を利用することができます。
同様に他タスクからのトリガーを待って、処理を行う構造も可能です。
タスク間イベント通信機能を活用することで効率的な分散並列処理プログラミングが可能になります。
タスク間イベント通信機能
 コンテナ間メッセージ通信機能
仮想マイコンアプリケーションは 他のRT-edgeコンテナに対して非同期的なメッセージ通知を使って処理を要求することが可能です。 例えばデータベースコンテナにレコード追記を要求したり、上位通信コンテナにクラウドサーバ向けの送信要求をすることができます。
コンテナ間メッセージ通信機能
 仮想IO空間機能
仮想マイコンプラットフォームには仮想I/O空間が用意されます。
このI/O空間はコンフィグファイル(XMLファイル)の定義次第でレジスタマップを自由に構成できる特長があり、 RT-edge標準コンテナである産業用通信インターフェースコンテナがタグ化したセンサ値や制御出力信号をレジスタに割り当てできます。
マイコンアプリケーションは単純にI/O命令を通じてセンサ入力、制御出力信号を取り扱うことができます。直接I/Oのみならず、フィールドバスI/Oへの換装も容易になります。
仮想IO空間機能
 仮想I/O空間とRTCDの紐づけ機能
例えば、仮想I/O空間に産業用通信インターフェイスが入手したアナログセンサ値のタグを割りつけますと、仮想マイコンアプリケーションはIn命令とアドレス指定で参照できます。 仮想I/O空間に産業用通信インターフェイスが扱う制御出力信号のタグを割りつけますと、仮想マイコンアプリケーションはOut命令とアドレス指定で出力信号を更新できます。
仮想I/O空間とRTCDの紐づけ機能
 Visual Studioでのアプリケーションの開発
仮想マイコンアプリケーションの開発には、Microsoft Visual Studio によるC言語/C++言語が使用できるので STL を用いたアルゴリズムの活用や、キャラクタコンソールの簡易表示ができます。

ソケット関数も用意されておりTCP IP 通信もハードウェアの増設なしに利用できます。これには産業用コンピューターが搭載しているイーサネットポートが使用されます。
 新規アプリケーション開発を支援するウィザード機能
新規のアプリケーションを開発する場合 Visual Studio のプロジェクトを自動生成します。 アプリケーション開発者は生成されたスケルトンコードに処理を追記する形で目的の処理をプログラミングしていくことができます。 Visual Studioでビルドを行えば実行モジュールが生成されます。
ウィザード機能
 API関数
  1. サービス関数群
    仮想マイコンアプリケーションのプロセスをコントロールできます。
  2. 仮想I/O空間アクセス関数群
    マッピングされたレジスタへのアクセスができます。これには仮装のポートアドレスを使って指定します。レジスタは8ビット16ビット32ビットの指定が可能です。 これらにより RTCD 内のタグ情報が取得/更新されます。
  3. メッセージ通信関数群
    他のRT-edgeコンテナへのメッセージ送信と受信が可能です。
  4. イベント関数群
    仮想マイコンコンテナ内のタスク同士でイベントの通知と、受信が可能です。
    No 項目 内容 備考
    1 サービス vmInit コンテナを初期化
    2 サービス vmNotifyEvent 終了イベントを待機
    3 サービス vmExit コンテナを終了
    4 仮想I/O空間アクセス vmInByte 仮想IO空間の8ビット読み込み
    5 仮想I/O空間アクセス vmOutByte 仮想IO空間の8ビット書き込み
    6 仮想I/O空間アクセス vmInHword 仮想IO空間の16ビット読み込み
    7 仮想I/O空間アクセス vmOutHword 仮想IO空間の16ビット書き込み
    8 仮想I/O空間アクセス vmInWord 仮想IO空間の32ビット読み込み
    9 仮想I/O空間アクセス vmOutWord 仮想IO空間の32ビット書き込み
    10 メッセージ通信 vmSendMessage EgMailboxにメッセージを送信
    11 メッセージ通信 vmReceiveMessage EgMailboxからメッセージを受信
    12 イベント vmSendEvent イベントを送信
    13 イベント vmReceiveEvent イベントを受信
    14 その他 vmSleep RtSleepExをラップ
 サンプルコード
サンプルは、Visual Studioで作られておりmain以外に2つのリアルタイムタスクを持っています。 アナログ値の観測を続けて閾値を超えるとアラームを示すディジタル信号を出力します。 I/OにはEtherCATフィールドバスとスレーブ機器を用いている想定です。 アナログ閾値、アラーム矩形波形のパルス幅指定はI/Oレジスタに指定でき、XMLで設定変更ができます。
  1. mainタスク
    仮想マイコンコンテナのエントリーポイントで、コンテナ初期化ののち、終了指示を待機します。
  2. Monitorタスク
    アナログ値を周期的に観測し、指定された閾値を超えるとアラーム信号出力をイベントします。
  3. Alarmタスク
    イベントを受け取ると指定された時間のアラーム信号矩形波を出力します。
  4. イベント関数群
    仮想マイコンコンテナ内のタスク同士でイベントの通知と、受信が可能です。
Thermo.c
https://carbon.now.sh/
TaskTable.c
https://carbon.now.sh/
Thermo.xml
https://carbon.now.sh/
HOME