Multi−Packet
制御用プログラム開発ツール


Windowsアプリケーション開発において、こんな場面で効果を発揮します。




ワーク1つ1つに部品の型番や品質管理に使うデータなどの詳細な情報を対応させて管理したい。


多品種、少量生産のシステムを構築する場合、品種別の情報により生産ラインのフローを柔軟に変えたい。


時間待ちを含むシーケンシャルな処理をタイマーを使って記述しているが、ソースもシーケンシャルに簡潔に記述したい。


同時に多数のタスクを並行して実行したい。しかし、タスクとタスクの間の通信のプログラミングが煩雑にならないようにしたい。( メッセージID, メッセージエリアの構造体、データエリアの取得・開放などの管理の工数削減)


信頼性を上げるため、アプリケーションを複数のプロセスに分割したい。しかしプロセス間で通信するための工数は削減したい。


メッセージを受信した時の処理がcase 文やif 文等の羅列となりがちで、プロセス、スレッドにまたがる時系列的な処理の流れが掴みにくい。

Multi-Packet はメッセージ通信をスクリプトからの関数呼出しの形式で記述することで、
マルチタスクアプリケーションの開発効率・保守性を向上させます。


 開発の経緯
IPA 平成13年度未踏ソフトウェア創造事業
→IPA 未踏ソフトウェア創造事業

→平成13年度採択プロジェクト

プロジェクト: 生産ラインにおける制御用プログラム開発の効率化
プロジェクト・マネージャ
 

 

湯淺 太一 教授
京都大学教授
京都大学大学院情報学研究科通信情報システム専攻
プロジェクト実施管理組織 日本エンジェルズ・インベストメント株式会社
開発者
 
山田 周司
    sy_yamada@nifty.com
   有限会社 エスワイシステム
開発期間  平成13年7月〜平成14年2月
キックオフセミナー 平成13年8月9〜10日
中間報告会  平成13年11月1日
第43回プログラミング・シンポジウム ポスター発表 平成14年1月9〜11日
最終報告会 平成14年2月8〜9日
ITX2002Summer 出展 平成14年6月28〜29日  
IPA2003Spring 出展 平成15年5月22〜23日
IPAX Autumn 2003 出展 平成15年9月29〜30日
お立ち寄り頂きありがとうございました。

 本ツールを使用するにはBorland社のC++Builder5.0 とWindows98またはWindows2000, Windows XPが必要です。開発の目的及び全体構成、動作環境、評価など詳細については以下のリンク先をご覧ください。開発ツール"Tool.lzh"はご自由にダウンロードしていただけます。ご使用頂く際の条件を"Tool.lzh"の中の"ライセンス.txt"で説明しています。
(C++Builder5.0をお持ちでない方も、サンプル1-1、2-1をダウンロードして本ツールにより作成した実行ファイルの動作を確認できます。サンプルのソースファイルも合わせてご覧下さい。)
 → 概要、全体構成他   開発の目的、全体構成、動作環境、評価等
 → 外部仕様  入出力仕様、ライブラリの関数インターフェイス等
 → 操作手順書 本ツールを使用した開発方法を説明しています。
 → 検査用環境
 
 
 

 

本ツールが外部仕様を満たしていることをテストするためのスクリプト及びC++プロジェクトのソースファイルです。開発ツール及びサンプルはV1.02になりました。検査用環境はV1.0 のままですが、ソースファイルの互換性があるので検査用ソースファイルからV1.02のツールによりexeファイルを作成して動作を確認することができます。
 ダウンロード Ver1.02
  開発ツール   (Tool.lzh) 開発ツール一式を含んでいます。
  サンプル1-1  (lzh ファイル) 検査治具をモデルにしたデモの実行ファイルです。
  サンプル1-2  (lzh ファイル) サンプル1-1のソースファイルです。
  サンプル2-1

(lzh ファイル) 

パレタイジング(スクリプト×8,プロセス×2,
スレッド×7を使用したサンプル)のデモ実行ファイルです。
  サンプル2-2  (lzh ファイル) サンプル2-1のソースファイルです。
 よくある質問
 Windows は制御には使えないのでは?
→ FA現場ではよく使われています。用途によっては速度の遅いVisualBasic も採用されています。応答時間よりも画面の表示内容、画面の開発効率が重要な要素となる場合にパソコンが採用されるケースが多いのです。FAに使われるコンピュータは専用機なので負荷については予測ができます。サーバーのようにアクセスが集中して動作しなくなるということはありません。
 イベントはランダムに発生するので、シーケンシャルな記述は適していないのでは?
→ ランダムに単発のイベントが発生して、これについての処理が完了したら処理はおしまいという簡単なケースでは本ツールを使う必要はありません。
しかし、複数の機器を同期させてコントロールする場合には、ユーザからの指令、または外部からの入力など、キックとなるイベントが発生したら続けて一連の処理が実行されるというケースが少なくありません。本ツールではキックとなるイベントが発生した時点で、これを処理するパケットを生成するようにコーディングします。if文,goto文を使い条件によりフローを分岐させることもできます。
 今後の予定
Microsoft Visual C++6.0への移植
...VC++版がレンズの検査装置で既に3年間ほど順調に稼働しています。
  しかし、初めて触れる人にとっても使いやすいものにするためにツールのGUI化などの機能追加が必要と考えているため、 まだ公開できていません。

 


→ 戻る

→トップページ