仮想マイコンの機能詳細
最終更新日:2023/12/20
■ プライオリティ指定付きリアルタイムタスク機能
256段階の優先度を持ったリアルタイムタスクを構成することができます。リアルタイムタスクは仮想マイコンタスクテーブルに登録することにより生成されます。
生成された仮想マイコンタスクはそれぞれ異なる周期、異なるトリガーで動作するループ処理として構築され、I/O、演算処理、判断といったループを繰り返すことになります。
■ 仮想マイコンタスク間イベント通信機能
仮想マイコンタスクは他仮想マイコンタスクにトリガーをかけるイベント機能を利用することができます。
同様に他の仮想マイコンタスクからのトリガーを待って、処理を行う構造も可能です。
仮想マイコンタスク間イベント通信機能を活用することで効率的な分散並列処理プログラミングが可能になります。
■ 仮想IO空間機能
仮想マイコンプラットフォームには仮想I/O空間が用意されます。
このI/O空間はコンフィグファイル(XMLファイル)の定義次第でレジスタマップを自由に構成できる特長があり、
RT-edge標準コンテナである産業用通信インターフェースコンテナがタグ化したセンサ値や制御出力信号をレジスタに割り当てできます。
マイコンアプリケーションは単純にI/O命令を通じてセンサ入力、制御出力信号を取り扱うことができます。直接I/Oのみならず、フィールドバスI/Oへの換装も容易になります。
■ 仮想I/O空間とRTCDの紐づけ機能
例えば、仮想I/O空間に産業用通信インターフェイスが入手したアナログセンサ値のタグを割りつけますと、仮想マイコンアプリケーションはIn命令とアドレス指定で参照できます。
仮想I/O空間に産業用通信インターフェイスが扱う制御出力信号のタグを割りつけますと、仮想マイコンアプリケーションはOut命令とアドレス指定で出力信号を更新できます。
■ サンプルコード
サンプルは、Visual Studioで作られておりmain以外に2つのリアルタイムタスクを持っています。
アナログ値の観測を続けて閾値を超えるとアラームを示すディジタル信号を出力します。
I/OにはEtherCATフィールドバスとスレーブ機器を用いている想定です。
アナログ閾値、アラーム矩形波形のパルス幅指定はI/Oレジスタに指定でき、XMLで設定変更ができます。
- mainタスク
仮想マイコンのエントリーポイントで、仮想マイコン初期化ののち、終了指示を待機します。
- Monitorタスク
アナログ値を周期的に観測し、指定された閾値を超えるとアラーム信号出力をイベントします。
- Alarmタスク
イベントを受け取ると指定された時間のアラーム信号矩形波を出力します。
- イベント関数群
仮想マイコン内のタスク同士でイベントの通知と、受信が可能です。
Thermo.c
https://carbon.now.sh/
TaskTable.c
https://carbon.now.sh/
Thermo.xml
https://carbon.now.sh/