(57)【要約】【課題】部品点数の増大を抑制しつつ、電断が発生した後に電断前の状態に安定して復帰することができる制御装置を提供する。【解決手段】ＰＬＣ１の制御部３０は、電断時に保持すべき電断時保持情報４２を生成し、生成した電断時保持情報４２をメインメモリ１６に格納する。制御部３０は、不揮発性メモリ１４に対して対象情報の読み込みおよび書き込みを行なうためのファイルシステム部３４を含む。ファイルシステム部３４は、不揮発性メモリ１４に対して対象情報の読み込みおよび書き込みのいずれかの処理を行なっている場合に電断通知を受けたとき、当該処理を中止し、予備電源部から供給される電力を用いて、メインメモリ１６に格納された電断時保持情報４２を不揮発性メモリ１４に書き込む。【選択図】図３
2018055583.tif 000002
【特許請求の範囲】
【請求項１】
設備または機械を制御するための制御装置であって、
揮発性記憶部と、
不揮発性記憶部と、
外部電源からの電力供給が遮断される電断時に電力を供給するための予備電源部と、
電断時に保持すべき電断時保持情報を生成し、生成した前記電断時保持情報を前記揮発性記憶部に格納するための制御部とを備え、
前記制御部は、前記不揮発性記憶部に対して対象情報の読み込みおよび書き込みを行なうためのファイルシステム部を含み、
前記ファイルシステム部は、前記不揮発性記憶部に対して対象情報の読み込みおよび書き込みのいずれかの処理を行なっている場合に前記外部電源からの電力供給が遮断されたことを示す電断通知を受けたとき、前記不揮発性記憶部に対する当該処理を中止し、前記予備電源部から供給される電力を用いて、前記揮発性記憶部に格納された前記電断時保持情報を前記不揮発性記憶部に書き込む、制御装置。
【請求項２】
前記不揮発性記憶部は、第１の領域と第２の領域とを含み、
前記ファイルシステム部は、前記電断通知を受けた場合、前記第１の領域に対象情報の読み込みおよび書き込みのいずれかの処理を行なっているときに当該処理を中止し、前記第２の領域に対象情報の読み込みおよび書き込みのいずれかの処理を行なっているときに当該処理を続けて行なう、請求項１に記載の制御装置。
【請求項３】
前記ファイルシステム部は、対象情報を複数の記録単位に分割し、前記不揮発性記憶部に対して記録単位で読み込みおよび書き込みを行ない、
前記ファイルシステム部は、前記電断通知を受けたときの処理対象の記録単位についての処理が完了した後に、前記電断時保持情報を前記不揮発性記憶部に書き込む、請求項１または２に記載の制御装置。
【請求項４】
前記ファイルシステム部は、前記不揮発性記憶部に対して対象情報を書き込む場合には、当該対象情報に付属する付属情報を前記不揮発性記憶部に書き込み、
前記ファイルシステム部は、前記不揮発性記憶部に対して対象情報の書き込みを行なっているときに前記電断通知を受けた場合には、当該対象情報に対応する前記付属情報を、前記電断通知を受けるまでに前記不揮発性記憶部に書き込んだ情報に応じて更新する、請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
設備または機械を制御するための制御装置での制御方法であって、
前記制御装置は、揮発性記憶部と、不揮発性記憶部と、外部電源からの電力供給が遮断される電断時に電力を供給するための予備電源部とを備え、
前記制御方法は、
電断時に保持すべき電断時保持情報を生成し、生成した前記電断時保持情報を前記揮発性記憶部に格納するステップと、
前記不揮発性記憶部に対して対象情報の読み込みおよび書き込みのいずれかの処理を行なっている場合に前記外部電源からの電力供給が遮断されたことを示す電断通知を受けたとき、前記不揮発性記憶部に対する当該処理を中止し、前記予備電源部から供給される電力を用いて、前記揮発性記憶部に格納された前記電断時保持情報を前記不揮発性記憶部に書き込むステップとを備える、制御方法。
【請求項６】
設備または機械を制御するための制御装置において実行されるプログラムであって、
前記制御装置は、揮発性記憶部と、不揮発性記憶部と、外部電源からの電力供給が遮断される電断時に電力を供給するための予備電源部とを備え、
電断時に保持すべき電断時保持情報を生成し、生成した前記電断時保持情報を前記揮発性記憶部に格納するステップと、
前記不揮発性記憶部に対して対象情報の読み込みおよび書き込みのいずれかの処理を行なっている場合に前記外部電源からの電力供給が遮断されたことを示す電断通知を受けたとき、前記不揮発性記憶部に対する当該処理を中止し、前記予備電源部から供給される電力を用いて、前記揮発性記憶部に格納された前記電断時保持情報を前記不揮発性記憶部に書き込むステップとを、前記制御装置のプロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、設備または機械を制御する制御装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、設備または機械を制御するためのＦＡ（Factory Automation）関連装置の一例としてＰＬＣ（Programmable Logic Controller、あるいは、プログラマブルコントローラとも称される）が知られている。
【０００３】
ＰＬＣは、設備または機械を制御するための制御プログラムが参照する設定情報などの情報を適宜不揮発性メモリに書き込み、必要なタイミングで当該情報を読み出す。
【０００４】
特開２０１０−１７６３８６号公報（特許文献１）には、停電等の外部電源からの電力供給が遮断される電断時における情報の破損を防止するために、書き込み前のデータ領域およびデータ値と、書き込み後のデータ領域およびデータ値とを二重に持つ技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１７６３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、電断後に再度ＰＬＣを起動させる際、電断前の状態に復帰することが好ましい。しかしながら、特開２０１０−１７６３８６号公報には、情報の破損を防止する技術が開示されているものの、電断前の状態に復帰するために用いられる電断時に保持すべき情報（以下、電断時保持情報という）を電断時に書き込むことについて開示されていない。そのため、再度ＰＬＣを起動させたときに、電断前の状態に安定して復帰することができないという問題が生じる。
【０００７】
そこで、電断時以外の通常時に使用される不揮発性メモリとは別に、電断時保持情報を記憶するための専用不揮発性メモリを設けるととともに、制御プログラムを実行するプロセッサとは別に、電断時保持情報を専用不揮発性メモリに格納するように構成された専用プロセッサを設けることが考えられる。しかしながら、この場合、専用不揮発性メモリおよび専用プロセッサの分だけ部品点数が多くなるという問題が生じる。
【０００８】
本発明は、部品点数の増大を抑制しつつ、電断が発生した後に電断前の状態に安定して復帰することができる制御装置、制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本技術のある局面に従う設備または機械を制御する制御装置は、揮発性記憶部と、不揮発性記憶部と、外部電源からの電力供給が遮断される電断時に電力を供給するための予備電源部と、電断時に保持すべき電断時保持情報を生成し、生成した電断時保持情報を揮発性記憶部に格納するための制御部とを備える。制御部は、不揮発性記憶部に対して対象情報の読み込みおよび書き込みを行なうためのファイルシステム部を含む。ファイルシステム部は、不揮発性記憶部に対して対象情報の読み込みおよび書き込みのいずれかの処理を行なっている場合に外部電源からの電力供給が遮断されたことを示す電断通知を受けたとき、不揮発性記憶部に対する当該処理を中止し、予備電源部から供給される電力を用いて、揮発性記憶部に格納された電断時保持情報を不揮発性記憶部に書き込む。
【００１０】
好ましくは、不揮発性記憶部は、第１の領域と第２の領域とを含む。ファイルシステム部は、電断通知を受けた場合、第１の領域に対象情報の読み込みおよび書き込みのいずれかの処理を行なっているときに当該処理を中止し、第２の領域に対象情報の読み込みおよび書き込みのいずれかの処理を行なっているときに当該処理を続けて行なう。
【００１１】
好ましくは、ファイルシステム部は、対象情報を複数の記録単位に分割し、不揮発性記憶部に対して記録単位で読み込みおよび書き込みを行なう。ファイルシステム部は、電断通知を受けたときの処理対象の記録単位についての処理が完了した後に、電断時保持情報を不揮発性記憶部に書き込む。
【００１２】
好ましくは、ファイルシステム部は、不揮発性記憶部に対して対象情報を書き込む場合には、当該対象情報に付属する付属情報を不揮発性記憶部に書き込む。ファイルシステム部は、不揮発性記憶部に対して対象情報の書き込みを行なっているときに電断通知を受けた場合には、当該対象情報に対応する付属情報を、電断通知を受けるまでに不揮発性記憶部に書き込んだ情報に応じて更新する。
【００１３】
本技術の別の局面に従う、設備または機械を制御する制御装置での制御方法は、電断時に保持すべき電断時保持情報を生成し、生成した電断時保持情報を揮発性記憶部に格納するステップと、不揮発性記憶部に対して対象情報の読み込みおよび書き込みのいずれかの処理を行なっている場合に外部電源からの電力供給が遮断されたことを示す電断通知を受けたとき、不揮発性記憶部に対する当該処理を中止し、予備電源部から供給される電力を用いて、揮発性記憶部に格納された電断時保持情報を不揮発性記憶部に書き込むステップとを備える。
【００１４】
本技術のさらに別の局面に従う、設備または機械を制御するための制御装置において実行されるプログラムは、電断時に保持すべき電断時保持情報を生成し、生成した電断時保持情報を揮発性記憶部に格納するステップと、不揮発性記憶部に対して対象情報の読み込みおよび書き込みのいずれかの処理を行なっている場合に外部電源からの電力供給が遮断されたことを示す電断通知を受けたとき、不揮発性記憶部に対する当該処理を中止し、予備電源部から供給される電力を用いて、揮発性記憶部に格納された電断時保持情報を不揮発性記憶部に書き込むステップとを、制御装置のプロセッサに実行させる。
【発明の効果】
【００１５】
本発明によれば、部品点数の増大を抑制しつつ、電断が発生した後に電断前の状態に安定して復帰することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に従うＰＬＣのハードウェア構成の一例を示す模式図である。
【図２】図１に示すＰＬＣにおいて実行されるソフトウェア構成の一例を示す模式図である。
【図３】図１に示すＰＬＣの主たる機能的構成の一例を示す模式図である。
【図４】図１に示すＰＬＣにおける電断時の処理手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１７】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１８】
＜ＰＬＣのハードウェア構成＞
図１は、本実施の形態に従うＰＬＣ１のハードウェア構成の一例を示す模式図である。ＰＬＣ１は、設備または機械の動作を制御するために用いられる制御装置である。図１に示すＰＬＣ１は、基本的には、汎用アーキテクチャに従うコンピューティングエレメントによって構成されており、汎用のパーソナルコンピュータに類似したハードウェア構成を有している。
【００１９】
図１を参照して、ＰＬＣ１は、プロセッサ１０と、システムコントローラ１２と、不揮発性メモリ１４と、メインメモリ１６と、ネットワークインターフェース（Interface：図中「Ｉ／Ｆ」と記す。）１８と、入出力インターフェース２０と、電源ユニット２４と、電断検知部２６と、予備電源部２８とを備える。
【００２０】
プロセッサ１０は、各種プログラムを実行する算術論理演算装置であり、典型的には、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）などを含み得る。プロセッサ１０は、システムコントローラ１２から内部クロックに従って順次供給される命令コードを解釈して実行する。プロセッサ１０は複数個が実装されていてもよく、あるいは、単一のプロセッサ１０内に複数の演算コアが実装されていてもよい。すなわち、いわゆるマルチプロセッサであってもよいし、マルチコアであってもよい。
【００２１】
システムコントローラ１２は、プロセッサ１０と周辺装置との間で内部的なデータを遣り取りするととともに、プロセッサ１０に必要な命令コードを生成する。さらに、システムコントローラ１２は、プロセッサ１０での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。システムコントローラ１２は、典型的には、ＬＳＩ（Large Scale Integration）などによって実装される。
【００２２】
メインメモリ１６は、たとえばＲＡＭ（Random Access Memory）などの揮発性記憶部であり、プロセッサ１０においてプログラムを実行するために必要なワークデータや外部との遣り取りによって取得されたデータなどを一時的に格納する。メインメモリ１６は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）といった揮発性の記憶装置によって実装される。
【００２３】
不揮発性メモリ１４は、プロセッサ１０によって実行されるプログラムやプロセッサ１０によるプログラムの実行により生成された情報を不揮発的に格納するストレージデバイス（不揮発性記憶部）である。
【００２４】
ネットワークインターフェース１８は、他の装置との間でデータを遣り取りするためのインターフェースであり、例えば、上位コンピュータまたは上位ネットワークに接続するためのポート、フィールドネットワークまたはフィールドバスを介して各種フィールド機器（設備、機械、センサなど）に接続するためのポート、他の制御装置との間でデータを遣り取りするためのポートなどを含み得る。ネットワークインターフェース１８は、任意の規格に従うデバイスを用いることができ、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ＥｔｈｅｒＣＡＴ（登録商標）などの有線方式、あるいは、無線ＬＡＮ（Local Area Network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線方式のいずれであってもよい。
【００２５】
入出力インターフェース２０は、入出力ユニットに相当するものであり、フィールド機器との間で、フィールド信号（デジタル入出力信号、アナログ入出力信号、パルス信号など）を遣り取りする。
【００２６】
メモリカードインターフェイス２２は、メモリカード３（例えば、ＳＤカード（登録商標）など）に対して情報の読み出しおよび書き込みを行なう。
【００２７】
電源ユニット２４は、外部電源２から供給される電力を所定の電圧に変換して各部へ供給する。電源ユニット２４は、典型的には、スイッチングレギュレータなどを含む。電源ユニット２４は、電源ボタンを含み、電源ボタンに対するユーザ操作に応じて、所定の電圧を各部へ供給するオン状態と、所定の電圧を各部に供給しないオフ状態とを切り替える。
【００２８】
電断検知部２６は、電源ユニット２４の動作状態を監視しており、電断開始タイミングを検知した場合に電断信号をシステムコントローラ１２に出力する。電断開始タイミングとは、外部電源２から電源ユニット２４を介して所定の電圧が各部に供給される状態から当該電圧が各部に供給されない状態に変化したタイミングである。電断開始タイミングには、電源ユニット２４に含まれる電源ボタンが操作されることによりオン状態からオフ状態に切り替えられたタイミング、および、停電等により外部電源２から電源ユニット２４への電力供給が遮断されたタイミングが含まれる。
【００２９】
予備電源部２８は、電断開始タイミングから所定の時間（たとえば、数１０ｍｓｅｃ〜数１００ｍｓｅｃ）だけ、所定の電圧を各部に供給する。予備電源部２８は、たとえばコンデンサなどの蓄電器によって構成され、電断開始タイミングより前に電源ユニット２４から供給される電力に基づいて充電し、電断開始タイミングから放電する。
【００３０】
＜ＰＬＣのソフトウェア構成＞
図２は、ＰＬＣ１において実行されるソフトウェア構成の一例を示す模式図である。図２を参照して、ＰＬＣ１において実行されるソフトウェアは、リアルタイムＯＳ（Operating System）１００と、ＰＬＣ制御プログラム１１０と、ユーザプログラム１２０との３階層となっている。
【００３１】
リアルタイムＯＳ１００は、コンピュータアーキテクチャに応じて設計されており、プロセッサ１０がＰＬＣ制御プログラム１１０およびユーザプログラム１２０を実行するための基本的な実行環境を提供する。
【００３２】
リアルタイムＯＳ１００は、不揮発性メモリ１４に対する情報の読み出しおよび書き込みの機能を提供するファイルシステム１０２を含む。
【００３３】
ＰＬＣ制御プログラム１１０は、リアルタイムＯＳ１００の上層で動作し、ユーザプログラム１２０へ必要な機能を提供するためのプラットフォームである。ＰＬＣ制御プログラム１１０は、周辺機器とのインターフェース制御機能などを実現する複数のサブシステムから構成される。
【００３４】
ＰＬＣ制御プログラム１１０に含まれるサブシステムとしては、たとえば、スケジューラプログラム、出力処理プログラム、入力処理プログラム、シーケンス命令演算プログラムおよびモーション演算プログラムなどが含まれる。
【００３５】
スケジューラプログラムは、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。
【００３６】
出力処理プログラムは、ユーザプログラム１２０の実行によって生成された出力データを、ネットワークインターフェース１８および／または入出力インターフェース２０へ転送するのに適した形式に再配置する。
【００３７】
入力処理プログラムは、ネットワークインターフェース１８および／または入出力インターフェース２０によって受信された入力データを、ユーザプログラム１２０が使用するのに適した形式に再配置する。
【００３８】
シーケンス命令演算プログラムは、ユーザプログラム１２０で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
【００３９】
モーション演算プログラムは、ユーザプログラム１２０による指示に従って実行され、設備または機械を駆動するためのモータドライバに対して出力する指令値を算出するプログラムである。
【００４０】
ユーザプログラム１２０は、ＰＬＣ制御プログラム１１０の上層で動作し、設備または機械を制御するためのプログラムである。
【００４１】
リアルタイムＯＳ１００およびＰＬＣ制御プログラム１１０は、ＰＬＣ１の製造段階で不揮発性メモリ１４に格納される。ただし、ユーザは、リアルタイムＯＳ１００およびＰＬＣ制御プログラム１１０が格納されたメモリカード３（図１参照）をＰＬＣ１に接続し、当該メモリカード３から不揮発性メモリ１４にリアルタイムＯＳ１００およびＰＬＣ制御プログラム１１０をインストールしてもよい。
【００４２】
ユーザプログラム１２０は、制御対象となる設備または機械に応じてユーザによって任意に設計され、ＰＬＣ１に実装される。
【００４３】
＜ＰＬＣの機能的構成＞
図３は、ＰＬＣ１の主たる機能的構成の一例を示す模式図である。図３を参照して、ＰＬＣ１は、プログラム実行部３２とファイルシステム部３４とを含む制御部３０を備える。
【００４４】
制御部３０は、制御対象となる設備または機械を制御する。制御部３０は、図１に示すプロセッサ１０が図２に示すソフトウェアを実行することにより実現される機能ブロックである。プログラム実行部３２は、プロセッサ１０が主に図２に示すＰＬＣ制御プログラム１１０およびユーザプログラム１２０を実行することにより実現される機能ブロックである。ファイルシステム部３４は、プロセッサ１０が図２に示すファイルシステム１０２を実行することにより実現される機能ブロックである。
【００４５】
制御部３０は、プログラム実行部３２における処理に用いられる各種の情報を、ワークメモリとして用いられるメインメモリ１６に随時格納する。
【００４６】
メインメモリ１６に格納される情報には、プログラム実行部３２の稼働中に継続的に保持すべき継時的保持情報４０と、電断後の起動の際に電断前の状態に復帰するために必要な、電断時に保持すべき電断時保持情報４２とが含まれる。
【００４７】
継時的保持情報４０には、たとえば、ユーザプログラム１２０本体、ＰＬＣ制御プログラム１１０本体、ＰＬＣ制御プログラム１１０のサブシステムのバイナリ情報、制御用設定情報、内部履歴情報を含む。
【００４８】
制御用設定情報は、ＰＬＣ制御プログラム１１０によって設定および参照される情報のうち、電断時に保持する必要がなく、任意のタイミングで保持しておけばよい情報である。制御用設定情報は、たとえば、ＰＬＣ制御プログラム１１０のサブシステムの初期化ファイルやネットワーク構成情報である。
【００４９】
内部履歴情報とは、ＰＬＣ制御プログラム１１０により設定および参照され、ＰＬＣ１の内部で発生したイベントを示す情報（ログ情報）である。不具合解析用の情報なども内部履歴情報に含まれる。
【００５０】
電断時保持情報４２には、たとえば、保持変数、制御用フラグが含まれる。保持変数は、ユーザプログラム１２０により設定および参照され、制御対象となる設備または機械の状態に関連するパラメータである。たとえば、ＰＬＣ１がロボットのアームの制御に使用されている場合、当該パラメータには、ロボットのアームの位置情報などが含まれる。メインメモリ１６に格納される保持変数は、制御対象の状態変化に応じて制御部３０により更新される。電断後にＰＬＣ１が起動したとき、保持変数は、ＰＬＣ１が電断直前の制御対象の状態を把握するために必要とされる。
【００５１】
制御用フラグは、ＰＬＣ制御プログラム１１０により設定および参照され、ユーザプログラム１２０の動作状態と連動して変化するフラグパラメータである。メインメモリ１６に格納される制御用フラグは、ユーザプログラム１２０の動作状態に応じて制御部３０により更新される。電断後にＰＬＣ１が起動したとき、制御用フラグは、ＰＬＣ制御プログラム１１０をユーザプログラム１２０の動作状態を電断直前の状態に復帰させるために必要とされる。
【００５２】
プログラム実行部３２は、ユーザプログラム１２０またはＰＬＣ制御プログラム１１０に従って、メインメモリ１６に格納された情報のうちの少なくとも一部を対象情報として、不揮発性メモリ１４に対する対象情報の読み出しおよび書き込みをファイルシステム部３４に指示する。
【００５３】
具体的には、プログラム実行部３２は、メインメモリ１６に格納された継時的保持情報４０のうち、不揮発性メモリ１４に書き込むべき情報を特定する。プログラム実行部３２は、特定した継時的保持情報４０の不揮発性メモリ１４への書き込み指示をファイルシステム部３４に出力する。
【００５４】
プログラム実行部３２は、電断検知部２６から電断信号を受けると、メインメモリ１６から電断時保持情報４２を読み出し、読み出した電断時保持情報４２の書き込み指示と電断通知とをファイルシステム部３４に出力する。
【００５５】
ファイルシステム部３４は、不揮発性メモリ１４のファイルシステム管理領域１４ａに対する情報の管理を行なう。具体的には、ファイルシステム部３４は、プログラム実行部３２からの指示に従って、指示された対象情報の不揮発性メモリ１４に対する読み出しおよび書き込みを行なう。ファイルシステム部３４は、指示された対象情報について順次処理を行なう。
【００５６】
ファイルシステム部３４は、対象情報に対応する書込信号を不揮発性メモリ１４に出力することにより、不揮発性メモリ１４に対象情報を書き込む。このとき、ファイルシステム部３４は、対象情報を複数の記録単位に分割し、記録単位ごとに不揮発性メモリ１４に対して読み出しまたは書き込みを行なう。記録単位は、予め定められたサイズを有している。
【００５７】
ファイルシステム部３４は、不揮発性メモリ１４への対象情報の書き込みに先立って、当該対象情報に付属する付属情報をヘッダーとして不揮発性メモリ１４に書き込む。付属情報には、対象情報が書き込まれるメモリ領域のアドレスなどが含まれる。
【００５８】
ファイルシステム部３４は、プログラム実行部３２から継時的保持情報４０または電断時保持情報４２の書き込み指示を受けた場合、当該指示に従って、不揮発性メモリ１４のファイルシステム管理領域１４ａに継時的保持情報４０または電断時保持情報４２を順次書き込む。
【００５９】
ただし、ファイルシステム部３４は、電断時保持情報４２の書き込み指示と電断通知とを受けた場合にその前に指示された継時的保持情報４０に対する処理（書き込みまたは読み出し）を行なっているときには、当該継時的保持情報４０に対する処理を中止し、電断時保持情報４２の書き込み処理を開始する。
【００６０】
電断通知を受ける場合、外部電源２から電源ユニット２４を介した電力供給が遮断され、予備電源部２８から電力がＰＬＣ１に供給される。予備電源部２８から電力が供給される時間（以下、予備電源保持期間という）は限られている。そのため、継時的保持情報４０の処理が完了してから電断時保持情報４２の書き込みを開始した場合、電断時保持情報４２の書き込みが完了する前に予備電源保持期間が終了する可能性がある。
【００６１】
しかしながら、ファイルシステム部３４は、電断通知を受けた場合、処理中の継時的保持情報４０よりも電断時保持情報４２を優先させて書き込みを行なう。また、通常想定される電断時保持情報４２の書き込みに要する時間よりも予備電源保持期間が長くなるように、予備電源部２８における蓄電可能量が設定される。これにより、電断時保持情報４２をより確実に不揮発性メモリ１４に書き込むことができる。
【００６２】
ファイルシステム部３４は、電断通知を受けたときに処理している対象情報の記録単位に対する処理を完了させた後、残りの記録単位のデータを破棄することにより、継時的保持情報４０に対する処理を中止すればよい。上述したように、ファイルシステム部３４は、記録単位ごとに処理を行なうように設計されている。そのため、電断通知を受けたときも記録単位の区切りで処理を中止することにより、ファイルシステム部３４に対して、記録単位の途中で処理を中止する設計を別途組み込む必要がなく、ファイルシステム部３４を容易に設計することができる。
【００６３】
また、ファイルシステム部３４は、電断通知を受けた場合に不揮発性メモリ１４への継時的保持情報４０の書き込みを中止したとき、不揮発性メモリ１４に既に書き込みが終了した情報に応じて付属情報を更新する。
【００６４】
＜電断時の処理手順＞
図４は、ＰＬＣ１における電断時の処理手順の一例を示すシーケンス図である。図４に示す例では、不揮発性メモリ１４に対して継時的保持情報４０を書き込んでいる最中（つまり、ファイルシステム部３４が継時的保持情報４０の書き込み信号を不揮発性メモリ１４に出力している最中）の時刻ｔ１に電断が生じたものとする。
【００６５】
時刻ｔ１において、電断検知部２６は、電断を検知し、電断信号を制御部３０に出力する。このとき、予備電源部２８は、電力の供給を開始する。電断信号を受けたプログラム実行部３２は、メインメモリ１６から電断時保持情報４２を読み出し、読み出した電断時保持情報４２と電断通知とをファイルシステム部３４に出力する。
【００６６】
電断通知を受けたファイルシステム部３４は、不揮発性メモリ１４に対する継時的保持情報４０の書き込みの中止処理を行なう。具体的には、ファイルシステム部３４は、電断通知を受けたときに書き込み中の記録単位の処理のみ継続して行ない、当該記録単位より後の記録単位のデータを破棄する。また、ファイルシステム部３４は、電断通知を受けたときに処理中の継時的保持情報４０に対応する付属情報を、処理済のデータに応じて更新する。
【００６７】
電断通知を受けたときに書き込み中の記録単位の処理が完了し、かつ、付属情報の更新が完了した時刻ｔ２から、ファイルシステム部３４は、電断時保持情報４２の書き込み信号を不揮発性メモリ１４に出力し、電断時保持情報４２の書き込みを開始する。その後、ファイルシステム部３４は、時刻ｔ３において、電断時保持情報４２の書き込みを完了する。ここで、上述したように、通常想定される電断時保持情報４２の書き込みに要する時間よりも予備電源保持期間が長くなるように、予備電源部２８における蓄電可能量が設定される。これにより、予備電源保持期間が終了する時刻ｔ４よりも前の時刻ｔ３に、ファイルシステム部３４は、電断時保持情報４２の書き込みを完了することができる。その結果、電断時保持情報４２をより確実に不揮発性メモリ１４に保存することができ、ＰＬＣ１は、電断後に起動したときに、電断前の状態に復帰することができる。
【００６８】
＜変形例＞
上記の説明では、ファイルシステム部３４は、電断通知を受けた場合に継時的保持情報４０の処理（読み出しまたは書き込み）を行なっているとき、常に当該処理を中止するものとした。しかしながら、ユーザプログラムの内容によっては、一部の継時的保持情報４０を電断時保持情報４２よりも優先させたい場合があり得る。
【００６９】
そこで、ファイルシステム部３４は、不揮発性メモリ１４のファイルシステム管理領域１４ａを第１の領域と第２の領域との二つの領域に分割してもよい。ファイルシステム部３４は、第１の領域に継時的保持情報４０を書き込んでいる最中に電断通知を受けた場合、上記説明と同様に、当該継時的保持情報４０の処理を中止する。
【００７０】
一方、ファイルシステム部３４は、第２の領域に継時的保持情報４０を書き込んでいる最中に電断通知を受けた場合、当該継時的保持情報４０の処理を中止することなく、当該継時的保持情報４０の書き込み処理を引き続き行なう。ファイルシステム部３４は、当該継時的保持情報４０の全ての書き込み処理が完了した後に、電断時保持情報４２の書き込みを開始する。この場合、電断時保持情報４２を不揮発性メモリに書き込むことができない場合があり得るが、電断時保持情報４２よりも優先される継時的保持情報４０を不揮発性メモリ１４に書き込むことができる。
【００７１】
なお、プログラム実行部３２は、継時的保持情報４０の書き込み指示をファイルシステム部３４に出力する場合、当該継時的保持情報４０の優先度に応じて、第１の領域および第２の領域のいずれに書き込むべきかを指定すればよい。
【００７２】
また、電断時保持情報４２には、少なくとも電断時に保持すべき情報が含まれていればよく、その他に必ずしも断電時に必要とされない情報（たとえば、内部履歴情報（ログ情報））が含まれていてもよい。
【００７３】
＜利点＞
以上のように、本実施の形態に従うＰＬＣ１の制御部３０は、電断時に保持すべき電断時保持情報４２を生成し、生成した電断時保持情報４２をメインメモリ１６に格納する。また、制御部３０は、不揮発性メモリ１４に対して対象情報の読み込みおよび書き込みを行なうためのファイルシステム部３４を含む。ファイルシステム部３４は、不揮発性メモリ１４に対して対象情報の読み込みおよび書き込みのいずれかの処理を行なっている場合に電断通知を受けたとき、当該処理を中止し、予備電源部２８から供給される電力を用いて、メインメモリ１６に格納された電断時保持情報４２を不揮発性メモリ１４に書き込む。
【００７４】
これにより、電断時保持情報４２をより確実に不揮発性メモリ１４に保存することができ、ＰＬＣ１は、電断後に起動したときに、電断前の状態に安定して復帰することができる。
【００７５】
また、電断時以外の通常時に使用される不揮発性メモリ１４（つまり、継時的保持情報４０が書き込まれる不揮発性メモリ１４）に対して電断時保持情報４２が書き込まれる。さらに、不揮発性メモリ１４に対して継時的保持情報４０の読み出しおよび書き込みを行なうファイルシステム部３４が電断時保持情報４２の書き込み処理を行なう。そのため、継時的保持情報４０のための不揮発性メモリおよびプロセッサと、電断時保持情報４２のための不揮発性メモリおよびプロセッサとを分ける必要がなく、部品点数の増大を抑制することができる。
【００７６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７７】
１  ＰＬＣ、２  外部電源、３  メモリカード、１０  プロセッサ、１２  システムコントローラ、１４  不揮発性メモリ、１６  メインメモリ、１８  ネットワークインターフェース、２０  入出力インターフェース、２２  メモリカードインターフェイス、２４  電源ユニット、２６  電断検知部、２８  予備電源部、３０  制御部、３２  プログラム実行部、３４  ファイルシステム部。
【図１】
2018055583.tif 000003
【図２】
2018055583.tif 000004
【図３】
2018055583.tif 000005
【図４】
2018055583.tif 000006