(57)【要約】  （課題）コントローラＯＳデータのバージョンアップの必要性を確認し、自動的に行われるコントローラＯＳデータの無駄なバージョンアップを排除し、金銭的、時間的、作業的に効率が良く、かつ安全性を考慮したコントローラＯＳデータのバージョンアップ方法を提供する。  （解決手段）現在発達しているインターネット網と、コントローラ用のプログラミングツールとの組み合わせを活用し、コントローラ用のプログラミングツールをコントローラに接続したとき、コントローラのＯＳバージョンを自動的に確認し、インターネット上の所定のサイトに存在する最新ＯＳバージョンを確認する。そして、バージョンアップすべきと判断した場合（例えば、不具合の内在が報告されているコントローラであると判断した場合）、最新ＯＳデータをコントローラにダウンロードする。
2012043008.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法であって、  前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すステップと、  前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、  前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、  前記実行環境の中で前記判定された部分をバージョンアップするステップと、  を備えることを特徴とする方法。
【請求項２】
前記バージョンアップ情報は、前記実行環境の中でバージョンアップされるべき部分を特定する情報を含む、  ことを特徴とする請求項１に記載の方法。
【請求項３】
前記バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含み、  前記バージョンアップ機能一覧は、前記実行環境に含まれる機能の中でバージョンアップされるべき機能に関する情報を含む、  ことを特徴とする請求項１に記載の方法。
【請求項４】
前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定するステップと、  前記実行環境中、前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用するステップと、  をさらに備える、  ことを特徴とする請求項３に記載の方法。
【請求項５】
前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択するための選択肢を前記ユーザに提供するステップと、  前記選択肢を用いて前記ユーザによって選択された機能だけをバージョンアップするステップと、  をさらに備える、  ことを特徴とする請求項３に記載の方法。
【請求項６】
前記バージョンアップ情報は、バージョンアップされるべき複数の命令を特定する情報を含む、  ことを特徴とする請求項１に記載の方法。
【請求項７】
ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定するステップと、  前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも１つを使用していると判定された場合に前記ユーザ・アプリケーション・プログラムをバージョンアップするステップと、  をさらに備える、  ことを特徴とする請求項６に記載の方法。
【請求項８】
プログラマブル・ロジック・コントローラのソフトウェア保守を実行するシステムであって、  プログラミングツールと、  コントローラと、  を備え、  前記プログラミングツールは、前記コントローラの実行環境をバージョンアップするように操作可能であり、  前記プログラミングツールは、  前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニットと、  前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニットと、  前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニットと、  前記実行環境の中の前記判定された部分をバージョンアップするバージョンアップユニットと、  を含む、  ことを特徴とするシステム。
【請求項９】
前記バージョンアップ情報は、前記実行環境の中でバージョンアップされるべき部分を特定する情報を含む、  ことを特徴とする請求項８に記載のシステム。
【請求項１０】
前記バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含み、  前記バージョンアップ機能一覧は、前記実行環境に含まれる機能の中でバージョンアップされるべき機能に関する情報を含む、  ことを特徴とする請求項８に記載のシステム。
【請求項１１】
前記バージョンアップエリア判定ユニットは、前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定し、  前記バージョンアップユニットは、前記実行環境の中で、前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用する、  ことを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記システムでは、前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択するための選択肢が前記ユーザに提供され、  前記バージョンアップユニットは、前記ユーザによって選択された機能だけをバージョンアップする、  ことを特徴とする請求項１０に記載のシステム。
【請求項１３】
前記バージョンアップ情報は、バージョンアップされるべき複数の命令を特定する情報を含む、  ことを特徴とする請求項８に記載のシステム。
【請求項１４】
前記バージョンアップエリア判定ユニットは、ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定し、  前記バージョンアップユニットは、前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも１つを使用していると判定された場合に、前記ユーザ・アプリケーション・プログラムをバージョンアップする、  ことを特徴とする請求項１３に記載のシステム。
【請求項１５】
コンピュータに、プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法を実行させるためのプログラムであって、  前記コンピュータに、  前記コントローラのコントローラ型式およびオペレーティングシステムのバージョン情報を読み出すステップと、  前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、  前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、  前記実行環境の中で前記判定された部分をバージョンアップするステップと、  を実行させることを特徴とするプログラム。
【請求項１６】
前記バージョンアップ情報は、前記実行環境の中でバージョンアップされるべき部分を特定する情報を含む、  ことを特徴とする請求項１５に記載のプログラム。
【請求項１７】
前記バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含み、  前記バージョンアップ機能一覧は、前記実行環境に含まれる機能の中でバージョンアップされるべき機能に関する情報を含む、  ことを特徴とする請求項１５に記載のプログラム。
【請求項１８】
前記コンピュータに、  前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定するステップと、  前記実行環境の中で前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用するステップと、  をさらに実行させる、  ことを特徴とする請求項１７に記載のプログラム。
【請求項１９】
前記コンピュータに、  前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択する余地を前記ユーザに提供するステップと、  前記ユーザによって選択された機能だけをバージョンアップするステップと、  をさらに実行させる、  ことを特徴とする請求項１７に記載のプログラム。
【請求項２０】
前記バージョンアップ情報は、バージョンアップされるべき複数の命令を特定する情報を含む、  ことを特徴とする請求項１５に記載のプログラム。
【請求項２１】
前記コンピュータに、  ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定するステップと、  前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも１つを使用していると判定された場合に前記ユーザ・アプリケーション・プログラムをバージョンアップするステップと、  をさらに実行させる、  ことを特徴とする請求項２０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、方法、システム、およびプログラムに関する。
【背景技術】
【０００２】  現代の製造設備、及び特に工業自動化の分野において、自動化プロセスは、多くの場合、低水準の自動化システムやプロセス制御および監視システム等によって制御される。低水準の自動化システムは、プログラマブル・ロジック・コントローラ（ＰＬＣ）によって制御もしくは監視される専用ロボット機器、または他の自動化システムを含んでいることがある。またこのようなプロセスを監視するため、マシン・ビジョン・システム、バーコードリーダー、及び種々の光学、電気、電気機械、温度センサ等の種々の検知装置および計器が使用されることがある。【０００３】  一般的に、ユーザはラダープログラムのような制御ロジックを開発し、ＰＬＣ（コントローラ）はユーザが所望する製造プロセスを達成するためにこの制御ロジックを実行する。制御ロジックは、ユーザ・アプリケーション・ソフトウェアとしてコントローラのメモリに格納され、それはコントローラにより読み出し可能である。コントローラには、コントローラのプロセッサが制御ロジックを処理しユーザ・アプリケーションを実行できる実行環境が提供される。この（例えばパーソナルコンピュータにおけるオペレーティングシステム（ＯＳ）に類似した）実行環境はコントローラの一部であるので、コントローラ製造元がその実行環境を保守する責任を負う。コントローラの製造元は、この実行環境に問題または不具合があればしばしば実行環境のバージョンアップを行う。この実行環境は不揮発性メモリに格納されるので、製造元は多くの場合コントローラ全体を交換して実行環境にバージョンアップを適用するが、この方法はこれらコントローラの製造元に対しサポート費用の増加をもたらす。さらに、ユーザはその実行環境をバージョンアップするときは製造プロセスを停止しなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】  したがって、コントローラの実行環境の効率的なバージョンアップを可能にするためのシステムや方法が要求される。
【課題を解決するための手段】
【０００５】  本発明の例示的な実施形態は、少なくとも上記した問題点や不都合な点及び前述されていないその他の不都合な点について言及するものである。本発明は上記不都合な点を克服することが要求されているものではなく、また本発明の実施形態によって必ずしも上記した不都合な点を克服するものでもない。【０００６】  本発明の第１の局面によって、プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法が提供されている。この方法には、前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すステップと、前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、前記実行環境の中で前記判定された部分をバージョンアップするステップとが含まれている。【０００７】  本発明の第２の局面によってプログラマブル・ロジック・コントローラのソフトウェア保守を実行するシステムが提供されている。このシステムには、プログラミングツールとコントローラとが備わっている。前記プログラミングツールは、前記コントローラの実行環境をバージョンアップするための操作が可能である。また、前記プログラミングツールは、該コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニットと、前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニットと、前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニットと、前記実行環境の中の前記判定された部分をバージョンアップするバージョンアップユニットと、が含まれている。【０００８】  本発明の上記態様および／または他の態様は、添付図面を参照して本発明のいくつかの例示的な実施形態を説明することによってより一層明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】図１は、システム構成の一例を示す図である。
【図２】図２は、コントローラ（シーケンサ）の実行環境（オペレーティングシステム）にバージョンアップが適用できる手順の一例を説明する図である。
【図３Ａ】図３Ａは、コントローラの構成の一例を示す図である。
【図３Ｂ】図３Ｂは、コントローラのソフトウェアの構造の一例を示す図である。
【図４Ａ】図４Ａは、ＯＳ実行パラメータの実施例を示す図である。
【図４Ｂ】図４Ｂは、ＯＳ実行パラメータの実施例を示す図である。
【図５】図５は、ＯＳプログラムをさらに詳細に説明する図である。
【図６】図６は、ラダープログラムの一例を示す図である。
【図７Ａ】図７Ａは、バージョンアップ情報およびバージョンアップソフトウェアを示す図である。
【図７Ｂ】図７Ｂは、バージョンアップ情報およびバージョンアップソフトウェアを示す図である。
【図８Ａ】図８Ａは、図２の手順の一例をさらに詳細に説明する図である。
【図８Ｂ】図８Ｂは、図２の手順の一例をさらに詳細に説明する図である。
【図９】図９は、プログラミングツールの内部構造を説明する図である。
【発明を実施するための形態】
【００１０】  以下に本発明のいくつかの実施形態を添付図面を参照してより詳細に説明する。
【００１１】  以下の説明では、異なる図面であっても類似した要素には類似の参照番号が使用される。発明の包括的な理解を助けるべく、詳細な構成や構成要素等が明細書中で例示されているが、しかしながら、本発明は具体的に例示されたこれらの事項なしに実施することも可能である。さらに、不必要な細部を記載することで発明を分かり難くすることがあるので、既知の機能または構成は詳細に説明されていない。
【００１２】実施の形態．  図１は、本発明の例示的な実施形態によるシステム構成を示している。プログラミングツール１は、ユーザによって開発されたプログラムを制御シーケンサ２にインストールする。シーケンサ２は、ユーザの製造プロセスを制御する機器である。シーケンサ２はプログラマブル・ロジック・コントローラ（ＰＬＣ）でもよい。シーケンサ２およびプログラミングツール１は、ＵＳＢ（ユニバーサル・シリアル・バス）などの手段によって互いに接続され得るものである。プログラミングツール１は、異なる機能を実行する別個の論理ユニットまたは処理ユニットを備えるプロセッサを含んでいてもよい。これらそれぞれ異なる論理ユニットは、プロセッサ上で具現化されるソフトウェアに組み込ませることができる。サーバ３はインターネット４を介してプログラミングツール１に接続され、シーケンサ２で使用されるソフトウェアを保守・バージョンアップするために必要な情報やファイルを格納する。以下、「シーケンサ」および「コントローラ」の語が交互に用いられているが、それらはシーケンサ２を指すものである。サーバ３は、シーケンサ３の製造元またはシーケンサ２をサポートする別の保守会社によって管理されているコンピュータであってもよい。サーバ３はインターネット４と接続され、規定されたＵＲＬに基づく所定の要求を受け付ける。サーバ３は、ストレージユニットとしてハード・ディスク・ドライブ・ユニットを有することができ、そのストレージユニット内にシーケンサ２の保守および交換のために準備された（後述する）バージョンアップソフトウェア５２および（後述する）バージョンアップ情報５３を格納することができる。
【００１３】  次に、図２は、コントローラ２の実行環境（例えば、オペレーティングシステム）に対して、それによりバージョンアップが適用され得る手順を示している。
【００１４】  ステップＳ２０１では、顧客が、自身が保守することを望む対象コントローラにプログラミングツールを接続する。ステップＳ２０２では、対象コントローラのＯＳ（オペレーティングシステム）のバージョンを示すデータ（すなわち、バージョン情報）及び他のデータがプログラミングツールによって読み出される。ステップＳ２０３では、プログラミングツールは、該コントローラから読み出されたＯＳバージョン（バージョン情報）に関してサーバ３に格納されているＯＳデータ情報を参照する。ステップＳ２０４では、プログラミングツールは、コントローラの実行環境（例えば、オペレーティングシステム）にバージョンアップを適用すべきかどうかを判定する。また、プログラミングツールは、プログラミングツールがコントローラから読み出したＯＳバージョンを示すデータ（すなわち、バージョン情報）および他のデータに基づいて、バージョンアップの内容を決定する。プログラミングツールは、バージョンアップが適用されるべきでないと判定した場合（ステップＳ２０４で「Ｎｏ」の場合）に、処理を終了し、バージョンアップが適用されるべきであると判定した場合（ステップＳ２０４で「Ｙｅｓ」の場合）に、処理をステップＳ２０５へ進める。ステップＳ２０５では、プログラミングツールは、コントローラの実行環境にバージョンアップを適用する。上記手順は本発明によって想定され得る手順の一例についての概略的な記述であり、その詳細は、次にコントローラの構造を詳細に説明することにより明らかにされるであろう。
【００１５】  図３Ａは、シーケンサ２の構成を説明するための図である。シーケンサ２では、外部ユニット２１および２２がシステムバス２４を介してコントローラモジュール２３に接続される。外部ユニット２１および２２は、図示されていないセンサ、ランプ、アクチュエータおよびサーボ等の外部装置または外部機器に接続されるユニットであり、外部装置または外部機器に関するデータを格納している。これら外部装置または外部機器は、例えば外部ユニット２１および２２との間で情報や信号をやり取りすることなどにより、所定の製造プロセスを実行する。外部ユニット２１および２２は、ビット群に基づくデジタル情報やアナログ信号の入出力に用いることができる。
【００１６】  コントローラモジュール２３は、プロセッサ２３１と、メモリユニット２３２と、システムバスＩ／Ｆ２３３と、プログラミングツール接続ユニット２３４とを含む。コントローラモジュールはシステムバスＩ／Ｆ２３３を介してシステムバス２４と通信する。プロセッサ２３１は、ユーザによって開発されたプログラムや、シーケンサ２のオペレーティングシステム（ＯＳ）を実行するＭＰＵ（マイクロ・プロセッシング・ユニット）である。以下、ユーザによって開発されたプログラムは、アプリケーションプログラムと称する。メモリユニット２３２は不揮発性メモリ２３２ａおよび揮発性メモリ２３２ｂを備えている。不揮発性メモリ２３２ａは、ＯＳ実行パラメータ３１、ＯＳプログラムファイル３２、ＯＳバージョン情報３３、ユーザプログラム３４、及びコントローラ情報３５等を格納している。揮発性メモリ２３２ｂは、外部装置または外部機器に関するデータを外部ユニット２１および２２からシステムバス２４経由で取得し格納している。しかしながら、不揮発性メモリ２３２ａに格納された情報の全部または一部は高速アクセスの目的でさらに揮発性メモリ２３２ｂに格納することもできる。
【００１７】  メモリユニット２３２の内容は、搬送波、ＲＦ信号、イーサネット（登録商標）（Ethernet（登録商標））信号、ＴＣＰ／ＩＰなどの様々な手段を介してバージョンアップすることができる。そのすべてを網羅しているわけではないが、記憶媒体のリストには、１本またはそれ以上の配線を有する電気的接続、フロッピー（登録商標）ディスクもしくはフレキシブルディスクのような携帯用コンピュータディスケット、磁気テープもしくは他の磁気的媒体、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリー・メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、メモリカード、その他のメモリチップもしくはカートリッジ、光ファイバ、携帯用コンパクト・ディスク・リード・オンリー・メモリ（ＣＤ−ＲＯＭ）、その他の光学的媒体、パンチカード、紙テープ、その他穴パターンを備えた物理的媒体、コンピュータ／コントローラが読み出すことができるその他の媒体、またはこれらの適当な組み合わせが含まれる。
【００１８】  プログラミングツール接続ユニット２３４は、シーケンサ２がネットワーク・インターフェイス・モジュールを介してプログラミングツールと通信することができるようなネットワーク・インターフェイス・モジュール１０４を含んでいてもよい。ネットワーク・インターフェイス・モジュール１０４は、データバスに連結されたネットワーク・インターフェイス・カードを含んでいてもよい。ネットワーク・インターフェイス・モジュールは、ネットワークリンクへの双方向データ通信接続を提供する。そのような双方向データ通信接続は、ローカルエリアネットワーク（ＬＡＮ）に接続されるものでもよい。たとえば、ネットワーク・インターフェイス・モジュール１０４は、対応する型の電話回線へのデータ通信接続を提供する統合サービス・デジタル・ネットワーク（ＩＳＤＮ）カードまたはモデムでもよい。また別の実施例として、ネットワーク・インターフェイス・モジュール１０４は、互換性があるＬＡＮへのデータ通信接続を提供するローカル・エリア・ネットワーク・インターフェイス・カード（ＬＡＮ  ＮＩＣ）でもよい。既知の８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇおよびＢｌｕｅｔｏｏｔｈ等の無線リンクもネットワークの実装のために使用してもよい。このような実装においては、いずれもネットワーク・インターフェイス・モジュール１０４が、様々なタイプの情報を示すデジタル／アナログ・データ・ストリームを搬送する電気的、電磁気的、または、光学的信号を送受信する。
【００１９】  ＯＳ実行パラメータ３１は、ＯＳプログラム３２の演算パラメータを含んでおり、たとえば、ウォッチドッグ・タイマ（ＷＤＴ）・セッティングをＯＳ実行パラメータ３１として含めることができる。ＯＳプログラム３２は、ある一定の演算を実行するためにＯＳ実行パラメータを利用する機能を参照する。たとえば、エラー処理用機能（たとえば、ゼロ除算が生じたとき、または、ユーザのコード中の規定がコントローラによって実行できないときに何が起こるかを定義する機能）がＯＳプログラム３２として認識され得る。ＯＳプログラム３２は、ＯＳプログラムの演算が各機能用の演算パラメータに基づいて変化するように設計される。ＯＳプログラム３２の別の例として、ウォッチドッグ・タイマ（ＷＤＴ）・セッティングを監視し、ウォッチドッグ・タイマ（ＷＤＴ）・セッティングがある一定の値（たとえば、２００ミリ秒）を超えた場合、現在実行中のプログラムを停止するプログラムであってもよい。
【００２０】  ＯＳプログラム３２は、コントローラの実行環境の全体的な機能を調整するプログラムコードを代表するものである。ＯＳプログラム３２はパーソナルコンピュータのＯＳのカーネルコードに類似している。ＯＳのカーネルコードと同様に、ＯＳプログラム３２は特権モードで動き、ラダープログラム等のユーザプログラムは、ＯＳプログラムを変更したり、またはＯＳプログラムを制御したりすることはできないが、ＯＳプログラムはユーザプログラムの実行を制御する。さらに、ＯＳプログラム３２は、コントローラハードウェアの最適な実行、ユーザ・シーケンス・プログラムの管理および実行、プログラミングツールとの通信、コントローラハードウェアの診断、及びハードウェア診断の結果の報告等の責任を負う。
【００２１】  ＯＳバージョン情報３３は、現行のＯＳプログラム３２のバージョンを識別するため使用される情報である。ユーザプログラム３４はコントローラを制御するための命令のリストである。工場自動化の分野では、ラダーダイアグラムの形式のプログラムが使用されることが多い。コントローラ情報３５は、コントローラの製造元、モデル名、型式などに関する情報に相当するものである。
【００２２】  図３Ｂは、コントローラのソフトウェアの内部構造を示しており、図３Ｂの詳細な説明は図６の説明の後に行われる。
【００２３】  図４Ａおよび図４Ｂは、ＯＳ実行パラメータ３１のいくつかの例をより詳細に示している。ウォッチドッグ・タイマ（ＷＤＴ）セッティング４０１は、ＯＳ実行パラメータ３１の一例である。図４Ａは、グラフィカル・ユーザ・インターフェイスを介して、複数のＯＳ実行パラメータを示している。すなわち、複数のＯＳ実行パラメータは、グラフィカル・ユーザ・インターフェイスを使用して構成することができる。図４Ａは、ＯＳ実行パラメータ３１の別の例であるエラーチェック４０２も示している。ＯＳ実行パラメータは、図４Ｂに示されているようにＭＰＵレジスタのようなデータ構造として構成することができる。データ構造４０３は、ＷＤＴセッティング４０１を示しており、ＷＤＴセッティング４０１の様々な部分を指す複数のビットを含んでいる。たとえば、データ構造４０３のビット０は、初期実行監視時間がオンにされているか、または、オフにされているかを指定する。ビット１は、低速実行監視時間がオンにされているか、またはオフにされるかどうかを指定する。データ構造４０３の中の残りのビット群は、図４ＡでＷＤＴセッティングフィールドに入力された値を指定することができる。同様に、データ構造４０４は、図４Ａにおいてエラーチェック４０２のセッティングに関係した複数のビットを示している。たとえば、データ構造４０４中のビット０は、図４Ａでバッテリチェック実行セッティングがユーザによりチェックされる場合に「１」である。
【００２４】  図５は、ＯＳプログラム３２をより詳細に示したものである。図５に示されるように、ＯＳプログラム３２はさらに複数の実行モジュールに分割され得る。たとえば、実行モジュール３２ａはある一定のエラー処理を実施し、別の実行モジュール３２ｂはウォッチドッグ・タイマ（ＷＤＴ）を実施し、さらに別の実行モジュール３２ｃは、ラダープログラムで使用されるオペレータに対応する命令コードを実施することができる。たとえば、実行モジュール３２は、ＬＤ、ＭＯＶなどの命令やそれらの定義を含むことができるのである。
【００２５】  図６は、ユーザプログラム３４に格納されたラダープログラムの一例を示している。ラダープログラムは、一種のユーザ・アプリケーション・プログラムである。ラダープログラムの各ステップは、オペレータがそれに従って動作するオペランドで構成されている。オペレータは演算のタイプを示す識別子である。オペランドは、オペレータがそれに従って動作するデータまたは変数である。たとえば、コマンドＬＤ  ＳＭ４００は、ＳＭ４００と称するオペランドと、ＬＤと称するオペレータとの組み合わせで構成される。オペレータＬＤは、ＳＭ４００に格納された値をメモリにロードすることができる命令である。ＬＤ命令は、メモリに格納されたデータをＳＭ４００にロードするように定義され得る。このＬＤ命令は、単なる一例であり、実行環境が異なればＬＤを異なるように定義し得る。
【００２６】  図３Ｂは、コントローラのソフトウェアの内部構造を図示したものである。コントローラのソフトウェアの内部構造は、７つのレイヤ（７つのソフトウェアレイヤ）に分割することが可能であり、ＯＳプログラムファイル３２は、この７つのレイヤのうちの５つのレイヤを含む。なお、図３Ｂには、７つのレイヤのうちの６つのレイヤが例示されている。
【００２７】  ユーザレイヤ３０１は、ＯＳ実行パラメータ、ユーザ・シーケンス・プログラム、及びＩ／Ｏデータを含んでいる。ユーザレイヤ３０１は、コントローラのＯＳプログラム３２（図３Ａ参照）のファイル中に含まれないが、コントローラのＯＳプログラム３２のファイルと密接に関連している。ＯＳ実行パラメータは、ＯＳ実行パラメータ３１（図３Ａ参照）に対応し、ユーザ・シーケンス・プログラムは、ユーザプログラム３４（図３Ａ参照）に対応している。Ｉ／Ｏデータは、ユーザ・シーケンス・プログラムの実行のために使用される入力データおよび出力データを指す。コントローラは、外部ユニット２１、２２から入力データを取得し、ユーザ・シーケンス・プログラムを実行してデータを外部ユニット２１、２２へ出力する。
【００２８】  ユーザＩ／Ｆレイヤ３０２は、コントローラＯＳの一部である。より具体的には、ユーザＩ／Ｆレイヤ３０２は、ＯＳプログラム３２（図３Ａ参照）のファイルの一部である。ユーザＩ／Ｆレイヤ３０２は、ＯＳ実行パラメータ・デコードおよびユーザ・シーケンス・プログラム・デコード等の機能を含んでいる。ＯＳ実行パラメータ・デコード機能は、ＯＳ実行パラメータ３１（図３Ａ参照）を読んで復号するための機能である。同様に、ユーザ・シーケンス・プログラム・デコード機能は、ユーザ・シーケンス・プログラムを読んで復号するための機能である。
【００２９】  アプリケーションレイヤ３０３は、ＯＳプログラム３２（図３Ａ参照）のファイルの一部であり、ユーザ・シーケンス・プログラムの実行を担っている。より具体的には、アプリケーションレイヤ３０３は、ユーザ・シーケンス・プログラム命令実行、及び通信機能を含んでいる。ユーザ・シーケンス・プログラム命令実行は、ユーザＩ／Ｆレイヤ３０２でユーザ・シーケンス・プログラム・デコード機能によって復号された命令を実行するための機能である。通信機能は、コントローラとプログラミングツールとの間の通信を取り扱うための機能である。
【００３０】  診断レイヤ３０４もまた、ＯＳプログラム３２（図３Ａ参照）のファイルの一部であり、コントローラ自体のチェックおよび診断を担っている。診断レイヤ３０４は、診断結果マネージメント、システムバス診断、モジュール診断、及びバッテリ診断を含んでいる。診断結果マネージメントは、システムバス診断機能、モジュール診断機能、および、バッテリ診断機能などの異なる診断機能から得られる診断結果を格納する。システムバス診断は、システムバスの状態のチェックを担う機能である。モジュール診断は、コントローラモジュール自体および外部ユニットの状態のチェックを担う機能である。バッテリ診断はバッテリの状態のチェックを担う機能である。
【００３１】  抽象化レイヤ３０５は、ファイルアクセス、機器のメモリアクセス、モジュールアクセス、通信データバッファ、および動作マネージメントなどの機能を含んでいる。抽象化レイヤ３０５も同様に、ＯＳプログラム３２（図３Ａ参照）のファイルの一部である。ファイルアクセス機能は、他のソフトウェアレイヤに対して、ＯＳ実行パラメータ３１（図３Ａ参照）のファイルまたはユーザ・シーケンス・プログラム（ユーザプログラム３４）のファイルへのアクセスを制御する（例えば、許容したり、禁止したりする）。機器メモリアクセスは、他のレイヤに対して、機器メモリへのアクセスを制御する（例えば、許容したり、禁止したりする）。機器群は、例えば、プログラムを構成する構成要素（たとえば、接点およびコイル群）を含むと共に、コントローラのＣＰＵにおけるプログラミング用の仮想要素を含む。仮想要素は、コントローラのＣＰＵによって使用されるプログラミング言語の一部を含んでも良い。これら仮想要素は、ある機能を特定するとともに、ユーザプログラムで使用される基本的なビルディングブロックを表わしているものを含んでも良い。たとえば、仮想要素（機器）は、スイッチを示すものを含んでもよい。ユーザは、スイッチに対応する仮想要素を組み込むことにより、自分のプログラム中にスイッチを組み込むことができる。機器メモリは揮発性メモリ内にある。モジュールアクセスは、種々のソフトウェアレイヤに対して、外部ユニットのいくつかに理論的にアクセスすることを制御する（例えば、許容したり、禁止したりする）。通信データバッファは、通信プロトコルの使用を要求することなく、ソフトウェアレイヤに対して接続された機器と通信することを制御する（例えば、許容したり、禁止したりする）。動作マネージメントは、ＬＥＤ、スイッチ、および、バッテリを取り扱う。動作マネージメントは、ソフトウェアレイヤ群に対して、ＬＥＤやスイッチ、バッテリへの理論的なアクセスを制御する（例えば、許容したり、禁止したりする）。
【００３２】  最後のレイヤは、ハードウェアＩ／Ｆ（ハードウェアインターフェイス）レイヤ３０６である。ハードウェアＩ／Ｆレイヤ３０６も同様にＯＳプログラム３２（図３Ａ参照）のファイルの一部であり、ハードウェア資源とのインターフェイス処理を行うドライバプログラムを含んでいる。ハードウェアＩ／Ｆレイヤ３０６は、シーケンス命令の実行に基づいて異なるモジュールの制御を担うシーケンス命令実行エンジン・ドライバを含んでいる。ハードウェアＩ／Ｆレイヤ３０６は、不揮発性メモリ用のドライバであるフラッシュＲＯＭドライバと、システムバス用のドライバであるシステムバス通信ドライバと、通信ポートを担う通信ドライバとをさらに含んでいる。
【００３３】  次に、バージョンアップ情報５３の詳細な説明が図７Ａおよび図７Ｂに関して与えられる。バージョンアップ情報５３およびバージョンアップ情報５３に特有の構造は、本発明に対してコントローラのソフトウェアをバージョンアップする際の独自の柔軟性を提供する本発明の重要な特徴である。バージョンアップ情報５３は、サーバ３（図１参照）に格納され、インターネット４を介してサーバ３からプログラミングツール１へ転送される。どのようなタイプのネットワークでもサーバ３からプログラミングツール１へバージョンアップ情報を転送するため使用できることに注目すべきである。バージョンアップソフトウェア５２は、バージョンアップ情報５３の内容に基づいてプログラミングツール１によってシーケンサ２にインストールされる。バージョンアップソフトウェア５２は、バージョンアップ情報５３に基づいて、ＯＳプログラム３２（図３Ａ参照）を新しいバージョンのものに完全に置き換えるか、または、ＯＳプログラム３２の一部を新しいものに置き換える。
【００３４】  バージョンアップ情報５３は、最上位エントリが「コントローラ型式」であるツリー構造で図７Ａおよび図７Ｂに示されている。コントローラ型式７００は、バージョンアップソフトウェア５２が対象とするコントローラのモデルを識別する情報である。コントローラに２つ以上のモデルがあるとき、モデル毎に異なるバージョンアップソフトウェア５２が準備されることが可能であり、２つ以上のバージョンアップ情報５３は同様に各バージョンアップ情報５２に対応して準備され得るものである。
【００３５】  コントローラ型式７００が特定されると、ＯＳバージョン７０１がバージョンアップソフトウェア５２に対して特定される。バージョンアップ情報５３はさらにハードウェア変更の要否７０２を含んでおり、ハードウェア変更の要否７０２は、コントローラが不具合のあるハードウェア設計を含んでいるかどうか、または、ハードウェアの変更が必要であるかどうかを示す。ハードウェア変更の要否７０２が１（true）である場合、ハードウェアの交換が必要であるというメッセージがコントローラのユーザに対して表示され得る。このメッセージはプログラミングツール１を通じて表示されてもよい。
【００３６】  次に、バージョンアップ要因７０３は、メジャーバージョンアップ情報と、マイナーバージョンアップ情報と、不具合情報とを含む。バージョンアップ要因７０３は、さらに保守の重要度、すなわち、緊急性を特定する情報も含む。バージョンアップソフトウェア５２がコントローラの中に未だ存在しない新しい機能を含んでいる場合、メジャーバージョンアップは「１（true）」である。たとえば、新しい機能が、インターネットを介して通信するコントローラのＯＳ（実行環境）に組み込まれることがある。マイナーバージョンアップ情報には、既にコントローラＯＳの一部である、ある一定の機能が改良されるべきであり、かつ、バージョンアップソフトウェア５２は改良点を含んでいることが示されている。たとえば、バージョンアップソフトウェア５２には、拡張ＷＤＴ機能を装備することもできる。マイナーバージョンアップフィールドが「１（true）」である場合、アップグレードの重要度は低いことに注目すべきである。重要性が「低」である場合、ユーザに対して選択肢が提供され、その選択肢を用いてユーザは自分の判断でバージョンアップソフトウェア５２をインストールすることを選択してもよい。
【００３７】  バージョンアップ要因７０３中の不具合フィールド（不具合情報）は、コントローラの実行環境に不具合が存在するかどうかを示す。より具体体には、不具合フィールドは、ＯＳプログラム３２の中に不具合が存在するときに「１（true）」とすることができる。たとえば、不具合フィールドは、ＷＤＴ機能が働かないか、または、ＷＤＴ機能がＷＤＴデータ構造４０３からパラメータを取り出しそこなったときに「１（true）」とすることができる。不具合フィールドが１（true）である場合、アップグレードの重要度は「高」である。重要度が「高」である場合、バージョンアップソフトウェア５２が本質的な問題の修正のため準備されているので、バージョンアップソフトウェア５２が直ちに／強制的にコントローラ（シーケンサ２）にインストールされ得る。しかしながら、コントローラ（シーケンサ２）のユーザは、不具合を含む機能を使用していないことがあり、その場合、ユーザに対して選択肢が提供され、その選択肢を用いてユーザは、コントローラＯＳへのアップグレードの適用をスキップすることを選択してもよい。
【００３８】  さらに、ＯＳバージョンアップ箇所７０４は、バージョンアップが影響を及ぼすＯＳレイヤを指定することができる。たとえば、バージョンアップソフトウェア５２は、診断レイヤのみ、または、ＯＳプログラム３２の診断レイヤおよび抽象化レイヤの両方に影響を及ぼすこともある。
【００３９】  バージョンアップ情報７０５は、バージョンアップソフトウェア５２に影響を受けるＯＳプログラム３２の部分を特定する情報である。このエントリには従属エントリが存在している。たとえば、第１の従属エントリは、バージョンアップ機能一覧７０５−１であり得る。バージョンアップ機能一覧７０５−１はＯＳプログラム３２に含まれている機能を特定する。たとえば、ＷＤＴ機能が影響を受ける場合、バージョンアップ機能一覧７０５−１は、機能１の次のバージョンアップエントリに「１（true）」を指定する。同様に、バージョンアップソフトウェア５２が、初期実行監視、低速実行監視などの他のＯＳ機能に影響を与える場合、バージョンアップエントリはこれらの機能毎に特定され得る。バージョンアップ情報７０５は、別の従属エントリとして、バージョンアップ命令リスト７０５−２をさらに含むこともできる。バージョンアップ命令リスト７０５−２は、バージョンアップがＬＤ、ＭＯＶなど、異なる命令に適用されているかどうかを特定する。
【００４０】  図７Ｂはバージョンアップソフトウェア５２を図式的に示している。バージョンアップソフトウェア５２は、コントローラの実行環境（ＯＳ）へのバージョンアップとして適用されるバイナリデータを含んでいる。例示的な実装によれば、図３Ｂで説明されたソフトウェアレイヤのいずれかがバージョンアップされるべき場合、バージョンアップソフトウェア５２は、そのレイヤの特定の機能に対するバイナリデータを含んでいる。したがって、レイヤの１つがバージョンアップされる必要がない場合、ＯＳデータ７０６はそのレイヤをバージョンアップするためのバイナリデータを含まない。さらに、バージョンアップソフトウェア５２は、ＯＳデータ７０６用のチェックサム７０７を含んでいてもよい。
【００４１】  次に、図２に示す手順の詳細について、図８Ａ及び図８Ｂを用いて説明される。ステップＳ８０１で、ユーザは、対象コントローラに関する保守を実行するため、プログラミングツールを対象コントローラに接続する。ステップＳ８０２−１では、プログラミングツールは、対象コントローラからコントローラ型式の情報を読み出す。ステップＳ８０２−２では、プログラミングツールは、対象コントローラからＯＳバージョン情報を読み出す。Ｓ８０３−１では、プログラミングツールは、対象コントローラをインターネットに接続する。Ｓ８０３−２では、プログラミングツールは、サーバからバージョンアップ情報を読み出すためサーバ３にアクセスする。サーバは２台以上のコントローラのためのバージョンアップ情報を格納していてもよい。したがって、ステップＳ８０４では、プログラミングツールは、対象コントローラに対応するバージョンアップ情報が存在するかどうかを判定する。存在しない場合、手順を終了させるか、もしくは、ユーザが次のコントローラに関する保守を実行することに決めることができる。図８Ａでは、手順を終了させる場合を例示している。上記の各ステップはプログラミングツール１中の論理ユニット群によって実行できることに注目すべきである。すなわち、プログラミングツールは、サーバからデータを読み出す第１の論理ユニットと、ＯＳバージョン型式を読み出す第２の論理ユニットとを有することができるのである。
【００４２】  ステップＳ８０４では、プログラミングツールは、対象コントローラに対応するバージョンアップ情報がサーバから読み出されたバージョンアップ情報の中に存在すると判定された場合、手順をステップＳ８０６−１へ進める。ステップＳ８０６−１では、ＯＳバージョンアップ情報（例えば、図７Ａに示すようなバージョンアップ情報５３）が対応する対象コントローラ用に読み出される。プログラミングツールは、対象コントローラに対応するバージョンアップ情報５３を見つけ出すべくバージョンアップ情報を解析しなければならない場合もある。
【００４３】  ステップＳ８０６−１でバージョンアップ情報が決定される、すなわち対象コントローラに対応するバージョンアップ情報５３を見つけ出されると、ステップＳ８０６−２では、プログラミングツールは、バージョンアップ情報５３におけるハードウェア変更の要否７０２を確認する。ステップＳ８０７では、プログラミングツールは、ハードウェア変更の要否７０２がバージョンアップ情報５３中で「１（true）」であるかどうかをチェックする。プログラミングツールは、「１（true）」である場合（ステップＳ８０７で「Ｙｅｓ」の場合）、手順をステップＳ８０８へ進める。ステップＳ８０８では、プログラミングツールは、管理者に、ＰＬＣに対してハードウェアの交換が必要であることを通知する。たとえば、プログラミングツールは、コントローラを交換する必要があることを通知する。プログラミングツールは、ステップＳ８０７で「０（false）」である場合（ステップＳ８０７で「Ｎｏ」の場合）、手順をＳ８０９ー１へ進める。ステップＳ８０９ー１では、プログラミングツールは、バージョンアップ情報５３におけるＯＳバージョンアップ箇所７０４を確認する。ステップＳ８０９−２では、プログラミングツールは、このバージョンアップによって訂正されるべき不具合があるかどうかを判定する。これは、バージョンアップ情報５３中のバージョンアップ要因７０３の下で「不具合」情報が「１（true）」であるかどうかをチェックすることにより判定される。プログラミングツールは、不具合情報が「１（true）」である場合（ステップＳ８０９−２で「Ｙｅｓ」の場合）、「アップグレード」の重要度は高であるので、手順をステップＳ８１０−１へ進める。プログラミングツールは、不具合情報が「０（false）」である場合（ステップＳ８０９−２で「Ｎｏ」の場合）、手順を終了させる。
【００４４】  ステップＳ８１０−１では、プログラミングツールは、バージョンアップ情報５３におけるＯＳバージョンアップ箇所７０４を確認する。ステップＳ８１０−２では、プログラミングツールは、バージョンアップがコントローラのＯＳプログラム３２の基本部分に影響を与えるかどうかをチェックする。すなわち、プログラミングツールは、ＯＳバージョンアップ箇所７０４の下で診断レイヤ、抽象化レイヤ、ハードウェアＩ／Ｆレイヤのいずれか１つが「１（true）」である場合、そのバージョンアップがコントローラのＯＳプログラム３２の基本部分に影響を与えると判定する。プログラミングツールは、バージョンアップがコントローラのＯＳプログラム３２の基本部分に影響を与えると判定した場合（ステップＳ８１０−２で「Ｙｅｓ」の場合）、手順をステップＳ８１４ー１へそのまま進める。ステップ８１４ー１では、プログラミングツールは、インターネット経由でサポートサイトにアクセスし、サポートサイトからＯＳデータを読み出す。ステップＳ８１４ー２では、プログラミングツールは、バージョンアップソフトウェア５２を用いて、コントローラのＯＳプログラム３２の基本部分の中の様々なレイヤの対応する部分を差し替える。たとえば、抽象化レイヤ３０５に不具合がある場合、プログラミングツールは、バージョンアップソフトウェア５２を用いて、ＯＳプログラム３２の中の抽象化レイヤ３０５を差し替える。
【００４５】  一方、プログラミングツールは、バージョンアップがコントローラのＯＳプログラム３２の基本部分に影響を与えないと判定した場合（ステップＳ８１０で「Ｎｏ」の場合）、手順をステップＳ８１１−１へ進める。ステップＳ８１１−１では、プログラミングツールは、対象コントローラからＯＳ実行パラメータ３１およびＯＳプログラム３２を読み出す。ステップＳ８１２ー１及びステップＳ８１２ー２では、プログラミングツールは、バージョンアップ情報５３を参照することにより、ＯＳ実行パラメータおよびＯＳプログラムの中でバージョンアッププログラム５２による影響を受ける部分を判定する。たとえば、ステップＳ８１２−１では、プログラミングツールは、ＯＳ実行パラメータ３１を読み出すことにより、ユーザが使用しているＯＳ機能を特定する。たとえば、データ構造４０３（図４Ｂを参照）のビット中で１つが設定される場合、これは、ＷＤＴ機能がＷＤＴセッティングを使用していることを示唆していると言える。さらに、ユーザによって使用されずにバージョンアップソフトウェア５２による影響を受ける機能が存在する可能性がある。そこで、ステップＳ８１２−２では、プログラミングツールは、バージョンアップ情報５３におけるバージョンアップ機能一覧７０５−１を確認する。バージョンアップ機能一覧７０５−１は、バージョンアップソフトウェア５２による影響を受けている機能のリストを提供する。
【００４６】  なお、ユーザによって使用される機能に基づいて、プログラミングツールは、これらの機能をバージョンアップすべきかどうかについての選択肢をユーザに提供してもよい。
【００４７】  さらに、バージョンアップ機能一覧とユーザによって使用される機能との間に重複がない場合、ＯＳプログラム３２に対してバージョンアップが適用されなくてもよい可能性がある。これは、バージョンアップ機能一覧中に特定されたいくつかの機能に不具合があるが、これらの機能がユーザによって使用されていないときに起こり得る。したがって、ＯＳプログラム３２中のこれらの機能に対してはバージョンアップを行わなくてもよい可能性もある。そこで、ステップＳ８１０−３では、プログラミングツールは、バージョンアップの二次的な必要性を確認するために、次のチェックを行う。プログラミングツールは、バージョンアップ機能一覧とユーザによって使用される機能との間に重複があるかどうか、すなわち不具合対応のＯＳデータがユーザにより使用される機能を対象としているか否かをチェックする。プログラミングツールは、不具合対応のＯＳデータがユーザにより使用される機能を対象としている場合（ステップＳ８１０−３で「Ｙｅｓ」の場合）、手順をステップＳ８１４−１へ進め、不具合対応のＯＳデータがユーザにより使用される機能を対象としていない場合（ステップＳ８１０−３で「Ｎｏ」の場合）、手順をステップＳ８１１−２へ進める。
【００４８】  なお、ステップＳ８１２−２でユーザに選択肢を提供したときは、ユーザがバージョンアップすべきとの選択肢を選択した場合がステップＳ８１０−３で「Ｙｅｓ」の場合に対応し、ユーザがバージョンアップすべきでないとの選択肢を選択した場合がステップＳ８１０−３で「Ｎｏ」の場合に対応する。
【００４９】  さらに、プログラミングツールは、ラダープログラムまたはアプリケーションプログラムの中でユーザによって使用されている命令／オペレータを抽出することも可能である。プログラミングツールは、抽出された命令をバージョンアップ命令リスト７０５−２中の命令と比較し、それに応じてラダープログラムに対してバージョンアップを適用することができる。そこで、ステップＳ８１１−２では、プログラミングツールは、対象コントローラからＯＳ実行パラメータ３１およびＯＳプログラム３２を読み出す。ステップＳ８１２ー３及びステップＳ８１２ー４では、プログラミングツールは、バージョンアップ情報５３を参照することにより、ＯＳ実行パラメータおよびＯＳプログラムの中でバージョンアッププログラム５２による影響を受ける部分を判定する。たとえば、ステップＳ８１２−３では、プログラミングツールは、ＯＳ実行パラメータ３１を読み出すことにより、ユーザが使用している命令を特定する。さらに、ユーザによって使用されずにバージョンアップソフトウェア５２による影響を受ける命令が存在する可能性がある。そこで、ステップＳ８１２−４では、プログラミングツールは、バージョンアップ情報５３におけるバージョンアップ命令一覧７０５−２を確認する。バージョンアップ命令一覧７０５−２は、バージョンアップソフトウェア５２による影響を受けている命令のリストを提供する。
【００５０】  なお、ユーザによって使用される命令に基づいて、プログラミングツールは、これらの命令をバージョンアップすべきかどうかについての選択肢をユーザに提供してもよい。
【００５１】  さらに、バージョンアップ命令一覧とユーザによって使用される機能との間に重複がない場合、ＯＳプログラム３２に対してバージョンアップが適用されなくてもよい可能性がある。これは、バージョンアップ命令一覧中に特定されたいくつかの命令に不具合があるが、これらの命令がユーザによって使用されていないときに起こり得る。したがって、ＯＳプログラム３２中のこれらの命令に対してはバージョンアップを行わなくてもよい可能性もある。そこで、ステップＳ８１０−４では、プログラミングツールは、バージョンアップの三次的な必要性を確認するために、次のチェックを行う。プログラミングツールは、バージョンアップ命令一覧とユーザによって使用される命令との間に重複があるかどうか、すなわち不具合対応のＯＳデータがユーザにより使用される命令を対象としているか否かをチェックする。プログラミングツールは、不具合対応のＯＳデータがユーザにより使用される機能を対象としている場合（ステップＳ８１０−４で「Ｙｅｓ」の場合）、手順をステップＳ８１４−１へ進め、不具合対応のＯＳデータがユーザにより使用される機能を対象としていない場合（ステップＳ８１０−４で「Ｎｏ」の場合）、手順を終了させる。
【００５２】  なお、ステップＳ８１２−４でユーザに選択肢を提供したときは、ユーザがバージョンアップすべきとの選択肢を選択した場合がステップＳ８１０−４で「Ｙｅｓ」の場合に対応し、ユーザがバージョンアップすべきでないとの選択肢を選択した場合がステップＳ８１０−４で「Ｎｏ」の場合に対応する。
【００５３】  上記のような手順によって、ユーザは、コントローラ・オペレーティング・システムのバージョンアップの手順に対してよりよい制御を供与され得るのであり、もしユーザがバージョンアップによる影響を受けるであろう、ある機能やプログラム群を使用していない場合、コントローラに対してバージョンアップは適用されないような制御を実現できる。
【００５４】  次に、プログラミングツールの内部構造が図９を参照してより詳細に説明される。プログラミングツール１は、コントローラのコントローラ型式およびコントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニット９０１と、コントローラ型式およびバージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニット９０２と、バージョンアップ情報に基づいてオペレーティングシステム中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニット９０３と、オペレーティングシステム中の判定された部分をバージョンアップするバージョンアップユニット９０４とを含む。
【００５５】  バージョンアップ情報は、オペレーティングシステムの中でバージョンアップすべき部分を特定するための情報を含む。先に述べたように、バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含む。バージョンアップ機能一覧は、オペレーティングシステムに含まれる、バージョンアップされるべき機能に関する情報を含む。バージョンアップエリア判定ユニット９０３は、オペレーティングシステム実行パラメータを読み出すことにより、オペレーティングシステムに含まれる機能がコントローラのユーザによって使用されているかどうかを判定することができる。バージョンアップユニット９０４は、オペレーティングシステムの機能の中でユーザによって使用されている機能だけにバージョンアップを適用することができる。
【００５６】  さらに、プログラミングツールは、バージョンアップ機能一覧から一つの機能をバージョンアップするかどうかを選択するための選択肢をユーザに提供することができる。バージョンアップユニット９０４は、それらの選択肢を用いてユーザによって選択された機能だけをバージョンアップする。
【００５７】  バージョンアップエリア判定ユニット９０３は、ユーザ・アプリケーション・プログラムがバージョンアップ情報５３で特定された複数の命令から一つの命令を使用しているかどうかをさらに判定することができ、バージョンアップユニット９０４は、ユーザ・アプリケーション・プログラムが複数の命令の中の少なくとも１個を使用していると判定された場合、このユーザ・アプリケーション・プログラムをバージョンアップすることができる。
【００５８】  フローチャートやブロック図の各ブロック、及びフローチャートやブロック図内のブロック群の組み合わせは、コンピュータプログラム命令群によって実施できることが理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、または、他のプログラマブル・データ処理装置等のプロセッサに供給され、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令群がフローチャートやブロック図のブロックまたは複数のブロックで特定された機能／動作を実行する手段を生成するようにできる。さらに、図９におけるブロック群の各々は、ＦＰＧＡ、ＡＳＩＣなどのプロセッサによって実装可能である。
【００５９】  これらのコンピュータプログラム命令群は、コンピュータ、あるいは他のプログラマブル・データ処理装置、または他の機器群に対してもそれらが特定の方法で機能するように指示できるコンピュータ読み取り可能な媒体、またはより具体的には、コンピュータ読み取り可能な記憶媒体に格納され、それによってコンピュータで読み取り可能な媒体に格納された命令群がフローチャートやブロック図のブロックまたはブロック群で特定される機能／動作を実施する命令群を含む物を製造できるようにすることが可能である。
【００６０】  以上の実施形態群は、単なる例示であり、本発明を制限するように解釈されるべきでない。本教示は、他のタイプの装置に容易に適用可能である。同様に、本発明の実施形態の説明は、請求項の範囲を制限することなく、例示的であることが意図され、多数の代替、変更および変形が可能であることは当業者にとって明白であろう。
【符号の説明】
【００６１】    １  プログラミングツール    ２  シーケンサ    ３  サーバ    ４  インターネット  ５２  バージョンアップソフトウェア  ５３  バージョンアップ情報
【図１】
2012043008.tif 000003
【図２】
2012043008.tif 000004
【図３Ａ】
2012043008.tif 000005
【図３Ｂ】
2012043008.tif 000006
【図４Ｂ】
2012043008.tif 000007
【図５】
2012043008.tif 000008
【図６】
2012043008.tif 000009
【図７Ａ】
2012043008.tif 000010
【図７Ｂ】
2012043008.tif 000011
【図８Ａ】
2012043008.tif 000012
【図８Ｂ】
2012043008.tif 000013
【図９】
2012043008.tif 000014
【図４Ａ】
2012043008.tif 000015
【手続補正書】
【提出日】平成24年2月28日(2012.2.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法であって、
前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すステップと、
前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、
前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、
前記実行環境の中で前記判定された部分をバージョンアップするステップと、
を備え、
前記バージョンアップ情報は、
ハードウェア変更の要否に関する情報と、
訂正されるべき不具合の有無に関する情報と、
バージョンアップ機能一覧と、
バージョンアップ命令一覧と、
を含み、
前記方法は、
前記バージョンアップ情報に基づきハードウェアの変更が必要であると判断する場合に、前記コントローラを交換する必要があることをユーザに通知するステップをさらに備え、
前記判定するステップは、
前記バージョンアップ情報に基づき訂正されるべき不具合があると判断する場合に、バージョンアップの１次的な必要性があると判断するステップと、
前記バージョンアップ情報に基づきバージョンアップ機能一覧とユーザによって使用される機能との間に重複があると判断する場合に、バージョンアップの２次的な必要性があると判断するステップと、
前記バージョンアップ情報に基づきバージョンアップ命令一覧とユーザによって使用される命令との間に重複があると判断する場合に、バージョンアップの３次的な必要性があると判断するステップと、
前記１次的な必要性と前記２次的な必要性又は前記３次的な必要性とがある部分を前記バージョンアップされるべき部分として判定するステップと、
を含む
ことを特徴とする方法。
【請求項２】
前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定するステップと、
前記実行環境中、前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用するステップと、
をさらに備える、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択するための選択肢を前記ユーザに提供するステップと、
前記選択肢を用いて前記ユーザによって選択された機能だけをバージョンアップするステップと、
をさらに備える、
ことを特徴とする請求項１に記載の方法。
【請求項４】
ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定するステップと、
前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも１つを使用していると判定された場合に前記ユーザ・アプリケーション・プログラムをバージョンアップするステップと、
をさらに備える、
ことを特徴とする請求項１に記載の方法。
【請求項５】
プログラマブル・ロジック・コントローラのソフトウェア保守を実行するシステムであって、
プログラミングツールと、
コントローラと、
を備え、
前記プログラミングツールは、前記コントローラの実行環境をバージョンアップするように操作可能であり、
前記プログラミングツールは、
前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニットと、
前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニットと、
前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニットと、
前記実行環境の中の前記判定された部分をバージョンアップするバージョンアップユニットと、
を含み、
前記バージョンアップ情報は、
ハードウェア変更の要否に関する情報と、
訂正されるべき不具合の有無に関する情報と、
バージョンアップ機能一覧と、
バージョンアップ命令一覧と、
を含み、
前記システムは、
前記バージョンアップ情報に基づきハードウェアの変更が必要であると判断する場合に、前記コントローラを交換する必要があることをユーザに通知する手段をさらに含み、
前記バージョンアップエリア判定ユニットは、
前記バージョンアップ情報に基づき訂正されるべき不具合があると判断する場合に、バージョンアップの１次的な必要性があると判断する手段と、
前記バージョンアップ情報に基づきバージョンアップ機能一覧とユーザによって使用される機能との間に重複があると判断する場合に、バージョンアップの２次的な必要性があると判断する手段と、
前記バージョンアップ情報に基づきバージョンアップ命令一覧とユーザによって使用される命令との間に重複があると判断する場合に、バージョンアップの３次的な必要性があると判断する手段と、
前記１次的な必要性と前記２次的な必要性又は前記３次的な必要性とがある部分を前記バージョンアップされるべき部分として判定する手段と、
を含む
ことを特徴とするシステム。
【請求項６】
前記バージョンアップエリア判定ユニットは、前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定し、
前記バージョンアップユニットは、前記実行環境の中で、前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用する、
ことを特徴とする請求項５に記載のシステム。
【請求項７】
前記システムでは、前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択するための選択肢が前記ユーザに提供され、
前記バージョンアップユニットは、前記ユーザによって選択された機能だけをバージョンアップする、
ことを特徴とする請求項５に記載のシステム。
【請求項８】
前記バージョンアップエリア判定ユニットは、ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定し、
前記バージョンアップユニットは、前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも１つを使用していると判定された場合に、前記ユーザ・アプリケーション・プログラムをバージョンアップする、
ことを特徴とする請求項５に記載のシステム。
【請求項９】
コンピュータに、プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法を実行させるためのプログラムであって、
前記コンピュータに、
前記コントローラのコントローラ型式およびオペレーティングシステムのバージョン情報を読み出すステップと、
前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、
前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、
前記実行環境の中で前記判定された部分をバージョンアップするステップと、
を実行させ、
前記バージョンアップ情報は、
ハードウェア変更の要否に関する情報と、
訂正されるべき不具合の有無に関する情報と、
バージョンアップ機能一覧と、
バージョンアップ命令一覧と、
を含み、
前記コンピュータに、
前記バージョンアップ情報に基づきハードウェアの変更が必要であると判断する場合に、前記コントローラを交換する必要があることをユーザに通知するステップをさらに実行させ、
前記判定するステップは、
前記バージョンアップ情報に基づき訂正されるべき不具合があると判断する場合に、バージョンアップの１次的な必要性があると判断するステップと、
前記バージョンアップ情報に基づきバージョンアップ機能一覧とユーザによって使用される機能との間に重複があると判断する場合に、バージョンアップの２次的な必要性があると判断するステップと、
前記バージョンアップ情報に基づきバージョンアップ命令一覧とユーザによって使用される命令との間に重複があると判断する場合に、バージョンアップの３次的な必要性があると判断するステップと、
前記１次的な必要性と前記２次的な必要性又は前記３次的な必要性とがある部分を前記バージョンアップされるべき部分として判定するステップと、
を含む
ことを特徴とするプログラム。
【請求項１０】
前記コンピュータに、
前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定するステップと、
前記実行環境の中で前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用するステップと、
をさらに実行させる、
ことを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記コンピュータに、
前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択する余地を前記ユーザに提供するステップと、
前記ユーザによって選択された機能だけをバージョンアップするステップと、
をさらに実行させる、
ことを特徴とする請求項９に記載のプログラム。
【請求項１２】
前記コンピュータに、
ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定するステップと、
前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも１つを使用していると判定された場合に前記ユーザ・アプリケーション・プログラムをバージョンアップするステップと、
をさらに実行させる、
ことを特徴とする請求項９に記載のプログラム。
【国際調査報告】
2012043008.tif 000016
2012043008.tif 000017
2012043008.tif 000018
2012043008.tif 000019