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