JP2002259162A - 機器制御ソフトウェア開発支援システム - Google Patents

機器制御ソフトウェア開発支援システム

Info

Publication number
JP2002259162A
JP2002259162A JP2001058261A JP2001058261A JP2002259162A JP 2002259162 A JP2002259162 A JP 2002259162A JP 2001058261 A JP2001058261 A JP 2001058261A JP 2001058261 A JP2001058261 A JP 2001058261A JP 2002259162 A JP2002259162 A JP 2002259162A
Authority
JP
Japan
Prior art keywords
communication
control software
device control
unit
support system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2001058261A
Other languages
English (en)
Inventor
Yoichi Iwabuchi
洋一 岩渕
Atsushi Hirahara
厚志 平原
Masataka Bessho
正隆 別所
Junji Yamada
潤二 山田
Akiyoshi Nishimaki
明美 西巻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2001058261A priority Critical patent/JP2002259162A/ja
Publication of JP2002259162A publication Critical patent/JP2002259162A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】 実時間制約の厳しい機器制御ソフトウェアの
開発に好適で、ハードウェア動作の再現が容易なソフト
ウェア開発支援システムを提供する。 【解決手段】 通信情報抽出部30は、コントローラソ
フト10とその制御対象であるデバイス2との間でやり
とりされる通信をモニタし、モニタした通信内容ととも
に通信方向と通信時刻をで取得し、この情報を動作シナ
リオ記憶手段60に記憶する。シナリオ解釈実行部70
は、デバイス2を取り外した状態で、動作シナリオ記憶
手段60に記憶している情報を読み出し、個々の通信に
ついて、コントローラソフト10が送信側であればコン
トローラソフト60からの通信を待ち記憶している情報
と一致するかを調べ、デバイス2が送信側であれば記憶
している送信時刻まで待った後に記憶している通信内容
をコントローラソフト10に通信することでデバイス2
の動作を再現実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、制御対象の機器の
動作をシミュレートし、機器制御ソフトウェアの開発を
支援するシステムに関するものである。
【0002】
【従来の技術】(a)(特開平5−143260号公
報:「プリンタシミュレー夕装置」)には、開発しよう
とするソフトウェアが制御する対象であるハードウェア
装置をソフトウェアで代替することで、制御対象である
ハードウェアの開発完了を待たずに制御ソフトウェアの
開発を行なうことを可能とするプリンタシミュレータ装
置が提案されている。
【0003】(b)(特開平9−305389号公報:
「ソフトウェア開発支援のシミュレーション装置」)に
は、機器の動作を制御するソフトウェアの開発効率向上
を目的とする、ハードウェアシミュレータ装置が提案さ
れている。
【0004】(c)(特開平7−84832号公報:
「リアルタイムシステムシミュレーション装置」)に
は、オブジェクト間のメッセージの送受信の内容をメッ
セージパスとして格納し、更にはそれを解釈実行するリ
アルタイムシステムシミュレーション装置が提案されて
いる。
【0005】
【発明が解決しようとする課題】しかしながら、前述し
た従来提案の装置には以下の問題がある。
【0006】(a)(特開平5−143260号公報:
「プリンタシミュレータ装置」)で提案されている装置
では、プリンタハードウェアが発生する各種の事象を、
キーボードからの入力により疑似している。例えば、紙
づまりを疑似的に発生させる場合には、キーボードから
の入力により内部の情報テーブルの内容を変更し、テー
ブルの変更を検知した割り込み解析部が開発対象である
制御ソフトウェアに対し紙づまりの発生を通知するとい
う手法がとられている。
【0007】このため、開発者は、本来であれば、紙づ
まりを検知するセンサ位置を紙が通過するタイミングに
おいて発生するはずの紙づまりの事象を、実際のハード
ウェアでの動作タイミングとは無関係に発生させること
になり、実時間制約の厳しい組み込み型機器制御ソフト
ウェアの開発支援としては不十分である。
【0008】(b)(特開平9−305389号公報:
「ソフトウェア開発支援のシミュレーション装置」)で
提案されている装置では、ハードウェアの動作タイミン
グをデバイスの持つ属性(例えば、モータデバイスの属
性には回転速度を与えることができる)として与えるこ
とで、ハードウェアがもつ実時間制約を含めて再現でき
るようなシミュレー夕装置となっているが、 ・ハードウェア部品点数の多い装置に対しすべてのタイ
ミング属性値を与えることは現実的には非常に困難であ
る ・実機での動作は湿度/気温や使用年数といった外的要
因により左右され、事前に属性値として与えることは困
難である といった問題があり、近年のプリンタ/スキャナ/複写
機といった大規模かつ可動部の多い複雑な機器を制御す
る機器制御ソフトウェアの開発支援装置としては不適で
ある。
【0009】(c)(特開平7−84832号公報公
報:「リアルタイムシステムシミュレーション装置」)
で提案されている装置では、オブジェクト間の一連のメ
ッセージのやりとりを「シナリオ」と呼ばれる一群のメ
ッセージパスで与えることで、動作確認対象とする事象
を再現している。しかしながらシナリオの編集手段とし
ては、テキストエディタによる編集、もしくは、ハード
ウェアを疑似するシミュレータを動作させてメッセージ
パスを記憶する手法をとっているため、(a)と同様
に、実際のハードウェアでの動作タイミングとは無関係
に動作を規定することになり、実時間制約の厳しいシス
テムの開発には不適である。
【0010】また、ハードウェアの動作タイミングに依
存するソフトウェアの開発には、実際のハードウェア装
置を使用することも一般的であり、その場合には当然前
述のソフトウェアで構成するシミュレータでは実現が難
しい実時間制約の厳しい状況の動作確認を行なうことも
可能であるが、近年の高性能/高機能な機器制御では、
ソフトウェア開発に使用する目的で試作機を多数用意す
ることはコストの面で問題となっている。また、実際の
ハードウェアを操作し、紙づまりなど特定の事象を、何
度も再現性を持って発生させることは一般的に非常に困
難である。
【0011】本発明は、このような状況のもとでなされ
たもので、実時間制約の厳しい機器制御ソフトウェアの
開発に好適で、ハードウェア動作の再現が容易なソフト
ウェア開発支援システムを提供することを目的としてい
る。
【0012】
【課題を解決するための手段】前記目的を達成するた
め、本発明では、ソフトウェア開発支援システムを、次
の(1)ないし(5)のとおりに構成する。
【0013】(1)機器制御ソフトウェアとその制御対
象とするハードウェアとの間でやりとりされる通信をモ
ニタし、モニタした通信内容とともに通信方向と通信時
刻を取得する情報取得手段と、前記情報取得手段で取得
した情報を記憶する記憶手段と、前記記憶手段に記憶し
ている情報を読み出し、個々の通信について、前記機器
制御ソフトウェアが送信側であれば前記機器制御ソフト
ウェアからの通信を待ち記憶している情報と一致するか
を調べ、また制御対象とするハードウェアが送信側であ
れば記憶している送信時刻まで待った後に記憶している
通信内容を前記機器制御ソフトウェアに通信することで
前記ハードウェアの動作を再現実行する解釈実行手段
と、を備えた機器制御ソフトウェア開発支援システム。
【0014】(2)前記(1)記載の機器制御ソフトウ
ェア開発支援システムにおいて、前記通信内容,通信方
向,通信時刻の情報を外部に送信する送信手段を備えた
機器制御ソフトウェア開発支援システム。
【0015】(3)前記(1)または(2)記載の機器
制御ソフトウェア開発支援システムにおいて、通信内
容,通信方向,通信時刻の情報を外部から受信する受信
手段と、前記受信手段で受信した情報を前記記憶手段に
記憶させる制御手段と、を備えた機器制御ソフトウェア
開発支援システム。
【0016】(4)前記(1)ないし(3)のいずれか
に記載の機器制御ソフトウェア開発支援システムにおい
て、前記機器制御ソフトウェア内に、前記情報取得手段
と、前記制御対象とするハードウェアと通信を行う第一
の通信手段と、前記解釈実行手段と通信を行なう第二の
通信手段と、前記第一の通信手段と前記第二の通信手段
とを切り替える切り替え手段とを備えた機器制御ソフト
ウェア開発支援システム。
【0017】(5)前記(1)ないし(4)のいずれか
に記載の機器制御ソフトウェア開発支援システムと、こ
れに接続された開発ホストとを備えた機器制御ソフトウ
ェア開発支援システムであって、前記開発ホストは、前
記記憶手段から転送された前記通信内容,通信方向,通
信時刻の情報を格納するホスト側記憶手段と、キーボー
ド,マウスなどの入力手段と、前記入力手段からの入力
により、前記ホスト側記憶手段に格納されている前記情
報を編集する編集手段と、を備えた機器制御ソフトウェ
ア開発支援システム。
【0018】
【発明の実施の形態】以下本発明の実施の形態を機器制
御ソフトウェア開発支援システムの実施例により詳しく
説明する。
【0019】
【実施例】(実施例1)図1は、実施例1である“機器
制御ソフトウェア開発支援システム”の全体構成を示す
ブロック図である。
【0020】図1において、1は開発対象とする機器制
御ソフトウェアが動作するコントローラボードである。
10はコントローラボード1上で動作する機器制御ソフ
トウェア(以下コントローラソフトという)であり、通
常は、コントローラソフトコア部20及びデバイス通信
部50とから構成され、デバイス通信部50を介して制
御対象デバイス2上におかれたデバイス側ソフトウェア
110と通信を行なうことで、制御対象デバイス2を制
御する。
【0021】本実施例では、コントローラソフト10は
前述の構成に加え、制御対象デバイス側ソフトウェア1
10とコントローラソフトコア部20の間の通信情報を
モニタリングし、更に必要な情報を加えた後記憶する通
信情報抽出部30、及び制御対象デバイス2以外と通信
を行なう際に通信先を切り替えるための通信先切り替え
部30とから構成される。
【0022】60は通信情報抽出部30により抽出/作
成された動作シナリオを記憶する動作シナリオ記憶部で
ある。動作シナリオ記憶部60に記憶された情報は、シ
ナリオ解釈実行部70により解釈実行され、通信先切り
替え部40を介してコントローラソフトコア部20に対
し通信される。
【0023】また、動作シナリオ記憶部60に記憶され
た情報は、シナリオ送出部90を介して、コントローラ
ボード1外部にある、ワ一クステーションやPCなどの
開発ホスト3に送出され、開発ホスト3上におかれたシ
ナリオ転送部(受信部ともいえる)210により受信さ
れた後、ホスト側動作シナリオ記憶部230に格納記憶
される。
【0024】ホスト側動作シナリオ記憶部230に格納
記憶された情報は、シナリオ表示部250によりCRT
などの表示装置4に表示することができる。
【0025】また、表示装置4に表示された情報を見る
ことで、開発者は、キーボードやマウスなどの入力装置
5を使用して動作シナリオを修正及び編集することが可
能であり、その際には、入力受付部260,シナリオ編
集部240を使用する。
【0026】更に、開発ホスト3上のホスト側動作シナ
リオ記憶部230に記憶された情報は、ホスト側シナリ
オ解釈実行部220を使用して解釈実行することができ
る。開発ホスト側シナリオ実行部220は、コントロー
ラボード1上のホスト通信部80と通信を行い、通信さ
れた情報は通信先切り替え部40を介してコントローラ
ソフトコア部20に伝達される。
【0027】ここでは以下を仮定して実施例1の説明を
行なう。
【0028】コントローラボード1上で動作する機器制
御ソフトウェアとして、プリンタデバイス制御ソフトウ
ェア(コントローラソフト10)の開発を例に説明を行
なう。しかしながら、本実施例は特定のハードウェア制
御ソフトウェアの開発に依存するものではなく、例で示
すプリンタ以外にも、スキャナ装置や複写機といった機
器制御ソフトウェア般の開発に適用可能である。
【0029】また、コントローラソフト10は、プリン
タデバイス2を構成するモータなどの各種ハードウェア
を実際に制御しているプリンタデバイス側ソフトウェア
110と通信を行なうことでプリンタ制御を行なうこと
を仮定して説明を行なう。
【0030】本実施例では、コントローラソフト10を
開発対象のソフトウェアとして、プリンタデバイスを疑
似するシミュレータシステムについて説明を行なうが、
プリンタデバイス側のソフトウェア側に同様の機構を設
けることで、本実施例とは逆にコントローラボード側を
疑似するシミュレータシステムを構成することも、当然
ながら、同様に可能である。
【0031】図1に示した構成を使用してコントローラ
ソフト10の開発を行なう場合の作業内容を説明する。
【0032】まずはコントローラソフトコア部20の行
なうデバイス制御として検証したい事象を実際のハード
ウェアであるプリンタデバイス2を使用して発生させ、
その際にコントローラソフト10とプリンタデバイス側
ソフトウェア110とのやりとりを、通信情報抽出部3
0によりモニタし、時間情報をつけた後、動作シナリオ
記憶部60に格納する。
【0033】図2は、図1に示す通信情報抽出部30の
処理内容の詳細を示すフローチャートである。
【0034】図2を用いて通信情報抽出部30の動作を
説明する。
【0035】まずは、ステップ301(図ではS301
と記す、以下同様)でコントローラソフト10とデバイ
ス側ソフトウェア110との間で通信が行なわれたかど
うか調べる。通信が行なわれていなければ、ステップ3
01の処理を通信が行なわれるまで繰り返す。通信が行
なわれたかどうかを判断する手法には、ここで示したボ
ーリング方式(通信が行なわれたかどうかの調査を定期
的に繰り返すことで通信を検出する手法)の他にも、イ
ベントドリブン方式(通信が行なわれたことを割り込み
もしくはOSに用意されている監視機構からのコールバ
ックで検出する手法)などがあるが、どのような方式を
用いても構わない。
【0036】通信が行なわれたと判断された場合は、ス
テップ302に進み、通信の内容を取得する。通信の内
容としては、通信コマンドや通信バラメー夕が存在す
る。
【0037】ステップ303では通信の方向を取得す
る。本実施例では通信の方向としては、コントローラソ
フト10側からデバイス側ソフトウェア110ヘ送信さ
れる方向と、その逆に、デバイス側ソフトウェア110
からコントローラソフト10側に送信される方向とがあ
る。
【0038】通信方向の取得手法としては、通信内容か
ら判断する手法や、通信方向それぞれに通信情報をモニ
タするための手段を用意し、どちらの手段で検出された
かによって通信方向を識別する手法などがあるが、どの
ような方式を用いても構わない。
【0039】ステップ304では通信情報抽出部30内
で保持している時間を初期化し計時を開始する。これ
は、後続の通信が行なわれた際にその時刻を取得する
(ステップ310)ためである。
【0040】ステップ305では、前記ステップ30
2,303,304の各ステップを通じて取得した通信
情報を動作シナリオ記憶部60に動作シナリオとして記
憶する。
【0041】例えば、コントローラソフト10とデバイ
ス側ソフトウェア110の間で最初にやりとりされた通
信が、通信コマンドが「給紙指示」、通信パラメータが
「給紙段=上段、サイズ=A4」、で通信方向がコント
ローラソフト10側からデバイス側ソフトウェア110
だとすると、ステップ305の処理が終了した時点で、
動作シナリオ記憶部60に記憶される動作シナリオの内
容は図3(a)に示すようになる。
【0042】次にステップ306へ進み通信の終了かど
うかを判断する。通信の終了と判断された場合には、処
理を終了する。
【0043】後続の通信が存在する場合は、ステップ3
07へ進み通信が行なわれたかをステップ301で説明
したのと同じ手法で判断し、通信が検出されれば、ステ
ップ308へ進む。
【0044】ステップ308及びステップ309はそれ
ぞれ前述のステップ302及びステップ303と同じ処
理であるため説明を省略する。
【0045】次にステップ310では通信が行なわれた
時刻を取得する。これは前述のステップ304で初期化
し計時を開始した通信情報抽出部30内で保持している
時間をもとに、通信時刻を取得するものである。
【0046】ステップ311では、前記308,30
9,310の各ステップを通じて取得した通信情報を動
作シナリオとして記憶し、再び次の通信に備えステップ
306へ戻る。
【0047】図2で示した処理を行なうことで格納記憶
された通信情報の具体例を図3(b)に示す。
【0048】図3(b)は2ページからなるデータを印
刷する場合の動作シナリオ記憶部60に記憶される動作
シナリオの例である。E601,E602,E603,
E604,E609が1ページ目の印刷に関する通信の
記録であり、E605,E606,E607,E60
8,E610が2ページ目の印刷に関する通信の記録で
ある。
【0049】動作シナリオとして記憶する内容は、通信
コマンドの種類を識別するための通信コマンド名、通信
方向(図3(b)では、コントローラソフト10からデ
バイス側ソフトウェア110ヘのコマンド送出を「コ→
デ」、逆に、デバイス側ソフトウェア110からコント
ローラソフト10ヘのコマンド送出を「デ→コ」として
表現している)、通信が行なわれた通信時刻、通信コマ
ンドに付随する通信内容を表す通信パラメータから構成
されている。
【0050】本実施例では、通信時刻は最初に行なわれ
た通信を起点(0ms)とし、以降、最初の通信からの
経過時間を記録しているが、通信を再現することが可能
であれば、通信が行なわれた時刻を記録したり、CPU
や使用するリアルタイムOSの動作クロック単位で表さ
れた時刻を記録する方式であっても構わない。
【0051】一般にプリンタの制御では、スループット
向上のため先行給紙を行なうことが普通であり、制御の
流れは図3(b)のE605のように、次の出力ページ
が存在する場合には、コントローラソフトはあらかじめ
給紙をプリンタデバイス側ソフトウェアに対し指示して
おき、プリンタデバイス側ソフトウェアが、先行するペ
ージの紙の位置をみて、給紙が可能になったタイミング
で給紙を行ない、図3(b)E606のように給紙完了
を返すことになる。
【0052】給紙が可能となるタイミングは、先行する
紙の給紙位置、先行する紙のサイズ、先行する紙の印字
タイミング、紙搬送速度、給紙段から給紙完了位置まで
の経路長などさまざまな要因により決定されるため、給
紙完了が返るタイミングを実機を動かすことなしに正確
に知ることは困難である。
【0053】これが、このような実時間制約のある動作
の検証にこれまでは実機のみが使用されてきた大きな要
因である。
【0054】また、図3(b)E601及びE602の
時間差が1000msであることから、2ページ目の給
紙は、E606に示した給紙完了時間である5000m
sより1000ms先行して、すなわちに通信開始から
4000ms以内にの2ページ目の給紙指示を送出しな
いと、先行する紙との紙間隔が必要以上に広がり最大の
スループットが得られないことがわかる。
【0055】本発明は、実時間制約のある動作タイミン
グを実機を使用して調べた結果を記憶し、それを解釈実
行することで、2回目以降の動作確認は実機なしで行な
えるようなシステムを提案するものである。
【0056】一度動作シナリオ記憶部60に格納された
動作シナリオは、シナリオ解釈実行部70により解釈実
行される。実行の際には、プリンタデバイス側ソフトウ
ェア110は不要であり、図1の1に示したコントロー
ラボード1単体での動作確認が可能である。
【0057】図4は、図1に示すシナリオ解釈実行部7
0の処理内容の詳細を示すフローチャートである。
【0058】図4を用いてシナリオ解釈実行部70の動
作を説明する。
【0059】まずは、ステップ701で動作シナリオ記
憶部60から最初の通信コマンドを読み出す。図3
(b)で示した動作シナリオの例では、E601の「給
紙指示」通信コマンドが読み出されることになる。
【0060】次に、ステップ702で読み出した通信コ
マンドの通信方向を調べ、「コ→デ」であればステップ
703へ、「デ→コ」であればステップ705へ進む。
【0061】図3(b)で示した動作シナリオの例で
は、E601の「給紙指示」通信コマンドの通信方向は
「コ→デ」であるためステップ703へ進むことにな
る。
【0062】ステップ703ではコントローラソフト1
0からの通信を待つ。これは、通信方向「コ→デ」がコ
ントローラソフト10側からデバイス2側への送信を示
しているためである。通信は、図1中のコントローラソ
フトコア部20から発せられ、通信情報抽出部30及び
通信先切り替え部40を介して、シナリオ解釈実行部7
0に届くことになる。
【0063】ここで、最初に動作シナリオを作成するの
に使用した通信情報抽出部30を再び使用しているの
は、ハードウェアデバイスを使用した際に格納記憶した
動作シナリオとシナリオ解釈実行部を使用した際に記録
される動作シナリオを実行後に比較検討することに配慮
したためである。
【0064】また、シナリオ解釈実行部70を使用して
の動作では、コントローラソフト10内のデバイス通信
部50は使用しないため、通信先切り替え部40により
コントローラソフト10とコントローラソフト外部との
通信はシナリオ解釈実行部70を使用するように通信先
の切り替えを行なっている。
【0065】ステップ704でコントローラソフト10
から送られてきた通信コマンドと先にステップ701で
読み出した通信コマンドを比較する。比較の結果、通信
パラメータを含め完全に一致していれば、ステップ70
6へ進み、動作シナリオに記された通信時刻を基にシナ
リオ解釈実行部70で保持している時間を初期化した
後、計時を開始する。
【0066】図3(b)の例では、「給紙指示」がバラ
メー夕「給紙段=上段,サイズ=A4」で着信すれば、
ステップ701で読み出した通信コマンドと一致するこ
とになり、ステップ706へ進み、図3(b)中E60
1で示した例では通信時刻「0ms」となっているた
め、シナリオ解釈実行部70で保持している時間を「0
ms」に初期化し、計時を開始することになる。
【0067】ステップ704で、コントローラソフト1
0から送られてきた通信コマンドと先にステップ701
で読み出した通信コマンドを比較した結果、通信パラメ
ータを含め完全に一致していなければ、ステップ714
の例外処理へ進む。ステップ714の処理の詳細につい
ては後述する。
【0068】一方、図3(b)の例には該当しないが、
ステップ702で“NO”と判断され、ステップ705
へ進んだ場合は、最初にステップ701で読み出した通
信コマンドが「デ→コ」すなわち、デバイス2側からコ
ントローラソフト10側への送信であるため、図1中の
シナリオ実行解釈部70から通信先切り替え部40に対
し、ステップ701で読み出した通信コマンドに通信バ
ラメータを付加して送出する。通信先切り替え部40に
対し送出された通信コマンドは、前述とは逆に、通信情
報抽出部30を介しコントローラソフトコア部20に届
くことになる。
【0069】ステップ705で通信コマンドを送出後、
ステップ706で時間を初期化し、計時を開始する。
【0070】次にステップ707で、動作シナリオに未
処理の通信コマンドがあるかどうか調べる。未処理の通
信コマンドがなければシナリオ解釈実行の完了であり、
処理を終了する。
【0071】未処理の通信コマンドがあればステップ7
08へ進み、通信コマンドを一つ読み出す。
【0072】図3(b)に示した例では、E601につ
いての処理が終了した状態であり、E602以降の通信
コマンドが未処理であるため、ステップ708へ進み、
E602の通信コマンド「給紙完了」を読み出す。
【0073】ステップ709では、ステップ708で読
み出した通信コマンドの通信方向を調べ、「コ→デ」で
あればステップ710へ「デ→コ」であればステップ7
12へ進む。図3(b)で示した動作シナリオの例で
は、E602の「給紙完了」通信コマンドの通信方向は
「デ→コ」であるためステップ712へ進むことにな
る。
【0074】ステップ712では、ステップ708で読
みだした通信コマンドの通信時刻を調べ、送出のタイミ
ングになるまで待機した後ステップ713で通信コマン
ドの送出を行ない、再び、ステップ707へ戻る。
【0075】図3(b)で示した動作シナリオの例で
は、E602の「給紙完了」通信コマンドの通信時刻は
「1000ms」であるため、ステップ706で初期化
し計時を開始したシナリオ解釈実行部70が保持する時
間が1000msを計時するまで待つことになる。その
後、ステップ713で通信コマンド「給紙完了」の送出
を行ない、ステップ707へ戻る。すなわち、シナリオ
解釈実行部70が制御対象デバイス2の動作を肩代わり
する。
【0076】ステップ707では、図3(b)中E60
3以降の通信コマンドについて未処理であるため“YE
S”と判断され、ステップ708へ進み、ステップ70
8で図3(b)中E603として示した通信コマンド
「イメージ要求」を読み出す。通信コマンド「イメージ
要求」の通信方向は、「デ→コ」であるため、E602
の「給紙完了」と同様の処理を、ステップ709,ステ
ップ712,ステップ713で行ない、再びステップ7
07へ戻る。
【0077】ステップ707では、図3(b)中E60
4以降の通信コマンドについて未処理であるため“YE
S”と判断され、ステップ708へ進み、ステップ70
8で図3(b)中E604として示した通信コマンド
「イメージ送信」を読み出す。通信コマンド「メージ送
信」の通信方向は、「コ→デ」であるため、ステップ7
09で“YES”と判断され、ステップ710へ進む。
【0078】ステップ710ではコントローラソフト1
0からの送信を待ち、ステップ711でコントローラソ
フト10から着信した通信コマンドが先にステップ70
8で読み出した通信コマンドと通信時刻,バラメー夕を
含め一致するかどうか調べ、一致すればステップ707
へ戻る。
【0079】図3(b)中E604の例では着信した通
信コマンドが「イメージ送信」かどうか、着信時刻は
「1500ms」かどうか、格納記憶された通信パラメ
ータ「イメージデータ」と一致するかどうか調べること
になる。この際、通信時刻に関しては動作の度に若干の
差異が出ることが予想されるため、多少の許容範囲を設
定し(例えば±100msなど)、一致,不一致を調べ
る必要がある。通信時刻の許容範囲を加味した上で、一
致と判断されれば、ステップ707へ戻ることになる。
ステップ711で不一致と判断された場合はステップ7
14の例外処理へ進む。
【0080】ステップs714の処理の詳細については
後述する。
【0081】以上図3(b)中E604まで説明を行な
ったが、同様に処理を縦続し、E610の通信コマンド
「印刷完了」の送出の送出をステップ713で行なった
後、ステップ707へ戻り、ステップ707で次に読み
出す通信コマンドが存在しないため“NO”と判断さ
れ、処理が終了する。
【0082】次に、ステップ714の例外処理について
説明する。
【0083】ステップ714が実行されるのは、動作シ
ナリオ記憶部60の動作シナリオに保持されている内容
の想定外のデータの着信がありそれ以上の解釈実行が不
可能な場合であるため、以降のコントローラ10側の処
理を中断させる必要がある。そのため、ステップ714
では例外の発生をコントローラ10側に通信することに
なる。
【0084】通常のデバイスには、紙づまりやトナー切
れなど回復不能のエラーが起こった場合を想定して、デ
バイス側からコントローラ側に対し例外の発生を通知す
る通信コマンドが用意されている。ステップ714では
それを使用して例外発生の通知を行なう。
【0085】但し、前述の説明では、ステップ704,
711での一致/不一致の判断は、パラメータを含め通
信内容が完全に一致するかどうかで判断することとした
が、実際には通信コマンド毎に許容範囲が存在するた
め、例外の発生とみなすかどうかの判断についてはそう
いった許容範囲を加味することも可能である。
【0086】例えば、図3(b)の例ではE601の通
信コマンド「給紙指示」では、通信バラメー夕として
「給紙段」と「サイズ」を例に挙げている。その内、
「給紙段」については、給紙段によって給紙完了の位置
までの経路長が変わるため、デバイス側が通信コマンド
「給紙完了」を出すまでの時間間隔(本例では1000
ms)が変わる可能性があり、例えば「給紙段=下段」
と「給紙段=上段」との違いであれば、不一致と判断す
るのが適切である。
【0087】しかしながら、給紙完了位置までに紙が動
く長さは紙の先頭が移動する長さであり「サイズ」には
無関係であるため、「サイズ=A4」であっても「サイ
ズ=A3」であっても、通信コマンド「給紙完了」まで
の時間間隔(本例では1000ms)は不変と考えるこ
とができ、許容範囲内での一致と判断し動作を継続する
ことも可能である(但し、図3(b)の例のように後続
のページがある場合は、後続のページの給紙開始時刻に
影響するため、許容範囲とみなすことはできない)。
【0088】より実際的には、まずは完全一致以外はス
テップ714の例外処理を行ない、その都度、通信内容
を見て不一致となった項目を調べ、一致/不一致の判断
に使用できる判断基準を暫時追加していくのが適切だと
思われる。
【0089】以上図3(b)、図4を使用し、動作シナ
リオ60及びシナリオ解釈実行部70の処理内容の詳細
を説明した。
【0090】以上説明したように、本実施例によれば、
実時間制約のある機器制御ソフトウェアの開発に際し、
実際の動作タイミングによる動作検証を、最小限のハー
ドウェアデバイスを使用して行なうことができる。
【0091】また、動作シナリオの作成を実機を使用し
てできるようにしたことで、これまで作成が難しかった
時間制約のある動作シナリオを容易に作成することが可
能となる。
【0092】すなわち、実時間制約の厳しい機器制御ソ
フトウェアの開発に好適で、ハードウェア動作の再現が
容易なソフトウェア開発支援システムを提供することが
できる。
【0093】以上の実施例では、動作シナリオ記憶部6
0及びシナリオ解釈実行部70が、制御対象デバイスと
実際に接続し動作シナリオを格納記憶したコントローラ
ボード1上におかれているものとして説明を行なった
が、動作シナリオ記憶部60に記憶された動作シナリオ
を、図1中のシナリオ転送部90とホスト側シナリオ転
送部210とによりデバイスがもつI/Fを使用して例
えばワークステーションなどの外部装置へ取り出し、再
び動作確認を行なうコントローラボードに動作シナリオ
の内容をダウンロードすることで、制御対象デバイスと
一度も接続を行なっていないコントローラボードでも前
述のシナリオ解釈実行を行なうことが可能である。
【0094】これにより、複数の開発者間で動作シナリ
オを共有することが可能であり、更には、複数の開発者
に対し一台のプリンタデバイスがあれば、実時間制約の
ある動作の検証を同時並行的に進めることができ、デバ
イス試作機の節約及び開発効率の向上が期待できる。
【0095】(実施例2)前述の実施例1では、コント
ローラボード上においたシナリオ解釈実行部を使用して
動作の再現を行なっているが、コントローラボードのR
AM/ROM容量などのハードウェアの制約によって
は、コントローラボード上に実行解釈部をおくことが難
しい場合がある。そういった場合は、ワークステーショ
ンなどコントローラボード外部にある装置(開発ホスト
3)上にシナリオ解釈実行部を配し、実施例1で示した
のと同様の効果を得ることができる。この例を実施例2
として以下に説明する。システム構成は実施例1と同様
なので、図1を援用する。
【0096】実施例2である“機器制御ソフトウェア開
発支援システム”の詳細を図1のシステム構成を用いて
以下に説明する。
【0097】実機と接続してコントローラボード1上に
動作シナリオを作成し、シナリオ転送部90と、ワーク
ステーションなどのコントローラボード外部の開発ホス
ト3上のホスト側転送部210を使用して動作シナリオ
の内容を開発ホスト3上に取り出し、ホスト側動作シナ
リオとして格納記憶するところまでは実施例1と同様で
ある。
【0098】開発ホスト3上におかれたホスト側動作シ
ナリオはホスト側シナリオ解釈実行部220により解釈
実行される。
【0099】ホスト側シナリオ解釈実行部220の処理
の詳細は、コントローラボード1上のシナリオ解釈実行
部70、すなわち、図4で示したフローチヤートの例と
同じものである。
【0100】コントローラボード1上のシナリオ解釈実
行部70はコントローラソフト10内の通信先切り替え
部40と直接通信を行なったが、ホスト側シナリオ解釈
実行部220はコントローラボード1上にはないため、
一旦コントローラボード1上のホスト通信部80と通信
を行なった後、通信内容についてはコントローラソフト
10内の通信先切り替え部40に渡されることになる。
【0101】ホスト側シナリオ解釈実行部220を使用
しての動作では、コントローラソフト10内のデバイス
通信部は使用しないため、通信先切り替え部40により
コントローラソフト10とコントローラソフト外部との
通信はホスト通信部80を使用するよう通信先の切り替
えを行なっている。
【0102】動作シナリオの内容をホスト側シナリオ解
釈実行部220により開発ホスト3上に取り出すこと
で、シナリオ表示部250により、開発ホスト3に備え
られたCRTなどの表示装置4に表示することができ
る。
【0103】これにより、ホスト側動作シナリオを複数
蓄積し、開発者の指示で解釈実行を行なう動作シナリオ
の内容を選択したり、更には、シナリオ編集部240を
用いることで、動作シナリオを修正し新たな動作シナリ
オを作成を容易に行なうことができる。
【0104】図5(a),(b)は図3(b)を修正編
集することで新たに作成した動作シナリオの例である。
【0105】図3(b)中E606で示した給紙完了部
分の通信時刻を図6(a)E616では1000ms早
く、図5(b)E626では1000ms遅く設定して
いる。このようにすることで、実際の制御対象デバイス
の振舞いを中央値とした許容範囲でコントローラソフト
の動作検証を行なうことも可能であり、また、制御対象
デバイス側のタイミングの変更を考える際の指針とする
ことができる。
【0106】
【発明の効果】以上説明したように、本発明によれば、
実時間制約の厳しい機器制御ソフトウェアの開発に好適
で、ハードウェア動作の再現が容易なソフトウェア開発
支援システムを提供することができる。
【0107】詳しくは、実時間制約のある機器制御ソフ
トウェアの開発に際し、実際の動作タイミングによる動
作検証を、最小限のハードウェアデバイスを使用して行
なうことができる。
【0108】また、動作シナリオの作成を実機を使用し
てできるようにしたことで、これまで作成が難しかった
時間制約のある動作シナリオを容易に作成することが可
能となる。
【0109】また、実際のタイミングを中央値とし、タ
イミングを変更しながら動作検証を行なうことで、開発
対象ソフトウェアのタイミング面での許容範囲を知るこ
とができる。
【図面の簡単な説明】
【図1】 実施例1のシステム構成を示すブロック図
【図2】 通信情報抽出部の動作を示すフローチヤート
【図3】 通信記録の例を示す図
【図4】 シナリオ解釈実行部の動作を示すフローチャ
ート
【図5】 実施例2により編集した動作シナリオの例を
示す図
【符号の説明】
1 コントローラボード 2 制御対象デバイス 10 コントローラソフト 60 動作シナリオ記録部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 別所 正隆 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 山田 潤二 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 西巻 明美 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 Fターム(参考) 5B042 GB05 HH06 HH07 HH11 MB01 MC09 MC35 5B048 DD01 DD17

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 機器制御ソフトウェアとその制御対象と
    するハードウェアとの間でやりとりされる通信をモニタ
    し、モニタした通信内容とともに通信方向と通信時刻を
    取得する情報取得手段と、 前記情報取得手段で取得した情報を記憶する記憶手段
    と、 前記記憶手段に記憶している情報を読み出し、個々の通
    信について、前記機器制御ソフトウェアが送信側であれ
    ば前記機器制御ソフトウェアからの通信を待ち記憶して
    いる情報と一致するかを調べ、また制御対象とするハー
    ドウェアが送信側であれば記憶している送信時刻まで待
    った後に記憶している通信内容を前記機器制御ソフトウ
    ェアに通信することで前記ハードウェアの動作を再現実
    行する解釈実行手段と、を備えたことを特徴とする機器
    制御ソフトウェア開発支援システム。
  2. 【請求項2】 請求項1記載の機器制御ソフトウェア開
    発支援システムにおいて、 前記通信内容,通信方向,通信時刻の情報を外部に送信
    する送信手段を備えたことを特徴とする機器制御ソフト
    ウェア開発支援システム。
  3. 【請求項3】 請求項1または2記載の機器制御ソフト
    ウェア開発支援システムにおいて、 通信内容,通信方向,通信時刻の情報を外部から受信す
    る受信手段と、 前記受信手段で受信した情報を前記記憶手段に記憶させ
    る制御手段と、を備えたことを特徴とする機器制御ソフ
    トウェア開発支援システム。
  4. 【請求項4】 請求項1ないし3のいずれかに記載の機
    器制御ソフトウェア開発支援システムにおいて、 前記機器制御ソフトウェア内に、前記情報取得手段と、
    前記制御対象とするハードウェアと通信を行う第一の通
    信手段と、前記解釈実行手段と通信を行なう第二の通信
    手段と、前記第一の通信手段と前記第二の通信手段とを
    切り替える切り替え手段とを備えたことを特徴とする機
    器制御ソフトウェア開発支援システム。
  5. 【請求項5】 請求項1ないし4のいずれかに記載の機
    器制御ソフトウェア開発支援システムと、これに接続さ
    れた開発ホストとを備えた機器制御ソフトウェア開発支
    援システムであって、 前記開発ホストは、前記記憶手段から転送された前記通
    信内容,通信方向,通信時刻の情報を格納するホスト側
    記憶手段と、 キーボード,マウスなどの入力手段と、 前記入力手段からの入力により、前記ホスト側記憶手段
    に格納されている前記情報を編集する編集手段と、を備
    えたことを特徴とする機器制御ソフトウェア開発支援シ
    ステム。
JP2001058261A 2001-03-02 2001-03-02 機器制御ソフトウェア開発支援システム Withdrawn JP2002259162A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001058261A JP2002259162A (ja) 2001-03-02 2001-03-02 機器制御ソフトウェア開発支援システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001058261A JP2002259162A (ja) 2001-03-02 2001-03-02 機器制御ソフトウェア開発支援システム

Publications (1)

Publication Number Publication Date
JP2002259162A true JP2002259162A (ja) 2002-09-13

Family

ID=18918010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001058261A Withdrawn JP2002259162A (ja) 2001-03-02 2001-03-02 機器制御ソフトウェア開発支援システム

Country Status (1)

Country Link
JP (1) JP2002259162A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007510992A (ja) * 2003-11-10 2007-04-26 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 制御システムをシミュレーションおよび検証するためのシミュレーションシステムおよびコンピュータにより実施される方法
JP2007133579A (ja) * 2005-11-09 2007-05-31 Hitachi High-Technologies Corp 産業用装置の仮想シミュレーションシステムおよび装置コントローラ
JP2009176186A (ja) * 2008-01-28 2009-08-06 Tokyo Electron Ltd プログラムテスト装置、およびプログラム
JP2010020561A (ja) * 2008-07-10 2010-01-28 Ricoh Co Ltd 情報処理装置、画像処理装置、ソフトウェア動作テスト方法、ソフトウェア動作テストプログラム、及びそのプログラムを記録した記録媒体
JP2010157108A (ja) * 2008-12-26 2010-07-15 Canon Inc ソフトウエア評価方法及びそれを実現する情報処理装置
JP2013045177A (ja) * 2011-08-22 2013-03-04 Canon Inc 情報処理装置及びプログラム
JP2014029639A (ja) * 2012-07-31 2014-02-13 Canon Inc 情報処理装置およびその方法
JP5855729B1 (ja) * 2014-10-31 2016-02-09 株式会社Pfu スキャナデモンストレータ、スキャナデモンストレート方法、および、プログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007510992A (ja) * 2003-11-10 2007-04-26 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 制御システムをシミュレーションおよび検証するためのシミュレーションシステムおよびコンピュータにより実施される方法
JP2007133579A (ja) * 2005-11-09 2007-05-31 Hitachi High-Technologies Corp 産業用装置の仮想シミュレーションシステムおよび装置コントローラ
JP2009176186A (ja) * 2008-01-28 2009-08-06 Tokyo Electron Ltd プログラムテスト装置、およびプログラム
WO2009096322A1 (ja) * 2008-01-28 2009-08-06 Tokyo Electron Limited プログラムテスト装置、およびプログラム
CN101925883A (zh) * 2008-01-28 2010-12-22 东京毅力科创株式会社 程序测试装置以及程序
JP2010020561A (ja) * 2008-07-10 2010-01-28 Ricoh Co Ltd 情報処理装置、画像処理装置、ソフトウェア動作テスト方法、ソフトウェア動作テストプログラム、及びそのプログラムを記録した記録媒体
JP2010157108A (ja) * 2008-12-26 2010-07-15 Canon Inc ソフトウエア評価方法及びそれを実現する情報処理装置
JP2013045177A (ja) * 2011-08-22 2013-03-04 Canon Inc 情報処理装置及びプログラム
JP2014029639A (ja) * 2012-07-31 2014-02-13 Canon Inc 情報処理装置およびその方法
JP5855729B1 (ja) * 2014-10-31 2016-02-09 株式会社Pfu スキャナデモンストレータ、スキャナデモンストレート方法、および、プログラム
US9686434B2 (en) 2014-10-31 2017-06-20 Pfu Limited Scanner demonstrator, method of scanner demonstration, and computer program product

Similar Documents

Publication Publication Date Title
US7529653B2 (en) Message packet logging in a distributed simulation system
JP4776652B2 (ja) プリントエンジン装置の能力を決定する方法
JP2002259162A (ja) 機器制御ソフトウェア開発支援システム
US7428066B2 (en) Printing apparatus and method for verifying a printer controller
JPH0546435A (ja) 自動テスト装置および自動テスト方法
JPH10312315A (ja) ソフトウェア/ハードウェア協調シミュレーション方式
US6490544B1 (en) System for testing a multi-tasking computing device
JPH10124343A (ja) モデルシミュレート装置および方法、モデル作成装置および方法、情報記憶媒体
JPH09163060A (ja) ファクシミリ装置およびその使用方法
JP2010102372A (ja) データ処理装置、検証システム、データ処理装置検証方法
JP2002007483A (ja) スキャナシミュレータ装置及びスキャナシミュレーション方法
JP2004021461A (ja) シミュレータ装置
JP4400097B2 (ja) 印刷装置、印刷制御方法、プログラム及び記録媒体
JP2002326430A (ja) プリントエンジンシミュレータ
JP4350343B2 (ja) 印刷制御装置、印刷制御方法、プログラム及び記憶媒体
JP3962597B2 (ja) プリンタエミュレート装置、プリンタエミュレート方法、記憶媒体およびプログラム
JPS62235631A (ja) 印字制御装置
JPH09282115A (ja) プリンタ装置及びプリント方法
JP4318275B2 (ja) 画像形成装置
JP6376142B2 (ja) データ処理装置
JP2007164348A (ja) エミュレータ
JP3278100B2 (ja) 画像処理装置
JP2009037399A (ja) コンフィギュレーションコード生成装置およびコンフィギュレーションコード生成装置用プログラム
JP2020173634A (ja) シミュレータープログラムの製造方法、シミュレータープログラム及びシミュレーター装置
JP2020173586A (ja) シミュレータープログラムの製造方法、シミュレータープログラム及びシミュレーター装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080513