プログラム検証装置およびプログラム検証方法
【課題】搬送装置の制御プログラムの検証を効率的に行う。
【解決手段】搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションする際に、制御プログラムの実行位置の履歴と、仮想搬送装置における搬送状態の履歴を、シミュレーション時刻と関連付けて記録する。そして、該搬送状態の履歴から搬送のエラー状態(W21,W23)を検出し、さらに、該エラー状態のシミュレーション時刻に対応する制御プログラムの実行位置(W22)を検出する。これにより、エラー発生時における搬送状態および制御プログラムの実行位置を容易に特定できる。
【解決手段】搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションする際に、制御プログラムの実行位置の履歴と、仮想搬送装置における搬送状態の履歴を、シミュレーション時刻と関連付けて記録する。そして、該搬送状態の履歴から搬送のエラー状態(W21,W23)を検出し、さらに、該エラー状態のシミュレーション時刻に対応する制御プログラムの実行位置(W22)を検出する。これにより、エラー発生時における搬送状態および制御プログラムの実行位置を容易に特定できる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シート状の被搬送体を搬送する搬送機構の制御プログラムを検証するプログラム検証装置およびプログラム検証方法に関する。
【背景技術】
【0002】
近年、シミュレーション技術を用いて計算機内に仮想的に制御対象装置を構築し、該制御対象装置を用いて制御プログラムを検証することが行われている。例えば、シート状被搬送体を搬送する制御プログラムの設計や検証を行うために、シミュレーションにより構築した仮想的な搬送装置を用いる例が知られている。
【0003】
このような検証を行う例として、例えば制御プログラムと連動して、仮想的な搬送装置内のシート状被搬送体の変形挙動を3次元モデルによりシミュレートする技術が知られている(例えば、特許文献1参照)。
【0004】
また一方で、ソースプログラムの検証時に異常動作が発生した場合に、ソースコードの修正箇所を利用者に提示する技術がある。この例としては、ソースプログラムへの入力項目と対応する出力項目の期待値を利用者が与え、ソースコードの修正箇所を提示する技術が知られている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002-140372号公報
【特許文献2】特許第3058050号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記特許文献1に記載された技術によれば、コンピュータ上に構成された仮想搬送装置とその制御プログラムを連動させてシミュレーションを行うことが可能である。これにより、制御プログラムの不具合により発生する仮想搬送装置の異常動作や異常状態の発生を確認することができる。しかしながらこの技術は、利用者に対し、搬送装置の異常動作および異常状態が発生したという事象を提示するのみである。したがって、該事象が提示された場合に、制御プログラムのソースコード上で対応すべき修正箇所を特定するには、利用者の大きな作業負荷を要した。具体的には、利用者がシミュレーションを繰り返し実行することで修正箇所を試行錯誤的に絞り込んでいったり、シミュレーション実行中に出力された膨大なトレースログを解析して修正箇所を特定することが多かった。近年では、検証項目の膨大化に伴い、制御プログラム開発時の異常動作の発生件数も増加することが考えられるため、このような解析作業にさらに多くの工数を要することとなる。
【0007】
また、上記特許文献2に記載された技術によれば、制御プログラムのソースコード上の修正箇所が自動的に特定されるが、制御プログラムへの入力項目に対応する出力項目の期待値を利用者が入力する必要がある。特にシート状被搬送体を搬送する制御プログラムにおいては、期待値として、例えば時刻毎の被搬送体の位置情報を与えることが考えられるが、データ量が膨大となってしまい、このような期待値を利用者が入力することは困難である。さらに、設計変更により仮想搬送装置の構成が変更される場合や、シート状被搬送体の長さ、厚さ、素材、柔軟性や搬送経路等の検証条件が異なる場合もあるので、入力すべき期待値のデータ量はますます膨大となり、実用的ではない。
【0008】
本発明は、搬送装置の制御プログラムの検証を効率的に行うことを可能とするプログラム検証装置およびプログラム検証方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するための一手段として、本発明のプログラム検証装置は以下の構成を備える。
【0010】
すなわち、搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションし、該制御プログラムを検証するプログラム検証装置であって、前記シミュレーションの実行時に、前記制御プログラムの実行位置を示す実行位置情報の履歴をシミュレーション時刻と関連付けて記録する実行位置履歴記録手段と、前記シミュレーションの実行時に、前記仮想搬送装置における各構成要素の状態と前記被搬送体の位置を示す搬送状態情報の履歴をシミュレーション時刻と関連付けて記録する搬送履歴記録手段と、前記搬送履歴記録手段に記録された搬送状態情報の履歴から、搬送のエラー状態を示す搬送状態情報を検出するエラー状態検出手段と、前記実行位置履歴記録手段に記録された実行位置情報の履歴から、前記エラー状態検出手段で検出された搬送状態情報のシミュレーション時刻に対応する実行位置情報を検出するエラー位置検出手段と、を有することを特徴とする。
【発明の効果】
【0011】
本発明によれば、搬送装置の制御プログラムの検証を効率的に行うことが可能となる。
【図面の簡単な説明】
【0012】
【図1】本実施形態におけるプログラム検証装置の構成例を示すブロック図、
【図2】本実施形態における紙搬送シミュレーションの表示画面例を示す図、
【図3】本実施形態における搬送シミュレーション実行部の詳細構成を示すブロック図、
【図4】本実施形態における紙位置計算処理を示すフローチャート、
【図5】本実施形態の紙搬送シミュレーションにおける仮想紙搬送経路例を示す図、
【図6】本実施形態における紙搬送シミュレーションを示すフローチャート、
【図7】本実施形態の紙搬送シミュレーションによる実行履歴の例を示す図、
【図8】本実施形態における実行履歴解析部の詳細構成を示すブロック図、
【図9】本実施形態におけるエラー検出処理を示すフローチャート、
【図10】本実施形態におけるエラー判定条件の例を示す図、
【図11】本実施形態におけるエラー検出結果の表示例を示す図、である。
【発明を実施するための形態】
【0013】
以下、本発明に係る実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0014】
<第1実施形態>
本実施形態は、搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションし、該制御プログラムの検証を効率化する。具体的には、まずシミュレーションの実行時に、制御プログラムの実行位置情報の履歴と、仮想搬送装置における搬送状態情報の履歴を、それぞれのシミュレーション時刻と関連付けて記録しておく。そして、搬送状態情報の履歴からエラー状態を検出し、該エラー状態のシミュレーション時刻に対応する実行位置情報を実行位置情報の履歴から検出する。これにより、エラー発生時におけるエラー内容および制御プログラムの実行位置を容易に特定可能とする。
【0015】
本実施形態では、CAD(コンピュータ設計支援装置)上で構成した搬送経路内に、コンピュータ内で構成した被搬送体を仮想的に搬送させ、その搬送状況を検討する。すなわち、複写機やプリンタ等に代表される画像形成装置の紙搬送シミュレーションを行う場合を例として説明する。なお、本実施形態における被搬送体として、シート状の紙を想定する。すなわち本実施形態では、コンピュータ内の仮想空間上での紙搬送シミュレーションを例として説明する。以下、本実施形態においては、シミュレーション上の被搬送体である仮想的な紙を仮想紙と称し、また、搬送に利用されるローラを仮想ローラと称する等、仮想搬送装置の各構成要素(デバイス)に対しても「仮想」という文言を付す。
【0016】
●装置構成
図1は、本実施形態にかかる搬送装置の制御プログラムに対する検証プログラムを搭載可能な、プログラム検証装置9の概略構成例を示すブロック図である。プログラム検証装置9は、パーソナルコンピュータ(以下、PC)に本実施形態の機能を実現する検証プログラムをインストールすることで構成される。
【0017】
図1に示すように、プログラム検証装置9としてのPC内に、搬送シミュレーション実行部1、実行履歴記録部2、実行履歴解析部3が構成されている。なお、プログラム検証装置9には、キーボードやマウス等の操作入力部6からの入力を監視する入力監視部5、およびモニタ等の表示部8への表示を制御する表示制御部7が接続されている。
【0018】
搬送シミュレーション実行部1では、搬送機構を制御するための制御プログラムをPC上で仮想的に実行し、紙搬送を行うための搬送機構に関する情報等を利用した機構シミュレーションを行う。搬送機構は通常、被搬送体を搬送するためのローラ、搬送経路を形成するためのガイド、搬送経路を選択するフラッパ、ローラを回転する駆動モータ、モータ駆動力の断続やローラ回転方向の規制等を行うクラッチ、等を有している。搬送シミュレーション実行部1では、このような搬送機構を構成する紙搬送制御に関わる仮想ローラの速度等から、仮想紙が紙搬送機構内のどの部位に存在するかを計算により求める。そして、求められた仮想紙の位置情報や必要な演算結果が表示制御部7に渡されると共に、搬送機構内部のセンサ信号値が搬送シミュレーション実行部1内の制御プログラムに渡される。搬送シミュレーション実行部1内で実行された上記制御プログラムの実行履歴および仮想紙位置の履歴は、シミュレーションを実行した時刻(以下、シミュレーション時刻)と関連付けられて実行履歴記録部2に記録される。この実行履歴の詳細については後述する。なお実行履歴記録部2は、PC内のHDDやRAM等によって構成される。
【0019】
実行履歴解析部3では、搬送シミュレーションの実行後に実行履歴記録部2に記録された実行履歴から、制御プログラムの検証を支援するためのエラー検出処理を行う。このエラー検出の際には、予め実行履歴解析部3の内部に記録されているエラー判定条件が参照される。検出されたエラー情報は、表示制御部7に渡される。
【0020】
表示部8は、液晶ディスプレイ、CRT、プラズマディスプレイ等の表示手段からなり、表示制御部7から送られてきた情報を表示する。表示制御部7では、プログラム検証装置9から送られてきたエラー情報等に基づく画像情報(文字情報、静止画情報、動画情報等)を、表示部8で表示可能な形式にして表示部8に供給する。
【0021】
入力監視部5は、ユーザインタフェースであるキーボードやマウス等の入力デバイスを含む操作入力部6を監視し、操作入力部6から入力された情報を、必要に応じて搬送シミュレーション実行部1もしくは実行履歴解析部3に伝達する。例えば、操作入力部6からシミュレーションの実行開始要求の入力があると、その情報を搬送シミュレーション実行部1に送り、それにより搬送シミュレーション実行部1では搬送シミュレーションの実行を開始する。また、操作入力部6からシミュレーションエラー検出の実行開始要求の入力があると、その情報を実行履歴解析部3に送り、それにより実行履歴解析部3では、実行履歴記録部2に記録された実行履歴に基づくエラー検出を開始する。
【0022】
なお、搬送シミュレーション実行部1ならびに実行履歴解析部3に関わるプログラムは、それらの実行前においてはPCにおける不図示のHDD等に保管されている。そして実行の際に、PCにおける不図示のRAM上に必要に応じて展開される。
【0023】
本実施形態では、以上の構成からなるプログラム検証装置9を用いて、現実世界の画像形成装置における紙搬送処理をシミュレートする制御プログラムの動作を検証する。
【0024】
ここで図2に、表示部8に表示される紙搬送シミュレーション画面W1の表示例を示す。紙搬送シミュレーション画面W1において、点線は全ての仮想紙搬送経路100を示し、該仮想紙搬送経路100上において、仮想紙Pを太い実線で示し、該仮想紙Pが実際に搬送される搬送経路101を細い実線で示している。また、仮想紙搬送経路100付近に設置されている丸印は、仮想紙Pの搬送を制御する仮想ローラ対102を示す。また仮想紙搬送経路100上の三角印は、仮想紙Pの到達を検知する仮想センサ103を示し、仮想紙Pが到達したか否かをオン・オフで示す信号を出力する。
【0025】
図2の表示例では、仮想紙Pをストック可能な紙供給部が3段用意されており、最下層の供給部にある仮想紙Pが、1つの仮想ローラ対102の間を通って図中上方に搬送された様子を示す。すると、仮想紙Pは図中縦方向に並んだ3つの仮想ローラ対102と、それぞれの仮想ローラ対102の通過直後に設けられた仮想センサ103付近を通った後、搬送経路101が左方向にほぼ90°曲げられ、図中水平左方向に搬送される。仮想紙Pが搬送される水平左方向には、3つの仮想ローラ対102からなる仮想ローラ群と、該仮想ローラ群の前後端に設けられた仮想センサ103が設けられている。この仮想ローラ群とその両端の仮想センサ103付近を通過した仮想紙Pは、その後再び搬送経路101を図中上方に曲げられ、2つの仮想ローラ対102を通過した後、仮想センサ103付近を通過する。その後、搬送経路101が水平右方向に曲げられ、最後に設けられた仮想ローラ対102を通るように搬送される。
【0026】
図3は、搬送シミュレーション実行部1および実行履歴記録部2の詳細構成を示すブロック図である。同図に示すように搬送シミュレーション実行部1は、制御プログラム実行部10、制御プログラム記録部11、センサ情報入力部12、制御情報出力部13、実行位置記録部15、を有する。そしてさらに、紙位置計算部20、紙位置・装置状態記録部21、制御情報入力部29、センサ情報出力部27、紙位置表示部28、を有する。また実行履歴記録部2は、実行位置履歴記録部16、搬送履歴記録部22を有する。
搬送シミュレーション実行部1において、制御プログラム記録部11は、現実世界の画像形成装置の紙搬送制御を行うための制御プログラムを記録する。制御プログラム実行部10は、制御プログラム記録部11に記録された制御プログラムを読み込み、実行する。なお制御プログラム実行部10には、紙位置計算部20での演算結果である紙位置情報としての仮想センサのオン・オフ情報が、センサ情報入力部12を介してフィードバックされる。
【0027】
制御情報出力部13は、制御プログラム実行部10で実行された、各仮想デバイスの駆動タイミング等の制御情報を出力する。制御情報とは例えば、紙搬送制御に関わる仮想モータや仮想クラッチ、仮想フラッパ等の搬送機構を構成する各仮想デバイスの制御情報である。さらに具体的には、仮想モータのオン・オフ、速度または加減速情報、仮想クラッチのオン・オフ、仮想フラッパのオン・オフ、仮想ソレノイドのオン・オフ等、紙搬送制御シミュレーションを行うために必要となる情報である。ここで出力された制御情報は、制御情報入力部29を介して紙位置計算部20に入力される。
【0028】
実行位置記録部15は、紙搬送シミュレーションが実行されるごとに、制御プログラムにおいて現在実行中であるステップ位置を、その実行時刻と関連付けて、実行位置履歴記録部16に記録する。ここで、記録される制御プログラムの実行位置の表現形態としては、様々な形態が考えられる。例えば、制御プログラムのソースやアセンブリの行番号やアドレス、モジュール呼び出しまたは関数呼び出しにおける階層内位置、状態遷移モデルにおける状態、フローチャートにおけるブロック、等が含まれる。
【0029】
紙位置計算部20へは、上述したように制御情報出力部13から出力された制御情報が、制御情報入力部29を介して入力される。すると紙位置計算部20では、紙搬送制御に関わる仮想モータや仮想クラッチ、仮想フラッパ等の制御情報から、紙搬送経路上の搬送速度を計算し、仮想紙Pの先端位置および後端位置を計算する。紙位置表示部28は、紙位置計算部20により計算された仮想紙Pの先端位置および後端位置に基づき、表示制御部7に送出する画像情報を生成する。この画像情報に基づき、上記図2に示したような紙搬送シミュレーション画面W1が表示部8に表示される。
【0030】
紙位置・装置状態記録部21は、紙搬送シミュレーションの実行のたびに、紙位置計算部20で算出された仮想紙Pの位置や速度、状態を示す紙位置情報を、その実行時刻と関連付けて搬送履歴記録部22に記録する。なお、ここで記録される紙位置情報としては、仮想紙搬送経路100内における仮想紙Pの先端および後端の位置や速度、仮想紙Pの形状等の情報のほか、仮想センサのオン・オフ情報も含まれる。紙位置・装置状態記録部21はまた、上記仮想紙Pの位置情報等の記録と同時に、紙位置情報の算出時に参照された各仮想デバイスの状態、すなわち制御情報も、シミュレーションの実行時刻と関連付けて搬送履歴記録部22に記録する。なお、ここで記録される各仮想デバイスの状態としては、仮想モータの速度・加速度、それに伴う仮想ローラのオン・オフ情報、仮想クラッチや仮想フラッパ、仮想ソレノイドのオン・オフ情報等が含まれる。
【0031】
●仮想紙位置計算
ここで、紙位置計算部20における仮想紙Pの位置情報の計算例を、図4のフローチャートを用いて説明する。
【0032】
まず、紙位置計算部20での計算が開始されると、所望の時間間隔Tで、仮想紙Pが搬送経路101内のどの位置にあるかを計算する。すなわち、時刻tを増加する処理(S90)を、時刻tが時間間隔Tの整数倍となるまで繰り返し、時刻tが時間間隔Tの整数倍となった時点で次の処理へ移る(S91)。
【0033】
時間間隔Tが経過すると、その時点で制御情報出力部13から制御情報入力部29へ渡された、モータ速度や仮想フラッパオン・オフ、仮想センサのオン・オフ等の各仮想デバイスの制御情報を取得する(S92)。
【0034】
各仮想デバイスの制御情報を取得したら、モータ速度から紙搬送速度vを求め、紙搬送速度vと時間間隔Tから、仮想紙Pが進む距離S=v×Tを算出することによって仮想紙Pの位置を変更する(S93)。仮想紙Pの位置が更新されると、該更新された紙位置情報を、紙位置表示部28、および紙位置・装置状態記録部21に渡す。紙位置表示部28では、受け取った紙位置情報に基づいて表示すべき画像情報を構築し、表示制御部7を介して表示部8上に表示可能な信号として出力する。これにより表示部8において、図2に示したような紙搬送シミュレーション画面W1の情報が最新の情報に書き換えられる。
【0035】
そして、上記S92で算出された、仮想紙の位置変化による仮想センサのオン・オフ情報を、センサ情報出力部27およびセンサ情報入力部12を介して制御プログラム実行部10にフィードバックする(S94)。
【0036】
そして、時刻tが所定の終了時刻に達しているか否かを判断する(S95)。終了時刻に達している場合はシミュレーションを終了し、達していない場合はS90に戻って、さらに時間間隔Tの経過を待って以上の処理を繰り返す。
【0037】
●搬送シミュレーション
以下、本実施形態の制御プログラムによる搬送シミュレーションについて、図5および図6を用いて具体的に説明する。
【0038】
図5は、本実施形態の仮想紙搬送経路における各種仮想デバイスの配置例を示す図である。同図において、R1,R2,R3はそれぞれ仮想ローラ対、S1,S2はそれぞれ仮想センサである。また、Aは仮想紙Pの供給点、Bは仮想紙Pの排出点であり、すなわちそれぞれが搬送経路の始点および終点である。仮想ローラ対R1,R2,R3は、それぞれ異なる仮想モータ(不図示)に接続されており、各仮想モータの回転に伴って仮想ローラ対R1,R2,R3のそれぞれが回転する。なお、説明の簡単化のため、回転速度の伝播やモータおよびローラの目的速度までの加速・減速は、無限小の時間内に行われるものとする。また、各仮想デバイス間の距離は、仮想ローラ対R1〜R2が200mm、R2〜R3が20mmとする。また、仮想ローラ対R1から仮想センサS1、および仮想ローラ対R2から仮想センサS2までの距離は、それぞれ10mmであるとする。また、仮想紙Pの搬送経路沿いの長さは210mmであるとする。
【0039】
図6は、搬送シミュレーション実行部1において実行される制御プログラムによる紙搬送シミュレーションを示すフローチャートである。供給点Aに仮想紙Pを配置した状態で制御プログラムを開始すると、制御プログラムはまず仮想ローラ対R1,R3を駆動し(S100)、仮想センサS1がオンになるのを待つ(S101)。仮想紙Pが、搬送経路ABを図5中の実線矢印方向に搬送され、その上端が仮想センサS1に接触するタイミングで、仮想センサS1がオンになる。制御プログラムは仮想センサS1がオンになったことを検知すると、Tsミリ秒の経過を待って(S102)、仮想ローラ対R2を駆動する(S103)。
【0040】
そして、仮想紙Pが排出点B方向に搬送され、仮想センサS2がオフになったことを検知すると(S104)、制御プログラムは所定期間(この場合10ms)の経過を待った後(S105)、仮想ローラ対R1,R2,R3を停止する(S106)。なお、本実施形態における仮想ローラ対R1,R2,R3の駆動時の紙搬送速度は、常に2m/sで一定であるとする。
【0041】
ここで、上記搬送シミュレーションの実行履歴について、図7を用いて具体的に説明する。図7(a)は、紙位置・装置状態記録部21により搬送履歴記録部22に記録された履歴情報の例であり、図7(b)は、実行位置記録部15により実行位置履歴記録部16に記録された履歴情報の例である。これらの履歴情報例は、制御プログラムにおいて上記S102における経過時間Tsの値を100msに設定して得られた結果である。なお、経過時間Tsは、仮想センサS1がオンとなってから仮想ローラ対R2の駆動開始までの制限時間であり、ここではエラー発生時の処理を説明するために、敢えてエラーと判定されるような値をTsに与えた例を示す。
【0042】
まず、図7(a)に示す搬送履歴記録部22内の履歴情報には、各シミュレーション時刻における、仮想紙Pの先端位置、仮想センサS1,S2のオン・オフ状態、仮想ローラ対R1,R2のオン・オフ状態がそれぞれ記録されている。尚、仮想紙Pの先端位置は、仮想ローラ対R1の位置を原点とし、仮想紙Pの搬送方向を正方向として表現されている。なお、仮想紙Pの後端位置についての情報は本実施形態では特に必要としないため、図中に示していない。また、図7(b)に示す実行位置履歴記録部16内の履歴情報には、各シミュレーション時刻における、図6のフローチャート内での実行ステップ位置の情報が記録されている。
【0043】
●エラー検出処理
以下、本実施形態における実行履歴解析部3における実行履歴解析処理、すなわち搬送シミュレーションにおけるエラー検出処理について説明する。上述したように本実施形態におけるエラー検出処理は、上記図6に示すシミュレーション処理が終了し、実行履歴記録部2にシミュレーションの全履歴が記録された後に、実行される。
【0044】
図8は、実行履歴解析部3および実行履歴記録部2の詳細構成を示すブロック図である。同図に示すように実行履歴解析部3は、エラー判定条件に基づいて実行履歴記録部2内の履歴情報からエラー検出を行うエラー検出部31を有する。また、予めエラー判定条件を保持するエラー判定条件記録部32、検出されたエラーを表示するエラー表示部33を有する。ここでエラー判定条件は、実行履歴解析部3による実行履歴解析の実行前に、ユーザ指示に応じて操作入力部6等から入力され、これがPC内のHDDやRAM等に保持されることでエラー判定条件記録部32が構成される。なお、エラー判定条件の入力はこの例に限らず、例えばPCに付随する記録媒体から読み込まれるものであっても良い。
【0045】
以下、図8に示すエラー検出部31におけるエラー検出処理について、図9に示すフローチャートを用いて説明する。エラー検出部31はまず、実行履歴記録部2内の実行位置履歴記録部16に記録されている、制御プログラムの実行位置履歴を読み込む(S201)。また、搬送履歴記録部22に記録されている、紙位置とデバイスの制御情報からなる搬送状態履歴を読み込む(S202)。そしてさらに、エラー判定条件記録部32に記録されているエラー判定条件を読み込む(S203)。なお、上記S201〜S203の処理順は任意である。
【0046】
S201〜S203による各読み込み処理の終了後、実際のエラー検出処理が開始される。すなわち、まずS204において、S202で読み込んだ搬送状態履歴から、S203で読み込んだエラー判定条件を満たす搬送状態をエラー状態レコードとして検出する(エラー状態検出)。次にS205で、S201で読み込んだ実行位置履歴から、S204で検出されたエラー状態レコードの発生時刻に対応する実行ステップ位置を、エラー発生位置として検出する(エラー位置検出)。なお、ここで検出されるエラー発生位置は、エラー状態レコードの発生時刻と全く同時刻に実行されたものに限らず、例えばエラー状態レコードの発生時刻から所定の時間幅の区間内に実行されたステップに対応するものであっても良い。またエラー発生位置として、所定の時間幅区間内で実行された複数のステップ位置を検出しても構わない。
【0047】
そして最後にS206で、S204でエラー状態レコードとして検出された搬送状態と、S205でエラー発生位置として検出された実行ステップ位置を、互いに関連付けてエラー表示部33に送信する。これにより、検出されたエラー状態レコードに記録されたシミュレーション時刻における仮想紙位置とデバイス制御状態、およびエラー発生位置である実行ステップ位置の各情報を関連付けて表示することができる。
【0048】
ここで図10に、エラー判定条件記録部32に記録されているエラー判定条件の例を示す。同図に示すようにエラー判定条件は、「エラー番号」によって識別される。各エラー判定条件において、「エラー種別」は、エラー表示の際に表示部8に表示されるエラーの種類を示す。また「エラー条件」は、エラー検出部31におけるエラー判定時に判定基準として参照される条件であり、ここでは図5に示す仮想紙搬送経路に対する判定条件の例を示している。
【0049】
例えば、エラー番号「E1」,「E2」は、搬送経路の所定区間における被搬送体の搬送時間が、所定の制限時間を超える旨を示すエラー条件を示している。具体的には、「E1」が、搬送経路内の最初の仮想ローラ対R1が動作を開始してから、最初の仮想センサS1が被搬送体を検知するまでに要した時間が制限時間を超えてしまうエラー、すなわち被搬送体の「供給遅れ」状態を示す。また「E2」は、搬送経路内の仮想センサS1-S2間を被搬送体が通過するのに要した時間が制限時間を超えてしまうエラー、すなわち被搬送体の「搬送遅れ」状態を示す。
【0050】
また、エラー番号「E3」,「E4」は、被搬送体の搬送終了時に、仮想デバイスのいずれか未だ動作中である旨を示すエラー条件を示している。具体的には、「E3」が、搬送が終了したにも関わらず仮想ローラ対R1,R2,R3のいずれかが未だ動作中であるエラー、すなわち「ローラ未停止」状態を示している。また「E4」は、搬送が終了したにも関わらず仮想センサS1,S2のいずれかが被搬送体を検知中であるエラー、すなわち「紙残留」状態を示す。
【0051】
さらに、図10において「発生時刻」は、エラーと判定された時刻を示す。尚、「エラー条件」および「発生時刻」は、数式や論理式、プログラミング言語、自然言語を含む、エラー検出部31で実行されるエラー検出プログラムが解釈可能な記述により表現することが可能である。また「発生時刻」として、複数の時刻や時刻の区間等を入力することも可能である。
【0052】
●エラー表示画面
ここで図11に、本実施形態におけるエラー表示画面例を示し、具体的なエラー検出処理について説明する。図11は、実行履歴解析部3内のエラー検出部31において検出されたエラー情報が、エラー表示部33、表示制御部7を介して表示部8に表示されたエラー表示画面W2の一例を示す図である。エラー検出部31では上述したように、搬送履歴記録部22に記録された履歴情報(図7(a))と、実行位置履歴記録部16に記録された履歴情報(図7(b))のうち、エラー判定条件(図10)を満たすような履歴情報を検出する。このように検出された履歴情報が互いに関連付けられて、エラー情報としてエラー表示画面W2に表示される。
【0053】
図11に示すエラー表示画面W2において、エラー情報表示部W21には、検出されたエラーの発生時刻と、図10で定義されているエラー番号およびエラー種別が表示される。また、プログラム実行位置表示部W22には、エラー発生時刻における制御プログラム内の実行位置を示す情報が表示される。図11の例では該情報として、図6に示すフローチャート内のステップ番号が表示されている。また、紙位置・装置状態表示部W23には、エラー発生時刻における紙位置、および各デバイスの状態を表示する。図11の例では、紙位置を搬送経路内に太線で表示し、各センサおよびローラ対の近傍には、各仮想デバイスの状態(オンまたはオフ)を文字列で表示している。
【0054】
このように本実施形態では、エラー発生時の制御プログラムの実行位置と、仮想搬送装置内の仮想紙位置および仮想デバイス状態とが関連付けられ、エラー表示画面W2上に表示される。エラー表示画面W2が表示されることで、利用者はエラー発生時における仮想紙Pの位置と各仮想デバイスの状態、および制御プログラムの実行位置を、同時に確認することができる。
【0055】
具体的に図11の画面例によれば利用者は、制御プログラムにおけるS104の処理中に、仮想紙Pが仮想センサS2に到達した時刻が、エラー番号E2のエラー判定条件を満たしている、すなわち搬送遅れが発生している旨を読み取ることができる。ここで図10によればエラー番号E2は、仮想センサS1がオンになってから仮想センサS2がオンになるまでの時間が、制限時間である105msを超過した旨を検出するためのエラー条件を示している。このことから利用者は、このエラーの発生原因を推測することができる。すなわち、仮想搬送装置上における仮想センサS1から仮想センサS2の区間に、または制御プログラム上ではS104付近のステップに、仮想紙の搬送速度を低減させている何らかの要因があるものと推測することができる。
【0056】
なお、一度の紙搬送シミュレーションにおいて、検出されるエラー箇所は複数であることも多い。この場合には、エラー毎に検出された仮想紙位置とデバイス制御状態、およびエラー発生位置の各情報を組みとして例えば実行履歴解析部3内に保持しておき、エラー単位で表示可能となるように制御すれば良い。
【0057】
以上説明したように本実施形態によれば、仮想搬送装置による紙搬送シミュレーションでのエラー発生時に、各仮想デバイスの状態および被搬送体の位置、さらに制御プログラムの実行位置等のエラー情報が利用者に提示される。したがって利用者は、制御プログラムにおけるエラー発生位置の検出およびその修正を効率良く行うことができる。
【0058】
また、エラー種別と紙搬送位置、および制御プログラムの実行箇所が関連付けて表示されるため、これらエラー情報の組み合わせによって、予め定義されたエラー判定条件に対し、実質的により多くの動作パターンが検証可能となる。すなわち、利用者によるエラー判定条件入力の負荷が少なくて済む。
【0059】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、シート状の被搬送体を搬送する搬送機構の制御プログラムを検証するプログラム検証装置およびプログラム検証方法に関する。
【背景技術】
【0002】
近年、シミュレーション技術を用いて計算機内に仮想的に制御対象装置を構築し、該制御対象装置を用いて制御プログラムを検証することが行われている。例えば、シート状被搬送体を搬送する制御プログラムの設計や検証を行うために、シミュレーションにより構築した仮想的な搬送装置を用いる例が知られている。
【0003】
このような検証を行う例として、例えば制御プログラムと連動して、仮想的な搬送装置内のシート状被搬送体の変形挙動を3次元モデルによりシミュレートする技術が知られている(例えば、特許文献1参照)。
【0004】
また一方で、ソースプログラムの検証時に異常動作が発生した場合に、ソースコードの修正箇所を利用者に提示する技術がある。この例としては、ソースプログラムへの入力項目と対応する出力項目の期待値を利用者が与え、ソースコードの修正箇所を提示する技術が知られている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002-140372号公報
【特許文献2】特許第3058050号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記特許文献1に記載された技術によれば、コンピュータ上に構成された仮想搬送装置とその制御プログラムを連動させてシミュレーションを行うことが可能である。これにより、制御プログラムの不具合により発生する仮想搬送装置の異常動作や異常状態の発生を確認することができる。しかしながらこの技術は、利用者に対し、搬送装置の異常動作および異常状態が発生したという事象を提示するのみである。したがって、該事象が提示された場合に、制御プログラムのソースコード上で対応すべき修正箇所を特定するには、利用者の大きな作業負荷を要した。具体的には、利用者がシミュレーションを繰り返し実行することで修正箇所を試行錯誤的に絞り込んでいったり、シミュレーション実行中に出力された膨大なトレースログを解析して修正箇所を特定することが多かった。近年では、検証項目の膨大化に伴い、制御プログラム開発時の異常動作の発生件数も増加することが考えられるため、このような解析作業にさらに多くの工数を要することとなる。
【0007】
また、上記特許文献2に記載された技術によれば、制御プログラムのソースコード上の修正箇所が自動的に特定されるが、制御プログラムへの入力項目に対応する出力項目の期待値を利用者が入力する必要がある。特にシート状被搬送体を搬送する制御プログラムにおいては、期待値として、例えば時刻毎の被搬送体の位置情報を与えることが考えられるが、データ量が膨大となってしまい、このような期待値を利用者が入力することは困難である。さらに、設計変更により仮想搬送装置の構成が変更される場合や、シート状被搬送体の長さ、厚さ、素材、柔軟性や搬送経路等の検証条件が異なる場合もあるので、入力すべき期待値のデータ量はますます膨大となり、実用的ではない。
【0008】
本発明は、搬送装置の制御プログラムの検証を効率的に行うことを可能とするプログラム検証装置およびプログラム検証方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するための一手段として、本発明のプログラム検証装置は以下の構成を備える。
【0010】
すなわち、搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションし、該制御プログラムを検証するプログラム検証装置であって、前記シミュレーションの実行時に、前記制御プログラムの実行位置を示す実行位置情報の履歴をシミュレーション時刻と関連付けて記録する実行位置履歴記録手段と、前記シミュレーションの実行時に、前記仮想搬送装置における各構成要素の状態と前記被搬送体の位置を示す搬送状態情報の履歴をシミュレーション時刻と関連付けて記録する搬送履歴記録手段と、前記搬送履歴記録手段に記録された搬送状態情報の履歴から、搬送のエラー状態を示す搬送状態情報を検出するエラー状態検出手段と、前記実行位置履歴記録手段に記録された実行位置情報の履歴から、前記エラー状態検出手段で検出された搬送状態情報のシミュレーション時刻に対応する実行位置情報を検出するエラー位置検出手段と、を有することを特徴とする。
【発明の効果】
【0011】
本発明によれば、搬送装置の制御プログラムの検証を効率的に行うことが可能となる。
【図面の簡単な説明】
【0012】
【図1】本実施形態におけるプログラム検証装置の構成例を示すブロック図、
【図2】本実施形態における紙搬送シミュレーションの表示画面例を示す図、
【図3】本実施形態における搬送シミュレーション実行部の詳細構成を示すブロック図、
【図4】本実施形態における紙位置計算処理を示すフローチャート、
【図5】本実施形態の紙搬送シミュレーションにおける仮想紙搬送経路例を示す図、
【図6】本実施形態における紙搬送シミュレーションを示すフローチャート、
【図7】本実施形態の紙搬送シミュレーションによる実行履歴の例を示す図、
【図8】本実施形態における実行履歴解析部の詳細構成を示すブロック図、
【図9】本実施形態におけるエラー検出処理を示すフローチャート、
【図10】本実施形態におけるエラー判定条件の例を示す図、
【図11】本実施形態におけるエラー検出結果の表示例を示す図、である。
【発明を実施するための形態】
【0013】
以下、本発明に係る実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0014】
<第1実施形態>
本実施形態は、搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションし、該制御プログラムの検証を効率化する。具体的には、まずシミュレーションの実行時に、制御プログラムの実行位置情報の履歴と、仮想搬送装置における搬送状態情報の履歴を、それぞれのシミュレーション時刻と関連付けて記録しておく。そして、搬送状態情報の履歴からエラー状態を検出し、該エラー状態のシミュレーション時刻に対応する実行位置情報を実行位置情報の履歴から検出する。これにより、エラー発生時におけるエラー内容および制御プログラムの実行位置を容易に特定可能とする。
【0015】
本実施形態では、CAD(コンピュータ設計支援装置)上で構成した搬送経路内に、コンピュータ内で構成した被搬送体を仮想的に搬送させ、その搬送状況を検討する。すなわち、複写機やプリンタ等に代表される画像形成装置の紙搬送シミュレーションを行う場合を例として説明する。なお、本実施形態における被搬送体として、シート状の紙を想定する。すなわち本実施形態では、コンピュータ内の仮想空間上での紙搬送シミュレーションを例として説明する。以下、本実施形態においては、シミュレーション上の被搬送体である仮想的な紙を仮想紙と称し、また、搬送に利用されるローラを仮想ローラと称する等、仮想搬送装置の各構成要素(デバイス)に対しても「仮想」という文言を付す。
【0016】
●装置構成
図1は、本実施形態にかかる搬送装置の制御プログラムに対する検証プログラムを搭載可能な、プログラム検証装置9の概略構成例を示すブロック図である。プログラム検証装置9は、パーソナルコンピュータ(以下、PC)に本実施形態の機能を実現する検証プログラムをインストールすることで構成される。
【0017】
図1に示すように、プログラム検証装置9としてのPC内に、搬送シミュレーション実行部1、実行履歴記録部2、実行履歴解析部3が構成されている。なお、プログラム検証装置9には、キーボードやマウス等の操作入力部6からの入力を監視する入力監視部5、およびモニタ等の表示部8への表示を制御する表示制御部7が接続されている。
【0018】
搬送シミュレーション実行部1では、搬送機構を制御するための制御プログラムをPC上で仮想的に実行し、紙搬送を行うための搬送機構に関する情報等を利用した機構シミュレーションを行う。搬送機構は通常、被搬送体を搬送するためのローラ、搬送経路を形成するためのガイド、搬送経路を選択するフラッパ、ローラを回転する駆動モータ、モータ駆動力の断続やローラ回転方向の規制等を行うクラッチ、等を有している。搬送シミュレーション実行部1では、このような搬送機構を構成する紙搬送制御に関わる仮想ローラの速度等から、仮想紙が紙搬送機構内のどの部位に存在するかを計算により求める。そして、求められた仮想紙の位置情報や必要な演算結果が表示制御部7に渡されると共に、搬送機構内部のセンサ信号値が搬送シミュレーション実行部1内の制御プログラムに渡される。搬送シミュレーション実行部1内で実行された上記制御プログラムの実行履歴および仮想紙位置の履歴は、シミュレーションを実行した時刻(以下、シミュレーション時刻)と関連付けられて実行履歴記録部2に記録される。この実行履歴の詳細については後述する。なお実行履歴記録部2は、PC内のHDDやRAM等によって構成される。
【0019】
実行履歴解析部3では、搬送シミュレーションの実行後に実行履歴記録部2に記録された実行履歴から、制御プログラムの検証を支援するためのエラー検出処理を行う。このエラー検出の際には、予め実行履歴解析部3の内部に記録されているエラー判定条件が参照される。検出されたエラー情報は、表示制御部7に渡される。
【0020】
表示部8は、液晶ディスプレイ、CRT、プラズマディスプレイ等の表示手段からなり、表示制御部7から送られてきた情報を表示する。表示制御部7では、プログラム検証装置9から送られてきたエラー情報等に基づく画像情報(文字情報、静止画情報、動画情報等)を、表示部8で表示可能な形式にして表示部8に供給する。
【0021】
入力監視部5は、ユーザインタフェースであるキーボードやマウス等の入力デバイスを含む操作入力部6を監視し、操作入力部6から入力された情報を、必要に応じて搬送シミュレーション実行部1もしくは実行履歴解析部3に伝達する。例えば、操作入力部6からシミュレーションの実行開始要求の入力があると、その情報を搬送シミュレーション実行部1に送り、それにより搬送シミュレーション実行部1では搬送シミュレーションの実行を開始する。また、操作入力部6からシミュレーションエラー検出の実行開始要求の入力があると、その情報を実行履歴解析部3に送り、それにより実行履歴解析部3では、実行履歴記録部2に記録された実行履歴に基づくエラー検出を開始する。
【0022】
なお、搬送シミュレーション実行部1ならびに実行履歴解析部3に関わるプログラムは、それらの実行前においてはPCにおける不図示のHDD等に保管されている。そして実行の際に、PCにおける不図示のRAM上に必要に応じて展開される。
【0023】
本実施形態では、以上の構成からなるプログラム検証装置9を用いて、現実世界の画像形成装置における紙搬送処理をシミュレートする制御プログラムの動作を検証する。
【0024】
ここで図2に、表示部8に表示される紙搬送シミュレーション画面W1の表示例を示す。紙搬送シミュレーション画面W1において、点線は全ての仮想紙搬送経路100を示し、該仮想紙搬送経路100上において、仮想紙Pを太い実線で示し、該仮想紙Pが実際に搬送される搬送経路101を細い実線で示している。また、仮想紙搬送経路100付近に設置されている丸印は、仮想紙Pの搬送を制御する仮想ローラ対102を示す。また仮想紙搬送経路100上の三角印は、仮想紙Pの到達を検知する仮想センサ103を示し、仮想紙Pが到達したか否かをオン・オフで示す信号を出力する。
【0025】
図2の表示例では、仮想紙Pをストック可能な紙供給部が3段用意されており、最下層の供給部にある仮想紙Pが、1つの仮想ローラ対102の間を通って図中上方に搬送された様子を示す。すると、仮想紙Pは図中縦方向に並んだ3つの仮想ローラ対102と、それぞれの仮想ローラ対102の通過直後に設けられた仮想センサ103付近を通った後、搬送経路101が左方向にほぼ90°曲げられ、図中水平左方向に搬送される。仮想紙Pが搬送される水平左方向には、3つの仮想ローラ対102からなる仮想ローラ群と、該仮想ローラ群の前後端に設けられた仮想センサ103が設けられている。この仮想ローラ群とその両端の仮想センサ103付近を通過した仮想紙Pは、その後再び搬送経路101を図中上方に曲げられ、2つの仮想ローラ対102を通過した後、仮想センサ103付近を通過する。その後、搬送経路101が水平右方向に曲げられ、最後に設けられた仮想ローラ対102を通るように搬送される。
【0026】
図3は、搬送シミュレーション実行部1および実行履歴記録部2の詳細構成を示すブロック図である。同図に示すように搬送シミュレーション実行部1は、制御プログラム実行部10、制御プログラム記録部11、センサ情報入力部12、制御情報出力部13、実行位置記録部15、を有する。そしてさらに、紙位置計算部20、紙位置・装置状態記録部21、制御情報入力部29、センサ情報出力部27、紙位置表示部28、を有する。また実行履歴記録部2は、実行位置履歴記録部16、搬送履歴記録部22を有する。
搬送シミュレーション実行部1において、制御プログラム記録部11は、現実世界の画像形成装置の紙搬送制御を行うための制御プログラムを記録する。制御プログラム実行部10は、制御プログラム記録部11に記録された制御プログラムを読み込み、実行する。なお制御プログラム実行部10には、紙位置計算部20での演算結果である紙位置情報としての仮想センサのオン・オフ情報が、センサ情報入力部12を介してフィードバックされる。
【0027】
制御情報出力部13は、制御プログラム実行部10で実行された、各仮想デバイスの駆動タイミング等の制御情報を出力する。制御情報とは例えば、紙搬送制御に関わる仮想モータや仮想クラッチ、仮想フラッパ等の搬送機構を構成する各仮想デバイスの制御情報である。さらに具体的には、仮想モータのオン・オフ、速度または加減速情報、仮想クラッチのオン・オフ、仮想フラッパのオン・オフ、仮想ソレノイドのオン・オフ等、紙搬送制御シミュレーションを行うために必要となる情報である。ここで出力された制御情報は、制御情報入力部29を介して紙位置計算部20に入力される。
【0028】
実行位置記録部15は、紙搬送シミュレーションが実行されるごとに、制御プログラムにおいて現在実行中であるステップ位置を、その実行時刻と関連付けて、実行位置履歴記録部16に記録する。ここで、記録される制御プログラムの実行位置の表現形態としては、様々な形態が考えられる。例えば、制御プログラムのソースやアセンブリの行番号やアドレス、モジュール呼び出しまたは関数呼び出しにおける階層内位置、状態遷移モデルにおける状態、フローチャートにおけるブロック、等が含まれる。
【0029】
紙位置計算部20へは、上述したように制御情報出力部13から出力された制御情報が、制御情報入力部29を介して入力される。すると紙位置計算部20では、紙搬送制御に関わる仮想モータや仮想クラッチ、仮想フラッパ等の制御情報から、紙搬送経路上の搬送速度を計算し、仮想紙Pの先端位置および後端位置を計算する。紙位置表示部28は、紙位置計算部20により計算された仮想紙Pの先端位置および後端位置に基づき、表示制御部7に送出する画像情報を生成する。この画像情報に基づき、上記図2に示したような紙搬送シミュレーション画面W1が表示部8に表示される。
【0030】
紙位置・装置状態記録部21は、紙搬送シミュレーションの実行のたびに、紙位置計算部20で算出された仮想紙Pの位置や速度、状態を示す紙位置情報を、その実行時刻と関連付けて搬送履歴記録部22に記録する。なお、ここで記録される紙位置情報としては、仮想紙搬送経路100内における仮想紙Pの先端および後端の位置や速度、仮想紙Pの形状等の情報のほか、仮想センサのオン・オフ情報も含まれる。紙位置・装置状態記録部21はまた、上記仮想紙Pの位置情報等の記録と同時に、紙位置情報の算出時に参照された各仮想デバイスの状態、すなわち制御情報も、シミュレーションの実行時刻と関連付けて搬送履歴記録部22に記録する。なお、ここで記録される各仮想デバイスの状態としては、仮想モータの速度・加速度、それに伴う仮想ローラのオン・オフ情報、仮想クラッチや仮想フラッパ、仮想ソレノイドのオン・オフ情報等が含まれる。
【0031】
●仮想紙位置計算
ここで、紙位置計算部20における仮想紙Pの位置情報の計算例を、図4のフローチャートを用いて説明する。
【0032】
まず、紙位置計算部20での計算が開始されると、所望の時間間隔Tで、仮想紙Pが搬送経路101内のどの位置にあるかを計算する。すなわち、時刻tを増加する処理(S90)を、時刻tが時間間隔Tの整数倍となるまで繰り返し、時刻tが時間間隔Tの整数倍となった時点で次の処理へ移る(S91)。
【0033】
時間間隔Tが経過すると、その時点で制御情報出力部13から制御情報入力部29へ渡された、モータ速度や仮想フラッパオン・オフ、仮想センサのオン・オフ等の各仮想デバイスの制御情報を取得する(S92)。
【0034】
各仮想デバイスの制御情報を取得したら、モータ速度から紙搬送速度vを求め、紙搬送速度vと時間間隔Tから、仮想紙Pが進む距離S=v×Tを算出することによって仮想紙Pの位置を変更する(S93)。仮想紙Pの位置が更新されると、該更新された紙位置情報を、紙位置表示部28、および紙位置・装置状態記録部21に渡す。紙位置表示部28では、受け取った紙位置情報に基づいて表示すべき画像情報を構築し、表示制御部7を介して表示部8上に表示可能な信号として出力する。これにより表示部8において、図2に示したような紙搬送シミュレーション画面W1の情報が最新の情報に書き換えられる。
【0035】
そして、上記S92で算出された、仮想紙の位置変化による仮想センサのオン・オフ情報を、センサ情報出力部27およびセンサ情報入力部12を介して制御プログラム実行部10にフィードバックする(S94)。
【0036】
そして、時刻tが所定の終了時刻に達しているか否かを判断する(S95)。終了時刻に達している場合はシミュレーションを終了し、達していない場合はS90に戻って、さらに時間間隔Tの経過を待って以上の処理を繰り返す。
【0037】
●搬送シミュレーション
以下、本実施形態の制御プログラムによる搬送シミュレーションについて、図5および図6を用いて具体的に説明する。
【0038】
図5は、本実施形態の仮想紙搬送経路における各種仮想デバイスの配置例を示す図である。同図において、R1,R2,R3はそれぞれ仮想ローラ対、S1,S2はそれぞれ仮想センサである。また、Aは仮想紙Pの供給点、Bは仮想紙Pの排出点であり、すなわちそれぞれが搬送経路の始点および終点である。仮想ローラ対R1,R2,R3は、それぞれ異なる仮想モータ(不図示)に接続されており、各仮想モータの回転に伴って仮想ローラ対R1,R2,R3のそれぞれが回転する。なお、説明の簡単化のため、回転速度の伝播やモータおよびローラの目的速度までの加速・減速は、無限小の時間内に行われるものとする。また、各仮想デバイス間の距離は、仮想ローラ対R1〜R2が200mm、R2〜R3が20mmとする。また、仮想ローラ対R1から仮想センサS1、および仮想ローラ対R2から仮想センサS2までの距離は、それぞれ10mmであるとする。また、仮想紙Pの搬送経路沿いの長さは210mmであるとする。
【0039】
図6は、搬送シミュレーション実行部1において実行される制御プログラムによる紙搬送シミュレーションを示すフローチャートである。供給点Aに仮想紙Pを配置した状態で制御プログラムを開始すると、制御プログラムはまず仮想ローラ対R1,R3を駆動し(S100)、仮想センサS1がオンになるのを待つ(S101)。仮想紙Pが、搬送経路ABを図5中の実線矢印方向に搬送され、その上端が仮想センサS1に接触するタイミングで、仮想センサS1がオンになる。制御プログラムは仮想センサS1がオンになったことを検知すると、Tsミリ秒の経過を待って(S102)、仮想ローラ対R2を駆動する(S103)。
【0040】
そして、仮想紙Pが排出点B方向に搬送され、仮想センサS2がオフになったことを検知すると(S104)、制御プログラムは所定期間(この場合10ms)の経過を待った後(S105)、仮想ローラ対R1,R2,R3を停止する(S106)。なお、本実施形態における仮想ローラ対R1,R2,R3の駆動時の紙搬送速度は、常に2m/sで一定であるとする。
【0041】
ここで、上記搬送シミュレーションの実行履歴について、図7を用いて具体的に説明する。図7(a)は、紙位置・装置状態記録部21により搬送履歴記録部22に記録された履歴情報の例であり、図7(b)は、実行位置記録部15により実行位置履歴記録部16に記録された履歴情報の例である。これらの履歴情報例は、制御プログラムにおいて上記S102における経過時間Tsの値を100msに設定して得られた結果である。なお、経過時間Tsは、仮想センサS1がオンとなってから仮想ローラ対R2の駆動開始までの制限時間であり、ここではエラー発生時の処理を説明するために、敢えてエラーと判定されるような値をTsに与えた例を示す。
【0042】
まず、図7(a)に示す搬送履歴記録部22内の履歴情報には、各シミュレーション時刻における、仮想紙Pの先端位置、仮想センサS1,S2のオン・オフ状態、仮想ローラ対R1,R2のオン・オフ状態がそれぞれ記録されている。尚、仮想紙Pの先端位置は、仮想ローラ対R1の位置を原点とし、仮想紙Pの搬送方向を正方向として表現されている。なお、仮想紙Pの後端位置についての情報は本実施形態では特に必要としないため、図中に示していない。また、図7(b)に示す実行位置履歴記録部16内の履歴情報には、各シミュレーション時刻における、図6のフローチャート内での実行ステップ位置の情報が記録されている。
【0043】
●エラー検出処理
以下、本実施形態における実行履歴解析部3における実行履歴解析処理、すなわち搬送シミュレーションにおけるエラー検出処理について説明する。上述したように本実施形態におけるエラー検出処理は、上記図6に示すシミュレーション処理が終了し、実行履歴記録部2にシミュレーションの全履歴が記録された後に、実行される。
【0044】
図8は、実行履歴解析部3および実行履歴記録部2の詳細構成を示すブロック図である。同図に示すように実行履歴解析部3は、エラー判定条件に基づいて実行履歴記録部2内の履歴情報からエラー検出を行うエラー検出部31を有する。また、予めエラー判定条件を保持するエラー判定条件記録部32、検出されたエラーを表示するエラー表示部33を有する。ここでエラー判定条件は、実行履歴解析部3による実行履歴解析の実行前に、ユーザ指示に応じて操作入力部6等から入力され、これがPC内のHDDやRAM等に保持されることでエラー判定条件記録部32が構成される。なお、エラー判定条件の入力はこの例に限らず、例えばPCに付随する記録媒体から読み込まれるものであっても良い。
【0045】
以下、図8に示すエラー検出部31におけるエラー検出処理について、図9に示すフローチャートを用いて説明する。エラー検出部31はまず、実行履歴記録部2内の実行位置履歴記録部16に記録されている、制御プログラムの実行位置履歴を読み込む(S201)。また、搬送履歴記録部22に記録されている、紙位置とデバイスの制御情報からなる搬送状態履歴を読み込む(S202)。そしてさらに、エラー判定条件記録部32に記録されているエラー判定条件を読み込む(S203)。なお、上記S201〜S203の処理順は任意である。
【0046】
S201〜S203による各読み込み処理の終了後、実際のエラー検出処理が開始される。すなわち、まずS204において、S202で読み込んだ搬送状態履歴から、S203で読み込んだエラー判定条件を満たす搬送状態をエラー状態レコードとして検出する(エラー状態検出)。次にS205で、S201で読み込んだ実行位置履歴から、S204で検出されたエラー状態レコードの発生時刻に対応する実行ステップ位置を、エラー発生位置として検出する(エラー位置検出)。なお、ここで検出されるエラー発生位置は、エラー状態レコードの発生時刻と全く同時刻に実行されたものに限らず、例えばエラー状態レコードの発生時刻から所定の時間幅の区間内に実行されたステップに対応するものであっても良い。またエラー発生位置として、所定の時間幅区間内で実行された複数のステップ位置を検出しても構わない。
【0047】
そして最後にS206で、S204でエラー状態レコードとして検出された搬送状態と、S205でエラー発生位置として検出された実行ステップ位置を、互いに関連付けてエラー表示部33に送信する。これにより、検出されたエラー状態レコードに記録されたシミュレーション時刻における仮想紙位置とデバイス制御状態、およびエラー発生位置である実行ステップ位置の各情報を関連付けて表示することができる。
【0048】
ここで図10に、エラー判定条件記録部32に記録されているエラー判定条件の例を示す。同図に示すようにエラー判定条件は、「エラー番号」によって識別される。各エラー判定条件において、「エラー種別」は、エラー表示の際に表示部8に表示されるエラーの種類を示す。また「エラー条件」は、エラー検出部31におけるエラー判定時に判定基準として参照される条件であり、ここでは図5に示す仮想紙搬送経路に対する判定条件の例を示している。
【0049】
例えば、エラー番号「E1」,「E2」は、搬送経路の所定区間における被搬送体の搬送時間が、所定の制限時間を超える旨を示すエラー条件を示している。具体的には、「E1」が、搬送経路内の最初の仮想ローラ対R1が動作を開始してから、最初の仮想センサS1が被搬送体を検知するまでに要した時間が制限時間を超えてしまうエラー、すなわち被搬送体の「供給遅れ」状態を示す。また「E2」は、搬送経路内の仮想センサS1-S2間を被搬送体が通過するのに要した時間が制限時間を超えてしまうエラー、すなわち被搬送体の「搬送遅れ」状態を示す。
【0050】
また、エラー番号「E3」,「E4」は、被搬送体の搬送終了時に、仮想デバイスのいずれか未だ動作中である旨を示すエラー条件を示している。具体的には、「E3」が、搬送が終了したにも関わらず仮想ローラ対R1,R2,R3のいずれかが未だ動作中であるエラー、すなわち「ローラ未停止」状態を示している。また「E4」は、搬送が終了したにも関わらず仮想センサS1,S2のいずれかが被搬送体を検知中であるエラー、すなわち「紙残留」状態を示す。
【0051】
さらに、図10において「発生時刻」は、エラーと判定された時刻を示す。尚、「エラー条件」および「発生時刻」は、数式や論理式、プログラミング言語、自然言語を含む、エラー検出部31で実行されるエラー検出プログラムが解釈可能な記述により表現することが可能である。また「発生時刻」として、複数の時刻や時刻の区間等を入力することも可能である。
【0052】
●エラー表示画面
ここで図11に、本実施形態におけるエラー表示画面例を示し、具体的なエラー検出処理について説明する。図11は、実行履歴解析部3内のエラー検出部31において検出されたエラー情報が、エラー表示部33、表示制御部7を介して表示部8に表示されたエラー表示画面W2の一例を示す図である。エラー検出部31では上述したように、搬送履歴記録部22に記録された履歴情報(図7(a))と、実行位置履歴記録部16に記録された履歴情報(図7(b))のうち、エラー判定条件(図10)を満たすような履歴情報を検出する。このように検出された履歴情報が互いに関連付けられて、エラー情報としてエラー表示画面W2に表示される。
【0053】
図11に示すエラー表示画面W2において、エラー情報表示部W21には、検出されたエラーの発生時刻と、図10で定義されているエラー番号およびエラー種別が表示される。また、プログラム実行位置表示部W22には、エラー発生時刻における制御プログラム内の実行位置を示す情報が表示される。図11の例では該情報として、図6に示すフローチャート内のステップ番号が表示されている。また、紙位置・装置状態表示部W23には、エラー発生時刻における紙位置、および各デバイスの状態を表示する。図11の例では、紙位置を搬送経路内に太線で表示し、各センサおよびローラ対の近傍には、各仮想デバイスの状態(オンまたはオフ)を文字列で表示している。
【0054】
このように本実施形態では、エラー発生時の制御プログラムの実行位置と、仮想搬送装置内の仮想紙位置および仮想デバイス状態とが関連付けられ、エラー表示画面W2上に表示される。エラー表示画面W2が表示されることで、利用者はエラー発生時における仮想紙Pの位置と各仮想デバイスの状態、および制御プログラムの実行位置を、同時に確認することができる。
【0055】
具体的に図11の画面例によれば利用者は、制御プログラムにおけるS104の処理中に、仮想紙Pが仮想センサS2に到達した時刻が、エラー番号E2のエラー判定条件を満たしている、すなわち搬送遅れが発生している旨を読み取ることができる。ここで図10によればエラー番号E2は、仮想センサS1がオンになってから仮想センサS2がオンになるまでの時間が、制限時間である105msを超過した旨を検出するためのエラー条件を示している。このことから利用者は、このエラーの発生原因を推測することができる。すなわち、仮想搬送装置上における仮想センサS1から仮想センサS2の区間に、または制御プログラム上ではS104付近のステップに、仮想紙の搬送速度を低減させている何らかの要因があるものと推測することができる。
【0056】
なお、一度の紙搬送シミュレーションにおいて、検出されるエラー箇所は複数であることも多い。この場合には、エラー毎に検出された仮想紙位置とデバイス制御状態、およびエラー発生位置の各情報を組みとして例えば実行履歴解析部3内に保持しておき、エラー単位で表示可能となるように制御すれば良い。
【0057】
以上説明したように本実施形態によれば、仮想搬送装置による紙搬送シミュレーションでのエラー発生時に、各仮想デバイスの状態および被搬送体の位置、さらに制御プログラムの実行位置等のエラー情報が利用者に提示される。したがって利用者は、制御プログラムにおけるエラー発生位置の検出およびその修正を効率良く行うことができる。
【0058】
また、エラー種別と紙搬送位置、および制御プログラムの実行箇所が関連付けて表示されるため、これらエラー情報の組み合わせによって、予め定義されたエラー判定条件に対し、実質的により多くの動作パターンが検証可能となる。すなわち、利用者によるエラー判定条件入力の負荷が少なくて済む。
【0059】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションし、該制御プログラムを検証するプログラム検証装置であって、
前記シミュレーションの実行時に、前記制御プログラムの実行位置を示す実行位置情報の履歴をシミュレーション時刻と関連付けて記録する実行位置履歴記録手段と、
前記シミュレーションの実行時に、前記仮想搬送装置における各構成要素の状態と被搬送体の位置を示す搬送状態情報の履歴をシミュレーション時刻と関連付けて記録する搬送履歴記録手段と、
前記搬送履歴記録手段に記録された搬送状態情報の履歴から、搬送のエラー状態を示す搬送状態情報を検出するエラー状態検出手段と、
前記実行位置履歴記録手段に記録された実行位置情報の履歴から、前記エラー状態検出手段で検出された搬送状態情報のシミュレーション時刻に対応する実行位置情報を検出するエラー位置検出手段と、
を有することを特徴とするプログラム検証装置。
【請求項2】
さらに、前記エラー状態検出手段で検出された搬送状態情報と、前記エラー位置検出手段で検出された実行位置情報を関連付けて表示する表示手段
を有することを特徴とする請求項1に記載のプログラム検証装置。
【請求項3】
さらに、搬送状態情報に対するエラー判定条件を保持するエラー判定条件記録手段を有し、
前記エラー状態検出手段は、前記搬送履歴記録手段に記録された搬送状態情報の履歴から、前記エラー判定条件を満たす搬送状態情報を検出することを特徴とする請求項1または2に記載のプログラム検証装置。
【請求項4】
前記エラー判定条件は、前記仮想搬送装置内の搬送経路の所定区間における前記被搬送体の搬送時間が、所定の制限時間を超える旨を示す条件を含むことを特徴とする請求項3に記載のプログラム検証装置。
【請求項5】
前記エラー判定条件は、前記被搬送体の搬送終了時に前記仮想搬送装置における構成要素のいずれかが動作中である旨を示す条件を含むことを特徴とする請求項3に記載のプログラム検証装置。
【請求項6】
さらに、ユーザ指示に応じて前記エラー判定条件を入力する入力手段、
を有することを特徴とする請求項3乃至5のいずれか1項に記載のプログラム検証装置。
【請求項7】
前記仮想搬送装置における各構成要素として、前記仮想搬送装置内の搬送経路において前記被搬送体の到達を検知する仮想センサ、または該被搬送体を搬送する仮想ローラ対の少なくともいずれかを含むことを特徴とする請求項1乃至6のいずれか1項に記載のプログラム検証装置。
【請求項8】
実行位置履歴記録手段、搬送履歴記録手段、エラー状態検出手段、およびエラー位置検出手段を有し、搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションし、該制御プログラムを検証するプログラム検証装置における検証方法であって、
前記実行位置履歴記録手段が、前記シミュレーションの実行時に、前記制御プログラムの実行位置を示す実行位置情報の履歴をシミュレーション時刻と関連付けて記録し、
前記搬送履歴記録手段が、前記シミュレーションの実行時に、前記仮想搬送装置における各構成要素の状態と前記被搬送体の位置を示す搬送状態情報の履歴をシミュレーション時刻と関連付けて記録し、
前記エラー状態検出手段が、前記搬送履歴記録手段に記録された搬送状態情報の履歴から、搬送のエラー状態を示す搬送状態情報を検出し、
前記エラー位置検出手段が、前記実行位置履歴記録手段に記録された実行位置情報の履歴から、前記エラー状態検出手段で検出された搬送状態情報のシミュレーション時刻に対応する実行位置情報を検出する
ことを特徴とするプログラム検証方法。
【請求項9】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至7のいずれか1項に記載のプログラム検証装置の各手段として機能させるためのプログラム。
【請求項1】
搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションし、該制御プログラムを検証するプログラム検証装置であって、
前記シミュレーションの実行時に、前記制御プログラムの実行位置を示す実行位置情報の履歴をシミュレーション時刻と関連付けて記録する実行位置履歴記録手段と、
前記シミュレーションの実行時に、前記仮想搬送装置における各構成要素の状態と被搬送体の位置を示す搬送状態情報の履歴をシミュレーション時刻と関連付けて記録する搬送履歴記録手段と、
前記搬送履歴記録手段に記録された搬送状態情報の履歴から、搬送のエラー状態を示す搬送状態情報を検出するエラー状態検出手段と、
前記実行位置履歴記録手段に記録された実行位置情報の履歴から、前記エラー状態検出手段で検出された搬送状態情報のシミュレーション時刻に対応する実行位置情報を検出するエラー位置検出手段と、
を有することを特徴とするプログラム検証装置。
【請求項2】
さらに、前記エラー状態検出手段で検出された搬送状態情報と、前記エラー位置検出手段で検出された実行位置情報を関連付けて表示する表示手段
を有することを特徴とする請求項1に記載のプログラム検証装置。
【請求項3】
さらに、搬送状態情報に対するエラー判定条件を保持するエラー判定条件記録手段を有し、
前記エラー状態検出手段は、前記搬送履歴記録手段に記録された搬送状態情報の履歴から、前記エラー判定条件を満たす搬送状態情報を検出することを特徴とする請求項1または2に記載のプログラム検証装置。
【請求項4】
前記エラー判定条件は、前記仮想搬送装置内の搬送経路の所定区間における前記被搬送体の搬送時間が、所定の制限時間を超える旨を示す条件を含むことを特徴とする請求項3に記載のプログラム検証装置。
【請求項5】
前記エラー判定条件は、前記被搬送体の搬送終了時に前記仮想搬送装置における構成要素のいずれかが動作中である旨を示す条件を含むことを特徴とする請求項3に記載のプログラム検証装置。
【請求項6】
さらに、ユーザ指示に応じて前記エラー判定条件を入力する入力手段、
を有することを特徴とする請求項3乃至5のいずれか1項に記載のプログラム検証装置。
【請求項7】
前記仮想搬送装置における各構成要素として、前記仮想搬送装置内の搬送経路において前記被搬送体の到達を検知する仮想センサ、または該被搬送体を搬送する仮想ローラ対の少なくともいずれかを含むことを特徴とする請求項1乃至6のいずれか1項に記載のプログラム検証装置。
【請求項8】
実行位置履歴記録手段、搬送履歴記録手段、エラー状態検出手段、およびエラー位置検出手段を有し、搬送装置の制御プログラムを実行して仮想搬送装置による搬送をシミュレーションし、該制御プログラムを検証するプログラム検証装置における検証方法であって、
前記実行位置履歴記録手段が、前記シミュレーションの実行時に、前記制御プログラムの実行位置を示す実行位置情報の履歴をシミュレーション時刻と関連付けて記録し、
前記搬送履歴記録手段が、前記シミュレーションの実行時に、前記仮想搬送装置における各構成要素の状態と前記被搬送体の位置を示す搬送状態情報の履歴をシミュレーション時刻と関連付けて記録し、
前記エラー状態検出手段が、前記搬送履歴記録手段に記録された搬送状態情報の履歴から、搬送のエラー状態を示す搬送状態情報を検出し、
前記エラー位置検出手段が、前記実行位置履歴記録手段に記録された実行位置情報の履歴から、前記エラー状態検出手段で検出された搬送状態情報のシミュレーション時刻に対応する実行位置情報を検出する
ことを特徴とするプログラム検証方法。
【請求項9】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至7のいずれか1項に記載のプログラム検証装置の各手段として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−73399(P2013−73399A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−211598(P2011−211598)
【出願日】平成23年9月27日(2011.9.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願日】平成23年9月27日(2011.9.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]