2011.04.02更新
不安定なWindowsIO制御でお悩みの方へ
Windowsでも安定IO制御できる方法があります。ご存知でしたか?
・3チャンネルのRS232C通信がある。
・RS232Cで150ms以内に返信しないといけない。
・100msのパルスを漏れなく監視する。
・エンコーダ位置を監視していて、20ms以内にDOUT出力する。
いずれも厳しい仕様です。
たまに動作がおかしくなりませんか?
そんなとき、どうされますか?
「わずかなコストと作業で、不安定なWindowsIO制御と決別できるなら、すぐに改善したい!」と考える方、このページに悪くない提案があります。
こんにちは!
私は、本製品を開発販売している会社、プライムモーション社長の片桐(かたぎり)と言います。
人は「モーションおやじ」と言います。
新卒で、株式会社三協精機製作所(現日本電産サンキョー)という会社に入社して、
ロータリーエンコーダやACサーボドライバ等の産業用ロボット関連の新製品開発をしていました。
会社に十分還元したところで、
つちかった電子制御技術を世の中の多くの人に提供しようと資本金300万円で「有限会社プライムモーション」を自宅の8畳間で創業しました。
創業直後の資金不足のなか、定価300万円以上の
Windowsリアルタイム開発環境、米国VenturCom社(現IntervalZero社)製RTX-SDK4.3.2.1を購入しました。
創業当時 1999年 購入した
VenturCom社
Windowsリアルタイム開発環境「RTX−SDK」4.3.2.1 CD
マイコンでは味わえない
GUI(グラフィカルユーザインターフェイス)とリアルタイムが同居する
Windowsリアルタイム制御の素晴らしさを実感しました。
この高性能を広く制御エンジニアに伝えようと
難しいリアルタイムOS環境「RTX-SDK」なしで動作する「手軽にみんなで使えるWindowsリアルタイムIO制御環境『MOSBench』」を開発して、現在に至りました。
Windowsリアルタイム環境でプログラムすると、以下の上段の波形が得られます。
下段が通常のWindows制御です。
Windowsにリアルタイム制御を導入すると格段の安定性が得られます。
観測している波形のプログラムは、これだけです。
void main()
{
int b;
b=0;
while(1){
//約100Hzでオン・オフ
if ( (b % 2) == 0 ) {
WritePort( 2113, 1 );
}
else {
WritePort(
2113, 0 );
}
b = b + 1;
Sleep(5); // 5ms 休み
}
}
他にプログラミングはありません。制御したい事を書くだけ。ビルド(コンパイル)するプログラムもこれだけです。
いまでも、Windowsリアルタイム開発環境を購入しようとすると約100万円します。
その価格の一桁少ない価格で、私、片桐がかんたんにWindowsリアルタイムIO制御できる環境を提供します。
普及価格にして、みなさんに想像を超えるWindowsリアルタイムIO制御の世界を体験していただきたいのです。
1つのパソコンの中に、WindowsのGUIとギガヘルツ動作リアルタイムIO制御環境が同居している新世代のスーパープラットフォームで、生産性を向上していただき、装置制御プログラマのみなさんの人生を豊かにしたいのです。
本格的リアルタイムOSとして、知られているRTX-SDK、INtime-SDK、VxWorks、等に対して、圧倒的に低コストに、簡単にWindowsリアルタイム制御を始めることができます。
1999年に、「購入資金が無い」と悩みに悩んで、RTX-SDKを購入してから、10年以上の私と私のチームの長年のノウハウが、手軽にWindowsリアルタイムIO制御環境に詰め込まれて、本当に低コストに入手できるのです。どうされますか?
ここに、安くて、簡単な
WindowsリアルタイムIO制御環境があります。
本製品を購入すると、とても良い人生になる人
難しいことを覚える時間は無いが、Windowsで高速高性能の制御を短期間に実現したい人。
新制御を導入して、職場を活性化したい人。簡単なので、部下や協力会社への委託説明が短時間で済みます。
rt-linuxやVxWorksを導入したが、部下がまじめに覚えようとしないので、自分の仕事が増え続けている人。
でも、「rt-linuxやVxWorks導入は、良くなかった」と言えず、安いコストの代替技術を探している人。
なぜ業界の1桁少ない価格を決意したのか?
当社には、数十万円のWindowsリアルタイム制御環境『MOS Bench』という最初のフラッグシップ製品があります。
これは、最大40軸のモーションコントローラが入っており、3000万円クラスの半導体装置メーカ向け本格製品です。1999年より開発し、2004年より一般販売しています。
これをお客様に紹介するなかで、『モーションコントローラはいらない。DIO,AD,DA,232のリアルタイム制御だけで良いので、10万円切れないか?』というご相談が相次いでありました。
そのご要求に対応したのが、この手軽にみんなでWindowsリアルタイムIO制御環境「MOS Bench EY(モスベンチ・いいわい)」という入門版です。
「MOS Bench EY」には、37軸の超高速ICボンダで培った高速制御ノウハウがふんだんに盛り込まれています。
37軸超高速ICボンダのコントローラ(『MOS Bench』(本格版)搭載)
モーションカード 5枚 (リアルタイム制御)
IN128 1枚 (リアルタイム制御)
OUT128 1枚 (リアルタイム制御)
DA8ch 1枚 (リアルタイム制御)
COM2ch 1枚 (リアルタイム制御)
画像 2枚
特殊 2枚
Windowsリアルタイム化により、タクト24%向上
「業界最高速に仕上がった!」と担当部長様談
「MOSBench EY」(入門版)は、半導体装置メーカ様が購入する本格製品「MOSBench」(本格版)のコアをそのまま使っています。安いから手抜きをしているということはありません。
なぜ業界の1桁少ない価格で提供できるのか?
それは、簡単にいうと、お客様が欲しい機能に絞った製品だからです。
具体的には、リアルタイムOS上に、当社が高速翻訳ソフト(リアルタイムインタープリタ)というソフトを開発して、搭載しています。
この環境は、リアルタイムOSの機能を制限していますが、逆に機械装置計測制御プログラムを短期間開発したい方にとっては、不要な情報が少なく、習熟が容易なのです。
このことによりお客様がリアルタイムOSのことをくわしく勉強せずに、とても簡単にリアルタイムIO制御を導入できるようになりました。
MOSBench開発画面でお客様がユーザタスク(IO制御プログラム)をC言語に似た「MOS言語」で開発します。
(「MOS言語」については、後で詳しく説明します。)
それを「MOSオブジェクト」という中間コードに変換します(ビルドします)。
その中間コードを高速翻訳ソフト(リアルタイムインタープリタ)が実行します。
低コスト化したMOSBench EY(モスベンチ・いいわい)の制限は?
大きく3つあります。
1、本格的なリアルタイムOSで開発したソフトより動作が遅いです。
「高速翻訳ソフト」はリアルタイムで動きます。「翻訳」なので処理時間が少し余分にかかります。
しかしながら、リアルタイム動作なので、Windows処理のような10msとか100msとか訳のわからない不安定な待ち時間はありません。
2、簡単にするために、リアルタイムOSの機能が限定されています。
・割り込み処理ができません。ポーリングしてください。
・メイルボックス、メッセージバッファがありません。共有変数というしくみを利用してください。
・タスクの優先順位がありません。ラウンドロビンです。順々にCPU時間を割り当てていきます。
3、自由にIOデバイスを選べません。
簡単にするために、リアルタイム制御できる資源は、PCIカードに制限されています。
現状対応しているPCIカードは以下になります。
DIO、AD、DA、COM(232)、COUNTER等があります。
| 機 能 |
メーカ |
形 式 |
機 能 |
最大枚数 |
| DIO |
CONTEC |
PIO-16/16L(PCI)H |
16IN,16OUT |
1 |
| DIO |
CONTEC |
PIO-32/32L(PCI)H |
32IN,32OUT |
1 |
| DIO |
CONTEC |
PIO-32/32F(PCI)H |
32IN,32OUT
高速 |
1 |
| DIO |
CONTEC |
PIO-32/32T(PCI)H |
32IN,32OUT
TTL |
1 |
| DIO |
CONTEC |
PIO-64/64L(PCI)H |
64IN,64OUT |
1 |
| IN |
CONTEC |
PI-128L(PCI)H |
128点IN |
4 |
| OUT |
CONTEC |
PO-128L(PCI)H |
128点OUT |
4 |
| AD |
CONTEC |
AD16-16U(PCI)EH |
16bit16ch.
1us/ch(保守品) |
2 |
| AD |
CONTEC |
AD16-16U(PCI)EV |
16bit16ch.
1us/ch |
2 |
| DA |
CONTEC |
DA12-4(PCI) |
12bit,4ch |
1 |
| DA |
CONTEC |
DA12-8(PCI) |
12bit,8ch |
1 |
| DA |
CONTEC |
DA12-16(PCI) |
12bit,16ch |
1 |
| COM |
CONTEC |
COM-2(PCI)H |
RS-232C,2ch |
1 |
| COM |
CONTEC |
COM-4(PCI)H |
RS-232C,4ch |
1 |
| COM |
CONTEC |
COM-8(PCI)H |
RS-232C,8ch |
1 |
| COUNTER |
CONTEC |
CNT24-4D(PCI)H |
24bit,差動,4ch(開発中) |
2 |
| COUNTER |
CONTEC |
CNT24-4(PCI)H |
24bit,TTL,4ch(開発中) |
2 |
| 省配線 |
AnyWire |
AP48-01 |
1024IN,1024OUT
62.5kHz,全4重モード,Word-Bus |
1 |
ご注意)
1、ADカード上のDA、DIO、カウンタは使用できません。
2、DAカード上のタイマ、トリガ入力は使用できません。
安いだけで新しいメリットは無いのか?
大きなメリットは、
(1)パソコン1台で、GUI+安定IO制御ができます。
(2)Windowsプログラマにも簡単にリアルタイムIO制御できます。
安定したIO制御がちょっと欲しいときに、使えます。
ラダーエンジニアとDレジスタ仕様の打ち合わせが不要です。
マイコン開発環境やFPGA開発環境を引っ張り出さなくて済みます。
細かなメリットは、7つあります。
(1) くりかえしになりますが、簡単にWindowsリアルタイムIO制御ができます。
リアルタイムOS機能として、制御に必要なことを公開していますので、習熟が容易です。入荷したその日からリアルタイムIO制御できます。
(2)パソコンが、 GUI(画面、ファイル操作)と簡単に連動できる、超高速マイコンになります。
AD,DA,COMのレジスタやタイミングを意識する必要がありません。関数経由で操作できるので、制御や計測のプログラムに専念できます。
(3) PCIカード用IO制御ソフト(デバイスドライバ)の導入が簡単です。
例えば、16IN/16OUTのパラレルIOカード(コンテック社PIO-16/16L(PCI)H)をリアルタイムIO制御したい場合を示します。設定ファイル編集ソフトで、このカードに対応する番号「1」をタイプして、保存、ソフトの再起動で、このパラレルIOカードをリアルタイムIO制御できるようになります。
(4) 1msリアルタイムサンプリングの動作波形表示、ロギングソフトが付いています。
リアルタイム対応しているPCIカードの任意のDIO32点,AD8点,DA4点の1msサンプリングの動作波形を表示させながら、開発したMOS言語プログラムのデバッグができます。
プログラム開発ゼロで、DIN入力、DOUT出力、AD入力、DA出力の1msサンプリング120秒間(12万行)のロギングができます。
(5) マルチタスクが簡単にできます。
100本のマルチタスクのワク組みを作ってあり、プログラムをそこへ登録するだけで、複数のプログラムが同時実行できます。
例えば、デューティが50%のパルス信号と33.3%のパルス信号を作りたかったら、2本タスクを立てるだけで仕事は終わり。パルス幅の比率が整数倍だから楽だけど、2.5倍ならどうする?とか考える必要がありません。
(6) AD,DA操作が[V]単位です。
パラメータファイルで、対象AD,DAカード選択、電圧レンジ選択できるようになっています。ですから、制御や計測のMOSプログラムはいつも[V]単位です。
16進数との変換は考える必要がありません。
(7) 普通のノートPCで動くシュミレータが付いています。
リアルタイム環境で動く高速翻訳ソフトを作ったので、これをWindowsで動くようにしました。
実物のDOUT出力、DA出力等は動きませんが、仮想のDOUT,DAを動かすことができます。
シミュレーション時の動作波形表示、ロギングソフトもあります。最小20ms周期サンプリングで動作します。
お客様の声:長野ケンウッド 製造部 小澤様
WindowsリアルタイムIO制御環境『MOSBench EY(モスベンチ・いいわい)』
をご採用いただいている
『株式会社長野ケンウッド 製造部 小澤氏』へのインタビューです。
長野ケンウッド様では、主にカーオーディオ用の電子部品実装基板の製造をされています。
MOSBench EYの適用装置は、『電子部品実装基板の外観検査装置』という機械です。画像処理、モータ制御(RS232C経由)、IO制御をWindowsパソコンで行っています。
片桐:「MOSBench EY」 を実際に使ってみて、良いところはどんなところでしょうか?
小澤氏:ビルドからオブジェクトのロードまでが速いことですね。
VBの重さに比べて、「MOSBench EY 」はめちゃくちゃ速いです。
VBは使わない機能がいっぱいあってわかりにくいですが、
「MOSBench EY 」は使いたい機能だけになっていて、
シンプルで軽快で使いやすいです。
装置制御に必要な機能に割り切っているところが好きです。
片桐:ありがとうございます。
では、「MOSBench EY」 の「一番良い!」というところがあれば、教えてください。
小澤氏:やはり
マルチタスク制御が簡単に、安定して動作するところです。
VB のマルチスレッドなどのように面倒な手続きを意識しなくても、
簡単にマルチタスク制御が実現できるところがよいですね。
片桐:VB と比べて、「MOSBench EY」のマルチタスク制御はどのように簡単なのでしょうか?
小澤氏:「MOSBench EY」 では、
プロセスが番号で明確に分けられていて、
プログラムを割り付けるだけでマルチタスク制御を実行でき本当に簡単です。
考えなくてもできてしまいます。
片桐:それでは、『安定して動作する』というのはどういうことでしょうか?
小澤氏:VB でマルチタスクを書くとプログラムが複雑になって、
装置を安定して動作させるのにスキルが必要です。
しかし、MOSBench EY ならシステムにおまかせでうまく動いています。
このあたりは
Windowsに優先してユーザプログラムを
リアルタイムマルチタスク動作させている効果だと思いますが?
片桐:はい。システムがマルチタスクのリアルタイム制御を提供しているので
お客様の作成したプログラムがWindowsに優先して実行されます。
そのほかに、「MOSBench EY」を使れば、改善できそうなところはありますか?
小澤氏:『実装基板の外観検査装置』で、
検査履歴の画像を検査実行中のパソコンを使って参照できるようにしたいですね。
片桐:どういうことですか?
小澤氏:従来装置では、検査をしながら、検査済み画像を見ようと
マウスをクリックすると、制御用通信データやIO データを取りこぼして、
装置が止まり、再起動ということがよくありました。
「オペレータには、検査が終わるまで、画像を開くな!」と指示しています。
しかし、「MOSBench EY」を使えば、検査に関わる制御がリアルタイムになって
優先度が上がり、マウスクリックで制御がおかしくならないと思います。
片桐:どうして、検査をしながら、画像が見れると良いのですか?
小澤氏:トレーサビリティの管理が厳しくなっていて、
先程の画像データが本当に良かったか?確認が必須です。
検査実行中に確認できれば、
タクトが上がるからです。
片桐:なるほど。
最後に、「MOSBench EY 」を使ってみてここが使いにくいというところはありますか?
小澤氏:C言語完全互換ではないため、少し戸惑いましたけど、
慣れるしかないですね。マニュアルには書いてあったのですが。
小澤氏:あとランゲージリファレンスとチュートリアルは、
「MOSBench EY」 と「MOSBench」本格版とで分けてあったほうがわかりやすいです。
片桐:そうですね。少しずつ改善していきます。
本日は貴重なお時間をいただき、ありがとうございました。
ここまで読んでみて、だいたいわかった。それで、
今すぐ、MOSBench EY(モスベンチ・いいわい)の価格を知りたい方は、
「MOSBench EY価格表」 ダウンロード
今すぐ、MOSBench EY(モスベンチ・いいわい)開発環境を体験してみたい方は、
「MOS言語開発環境体験版」ダウンロード
リアルタイム版の貸し出しは、「お問い合わせ」から申し込み願います。
ここから、より細かい説明です。
簡単にリアルタイムIO制御できる開発言語「MOS言語」とは?
簡単に言うとポインタがないC言語です。
機械制御、計測用のシステム関数を追加して、使いやすくしています。
リアルタイムOSの機械制御、計測用に必要な機能に絞って、システム関数を提供しています。
パソコンの豊富なメモリ、圧倒的な処理能力を利用し、OS機能を単純化しています。
難しいことを覚える時間は無いが、Windowsで高速高性能の制御を短期間に実現したいと言う方に最適です。
単純化してあるので、社内のOS教育(MOS教育)がとても簡単です。部下や協力会社への委託説明も短時間で済みます。
職場のみんなで(代理店のSEも含めて)Windows環境の高速高性能制御で、高付加価値製品を開発、展開、メンテしたいと言う会社(装置メーカ)で最大メリットを発揮します。
WindowsアプリからMOSプログラムの制御方法は?
Windowsアプリケーションから起動したり、パラメータを渡したりすることはできるのか?
当然、GUIからIO制御プログラムのコントロールをしたいです。
「MOSBench EY」では、
「MwControllerコンポーネント」というCOMインタフェースを提供しています。
MwControllerコンポーネントは、ユーザの作成したMOSオブジェクト(MOSプログラムを中間コードに変換して、リアルタイムインタプリタで実行できるように変換したファイル)に対して次のような操作を可能にします.
・ プロセスへ割り付けたオブジェクト名取得
・ MOSオブジェクトが割り付けられたプロセスの起動/停止、ランタイムエラーの管理
・ MOSオブジェクトのグローバル変数(配列含む)のリード/ライト
・ MOSオブジェクトが発生するイベントの許可/禁止
・ 共有変数のリード/ライト
・ IOポートのリード/ライト
MOSプログラムとWindowsアプリケーションで変数を共有できます。配列も可能です。
MOSプログラムからイベントを発行して、同期することが可能です。
簡単Windowsリアルタイム制御「MOSBench EY」の仕様概要
特徴
・Windows XP Professional SP3専用
・コンテック社の指定PCIカードをリアルアタイム制御可能
・AnyWire社の指定PCIカードをリアルタイム制御可能
・登録プログラム数 200本
・同時実行プロセス数 100本
・共有変数 65536個(排他制御機能兼用)
・各MOSプロセス内タイマー 20個
・各MOSプロセスからアプリケーションイベント、エラー発生イベント
■共有資源(MOSプロセス間、WIN32アプリケーション間)
| 共有資源 |
MOS
プロセス1 |
・・・ |
MOS
プロセス100 |
Windows Application
(VB等) |
| グローバル変数(注1) |
共有可能 |
・・・ |
共有可能 |
共有可能 |
| グローバル配列変数(注1) |
共有可能 |
・・・ |
共有可能 |
共有可能 |
共有変数(65536個)
short,long,float,double可能 |
共有可能 |
・・・ |
共有可能 |
共有可能 |
バーチャルIO
(共有フラグ)
1024点 |
共有可能 |
・・・ |
共有可能 |
共有可能 |
PCIカードの
DIO,AD,DA,COM(232)
COUNTER |
共有可能 |
・・・ |
共有可能 |
共有可能 |
注1) 変数を宣言したMOSプロセスとWindowsアプリケーションで1:1の共有可能。
■機能
・タスクはあらかじめ100本用意されています。割り付けるだけです。
・タスクは優先順位ありません。ラウンドロビンです。
・割込み処理ありません。すべてポーリングで行ってください。
・メイルボックス、メッセージバッファありません。100タスク間の共有変数を使用して通信してください。
カスタム仕様で、メッセージ通信対応版可能です。
・専用のセマフォありません。100タスク間の共有変数を使用して排他制御を行ってください。
・イベントフラグありません。100タスク間の共有変数のポーリングで行ってください。
・ユーザ制御可能なメモリプール管理機能はありません。システムが管理しています。
・ファイル管理機能ありません。Windowsアプリケーションで行ってください。WindowsアプリケーションとMOSプログラム間では、変数、変数配列を共有できます。
・MOSプログラム実行時のエラー処理は「ランタイムエラー」処理として、MOSプロセスを停止し、次の処理待ちになります。そのリカバリーシステムが組み込まれています。リターンコードに応じた処理を記述しないで済みます。
カスタム仕様で、「ランタイムエラー」としないで、リターンコード処理可能です。
その他、カスタム仕様で、各種機能追加可能です。お問い合わせください。
ここまで読んでみて、かなりイメージできた。
今すぐ、MOSBench EY(モスベンチ・いいわい)の価格を知りたい方は、
「MOSBench EY価格表」 ダウンロード
今すぐ、MOSBench EY(モスベンチ・いいわい)開発環境を体験してみたい方は、
「MOS言語開発環境体験版」ダウンロード
MOS言語でのWindowsリアルタイムIO制御、30日間無償Windowsシミュレータ
(シミュレータですので、リアルタイムではありません)
プログラム開発、実行環境を体験できます
リアルタイム版の貸し出しは、「お問い合わせ」から申し込み願います。
お問い合わせ デモ要請、見積り、リアルタイム版貸し出し
リアルタイム評価版貸し出しは、ソフトウェアCDとUSBキーの貸し出しになります。
30日間です。
お客様は、以下をご準備願います。
・XP-Professionalのパソコン
・CONTEC社のリアルタイム対応済みPCIカード
・IOケーブル、端子台