(57)【特許請求の範囲】
【請求項１】
コントローラ機能とプリント機能とを並列処理するプリンタ装置であって、
前記コントローラ機能を実現する機能部として、
ハンディターミナルで入力された注文データを受信する注文データ受信処理部と、
前記注文データ受信処理部により受信された注文データに基づいて、印字出力すべき伝票の伝票データを発行する伝票発行処理部とを備え、
前記プリント機能を実現する機能部として、
前記伝票発行処理部から発行された伝票データ、または他のプリンタ装置から発行された伝票データを受信する伝票データ受信処理部と、
前記伝票データ受信処理部により受信された伝票データに基づいて、プリンタ駆動部を制御して伝票を印字出力するプリンタ制御処理部とを備え、
前記コントローラ機能が停止した場合であっても、前記プリント機能による、前記伝票データ受信処理部と前記プリンタ制御処理部との動作を継続するとともに、停止した前記コントローラ機能に代えて、前記他のプリンタ装置で前記コントローラ機能を実行させる
ことを特徴とするプリンタ装置。
【請求項２】
前記伝票データ受信処理部は、
前記コントローラ機能が動作している場合には、前記伝票発行処理部から発行された伝票データを受信し、前記コントローラ機能が停止した場合には、外部装置から発行された伝票データを受信する
ことを特徴とする請求項１に記載のプリンタ装置。
【請求項３】
前記コントローラ機能を実現する機能部として、
外部のプリンタ装置が稼働中であれば、自身を待機状態に移行し、外部のプリンタ装置が待機中であれば、自身を稼働状態に移行する二重化監視処理部を更に備える
ことを特徴とする請求項１または２に記載のプリンタ装置。
【請求項４】
前記プリント機能と前記コントローラ機能とは、互いが正常に動作しているか否かを、所定の時間間隔で通信することで確認する接続確認処理部を更に備える
ことを特徴とする請求項１から３のいずれか一項に記載のプリンタ装置。
【請求項５】
メモリカードが装着される外部メモリスロットを更に備え、
前記外部メモリスロットに装着された前記メモリカードに保存されているプログラムを読み込んで実行することにより、前記コントローラ機能を起動する、
ことを特徴とする請求項１から４のいずれか一項に記載のプリンタ装置。
【請求項６】
前記プリント機能は、
前記コントローラ機能が停止した場合、前記メモリカードの有効／無効に設定するメモリカード無効フラグを有効に設定した後、当該装置を再起動し、
再起動後、前記メモリカード無効フラグが有効である場合、前記メモリカードに保存されているプログラムを実行しないことにより、前記コントローラ機能を起動しない
ことを特徴とする請求項５に記載のプリンタ装置。
【請求項７】
コントローラ機能とプリント機能とを並列処理するプリンタ装置のコンピュータを、前記コントローラ機能を実現する機能部として、ハンディターミナルで入力された注文データを受信する注文データ受信処理機能と、
前記コントローラ機能を実現する機能部として、前記注文データ受信処理機能により受信された注文データに基づいて、印字出力すべき伝票の伝票データを発行する伝票発行処理機能と、
前記プリント機能を実現する機能部として、前記伝票発行処理機能から発行された伝票データ、または他のプリンタ装置から発行された伝票データを受信する伝票データ受信処理機能と、
前記プリント機能を実現する機能部として、前記伝票データ受信処理機能により受信された伝票データに基づいて、プリンタ駆動部を制御して伝票を印字出力するプリンタ制御処理機能と、
前記コントローラ機能が停止した場合であっても、前記プリント機能による、前記伝票データ受信処理機能と前記プリンタ制御処理機能との動作を継続するとともに、停止した前記コントローラ機能に代えて、前記他のプリンタ装置で前記コントローラ機能を実行する制御機能と
として機能させるためのプリンタ制御プログラム。
【請求項８】
コントローラ機能とプリント機能とを並列処理する複数のプリンタ装置からなり、実行すべき処理、及びデータを、前記複数のプリンタ装置のうち、少なくとも１つのメインプリンタ装置と、他のサブプリンタ装置との間で二重化する注文管理システムであって、
前記複数のプリンタ装置は、各々、
前記コントローラ機能を実現する機能部として、
ハンディターミナルで入力された注文データを受信する注文データ受信処理部と、
前記注文データ受信処理部により受信された注文データに基づいて、印字出力すべき伝票の伝票データを発行する伝票発行処理部とを備え、
前記プリント機能を実現する機能部として、
前記伝票発行処理部から発行された伝票データ、または他のプリンタ装置から発行された伝票データを受信する伝票データ受信処理部と、
前記伝票データ受信処理部により受信された伝票データに基づいて、プリンタ駆動部を制御して伝票を印字出力するプリンタ制御処理部とを備え、
前記コントローラ機能が停止した場合であっても、前記プリント機能による、前記伝票データ受信処理部と前記プリンタ制御処理部との動作を継続するとともに、停止した前記コントローラ機能に代えて、前記他のプリンタ装置で前記コントローラ機能を実行する
ことを特徴とする注文管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ装置、プリンタ制御プログラム、及び注文管理システムに関する。
【背景技術】
【０００２】
注文管理システムにおいては、その信頼性を向上させるため、注文データの受付、伝票出力、メニュー管理、会計管理などの注文処理を行う注文システム制御機能を、複数のコントローラ装置に分ける二重化システムが導入されている（例えば特許文献１参照）。該二重化システムでは、注文システム制御機能を有する、機能的には同じコントローラ装置をメインとサブとに分けて複数設置する。そして、通常、メインのコントローラ装置が、主体的に注文システム制御機能を作動させている。各コントローラ装置は、上記注文システム制御機能に加え、伝票出力機能（伝票出力装置、またはプリンタ）を備えている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１５７７４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、注文システム制御機能と伝票出力機能とを１つの装置内に組み込んでいるため、注文データに不整合が発生し、注文システム制御機能に不具合が発生すると、注文処理ができなくなるとともに、伝票出力機能による伝票出力もできなくなるという障害が発生する。
【０００５】
注文システム制御機能は、二重化システムとしてサブのコントローラ装置に切り換えることで継続してサブのコントローラ装置で動作させることができる。しかしながら、伝票出力機能が停止すると、別のコントローラ付きプリンタ装置またはプリンタ装置の伝票出力機能（伝票出力装置、またはプリンタ）から伝票を出力しなければならない状況になる。伝票出力装置が注文管理システム内に１台しかない場合には、伝票出力機能に不具合が無くとも伝票が出力できなくなるという問題がある。
【０００６】
本発明は、このような事情を考慮してなされたものであり、その目的は、装置に不具合が生じた場合でも、注文処理、及び伝票出力処理を高い信頼性で継続することができるプリンタ装置、プリンタ制御プログラム、及び注文管理システムを提供することである。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本発明の一態様は、コントローラ機能とプリント機能とを並列処理するプリンタ装置であって、前記コントローラ機能を実現する機能部として、ハンディターミナルで入力された注文データを受信する注文データ受信処理部と、前記注文データ受信処理部により受信された注文データに基づいて、印字出力すべき伝票の伝票データを発行する伝票発行処理部と、を備え、前記プリント機能を実現する機能部として、前記伝票発行処理部から発行された伝票データ、または他のプリンタ装置から発行された伝票データを受信する伝票データ受信処理部と、前記伝票データ受信処理部により受信された伝票データに基づいて、プリンタ駆動部を制御して伝票を印字出力するプリンタ制御処理部と、を備え、前記コントローラ機能が停止した場合であっても、前記プリント機能による、前記伝票データ受信処理部と前記プリンタ制御処理部との動作を継続するとともに、停止した前記コントローラ機能に代えて、前記他のプリンタ装置で前記コントローラ機能を実行させる、ことを特徴とするプリンタ装置である。
【０００８】
上記の発明の一態様において、前記伝票データ受信処理部は、前記コントローラ機能が動作している場合には、前記伝票発行処理部から発行された伝票データを受信し、前記コントローラ機能が停止した場合には、外部装置から発行された伝票データを受信する、ことを特徴とする。
【０００９】
上記の発明の一態様において、前記コントローラ機能を実現する機能部として、外部のプリンタ装置が稼働中であれば、自身を待機状態に移行し、外部のプリンタ装置が待機中であれば、自身を稼働状態に移行する二重化監視処理部を更に備えることを特徴とする。
【００１０】
上記の発明の一態様において、前記プリント機能と前記コントローラ機能とは、互いが正常に動作しているか否かを、所定の時間間隔で通信することで確認する接続確認処理部を更に備えることを特徴とする。
【００１１】
上記の発明の一態様において、メモリカードが装着される外部メモリスロットを更に備え、前記外部メモリスロットに装着された前記メモリカードに保存されているプログラムを読み込んで実行することにより、前記コントローラ機能を起動する、ことを特徴とする。
【００１２】
上記の発明の一態様において、前記プリント機能は、前記コントローラ機能が停止した場合、前記メモリカードの有効／無効に設定するメモリカード無効フラグを有効に設定した後、当該装置を再起動し、再起動後、前記メモリカード無効フラグが有効である場合、前記メモリカードに保存されているプログラムを実行しないことにより、前記コントローラ機能を起動しない、ことを特徴とする。
【００１３】
また、上述した課題を解決するために、本発明の一態様は、コントローラ機能とプリント機能とを並列処理するプリンタ装置のコンピュータを、前記コントローラ機能を実現する機能部として、ハンディターミナルで入力された注文データを受信する注文データ受信処理機能と、前記コントローラ機能を実現する機能部として、前記注文データ受信処理機能により受信された注文データに基づいて、印字出力すべき伝票の伝票データを発行する伝票発行処理機能と、前記プリント機能を実現する機能部として、前記伝票発行処理機能から発行された伝票データ、または他のプリンタ装置から発行された伝票データを受信する伝票データ受信処理機能と、前記プリント機能を実現する機能部として、前記伝票データ受信処理機能により受信された伝票データに基づいて、プリンタ駆動部を制御して伝票を印字出力するプリンタ制御処理機能と、前記コントローラ機能が停止した場合であっても、前記プリント機能による、前記伝票データ受信処理機能と前記プリンタ制御処理機能との動作を継続するとともに、停止した前記コントローラ機能に代えて、前記他のプリンタ装置で前記コントローラ機能を実行する制御機能と、として機能させるためのプリンタ制御プログラムである。
【００１４】
また、上述した課題を解決するために、本発明の一態様は、コントローラ機能とプリント機能とを並列処理する複数のプリンタ装置からなり、実行すべき処理、及びデータを、前記複数のプリンタ装置のうち、少なくとも１つのメインプリンタ装置と、他のサブプリンタ装置との間で二重化する注文管理システムであって、前記複数のプリンタ装置は、各々、前記コントローラ機能を実現する機能部として、ハンディターミナルで入力された注文データを受信する注文データ受信処理部と、前記注文データ受信処理部により受信された注文データに基づいて、印字出力すべき伝票の伝票データを発行する伝票発行処理部と、を備え、前記プリント機能部を実現する機能部として、前記伝票発行処理部から発行された伝票データ、または他のプリンタ装置から発行された伝票データを受信する伝票データ受信処理部と、前記伝票データ受信処理部により受信された伝票データに基づいて、プリンタ駆動部を制御して伝票を印字出力するプリンタ制御処理部と、を備え、前記コントローラ機能が停止した場合であっても、前記プリント機能による、前記伝票データ受信処理部と前記プリンタ制御処理部との動作を継続するとともに、停止した前記コントローラ機能に代えて、前記他のプリンタ装置で前記コントローラ機能を実行する、ことを特徴とする注文管理システムである。
【発明の効果】
【００１５】
この発明によれば、装置に不具合が生じた場合でも、注文処理、及び伝票出力処理を高い信頼性で継続することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態による注文管理システムの構成を示すブロック図である。
【図２】本実施形態において、コントローラ（メイン）装置、コントローラ（サブ）装置内に保存されている伝票出力設定情報を示す概念図である。
【図３】本実施形態において、メニューと対応する伝票とを管理するためのメニューマスター設定情報を示す概念図である。
【図４】本実施形態において、ゲスト伝票の一例を示す模式図である。
【図５】本実施形態において、ドリンク伝票の一例を示す模式図である。
【図６】本実施形態において、調理伝票の一例を示す模式図である。
【図７】本実施形態において、コントローラ（メイン、サブ）装置を実現する一例を示すブロック図である。
【図８】本実施形態において、コントローラ（メイン、サブ）装置を実現する一例を示すブロック図である。
【図９】本実施形態による、伝票出力機能を備えたコントローラ装置の機能構成を示すブロック図である。
【図１０】本実施形態によるコントローラ装置の動作を説明するためのフローチャートである。
【図１１】本実施形態によるコントローラ装置の動作を説明するためのフローチャートである。
【図１２】本実施形態によるコントローラ装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態を、図面を参照して説明する。
【００１８】
図１は、本発明の実施形態による注文管理システムの構成を示すブロック図である。図１において、注文管理システムでは、コントローラ（メイン）装置１０とコントローラ（サブ）装置２０とが二重化されている。コントローラ（メイン）装置１０とコントローラ（サブ）装置２０は、各々、注文データの受付、伝票出力、メニュー管理、会計管理などの注文処理を行う注文システム制御部１１、２１と、伝票を印字出力するプリンタなどの伝票出力部１２、２２とを備えている。通常、コントローラ（メイン）装置１０が主体的に注文システム制御部を作動させている。コントローラ（サブ）装置２０は、いつでもコントローラ（メイン）装置１０に代わることができるよう、コントローラ（メイン）装置１０と同等の機能を備えるとともに、通常、コントローラ（メイン）装置１０と同等のデータを保持するよう作動している（待機状態）。
なお、どちらのコントローラ装置がメインであり、サブであるのかは、予め、決めておくこととする。
【００１９】
コントローラ（メイン）装置１０とコントローラ（サブ）装置２０は、注文データの二重管理を行うために有線ＬＡＮ３０経由で相互に通信を行う。また、コントローラ（メイン）装置１０、コントローラ（サブ）装置２０は、各々、無線送受信部１３、２３を備えており、相互に通信を行う有線ＬＡＮ３０の通信に障害が発生したことを、無線送受信部１３、２３による無線通信によって検出することができる。また、コントローラ（メイン）装置１０とコントローラ（サブ）装置２０とは、どちらかの装置に障害が発生した場合には、二重化処理を停止し、障害が発生していない装置の単独稼動に切り換わる。
【００２０】
コントローラ（サブ）装置２０側が異常になった場合には、コントローラ（メイン）装置１０側は、処理を継続しながら単独稼動に移行する。一方、コントローラ（メイン）装置１０側が異常になった場合には、コントローラ（サブ）装置２０側は、待機状態から単特稼動に移行する。障害が発生したコントローラ（メイン）装置１０、またはコントローラ（サブ）装置２０は、単独稼動側に悪影響を与えないよう速やかに処理を停止する。また、コントローラ（メイン）装置１０、コントローラ（サブ）装置２０の無線送受信部１３、２３は、無線プリンタ５０への伝票出力、ハンディターミナル６０〜６２で入力した注文情報を受信するための通信ポートとなる。
【００２１】
ＰＯＳレジスタ４０は、料金の計算、貨幣の出し入れを行う装置である。該ＰＯＳレジスタ４０は、コントローラ（メイン）装置１０、コントローラ（サブ）装置２０と有線ＬＡＮ３０経由で相互に通信を行うようになっている。
無線プリンタ５０は、コントローラ（メイン）装置１０、またはコントローラ（サブ）装置２０から離れて設置された独立した装置であり、無線通信によりコントローラ（メイン）装置１０、またはコントローラ（サブ）装置２０からの伝票データを受信して印字出力する。一つの伝票出力設定例ではコントローラ（メイン）装置１０が客に渡すゲスト伝票（後述）を印字出力し、無線プリンタ５０は、厨房の調理人に対して調理伝票（後述）を印字出力するが、コントローラ（メイン）装置１０が異状停止した場合には、顧客に渡すゲスト伝票（後述）を印字出力する迂回先として動作する。
【００２２】
ハンディターミナル６０、６１、６２は、各々、ウェイタ、ウェイトレス等の従業員に携帯され、客からの注文内容が入力される。ハンディターミナル６０〜６２は、入力された注文内容に基づく注文データを、無線通信により、コントローラ（メイン）装置１０、またはコントローラ（サブ）装置２０に送信する。
【００２３】
ハンディターミナル６０〜６２から送信された注文データは、コントローラ（メイン）装置１０、またはコントローラ（サブ）装置２０で受信され、二重化稼動しているコントローラ（メイン）装置１０へ転送される。コントローラ（サブ）装置２０は、コントローラ（メイン）装置１０が二重化稼動状態のときは、注文データの二重化管理を行う待機状態になっている。
【００２４】
コントローラ（メイン）装置１０、またはコントローラ（サブ）装置２０は、注文データを受信すると、注文処理や注文データの保存を行い、伝票発行処理にてコントローラ（メイン）装置１０の伝票出力部１２、コントローラ（サブ）装置２０の伝票出力部２２、及び無線プリンタ５０にそれぞれで印字すべき伝票データを送信する。
【００２５】
コントローラ（メイン）装置１０、コントローラ（サブ）装置２０、無線プリンタ５０が印字する伝票の種類は、それぞれの設置位置によって、コントローラ（メイン）装置１０、コントローラ（サブ）装置２０内の伝票出力設定情報で定義されている。次に、該伝票出力設定情報について説明する。
【００２６】
図２は、本実施形態において、コントローラ（メイン）装置１０、コントローラ（サブ）装置２０内に保存されている伝票出力設定情報を示す概念図である。伝票出力設定情報７０には、伝票出力部１２、２２を有するコントローラ（メイン）装置１０、（サブ）装置２０、及び無線プリンタ５０毎に、それぞれで印字する伝票の種類や迂回先などが設定されている。
図２において、装置は、伝票出力機能を有する装置を示す識別番号である。図示の例では、「００１」はコントローラ（メイン）装置１０、「００２」はコントローラ（サブ）装置２０、「１０３」は無線プリンタ５０を示している。名称は、装置の名称である。出力情報は、印字する伝票の種類である。伝票には、客に渡すゲスト伝票、飲み物を作る従業員に渡すドリンク伝票、厨房の料理人に渡す調理伝票がある。出力記号は、各伝票に振りつけられた記号で、コントローラ（メイン）装置１０の伝票出力部１２またはコントローラ（サブ）装置２０の伝票出力部２２が解読しやすいよう、「１」はゲスト伝票、「２」はドリンク伝票、「３」は調理伝票と定義されている。
【００２７】
迂回先は、装置欄で示される装置に不具合等があって動作しない場合に伝票出力を代替する装置を示している。図示の例では、コントローラ（メイン）装置１０には、ゲスト伝票の印字が設定されており、異状が発生した場合のゲスト伝票の迂回先として、無線プリンタ５０が設定されている。また、コントローラ（サブ）装置２０には、ドリンク伝票の印字が設定されており、異状が発生した場合のドリンク伝票の迂回先として、コントローラ（メイン）装置１０が設定されている。同様に、無線プリンタ５０には、調理伝票の印字が設定されており、異状が発生した場合の調理伝票の迂回先として、コントローラ（サブ）装置２０が設定されている。
【００２８】
図３は、本実施形態において、メニューと、対応する伝票とを管理するためのメニューマスター設定情報８０を示す概念図である。メニューマスター設定情報８０には、メニュー番号毎に、それぞれの名称、印字すべき伝票の種類などが設定されている。図３において、メニュー番号は、メニュー上の品名を一意に特定するための番号である。メニュー名称は、物品の名称（品名）である。伝票出力情報は、対応する物品が注文された場合に出力する伝票の種類である。出力記号は、各伝票に振りつけられた記号である。
【００２９】
図示の例では、メニュー番号「１」には、メニュー名称「ハンバーグ」、伝票出力情報「ゲスト伝票」、出力記号「１」、伝票出力情報「調理伝票」、出力記号「３」が設定されている。すなわち、ハンバーグが注文された場合には、ゲスト伝票と調理伝票を印字出力することを示している。また、メニュー番号「２」には、メニュー名称「焼肉」、伝票出力情報「ゲスト伝票」、出力記号「１」、伝票出力情報「調理伝票」、出力記号「３」が設定されている。すなわち、焼肉が注文された場合には、ゲスト伝票と調理伝票を印字出力することを示している。同様に、メニュー番号「１２１」には、メニュー名称「紅茶」、伝票出力情報「ゲスト伝票」、出力記号「１」、伝票出力情報「ドリンク伝票」、出力記号「２」が設定されている。すなわち、紅茶が注文された場合には、ゲスト伝票とドリンク伝票を印字出力することを示している。
【００３０】
例えば、ある顧客からの注文を受けた際、ハンディターミナル６０〜６２の注文データが、ハンバーグであれば、コントローラ装置の注文データ処理は、図３に示すメニューマスター設定情報８０の「ハンバーグ」を参照し、当該客について、印字すべきゲスト伝票と調理伝票との各メニュー名称部分に「ハンバーグ」を追加する。同様に、ハンディターミナル６０〜６２の注文データに「コーヒー」があれば、図３に示すメニューマスター設定情報８０の「コーヒー」を参照し、ゲスト伝票とドリンク伝票との各メニュー名称部分に「コーヒー」を追加する。
【００３１】
このように、ハンバーグとコーヒーが注文されると、コントローラ（メイン）装置１０、あるいはコントローラ（サブ）装置２０内でメニューに応じた伝票データ作成処理が行われ、伝票出力設定情報に基づき、それぞれの伝票出力部１２、２２、あるいは無線プリンタ５０に出力される。
【００３２】
図４は、本実施形態において、図２の伝票出力設定情報のコントローラ（メイン）、装置１０の伝票出力部１２から印字されるゲスト伝票９０の一例を示す模式図である。図４において、ゲスト伝票９０には、注文を受けた時刻、ハンディターミナル（ＨＴ）番号、注文を受けた物品の品名であるメニュー名称、注文を受けた数量が印字される。該ゲスト伝票９０は、注文した顧客に対して印字出力される伝票である。従って、ゲスト伝票９０には、顧客が注文した全ての品名、その数量が印字される。
【００３３】
図５は、本実施形態において、図２の伝票出力設定情報のコントローラ（サブ）装置２０の伝票出力部２２から印字されるドリンク伝票９１の一例を示す模式図である。図５において、ドリンク伝票９１には、注文を受けた時刻、ハンディターミナル（ＨＴ）番号、注文を受けた品名であるメニュー名称、注文を受けた数量が印字される。該ドリンク伝票９１は、ドリンクを作る従業員に対して印字出力される伝票である。従って、ドリンク伝票９１には、ドリンクに分類される品名、その数量が印字される。
【００３４】
図６は、本実施形態において、図２の伝票出力設定情報の無線プリンタ５０から印字される調理伝票９２の一例を示す模式図である。図６において、調理伝票９２には、注文を受けた時刻、ハンディターミナル（ＨＴ）番号、注文を受けた品名であるメニュー名称、注文を受けた数量が印字される。該調理伝票９２は、厨房の料理人に対して印字出力される伝票である。従って、調理伝票９２には、厨房で調理される料理に分類される品名、その数量が印字される。
【００３５】
上述した構成において、本実施形態による注文管理システムでは、コントローラ（メイン）装置１０に障害が発生すると、コントローラ（サブ）装置２０側が単独稼動に移行するため、コントローラ（サブ）装置２０側の単独稼動に障害を与えないよう、コントローラ（メイン）装置１０の注文システム制御部１１が処理を停止する。これに同期して、コントローラ（メイン）装置１０の伝票出力部１２も停止する。
【００３６】
コントローラ（サブ）装置２０の単独稼動において、コントローラ（メイン）装置１０の伝票出力部１２が停止すると、コントローラ（サブ）装置２０で作成したゲスト伝票９０（図４）を、コントローラ（メイン）装置１０に送信しても応答しなくなる。このとき、コントローラ（サブ）装置２０は、図２に示す伝票出力設定情報７０を参照し、ゲスト伝票９０の迂回先である、無線プリンタ５０に伝票データを送信する。その結果、調理場にある無線プリンタ５０から調理伝票９２に続いてゲスト伝票９０も印字されることになる。
【００３７】
次に、本実施形態によるコントローラ（メイン）装置１０、コントローラ（サブ）装置２０を実現するための一方法について説明する。
図７、及び図８は、本実施形態において、コントローラ（メイン）装置１０、コントローラ（サブ）装置２０を実現する一例を示すブロック図である。本実施形態において、注文システム制御部１１、２１と伝票出力部１２、２２とを一体化するにあたり、印字機能を備えるプリンタ１００に外部メモリを着脱可能とする外部メモリスロット１１０を用意する。外部メモリとは、市販されているＳＤカード（登録商標）、ＵＳＢメモリ、ハードディスク、コンパクトフラッシュ（登録商標）などである。ここでは、外部メモリをメモリカード１２０と呼ぶ。
【００３８】
メモリカード１２０には、注文システム制御部１１、２１を実現するための注文システム制御プログラム１２１が保存されている。図７に示すように、プリンタ１００の外部メモリスロット１１０にメモリカード１２０を装着することで、図８に示すように、プリント機能付きコントローラ（メイン）装置１０、コントローラ（サブ）装置２０となる。メモリカード１２０には、注文システム制御部１１、２１により注文処理した注文処理データ１２２も保存することとする。
【００３９】
図９は、本実施形態による、伝票出力機能を備えたコントローラ装置の機能構成を示すブロック図である。コントローラプロセス（コントローラ機能）２００は、注文システム制御部１１、２１の機能を有する。プリントプロセス（プリント機能）２２０は、伝票出力部１２、２２の機能を有する。コントローラプロセス２００とプリントプロセス２２０とは、独立した構成になっている。コントローラプロセス２００、及びプリントプロセス２２０は、１つの基本プログラム（ＯＳ：制御機能）上で動作する。すなわち、１つのＣＰＵがコントローラプロセス２００とプリントプロセスとを並列処理する。図７、図８に示したように、注文システム制御プログラム１２１は、メモリカード１２０内に格納されており、該注文システム制御プログラム１２１を起動すると、コントローラプロセス２００として処理を開始する。なお、メモリカード１２０は、コントローラプロセス２００からのみアクセスする。また、プリンタ１００を駆動するプリンタ駆動部２０７は、プリントプロセス２２０からのみアクセス可能である。
【００４０】
コントローラプロセス２００は、注文データ受信処理部２０１、注文処理部２０２、伝票発行処理部２０３、接続確認処理部２０４、及び二重化監視処理部２０５を備えている。注文データ受信処理部２０１は、ハンディターミナル６０〜６２から注文データを受信する。注文処理部２０２は、注文データに従って注文処理を行い、メモリカード１２０内の注文処理データ１２２を更新する。伝票発行処理部２０３は、注文処理データ１２２に従って伝票発行処理を行い、印字すべき伝票の種類に応じて、プリントプロセス２２０、コントローラ（サブ）装置２０、無線プリンタ５０などに伝票データを送信する。
【００４１】
伝票発行処理部２０３では、コントローラ（メイン）装置１０内のプリントプロセス２２０へ伝票データを出力する場合と、外部プリンタ（ここではコントローラ（サブ）装置２０、無線プリンタ５０）へ出力する場合とでは、送信先が異なるのみで、同じルートから送信される。
【００４２】
プリントプロセス２２０は、伝票データ受信処理部２２１、伝票フォーマット作成処理部２２２、プリンタ制御部２２３、及び接続確認処理部２２４を備えている。伝票データ受信処理部２２１は、コントローラプロセス２００、他のコントローラ装置からの伝票データを受信する。ここで、他のコントローラ装置とは、当該装置がメインである場合にはコントローラ（サブ）装置２０であり、当該装置がサブである場合にはコントローラ（メイン）装置１０となる。
【００４３】
伝票フォーマット作成処理部２２２は、受信した伝票データに従って、伝票フォーマットを作成する。プリンタ制御部２２３は、プリンタ制御処理を通してプリンタ駆動部２０７で伝票を印字する。プリントプロセス２２０の伝票データ受信処理部２２１は、コントローラプロセス２００に限らず、他のコントローラ装置からの伝票データを受信することが可能になっており、コントローラプロセス２００が停止しているときは、他のコントローラ装置から伝票データを受信する。
【００４４】
コントローラプロセス２００、及びプリントプロセス２２０は、各々、接続確認処理部２０４、２２４を備えている。コントローラプロセス２００の接続確認処理部２０４は、内部外部を問わず、プリントプロセス２２０やコントローラ（サブ）装置２０、無線プリンタ５０との接続確認を行う。また、プリントプロセス２２０の接続確認処理部２２４も同様に、内部外部を問わず、コントローラプロセス２００や他のコントローラ装置との接続確認を行う。これによって相互の通信ルートの確認と、それぞれの処理が正常に動作していることを確認できる。
【００４５】
図１０〜図１２は、本実施形態によるコントローラ（メイン）装置１０の動作を説明するためのフローチャートである。なお、コントローラ（サブ）装置２０も同様の動作となるので、以下では、コントローラ（メイン）装置１０の動作として説明する。
【００４６】
コントローラ（メイン）装置１０に電源が投入されると、コントローラ（メイン）装置１０は、まず、パワーオンリセットによってメモリカード無効フラグ＝０（有効）に設定する（ステップＳ１）。メモリカード無効フラグは、メモリカード１２０を有効、無効に設定するフラグであり、「０」で有効、「１」で無効に設定されていることを意味する。
次に、コントローラ（メイン）装置１０のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）がプリントプロセス２２０を起動する（ステップＳ３）。なお、再起動で開始した場合には（ステップＳ２）、ステップＳ３へ進み、コントローラ（メイン）装置１０のＯＳがプリントプロセス２２０を起動する（ステップＳ３）。
【００４７】
次に、プリントプロセス２２０は、メモリカード１２０が装着されているか否かを判定する（ステップＳ４）。そして、メモリカード１２０が装着されていない場合には（ステップＳ４のＮＯ）、コントローラプロセス２００を無効にする（ステップＳ６）。
次に、プリンタ機能を診断し（ステップＳ７）、プリンタ機能が正常であるか否かを判定する（ステップＳ８）。そして、プリンタ機能が正常でない場合には（ステップＳ８のＮＯ）、プリントプロセス２２０の機能を停止して当該処理を終了する（ステップＳ９）。この場合、プリンタ機能に異状がある旨を報知するようにしてもよい。
【００４８】
一方、メモリカード１２０が装着されている場合には（ステップＳ４のＹＥＳ）、メモリカード無効フラグが有効「０」であるか無効「１」であるかを判定する（ステップＳ５）。ここで、メモリカード無効フラグが無効「１」である場合には（ステップＳ５の「＝１（無効）」）、上述したように、ステップＳ６で、コントローラプロセス２００を無効にし、ステップＳ７で、プリンタ機能を診断し、プリンタ機能が正常でない場合には（ステップＳ８のＮＯ）、プリントプロセス２２０の機能を停止して当該処理を終了する（ステップＳ９）。
【００４９】
一方、メモリカード１２０が装着されており（ステップＳ４のＹＥＳ）、メモリカード無効フラグが有効「０」である場合には（ステップＳ５の「＝０」）、注文システム制御プログラム１２１がメモリカード１２０に格納されているか否かを判定する（ステップＳ１０）。そして、メモリカード１２０に注文システム制御プログラム１２１が格納されていない場合には（ステップＳ１０の無し）、メモリカード無効フラグ＝１（無効）に設定し（ステップＳ１４）、再起動を実行する（ステップＳ１５）。この場合、メモリカード無効フラグ＝１（無効）、すなわちメモリカード１２０を無効にして再起動することで、コントローラプロセス２００を停止した状態でプリンタとして動作する。
【００５０】
一方、メモリカード１２０に注文システム制御プログラム１２１が格納されている場合には（ステップＳ１０の有り）、注文システム制御プログラム１２１を起動する（ステップＳ１１）。これにより、コントローラプロセス２００が起動し（ステップＳ４０）、コントローラプロセス２００は、起動した旨をプリンタプロセス２２０に通知する（ステップＳ４１）。
【００５１】
プリンタプロセス２２０では、上記コントローラプロセス２００からの起動通知を受信することで、コントローラプロセス２００の起動を確認し（ステップＳ１２）、コントローラプロセス２００が正常に起動したか否かを判定する（ステップＳ１３）。そして、コントローラプロセス２００が正常に起動しなかった場合には（ステップＳ１３のＮＯ）、上述したステップＳ１４で、メモリカード無効フラグ＝１（無効）に設定し、ステップＳ１５で再起動を実行する。この場合、メモリカード無効フラグ＝１（無効）、すなわちメモリカード１２０を無効にして再起動することで、コントローラプロセス２００を停止した状態でプリンタとして動作する。
【００５２】
一方、コントローラプロセス２００が正常に起動した場合には（ステップＳ１３のＹＥＳ（正常））、コントローラプロセス２００を有効とする（ステップＳ１６）。その後、図１２のステップＳ７に戻り、ステップＳ８へと進む。
【００５３】
これに対して、コントローラプロセス２００では、起動通知後、メモリカード１２０に保存されている注文処理データ１２２を確認し（ステップＳ４２）、注文処理データ１２２が正常であるか否かを判定する（ステップＳ４３）。そして、注文処理データ１２２が何らかの不具合で正常でない場合には（ステップＳ４３のＮｏ）、コントローラプロセス２００を停止し、当該処理を終了する（ステップＳ４４）。この場合、注文処理データ１２２に異常がある旨を報知するようにしてもよい。
【００５４】
一方、メモリカード１２０に保存されている注文処理データ１２２が正常である場合には（ステップＳ４３のＹＥＳ（正常））、二重化監視処理部２０５で、無線通信により二重化状態を確認し（ステップＳ４５）、二重化状態に応じて稼働、または待機するかを判定する（ステップＳ４６）。メインのコントローラ装置が稼働していれば、サブのコントローラ装置は待機状態とし、メインのコントローラ装置が異常により停止していれば、サブのコントローラ装置は稼働状態とする。
【００５５】
なお、当該コントローラ装置がメインであれば稼動状態となり、当該コントローラ装置がサブであれば、メインのコントローラ装置の稼動状況に応じて稼動または待機となる。そして、二重化状態に応じて待機する場合には（ステップＳ４６の待機）、コントローラプロセス２００を待機状態とする（ステップＳ４７）。一方、二重化状態に応じて稼働する場合には、図１２のステップＳ４８以降に進む。
【００５６】
一方、プリントプロセス２００の処理において、図１０のステップＳ８で、プリンタ機能が正常であると判定された場合には（ステップＳ８のＹＥＳ（正常））、自装置のコントローラプロセス２００が有効であるか否かを判定する（図１２のステップＳ１７）。そして、自装置のコントローラプロセス２００が無効である場合には（ステップＳ１７のＮＯ（無効））、外部コントローラ装置への接続を実行する（ステップＳ１８）。上述したように、当該コントローラ装置がメインであれば、外部コントローラ装置とはサブを意味し、当該コントローラ装置がサブであれば、外部コントローラ装置とはメインを意味する。なお、接続とは、リクエストとＡＣＫとのハンドシェイクを行い、通信を確立させることである。
【００５７】
そして、外部コントローラ装置との接続が成功したか否かを判別し（ステップＳ１９）、接続が失敗した場合には（ステップＳ１９のＮＯ（失敗））、ステップＳ１８に戻り、外部コントローラへの接続を再度試みる。そして、外部コントローラ装置との接続が成功すると（ステップＳ１９のＹＥＳ（成功））、外部コントローラ装置からの伝票データの受信待ちへ移行する（ステップＳ２０）。このように、自装置のコントローラプロセス２００が無効である場合には、外部コントローラ装置からの伝票データの受信待ちへ移行する。
【００５８】
次に、外部コントローラ装置から伝票データを受信したか否かを判別する（ステップＳ２１）。そして、伝票データを受信した場合には（ステップＳ２１のＹＥＳ）、伝票フォーマットを作成し、プリンタを制御して伝票印字を実施し（ステップＳ２２）、ステップＳ２０に戻り、再び、伝票データ受信待ちとなる。一方、伝票データを受信しない場合には（ステップＳ２１のＮＯ）、接続確認タイミングであるか否かを判別する（ステップＳ２３）。そして、接続確認タイミングでない場合には（ステップＳ２３のＮＯ）、ステップＳ２０に戻り、伝票データ受信待ちとなる。
【００５９】
一方、接続確認タイミングである場合には（ステップＳ２３のＹＥＳ）、接続確認処理部２２４で、外部コントローラ装置との接続中、例えば１分間隔で外部コントローラ装置と接続を確認する（ステップＳ２４）。すなわち、接続確認を外部コントローラ装置に送信する。次に、接続確認の結果から、接続がＯＫであるか否かを判別する（ステップＳ２５）。そして、外部コントローラ装置から応答があれば、接続ＯＫとみなし（ステップＳ２５のＹＥＳ）、ステップＳ２０に戻り、再び、伝票データ受信待ちとなる。一方、外部コントローラ装置から応答がなければ、接続ＮＧとみなし（ステップＳ２５のＮＯ）、ステップＳ１７に戻る。
【００６０】
一方、自装置のコントローラプロセス２００が有効である場合には（ステップＳ１７のＹＥＳ（有効））、自装置のコントローラプロセス２００への接続を実行する（ステップＳ２６）。なお、接続とは、リクエストとＡＣＫとのハンドシェイクを行い、通信を確立させることである。そして、自装置のコントローラプロセス２００との接続が成功したか否かを判別し（ステップＳ２７）、コントローラプロセス２００との接続が成功した場合には（ステップＳ２７のＹＥＳ（成功））、上述したステップＳ２０へ進み、自装置のコントローラプロセス２００からの伝票データの受信待ちへ移行する。このように、自装置のコントローラプロセス２００が有効である場合には、自装置のコントローラプロセス２００からの伝票データの受信待ちへ移行する。以降、上述したステップＳ２０〜Ｓ２５を実行する。
【００６１】
一方、自装置のコントローラプロセス２００との接続が成功しない場合には（ステップＳ２７のＮＯ）、コントローラプロセス２００が待機状態であるか否かを判別する（ステップＳ２８）。そして、コントローラプロセス２００が待機状態である場合には（ステップＳ２８のＹＥＳ（待機）、ステップＳ１８に戻り、外部コントローラ装置への接続を試み、自装置のコントローラプロセス２００が待機状態である場合には、ステップＳ２０以降の外部コントローラ装置からの伝票データの受信待ちへ移行する。
【００６２】
一方、コントローラプロセス２００が待機状態でない場合には（ステップＳ２８のＮＯ）、メモリカード無効フラグ＝１（無効）に設定し（ステップＳ２９）、再起動を実行する（ステップＳ３０）。このように、コントローラプロセス２００が有効であるにも拘わらず、コントローラプロセス２００への接続が成功せず、かつ待機状態でもない場合には、何らかの不具合が発生したものと認識し、再起動を実行する。この場合、メモリカード無効フラグ＝１（無効）、すなわちメモリカード１２０を無効にして再起動することで、コントローラプロセス２００を停止した状態でプリンタとして動作する。
【００６３】
これに対して、コントローラプロセス２００では、二重化状態に応じて稼働する場合には（図１１のステップＳ４６の稼働）、注文処理を起動し（図１２のステップＳ４８）、正常起動したか否かを判別する（ステップＳ４９）。そして、注文処理が正常に起動しない場合には（ステップＳ４９のＮＯ）、コントローラプロセス２００の機能を停止する（ステップＳ５０）。
【００６４】
一方、注文処理が正常に起動した場合には（ステップＳ４９のＹＥＳ（正常））、注文データ受信待ち状態となる（ステップＳ５１）。すなわち、注文データ受信処理部２０１は、ハンディターミナル６０〜６２から注文データを受信したか否かを判別し（ステップＳ５２）、注文データを受信した場合には（ステップＳ５２のＹＥＳ）、ハンディターミナル６０〜６２から注文データを受信し、伝票発行処理部２０３は、図４〜図６に示す各種伝票の伝票データを、プリントプロセス２２０へ送信する伝票発行処理を実施する（ステップＳ５３）。その後、ステップＳ５１に戻り、再度、注文データ受信待ち状態となる。
【００６５】
一方、注文データを受信しない場合には（ステップＳ５２のＮＯ）、プリントプロセス２２０からの接続確認を受信したか否かを判別する（ステップＳ５４）。そして、プリントプロセス２２０からの接続確認を受信した場合には（ステップＳ５４のＹＥＳ）、コントローラプロセス２００では、接続確認処理部２０４で、受信した接続確認に対する応答をプリントプロセス２２０に返す（ステップＳ５５）。その後、ステップＳ５１に戻り、再度、注文データ受信待ち状態となる。一方、注文データを受信せず、かつ接続確認も受信しない場合には（ステップＳ５４のＮＯ）、ステップＳ５０へ進み、コントローラプロセス２００の機能を停止する。
【００６６】
上述したコントローラ（メイン）装置１０の動作を以下にまとめて説明する。
コントローラ（メイン）装置１０では、電源投入後に内部メモリ（図示略）に格納されているプリントプロセス２２０が起動する（ステップＳ３）。プリントプロセス２２０は、まず、外部メモリスロット１１０にメモリカード１２０が装着されているか確認し（ステップＳ４）、その中に注文システム制御プログラム１２１が保存されていれば、コントローラプロセス２００を起動する（ステップＳ１１）。コントローラプロセス２００が正常に起動できたことは、それぞれの接続確認処理で確認を行う。
プリントプロセス２２０は、プリンタ機能の診断を行い（ステップＳ７）、異常がなければ、コントローラプロセス２００への接続を行う（ステップＳ２６）。
一方、コントローラプロセス２００は、メモリカード１２０に格納してある注文処理データ１２２の診断を行い（ステップＳ４２）、正常であれば、注文処理を開始する。注文処理が開始されると、プリンタプロセス２２０、無線プリンタ５００からの接続要求を受け付け、接続したプリンタを伝票出力装置として用いる（ステップＳ４８）。
【００６７】
プリントプロセス２２０は、メモリカード１２０の注文システム制御プログラム１２１の確認後にコントローラプロセス２００を起動したにも拘わらず、接続確認処理でコントローラプロセス２００が正常に起動したことが確認できない場合には（ステップＳ１３）、外部メモリであるメモリカード１２０を無効にして自身を再起動する（ステップＳ１５）。この場合、メモリカード１２０を無効にして再起動することで、コントローラプロセス２００を停止した状態でプリンタとして動作する。
【００６８】
プリントプロセス２２０は、その後、コントローラプロセス２００への接続を行うが、コントローラプロセス２００への接続を試みて失敗した場合も（ステップＳ２７）、同様に外部メモリであるメモリカード１２０を無効にして自身を再起動する（ステップＳ３０）。この場合、メモリカード１２０を無効にして再起動することで、コントローラプロセス２００を停止した状態でプリンタとして動作する。
また、プリントプロセス２２０は、プリント機能の診断で異常と判別したら（ステップＳ８）、自身の機能を停止することにより、コントローラプロセス２００への接続を行わない。これによって、プリントプロセス２２０は停止し（ステップＳ９）、コントローラプロセス２００は、上記プリンタプロセス２２０を伝票出力装置として用いない。
【００６９】
このように、プリントプロセス２２０は、メモリカード１２０を不検出であったり、メモリカード無効フラグが１であったりすれば、プリンタとして動作する。また、メモリカード１２０を検出しメモリカード無効フラグが０である場合であって、コントローラプロセス２００に異常が発生した場合には、メモリカード１２０を無効にして再起動することで、コントローラプロセス２００を停止した状態でプリンタとして動作する。
また、プリントプロセス２２０は、動作中に、接続確認処理などによって、コントローラ（メイン）装置１０のコントローラプロセス２００に異常が発生したことを認識した場合でも、プリントプロセス２２０としての動作は継続する。
また、逆に、プリントプロセス２２０が異常で停止しても、コントローラプロセス２００は動作することができる。
このように、プリントプロセス２２０とコントローラプロセス２００とが独立して動作可能であるため、どちらかのプロセスに異常が生じても他方のプロセスを停止させることなく動作を継続させることができる。
【００７０】
上述した実施形態によれば、注文システム制御機能と伝票出力機能とを１つのコントローラ装置１０に組み込み、注文システム制御部１１、または伝票出力部１２のどちらかに障害が発生して停止した場合でも、障害のない機能を動作させるとともに、不具合が生じた機能を二重化した他のコントローラ装置で動作させるようにしたので、注文処理、及び伝票出力処理を高い信頼性で継続することができる。
【符号の説明】
【００７１】
１０  コントローラ（メイン）装置
１１、２１  注文システム制御部
１２、２２  伝票出力部
１３、２３  無線送受信部
２０  コントローラ（サブ）装置
３０  有線ＬＡＮ
４０  ＰＯＳレジスタ
５０  無線プリンタ
６０〜６２  ハンディターミナル
７０  伝票出力設定情報
８０  メニューマスター設定情報
９０  ゲスト伝票
９１  ドリンク伝票
９２  調理伝票
１００  プリンタ
１１０  外部メモリスロット
１２０  メモリカード
１２１  注文制御プログラム
１２２  注文処理データ
２００  コントローラプロセス
２０１  注文データ受信処理部
２０２  注文処理部
２０３  伝票発行処理部
２０４  接続各院処理部
２０５  二重化監視処理部
２２０  プリントプロセス
２２１  伝票データ受信処理部
２２２  伝票フォーマット作成処理部
２２３  プリンタ制御処理部
２２４  接続確認処理部
【図１】
0005876331.tif 000002
【図２】
0005876331.tif 000003
【図３】
0005876331.tif 000004
【図４】
0005876331.tif 000005
【図５】
0005876331.tif 000006
【図６】
0005876331.tif 000007
【図７】
0005876331.tif 000008
【図８】
0005876331.tif 000009
【図９】
0005876331.tif 000010
【図１０】
0005876331.tif 000011
【図１１】
0005876331.tif 000012
【図１２】
0005876331.tif 000013