(57)【特許請求の範囲】
【請求項１】
１又は２以上の機器の動作を時間軸に対して記述したタイムチャートを作成するタイムチャート作成装置と、
前記タイムチャート作成装置が作成した１又は２以上のタイムチャートに基づいて、前記１又は２以上の機器を制御する機器制御装置と、
を備え、
前記タイムチャート作成装置は、
前記タイムチャートに、時間軸に対して制御命令を記述した制御チャートを作成する制御チャート作成部と、
前記タイムチャートに、時間軸に対して機器の動作を記述した少なくとも１つの機器チャートを作成する機器チャート作成部と、
を有し、
前記制御命令には、複数のタイムチャート間の動作を記述するための命令が含まれ、
前記タイムチャート作成装置は、
前記制御チャートを、前記機器チャートと共通の時間軸上に、前記機器チャートと区別し得る態様で表示し、
前記制御命令は、前記制御チャート上の時刻を指定して記述される、
機器制御システム。
【請求項２】
前記機器制御装置は、
前記１又は２以上のタイムチャートごとに内部時刻を保持し、計時するとともにその進行停止を切り替える内部時刻計時部を有し、
前記複数のタイムチャート間の動作を記述するための命令には、前記内部時刻の進行停止を切り替える命令が含まれる、請求項１に記載の機器制御システム。
【請求項３】
前記複数のタイムチャート間の動作を記述するための命令には、少なくとも、タイムチャートを最初から実行させる命令、タイムチャートの実行を中断させる命令、タイムチャートの実行を再開させる命令、タイムチャートの実行を終了する命令、タイムチャートをサブルーチンとして呼び出す命令のいずれかが含まれる、
請求項２に記載の機器制御システム。
【請求項４】
前記複数のタイムチャート間の動作を記述するための命令には、さらに、事象の発生に応じて前記内部時刻の進行停止を切り替える例外処理命令を含む、
請求項３に記載の機器制御システム。
【請求項５】
前記制御チャートは、前記例外処理命令以外の制御命令を記述した通常制御チャートと、前記例外処理命令を記述した例外ハンドラとを含む、
請求項４に記載の機器制御システム。
【請求項６】
請求項１に記載の機器制御システムに使用される、タイムチャート作成装置。
【請求項７】
請求項１に記載の機器制御システムに使用される、機器制御装置。
【請求項８】
タイムチャートに、時間軸に対して機器の動作を記述した少なくとも１つの機器チャートを作成し、時間軸に対して制御命令を記述した制御チャートを、前記機器チャートと共通の時間軸上に、前記機器チャートと区別し得る態様で表示するように作成して、タイムチャートを作成し、
１又は２以上の前記タイムチャートに基いて１又は２以上の機器を制御し、
前記制御命令には、複数のタイムチャート間の動作を記述するための命令が含まれる、
機器制御方法。
【請求項９】
請求項８に記載の機器制御方法に使用される、タイムチャート作成方法。
【請求項１０】
コンピュータを、請求項６に記載のタイムチャート作成装置として機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、機器制御システム、タイムチャート作成装置、機器制御装置、機器制御方法、タイムチャート作成方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】  特許文献１には、タイムチャートからラダープログラムを自動作成する制御プログラム自動作成装置が記載されている。【０００３】  また、特許文献２には、パソコンを用いて入力機器及び出力機器のタイムチャートを編集するとともに、タイムチャートデータを機械語にコンパイル処理し、コンパイル処理された機械語を処理装置にインターフェースにより伝送することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−１９１７１７号公報
【特許文献２】特開２００３−２２８４０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】  本発明の解決しようとする課題は、タイムチャートに基いて機器制御するにあたり、複数のタイムチャートを連動させる制御を可能とすることである。
【課題を解決するための手段】
【０００６】  本発明の一の側面に係る機器制御システムは、１又は２以上の機器の動作を時間軸に対して記述したタイムチャートを作成するタイムチャート作成装置と、前記タイムチャート作成装置が作成した１又は２以上のタイムチャートに基づいて、前記１又は２以上の機器を制御する機器制御装置と、を備え、前記タイムチャート作成装置は、前記タイムチャートに、時間軸に対して制御命令を記述した制御チャートを作成する制御チャート作成部と、前記タイムチャートに、時間軸に対して機器の動作を記述した少なくとも１つの機器チャートを作成する機器チャート作成部と、を有し、前記制御命令には、複数のタイムチャート間の動作を記述するための命令が含まれる。【０００７】
また、本発明の一の側面に係る機器制御システムでは、前記機器制御装置は、前記１又は２以上のタイムチャートごとに内部時刻を保持し、計時するとともにその進行停止を切り替える内部時刻計時部を有し、前記複数のタイムチャート間の動作を記述するための命令には、前記内部時刻の進行停止を切り替える命令が含まれてよい。
【０００８】  また、本発明の一の側面に係る機器制御システムでは、前記複数のタイムチャート間の動作を記述するための命令には、少なくとも、タイムチャートを最初から実行させる命令、タイムチャートの実行を中断させる命令、タイムチャートの実行を再開させる命令、タイムチャートの実行を終了する命令、タイムチャートをサブルーチンとして呼び出す命令のいずれかが含まれてよい。【０００９】  また、本発明の一の側面に係る機器制御システムでは、前記複数のタイムチャート間の動作を記述するための命令には、さらに、事象の発生に応じて前記内部時刻の進行停止を切り替える例外処理命令を含んでよい。【００１０】  また、本発明の一の側面に係る機器制御システムでは、前記制御チャートは、前記例外処理命令以外の制御命令を記述した通常制御チャートと、前記例外処理命令を記述した例外ハンドラとを含んでよい。【００１１】  また、本発明の別の一の側面に係るタイムチャート作成装置は、上述の機器制御システムに使用されるものである。【００１２】  また、本発明の別の一の側面に係る機器制御装置は、上述の機器制御システムに使用されるものである。【００１３】  また、本発明の別の一の側面に係る機器制御方法は、タイムチャートに、時間軸に対して制御命令を記述した制御チャートを作成し、時間軸に対して機器の動作を記述した少なくとも１つの機器チャートを作成して、タイムチャートを作成し、１又は２以上の前記タイムチャートに基いて１又は２以上の機器を制御し、前記制御命令には、複数のタイムチャート間の動作を記述するための命令が含まれる。【００１４】  また、本発明の別の一の側面に係るタイムチャート作成方法は、上述の機器制御方法に使用されるものである。【００１５】  また、本発明の別の一の側面に係るコンピュータプログラムは、コンピュータを、上述のタイムチャート作成装置として機能させる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係る機器制御システムの概略図である。
【図２】タイムチャート作成装置のハードウェア構成図である。
【図３】タイムチャート作成装置により作成され、表示されたタイムチャートの一例を示す図である。
【図４】タイムチャート作成装置により作成され、表示されたタイムチャートの一例を示す図である。
【図５】タイムチャート作成装置により作成され、表示されたタイムチャートの一例を示す図である。
【図６】クレーンゲーム機を示す図である。
【図７】本発明の一実施形態に係る機器制御システムの機能ブロック図である。
【図８】制御データの構成例を示す図である。
【図９】複数のタイムチャートを連動させる制御をおこなうために用いられる命令を例示した図である。
【図１０Ａ】例外処理として、Ｔｒｙ＿Ｐｌａｙ命令を記述した制御チャートを示した図である。
【図１０Ｂ】例外処理として、Ｔｒｙ＿Ｃａｌｌ命令を記述した制御チャートを示した図である。
【図１０Ｃ】例外処理を例外ハンドラとして分離して示した制御チャートを示した図である。
【図１１】タイムチャート作成装置によりタイムチャートを作成する手順を示すフロー図である。
【図１２】機器制御装置により制御データに基いてタイムチャートを実行する手順を示すフロー図である。
【図１３】タイムチャート作成装置によりタイムチャートの動作をシミュレーションにより確認する手順を示すフロー図である。
【発明を実施するための形態】
【００１７】  本発明の発明者の見地によれば、従来機器制御に用いられているラダーチャートでは、必要としている制御全体を、機能ごとなど、適宜複数のラダーチャートに分割して記述することによりその生産性や保守性を高めることがある。複数のラダーチャートは、プログラマブルコントローラに同時に読み込まれ、スキャンされる。
【００１８】  ラダーチャートに対し、タイムチャートは、機器の動作を直感的に理解しやすい点でメリットが大きい。しかしながら、タイムチャートは規定の動作を時間軸に対し記述したものであり、制御全体を複数のタイムチャートに分割して記述した際に、これら複数のタイムチャートを連動させて実行する方法は知られておらず、タイムチャートの生産性や保守性の制限となっていた。
【００１９】  そこで、本発明の発明者は、タイムチャートを用いた機器制御において複数のタイムチャートを連動させる制御を行うことについて鋭意研究開発を行った結果、新規かつ独創的な機器制御システム等を発明するに至った。以下、かかる機器制御システム等をその実施形態を通じ図面を参照しつつ詳述する。
【００２０】  図１は本発明の実施形態に係るタイムチャート作成装置２及び機器制御装置３を含む機器制御システム１の例を示す概略図である。同図には、機器制御システム１の一例として、タイムチャート作成装置２及び機器制御装置３に加え、機器制御装置３に接続されたサーボコントローラ４、スイッチ５及びランプ６と、さらにサーボコントローラ４に接続されたサーボモータ７が示されている。
【００２１】
機器制御装置３は、自身に接続された種々の機器の動作を１又は２以上のタイムチャートに基いて制御する装置である。ここでの機器制御装置３は、一般に産業用機器のコントローラとして知られる機器と同種の装置であり、シーケンサ、或いはＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｃｏｎｔｒｏｌｌｅｒ）として知られる装置であってよい。なお、機器制御装置３は、各機器の制御をタイムチャートのみに基いて行うものでなくともよく、タイムチャートに加え、一般的なラダープログラムや他の言語による制御プログラムをも実行できるものであってよい。
【００２２】  また、タイムチャート作成装置２は、機器制御装置３において実行されるタイムチャートを作成し、機器制御装置３により解釈され実行できる形式の制御データに変換して機器制御装置３に転送する装置である。タイムチャート作成装置２は専用の装置であってもよいが、図示の通りの一般的なコンピュータを用い、タイムチャート作成装置２として機能させるコンピュータプログラムを実行することにより実現されている。かかるコンピュータプログラムは、各種の光ディスクや半導体メモリなどのコンピュータ可読情報記憶媒体に格納されてよく、該媒体からコンピュータにインストールされるようにすることが好ましい。或いは、インターネット等の各種の情報通信ネットワークからコンピュータにダウンロードされてもよく、さらには情報通信ネットワークを通じて遠隔地にあるサーバによりその機能が提供される、いわゆるクラウドコンピューティングにより実現されてもよい。
【００２３】  ここで、タイムチャートとは、１又は２以上の機器の動作を共通の時間軸に対して図示した図を意味しており、制御データとは、かかるタイムチャートを機器制御装置３が認識できる形式の電子データとして変換したものを意味するものとする。タイムチャート及び制御データの具体的な構成については後ほど詳述する。
【００２４】  また、ここでいう機器は、機器制御装置３により機器制御システム１の一部として制御の対象とされる物品を指し、機器制御装置３と何らかの電気的な入力又は出力をするものである。機器制御装置３への入力を行うような機器としては、例えば例示したスイッチ５が、また機器制御装置３からの出力を受けるような機器としては、例えば例示したランプ６が、また機器制御装置３と入出力をする機器としては、例えば例示したサーボコントローラ４のようなモータコントローラがあり、サーボコントローラ４を介して間接的に機器制御装置３により制御されるサーボモータ７のようなアクチュエータも本明細書にいう機器に該当する。なお、図１に示したサーボコントローラ４、スイッチ５、ランプ６及びサーボモータ７は、本明細書にいう機器を例示するため示されたものであり、機器制御システム１に含まれる機器の種類や数は、機器制御システム１により実現しようとする制御の内容により異なる。
【００２５】  なお、以上の説明及び図１では、本実施形態の説明に不要な他の詳細な構成や配線、例えば、電源線や接地線の接続については説明及び図示を簡略化するため省略している。また、接続態様やコネクタの種類等についても特に限定されるものではない。さらに、機器制御装置３が動作するにあたっては、必ずしもタイムチャート作成装置２が接続されている必要はなく、機器制御装置３に制御データが転送されているならば、タイムチャート作成装置２がなくとも機器制御装置３は動作可能である。また、タイムチャート作成装置２もまた必ずしも機器制御装置３に接続されている必要はなく、タイムチャート及び制御データの作成はタイムチャート作成装置２単独で可能である。
【００２６】
図２は、タイムチャート作成装置２の物理的な構成を示すブロック図である。タイムチャート作成装置２はここでは一般的なコンピュータであり、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）２ａ、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）２ｂ、外部記憶装置２ｃ、ＧＣ（Ｇｒａｐｈｉｃｓ Ｃｏｎｔｒｏｌｌｅｒ）２ｄ、入力デバイス２ｅ及びＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）２ｆがデータバス２ｇにより相互に電気信号のやり取りができるよう接続されている。ここで、外部記憶装置２ｃはＨＤＤ（Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）等の静的に情報を記録できる装置である。またＧＣ２ｄからの信号はフラットパネルディスプレイ等の、使用者が視覚的に画像を認識するモニタ２ｈに出力され、画像として表示される。入力デバイス２ｅはキーボードやマウス、タッチパネル等の、ユーザが情報を入力するための機器であり、Ｉ／Ｏ２ｆはタイムチャート作成装置２が外部の機器、ここでは、機器制御装置３と情報をやり取りするためのインタフェースである。
【００２７】  図３〜５は、それぞれ、タイムチャート作成装置２により作成され、表示されたタイムチャート１０の一例を示す図である。各タイムチャート１０は、横軸を時間軸とし、当該タイムチャート１０により制御しようとする機器の動作を記述した機器チャート１１を、機器と同数含む。図３及び図４に示したタイムチャート１０ではそれぞれ１つの、図５に示したタイムチャート１０では７つの機器が制御されるため、各機器ごとに機器チャート１１が枠で囲われて表示されている。また、各タイムチャートには番号が付され、区別されている。なお、タイムチャートには番号に換え、または番号に加えてそれぞれ名前を付けられるようにしてもよい。ここでは図３がタイムチャート１を、図４がタイムチャート２を、図５がタイムチャート３をそれぞれ示す。
【００２８】  ここでは、図３における「コインスロット」と名付けられた機器チャート１１は、コインスロット（後述する）に対応付けられており、コインスロットにコインが投入されると、破線で示された基準線１３から波形が立ち上がり、コインの投入を検知したことを示す。また、図４及び図５における「ランプ」と名付けられた機器チャートはランプに対応付けられており、基準線１３の位置が消灯、波形が基準線１３から立ち上がって示されている位置が点灯を示している。図５における「Ｘスイッチ」、「Ｙスイッチ」と名付けられた機器チャート１１は、押しボタンスイッチに対応付けられた機器チャート１１であり、基準線１３の位置がスイッチオフ、すなわち押しボタンが押されていない状態を、また波形が基準線１３から立ちあがって示されている位置がスイッチオン、すなわち押しボタンが押されている状態を示している。また、機器チャート１１の左端には、その機器の種類をわかりやすく示すアイコンと、機器チャート１１に付けられた名前が表示されている。
【００２９】  また、「Ｘ軸」、「Ｙ軸」、「Ｚ軸」と名付けられた機器チャート１１は、モータに対応付けられた機器チャート１１であり、基準線はモータの速度が０、すなわち停止している状態を示している。波形が基準線１３の位置から上側に現れると、モータが正転していることを示し、その高さが回転速度を示す。また、波形が基準線１３の位置から下側に現れると、モータが逆転していることを示し、同様にその高さが回転速度を示す。すなわち、「Ｘ軸」、「Ｙ軸」、「Ｚ軸」と名付けられた機器チャート１１に示される波形は、モータの速度波形である。なお、速度波形に替えて、或いは加えて、モータの位置波形を示すようにしてもよい。
【００３０】  さらに、「ハンド」と名付けられた機器チャートは、指令により開閉するハンド（後述する）に対応付けられた機器チャート１１であり、基準線１３の位置がハンドを開状態とする指令を、波形が基準線１３から立ち上がって示されている位置がハンドを閉状態とする指令を示している。
【００３１】  さらに、タイムチャート１０は、制御チャート１２を含む。制御チャート１２は、先に説明した機器チャート１１とは異なり、特定の機器に対応付けられない仮想的なチャートである。そして、制御チャート１２には、タイムチャート１０全体の高度な制御を行い、また複数のタイムチャート間の動作を記述するための制御命令が記述される。
【００３２】  機器チャート１１及び制御チャート１２は共通の時間軸に対し示されている。したがって、機器チャート１１上に示された全ての動作及び、制御チャート１２上に示された制御命令は、時間軸に対して記述されることになる。制御チャート１２の上部には時間軸上の時刻を示す時間目盛１４が表示されている。ここでは、時間目盛１４の時間の単位は秒である。また、時間目盛１４のさらに上部には、実行中のタイムチャート１０それぞれの現在時刻を示すマーカ１５が示されている。このマーカ１５は、タイムチャート１０に記述された動作を実行するとその動作に合わせて右方向に移動していき、現在の実行時点を示すためのものである。
【００３３】  図３〜５に示したタイムチャート１０は、図６に示すクレーンゲーム機２０の動作を記述したものである。クレーンゲーム機２０は、この例では、コインがコインスロット２８に投入されるまでは、筐体上部のランプ２９を点滅させて客を待ち、コインがコインスロットに投入されるとランプ２９を点灯状態にして、クレーンゲームを開始する。
【００３４】  クレーンゲームは、よく知られているように、押しボタンスイッチであるＸスイッチ２１を押している間、クレーン２２が図中示したＸ方向に移動し、さらに押しボタンスイッチであるＹスイッチ２３を押している間、クレーン２２が図中示したＹ方向に移動するというものである。その後の動作は自動的に行われ、クレーン２２がＺ方向に下がり、開状態であったハンド２４が閉じる。さらにクレーン２２がＺ方向に上昇し、その後クレーン２２は初期位置である景品獲得口２６の直上に移動し、ハンド２４が再び開状態となる。この一連の動作において、ハンド２４により筺体内に配置された景品２５を掴み上げることに成功していれば、景品２５は景品獲得口２６に落とされ、景品取出し口２７から取り出すことができる。一連の動作が終了すると、クレーンゲーム機２０は再び筐体上部のランプ２９を点滅させて、次のゲームの開始を待つ。
【００３５】  改めて図３〜５のタイムチャート１０を参照しつつ、この動作を機器制御装置３がどのように実行するかを以下に説明する。
【００３６】  機器制御装置３は、タイムチャート１０上の時刻を示す内部時刻をタイムチャート１０ごとに保持している。すなわち、ここでは３つの内部時刻を保持することになる。そして、それぞれのタイムチャート１０に記述された動作及び制御命令は、対応する内部時刻の進行に伴って、すなわち、それぞれの内部時刻が各動作及び制御命令が記述された時刻に到来したときに実行される。このことは、マーカ１５は、タイムチャート１０ごとの時間目盛１４上での内部時刻の位置を示すものであることを示している。
【００３７】  内部時刻の初期値は０秒である。そして、ここではタイムチャート１、すなわち図３に示したタイムチャート１０が最初に実行されるものとする。その結果、０秒の時点より図３のタイムチャート１０の実行が開始される。内部時刻は実時間の進行に従って進行していく。そして、この例では、時刻０．５秒において、制御チャート１２に「１」と記されたラベルが記述されている。このラベルは、一般的なコンピュータプログラム言語におけるラベルと同様の機能を有するものであり、タイムチャート１０上の特定の位置を示すだけのものであって、その他の意義は有していない。本実施形態におけるラベルと一般的なコンピュータプログラム言語におけるラベルとを比較すると、前者はその位置としてタイムチャート１０上の時刻を指し示すのに対して、後者はプログラムリスト又はプログラムカウンタ上の地点を指し示す点が異なる。このとき、タイムチャート２及び３では、対応する内部時刻は進行しておらず、０秒のままである。そのため、図４及び図５のタイムチャート１０は実行されない。
【００３８】  タイムチャート１において、内部時刻１．０秒に到達すると、「Ｐｌａｙ（２）」と表示された制御命令が記述されている。これは、２番のタイムチャート（タイムチャート２）を最初から、すなわち、内部時刻が０秒の時点から実行することを意味する命令である。これを受けて、タイムチャート２における内部時刻もその進行を開始する。このとき、タイムチャート１の内部時刻とタイムチャート２の内部時刻は、それぞれ同時に進行し、また互いの内部時刻が示す時刻は必ずしも一致せず、多くの場合は異なる時刻を示すことになる。これにより、タイムチャート１とタイムチャート２は同時並行的に実行される。
【００３９】  図４のタイムチャート２では、実行の開始から１秒後の内部時刻が１．０秒の時点でランプ２９が点灯され、さらに１秒後の内部時刻が２．０秒の時点で消灯される。同様に内部時刻が３．０秒の時点で点灯、４．０秒の時点で消灯される。そして、内部時刻が４．０秒の時点で制御命令「Ｊｕｍｐ（２）」が実行されるが、これは、機器制御装置３によるタイムチャート１０上の実行位置を指定したラベルの位置に移動させることを示すものであり、多くのコンピュータプログラム言語においてｇｏｔｏ文として知られている制御転送命令（いわゆるジャンプ命令）である。ここでは、０秒の時点に記述されたラベル「２」へと制御を移すことを意味している。この制御は、内部時刻をラベルが示す時点である０秒に書き換えることにより実現される。この結果、タイムチャート２では０秒から４．０秒までの制御が繰り返し実行され、その結果、１秒ごとにランプ２９は点灯、消灯を繰り返すことになる。
【００４０】  一方、図３のタイムチャート１では、内部時刻がさらに進行し、１．５秒の時点に到達すると、「コインスロット」についての機器チャート１１に信号がオンとなることを示す波形が記述されている。ここで、コインスロット２８はコインが投入されたことを検知する機器である。そして、機器制御装置３は、コインスロット２８の状態が機器チャート１１に記述されたものと一致する、すなわち、コインが投入されるまでタイムチャート１についての内部時刻の進行を停止し、１．５秒のまま保持する。これにより、機器制御装置３は、コインの投入を待つことになる。この間も、タイムチャート２は実行され続けるため、ランプ２９は点滅を繰り返すことになる。
【００４１】  コインスロット２８にコインが投入されると、内部時刻が再び進行をはじめ、２．０秒の時点で「Ａｂｏｒｔ（２）」と表示された制御命令が実行される。これは、タイムチャート２の動作を終了させることを意味する命令である。この結果、タイムチャート２についての内部時刻の進行は停止し、またその値は０秒の時点にリセットされる。これに伴い、ランプ２９の点滅は停止されることになる。
【００４２】  さらに内部時刻が３．０秒の時点に到達すると、「Ｃａｌｌ（３）」と表示された制御命令が実行される。これは、タイムチャート３をいわゆるサブルーチンコールとして実行させる命令である。この命令は、この命令自身が記述されたタイムチャート１０、ここではタイムチャート１の内部時刻の進行を停止させ、呼び出されるタイムチャート１０、ここではタイムチャート３の内部時刻の進行を最初から、すなわち０秒の時点から開始させるというものである。したがって、これ以降は、タイムチャート３に記述された動作が終了するまでは、タイムチャート１はその実行を停止することになる。
【００４３】  図５に示したタイムチャート３では、その内部時刻の進行が開始されると、「ランプ」についての機器チャート１１の記述に従い、直ちにランプ２９が点灯される。さらに内部時刻が進行し、時刻０．５秒においては、「Ｘスイッチ」についての機器チャート１１に信号がオンとなることを示す波形が記述されている。ここで、図４に示されるように、Ｘスイッチ２１は押しボタンスイッチであり、遊技者が当該スイッチを押すことによりその信号が変化するものである。そのため、機器制御装置３は、Ｘスイッチ２１の状態が機器チャート１１に記述されたものと一致する、すなわち、Ｘスイッチが押下されるまで内部時刻の進行を停止し、０．５秒のまま保持する。この制御により、機器制御装置３は、Ｘスイッチ２１が押下されるまで待機する動作をすることになる。
【００４４】  Ｘスイッチ２１が押下されると、内部時刻が再度進行を開始する。そして内部時刻が０．６秒に到達した時点で、「Ｘ軸」についての機器チャート１１に動作「Ｆｅｅｄ」が記載されている。この動作「Ｆｅｅｄ」は、該当するモータを所定の速度で連続的に回転させることを意味している。したがって、この動作「Ｆｅｅｄ」が有効である間、機器制御装置３は、Ｘ軸モータを回転させ続ける。
【００４５】  そして、内部時刻が１．０秒に到達すると、「Ｘスイッチ」についての機器チャート１１に信号がオフとなることを示す波形が記述されている。この場合についても先ほどと同様に、機器制御装置３は、Ｘスイッチ２１の状態が機器チャート１１に記述されたものと一致する、すなわち、Ｘスイッチが解放されるまで内部時刻を停止、１．０秒のまま保持する。この制御により、機器制御装置３は、Ｘスイッチ２１が解放されるまで待機する動作をすることになる。この間、Ｘ軸モータの動作「Ｆｅｅｄ」は有効であるから、Ｘ軸モータは回転し続けることになる。
【００４６】  Ｘスイッチ２１が解放されると、内部時刻が再度進行を開始する。そして内部時刻が１．１秒に到達した時点には「Ｘ軸」についての機器チャート１１に動作「Ｈｏｌｄ」が記載されており、これは動作「Ｆｅｅｄ」を終えることを意味している。したがって、内部時刻が１．１秒の時点で機器制御装置３は、Ｘ軸モータを停止する。
【００４７】  以上の動作により、Ｘスイッチ２１を押下している間、クレーン２２をＸ方向に移動させるという制御が実現されている。さらに、内部時刻が１．５秒から２．１秒の間に、「Ｙスイッチ」についての機器チャート１１と「Ｙ軸」についての機器チャート１１の記述により、Ｘ軸の場合と全く同様に、Ｙスイッチ２３を押下している間、クレーン２２をＹ方向に移動させるという制御が実現されている。
【００４８】  その後内部時刻は２．５秒の時点まで進行し、「Ｚ軸」についての機器チャート１１に示されたように、機器制御装置３は、Ｚ軸モータを指定された速度波形で内部時刻が４．５秒の時点まで負方向に回転させる。これにより、クレーン２２はＺ方向に所定の距離だけ自動的に下降することになる。
【００４９】  続けて、内部時刻が５．０秒に到達すると、「ハンド」についての機器チャート１１に信号がオンとなることを示す波形が記述されている。ここで、図４のハンド２４は機器制御装置３からの信号がオンである間は閉じ、当該信号がオフである間は開く、という動作をするものである（なお、ハンド２４を開閉する動力源はどのような機構であってもよい。電磁ソレノイドや空圧アクチュエータ等適宜の機器を用いてよい）。したがって、この時点でハンド２４は閉じ、閉状態となる。
【００５０】  さらに内部時刻が６．０秒の時点で、「Ｚ軸」についての機器チャート１１に動作「Ｈｏｍｅ」が記述されている。この動作「Ｈｏｍｅ」は、該当するモータを所定の速度で原点位置に復帰させる動作を意味している。したがって、この動作「Ｈｏｍｅ」により、Ｚ軸はその原点位置に向かって正転し、クレーン２２はＺ方向に自動的に上昇することになる。そして、機器制御装置３は、この原点復帰動作が完了するまで、すなわち、Ｚ軸モータから原点復帰信号が入力されるまで内部時刻の進行を停止し、６．０秒のまま保持する。これにより、機器制御装置３は、Ｚ軸モータの原点復帰動作が完了するまで待機する動作をする。Ｚ軸モータの原点復帰が完了すると、内部時刻は再度進行を開始する。
【００５１】  その後内部時刻が６．５秒に到達すると、「Ｘ軸」についての機器チャート１１及び「Ｙ軸」についての機器チャート１１の双方に動作「Ｈｏｍｅ」が記述されている。これにより、先ほどのＺ軸と同様に、機器制御装置３は、Ｘ軸とＹ軸の双方に対し原点復帰動作を指令し、その動作が完了するまで内部時刻の進行を停止し待機する。これにより、クレーン２２はその初期位置、すなわち、景品獲得口２６の直上の位置まで復帰することになる。
【００５２】  Ｘ軸とＹ軸双方の原点復帰動作が完了した後、内部時刻が７．０秒まで進行すると、「ハンド」についての機器チャート１１に信号がオフとなることを示す波形が記述されている。したがって、この時点でハンド２４が開く。ハンド２４による景品２５の把持に成功していれば、景品２５は景品獲得口２６内に落下することになる。
【００５３】  以上でクレーンゲームの一連の動作は終了であるが、内部時刻はさらに８．０秒の時点まで進行する。この時点でランプ２９は消灯され、また、制御チャート１２に「Ｒｅｔｕｒｎ」と記された制御命令が記述されている。この制御命令は、Ｃａｌｌ命令で呼び出された時点に制御を戻すことを意味しており、ここでは、タイムチャート３自身についての内部時刻の進行を停止させ、図３のタイムチャート１における内部時刻の進行を３．０秒の時点から再開させることになる。
【００５４】  再び図３のタイムチャート１に戻り、内部時刻が４．０秒の時点に到達すると、「Ｊｕｍｐ（１）」と表示されたジャンプ命令が実行される。この結果、この例では、０．５秒の時点に実行が移る。以降は、上述した一連の動作が繰り返し実行されることになる。
【００５５】  ここで、本明細書で言う制御命令とは、機器の動作を示すものではなく、タイムチャートを実行する上での機器制御装置３の内部的な動作を制御するための命令である。この制御命令には、上述したジャンプ命令のように、一般的なコンピュータプログラム言語にいう制御命令あるいは制御構文と同等のもののほか、複数のタイムチャートを動作させるために用いる、タイムチャート１０の実行停止を制御する命令が含まれる。そのため、制御命令には、本実施形態で一般的なコンピュータプログラム言語におけるいわゆるプログラムカウンタに相当するものとして用いられる内部時刻を書き換えるもののほか、実行しているタイムチャート１０以外のタイムチャート１０についての内部時刻の進行停止を制御するものが含まれることになる。
【００５６】  これにより、複数のタイムチャート１０が存在する場合に、それぞれのタイムチャート１０を連動させ、その進行停止を細かく制御することができる。そのため、たとえば大規模な制御が必要な場合であっても、システムに含まれるモジュールごとにタイムチャート１０を作成し、それぞれのタイムチャート１０の実行停止を制御することにより全体制御を実現するなど、その生産性・保守性を高めることができる。
【００５７】  なお、一般的なコンピュータプログラミング言語にいう制御命令あるいは制御構文は、命令の実行順序を通常の逐次実行以外の順序に変化させる指令であるが、ここでいう制御命令は、機器の動作や制御命令の実行順序を記述された時間通り以外の順序に変化させるものということができる。また、本明細書で言う高度な制御とは、単なる逐次実行とは異なり、制御命令により、制御の実行順序を記述された以外の順序に変化させる制御を指す。すなわち、本実施形態では、タイムチャート１０が時間軸に対して制御命令を記述した制御チャート１２を含むことにより、タイムチャート１０上で高度な制御を記述することができ、また、かかるタイムチャート１０を変換して得られる制御データが、時刻に紐づけられた制御命令を示す制御命令データを含むことにより、タイムチャート１０に基く高度な制御を実行することもできるのである。
【００５８】  そして、図３に示したように、制御命令は、機器チャート１１とは別個に表示される制御チャート１２上の時刻を指定して記述される。これにより、タイムチャート１０に接した際に、その制御の実行順序や複数のタイムチャート１０の連動に関係する部分の記述を一瞥して把握できる。すなわち、制御チャート１２が機器チャート１１と区別し得る態様で表示されることにより、制御命令が機器の動作の記述中に埋没して認識が困難となる事態を防いでいるのである。結果、タイムチャート１０の可読性が高まり、修正等の保守や再利用が容易になる等、タイムチャート１０の生産性が高まる。
【００５９】  図７は、本実施形態に係る機器制御システム１の機能ブロック図である。なお、ここで示した機能ブロックは、機器制御システム１に含まれる機器、特にタイムチャート作成装置２と機器制御装置３が有する機能に着目して示したものであり、必ずしも各機能ブロックに１対１に対応する物理的構成が存在することを有しない。いくらかの機能ブロックはタイムチャート作成装置２のＣＰＵ２ａや、機器制御装置３が有するプロセッサ等の汎用或いは専用の情報処理装置が特定のソフトウェアを実行することにより実現され、またいくらかの機能ブロックはタイムチャート作成装置２のＲＡＭ２ｂや、機器制御装置３が有するメモリ等の情報記憶装置に特定の記憶領域が割り当てられることにより実現されてよい。
【００６０】  タイムチャート作成装置２は、タイムチャート作成部２ｉ、変換部２ｊ及び送信部２ｋを有する。また、さらに好ましくはタイムチャートシミュレート部２ｍ、機器シミュレート部２ｎをも備えたものとするとよい。
【００６１】  タイムチャート作成部２ｉは、モニタ２ｈに例えば図３に示したような態様でタイムチャートを表示し、入力デバイス２ｅからの入力を受け付け、タイムチャートを作成する部分であり、制御チャートを作成する制御チャート作成部２ｏ及び機器チャートを作成する機器チャート作成部２ｐを含む。タイムチャート作成部２ｉは、タイムチャートを作成するにあたり、ユーザからの入力指示が容易となるよう適宜のＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を備えていることが望ましい。そのようなＧＵＩとしては、例えば、図３に即して説明するならば、制御チャート作成部２ｏでは、制御チャート１２の基準線１３上の特定の時刻を任意のポインティングデバイスでポイントすると、記述可能な制御命令の選択肢が表示され、あるいは必要な情報を入力させるためのダイアログを表示する等が挙げられる。機器チャート作成部２ｐでは、機器チャート１１の基準線１３上の特定の時刻を同様にポイントすると、記述可能な動作の選択肢が表示され、あるいはダイアログを表示する等である。
【００６２】  変換部２ｊは、タイムチャート作成部２ｉで作成されたタイムチャートを制御データに変換する部分である。ここで、図３に示したように、タイムチャート１０には制御チャート１２が含まれ、制御命令は制御チャート１２上に記述されるようになっている。しかしながら、前述したように、制御チャート１２は特定の機器に対応づけられるものではなく、高度な制御に関するタイムチャート１０の可読性を向上するための仮想的なチャートである。そのため、機器制御装置３においてタイムチャートに基く制御を実行するにあたっては、必ずしも制御チャートが明示的に示されていることは必要ではない。すなわち、タイムチャートから変換された制御データが、制御命令であることを示すデータを含んでいれば、機器制御装置３自体は制御チャートそのものを認識することなくタイムチャートにしたがった制御を実行することが可能である。したがって、制御データは、タイムチャートに含まれる制御チャートに記述され、時刻に紐づけられた制御命令を示す制御命令データと、タイムチャートに含まれる機器チャートに記述され、時刻に紐づけられた機器の動作を示す動作データを含むものとなる。
【００６３】  変換部２ｊにより変換された制御データは、送信部２ｋにより機器制御装置３に送信され、後述する制御データ保持部３ａに保持され、必要に応じて読みだされて実行されることになる。ここで、一般的に、タイムチャート作成装置２において作成されるタイムチャートそのものを示す情報のデータ量と、変換部２ｊにより変換された制御データのデータ量とを比較すると、制御データのデータ量の方が小さい。したがって、制御データをタイムチャート作成装置２側で作成し送信することにより、通信しなければならないデータ量及び、制御データ保持部３ａで保持しなければならないデータ量は低減される。また、機器制御装置３側にタイムチャートを解読するためのエンジンを別途用意する必要がなく、容量の削減及び、高速な動作が可能である。さらに、タイムチャートの仕様変更などの際には、タイムチャート作成装置２側の変換部２ｊの仕様を変更すればよく、機器制御装置３側のファームウェア等の変更は通常必要ないため、柔軟な運用が可能である。
【００６４】
ところで、制御データの具体的な構成や形式は、先述したように、時刻に紐付けられた機器の動作を示す動作データと、時刻に紐付けられた制御命令を示す制御命令データと、を少なくとも含むものであれば特に限定はなくいかなるものであってもよい。すなわち、制御データのデータ形式がテキスト形式であってもバイナリ形式であってもよい。例えば、制御データを示す電子ファイルがテキスト形式のものである場合には、当該ファイルはいわゆるＣＳＶ形式等の配列形式やＸＭＬ形式としてよい。
【００６５】
図８は、制御データの構成例を示す図である。一例として、制御データは、ファイル冒頭に項目として初期化データを有し、その後、必要な数だけ動作データ及び制御データが続く。ファイルの最後には、必要であれば、制御データの終了を示すｅｏｆ（Ｅｎｄ Ｏｆ Ｆｉｌｅ）が付加される。なお、ここでは制御データはＣＳＶ形式のデータであり、各項目はカンマで区切って示される。
【００６６】  初期化データは、タイムチャート自身についての情報や、タイムチャートを実行するにあたり必要となる各種の情報、例えば機器制御装置３に接続される機器の情報を含むデータである。例えば、必要な情報は「ＥＮＴＲＹ＝”ｖａｌｕｅ”；・・・」といった形式で示される。具体的には、タイムチャートの番号が「１」、プロジェクト名が「クレーンゲーム」、製作者の名前が「ｙａｓｋａｗａ」である、図３に示すタイムチャート１０の場合、一例として、「ＣＨＡＲＴＮＵＭ＝”１”；ＰＲＯＪＥＣＴＮＡＭＥ＝”クレーンゲーム”；ＡＵＴＨＯＲ＝”ｙａｓｋａｗａ”；Ｍ１＝”ＣＯＩＮＳＬＯＴ”」等となる。ここで、ＥＮＴＲＹとして示された「ＣＨＡＲＴＮＵＭ」はタイムチャートの番号を、「ＰＲＯＪＥＣＴＮＡＭＥ」はプロジェクト名、「ＡＵＴＨＥＲ」はその制作者を示し、「Ｍ１」は機器制御装置３に接続された機器の種別を示すものである。もちろん、必要に応じてこれ以上の情報を初期化データに含ませてよい。
【００６７】  また、動作データは、その動作データが対象とする機器と、その動作が記述された時刻と、その動作の内容を含むデータであり、例えば、「時刻；機器番号；動作」といった形式で示される。例えば、図５の「Ｘスイッチ」についての機器チャート１１において、０．５秒の時点で示された動作であれば、「０．５；Ｍ２；ＯＮ」等となる。
【００６８】  制御命令データについても同様であり、制御命令データである旨、その制御命令が記述された時刻及びその制御命令の内容を含むデータとなっている。例えば、図３に示したＰｌａｙ命令であれば、「１．０；Ｃ；Ｐｌａｙ２」等となる。ここで、「Ｃ」は制御命令であることを示し、「Ｐｌａｙ２」はタイムチャート２の実行を開始する命令を示す。
【００６９】  図７に戻り、機器制御装置３は、制御データ保持部３ａに転送された制御データを保持する。また、機器制御装置３は、内部時刻計時部３ｂを有しており、内部時刻を計時する。ここで、内部時刻計時部３ｂは、複数のタイムチャートそれぞれに対応する複数の内部時刻を保持しており、それぞれ独立してその値を保持するとともに、その進行停止を切り替えることができる。これにより、複数のタイムチャートの実行停止を内部時間の進行停止に基いて制御することができる。内部時刻計時部３ｂにより計時される内部時刻の進行速度は、通常は実時間の進行速度と一致するものとされるが、これを異なるものとしてもよい。すなわち、内部時刻の進行速度を、実時間に対しより早く、或いはより遅いものとしてもよい。この内部時刻の進行速度の実時間の進行速度に対する比はオーバーライド係数として知られており、必要に応じてこのオーバーライド係数を調整することにより、タイムチャートを実行する際の進行速度を早めたり、遅くしたりしてよい。
【００７０】  そして、制御データ保持部３ａに保持された制御データは、内部時刻計時部３ｂにより計時される内部時刻の進行に従って、制御データ読込部３ｃにより読み込まれる。制御データ読込部３ｃが有する機能は、タイムチャートごとの内部時刻に該当する時刻を持つ動作データ及び制御命令データを読み込み、読み込んだデータが制御命令データであれば、かかるデータを制御命令実行部３ｄに、読み込んだデータが動作データであれば、当該動作データが機器への出力を意味するものである場合、機器出力実行部３ｅに、当該動作データが機器からの入力を意味するものである場合、内部時刻停止部３ｆにそれぞれ送るというものである。
【００７１】  制御命令実行部３ｄは、制御命令データを解釈し、実行する。制御命令が複数のタイムチャート間における実行停止を制御するものである場合、制御の対象となるタイムチャートに対応する内部時刻の進行停止、またはその値の書き換えを内部時刻計時部３ｂに指示することになる。また、制御命令が制御命令あるいは制御構文である場合、通常はその命令を実行するための条件と、その結果としてタイムチャート上での制御転送を示すので、制御命令実行部３ｄは、制御命令データの解釈の結果、必要に応じて内部時刻計時部３ｂに保持される内部時刻を書き換えるなどの制御をおこなう。
【００７２】  機器出力実行部３ｅは、動作データを解釈し、機器にかかる動作を実現するために必要な信号を出力する。これにより、各機器はタイムチャートに記述された通りの動作を行うこととなる。
【００７３】  内部時刻停止部３ｆは、動作データを解釈し、機器からの入力が、タイムチャートに記述されたデータと一致するまで、内部時刻計時部３ｂにおける、当該タイムチャートに対応する内部時刻の進行を停止する部分である。これにより、機器制御装置３は、例えば特定のスイッチが押下されるまで待機する、といった動作を行う。
【００７４】  ところで、本実施形態にかかる機器制御システム１において使用し得る制御命令において、複数のタイムチャートを連動させる制御をおこなうために用いられる命令を例示すると、おおむね図９に示した通りである。
【００７５】  図９に示した「Ｐｌａｙ（ｎ）」は、前述したとおり、ｎ番目のタイムチャートを最初から実行させる命令である。この命令が実行されると、ｎ番目のタイムチャートについての内部時刻が０秒にリセットされ、さらにその進行が開始される。この結果、現在実行中のタイムチャート１０に加えて、さらに、同命令で指定されたタイムチャートが同時並行的に実行されることになる。ここで、実行するタイムチャートの指定は、必ずしも番号によらず、タイムチャートに付した名前等を用いてもよい。以下同様である。
【００７６】  「Ｐａｕｓｅ（ｎ）」は、ｎ番目のタイムチャートの実行を中断させる命令である。この命令が実行されると、ｎ番目のタイムチャートについての内部時刻の進行が停止される。この結果、ｎ番目のタイムチャートの実行は中断される。ここで、進行が停止した内部時刻の値は、そのまま保持される。
【００７７】  「Ｃｏｎｔｉｎｕｅ（ｎ）」は、ｎ番目のタイムチャートの実行を再開させる命令である。この命令が実行されると、ｎ番目のタイムチャートについての内部時刻は、その現在保持されている内部時刻から進行が再開される。この結果、ｎ番目のタイムチャートは、例えば前述のＰａｕｓｅ命令により実行が中断された時点から、その実行を再開する。
【００７８】  「Ａｂｏｒｔ（ｎ）」は、前述のとおり、ｎ番目のタイムチャートの実行を終了するというもので、この命令が実行されると、ｎ番目のタイムチャートについての内部時刻の進行が停止され、その値は０秒にリセットされる。
【００７９】  「Ｃａｌｌ（ｎ）」は、前述のとおりいわゆるサブルーチンコールであり、ｎ番目のタイムチャートをサブルーチンとして呼び出す。この命令が実行されると、この命令が記述されているタイムチャートにおける内部時刻の進行が停止され、ｎ番目のタイムチャートについての内部時刻を０秒にリセットするとともにその進行が開始される。ｎ番目のタイムチャートに記述されたＲｅｔｕｒｎ命令が実行されるか、その動作が終了すると、内部時刻の進行が再開される。
【００８０】  以上の通り、本実施形態においては、複数のタイムチャート間における実行停止を制御する制御命令に、少なくともタイムチャートを最初から実行させる命令、タイムチャートの実行を中断させる命令、タイムチャートの実行を再開させる命令、タイムチャートの実行を終了する命令、タイムチャートをサブルーチンとして呼び出す命令のいずれかが含まれる。これにより、複数のタイムチャートを連動させる制御を容易にかつ柔軟に記述することができる。なお、以上の説明では複数のタイムチャート間における実行停止を制御する制御命令はいずれも、かかる制御命令が記載されたタイムチャート以外のタイムチャートの実行停止を制御するものとして説明したが、制御命令が記載されたタイムチャートそれ自体の実行停止を制御するようにしてもよい。あるいは、制御命令が記載されたタイムチャートそれ自体の実行停止を禁止してもよい。
【００８１】  さらに、本実施形態においては、複数のタイムチャートを連動させる制御をおこなうために用いられる命令に、いわゆる例外処理を行うための例外処理命令が含まれていてよい。ここでいう例外処理命令は、何らかの事象、たとえばエラーの発生に応じて、特定の例外処理を行うというものである。この事象は、いわゆるエラーとしてあらかじめ定められているもの（例えば、機器制御装置３自身が発するエラーや、機器制御装置３と接続されるサーボコントローラ等の機器が発するエラー等）としてもよいし、ユーザが事象を設定できるようにしてもよい。例外処理に設定すべき事象としては、例えば、非常停止ボタンの押し下げなどが考えられる。以降、例外処理を発生させるべき事象のことを、単に事象という。
【００８２】  図１０Ａは、例外処理として、例外発生時にｎ番目のタイムチャートを実行するものを制御チャート１２に記述した例である。この例では、１．０秒の時点に記述されている制御命令であるＴｒｙ＿Ｐｌａｙ命令は、事象発生の監視の開始を意味し、４．０秒の時点に記述されている制御命令であるＴｒｙ＿Ｅ命令は、事象発生の監視の終了を意味する。すなわち、このＴｒｙ＿Ｐｌａｙ命令とＴｒｙ＿Ｅ命令に挟まれた区間である１．０〜４．０秒の区間内において事象が発生すれば、例外処理が行われることになる。
【００８３】  １．０〜４．０秒の区間内において事象が発生した場合には、機器制御装置３は例外処理として、前述のＰｌａｙ（ｎ）命令を実行する。すなわち、このＴｒｙ＿Ｐｌａｙ命令とＴｒｙ＿Ｅ命令とが記述されたタイムチャートと並行して、ｎ番目のタイムチャートがその内部時刻が０秒の時点から実行されることになる。
【００８４】  図１０Ｂは、例外処理として、例外発生時にサブルーチンコールを行うものを制御チャート１２に記載した例である。この場合では、１．０秒の時点に記述されている制御命令であるＴｒｙ＿Ｃａｌｌ命令は、先のＴｒｙ＿Ｐｌａｙ命令と同様に事象発生の監視の開始を意味し、Ｔｒｙ＿Ｅ命令は事象発生の監視の終了を意味するので、この例でも１．０〜４．０秒の区間内において事象が発生すれば、例外処理が行われることになる。
【００８５】  １．０〜４．０秒の区間内において事象が発生した場合には、機器制御装置３は例外処理として、前述のＣａｌｌ（ｎ）命令を実行する。すなわち、このＴｒｙ＿Ｐｌａｙ命令とＴｒｙ＿Ｅ命令とが記述されたタイムチャートの内部時刻の進行を停止し、ｎ番目のタイムチャートをその内部時刻が０秒の時点から実行する。ｎ番目のタイムチャートにおいてＲｅｔｕｒｎ命令が実行されるか、その動作が終了すると、進行が停止された時点から内部時刻の進行が再開される。
【００８６】  なお、上述の例では、例外処理命令（Ｔｒｙ＿Ｐｌａｙ命令、Ｔｒｙ＿Ｃａｌｌ命令、Ｔｒｙ＿Ｅ命令）を他の制御命令と同じく制御チャート１２上に記述したが、タイムチャート作成者の理解をより容易にするため、例外処理命令を記述する制御チャートを通常の制御命令（例外処理命令以外の制御命令）と異なるチャートに記述するようにしてもよい。
【００８７】  図１０Ｃは、例外処理命令を、通常の制御命令、すなわち例外処理命令以外の制御命令を記述する通常制御チャート１２ａとは区別して示されるチャートである、例外ハンドラ１２ｂに記述した例を示す図である。ここで、例外ハンドラ１２ｂもまた、特定の機器に対応付けられない仮想的なチャートであることから、制御チャート１２の一種である。したがって、この例では制御チャート１２には通常制御チャート１２ａと例外ハンドラ１２ｂとが含まれることになる。
【００８８】  以上のように、複数のタイムチャートを連動させる制御をおこなうために用いられる命令に、特定の事象に応じて内部時刻を書き換える、例外処理命令が含まれてよい。これにより、複数のタイムチャート間の連動制御をより柔軟かつ高度なものとすることができる。
【００８９】  図１１は、タイムチャート作成装置２によりタイムチャートを作成する手順を示すフロー図である。この手順は、同図に示すように、まず、タイムチャート作成装置２のタイムチャート作成部２ｉの制御チャート作成部２ｏにより制御チャートを、機器チャート作成部２ｐにより機器チャートをＧＵＩ上で作成し（ステップＳ１）、次いで変換部２ｊにより作成したタイムチャートを制御データに変換し（ステップＳ２）、最後に変換された制御データを送信部２ｋにより機器制御装置３へと送信すればよい（ステップＳ３）。
【００９０】  図１２は、機器制御装置３により制御データに基いてタイムチャートを実行する手順を示すフロー図である。まず、機器制御装置３の内部時刻計時部３ｂは、各タイムチャートについてその内部時刻を初期値である０秒に設定する（ステップＳ４）。また、このときに、代表となるタイムチャート、例えば１番目のタイムチャートについてのみ、内部時刻が進行するよう設定する。続いて、制御データ読込部３ｃは、各タイムチャートそれぞれについてその内部時刻に合致する時刻をもつ制御命令データ、或いは、動作データが存在するか否か判別し、存在していれば当該データを読み込む（ステップＳ５）。この動作は、同時刻に複数のデータが存在する場合には、複数のデータ全てについて読み込みが完了した場合に、もはやデータが存在しないものと判別することになる。
【００９１】  現在の内部時刻に対応する制御命令データも動作データも存在しない場合には、つづくステップＳ６にて当該タイムチャートの終了を判別する。この判別は、現在の内部時刻以降の時刻に対応する制御命令データも動作データも存在しない場合に肯定される。この判別の具体的な手法は特に限定されないが、例えば、あらかじめ制御データの初期化データ内に制御命令データ又は動作データが最後に記述された時刻を記述しておいたり、制御データを検索して最も遅い時刻として記述されている時刻を抽出しておくことにより容易に実現できる。あるいは、タイムチャート上に明示的に動作の終了を制御命令として記述しておくようにしてもよい。
【００９２】  当該タイムチャートの実行を終了する場合、ステップＳ８へと進み、その内部時刻の進行を停止する。続くステップＳ９で、全ての内部時刻の進行が停止されたか否か判別し、肯定であれば、機器制御装置３はその動作を終了する。そうでなければ、ステップＳ５へと戻る。
【００９３】  ステップＳ６でタイムチャートの実行を終了しない場合には、さらにステップＳ７へと進み、内部時刻計時部３ｂにより、現在進行中の内部時刻が更新される。この内部時刻の更新は、所定のタイミングで所定の量だけ内部時刻を進めるようになされ、例えば、実時間が１ｍｓ進行する毎に内部時刻に１ｍｓを加算する。現在停止中の内部時刻についてはこの更新は行われないため、その値は変化しない。内部時刻が更新されると、再びステップＳ５へと戻り、以降繰り返す。
【００９４】  ステップＳ５にて現在の内部時刻に対応する制御命令データ又は動作データが存在する場合には、ステップＳ１０へと進み、当該データが制御命令データであるか動作データであるかにより制御を分岐させる。制御命令データである場合にはステップＳ１１へと進み、制御命令実行部３ｄにより制御命令データが解釈され、必要に応じて内部時刻の進行停止が切り替えられ、またその値が書き換えられる。その後制御は再びステップＳ５へと戻る。
【００９５】  一方、ステップＳ１０において当該データが動作データである場合には、さらにステップＳ１２へと進み、当該動作データが機器への出力を意味するものであるか、機器からの入力を意味するものであるかを判別する。出力を意味するものである場合、ステップＳ１３へと進み、機器出力実行部３ｅにより、動作データに応じた機器への出力が実行される。その後制御はステップＳ５へと戻される。
【００９６】  ステップＳ１２において、当該動作データが入力を意味するものである場合、ステップＳ１４へと進み、内部時刻停止部３ｆにより、当該機器からの入力が、当該動作データに示された動作と一致するか否かを判別する。一致しなければ、ステップＳ１５にて該当する内部時刻の進行を停止し、再びステップＳ５へと戻る。これにより、当該機器からの入力が、当該動作データに示された動作と一致するまで、そのタイムチャートにおける内部時刻の進行が停止されることになる。ステップＳ１４にて両者が一致すれば、ステップＳ１６へとすすみ、停止されているならばその内部時刻の進行を再開する。その後はやはりステップＳ５へと戻る。
【００９７】  なお、図７に示したように、タイムチャート作成装置２は、タイムチャートシミュレート部２ｍと機器シミュレート部２ｎをさらに有していてもよい。このタイムチャートシミュレート部２ｍと機器シミュレート部２ｎは、タイムチャート作成装置２により作成されたタイムチャートの動作を、機器制御装置３を用いて現実に実行させることなくシミュレーションにより確認するための構成である。
【００９８】  より詳しくは、タイムチャートシミュレート部２ｍは、機器制御装置３が制御データを実行する場合と同様の動作を、タイムチャートに基いてタイムチャート作成装置２上で再現する。また、機器シミュレート部２ｎは、機器制御装置３に接続される予定の機器の動作を、タイムチャート作成装置２上で再現する。
【００９９】  再現されたタイムチャートに記述された動作や制御、各機器の状態は、タイムチャート作成装置２のモニタ２ｈ上に表示される。またこのとき、再現中の内部時刻は図３〜５に示すマーカ１５の位置として示される。これにより、機器制御システム１を現実に構築することなく、作成したタイムチャートの動作を確認することができるため、タイムチャートの不具合の発見と修正等、いわゆるデバッグ作業を簡便かつ安価に行うことができる。
【０１００】  図１３は、タイムチャート作成装置２によりタイムチャートの動作をシミュレーションにより確認する手順を示すフロー図である。
【０１０１】  まず、ステップＳ１７において、タイムチャートシミュレート部２ｍによりタイムチャートの動作を再現する。続くステップＳ１８では、機器シミュレート部２ｎにより機器の動作を再現する。さらにステップＳ１９において、シミュレーションを終了するか否かを判別し、タイムチャートの実行が終了に至っていないか、あるいはユーザによりシミュレーションの終了が支持されていない場合にはステップＳ１７に戻り、以降繰り返す。シミュレーションを終了する場合にはそのままタイムチャート作成装置２はシミュレーションを終了する。
【０１０２】  以上説明した各実施形態の構成は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成そのものに限定することは意図されていない。当業者はこれら開示された実施形態に種々の変形、例えば、各部材あるいはその部分の形状や数、配置等を適宜変更してもよく、また、フローチャートに示した制御は、同等の機能を奏する他の制御に置き換えてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【図１】
0006460108.tif 000002
【図２】
0006460108.tif 000003
【図３】
0006460108.tif 000004
【図４】
0006460108.tif 000005
【図５】
0006460108.tif 000006
【図６】
0006460108.tif 000007
【図７】
0006460108.tif 000008
【図８】
0006460108.tif 000009
【図９】
0006460108.tif 000010
【図１０Ａ】
0006460108.tif 000011
【図１０Ｂ】
0006460108.tif 000012
【図１０Ｃ】
0006460108.tif 000013
【図１１】
0006460108.tif 000014
【図１２】
0006460108.tif 000015
【図１３】
0006460108.tif 000016