JP2006260607A - プログラマブルコントローラおよびcpuユニットおよび二重化運転開始方法 - Google Patents

プログラマブルコントローラおよびcpuユニットおよび二重化運転開始方法 Download PDF

Info

Publication number
JP2006260607A
JP2006260607A JP2006183350A JP2006183350A JP2006260607A JP 2006260607 A JP2006260607 A JP 2006260607A JP 2006183350 A JP2006183350 A JP 2006183350A JP 2006183350 A JP2006183350 A JP 2006183350A JP 2006260607 A JP2006260607 A JP 2006260607A
Authority
JP
Japan
Prior art keywords
cpu unit
unit
cpu
user program
version information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006183350A
Other languages
English (en)
Inventor
Hideo Oketa
英男 桶田
Eisuke Nagano
英輔 永野
Eiji Nakanishi
英治 中西
Kenichiro Tomita
賢一郎 富田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2006183350A priority Critical patent/JP2006260607A/ja
Publication of JP2006260607A publication Critical patent/JP2006260607A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Safety Devices In Control Systems (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】 正常な二重化運転が可能な状態で実行系と待機系のCPUユニットを稼動させることができるプログラマブルコントローラを提供すること
【解決手段】 実行系の第1CPUユニット22と、待機系の第2CPUユニット22′を備え、両CPUユニットは、機器自体の機能性を示すCPUバージョンと、格納されたユーザプログラムの機能性を示す機能バージョンを記憶保持している。二重化運転開始に先立ち、第1CPUユニットは、第2CPUユニットのユニットバージョンを取得し、自己が記憶保持する機能バージョンを比較し、ユニットバージョンが機能バージョン以上である場合に二重化運転可能と判断する。実行可能と判断した場合に、第1CPUユニットは、自己が保持するユーザプログラムを、機能バージョンとともに第2CPUユニットにコピーし、二重化運転を開始するように構成した。
【選択図】 図7

Description

この発明は、プログラマブルコントローラおよびCPUユニットおよび二重化運転開始方法に関するものである。
生産工場(製造現場)に設置されるファクトリーオートメーション(FA)の制御装置として、プログラマブルコントローラ(PLC)が用いられている。このPLCは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット,PLC全体の制御を統率するCPUユニット,FAの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット,アクチュエータなどに制御出力を出す出力ユニット,通信ネットワークに接続するための通信ユニットなどの各種のユニットを適宜組み合わせて構成される。
PLCのCPUユニットにおける制御は、入力ユニットで入力した信号をCPUユニットのI/Oメモリに取り込み(INリフレッシュ)、予め登録されたユーザプログラム記述言語(例えばラダー言語)で組まれたユーザプログラムに基づき論理演算をし(演算実行)、その演算実行結果をI/Oメモリに書き込んで出力ユニットに送り出し(OUTリフレッシュ)、その後、通信ユニットを介して通信ネットワーク上の他のPLCとデータ送受信を行ったり、CPUユニットに備えられた通信ポートを介して外部の機器とデータ送受信などを行ったりする(周辺処理)ことをサイクリックに繰り返し処理するようになる。なお、INリフレッシュとOUTリフレッシュと一括して行なう(I/Oリフレッシュ)場合もある。
ところで、システムの安全性,信頼性を向上するため、PLCを構成する各ユニットを二重化することが行われる。例えば、本発明が対象とするCPUユニットを二重化する場合、CPUユニットを2個設けるとともに、それら2つのCPUユニットをCPU間バスにより接続する。そして、それら2個のCPUユニットは、基本的に同一の機能を持ったものであり、同じユーザプログラムを実行する。
そして、2台のCPUユニットのうち、一方が実行系のCPUユニットとなって、実際にサイクリックな処理を行い、メモリに対して読み書きを行なったり、外部のI/O機器等との間で制御データ(I/Oデータ)の送受を行い、FAネットワークシステムの制御を司る。また、他方のCPUユニットは待機系のCPUユニットとなり、待機中は、実行系のユーザプログラムと同一のユーザプログラムを実行するものの、演算実行結果を出力することはない。そして、実行系のCPUユニットから処理結果等を受信し、待機系のCPUユニットのメモリの内容の更新を行う。これにより、待機系のCPUユニットと実行系のCPUユニットのメモリの内容の同一性が確保される。
そして、実行系のCPUユニットが故障した場合には、待機系のCPUユニットが実行系のCPUユニットに切り替わって実際の制御等の動作を行う。従って、CPUユニットに故障が発生しても、すぐにシステムが停止することなく、継続して運転できるので信頼性が向上する。
一方、CPUユニットで実行するユーザプログラムは、PLCに接続されたサポートツールを介してダウンロードされ、PLC(CPUユニット)のユーザメモリに格納される。また、PLCに格納されているユーザプログラムを修正等する場合には、サポートツールをPLCに接続するとともに、PLCに格納されているユーザプログラムをアップロードし、必要な修正をした後、修正後の新ユーザプログラムをPLCに再度ダウンロードすることが行われる。なお、サポートツールは、パーソナルコンピュータ或いは専用の周辺機器などにより実現される。
さらに、CPUユニットの二重化を図った場合、各CPUユニットに対して同一のユーザプログラムを実装する必要があるが、例えば、サポートツールから各CPUユニットに対してそれぞれユーザプログラムをダウンロードするようにすると、ユーザはダウンロード処理を2回行う必要があり煩雑である。そこで、サポートツールからは実行系側のCPUユニットに対してユーザプログラムをダウンロードし、CPUユニットが持つコピー機能により実行系側のCPUユニットは、上記ダウンロードされたユーザプログラムを待機系側のCPUユニットにコピーするようにしたものがある。
ところで、PLCは、生産方式の高度化,多様化並び技術の進歩に伴って新規の機能が付加された新機種の開発や仕様の改善、さらには、搭載ソフトウェアの機能強化などの各種のバージョンアップがされる。このバージョンアップは、処理速度の向上,機能追加などが行われるが、基本的に従来機種との互換性を持ち、旧バージョンのPLCの機能は新バージョンのPLCに継承される。したがって、旧バージョンのPLCで使用していたユーザプログラムは、そのまま新バージョンのPLCに実装することが可能となる。
また、このように機能の向上等に伴うバージョンアップの場合、形式はそのままでバージョンのみ変更することが良く行われる。そのため、バージョンが異なるものの形式が同じCPUユニットが存在するため、二重化のために実装した2つのCPUユニット(形式は一致)のバージョンが異なることが有り得る。
また、サポートツールは各PLC(CPUユニット)に対応するもので、PLCがバージョンアップされると、それに合わせてサポートツールもバージョンアップされる。すなわち、新バージョンのPLCにおいて機能拡張された場合、旧バージョンのサポートツールでは拡張された機能に対応できず、その拡張された機能をサポートするためには、それに対応したサポートツールが必要となる。もちろん、サポートツールも従来のサポートツールの機能を継承するように設計されるので、バージョンアップされたサポートツールは、旧バージョンのPLCに接続し、ユーザプログラムのダウンロードや作成・修正等が行えるようになっている。
このように、新バージョンのサポートツールは、新旧いずれのバージョンのPLCとの接続性を保証し、旧バージョンのサポートツールは旧バージョンのPLCとの接続のみ保証する。そして、旧バージョンのサポートツールが新バージョンのPLCに接続して所定のサポート処理(ユーザプログラムの追加・更新等)をすることがないように、サポートツールをPLCに接続した際に、両者間の通信でPLCの機種情報(例えば、形式とバージョンとで構成される)をサポートツールが読み出し、サポートツールは自己が保有する対応可能なPLC機種情報と照合し接続保証できるか否かを判断するようにしている。つまり、PLCとサポートツールをシリアル通信などの通信回線を介して接続し、PLCに対してPLC機種情報を取得する通信コマンドをサポートツールからPLCに発行し、その通信コマンドを受けたPLCは自己のPLC機種情報をレスポンスとして返信する。サポートツールは、自己が接続可能なPLC機種情報の一覧を記憶保持しているため、そのレスポンスを受けたサポートツールは、記憶保持した上記一覧のデータとレスポンスとして取得した現在接続しているPLCのPLC機種情報との照合を図り、接続可能か否かの判断をする。なお、係る機種確認についての技術としては例えば特許文献1に開示されている。
特開平10−97310号公報
上記した特許文献1に開示されたサポートツールを用いると、実行系のCPUユニットにユーザプログラムをタウンロードするに際し、サポートツールが機種確認をすることにより接続可能か否かの判断をするため、実行系のCPUユニットに対してはそのCPUユニットで実行可能な正しいバージョンのユーザプログラムをダウンロードすることができる。しかし、実行系側のCPUユニットから待機系側のCPUユニットにユーザプログラムをコピーする際には、サポートツールによるバージョンのチェック実行することができない。その結果、仮に実行系側のCPUユニットが新バージョンで、待機系側のCPUユニットが旧バージョンの場合には、ユーザプログラムのコピーはできるものの、待機系側のCPUユニットはユーザプログラムを順次実行し、自己が実行できない回路に至ると、停止、或いは異常な動作を行ってしまう。そのため、少なくとも待機系側の旧バージョンのCPUユニットが実行系側に切り替わると、PLCが停止することになってしまう。
一方、バージョンアップする都度形式も変えるようにすれば、同じ形式のCPUユニットを用いることにより、上記した停止の問題は生じない。しかし、バージョンアップするごとに形式が増えるため、製造メーカ並びにユーザの形式管理が煩雑となり、実用的でない。
この発明は、正常な二重化運転が可能な状態で実行系と待機系のCPUユニットを稼動させることができるプログラマブルコントローラおよびCPUユニットおよび二重化運転開始方法を提供することを目的とする。
本発明に係るプログラマブルコントローラは、2つのCPUユニットを備え、前記2つのCPUユニットは、相手の状態を確認可能とし、一方が実行系となるとともに他方が待機系となり、前記実行系のCPUユニットがダウンした場合には、前記待機系のCPUユニットが実行系に切り替わって運転を継続するプログラマブルコントローラにおいて、前記CPUユニットは、機器自体の機能性を示すユニットバージョン情報を記憶保持するとともに、格納されたユーザプログラムに基づくユーザプログラムバージョン情報を有し、前記待機系のCPUユニットのユニットバージョン情報と、前記実行系のCPUユニットが有する前記ユーザプログラムバージョン情報に基づき、前記実行系のCPUユニットが記憶保持するユーザプログラムを前記待機系のCPUユニットが実行可能か否かを判断する判断手段と、その判断手段が実行可能と判断した場合にのみ二重化運転を開始する手段を備えて構成した。
ここでユニットバージョン情報は、CPUユニットが備えている機能の範囲を表すものであればよい。例えば、CPUユニットが備えている機能の名称のリスト情報でも良いし、機能名称のリストに対応させた数値情報でも良い。また、ユーザプログラムバージョン情報は、当該ユーザプログラムを実行するためにCPUユニットが備えるべき機能の範囲を表すものであればよい。例えば、機能の名称のリスト情報でもよいし、機能名称のリストに対応させた数値情報でもよい。
なお、判断手段は、実施の形態では実行系のCPUユニットに実装したが、どちらのCPUユニットに備えても良いし,CPUユニット以外の他のユニットに備えても良い。さらに、CPUユニットに実装する場合は、二重化運転中に実行系のCPUユニットがダウンすると待機系のCPUユニットは実行系に切り替わるため、その後にダウンしたCPUユニットを復帰させて二重化運転を開始しようとした際には、当初待機系であったものが実行系になるため、好ましくは両方のCPUユニットに判断手段を実装することである。また、一方のCPUユニットに実装した場合には、実行系か待機系かに関係なく、その一方のCPUユニットが他方のCPUユニットから必要なバージョン情報(ユニットバージョン情報またはユーザプログラムバージョン情報)を取得し判断するようになる。
また、前記実行系のCPUユニットは、前記待機系のCPUユニットからその待機系のCPUユニットが持つユニットバージョン情報を取得する取得機能と、その取得した前記待機系のCPUユニットのユニットバージョン情報と、自己が有する前記ユーザプログラムバージョン情報を比較し、自己が記憶保持するユーザプログラムを前記待機系のCPUユニットが実行可能か否かを判断する判断機能を備え、前記取得機能および前記判断機能により、前記判断手段を構成することができる。
さらに、前記実行系のCPUユニットは、前記二重化運転を開始するに際し、前記実行系のCPUユニットが保持するユーザプログラムを、ユーザプログラムバージョン情報とともに前記待機系のCPUユニットにコピーする機能を備えるとよい。
上記した各発明によれば、二重化運転しようとするCPUユニットのユニットバージョン情報が異なる場合でも、待機系のCPUユニットのユニットバージョン情報と実行系のCPUユニットで実行するユーザプログラムに基づくユーザプログラムバージョン情報から、待機系のCPUユニットが係るユーザプログラムを実行可能か否かを判断できる。よって、適宜のタイミング(例えば二重化運転開始時等)でチェックをすることにより、確実に二重化対応が可能な場合のみ二重化運転を開始できる。つまり、実行系のCPUユニットが実行しているユーザプログラムを実行できない待機系のCPUユニットが、そのまま稼動し、見かけ上、二重化運転を実行し、実行系のCPUユニットがダウンすると待機系のCPUユニットが実行系に切り替わり、停止するおそれを未然に防止できる。
また、前記ユーザプログラムバージョン情報並びに前記ユニットバージョン情報は、数値データで構成するとよい。このようにすると、バージョンの新旧を容易に判定できる。
前記ユーザプログラムバージョン情報は、例えば、前記ユーザプログラムの機能性を示す機能バージョン情報とすることができる。また、前記ユーザプログラムバージョン情報は、少なくとも前記ユーザプログラムの機能性を示す機能バージョン情報と、前記CPUユニットに設定されたパラメータのレベルを特定するパラメータバージョン情報により特定されるアプリバージョン情報とすることもできる。これは、以下に示す各発明においても同様である。機能バージョン情報は、ユーザプログラムを実行するためにCPUユニットが備えるべき機能の範囲を表すものであればよい。例えば、機能の名称のリスト情報でもよいし、機能名称のリストに対応させた数値情報でもよい。 ここで、パラメータは、サポートツールによって設定することでCPUユニットの基本仕様やPLCシステムの仕様をソフトウェア的に定義することを可能とするデータや、複数のネットワークを介してPLC間でデータの送受信を行なう場合の通信経路に関するデータなどを含むものである。このパラメータを設定変更することでPLCシステム全体の動作可能範囲を複数のレベルに設定することができる。この動作可能範囲の設定例としては、例えば、機能の名称のリストで情報でもよいし、機能名称のリストに対応する数値情報でもよい。
また、「バージョン情報を有する」とは、不揮発性記憶手段等に記憶保持させていてもよいし、必要に応じて記憶保持している情報に基づいて生成することにより有するようにしても良い。
また、前記実行系のCPUユニットは、前記待機系のCPUユニットのユニットバージョン情報を取得するとともに、自己のユニットバージョン情報と比較し、古いユニットバージョン情報を、プログラマブルコントローラに接続されるサポートツールに通知するように構成すると良い。また、本発明に係るプログラマブルコントローラシステムでは、係るプログラマブルコントローラと、そのプログラマブルコントローラに接続されたサポートツールを備えたシステムにおいて、前記サポートツールは、前記プログラマブルコントローラに対して前記ユニットバージョン情報の要求を発行し、前記プログラマブルコントローラは、前記実行系と前記待機系のCPUユニットのうち、古いユニットバージョン情報を通知するように構成するとよい。
このようにすると、サポートツールは、古いユニットバージョン情報に合わせてユーザプログラムを作成し、ダウンロードすることにより、そのダウンロードしたユーザプログラムを用いて確実に二重化運運転が実行できる。
さらに、上記した各発明を実行するに適した本発明に係るCPUユニットは、機器の機能性を示すユニットバージョン情報が設定されたプログラマブルコントローラ用のユニットであって、同一のプログラマブルコントローラを構成する他のCPUユニットのユニットバージョンを取得する手段と、その取得した前記他のCPUユニットのユニットバージョン情報と、自己が記憶保持するユーザプログラムに基づくユーザプログラムバージョン情報を比較し、自己が記憶保持するユーザプログラムを前記他のCPUユニットが実行可能か否かを判断する判断手段とを備えるようにした。
さらに、自己が保有するユニットバージョン情報と、前記他のCPUユニットのユニットバージョン情報を比較し、サポートツールからの読出要求に対するレスポンスとして、前記2つのユニットバージョン情報のうち古いバージョン情報を返送する機能を備えるとよい。
また、本発明に係る二重化運転開始方法は、2つのCPUユニットを備え、前記2つのCPUユニットは、相手の状態を確認可能とし、一方が実行系となるとともに他方が待機系となり、前記実行系のCPUユニットがダウンした場合には、前記待機系のCPUユニットが実行系に切り替わって運転を継続するプログラマブルコントローラにおける二重化運転開始方法であって、前記CPUユニットは、機器自体の機能性を示すユニットバージョン情報を保持するとともに、格納されたユーザプログラムに基づくユーザプログラムバージョン情報を有する。そして、二重化運転開始に先立ち、前記プログラマブルコントローラを構成する所定のユニットが、前記待機系のCPUユニットのユニットバージョン情報と、前記実行系のCPUユニットが有する前記ユーザプログラムバージョン情報を比較し、前記実行系のCPUユニットが記憶保持するユーザプログラムを前記待機系のCPUユニットが実行可能か否かを判断し、その判断結果が実行可能であることを条件に二重化運転を開始するようにした。
また、別の解決手段としては、2つのCPUユニットを備え、前記2つのCPUユニットは、相手の状態を確認可能とし、一方が実行系となるとともに他方が待機系となり、前記実行系のCPUユニットがダウンした場合には、前記待機系のCPUユニットが実行系に切り替わって運転を継続するプログラマブルコントローラにおける二重化運転開始方法であって、前記CPUユニットは、機器自体の機能性を示すユニットバージョン情報を記憶保持するとともに、格納されたユーザプログラムに基づくユーザプログラムバージョン情報を有し、二重化運転開始に先立ち、前記実行系のCPUユニットは、前記待機系のCPUユニットからその待機系のCPUユニットが持つユニットバージョンを取得し、その取得した前記待機系のCPUユニットのユニットバージョン情報と、自己が有する前記ユーザプログラムバージョン情報を比較し、自己が記憶保持するユーザプログラムを前記待機系のCPUユニットが実行可能か否かを判断し、実行可能と判断した場合に、前記実行系のCPUユニットは、少なくとも自己が保持するユーザプログラムを、前記ユーザプログラムバージョン情報とともに前記待機系のCPUユニットにコピーし、二重化運転を開始するようにした。
本発明では、異なるユニットバージョンが存在するCPUユニットを用いた場合でも、正常な二重化運転が可能な状態で実行系と待機系のCPUユニットを稼動させることができる。
図1は、本発明の好適な一実施の形態を実現するシステム全体を示している。図1に示すように、パソコンからなるサポートツール10とPLC20が、所定の通信回線30を介して接続されている。この通信回線30は、例えば、RS232Cなどのシリアル回線を用いて直接ケーブル接続することにより実現される。もちろん、このように直接接続するものに限ることはなく、他の通信回線を用いネットワーク経由でPLC20とサポートツール10とを接続する構成を採っても良い。そして、サポートツール10で作成(修正も含む)したユーザプログラムは、通信回線30を介してPLC20にダウンロードされる。
PLC20は、複数のユニットから構成される。すなわち、電源供給源の電源ユニット21,PLC全体の制御を統率する第1,第2CPUユニット22,22′,FAの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット23,アクチュエータなどに制御出力を出す出力ユニット24,通信ネットワークに接続するための通信ユニット25などの各種のユニットを適宜組み合わせて構成される。そして、本システムにおいてサポートツール10からダウンロードされるユーザプログラムは、CPUユニット22,22′に記憶保持され、そこにおいて実行される。より具体的には、サポートツール10は、実行系側の第1CPUユニット22に対してユーザプログラムをダウンロードし、第1CPUユニット22は、待機系側の第2CPUユニット22′に対してユーザプログラムをコピーすることにより、第1CPUユニット22と第2CPUユニット22′は、同一内容のユーザプログラムを記憶保持するようになる。
すなわち、通信回線30を通信ユニット25に接続し、サポートツール10と第1CPUユニット22は、通信ユニット25を介して通信したり、第1CPUユニット22にシリアル回線のインタフェースを内蔵させることによりサポートツール10を直接第1CPUユニット22に連結し、ユーザプログラムのダウンロード等を行うようにしたりできる。もちろん、ユーザプログラムのダウンロードについて着目したため、サポートツール10は第1CPUユニット22と通信することについて説明したが、第2CPUユニット22′も第1CPUユニット22と同様にサポートツール10と通信する機能は持っている。
サポートツール10は、パソコンから構成され、図2に示すように、ハードウエア構成としてキーボード,ポインティングデバイス等の入力装置11と、ディスプレイ等の表示装置12と、CPU13と、記憶部14を備えている。さらに、接続されたPLC20(CPUユニット22,22′)に実装されるユーザプログラムも記憶部14に格納される。
一方、CPUユニット22,22′の内部構造は、図3に示すように構成されている。すなわち、システムプログラムは、システムROM22a,22′aに格納されており、そのシステムプロクラムは、MPU22b,22′bに呼び出され、そのMPU22b,22′bにおいて、ワークメモリとしてのシステムRAM22c,22′cを適宜使用しながら、プログラムに従った所定の処理を実行する。また、運転時において、ユーザデータの1つであるユーザプログラムは、ユーザメモリ(UM)22d,22′dに格納されている。さらに、I/Oデータやパラメータは、IOメモリ(IOM)22e,22′eに格納されている。
そして、ユーザプログラムには、後述するごとく機能性を示す機能バージョンが付与されており、この機能バージョンもユーザプログラムの一部を構成し、ユーザメモリに格納される。また、パラメータは、サポートツールによって設定することでCPUユニットの基本仕様やPLCシステムの仕様をソフト的に定義することを可能とするデータや、複数のネットワークを介してPLC間でデータの送受信を行なう場合の通信経路に関するデータなどがある。従って、このパラメータにも、どのレベルまでの仕様に対応しているかを特定するパラメータバージョンを付与して管理することができる。そして、CPUユニット全体を見ると、ユーザプログラムの機能を示す機能バージョンと、パラメータバージョンにより、アプリケーション(システム)全体の仕様・レベル(アプリバージョン)を特定できる。
本実施の形態では、CPUユニットが備えている機能の範囲を表わすユニットバージョン(CPUバージョン)と、ユーザプログラムのバージョンである機能バージョンという2種類のバージョンを用意し、後述するごとくCPUユニットの所定メモリに格納するとともに、それら2種類のバージョンを用いて二重化運転の可否等を判断するようにした。また、後述するごとく、CPUバージョンとアプリバージョンとにより二重化運転の可否等を判断するようにしてもよい。
CPUバージョンは、例えばシステムROM22aに格納される。CPUユニットは、サポートツール10等からの呼出要求を受けると、そのレスポンスとしてそれらCPUバージョンをサポートツール10に返送するようになっている。また、機能バージョンはユーザプログラムの一部として、ユーザメモリ22d,22′dに格納する。
さらに、本実施の形態では、PLC(CPUユニット)に付すCPUバージョン並びに機能バージョンは、数値で表し、バージョンアップするごとに数値も大きくする。つまり、数値が大きいほど新しいバージョンであると言えるので、係るバージョンの数値の大小関係を比較することにより、簡単にどちらが新しいバージョンであるかを判別できる。そして、新バージョンのPLC20(第1,第2CPUユニット22,22′)は、旧バージョンの機能を継承しているため、実装するユーザプログラムの機能バージョンの数値が、自己のCPUバージョンの数値以下の場合には、対応できる。なお、バージョンの数値は、整数のみ(いわゆる「メジャーバージョン」のみ)でもよいし、小数点等を適宜使用したマイナーバージョンも使用することもある。
上記した機能バージョンとCPUバージョンの関係ならびに旧バージョンの承継について、例をあげて説明すると、図4,図5のようになる。すなわち、図4はCPUバージョンと機能の関係を示す図で、CPUバージョンがアップするごとに、搭載される(利用可能な)機能が増える。そして、使用可能な機能を示す機能バージョンとCPUバージョンのバージョン番号を一致させている。つまり、CPUバージョンが1.0ならば、機能A〜Cまでが実行可能であり、係る機能A〜Cの範囲内で使用しているユーザプログラムの機能バージョンは1.0となる。同様に、CPUバージョンが2.0ならば、機能A〜Fまでが実行可能であり、係る機能A〜Fの範囲内で使用しているユーザプログラムの機能バージョンは2.0となる。よって、CPUバージョンが2.0のCPUユニットであれば、機能バージョンが2.0と1.0の両方のユーザプログラムを実行可能となる(図5参照)。
さらに、図6に模式的に示すように、実行系の第1CPUユニット22と待機系の第2CPUユニット22′は、互いのバージョン情報を確認し、比較する機能を備えている。さらに、上記したように、サポートツール10からの要求に応じて、バージョン情報を通知する機能を有する。
二重化運転可能性のチェックをするタイミングとしては、任意のタイミングで実行可能であるが、例えば、外部機器により実行系CPUユニットに格納されているユーザプログラムの一部または全部が変更された場合や、外部機器により実行系CPUユニットのパラメータが変更された場合などがある。勿論、これ以外のタイミングでチェックをしても良い。
上記した構成において、第1,第2CPUユニット22,22′は、二重化運転になる際に二重化運転が可能か否かを判断し、その判断結果に従って所定の処理を実行する。すなわち、まず二重化運転になるタイミングとしては、
(1)電源立ち上げ時などの第1,第2CPUユニット22,22′が同時に立ち上がる場合;
(2)一方のCPUユニットを故障などで交換している間、他方のCPUユニットで単独運転しているケースから、再度一方のCPUユニットを立ち上げて二重化運転に戻す場合;
がある。
図7に示すように、実行系の第1CPUユニット22の機能バージョンと、待機系の第2CPUユニット22′のCPUバージョンを比較し、実行系のCPUユニット22の機能バージョンが待機系のCPUユニット22′のCPUバージョン以下の場合には、二重化運転可能と判断し、待機系のCPUユニット22′のCPUバージョンが実行系のCPUユニット22の機能バージョン未満の場合には、二重化運転不可と判断する。
一例として、実行系CPUユニットの機能バージョンが3.0で、待機系のCPUユニットのCPUバージョンが4.0の場合、実行系CPUユニットは機能A〜Gを実行するのに対して、待機系CPUユニットは機能A〜Iを実行可能であることから、実行系CPUユニットがダウンして待機系CPUユニットが実行系に切り替わっても全ての機能を実行できるので、そのままシステムを継続できる。
一方、実行系CPUユニットの機能バージョンが3.0で、待機系のCPUユニットのCPUバージョンが2.0の場合、実行系CPUユニットは機能A〜Gを実行するのに対して、待機系CPUユニットは機能A〜Fを実行可能であるが、機能Gは実行不能である。従って、実行系CPUユニットがダウンして待機系CPUユニットが実行系に切り替わると、機能Gを実行できないことからシステムが停止する。
よって、このように二重化運転不可能と判断した場合には、「バージョン照合異常」として、二重化運転せずに単独運転を継続する。なお、電源立ち上げ時に二重化運転が不可となった場合には、実行系CPUユニットのみで単独運転するか、全体で運転停止にするかは内部設定などで決定することができる。
そして、上記した処理を行なうための具体的な処理機能は、図8に示すフローチャートを実行するようになる。すなわち、二重化運転移行開始になると、まず、実行系CPUユニット側は待機系CPUユニットのCPUバージョンを確認する(ST1)。つまり、待機系CPUユニットに対してCPUバージョンを要求する。待機系CPUユニットは、係る要求を受けると、自己のCPUバージョンを実行系CPUユニットに通知する(ST2)。
そこで、実行系CPUユニットは、待機系CPUユニットから送られてきたCPUバージョンと、自己の機能バージョンを比較する(ST3)。そして、その大小関係から、待機系CPUユニットのCPUバージョンが実行系CPUの機能バージョン未満の場合には、二重化不可と判断し(ST4)、バーション照合異常通知を発行し(ST5)、単独運転を開始する(ST6)。
一方、待機系CPUユニットのCPUバージョンが実行系CPUの機能バージョン以上の場合には、二重化可能と判断し(ST5)、二重化運転を開始する(ST8)。また、二重化不可の決定(ST4)並びに二重化可能の決定(ST7)をしたならば、それぞれその決定内容を待機系CPUユニットに通知する。
待機系CPUユニットは、実行系CPUユニットに対して自己のCPUバージョンを通知したならば、実行系CPUユニットからの比較結果を待ち(ST9)、比較結果を受信するとその比較結果に応じて二重化運転開始するか(ST10,ST8)、運転を停止しバージョン照合異常の通知をする(ST10,ST11)。さらに、ステップ8の二重化運転開始に伴い、実行系CPUユニットは自己が記憶保持しているユーザプログラムと、必要によりパラメータを待機系CPUユニットの所定エリアへコピーする。
ところで、サポートツール10は、自己が対応可能なCPUユニットのCPUバージョンに関する情報を持ち、実行系の第1CPUユニット22にダウンロードするに際し、第1CPUユニット22のCPUバージョンを取得し、対応可能か否かを判断する。そして、対応可能な場合のみユーザプログラムをダウンロードする。
さらに、CPUユニットに新たな機能を追加する場合には、図9に示すように、(1)まずサポートツール10は、第1CPUユニット22に対してバージョン情報(CPUバージョン,機能バージョン)を確認する。(2)次いで、第1CPUユニット22は、第2CPUユニット22′のCPUバージョンを取得し、その大小関係を比較する。(3)そして、第1CPUユニット22は、古い方のCPUバージョンと自己の機能バージョンを通知する。なお、機能バージョンは対比することなく自己のものを通知するのは、二重化運転中は同じ機能で両CPUユニットが動作しているため、機能バージョンは一致しているのが前提であるからである。
これにより、サポートツール10は、二重化PLCに使用できる命令や設定の範囲を認識することができ、ユーザが間違えて範囲を超えた命令や設定をダウンロードしてしまうことを防止することができる。
上述の実施の形態では、サポートツール10からのバージョン読み出し要求に対して、実行系CPUユニットは、自己のCPUバージョンと待機系CPUユニットから取得したCPUバージョンとを比較し、古いCPUバージョンを応答するように説明したが、本発明は、これに限ることはなく、実行系CPUユニットは、自己のCPUバージョンと待機系CPUユニットのCPUバージョンの両方をサポートツール10へ応答するようにしても良い。この場合、サポートツール10は、実行系CPUユニットからの応答された実行系CPUユニットのCPUバージョンと待機系CPUユニットのCPUバージョンを比較し、古いCPUバージョンを実行系CPUユニットと待機系CPUユニットの共通のCPUバージョンとして扱うように構成すれば良い。
また、実行系CPUユニットが待機系CPUユニットのCPUバージョンを知る方法としては、実施の形態のように、実行系CPUユニットが待機系CPUユニットに対してCPUバージョンを要求し、その要求に待機系CPUユニットが応答することでも良いし、待機系CPUユニットが自己のCPUバージョンを実行系CPUユニットから読み出し可能なメモリに予め格納しておき、それを実行系CPUユニットが必要に応じて読み出す様にしても良く、各種の実施が可能となる。
なお、CPUバージョン(ユニットバージョン)の格納場所は、実施の形態のようにシステムROM22a,22’aでも良いし、その他の書き換え可能なメモリに格納しても良い。さらにまた、機能バージョンの格納場所は、実施の形態のようにユーザプログラムの一部としてユーザメモリ(UM)22d,22’dに格納しても良いし、IOメモリ22e,22’eに格納しても良く、その格納場所は任意である。
さらに、上記した実施の形態では、機能バージョンとCPUバージョンを比較すること
により、二重化運転が可能か否かを判断するようにしたが、実行系が有するアプリバージョンと待機系が有するCPUバージョンを比較することにより二重化可能か否かを判断するようにしても良い。アプリバージョンは、パラメータバージョンと機能バージョンにより決定されるため、例えばIOメモリ22e,22′eに格納することができる。このアプリバージョンは、CPUバージョンと同様に不揮発性メモリに格納しても良いし、揮発性メモリ・バッファに一時的に記憶しても良い。また、パラメータバージョンやアプリバージョンは、機能バージョンと同様にサポートツールにより設定することもできるし、CPUユニットが、設定されたパラメータや、機能バージョンに従って自働的に設定するようにしても良い。そして、そのように自動的に設定する機能をCPUユニットに実装した場合には、アプリバージョンは、例えば二重化運転可能か否かを判断する際に、求めることもできる。
そして、あらかじめ或いは二重化運転可否判断の際に求めたアプリバージョンを用いた二重化可能か否かの判断処理は、基本的に、上記した実施の形態における機能バージョンをアプリバージョンに置き換えたものにすることにより、実行することができる。
上記した実施例にけるアプリバージョンは、ユーザプログラム作成時にユーザが決定し、サポートツールを用いてユーザプログラムの一部として格納されるように構成してもよい。
アプリバージョンを決める他の実施の形態について述べる。後述するようにCPUユニット内に予めアプリバージョンとアプリバージョンごとに実施可能な機能名を対応させたテーブルを格納しておく。CPUユニットのMPUは、ユーザメモリ(UM)に格納されているユーザプログラムやIOメモリ(IOM)に格納されているパラメータを参照することでアプリバージョンを決めるように構成してもよい。図10と図11を用いて説明する。図10は、アプリバージョンとアプリバージョンごとに実施可能な機能とその機能の格納場所との関係を示すテーブル(以下アプリバージョンテーブル)の一例である。この例では、IOメモリに機能名B,C,FおよびGのパラメータが格納されているものとする。図11は、図10のアプリバージョンテーブルを用いてユーザプログラムとパラメータからアプリバージョンを決定する処理フローを示した例である。実行系CPUユニットのMPUは、まず、ユーザメモリを検索し(ST21)、機能Hまたは機能Iが使用されているかどうか判断する(ST22)。これらステップ21とステップ22に対応する具体的例としてはユーザメモリに格納されているユーザプログラムを参照し機能Hまたは機能Iに対応する命令語が使用されているかどうかを判断することである。ステップ22で機能Hまたは機能Iが使用されていると判断した場合は、アプリバージョンをVer4.0に決定する(ST32)。ステップ22で機能Hと機能Iとがともに使用されてないと判断した場合は、さらに、ユーザメモリ内で機能Dまたは機能Eが使用されているかどうかを判断する(ST23)。このステップ23に対応する具体例としてはユーザメモリに格納されているユーザプログラムを参照し機能Dまたは機能Eに対応する命令語が使用されているかどうかを判断することである。ステップ23で機能Dまたは機能Eが使用されていると判断した場合は、IOメモリを検索し(ST28)、機能Gを使用しているかどうか判断する(ST29)。これらステップ28とステップ29に対応する具体例としては、IOメモリに格納されているパラメータを参照し機能Gが使用されているかどうかを判断することである。ステップ29で機能Gが使用されていると判断した場合はアプリバージョンをVer3.0に決定する(ST31)。一方、ステップ29で機能Gが使用されていないと判断した場合は、アプリバージョンをVer2.0に決定する(ST30)。ステップ23で機能Dと機能Eとがともに使用されていないと判断した場合は、次に、IOメモリを検索し(ST24)、機能Gが使用されているかどうか判断する(ST25)。このステップ25で機能Gが使用されていると判断した場合は、アプリバージョンをVer3.0に決定する(ST31)。ステップ25で機能Gが使用されていないと判断した場合は、さらに、IOM内で機能Fが使用されているかどうか判断する(ST26)。このステップ26で機能Fが使用されていると判断した場合は、アプリバージョンをVer2.0に決定する(ST30)。ステップ26で機能Fが使用されていないと判断した場合は、アプリバージョンをVer1.0に決定する(ST27)。以上の処理によりアプリバージョンが決定される。
本発明のシステムの一実施の形態を示す図である。 サポートツールの内部構成を示す図である。 CPUユニットの内部構成を示す図である。 CPUバージョンと機能の関係を説明する図である。 CPUバージョンと機能の関係を説明する図である。 本発明のシステムの一実施の形態の要部を説明する図である。 本発明のシステムの一実施の形態の作用を説明する図である。 各CPUユニットの機能を説明するフローチャートである。 本発明のシステムの一実施の形態の作用を説明する図である。 本発明のアプリバージョンテーブルの一実施の形態を説明する図である。 本発明のアプリバージョンを決定する処理を説明するフローチャートである。
符号の説明
10 サポートツール
11 入力装置
12 表示装置
13 CPU
14 記憶部
20 PLC
21 電源ユニット
22 第1CPUユニット
22′ 第2CPUユニット
22a,22a′ システムROM
22b,22b′ MPU
22c,22c′ RAM
22d,22d′ ユーザメモリ
22e,22e′ IOメモリ
23 入力ユニット
24 出力ユニット
25 通信ユニット
30 通信回線

Claims (9)

  1. 2つのCPUユニットを備え、前記2つのCPUユニットは、相手の状態を確認可能とし、一方が実行系となるとともに他方が待機系となり、前記実行系のCPUユニットがダウンした場合には、前記待機系のCPUユニットが実行系に切り替わって運転を継続するプログラマブルコントローラにおいて、
    前記CPUユニットは、機器自体の機能性を示すユニットバージョン情報を記憶保持するとともに、格納されたユーザプログラムに基づくユーザプログラムバージョン情報を有し、
    前記待機系のCPUユニットのユニットバージョン情報と、前記実行系のCPUユニットが有する前記ユーザプログラムバージョン情報に基づき、前記実行系のCPUユニットが記憶保持するユーザプログラムを前記待機系のCPUユニットが実行可能か否かを判断する判断手段と、
    その判断手段が実行可能と判断した場合にのみ二重化運転を開始する手段を備えたことを特徴とするプログラマブルコントローラ。
  2. 前記実行系のCPUユニットは、前記待機系のCPUユニットからその待機系のCPUユニットが持つユニットバージョン情報を取得する取得機能と、
    その取得した前記待機系のCPUユニットのユニットバージョン情報と、自己が有する前記ユーザプログラムバージョン情報を比較し、自己が記憶保持するユーザプログラムを前記待機系のCPUユニットが実行可能か否かを判断する判断機能を備え、
    前記取得機能および前記判断機能により、前記判断手段を構成することを特徴とする請求項1に記載のプログラマブルコントローラ。
  3. 前記実行系のCPUユニットは、前記二重化運転を開始するに際し、少なくとも前記実行系のCPUユニットが保持するユーザプログラムを、前記ユーザプログラムバージョン情報とともに前記待機系のCPUユニットにコピーする機能を備えたことを特徴とする請求項1または2に記載のプログラマブルコントローラ。
  4. 前記ユーザプログラムバージョン情報並びに前記ユニットバージョン情報は、数値データで構成されていることを特徴とする請求項1から3のいずれか1項に記載のプログラマブルコントローラ。
  5. 前記ユーザプログラムバージョン情報は、前記ユーザプログラムの機能性を示す機能バージョン情報であることを特徴とする請求項1から4のいずれか1項に記載のプログラマブルコントローラ。
  6. 前記ユーザプログラムバージョン情報は、少なくとも前記ユーザプログラムの機能性を示す機能バージョン情報と前記CPUユニットに設定されたパラメータのレベルを特定するパラメータバージョン情報とにより特定されるアプリバージョン情報であることを特徴とする請求項1から4のいずれか1項に記載のプログラマブルコントローラ。
  7. 機器の機能性を示すユニットバージョン情報が設定されたプログラマブルコントローラ用のユニットであって、
    同一のプログラマブルコントローラを構成する他のCPUユニットのユニットバージョン情報を取得する手段と、
    その取得した前記他のCPUユニットのユニットバージョン情報と、自己に格納されたユーザプログラムに基づくユーザプログラムバージョン情報を比較し、自己が記憶保持するユーザプログラムを前記他のCPUユニットが実行可能か否かを判断する判断手段とを備えたCPUユニット。
  8. 2つのCPUユニットを備え、前記2つのCPUユニットは、相手の状態を確認可能とし、一方が実行系となるとともに他方が待機系となり、前記実行系のCPUユニットがダウンした場合には、前記待機系のCPUユニットが実行系に切り替わって運転を継続するプログラマブルコントローラにおける二重化運転開始方法であって、
    前記CPUユニットは、機器自体の機能性を示すユニットバージョン情報を記憶保持するとともに、格納されたユーザプログラムに基づくユーザプログラムバージョン情報を有し、
    二重化運転開始に先立ち、
    前記プログラマブルコントローラを構成する所定のユニットが、前記待機系のCPUユニットのユニットバージョン情報と、前記実行系のCPUユニットが有する前記ユーザプログラムバージョン情報を比較し、前記実行系のCPUユニットが記憶保持するユーザプログラムを前記待機系のCPUユニットが実行可能か否かを判断し、
    その判断結果が実行可能であることを条件に二重化運転を開始することを特徴とする二重化運転開始方法。
  9. 2つのCPUユニットを備え、前記2つのCPUユニットは、相手の状態を確認可能とし、一方が実行系となるとともに他方が待機系となり、前記実行系のCPUユニットがダウンした場合には、前記待機系のCPUユニットが実行系に切り替わって運転を継続するプログラマブルコントローラにおける二重化運転開始方法であって、
    前記CPUユニットは、機器自体の機能性を示すユニットバージョン情報を記憶保持するとともに、格納されたユーザプログラムに基づくユーザプログラムバージョン情報を有し、
    二重化運転開始に先立ち、
    前記実行系のCPUユニットは、前記待機系のCPUユニットからその待機系のCPUユニットが持つユニットバージョンを取得し、
    その取得した前記待機系のCPUユニットのユニットバージョン情報と、自己が有する前記ユーザプログラムバージョンを比較し、自己が記憶保持するユーザプログラムを前記待機系のCPUユニットが実行可能か否かを判断し、
    実行可能と判断した場合に、前記実行系のCPUユニットは、自己が保持するユーザプログラムを、前記ユーザプログラムバージョン情報とともに前記待機系のCPUユニットにコピーし、二重化運転を開始することを特徴とする二重化運転開始方法。

JP2006183350A 2003-09-26 2006-07-03 プログラマブルコントローラおよびcpuユニットおよび二重化運転開始方法 Pending JP2006260607A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006183350A JP2006260607A (ja) 2003-09-26 2006-07-03 プログラマブルコントローラおよびcpuユニットおよび二重化運転開始方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003335593 2003-09-26
JP2006183350A JP2006260607A (ja) 2003-09-26 2006-07-03 プログラマブルコントローラおよびcpuユニットおよび二重化運転開始方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004272617A Division JP3915808B2 (ja) 2003-09-26 2004-09-17 プログラマブルコントローラおよびプログラマブルコントローラシステムならびにcpuユニット

Publications (1)

Publication Number Publication Date
JP2006260607A true JP2006260607A (ja) 2006-09-28

Family

ID=37099684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006183350A Pending JP2006260607A (ja) 2003-09-26 2006-07-03 プログラマブルコントローラおよびcpuユニットおよび二重化運転開始方法

Country Status (1)

Country Link
JP (1) JP2006260607A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223418A (ja) * 2008-03-13 2009-10-01 Omron Corp 二重化コントローラ
JP2010257319A (ja) * 2009-04-27 2010-11-11 Hitachi Ltd プラント制御装置
JP2018055211A (ja) * 2016-09-27 2018-04-05 ブラザー工業株式会社 数値制御装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040083A (ja) * 1996-07-24 1998-02-13 Nissin Electric Co Ltd 情報処理装置
JP2001202101A (ja) * 2000-01-18 2001-07-27 Toshiba Corp 二重化制御システムおよびそのプログラムメンテナンス方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040083A (ja) * 1996-07-24 1998-02-13 Nissin Electric Co Ltd 情報処理装置
JP2001202101A (ja) * 2000-01-18 2001-07-27 Toshiba Corp 二重化制御システムおよびそのプログラムメンテナンス方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223418A (ja) * 2008-03-13 2009-10-01 Omron Corp 二重化コントローラ
JP2010257319A (ja) * 2009-04-27 2010-11-11 Hitachi Ltd プラント制御装置
JP2018055211A (ja) * 2016-09-27 2018-04-05 ブラザー工業株式会社 数値制御装置

Similar Documents

Publication Publication Date Title
JP3915808B2 (ja) プログラマブルコントローラおよびプログラマブルコントローラシステムならびにcpuユニット
US8930931B2 (en) Information processing apparatus using updated firmware and system setting method
JP5819575B2 (ja) プロセス工場において制御冗長性をアップグレードおよび提供するための方法と機器
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
EP2382545B1 (en) Component configuration mechanism for rebooting
JP6751057B2 (ja) 電子制御システム
JP2009015401A (ja) 分散型制御システム
JP2006260607A (ja) プログラマブルコントローラおよびcpuユニットおよび二重化運転開始方法
JP2007122151A (ja) ブート制御装置およびブート制御方法
JPH04167139A (ja) プログラムダウンロード方式
JP4305740B2 (ja) プログラマブルコントローラシステムおよび接続保証方法
JP7147525B2 (ja) 通信装置及び制御方法
EP1835398A1 (en) Frequency converter controller, peripheral device, method and program
JP2008226111A (ja) 2重化コントローラシステム、その稼動系コントローラ
JP2004164394A (ja) 二重化制御装置の起動方法
JP2004272629A (ja) プログラマブルコントローラ用機器並びにプログラマブルコントローラ用機器におけるプログラム更新方法並びにプログラム起動方法
KR20200112137A (ko) Plc 시스템의 펌웨어 관리 장치 및 방법과, 그 plc 시스템
KR20030041605A (ko) 통신시스템의 프로그램 원격 업그레이드 장치 및 그 방법
JP2003140915A (ja) コンピュータ装置及びプログラムのダウンロード方法
JP2016143103A (ja) 制御装置
KR100334792B1 (ko) 네트워크 시스템의 원격 다운 로드 방법
KR101900729B1 (ko) Plc 운영체제 구동 방법
JPH1083358A (ja) プログラム書換方法およびプログラム書換機能付制御装置
KR20230107953A (ko) 논리연산제어장치에 신규 모듈을 추가하는 방법
KR20010010933A (ko) 망관리시스템의 원격 다운로드 전송장치 및 그 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091225

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100930