(57)【特許請求の範囲】
【請求項１】
信号を入出力するための端子を有する複数のユニットが、第１電源線及び第２電源線を有するベースユニットに取り付けられることで構成されるプログラマブルコントローラであって、
前記複数のユニットのうちの他のユニットに前記第１電源線を介して電力を供給する電源ユニットから供給される電力を蓄電する蓄電手段と、
前記電源ユニットによる給電の停止が前記電源ユニットによって予告された場合、又は、前記電源ユニットから出力される電圧が閾値より低くなった場合に、前記複数のユニットのうちのオペレーティングシステムを実行する実行ユニットへの電力の供給元を前記電源ユニットから前記蓄電手段に切り替える電源制御手段と、
電力の供給元が前記蓄電手段に切り替えられた前記実行ユニットに前記オペレーティングシステムの終了を指示するユニット制御手段と、を備え、
前記実行ユニットは、前記ユニット制御手段による指示に従って前記オペレーティングシステムを終了し、
前記ユニット制御手段は、前記複数のユニットのうちの予め設定された対象ユニットに電源の切り替えを指示し、
前記対象ユニットは、前記ユニット制御手段からの指示を受けると、前記第２電源線を介して供給される電力で動作する、
プログラマブルコントローラ。
【請求項２】
前記実行ユニットは、前記オペレーティングシステムが終了すると、前記オペレーティングシステムが終了したことを前記電源制御手段に通知し、
前記電源制御手段は、前記オペレーティングシステムが終了したことの通知を受けると、前記蓄電手段による電力の供給を終了させる、
請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記電源制御手段は、前記電源ユニットによる前記給電の停止が予告された場合において、前記給電が停止したときには前記給電が停止したことを前記ユニット制御手段に通知し、
前記ユニット制御手段は、前記給電が停止したことの通知を前記電源制御手段から受けると、前記実行ユニットに前記オペレーティングシステムの終了を指示する、
請求項１又は２に記載のプログラマブルコントローラ。
【請求項４】
前記電源制御手段は、前記電源ユニットによる前記給電の停止が予告された場合において前記給電が継続するときには、前記実行ユニットへの電力の供給元を前記蓄電手段から前記電源ユニットに切り替える、
請求項１から３のいずれか一項に記載のプログラマブルコントローラ。
【請求項５】
前記電源制御手段は、前記電源ユニットによる前記給電が停止してから再開した場合に、前記給電が再開したことを前記ユニット制御手段に通知し、
前記ユニット制御手段は、前記給電が再開したことの通知を前記電源制御手段から受けると、前記複数のユニットのうちの他のユニットを管理する管理ユニットに、プログラマブルコントローラの再起動を要求する、
請求項１から４のいずれか一項に記載のプログラマブルコントローラ。
【請求項６】
前記実行ユニットは、前記オペレーティングシステムが終了すると、前記オペレーティングシステムが終了したことを前記ユニット制御手段に通知し、
前記電源制御手段は、前記電源ユニットによる前記給電が停止してから再開した場合に、前記給電が再開したことを前記ユニット制御手段に通知し、
前記ユニット制御手段は、前記実行ユニットに前記オペレーティングシステムの終了を指示した後に、前記給電が再開したことの通知を前記電源制御手段から受けた場合には、前記オペレーティングシステムが終了したことの通知を受けてから、前記複数のユニットのうちの他のユニットを管理する管理ユニットにプログラマブルコントローラの再起動を要求する、
請求項１に記載のプログラマブルコントローラ。
【請求項７】
ユーザに対して情報を報知する報知手段、をさらに備え、
前記電源制御手段は、前記蓄電手段の蓄電残量を計測し、
前記ユニット制御手段は、前記実行ユニットの消費電力を示す消費電力情報を取得し、取得した消費電力情報と、前記蓄電残量と、から前記蓄電手段の給電時間を算出し、
前記報知手段は、前記給電時間を示す情報を報知する、
請求項１から６のいずれか一項に記載のプログラマブルコントローラ。
【請求項８】
複数のユニットが、第１電源線及び第２電源線を有するベースユニットに取り付けられることで構成されるプログラマブルコントローラによって実行される電力供給方法であって、
蓄電手段が、前記複数のユニットのうちの他のユニットに前記第１電源線を介して電力を供給する電源ユニットから供給される電力を蓄電するステップと、
電源制御手段が、前記電源ユニットによる給電の停止が予告された場合、又は、前記電源ユニットから出力される電圧が閾値より低くなった場合に、前記複数のユニットのうちのオペレーティングシステムを実行する実行ユニットへの電力の供給元を前記電源ユニットから前記蓄電手段に切り替えるステップと、
ユニット制御手段が、電力の供給元が前記蓄電手段に切り替えられた前記実行ユニットに前記オペレーティングシステムの終了を指示するステップと、
前記実行ユニットが、前記ユニット制御手段による指示に従って前記オペレーティングシステムを終了するステップと、
を含み、
前記ユニット制御手段は、前記複数のユニットのうちの予め設定された対象ユニットに電源の切り替えを指示し、
前記対象ユニットは、前記ユニット制御手段からの指示を受けると、前記第２電源線を介して供給される電力で動作する、
電力供給方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、プログラマブルコントローラ及び電力供給方法に関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）の現場では、生産工程、検査工程、その他の種々の工程を実現するために、機器を制御するＰＬＣ（Programmable Logic Controller）が利用されている。この種のＰＬＣに関して、電源を切断する際に適当な手順でＰＬＣの稼働を停止する技術が提案されている（例えば、特許文献１を参照）。【０００３】
特許文献１には、電源電圧が低くなったときに、省電力モードに移行して、コンデンサに蓄積しておいた電力によりデータをバックアップする技術について記載されている。この技術によれば、プログラマブルコントロールシステムの稼働中にその電源が切断されたとしても、プログラマブルコントローラは、切断された時点の動作状態を示すデータをバックアップすることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２２９１１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＰＬＣは通常、複数のユニットを組み合わせることで構成される。ユニットは、例えば、電力の供給源である電源ユニット、ＰＬＣ全体の制御を統率するＣＰＵ（Central Processing Unit）ユニット、スイッチ或いはセンサからの信号を受信する入出力ユニット、及び、他のユニットを装着する基盤として電源線及び通信線を有するベースユニットである。【０００６】
近年、データの収集及び収集したデータの分析に関する需要の高まりに伴って、高機能なオペレーティングシステムを搭載したユニットをＰＬＣに含めたいという要望がある。高機能なオペレーティングシステムをユニットに搭載するにあたっては、そのようなオペレーティングシステムのシャットダウン処理に時間がかかることが障壁となる。【０００７】
このような障壁に対して特許文献１の技術を利用することが考えられる。しかしながら、特許文献１の技術では、ユーザプログラムを実行するＣＰＵユニットの内部においてデータを退避することが想定されており、ＣＰＵユニットとは異なるユニットの電源に関する処理については何ら考慮されていなかった。また、特許文献１では、デバイスデータをそのまま退避することが記載されているが、メモリに記憶されるデータを転送するだけではオペレーティングシステムを終了させるためのシャットダウン処理として不適当であり、オペレーティングシステム自体のデータを適切に退避することができない。このため、高機能なオペレーティングシステムを搭載したユニット内のストレージにおいてデータが破損し、当該ユニットが正常に動作しなくなるおそれがある。【０００８】
本開示は、上記の事情に鑑みてなされたものであり、プログラマブルコントローラの電源が切断される際に、オペレーティングシステムを実行するユニットに確実に当該オペレーティングシステムを終了させることを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本開示のプログラマブルコントローラは、信号を入出力するための端子を有する複数のユニットが、第１電源線及び第２電源線を有するベースユニットに取り付けられることで構成されるプログラマブルコントローラであって、複数のユニットのうちの他のユニットに第１電源線を介して電力を供給する電源ユニットから供給される電力を蓄電する蓄電手段と、電源ユニットによる給電の停止が電源ユニットによって予告された場合、又は、電源ユニットから出力される電圧が閾値より低くなった場合に、複数のユニットのうちのオペレーティングシステムを実行する実行ユニットへの電力の供給元を電源ユニットから蓄電手段に切り替える電源制御手段と、電力の供給元が蓄電手段に切り替えられた実行ユニットにオペレーティングシステムの終了を指示するユニット制御手段と、を備え、実行ユニットは、ユニット制御手段による指示に従ってオペレーティングシステムを終了し、ユニット制御手段は、複数のユニットのうちの予め設定された対象ユニットに電源の切り替えを指示し、対象ユニットは、ユニット制御手段からの指示を受けると、第２電源線を介して供給される電力で動作する。
【発明の効果】
【００１０】
本開示によれば、電源制御手段が、電源ユニットによる給電の停止が予告された場合、又は、電源ユニットから出力される電圧が閾値より低くなった場合に、実行ユニットへの電力の供給元を蓄電手段に切り替え、実行ユニットが、ユニット制御手段による指示に従ってオペレーティングシステムを終了する。これにより、プログラマブルコントローラの電源が切断される際に、オペレーティングシステムを実行するユニットに確実に当該オペレーティングシステムを終了させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るＰＬＣの構成を示す図
【図２】実施の形態１に係る各ユニットのハードウェア構成を示す図
【図３】実施の形態１に係るＰＬＣの機能的な構成を示す図
【図４】実施の形態１に係るＰＬＣの動作に関する第１のケースを示す図
【図５】実施の形態１に係るＰＬＣの動作に関する第２のケースを示す図
【図６】実施の形態１に係るＰＬＣの動作に関する第３のケースを示す図
【図７】実施の形態１に係るＰＬＣの動作に関する第４のケースを示す図
【図８】実施の形態１に係るユニット制御処理のうちの第１フェーズの処理を示すフローチャート
【図９】実施の形態１に係るユニット制御処理のうちの第２フェーズの処理を示すフローチャート
【図１０】実施の形態１に係るユニット制御処理のうちの第３フェーズの処理を示すフローチャート
【図１１】実施の形態１に係る電源制御処理のうちの第１フェーズの処理を示すフローチャート
【図１２】実施の形態１に係る電源制御処理のうちの第２フェーズの処理を示すフローチャート
【図１３】実施の形態１に係る電源制御処理のうちの第３フェーズの処理を示すフローチャート
【図１４】実施の形態１に係るユニット電源処理を示すフローチャート
【図１５】実施の形態２に係るＰＬＣの構成を示す図
【図１６】変形例に係るＰＬＣの構成を示す図
【図１７】実施の形態３に係るＰＬＣの構成を示す図
【発明を実施するための形態】
【００１２】
以下、本開示の実施の形態に係るＰＬＣ１０について、図面を参照しつつ詳細に説明する。
【００１３】
実施の形態１．
本実施の形態に係る制御システム１００は、機器を制御することで工場の製造ラインを稼働させるＦＡシステムである。制御システム１００は、図１に示されるように、製造ラインに配置されたスイッチ２１、センサ２２及び製造装置２３と産業用ネットワークを介して接続されるＰＬＣ１０を有する。ＰＬＣ１０は、スイッチ２１及びセンサ２２から出力される信号に応じて製造装置２３を制御することで、製造ラインを稼働させる。
【００１４】
ＰＬＣ１０は、図１に示されるように、信号を入出力するための端子を有する複数の脱着可能なユニットが取り付けられることで構成されるビルディングブロック型の制御装置である。詳細には、ＰＬＣ１０は、不図示の商用電源から供給される電力を他のユニットに供給する電源ユニット１１と、ユーザから提供されるラダープログラムを実行することで他のユニットを管理する管理ユニット１２と、外部から信号の入力を受け付ける入力ユニット１３と、外部の機器に信号を出力する出力ユニット１４と、クラウドサーバ２４に接続されてオペレーティングシステムを実行するＯＳ（Operating System）実行ユニット１５と、ＯＳ実行ユニット１５の補助電源として機能する補助電源装置３０と、他のユニットが装着される基盤となるベースユニット１６と、を有する。図１では、電力を供給するための電源線が太い実線で示され、信号を伝送するための信号線が破線で示されている。ＰＬＣ１０は、複数のユニットがベースユニット１６に取り付けられることで構成されるプログラマブルコントローラの一例に相当する。以下では、オペレーティングシステムを適宜ＯＳと表記する。
【００１５】
なお、図１は、ＰＬＣ１０の構成を模式的に示しており、省略されている構成がある。例えば、電源ユニット１１と他のユニットとの間で共有されるグランドに関する構成は、図１では省略されている。また、各ユニットの端子の数は、図１の例から任意に変更してもよい。
【００１６】
図２には、ＰＬＣ１０を構成するユニット１８のハードウェア構成が示されている。このユニット１８は、電源ユニット１１、管理ユニット１２、入力ユニット１３、出力ユニット１４、ＯＳ実行ユニット１５、補助電源装置３０及びベースユニット１６の総称である。また、以下では、補助電源装置３０を含めて、ＰＬＣ１０を構成する脱着可能なモジュールを適宜ユニットと表記する。
【００１７】
ユニット１８は、図２に示されるように、プロセッサ４１と、主記憶部４２と、補助記憶部４３と、入力部４４と、出力部４５と、通信部４６と、を有する。主記憶部４２、補助記憶部４３、入力部４４、出力部４５及び通信部４６はいずれも、内部バス４７を介してプロセッサ４１に接続される。
【００１８】
プロセッサ４１は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）を含む。プロセッサ４１は、補助記憶部４３に記憶されるプログラムＰ１を実行することにより、各ユニットの種々の機能を実現する。
【００１９】
主記憶部４２は、ＲＡＭ（Random Access Memory）を含む。主記憶部４２には、補助記憶部４３からプログラムＰ１がロードされる。そして、主記憶部４２は、プロセッサ４１の作業領域として用いられる。
【００２０】
補助記憶部４３は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）に代表される不揮発性メモリを含む。補助記憶部４３は、プログラムＰ１の他に、プロセッサ４１の処理に用いられる種々のデータを記憶する。補助記憶部４３は、プロセッサ４１の指示に従って、プロセッサ４１によって利用されるデータをプロセッサ４１に供給し、プロセッサ４１から供給されたデータを記憶する。
【００２１】
入力部４４は、入力キー及びディップスイッチに代表される入力デバイスを含む。入力部４４は、ＰＬＣ１０のユーザによって入力された情報を取得して、取得した情報をプロセッサ４１に通知する。
【００２２】
出力部４５は、ＬＥＤ（Light Emitting Diode）及びＬＣＤ（Liquid Crystal Display）に代表される出力デバイスを含む。出力部４５は、プロセッサ４１の指示に従って種々の情報をユーザに提示する。
【００２３】
通信部４６は、外部の装置と通信するためのネットワークインタフェース回路を含む。通信部４６は、外部から信号を受信して、この信号により示されるデータをプロセッサ４１へ出力する。また、通信部４６は、プロセッサ４１から出力されたデータを示す信号を外部の装置へ送信する。
【００２４】
なお、ＰＬＣ１０を構成するユニットすべてが図２に示されるハードウェア構成を備えていなくともよい。例えば、ユニット１８は、プロセッサ４１、主記憶部４２及び補助記憶部４３に代えてＡＳＩＣ（Application Specific Integrated Circuit）又はＦＰＧＡ（Field Programmable Gate Array）により種々の機能を発揮してもよい。また、図２に示される構成の一部を省略してユニット１８を構成してもよい。例えば、ベースユニット１６については、他のユニット１８同士の間で電力を伝送するための電源線と情報を伝送するための通信線とを有していれば、図２に示される他のハードウェア構成を省略してもよい。また、ユニットが発揮する機能を実現するためのハードウェア構成が追加されてもよい。例えば、補助電源装置３０は、後述するように二次電池を備えてもよい。
【００２５】
続いて、ＰＬＣ１０の機能的な構成について、図３を参照して説明する。図３では、入力ユニット１３及び出力ユニット１４が代表的に入出力ユニット１９として示されている。また、電源ユニット１１からの電力の供給が、太線の矢印で示され、情報の伝送路が、破線の矢印で示されている。
【００２６】
電源ユニット１１は、商用電源から供給される交流電力を変換して得た直流電力を、ＰＬＣ１０を構成する他のユニットに供給する。電源ユニット１１は、ＰＬＣ１０を構成するユニットへの給電を停止する直前に、給電の停止の予告を示す予告情報を、信号線を介して各ユニットに出力する。具体的には、電源ユニット１１は、商用電源から印加されている電圧が予め定められた閾値より低くなったタイミングで予告情報を出力することにより、給電が完全に停止する前に給電の停止を予告する。通常、電源ユニット１１は、ノイズを除去するための平滑化コンデンサに代表されるコンデンサを有し、商用電源から供給される電力が切断されてからは、当該コンデンサに蓄積した電力を他のユニットに供給するため、給電を停止する前に予告情報を出力することが可能である。また、電源ユニット１１は、ユーザから給電の停止指示が入力されたときに、予告情報を出力してから一定時間後に給電を停止してもよい。
【００２７】
管理ユニット１２は、いわゆるＣＰＵユニットに相当する。管理ユニット１２は、ＰＬＣ１０を構成する他のユニットを統括的に制御して他のユニットを管理する。詳細には、管理ユニット１２は、入力ユニット１３によって取得されたスイッチ２１及びセンサ２２の情報に基づいてラダープログラムを実行した結果としての制御命令を出力ユニット１４に出力させる。管理ユニット１２は、他のユニットと通信する通信部１２１と、管理ユニット１２自体の構成要素に電力を供給する電源部１２２と、ラダープログラムであるプログラム１２４を実行するプログラム実行部１２３と、を有する。通信部１２１は、管理ユニット１２の通信部４６によって実現され、プログラム実行部１２３は、管理ユニット１２のプロセッサ４１によって実現される。
【００２８】
入出力ユニット１９は、他のユニットと通信する通信部１９１と、入出力ユニット１９自体の構成要素に電力を供給する電源部１９２と、を有する。通信部１９１は、入出力ユニット１９の通信部４６によって実現される。
【００２９】
補助電源装置３０は、ベースユニット１６に装着されて、ＯＳ実行ユニット１５を取り付け可能なアダプタである。補助電源装置３０は、電源ユニット１１からの給電が停止したときに予め蓄えておいた電力をＯＳ実行ユニット１５に供給して、ＯＳのシャットダウン処理を適切に実行させる。補助電源装置３０は、その機能として、他のユニットと通信する通信部３１と、ＯＳ実行ユニット１５を制御するユニット制御部３２と、電源に関する現在の状態を外部に報知する報知部３３と、現在の状態を示すデータ３４１を記憶する記憶部３４と、電源ユニット１１から供給される電力を蓄える蓄電池３５と、蓄電池３５の充放電を制御する電源制御部３６と、を有する。
【００３０】
通信部３１は、補助電源装置３０の通信部４６によって実現され、ユニット制御部３２は、補助電源装置３０のプロセッサ４１によって実現される。ユニット制御部３２は、電源ユニット１１による給電が停止することの予告を示す予告情報を、通信部３１を介して電源ユニット１１から受信する。また、ユニット制御部３２は、電源ユニット１１による給電の状態を監視する電源制御部３６から、監視結果を示す情報を取得する。そして、ユニット制御部３２は、通信部３１を介してＯＳ実行ユニット１５と通信して、ＯＳ実行ユニット１５にシャットダウン処理を開始させてＯＳを終了させる。また、ユニット制御部３２は、現在の電源に関する状態を示す情報を、報知部３３及び記憶部３４に出力する。ユニット制御部３２の詳細な動作については、後述する。ユニット制御部３２は、ＰＬＣ１０において、ユニットを制御するユニット制御手段の一例に相当する。
【００３１】
報知部３３は、補助電源装置３０の出力部４５によって実現される。報知部３３は、例えば、ＬＥＤの点灯色、並びに、点滅又は点灯との組合せにより、現在の電源の状態を外部に報知する。報知部３３は、ＰＬＣ１０において、ユーザに情報を報知する報知手段の第１の例に相当する。
【００３２】
記憶部３４は、補助電源装置３０の補助記憶部４３によって実現される。記憶部３４がデータ３４１を保持することで、ＰＬＣ１０の電源が切断されて報知部３３による報知がなされなくなった後にも、ユーザは、データ３４１を参照することで電源の状態を確認することができる。なお、記憶部３４は、他のユニットとデータを共有してもよい。記憶部３４は、ＰＬＣ１０において、ユーザに情報を報知する報知手段の第２の例に相当する。
【００３３】
蓄電池３５は、鉛蓄電池及びリチウムイオン電池に代表される二次電池を含む。蓄電池３５には、電源ユニット１１から供給される電力が蓄積され、蓄積された電力は、電源ユニット１１による給電が停止される場合に外部に供給される。蓄電池３５は、少なくともＯＳ実行ユニット１５がＯＳを終了するために消費する電力量に相当する容量を有する。なお、この容量は、予期しない電源の切断からの保護対象であるＯＳ実行ユニット１５が適切にシャットダウン処理を実行するための容量であればよく、保護対象外のユニットを稼働させるための電力量より小さくてもよい。蓄電池３５は、ＰＬＣ１０において、複数のユニットのうちの他のユニットに電力を供給する電源ユニットから供給される電力を蓄電する蓄電手段の一例に相当する。
【００３４】
電源制御部３６は、補助電源装置３０のプロセッサ４１によって実現される。電源制御部３６は、電源ユニット１１から一定以上の電力が供給されている通常運転状態では、この電力をＯＳ実行ユニット１５に供給するとともに、蓄電池３５を充電する。電源制御部３６は、電源ユニット１１による給電が停止予定であることを示す予告情報をユニット制御部３２から取得した場合には、蓄電池３５を放電させて得る電力をＯＳ実行ユニット１５に供給する。また、電源制御部３６は、電圧測定回路を有し、電源ユニット１１から出力される電圧が予め定められた閾値より低くなった場合には、蓄電池３５を放電させて得る電力をＯＳ実行ユニット１５に供給するとともに、電源ユニット１１からの給電の停止をユニット制御部３２に通知する。なお、図３では、蓄電池３５からの電力の供給が、白抜きの矢印で示されている。電源制御部３６の詳細な動作については、後述する。電源制御部３６は、ＰＬＣ１０において、ＯＳ実行ユニット１５への電力の供給元を制御する電源制御手段の一例に相当する。
【００３５】
ＯＳ実行ユニット１５は、Ｌｉｎｕｘ及びＷｉｎｄｏｗｓに代表される高機能なＯＳを実行して、ユーザ又はクラウドサーバ２４から提供されるアプリケーションプログラムを実行する。ＯＳ実行ユニット１５によって実行されるＯＳは、ＦＡにおける制御処理のための組み込みＯＳ及びリアルタイムＯＳとは異なる情報処理のためのＯＳである。すなわち、ＯＳ実行ユニット１５によって実行されるＯＳは、当該ＯＳが搭載される機器が限定されない汎用性を有し、リアルタイム性を有しない。ＯＳ実行ユニット１５は、他のユニットと通信する通信部１５１と、ＯＳ実行ユニット１５自体の構成要素に電力を供給する電源部１５２と、ＯＳ及びアプリケーションプログラムを実行する実行部１５３と、を有する。
【００３６】
通信部１５１は、ＯＳ実行ユニット１５の通信部４６によって実現され、実行部１５３は、ＯＳ実行ユニット１５のプロセッサ４１によって実現される。実行部１５３は、アプリケーションプログラムに規定された処理を実行することで、入力ユニット１３を介した大量のデータの収集、又は、機械学習に代表されるデータの分析を実行する。実行部１５３は、補助電源装置３０からの指示に従って、ＯＳに予め定められたシャットダウン処理を実行してＯＳを終了する。ＯＳ実行ユニット１５は、ＰＬＣ１０において、オペレーティングシステムを実行する実行ユニットの一例に相当する。
【００３７】
続いて、ＰＬＣ１０における情報の伝送及び電源に関する主な動作について、図４〜７を参照して説明する。
【００３８】
図４には、電源ユニット１１による給電の停止が予告された後に給電が実際に停止して、ＰＬＣ１０の電源が切断されるケースについて示されている。このケースでは、電源ユニット１１が、給電を停止することの予告を示す予告情報を、信号線を介して補助電源装置３０のユニット制御部３２に送信する（ステップＳ１０１）。
【００３９】
次に、ユニット制御部３２は、電源制御部３６に対して、蓄電池３５による給電の開始を指示する（ステップＳ１０２）。電源制御部３６は、ステップＳ１０２の指示に従って蓄電池３５の給電制御を実行し（ステップＳ１０３）、蓄電池３５に給電を開始させる（ステップＳ１０４）。例えば、電源制御部３６は、蓄電池３５が有するスイッチング素子を制御して、蓄電池３５への電力の充電経路及び電源ユニット１１からＯＳ実行ユニット１５への給電経路を遮断するとともに、放電する蓄電池３５からＯＳ実行ユニット１５への給電経路を導通させることにより、蓄電池３５による給電を開始させる。
【００４０】
次に、ユニット制御部３２は、ＯＳ実行ユニット１５に対して、電源を切り替えることを指示する（ステップＳ１０５）。これにより、ＯＳ実行ユニット１５の電源部１５２は、電源を蓄電池３５に切り替えて（ステップＳ１０６）、蓄電池３５からの電力を電源として利用する。例えば、ＯＳ実行ユニット１５は、電源ユニット１１から電源制御部３６を介して電力が供給される第１端子と、蓄電池３５から電源制御部３６を介して電力が供給される第２端子と、を有し、電源部１５２は、ステップＳ１０５の指示を受けると、第２端子から供給される電力をＯＳ実行ユニット１５の構成要素に供給してもよい。なお、電源部１５２が、電力の供給元を区別することなく、外部から供給される電力をＯＳ実行ユニット１５の構成要素に供給する場合が考えられる。この場合には、ステップＳ１０５，Ｓ１０６の実行、及び、ステップＳ１０５，Ｓ１０６と同様のＯＳ実行ユニット１５自体による電源の切り替えに関する後述の処理を省略してもよい。ただし、ＯＳ実行ユニット１５と電源制御部３６との間における電力の供給経路が１つであっても、電源部１５２は、電源制御部３６と協働することにより、電力の供給元として蓄電池３５を選択してもよい。
【００４１】
その後、電源ユニット１１が給電を停止することで（ステップＳ１０７）、電源ユニット１１から電源制御部３６に供給されていた電力が遮断される（ステップＳ１０８）。次に、電源制御部３６は、ユニット制御部３２に対して、電源ユニット１１からの給電が実際に停止したことを通知する（ステップＳ１０９）。
【００４２】
ユニット制御部３２は、ステップＳ１０９の通知を受けると、ＯＳ実行ユニット１５に対して、ＯＳを終了させることを指示する（ステップＳ１１０）。これにより、ＯＳ実行ユニット１５は、シャットダウン処理を実行する（ステップＳ１１１）。
【００４３】
シャットダウン処理が完了すると、ＯＳ実行ユニット１５は、ユニット制御部３２に対して、ＯＳが終了したことを通知する（ステップＳ１１２）。次に、ユニット制御部３２は、ステップＳ１１２の通知を受けて、ＯＳが終了したことを電源制御部３６に通知する（ステップＳ１１３）。これにより、電源制御部３６には、ＯＳ実行ユニット１５からユニット制御部３２を介して、ＯＳの終了が通知される。なお、ＯＳのシャットダウンが完了するときにＯＳの終了を外部に通知する機能をＯＳ実行ユニット１５が有する例について説明したが、これには限定されない。例えば、ＯＳ実行ユニット１５が、ＯＳのシャットダウンと同時に通信機能を失う場合において、ユニット制御部３２は、ＯＳ実行ユニット１５に対して定期的な応答要求を実行し、この応答要求に対するＯＳ実行ユニット１５からの応答が途絶した時点でＯＳが終了したと判断してから、ステップＳ１１３を実行してもよい。
【００４４】
次に、電源制御部３６は、蓄電池３５を制御して、給電を停止させる（ステップＳ１１４）。蓄電池３５は、ステップＳ１１４の制御により、給電を停止する（ステップＳ１１５）。
【００４５】
次に、ユニット制御部３２は、管理ユニット１２に対して、ＰＬＣ１０を終了することを要求する（ステップＳ１１６）。これにより、管理ユニット１２は、ＰＬＣ１０全体の電源をオフ状態にする（ステップＳ１１７）。すなわち、ＰＬＣ１０が稼働を停止して、電力を消費しない状態になる。
【００４６】
図５には、電源ユニット１１による給電の停止が予告されて給電が実際に停止した後に、電源ユニット１１による給電が再開するケースについて示されている。このケースでは、ステップＳ１０１〜Ｓ１１１まで、図４のケースと同様の処理が実行される。
【００４７】
ステップＳ１１１のシャットダウン処理の実行中において、電源ユニット１１が給電を再開すると（ステップＳ１２１）、電源ユニット１１から電源制御部３６への電力の供給が再開する（ステップＳ１２２）。
【００４８】
給電が再開すると、電源制御部３６は、ユニット制御部３２に対して、電源ユニット１１からの給電が再開したことを通知する（ステップＳ１２３）。ユニット制御部３２は、ステップＳ１２３の通知を受けると、ＯＳ実行ユニット１５によるＯＳの終了通知を受けてから（ステップＳ１２４）、管理ユニット１２に対して、ＰＬＣ１０の再起動を要求する（ステップＳ１２５）。これにより、管理ユニット１２は、ＰＬＣ１０を再起動する（ステップＳ１２６）。
【００４９】
図５のケースでは、ステップＳ１２３における電源制御部３６からの給電再開の通知をトリガとして、補助電源装置３０が、図４のケースとは異なる処理を実行している。なお、図５では、蓄電池３５による給電の停止について示されていないが、ステップＳ１２６におけるＰＬＣ１０の再起動に、蓄電池３５による給電の停止が含まれていてもよいし、電源制御部３６は、ユニット制御部３２に対するステップＳ１２３の通知とともに、図４におけるステップＳ１１４と同様に蓄電池３５の給電停止制御を実行してもよい。
【００５０】
図６には、電源ユニット１１による給電の停止が予告されたが、給電が実際に停止することはなく継続するケースについて示されている。このケースでは、ステップＳ１０１〜Ｓ１０６まで、図４のケースと同様の処理が実行される。
【００５１】
電源ユニット１１は、ステップＳ１０１で給電の停止を予告したが、一時的な電圧低下である瞬断が発生してからは給電を継続する（ステップＳ１３１）。電源制御部３６は、一定時間待機しても電源ユニット１１からの給電が停止しない場合に、電源ユニット１１において瞬断が発生したと判断して（ステップＳ１３２）、ユニット制御部３２に対して、瞬断の発生を通知する（ステップＳ１３３）。
【００５２】
ステップＳ１３３の通知を受けると、ユニット制御部３２は、ＯＳ実行ユニット１５に対して、電源を切り替えることを指示する（ステップＳ１３４）。これにより、ＯＳ実行ユニット１５の電源部１５２は、電源を電源ユニット１１に切り替えて、電源ユニット１１からの電力を電源として利用する（ステップＳ１３５）。
【００５３】
電源の切り替えが完了すると、ＯＳ実行ユニット１５は、ユニット制御部３２に対して、切り替えの完了を通知する（ステップＳ１３６）。ステップＳ１３６の通知を受けて、ユニット制御部３２は、電源制御部３６に対して、蓄電池３５による給電を停止することを指示する（ステップＳ１３７）。なお、ＯＳ実行ユニット１５が、単に外部から供給される電力により動作して、電源を切り替える機能を有しない場合には、ステップＳ１３４〜Ｓ１３６を省略して、ユニット制御部３２は、ステップＳ１３３の通知を受けてステップＳ１３７を実行してもよい。
【００５４】
電源制御部３６は、ステップＳ１３７の指示に従って蓄電池３５に対する給電停止制御を実行し（ステップＳ１３８）、蓄電池３５に給電を停止させる（ステップＳ１３９）。これにより、ＰＬＣ１０は、通常運転処理を続行する。
【００５５】
図６のケースでは、電源制御部３６が、電源ユニット１１からの給電が実際に停止するか否かを監視した結果、瞬断であると判断するステップＳ１３２をトリガとして、補助電源装置３０が、図４のケースとは異なる処理を実行している。
【００５６】
図７には、電源ユニット１１から予告情報が出力されることなく、電源ユニット１１から出力される電圧が低下するケースについて示されている。電源ユニット１１による予告情報が出力されない例として、電源ユニット１１のハードウェア故障、及び、ベースユニットにおける信号線又は端子の接触不良が考えられる。このケースでは、電源ユニット１１から電源線を介して出力される電圧が閾値より低くなり（ステップＳ１４１）、当該電圧を監視する電源制御部３６は、電圧の低下を検出すると、蓄電池３５に対する給電制御を実行して（ステップＳ１４２）、蓄電池３５に給電を開始させる（ステップＳ１４３）。
【００５７】
次に、電源制御部３６は、ユニット制御部３２に対して、電源ユニット１１から出力される電圧が低下したことを通知する（ステップＳ１４４）。ステップＳ１４４の通知を受けると、ユニット制御部３２は、ＯＳ実行ユニット１５に対して、電源を切り替えることを指示する（ステップＳ１４５）。これにより、ＯＳ実行ユニット１５の電源部１５２は、電源を蓄電池３５に切り替えて（ステップＳ１４６）、蓄電池３５からの電力を電源として利用する。なお、ＯＳ実行ユニット１５が電源を切り替える機能を有しない場合には、ステップＳ１４５，Ｓ１４６を省略してもよい。
【００５８】
次に、ユニット制御部３２は、ＯＳ実行ユニット１５に対して、ＯＳを終了させることを指示する（ステップＳ１４７）。これにより、ＯＳ実行ユニット１５は、シャットダウン処理を実行する（ステップＳ１４８）。
【００５９】
ステップＳ１４８以降は、図４に示されたステップＳ１１２〜Ｓ１１７と同様の処理が実行される。図７のケースは、電源制御部３６が電圧の低下を検知したことを最初のトリガとする点で、予告情報の受信を最初のトリガとする図４〜６のケースとは異なっている。
【００６０】
続いて、ユニット制御部３２、電源制御部３６、及びＯＳ実行ユニット１５によって実行される処理について、順に説明する。図４〜７からわかるように、ＰＬＣ１０によって実行される処理は、ＯＳの終了が指示されるまでの第１フェーズと、電源ユニット１１による給電停止の予告に基づく処理が実行される第２フェーズと、実際にＰＬＣ１０の電源を切断する第３フェーズと、に区分される。
【００６１】
図８には、ユニット制御部３２により実行されるユニット制御処理のうち、第１フェーズにおいて実行される処理について示されている。第１フェーズの処理は、ＰＬＣ１０の電源が投入されることで開始する。
【００６２】
図８に示される第１フェーズの処理では、ユニット制御部３２は、設定情報を読み出す（ステップＳ１１）。設定情報は、ユニット制御処理に関するパラメータであって、補助電源装置３０に予め設定される。設定情報は、例えば、記憶部３４に格納すべきデータ３４１のアドレス、及び、報知部３３による報知の有無を示す。
【００６３】
次に、ユニット制御部３２は、現在の状態を外部に報知する（ステップＳ１２）。具体的には、ユニット制御部３２は、電源ユニット１１からの給電が正常であって補助電源装置３０が通常運転状態であることを報知部３３に報知させ、報知した内容を示すデータ３４１を記憶部３４に格納する。
【００６４】
次に、ユニット制御部３２は、電源ユニット１１からの給電停止の予告情報を受信したか否かを判定する（ステップＳ１３）。このステップＳ１３は、図４に示されるステップＳ１０１に対応する。予告情報を受信したと判定した場合（ステップＳ１３；Ｙｅｓ）、ユニット制御部３２は、電源制御部３６に給電の開始を指示する（ステップＳ１４）。このステップＳ１４は、図４に示されるステップＳ１０２に対応する。そして、ユニット制御部３２は、ユーザによって予期されない電源の喪失から保護されるべき対象のユニットであるＯＳ実行ユニット１５に対して、蓄電池３５への電源切り替えを指示する（ステップＳ１５）。このステップＳ１５は、図４に示されるステップＳ１０５に対応する。これにより、ＯＳ実行ユニット１５は、蓄電池３５から供給される電力により動作する。その後、ユニット制御部３２による処理は、第２フェーズへ移行する。以下では、保護される対象のユニットを、保護対象のユニットと表記する。
【００６５】
ステップＳ１３にて、予告情報を受信していないと判定した場合（ステップＳ１３；Ｎｏ）、ユニット制御部３２は、電源制御部３６から給電停止の通知を受信したか否かを判定する（ステップＳ１６）。このステップＳ１６は、図７に示されるステップＳ１４４に対応する。給電停止の通知を受信していないと判定した場合（ステップＳ１６；Ｎｏ）、ユニット制御部３２は、ステップＳ１３の判定を繰り返す。これにより、ユニット制御部３２は、予告情報を受信するか、又は、給電停止が電源制御部３６から通知されるまで、通常運転を継続する。
【００６６】
給電停止の通知を受信したと判定した場合（ステップＳ１６；Ｙｅｓ）、ユニット制御部３２は、保護対象のユニットに蓄電池３５への電源切り替えを指示する（ステップＳ１７）。このステップＳ１７は、図７に示されるステップＳ１４５に対応する。
【００６７】
次に、ユニット制御部３２は、保護対象のユニットに稼働停止を指示する（ステップＳ１８）。保護対象のユニットがＯＳ実行ユニット１５である場合には、稼働停止の指示は、ＯＳのシャットダウン処理を含む。ステップＳ１８は、図７に示されるステップＳ１４７に対応する。その後、ユニット制御部３２による処理は、第３フェーズへ移行する。
【００６８】
図９には、ユニット制御処理のうち第２フェーズの処理が示されている。第２フェーズの処理では、ユニット制御部３２は、現在の状態を報知する（ステップＳ２１）。具体的には、ユニット制御部３２は、電源ユニット１１からの給電停止が予告されて蓄電池３５が電力を供給していることを報知部３３に報知させ、報知した内容を示すデータ３４１を記憶部３４に格納する。記憶部３４への格納は、上書きであってもよいし、過去のデータ３４１を削除することなく新たなデータ３４１を追加することでなされてもよい。
【００６９】
次に、ユニット制御部３２は、電源制御部３６から給電停止の通知を受信したか否かを判定する（ステップＳ２２）。このステップＳ２２は、図４に示されるステップＳ１０９に対応する。給電停止の通知を受信したと判定した場合（ステップＳ２２；Ｙｅｓ）、ユニット制御部３２は、保護対象のユニットに対して稼働停止を指示する（ステップＳ２３）。このステップＳ２３は、図４に示されるステップＳ１１０に対応する。その後、ユニット制御部３２による処理は、第３フェーズへ移行する。
【００７０】
ステップＳ２２にて、給電停止の通知を受信していないと判定した場合（ステップＳ２２；Ｎｏ）、ユニット制御部３２は、電源制御部３６から瞬断発生の通知を受信したか否かを判定する（ステップＳ２４）。このステップＳ２４は、図６に示されるステップＳ１３３に対応する。瞬断発生の通知を受信していないと判定した場合（ステップＳ２４；Ｎｏ）、ユニット制御部３２は、ステップＳ２２の判定を繰り返す。これにより、ユニット制御部３２は、予告された給電停止が実際に発生したこと、及び、瞬断が発生して給電が継続すること、のいずれかを示す情報を電源制御部３６から受信するまで待機することとなる。
【００７１】
ステップＳ２４にて瞬断発生の通知を受信したと判定した場合（ステップＳ２４；Ｙｅｓ）、ユニット制御部３２は、保護対象のユニットに電源ユニット１１への電源切り替えを指示する（ステップＳ２５）。このステップＳ２５は、図６に示されるステップＳ１３４に対応する。そして、ユニット制御部３２は、保護対象のユニットからの電源切り替えの完了通知を待機する（ステップＳ２６）。このステップＳ２６は、図６に示されるステップＳ１３６に対応する。
【００７２】
電源切り替えの完了が通知されると、ユニット制御部３２は、電源制御部３６に対して、蓄電池３５による給電の停止を指示する（ステップＳ２７）。このステップＳ２７は、図６に示されるステップＳ１３７に対応する。その後、ユニット制御部３２による処理は、第１フェーズに移行する。
【００７３】
図１０には、ユニット制御処理のうちの第３フェーズの処理について示されている。第３フェーズの処理では、ユニット制御部３２は、現在の状態を報知する（ステップＳ３１）。具体的には、ユニット制御部３２は、電源ユニット１１からの給電が停止して、ＰＬＣ１０の電源を切断することを報知部３３に報知させ、報知した内容を示すデータ３４１を記憶部３４に格納する。
【００７４】
次に、ユニット制御部３２は、保護対象のユニットから稼働停止の通知を受信したか否かを判定する（ステップＳ３２）。このステップＳ３２は、図４に示されるステップＳ１１２に対応する。
【００７５】
稼働停止の通知を受信したと判定した場合（ステップＳ３２；Ｙｅｓ）、ユニット制御部３２は、電源制御部３６に対して、保護対象のユニットの稼働停止を通知する（ステップＳ３３）。これにより、シャットダウン処理を完了したことが、ＯＳ実行ユニット１５からユニット制御部３２を介して電源制御部３６に通知される。このステップＳ３３は、図４に示されるステップＳ１１３に対応する。
【００７６】
次に、ユニット制御部３２は、管理ユニット１２に対して、ＰＬＣ１０の停止を要求する（ステップＳ３４）。このステップＳ３４は、図４に示されるステップＳ１１６に対応する。これにより、ＰＬＣ１０が稼働を停止する。その後、ユニット制御処理が終了する。
【００７７】
ステップＳ３２にて、稼働停止の通知を受信していないと判定した場合（ステップＳ３２；Ｎｏ）、ユニット制御部３２は、電源ユニット１１による給電再開の通知を電源制御部３６から受信したか否かを判定する（ステップＳ３５）。このステップＳ３５は、図５に示されるステップＳ１２３に対応する。給電再開の通知を受信していないと判定した場合（ステップＳ３５；Ｎｏ）、ユニット制御部３２は、ステップＳ３１以降の処理を繰り返す。これにより、ユニット制御部３２は、保護対象のユニットからの稼働停止の通知、及び、電源制御部３６からの給電再開の通知のいずれか一方を受信するまで待機することとなる。
【００７８】
ステップＳ３５にて、給電再開の通知を受信したと判定した場合（ステップＳ３５；Ｙｅｓ）、ユニット制御部３２は、現在の状態を報知する（ステップＳ３６）。具体的には、ユニット制御部３２は、電源ユニット１１からの給電が再開して、ＰＬＣ１０を再起動することを報知部３３に報知させ、報知した内容を示すデータ３４１を記憶部３４に格納する。
【００７９】
次に、ユニット制御部３２は、保護対象のユニットから稼働停止の通知を受信したか否かを判定する（ステップＳ３７）。このステップＳ３７は、図５に示されるステップＳ１２４に対応する。稼働停止の通知を受信していないと判定した場合（ステップＳ３７；Ｎｏ）、ユニット制御部３２は、ステップＳ３６以降の処理を繰り返す。これにより、ユニット制御部３２は、保護対象のユニットから稼働停止の通知を受けるまで待機することとなる。
【００８０】
一方、稼働停止の通知を受信したと判定した場合（ステップＳ３７；Ｙｅｓ）、ユニット制御部３２は、管理ユニット１２に対して、ＰＬＣ１０の再起動を要求する（ステップＳ３８）。このステップＳ３８は、図５に示されるステップＳ１２５に対応する。その後、ユニット制御処理が終了する。
【００８１】
図１１には、電源制御部３６により実行される電源制御処理のうち、第１フェーズにおいて実行される処理について示されている。第１フェーズの処理は、ＰＬＣ１０の電源が投入されることで開始する。
【００８２】
図１１に示される第１フェーズの処理では、電源制御部３６は、必要に応じて蓄電池３５を充電する（ステップＳ４１）。これにより、蓄電池３５は、満充電の状態になる。次に、電源制御部３６は、ユニット制御部３２から給電の開始を指示されたか否かを判定する（ステップＳ４２）。このステップＳ４２は、図４に示されるステップＳ１０２に対応する。
【００８３】
給電の開始を指示されたと判定した場合（ステップＳ４２；Ｙｅｓ）、電源制御部３６は、蓄電池３５による給電を開始させる（ステップＳ４３）。このステップＳ４３は、図４に示されるステップＳ１０３に対応する。その後、電源制御部３６による処理は、第２フェーズへ移行する。
【００８４】
ステップＳ４２にて、給電の開始を指示されていないと判定した場合（ステップＳ４２；Ｎｏ）、電源制御部３６は、電源ユニット１１の出力電圧が予め定められた閾値より低いか否かを判定する（ステップＳ４４）。このステップＳ４４は、図４に示されるステップＳ１４１に対応する。閾値は、例えば、電源ユニット１１から出力される電圧の定格値の９０％に等しい値である。出力電圧が閾値より低くはないと判定した場合（ステップＳ４４；Ｎｏ）、電源制御部３６は、ステップＳ４２の判定を繰り返す。これにより、電源制御部３６は、ユニット制御部３２から給電開始を指示されるか、又は、電源ユニット１１の出力電圧が低下するまで、通常運転を続行する。
【００８５】
ステップＳ４４にて出力電圧が閾値より低いと判定した場合（ステップＳ４４；Ｙｅｓ）、電源制御部３６は、蓄電池３５による給電を開始する（ステップＳ４５）。このステップＳ４５は、図７に示されるステップＳ１４２に対応する。次に、電源制御部３６は、ユニット制御部３２へ出力電圧の低下を通知する（ステップＳ４６）。このステップＳ４６は、図７に示されるステップＳ１４４に対応する。その後、電源制御部３６による処理は、第３フェーズへ移行する。
【００８６】
図１２には、電源制御処理のうちの第２フェーズにおける処理について示されている。この第２フェーズの処理では、電源制御部３６は、瞬断の発生の有無を判定するためのタイマによる時刻の計測を開始する（ステップＳ５１）。
【００８７】
次に、電源制御部３６は、電源ユニット１１からの給電が停止したか否かを判定する（ステップＳ５２）。給電の停止は、電源ユニット１１から出力される電圧がおおよそゼロに等しくなることであって、当該電圧が定格値の１０％未満になったときに、給電が停止したと判定される。給電が停止したと判定した場合（ステップＳ５２；Ｙｅｓ）、電源制御部３６は、ユニット制御部３２に対して、電源ユニット１１からの給電の停止を通知する（ステップＳ５３）。このステップＳ５３は、図４に示されるステップＳ１０９に対応する。その後、電源制御部３６による処理は、第３フェーズへ移行する。
【００８８】
ステップＳ５２にて、給電が停止していないと判定した場合（ステップＳ５２；Ｎｏ）、電源制御部３６は、ステップＳ５１で開始したタイマの計測時間が予め定められた閾値以上であるか否かを判定する（ステップＳ５４）。この閾値は、例えば、１秒間、又は１分間である。計測時間が閾値以上ではないと判定した場合（ステップＳ５４；Ｎｏ）、電源制御部３６は、ステップＳ５２の判定を繰り返す。これにより、電源制御部３６は、電源ユニット１１からの給電の停止が予告されてから一定時間内に実際に給電が停止するか否かを監視することとなる。
【００８９】
ステップＳ５４にて、計測時間が閾値以上であると判定した場合（ステップＳ５４；Ｙｅｓ）、電源制御部３６は、瞬断が発生して、当該瞬断により予告情報が出力されたが、電源ユニット１１による給電が継続すると判断して、ユニット制御部３２に対して、瞬断の発生を通知する（ステップＳ５５）。このステップＳ５５は、図６に示されるステップＳ１３２，Ｓ１３３に対応する。
【００９０】
次に、電源制御部３６は、蓄電池３５による給電を停止することの指示をユニット制御部３２から受信したか否かを判定する（ステップＳ５６）。このステップＳ５６は、図６に示されるステップＳ１３７に対応する。給電停止の指示を受信していないと判定した場合（ステップＳ５６；Ｎｏ）、電源制御部３６は、ステップＳ５６の判定を繰り返す。これにより、電源制御部３６は、給電停止の指示を受信するまで待機することとなる。
【００９１】
給電停止の指示を受信したと判定した場合（ステップＳ５６；Ｙｅｓ）、電源制御部３６は、蓄電池３５による給電を停止する（ステップＳ５７）。このステップＳ５７は、図６に示されるステップＳ１３８に対応する。その後、電源制御部３６による処理は、第１フェーズへ移行する。
【００９２】
図１３には、電源制御処理のうちの第３フェーズにおける処理について示されている。この第３フェーズの処理では、電源制御部３６は、保護対象のユニットの稼働停止がユニット制御部３２から通知されたか否かを判定する（ステップＳ６１）。このステップＳ６１は、図４に示されるステップＳ１１３に対応する。
【００９３】
保護対象のユニットの稼働停止が通知されたと判定した場合（ステップＳ６１；Ｙｅｓ）、電源制御部３６は、蓄電池３５による給電を停止する（ステップＳ６２）。このステップＳ６２は、図４に示されるステップＳ１１４に対応する。その後、電源制御処理が終了する。
【００９４】
保護対象のユニットの稼働停止が通知されていないと判定した場合（ステップＳ６１；Ｎｏ）、電源制御部３６は、電源ユニット１１からの給電が再開したか否かを判定する（ステップＳ６３）。このステップＳ６３は、図５に示されるステップＳ１２２に対応する。
【００９５】
電源ユニット１１からの給電が再開していないと判定した場合（ステップＳ６３；Ｎｏ）、電源制御部３６は、ステップＳ６１の判定を繰り返す。これにより、電源制御部３６は、保護対象のユニットが稼働停止したことがユニット制御部３２から通知されるか、又は、電源ユニット１１の給電が再開するまで、待機することとなる。
【００９６】
電源ユニット１１からの給電が再開したと判定した場合（ステップＳ６３；Ｙｅｓ）、電源制御部３６は、ユニット制御部３２へ、電源ユニット１１による給電の再開を通知する（ステップＳ６４）。このステップＳ６４は、図５に示されるステップＳ１２３に対応する。その後、電源制御部３６による処理は、第１フェーズへ移行する。
【００９７】
図１４には、保護対象のユニットによって実行されるユニット電源処理が、フェーズを区分することなく示されている。以下では、保護対象のユニットがＯＳ実行ユニット１５である例について説明する。
【００９８】
ユニット電源処理では、ＯＳ実行ユニット１５は、ユニット処理を実行する（ステップＳ７１）。ユニット処理は、通常運転状態においてＯＳ実行ユニット１５が実行すべき処理であって、例えば、データの収集及び分析を含む。
【００９９】
次に、ＯＳ実行ユニット１５は、ユニット制御部３２から電源の切り替えを指示されたか否かを判定する（ステップＳ７２）。このステップＳ７２は、図４に示されるステップＳ１０５、図６に示されるステップＳ１３４及び図７に示されるステップＳ１４５に対応する。
【０１００】
電源の切り替えを指示されていないと判定した場合（ステップＳ７２；Ｎｏ）、ＯＳ実行ユニット１５は、処理をステップＳ７５へ移行する。一方、電源の切り替えを指示されたと判定した場合（ステップＳ７２；Ｙｅｓ）、ＯＳ実行ユニット１５は、電源を現在の状態から切り替える（ステップＳ７３）。具体的には、ＯＳ実行ユニット１５は、電源ユニット１１から供給される電力で稼働しているときには、電源を蓄電池３５に変更し、蓄電池３５から供給される電力で稼働しているときには、電源を電源ユニット１１に変更する。ステップＳ７３は、図４に示されるステップＳ１０６、図６に示されるステップＳ１３５及び図７に示されるステップＳ１４６に対応する。
【０１０１】
次に、ＯＳ実行ユニット１５は、ユニット制御部３２へ電源の切り替えの完了を通知する（ステップＳ７４）。このステップＳ７４は、図６に示されるステップＳ１３６に対応する。なお、図４，７には、電源の切り替え完了の通知について示されていないが、ＯＳ実行ユニット１５は、図４，７のケースにおいてもこの通知をしてもよいし、ユニット制御部３２は、ＯＳ実行ユニット１５からの通知を待機してから次の手順を実行してもよい。
【０１０２】
次に、ＯＳ実行ユニット１５は、ユニット制御部３２から稼働停止を指示されたか否かを判定する（ステップＳ７５）。このステップＳ７５は、図４に示されるステップＳ１１０及び図７に示されるステップＳ１４７に対応する。稼働停止を指示されていないと判定した場合（ステップＳ７５；Ｎｏ）、ＯＳ実行ユニット１５は、ステップＳ７１以降の処理を繰り返す。これにより、ＯＳ実行ユニット１５は、稼働停止が指示されるまで、ユニット処理を続行しつつ、必要に応じて電源を切り替える。
【０１０３】
一方、稼働停止を指示されたと判定した場合（ステップＳ７５；Ｙｅｓ）、ＯＳ実行ユニット１５は、稼働停止処理を実行する（ステップＳ７６）。具体的には、ＯＳ実行ユニット１５は、ＯＳのシャットダウン処理を実行する。このステップＳ７６は、図４に示されるステップＳ１１１及び図７に示されるステップＳ１４８に対応する。
【０１０４】
次に、ＯＳ実行ユニット１５は、ユニット制御部３２へ稼働停止の完了を通知する（ステップＳ７７）。このステップＳ７７は、図４に示されるステップＳ１１２及び図５に示されるステップＳ１２４に対応する。そして、ＯＳ実行ユニット１５は、電源ユニット１１を電源として選択してから（ステップＳ７８）、ユニット電源処理を終了する。なお、ユニット電源処理を実行するユニットが、外部から供給される電力で動作し、電源を切り替える機能を有しない場合には、ステップＳ７２〜Ｓ７４が省略されてもよい。また、ステップＳ７７における稼働停止の通知は、省略されてもよい。
【０１０５】
以上、説明したように、電源制御部３６が、電源ユニット１１による給電の停止が予告された場合、又は、電源ユニット１１から出力される電圧が閾値より低くなった場合に、ＯＳ実行ユニット１５への電力の供給元を電源ユニット１１から蓄電池３５に切り替える。具体的には、電源制御部３６は、蓄電池３５の放電による給電を開始させることにより、蓄電池３５からの電力をＯＳ実行ユニット１５に供給する。また、ユニット制御部３２は、電力の供給元が蓄電池３５に切り替えられたＯＳ実行ユニット１５に対して、ＯＳの終了を指示する。そして、ＯＳ実行ユニット１５が、ユニット制御部３２による指示に従って、蓄電池３５から供給される電力によりシャットダウン処理を実行してＯＳを終了する。これにより、ＰＬＣ１０の電源が切断される際に、ＯＳ実行ユニット１５に確実に当該ＯＳを終了させることができる。
【０１０６】
また、図４に示されるように、ＯＳ実行ユニット１５は、ＯＳのシャットダウンが完了してＯＳが終了すると、当該ＯＳが終了したことを、ユニット制御部３２を介して電源制御部３６に通知し、電源制御部３６は、当該通知を受けると蓄電池３５による電力の供給を終了させた。これにより、蓄電池３５の不要な給電を回避することができる。
【０１０７】
また、電源制御部３６は、電源ユニット１１による給電の停止が予告された場合において、実際に給電が停止したときには給電が停止したことをユニット制御部３２に通知し、ユニット制御部３２は、当該通知を受けると、ＯＳ実行ユニット１５にＯＳの終了を指示した。これにより、給電停止が予告されたにも関わらず給電が続行する場合において、予告に基づいてＯＳを不要に終了させてしまうことを回避することができる。また、電源制御部３６は、電源ユニット１１による給電の停止が予告された場合において給電が継続するときには、ＯＳ実行ユニット１５への電力の供給元を蓄電池３５から電源ユニット１１に切り替えた。これにより、蓄電池３５の不要な給電を回避することができる。
【０１０８】
また、ＯＳがシャットダウンした場合において、電源ユニット１１による給電が再開すると、ユニット制御部３２は、管理ユニット１２に対してＰＬＣ１０の再起動を要求した。これにより、ユーザは、再開した給電によって迅速に製造ラインを再開させることができる。さらに、ユニット制御部３２は、ＯＳ実行ユニット１５にＯＳの終了を指示した後に給電再開の通知を受けた場合には、ＯＳのシャットダウンの完了を待機してから、ＰＬＣ１０の再起動を要求した。これにより、シャットダウン処理の最中においてＰＬＣ１０が再起動し、ＯＳのデータが破損することを回避することができる。
【０１０９】
また、補助電源装置３０は、現在の状態を報知部３３により報知する。これにより、多数のＰＬＣ１０を管理する管理者は、ＯＳのシャットダウンが完了していないＯＳ実行ユニット１５を有するＰＬＣ１０を容易に特定することができる。
【０１１０】
また、補助電源装置３０は、現在の状態を示すデータ３４１を記憶部３４に格納した。これにより、ユーザは、任意のシャットダウン処理を構築することが可能になる。例えば、ＯＳ実行ユニット１５のアプリケーションプログラムからシャットダウン状態を監視して、シャットダウン処理の実行中である場合には、ＯＳのシャットダウンを妨げるアプリケーションを強制終了することで、ＯＳ実行ユニット１５のシャットダウンを確実に完了することができる。
【０１１１】
実施の形態２．
続いて、実施の形態２について、上述の実施の形態１との相違点を中心に説明する。なお、上記実施の形態１と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。本実施の形態に係るＰＬＣ１０は、図１５に示されるように、ベースユニット１６が補助電源線１６１を備える点で、実施の形態１と異なっている。補助電源線１６１は、蓄電池３５と、管理ユニット１２及び入出力ユニット１９と、を電気的に接続する。
【０１１２】
電源制御部３６は、補助電源線１６１を介して、管理ユニット１２及び入出力ユニット１９に対して、蓄電池３５に蓄えられた蓄電電力を供給する。すなわち、補助電源線１６１によって電力が供給されるユニットが、電源ユニット１１による給電が停止した場合における電源の喪失から保護する対象となる。
【０１１３】
なお、複数のユニットのうちの保護対象である対象ユニットは、ユーザによって管理ユニット１２に設定される。保護対象のユニットを示す設定情報は、図８のステップＳ１１において、管理ユニット１２からユニット制御部３２によって読み出される。そして、ユニット制御部３２は、同図のステップＳ１５にて、設定情報により設定される一又は複数の対象ユニットに電源の切り替えを指示すればよい。この指示により、保護対象のユニットは、消費する電力を、電源ユニット１１により供給される電力から、補助電源線１６１を介して蓄電池３５から供給される電力に切り替える。すなわち、保護対象のユニットは、電源ユニット１１から電力の供給を受けるための端子を無効にするとともに、補助電源線１６１に接続される端子を有効にして、補助電源線１６１を介して供給される電力による動作を開始する。
【０１１４】
以上、説明したように、ベースユニット１６が補助電源線１６１を備えることで、蓄電池３５から供給される電力を、ベースユニット１６に接続される複数のユニットに供給することができる。具体的には、電源制御部３６が、電源ユニット１１による給電の停止が電源ユニット１１によって予告された場合、又は、電源ユニット１１から出力される電圧が閾値より低くなった場合に、ＯＳ実行ユニット１５と、ベースユニット１６を介して蓄電池３５と電気的に接続される対象ユニットと、への電力の供給元を電源ユニット１１から蓄電値３５に切り替える。したがって、保護対象となるユニットを単一のＯＳ実行ユニット１５から、ＯＳ実行ユニット１５を含む複数の対象ユニットに拡張することができる。
【０１１５】
なお、図１６に示されるように、補助電源装置３０が、単一のユニットとしてベースユニットに１６に装着されてもよい。
【０１１６】
実施の形態３．
続いて、実施の形態３について、上述の実施の形態２との相違点を中心に説明する。なお、上記実施の形態２と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。本実施の形態に係るＰＬＣ１０は、図１７に示されるように、電源制御部３６が、蓄電池３５の蓄電残量を計測する残量計３６１を有する点で、実施の形態２と異なる。
【０１１７】
管理ユニット１２は、図８のステップＳ１１において、保護対象であるユニットを特定する情報に加えて、保護対象であるユニットの消費電力を示す情報をユニット制御部３２に提供する。
【０１１８】
ユニット制御部３２は、残量計３６１による計測結果を電源制御部３６から取得するとともに、保護対象のユニットの消費電力を示す消費電力情報を管理ユニット１２から取得する。ユニット制御部３２は、取得した計測結果及び消費電力から、蓄電池３５が保護対象のユニットに給電を実行可能な残り給電時間を算出する。そして、ユニット制御部３２は、残り給電時間を現在の状態として適宜報知する。具体的には、ユニット制御部３２は、残り給電時間を示す情報を報知部３３に報知させるとともに、残り時間を示すデータ３４１を記憶部３４に格納する。
【０１１９】
これにより、ＰＬＣ１０の管理者は、蓄電池３５による給電が可能な時間を参照しながら、保護対象とするユニットを指定することができる。また、シャットダウン処理にかけることができる時間の上限を予め知ることができるため、給電が可能な時間に応じてシャットダウン処理の追加又は変更をすることができる。例えば、給電が可能な時間を十分長く確保することができる場合には、ＯＳ実行ユニット１５がレポートファイルをクラウドサーバ２４に出力する処理をシャットダウンの実行前に追加することができる。なお、消費電力情報は、実質的に消費電力を示す情報であればよく、消費電流を示す情報であってもよい。
【０１２０】
以上、本開示の実施の形態について説明したが、本開示は上記実施の形態によって限定されるものではない。
【０１２１】
例えば、ベースユニット１６に他のユニットが取り付けられることによりＰＬＣ１０が構成される例について説明したが、これには限定されない。一のユニットが、他の２つのユニットの通信及び電力の供給を仲介すれば、ベースユニット１６を省略してＰＬＣ１０を構成することができる。このように各ユニットが通信及び電力の供給を仲介する場合には、ユニット同士が互いに取り付けられることでＰＬＣ１０が構成される。
【０１２２】
また、ＰＬＣ１０が工場における製造ラインを稼働させる例について説明したが、これには限定されない。ＰＬＣ１０は、加工ライン、検査ライン、その他のラインを稼働させてもよいし、プラントにおけるプロセス制御を実行してもよい。
【０１２３】
また、ＰＬＣ１０の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
【０１２４】
例えば、プロセッサ４１によって実行されるプログラムＰ１を、コンピュータ読み取り可能な非一時的な記録媒体に格納して配布し、そのプログラムＰ１をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。このような記録媒体としては、例えばフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read−Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto−Optical Disc）が考えられる。
【０１２５】
また、プログラムＰ１をインターネットに代表される通信ネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロードするようにしてもよい。
【０１２６】
また、通信ネットワークを介してプログラムＰ１を転送しながら起動実行することによっても、上述の処理を達成することができる。
【０１２７】
さらに、プログラムＰ１の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムを実行することによっても、上述の処理を達成することができる。
【０１２８】
なお、上述の機能を、ユニット１８を稼働させるためのＯＳが分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロードしてもよい。
【０１２９】
また、ＰＬＣ１０の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を、回路を含む専用のハードウェアによって実現してもよい。
【０１３０】
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。つまり、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。
【産業上の利用可能性】
【０１３１】
本開示は、オペレーティングシステムを実行するユニットを有するプログラマブルコントローラに適している。
【符号の説明】
【０１３２】
１０  ＰＬＣ、  １１  電源ユニット、  １２  管理ユニット、  １３  入力ユニット、  １４  出力ユニット、  １５  ＯＳ実行ユニット、  １６  ベースユニット、  １８  ユニット、  １９  入出力ユニット、  ２１  スイッチ、  ２２  センサ、  ２３  製造装置、  ２４  クラウドサーバ、  ３０  補助電源装置、  ３１  通信部、  ３２  ユニット制御部、  ３３  報知部、  ３４  記憶部、  ３５  蓄電池、  ３６  電源制御部、  ４１  プロセッサ、  ４２  主記憶部、  ４３  補助記憶部、  ４４  入力部、  ４５  出力部、  ４６  通信部、  ４７  内部バス、  １００  制御システム、  １２１  通信部、  １２２  電源部、  １２３  プログラム実行部、  １２４  プログラム、  １５１  通信部、  １５２  電源部、  １５３  実行部、  １６１  補助電源線、  １９１  通信部、  １９２  電源部、  ３４１  データ、  ３６１  残量計、  Ｐ１  プログラム。
【要約】
ＰＬＣ（１０）は、信号を入出力するための端子を有する複数のユニットが取り付けられることで構成される。ＰＬＣ（１０）は、複数のユニットのうちの他のユニットに電力を供給する電源ユニット（１１）から供給される電力を蓄電する蓄電池（３５）と、電源ユニット（１１）による給電の停止が電源ユニット（１１）によって予告された場合、又は、電源ユニット（１１）から出力される電圧が閾値より低くなった場合に、ＯＳを実行するＯＳ実行ユニット（１５）への電力の供給元を電源ユニット（１１）から蓄電池（３５）に切り替える電源制御部（３６）と、電力の供給元が蓄電池（３５）に切り替えられたＯＳ実行ユニット（１５）に、ＯＳの終了を指示するユニット制御部（３２）と、を備える。ＯＳ実行ユニット（１５）は、ユニット制御部（３２）による指示に従ってＯＳを終了する。【図１】
0006833142.tif 000002
【図２】
0006833142.tif 000003
【図３】
0006833142.tif 000004
【図４】
0006833142.tif 000005
【図５】
0006833142.tif 000006
【図６】
0006833142.tif 000007
【図７】
0006833142.tif 000008
【図８】
0006833142.tif 000009
【図９】
0006833142.tif 000010
【図１０】
0006833142.tif 000011
【図１１】
0006833142.tif 000012
【図１２】
0006833142.tif 000013
【図１３】
0006833142.tif 000014
【図１４】
0006833142.tif 000015
【図１５】
0006833142.tif 000016
【図１６】
0006833142.tif 000017
【図１７】
0006833142.tif 000018