(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムを格納するプログラム記憶手段と、
前記アプリケーションプログラムにより宣言される各変数を記憶する変数記憶手段と、
前記アプリケーションプログラムが更新されたものであるか否かを記憶する更新状態記憶手段と、
プログラマブルコントローラに異常があったか否かを記憶する動作状態記憶手段と、
プログラマブルコントローラにおける前回の電源遮断処理が正常に行われたか否かを記憶する電源遮断記憶手段と、
前記アプリケーションプログラムの起動時に、前記更新状態記憶手段、前記動作状態記憶手段、前記電源遮断記憶手段の記憶内容に応じて、前記変数記憶手段に記憶されている変数の初期化方法としてWarm Start／Cold Startのいずれか一方の起動方法を選択し、該選択した起動方法によって前記起動を行う起動処理手段と、
を有することを特徴とするプログラマブルコントローラ。
【請求項２】
電源遮断記憶手段には前記前回の電源遮断処理が正常に行われたか否かを示す遮断状態フラグが記憶されており、
電源低下の割込通知を受けると、プログラマブルコントローラが正常か否か及び前記アプリケーションプログラムが実行中であるか否かを判定し、プログラマブルコントローラが正常で且つ前記アプリケーションプログラムが実行中ではない場合に、前記遮断状態フラグをＯＮする電源遮断処理手段を更に備え、
前記起動処理手段は、電源再投入時に、前記遮断状態フラグを参照して、Warm startかCold startかを選択・実行することを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
前記各変数は、リテイン指定または非リテイン指定されており、
前記起動処理手段は、前記非リテイン指定された変数を初期化する前記Warm startか、前記リテイン指定及び非リテイン指定の両方の変数を初期化する前記Cold startかの、いずれかの初期化方法を決定することを特徴とする請求項１又は２記載のプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブルコントローラ、及びその起動方法に関する。
【０００２】
【従来の技術】
従来、プログラマブル・コントローラ（以下、ＰＣと略す）において、ＰＣの言語規格であるＩＥＣ１１３１−３に準拠して、アプリケーションプログラムの起動時のメモリ初期化方法として Cold start （コールド再始動）及び Warm   start （ウォーム再始動）をサポートするＰＣシステムが存在する。
【０００３】
Cold startが選択された場合は、リテイン（RETAIN）指定された変数（保持変数）、非リテイン指定の変数の両方とも初期化（クリアおよび初期値の設定）して起動する。Warm startが選択された場合は、非リテイン指定された変数のみを初期化して起動する。
【０００４】
【発明が解決しようとする課題】
上述した従来のＩＥＣ１１３１−３に準拠したＰＣにおけるアプリケーションプログラムの起動時のメモリ初期化方法では、Cold startにするか Warm startにするかを人間が判断して選択／指示しなければならなかった為、人的負担がかかるものであり、また判断ミス等も起こり得る為に信頼性に欠けるものであった。
【０００５】
本発明の課題は、最適な再起動方法をＰＣ自身が判断して行うことができるようにするプログラマブルコントローラ、及びその起動方法を提供することである。
【０００６】
【課題を解決するための手段】
本発明による第１のプログラマブルコントローラは、アプリケーションプログラムを格納するプログラム記憶手段と、前記アプリケーションプログラムにより宣言される各変数を記憶する変数記憶手段と、前記アプリケーションプログラムが更新されたものであるか否かを記憶する更新状態記憶手段と、前記アプリケーションプログラムの起動時に、前記更新状態記憶手段の記憶内容に応じて前記変数記憶手段に記憶されている変数の初期化方法を決定して前記起動を行う起動処理手段と、を有する。
【０００７】
本発明による第２のプログラマブルコントローラは、アプリケーションプログラムにより宣言される各変数を記憶する変数記憶手段と、プログラマブルコントローラに異常があったか否かを記憶する動作状態記憶手段と、前記アプリケーションプログラムの起動時に、前記動作状態記憶手段の記憶内容に応じて前記変数記憶手段に記憶されている変数の初期化方法を決定して前記起動を行う起動処理手段と、を有する。
【０００８】
本発明による第３のプログラマブルコントローラは、アプリケーションプログラムにより宣言される各変数を記憶する変数記憶手段と、プログラマブルコントローラにおける前回の電源遮断処理が正常に行われたか否かを記憶する電源遮断記憶手段と、前記アプリケーションプログラムの起動時に、前記電源遮断記憶手段の記憶内容に応じて前記変数記憶手段に記憶されている変数の初期化方法を決定して前記起動を行う起動処理手段と、を有する。
【０００９】
上記第１または第２あるいは第３のプログラマブルコントローラにおいて、前記各変数に対する宣言は、リテイン指定または非リテイン指定であり、前記起動処理手段は、前記非リテイン指定された変数を初期化するか、前記リテイン指定及び非リテイン指定の両方の変数を初期化するかの、いずれかの初期化方法を決定する。
【００１０】
上記第１または第２あるいは第３のプログラマブルコントローラによれば、アプリケーションプログラムの起動時に、その起動前におけるアプリケーションプログラムの更新状況またはＰＣの動作異常状況あるいは電源遮断等の状況を示すものを格納しておく各手段（更新状態記憶手段、動作状態記憶手段、電源遮断記憶手段）を参照することで、変数記憶手段に格納されている変数の有効／無効を判断することにより、自動的に最適な起動方法を判定してアプリケーションプログラムの起動処理を行うことができるようになる。
【００１１】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について説明する。
【００１２】
図１は、本実施形態に係わるＰＣの構成とシステム全体を示す図である。
【００１３】
同図に示すＰＣ１０は、電源ユニット１１、プロセッサユニット１２、及びその他のユニット（外部入出力装置等）１３ａ、１３ｂ、１３ｃ等より構成される。
【００１４】
各ユニット１１〜１３ｃは、共通のシステムバス１４に接続されている。システムバス１４は、各ユニット１１〜１３ｃ間で相互にデータ転送を行う為の信号線１４ａと、電源ユニット１１からプロセッサユニット１２及びその他のユニット１３ａ、１３ｂ、１３ｃに電源を供給する為の電源線より成る。
【００１５】
更に、プロセッサユニット１２は、接続ケーブル１５により、プログラミング・ツール２０に接続されている。プログラミング・ツール２０は、オペレータ等がアプリケーションプログラムの作成を行い、これをＰＣ１０側に転送／格納させたり、ＰＣ１０側に指示（アプリケーションプログラムの実行開始・停止の指示等）を与える機能等を有する情報処理装置である。尚、アプリケーションプログラムは、ニーモニック言語、ラダー図、ファンクションブロック図等のＰＣのプログラム言語により記述されたものである。
【００１６】
図２は、上記プロセッサユニット１２の構成の一例を示すブロック図である。
【００１７】
同図に示すプロセッサユニット３０（１２）は、ＣＰＵ３１、更新状態記憶部３２、動作状態記憶部３３、電源遮断記憶部３４、アプリケーションプログラムメモリ３５、変数メモリ３６、システムバスＩ／Ｆ（インタフェース）３７、電源電圧検出装置３８、及び外部Ｉ／Ｆ（インタフェース）３９より構成される。
【００１８】
ＣＰＵ３１は、当該プロセッサユニット３０全体を制御する中央処理装置である。アプリケーションプログラムメモリ３５には上記プログラミング・ツール２０側で作成され転送されてきたアプリケーションプログラムが格納され、変数メモリ３６にはこのアプリケーションプログラムによって宣言される変数データが格納される。また、変数メモリ３６には、後述する電源遮断時にもその記憶内容を保持することを可能にするバックアップ機能が備えられている。システムバスＩ／Ｆ３７は、信号線１４ｂを介して他のユニットとデータ送受信する為のインタフェース部であり、外部Ｉ／Ｆ３９は、接続ケーブル１５を介してプログラミング・ツール２０とデータ送受信する為のインタフェース部である。
【００１９】
更新状態記憶部３２、動作状態記憶部３３、及び電源遮断記憶部３４と電源電圧検出装置３８については、以下、図３、図４、図５をそれぞれ参照しながら、詳細に説明する。
【００２０】
まず、更新状態記憶部３２について、図３を参照しながら説明する。
【００２１】
更新状態記憶部３２には、アプリケーションプログラムの更新が行われたか否かを示す“更新状態フラグ”が格納される。この“更新状態フラグ”は、アプリケーションプログラムが更新されたときフラグ・セット（ＯＮ）される（尚、後述するアプリケーションの起動処理が行われるとリセットされる）。すなわち、例えば、ＣＰＵ３１は、外部Ｉ／Ｆ３９を介してプログラミング・ツール２０からデータ受信する際、図３に示す受信処理により必要に応じてフラグ・セットを行う。
【００２２】
図３は、受信処理の一例を示す図である。
【００２３】
同図において、ＣＰＵ３１は、外部Ｉ／Ｆ３９を介してプログラミング・ツール２０からデータ受信すると、受信データの解析を行う（ステップＳ１）。そして、受信データが起動指令である場合には（ステップＳ２、ＹＥＳ）、起動処理を行う（ステップＳ３）。起動処理については、後に図６を参照して説明する。
【００２４】
受信データがアプリケーションプログラムであり、プログラムの更新を行う必要がある場合には（ステップＳ４、ＹＥＳ）、受信データ（アプリケーションプログラム）を上記アプリケーションプログラムメモリ３５に格納／更新する（ステップＳ５）。そして、更新状態記憶部３２の“更新状態フラグ”をセット（ＯＮ）する（ステップＳ６）。尚、受信データが起動指令でもアプリケーションプログラムでもない場合は、その受信データの内容に応じた何等かの処理を行うが、これについては特に図示／説明はしない。
【００２５】
上述したように、アプリケーションプログラムが変更（更新）された場合は、次に起動処理が行われる際には変数メモリ３６に格納されている変数データは無効であると見做されるので（変更前のアプリケーションプログラムにおいて定義された変数であるので）、“更新状態フラグ”をセットしておくことにより、後述する図６の起動処理時には自動的にCold Startが選択／実行されるようになる。詳しくは、後に図６を参照して説明する。
【００２６】
次に、動作状態記憶部３３について説明する。
【００２７】
動作状態記憶部３３には、当該ＰＣの動作に何等かの異常があったか否かを示す“動作状態フラグ”が格納される。この“動作状態フラグ”は、例えば図４に示す自己診断処理により、当該ＰＣの動作状態の異常が検出されたときフラグ・セット（ＯＮ）される（尚、後述するアプリケーションの起動処理が行われるとリセットされる）。
【００２８】
図４は、自己診断処理の一例を示す図である。
【００２９】
自己診断処理は、例えば予め設定される特定のタイミングで実行される。例えば、あるアプリケーションプログラムの実行中に行ってもよいし、実行前／実行完了後に行ってもよい。
【００３０】
図４において、プロセッサユニット３０（１２）は、上記特定のタイミングにおいて、まず、当該ＰＣの動作状態が正常であるか、あるいは異常であるかを診断／判定する（ステップＳ１１）。この正常／異常判定処理は、従来より知られている方法を用いればよいので、ここでは特に説明しないが、本実施形態の自己診断処理では、当該ＰＣに異常が発生したと判定した場合には（ステップＳ１１、ＮＯ）、動作状態記憶部３３の“動作状態フラグ”をセット（ＯＮ）する（ステップＳ１２）。
【００３１】
そして、更に、アプリケーションプログラム実行中である場合（ステップＳ１３、ＹＥＳ）、換言すれば当該自己診断処理をアプリケーションプログラム実行中に行っていた場合、このアプリケーションプログラムの実行を停止する（ステップＳ１４）。
【００３２】
上述したように、ＰＣにおいて何等かの異常が発生していた場合には、“動作状態フラグ”をセットしておくことにより、後述する図６の起動処理時には自動的にCold Startが選択／実行されるようになる。詳しくは、後に図６を参照して説明する。尚、特に図示／説明しないが、当然、異常発生検出後には、異常に対する対応処理を行い、異常要因を取り除いた後に起動処理を行う。
【００３３】
次に、電源遮断記憶部３４と電源電圧検出装置３８について説明する。
【００３４】
電源電圧検出装置３８は、電源ユニット１１からシステムバス１４（電源線１４ａ）を介して当該プロセッサユニット３０に供給される電源電圧を監視し、電源遮断等により電源電圧が降下したことを検出すると、ＣＰＵ３１に対してこの電圧低下を割込みによって知らせる。この割込み通知は、電圧低下によってプロセッサユニット３０が動作不能となる前に行われるようになっている。
【００３５】
動作電源遮断記憶部３４には、電源遮断時におけるプロセッサユニット３０の状態（電源遮断が正常に行われたか否か）を示す“遮断状態フラグ”が格納されている。
【００３６】
上記電圧低下の割込通知を受けた時のＣＰＵ３１による処理について、図５を参照して説明する。
【００３７】
図５は、電源遮断時における処理を説明する為のフローチャート図であり、同図（ａ）は上記電圧低下割込処理、同図（ｂ）は電源遮断後の立ち上げ時の初期化処理を示す。
【００３８】
まず、図５（ａ）を参照して説明する。
【００３９】
ＣＰＵ３１は、上記電圧低下の割込通知を受けると、まず、当該ＰＣが正常状態であるか否かを判別する（ステップＳ２１）。ＰＣが正常状態である場合には（ステップＳ２１、ＹＥＳ）、更にアプリケーションプログラムが実行中であるか否かを判定する（ステップＳ２２）。そして、ＰＣが正常状態であり（ステップＳ２１、ＹＥＳ）、且つアプリケーションプログラムは実行中ではない（ステップＳ２２、ＮＯ）場合に限り、“遮断状態フラグ”をセット（ＯＮ）する（ステップＳ２３）。その後、上記電源遮断等による電圧低下によってプロセッサユニット３０は動作不能となる。
【００４０】
そして、再び、電源が投入されたとき、図５（ｂ）に示す初期化処理が行われる。尚、同図には、初期化処理の全てを示してはいない。
【００４１】
同図に示すように、まず、動作電源遮断記憶部３４に格納されている“遮断状態フラグ”の状態を調べ、ＦＬＡＧ  ＯＮ状態であった場合には（ステップＳ３１、ＹＥＳ）、上記動作状態記憶部３３に格納されている“動作状態フラグ”をリセット（ＯＦＦ）する（ステップＳ３３）。一方、“遮断状態フラグ”の状態が、ＦＬＡＧ  ＯＦＦ状態であった場合には（ステップＳ３１、ＮＯ）、上記動作状態記憶部３３に格納されている“動作状態フラグ”をセット（ＯＮ）する（ステップＳ３２）。
【００４２】
これらの処理は、換言すれば、当該ＰＣが電源遮断時に正常状態であり且つ実行中のアプリケーションプログラムが無かった場合、すなわち正常に電源遮断が行われた場合のみ、後述するアプリケーションプログラムの起動時の処理においてWarm Startが選択されるようにしておくものである。
【００４３】
そして、ステップＳ３２、Ｓ３３のいずれの処理を行った場合にも、最後は“遮断状態フラグ”をリセット（ＯＦＦ）する（ステップＳ３４）。
【００４４】
上記のように、電源遮断等が起こった場合でも、“遮断状態フラグ”の状態を参照することにより、電源遮断前に当該ＰＣがどのような状態であったのかを的確に把握することができる。更に、特に、上記図４の自己診断処理が、ソフトウェアのハングアップ等により正常に動作できなかった場合や、上記電圧低下の割込通知が受け付けられない様な場合（ハードウェアの異常等で）においても、結果的に“遮断状態フラグ”がＦＬＡＧ  ＯＦＦ状態となるようになっているので、上記のような図４や図５に示す処理自体に係わる異常があったとしても、アプリケーションプログラムの起動時に、異常があったことを認識することができる。
【００４５】
本実施形態のＰＣでは、新規のアプリケーションプログラムの受信時、自己診断処理、または電源遮断／電源再投入時等に、上述した各処理を行うことで、アプリケーションプログラムの起動時には図６に示すように自動的に最適な起動方法（変数メモリの初期化方法）を判断して起動処理が行えるようになる。
【００４６】
図６は、アプリケーションプログラムの起動処理の一例を示すフローチャート図である。
【００４７】
同図に示す本実施形態によるアプリケーションプログラムの起動処理では、まず、更新状態記憶部３２、動作状態記憶部３３に格納されているフラグの状態を参照し、このフラグ状態に応じて自動的に最適な起動方法を選択する。すなわち、“更新状態フラグ”、“動作状態フラグ”が共にＦＬＡＧ  ＯＦＦ状態である場合には（ステップＳ４１、Ｓ４２，ＮＯ）、アプリケーションプログラムの更新はなく、当該ＰＣは正常状態であったということであるので、変数メモリ３６に格納されている変数は有効であると見做し、非リテイン変数のみ初期化して、当該アプリケーションプログラムの実行を開始する（ステップＳ４３）。すなわち、Warm Startを選択／実行する。
【００４８】
一方、“更新状態フラグ”、“動作状態フラグ”の少なくともいずれか一方がＦＬＡＧ  ＯＮ状態である場合には（ステップＳ４１、ＹＥＳ又は／及びステップＳ４２、ＹＥＳ）、非リテイン変数、リテイン変数の両方とも初期化して、当該アプリケーションプログラムの実行を開始する（ステップＳ４４）。すなわち、Cold Startを選択／実行する。そして、“更新状態フラグ”、“動作状態フラグ”はリセット（ＯＦＦ）する（ステップＳ４５）。
【００４９】
上述したように、アプリケーションプログラムの更新、ＰＣの異常発生、電源遮断等の状況を示すもの（フラグ）を参照することで、変数メモリ３６に格納されている変数の有効性を判断して、起動方法をWarm StartにするかCold Startにするかを自動的に判断して実行することができるようになる。
【００５０】
【発明の効果】
以上、詳細に説明したように、本発明のプログラマブルコントローラ、及びその起動方法によれば、変数メモリに格納されている変数の有効／無効を判断して、起動方法をWarm StartにするかCold Startにするかを自動的に判断して実行することができるので、人手を煩わすことなく、信頼性の高い起動処理を行えるプログラマブルコントローラを提供できる。
【図面の簡単な説明】
【図１】本実施形態に係わるＰＣの構成とシステム全体を示す図である。
【図２】図１に示すプロセッサユニットの構成の一例を示すブロック図である。
【図３】受信処理の一例を示すフローチャート図である。
【図４】自己診断処理の一例を示すフローチャート図である。
【図５】電源遮断時における処理を説明する為のフローチャート図であり、（ａ）は電圧低下割込処理、（ｂ）は電源遮断後の立ち上げ時の初期化処理を示す。
【図６】アプリケーションプログラムの起動処理の一例を示すフローチャート図である。
【符号の説明】
１０  プログラマブルコントローラ（ＰＣ）
１１  電源ユニット
１２  プロセッサユニット
１３  その他のユニット
１４  システムバス
１４ａ  電源線
１４ｂ  信号線
１５  接続ケーブル
２０  プログラミングツール
３０  プロセッサユニット
３１  ＣＰＵ
３２  更新状態記憶部
３３  動作状態記憶部
３４  電源遮断記憶部
３５  アプリケーションプログラムメモリ
３６  変数メモリ
３７  システムバスＩ／Ｆ
３８  電源電圧検出装置
３９  外部Ｉ／Ｆ
【図１】
0003785844.tif 000002
【図２】
0003785844.tif 000003
【図３】
0003785844.tif 000004
【図４】
0003785844.tif 000005
【図５】
0003785844.tif 000006
【図６】
0003785844.tif 000007