(57)【特許請求の範囲】
【請求項１】
複数のプログラマブルロジックコントローラと、
前記複数のプログラマブルロジックコントローラに接続されるとともに前記複数のプログラマブルロジックコントローラを制御するコンピュータと、
前記コンピュータを制御するとともに前記プログラマブルロジックコントローラを用いた生産の計画を設定する管理機器と、
を備え、
前記複数のプログラマブルロジックコントローラは、それぞれ機能ユニットを有し、
前記コンピュータは、
前記機能ユニットのファームウェアの更新を開始する前に、前記ファームウェアを更新する前の古いファームウェアをバックアップし、
前記機能ユニットにプログラムを書き込むエンジニアリングツールプログラムを用いて、前記機能ユニットのそれぞれのファームウェアを更新し、
前記ファームウェアの更新が正常に完了しなかった場合に、前記古いファームウェアを前記更新が正常に完了しなかったユニットに書き戻し、
前記管理機器は、
更新が正常に完了しなかったユニットの復旧に要する時間に基づいて、前記生産の計画を再設定することを特徴とするネットワークシステム。
【請求項２】
前記機能ユニットは、
前記ファームウェアの更新が正常に完了したか否かを判定するとともに、判定結果を前記コンピュータに通知し、
前記コンピュータは、
前記ファームウェアの更新が正常に完了しなかったことの通知を前記機能ユニットから受けた場合に、前記古いファームウェアを前記更新が正常に完了しなかったユニットに書き戻すことを特徴とする請求項１に記載のネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラが備えるユニットのファームウェアアップデートを行なうエンジニアリングツールプログラムおよびネットワークシステムに関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（ＰＬＣ）は、ＣＰＵユニットおよびインテリジェント機能ユニットなどを備えている。これらのユニットのファームウェアに対しては、手動でアップデートなどが行われていた。このため、ファームウェアのアップデートには、手間がかかっていた。【０００３】
特許文献１に記載のファームウェア更新システムでは、管理装置がネットワークを介してＰＬＣ装置に接続されている。そして、管理装置は、基幹部分よりも下に接続されるＰＬＣにファームウェアの更新を実行している。【０００４】
特許文献２に記載の情報処理システムでは、マスタＣＰＵを持つＰＬＣと、スレーブＣＰＵを持つ複数のＰＬＣとがシステムバスで接続されている。そして、マスタＣＰＵが、スレーブＣＰＵのファームウェアを書き換えている。【０００５】
特許文献３に記載のファームウェア用のアップデート治具は、ＰＣとアップデート対象ＰＬＣとを接続している。そして、アップデート治具は、ＰＣから送られてきたファームウェアアップデートファイルに基づいて、ＰＬＣにファームウェアアップデートファイルをダウンロードしている。このとき、アップデート治具は、アップデートファイルのバージョンを確認しながら複数台のＰＬＣにファームウェアアップデートを行っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１９５７６６号公報
【特許文献２】特開２００１−６７２１５号公報
【特許文献３】特開２０１２−３６５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前記第１および第２の従来技術では、ファームウェアをアップデートするためのＰＣおよび管理ＰＬＣが必要である。そして、管理ＰＬＣによって管理されているＰＬＣに対して、ファームウェアがアップデートされている。このため、システム構成が複雑になるという問題があった。また、前記第３の従来技術では、アップデート治具をシステムに装着する必要があったので、システム構成が複雑になるという問題があった。【０００８】
本発明は、上記に鑑みてなされたものであって、簡易な構成で複数のファームウェアをアップデートすることができるエンジニアリングツールプログラム、ネットワークシステムおよびプログラマブルロジックコントローラを得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明のネットワークシステムは、複数のプログラマブルロジックコントローラと、前記複数のプログラマブルロジックコントローラに接続されるとともに前記複数のプログラマブルロジックコントローラを制御するコンピュータと、前記コンピュータを制御するとともに前記プログラマブルロジックコントローラを用いた生産の計画を設定する管理機器と、を備え、前記複数のプログラマブルロジックコントローラは、それぞれ機能ユニットを有し、前記コンピュータは、前記機能ユニットのファームウェアの更新を開始する前に、前記ファームウェアを更新する前の古いファームウェアをバックアップし、前記機能ユニットにプログラムを書き込むエンジニアリングツールプログラムを用いて、前記機能ユニットのそれぞれのファームウェアを更新し、前記ファームウェアの更新が正常に完了しなかった場合に、前記古いファームウェアを前記更新が正常に完了しなかったユニットに書き戻し、前記管理機器は、更新が正常に完了しなかったユニットの復旧に要する時間に基づいて、前記生産の計画を再設定することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、簡易な構成で複数のファームウェアをアップデートすることが可能になるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施の形態に係るネットワークシステムの構成を示す図である。
【図２】図２は、ＰＬＣの構成例を示す図である。
【図３】図３は、１つのユニットに対してファームウェアのアップデートを開始する際のＰＣの処理手順を示すフローチャートである。
【図４】図４は、１つのユニットに対するファームウェアのアップデート処理の処理手順を示すフローチャートである。
【図５】図５は、複数のユニットに対してファームウェアのアップデートを開始する際のネットワークシステムの処理手順を示すフローチャートである。
【図６】図６は、複数のユニットに対するファームウェアのアップデート処理の処理手順を示すフローチャートである。
【図７】図７は、ＰＣのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明の実施の形態に係るエンジニアリングツールプログラムおよびネットワークシステムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態
図１は、本発明の実施の形態に係るネットワークシステムの構成を示す図である。本実施の形態のネットワークシステム１は、ＰＬＣ（プログラマブルロジックコントローラ）が備えるユニット（機能ユニット）のファームウェアに対して、自動でアップデートを行うシステムである。
【００１４】
ネットワークシステム１は、管理機器（生産管理装置）１０と、ＰＣ（Personal  Computer）２０（１）〜２０（Ｎ）と、ＰＬＣ３０（１）〜３０（Ｍ）と、を備えている。ここでのＭ，Ｎは、２以上の自然数である。
【００１５】
ネットワークシステム１では、各ＰＣ２０（１）〜２０（Ｎ）がネットワークを用いて管理機器１０に接続されている。また、各ＰＣ２０（１）〜２０（Ｎ）には、管理するＰＬＣが接続されている。ここでは、ＰＣ２０（１）にＰＬＣ３０（１），３０（２）が接続され、ＰＣ２０（２）にＰＬＣ３０（３）〜３０（５）が接続され、ＰＣ２０（Ｎ）にＰＬＣ３０（Ｍ）が接続されている場合を示している。したがって、ＰＣ２０（１）は、ＰＬＣ３０（１），３０（２）を管理し、ＰＣ２０（２）は、ＰＬＣ３０（３）〜３０（５）を管理し、ＰＣ２０（Ｎ）は、ＰＬＣ３０（Ｍ）を管理する。
【００１６】
なお、以下の説明では、ＰＣ２０（１）〜２０（Ｎ）の何れか１つ又は複数をＰＣ２０という場合がある。また、ＰＬＣ２０（１）〜２０（Ｍ）の何れか１つ又は複数をＰＬＣ３０という場合がある。
【００１７】
各ＰＣ２０（１）〜２０（Ｎ）は、それぞれエンジニアリングツール２１（１）〜２１（Ｎ）を有している。エンジニアリングツール２１（１）〜２１（Ｎ）は、ＰＬＣ３０の制御を行うツール（システム設定プログラム）である。エンジニアリングツール２１（１）〜２１（Ｎ）は、それぞれＰＬＣ３０（１）〜３０（Ｍ）を動作させるためのプログラム（ファームウェアなど）をＰＬＣ３０（１）〜３０（Ｍ）に書き込むためのソフトウェアである。
【００１８】
換言すると、エンジニアリングツール２１（１）〜２１（Ｎ）は、ＰＬＣ３０（１）〜３０（Ｍ）の動作のさせ方をプログラミングするためのツールである。エンジニアリングツール２１（１）〜２１（Ｎ）は、コンピュータ読み取り可能かつ非遷移的な記録媒体（nontransitory computer readable medium）などに記録されている。
【００１９】
本実施の形態のエンジニアリングツール２１（１）〜２１（Ｎ）は、ＰＬＣ３０が具備するファームウェアをアップデートする機能を備えている。なお、以下の説明では、エンジニアリングツール２１（１）〜２１（Ｎ）の何れか１つ又は複数をエンジニアリングツール２１という場合がある。
【００２０】
管理機器１０は、ＰＣ２０を制御するコンピュータなどである。管理機器１０は、生産工程のスケジュール管理を行うスケジュール管理部１１を有している。スケジュール管理部１１は、各場所に設置されているＰＬＣ３０の立ち上げの順番（起動順序）と、各ＰＬＣ３０の動作スケジュール（生産の計画）とを記憶している。スケジュール管理部１１がスケジュール管理を行う生産工程は、ＰＬＣ３０を用いて実行されるものである。
【００２１】
ここで、ＰＬＣ３０の構成例について説明する。なお、ＰＬＣ３０（１）〜３０（Ｍ）は、それぞれ同様の構成を有しているので、ここでは、ＰＬＣ３０（１）の構成について説明する。図２は、ＰＬＣの構成例を示す図である。ＰＬＣ３０（１）は、ＣＰＵユニット３１（１）と、インテリジェント機能ユニット３２（１）とを有している。
【００２２】
ＣＰＵユニット３１（１）は、ＰＬＣ３０（１）を制御する。ＣＰＵユニット３１（１）は、エンジニアリングツール２１（１）からファームウェアアップデートの指示を受けた場合に、エンジニアリングツール２１（１）からアップデート用のファームウェアを受け取る。ＣＰＵユニット３１（１）は、アップデート用のファームウェアを受け取ると、ＣＰＵユニット３１（１）が備えているファームウェアのアップデートを行う。
【００２３】
インテリジェント機能ユニット３２（１）は、例えば、Ａ／Ｄ変換（Analog/Digital  Conversion）ユニットやＤ／Ａ変換（Digital/Analog  Conversion）ユニットなどの入出力以外の機能を有したユニットである。インテリジェント機能ユニット３２（１）は、エンジニアリングツール２１（１）からファームウェアアップデートの指示を受けた場合に、エンジニアリングツール２１（１）からアップデート用のファームウェアを受け取る。インテリジェント機能ユニット３２（１）は、アップデート用のファームウェアを受け取ると、インテリジェント機能ユニット３２（１）が備えているファームウェアのアップデートを行う。
【００２４】
同様に、各ＰＬＣ３０（２）〜３０（Ｍ）は、それぞれ図示しないＣＰＵユニット３１（２）〜３１（Ｍ）と、図示しないインテリジェント機能ユニット３２（２）〜３２（Ｍ）とを有している。ＣＰＵユニット３１（２）〜３１（Ｍ）は、ＣＰＵユニット３１（１）と同様の機能を有し、インテリジェント機能ユニット３２（２）〜３２（Ｍ）は、インテリジェント機能ユニット３２（１）と同様の機能を有している。なお、以下の説明では、ＣＰＵユニット３１（１）〜３１（Ｍ）の何れか１つ又は複数をＣＰＵユニット３１という場合がある。また、インテリジェント機能ユニット３２（１）〜３２（Ｍ）の何れか１つ又は複数をインテリジェント機能ユニット３２という場合がある。
【００２５】
次に、１台のＰＣ２０が、１つのユニットに対してファームウェアのアップデートを開始する際のＰＣ２０の動作について説明する。図３は、１つのユニットに対してファームウェアのアップデートを開始する際のＰＣの処理手順を示すフローチャートである。図３では、エンジニアリングツール２１（１）が、その管理下にあるＰＬＣ３０（１）のファームウェアをアップデート（バージョンアップ）可能であるかを確認する手順（アップデートの実行を開始するまでの準備手順）を示している。
【００２６】
ＰＣ２０（１）のエンジニアリングツール２１（１）は、管理下にあるＰＬＣ３０（１）の１つのユニットに対してファームウェアのアップデートが可能であるか否かを確認開始する（ステップＳ１００）。
【００２７】
このとき、エンジニアリングツール２１（１）は、確認対象となっているユニットにアクセスし、このユニットからファームウェアバージョンを取得する。そして、エンジニアリングツール２１（１）は取得したファームウェアバージョンに基づいて、確認対象となっているユニットが、ファームウェアのアップデートを行うことができるか否か（アップデート対象であるか否か）を確認する（ステップＳ１０１）。ファームウェアのアップデートが行われるユニットは、例えば、ＣＰＵユニット３１（１）またはインテリジェント機能ユニット３２（１）である。
【００２８】
エンジニアリングツール２１（１）は、取得したファームウェアバージョンがアップデートしようとしているファームウェアのバージョンよりも古い場合に、ＰＬＣ３０（１）のファームウェアはアップデート可能であると判断する。
【００２９】
エンジニアリングツール２１（１）は、ＰＬＣ３０（１）のファームウェアはアップデート可能であると判断した場合（ステップＳ１０１、Ｙｅｓ）、外部機器などに保存されているアップデート対象のファームウェアを、エンジニアリングツール２１（１）がインストールされているＰＣ２０に保存する（ステップＳ１０２）。そして、エンジニアリングツール２１（１）は、ファームウェアアップデートの実行段階へ移行する（ステップＳ１０３）。なお、アップデート対象のファームウェアは、ファームウェアアップデートの実行前であれば、何れのタイミングでＰＣ２０に保存しておいてもよい。
【００３０】
一方、エンジニアリングツール２１（１）は、ＰＬＣ３０（１）のファームウェアはアップデートが不可能であると判断した場合（ステップＳ１０１、Ｎｏ）、ファームウェアアップデートの実行を中止する（ステップＳ１０４）。
【００３１】
次に、ファームウェアアップデートの実行処理について説明する。図４は、１つのユニットに対するファームウェアのアップデート処理の処理手順を示すフローチャートである。図４では、エンジニアリングツール２１（１）が１つのユニット（例えば、ＣＰＵユニット３１（１））に対してファームウェアのアップデートを実行し、アップデートが完了するまでの処理手順を示している。
【００３２】
エンジニアリングツール２１（１）が、ファームウェアアップデートの実行段階へ移行すると（図３のステップＳ１０３の後）、エンジニアリングツール２１（１）は、ファームウェアのアップデートの実行を開始する（ステップＳ１１０）。
【００３３】
エンジニアリングツール２１（１）は、ＰＬＣ３０（１）に対し、１つのユニット（ＣＰＵユニット３１（１））のアップデート実行を指示する（ステップＳ１１１）。このアップデート実行の指示は、エンジニアリングツール２１（１）からアップデート対象となっているユニットに送られる。
【００３４】
ＰＣ２０（１）は、アップデート対象のＰＬＣ３０（１）から、ＰＬＣ３０（１）内のデータ（プログラム、パラメータなど）と、現在のファームウェアとを読み出してバックアップする（ステップＳ１１２）。
【００３５】
具体的には、エンジニアリングツール２１（１）は、ＰＬＣ３０（１）のＣＰＵユニット３１（１）へバックアップの指示を出す。この指示を受けたＣＰＵユニット３１（１）は、ＰＣ２０（１）にＰＬＣ３０（１）内のプログラム、パラメータ、現在のファームウェアデータをバックアップさせる。
【００３６】
バックアップが完了した後、エンジニアリングツール２１（１）は、格納しておいた新しいファームウェアをＰＬＣ３０（１）のＣＰＵユニット３１（１）に対して書き込む。これにより、ファームウェアのアップデートが実行される（ステップＳ１１３）。ＣＰＵユニット３１（１）に対して書き込まれる新しいファームウェアは、例えば、ＣＰＵユニット３１（１）にインストールされているファームウェアに対して新しい機能が盛り込まれたファームウェアである。
【００３７】
なお、エンジニアリングツール２１（１）は、ＣＰＵユニット３１（１）に対して古いバージョンのファームウェアを書き込んでもよい。換言すると、新しいファームウェアへの書き換えは、ダウングレードであってもよい。このように、エンジニアリングツール２１（１）は、ＣＰＵユニット３１（１）へのファームウェアの更新処理として、ファームウェアのアップグレードまたはダウングレードを実行する。以下では、エンジニアリングツール２１（１）が、ＣＰＵユニット３１（１）にファームウェアのアップグレードを実行する場合について説明する。
【００３８】
アップデートが実行されたＣＰＵユニット３１（１）は、ファームウェアのアップデートが正常に完了したか否かを自己確認する（ステップＳ１１４）。ＣＰＵユニット３１（１）は、確認結果をエンジニアリングツール２１（１）に通知する。
【００３９】
アップデートが正常に完了していない場合（ステップＳ１１４、Ｎｏ（１回目））、エンジニアリングツール２１（１）は、格納していた新しいファームウェアをＰＬＣ３０（１）のＣＰＵユニット３１（１）に対して書き込む。これにより、ファームウェアのアップデートが実行される（ステップＳ１１３）。
【００４０】
そして、アップデートが実行されたＣＰＵユニット３１（１）は、ファームウェアのアップデートが正常に完了したか否かを自己確認する（ステップＳ１１４）。ＣＰＵユニット３１（１）は、確認結果をエンジニアリングツール２１（１）に通知する。
【００４１】
再びアップデートが正常に完了していない場合（ステップＳ１１４、Ｎｏ（２回目））、エンジニアリングツール２１（１）は、バックアップしておいた旧バージョンのファームウェアをＰＬＣ３０（１）のＣＰＵユニット３１（１）に対して書き込む（ステップＳ１１５）。
【００４２】
換言すると、２回ともアップデートが正常に完了しなければ、旧バージョンのファームウェアがＣＰＵユニット３１（１）に対してリストア（再設定）される。これにより、ＣＰＵユニット３１（１）には、旧バージョンのファームウェアが書き戻されることとなる。
【００４３】
エンジニアリングツール２１（１）は、アップデートしたＣＰＵユニット３１（１）のメモリに格納されているデータ（プログラム、パラメータ）とＰＣ２０（１）にバックアップしておいたデータ（バックアップデータ）との照合を行う（ステップＳ１１６）。
【００４４】
また、アップデートが正常に完了している場合（ステップＳ１１４、Ｙｅｓ）、エンジニアリングツール２１（１）は、アップデートしたＣＰＵユニット３１（１）のメモリに格納されているデータ（プログラム、パラメータ）とＰＣ２０（１）にバックアップしておいたデータ（バックアップデータ）との照合を行う（ステップＳ１１６）。
【００４５】
このように、新バージョンのファームウェアへのアップデートまたは旧バージョンのファームウェアの書き戻しが完了すると、ＣＰＵユニット３１（１）内のデータとＰＣ２０（１）にバックアップしておいたデータとの照合が行われる。
【００４６】
そして、エンジニアリングツール２１（１）は、データの照合によって双方のデータが一致するか否かを確認する。一致していない場合には（ステップＳ１１６、不一致）、エンジニアリングツール２１（１）は、ＰＣ２０（１）にバックアップしておいたデータでＣＰＵユニット３１（１）内のメモリデータを上書きする（ステップＳ１１７）。換言すると、ファームウェアが新たなファームウェアにアップデートされた場合には、ＰＣ２０（１）にバックアップしておいたプログラムおよびパラメータでＣＰＵユニット３１（１）内のメモリデータが上書きされる。
【００４７】
これにより、エンジニアリングツール２１（１）は、ファームウェアのアップデート前に取得したプログラムおよびパラメータと、アップデート後のプログラムおよびパラメータとを一致させる。そして、エンジニアリングツール２１（１）は、ＰＬＣ３０（１）をリセットする（ステップＳ１１８）。
【００４８】
また、データの照合によって双方のデータが一致していることが確認された場合（ステップＳ１１６、一致）、エンジニアリングツール２１（１）は、ＰＬＣ３０（１）をリセットする（ステップＳ１１８）。エンジニアリングツール２１（１）は、ＰＬＣ３０（１）をリセットした後、ＰＬＣ３０（１）を再起動させ、アップデート完了とする（ステップＳ１１９）。
【００４９】
次に、複数のＰＬＣが有している各ユニットに対してアップデートが実行される場合の処理について説明する。図５は、複数のユニットに対してファームウェアのアップデートを開始する際のネットワークシステムの処理手順を示すフローチャートである。図５では、スケジュール管理部１１およびエンジニアリングツール２１が、ネットワークシステム１全体のＰＬＣに対して、ファームウェアのアップデートが可能か否かを確認する手順（アップデートの実行を開始するまでの準備手順）を示している。
【００５０】
管理機器１０のスケジュール管理部１１は、管理下にあるＰＬＣ３０の中の複数のユニットのそれぞれに対してファームウェアのアップデートが可能であるか否かを確認開始する（ステップＳ１３０）。スケジュール管理部１１は、生産の計画などに基づいて、アップデートしたいユニットの機種（型名）を選択する。
【００５１】
そして、スケジュール管理部１１は、エンジニアリングツール２１をインストールしているＰＣ２０に対して、アップデートしたいユニットの機種を通知する。さらに、スケジュール管理部１１は、選択したユニットのファームウェアにはアップデートが必要か否かを確認する。具体的には、スケジュール管理部１１は、選択したユニットを管理している各エンジニアリングツール２１に対して、アップデート可能なＰＬＣ（ユニット）の有無確認指示を送る（ステップＳ１３１）。
【００５２】
これにより、指示を受けたエンジニアリングツール２１は、選択された各ユニットのファームウェアのバージョンを確認する（ステップＳ１３２）。具体的には、エンジニアリングツール２１は、選択されたユニットに対してファームウェアのバージョン確認を指示する。これにより、指示を受けたユニットは、ファームウェアのバージョンをエンジニアリングツール２１に送る。エンジニアリングツール２１は、選択された各ユニットからファームウェアのバージョンを受信することによって、選択された各ユニットのファームウェアのバージョンを確認する。
【００５３】
各ユニットのファームウェアのバージョンが確認された後、ネットワークシステム１では、選択されたユニット毎に、図３で示した処理（ステップＳ１００〜Ｓ１０４）が実行される。全てのユニットに対して、ステップＳ１０４までの処理が終了すると、以下の図６に示す処理が開始される。
【００５４】
図６は、複数のユニットに対するファームウェアのアップデート処理の処理手順を示すフローチャートである。ネットワークシステム１では、スケジュール管理部１１が、エンジニアリングツール２１からファームウェアのアップデートを実施するユニットの情報を収集する。そして、スケジュール管理部１１が、ネットワークシステム１の全体でアップデートにかかる時間とアップデートの最適時期とを算出し、算出した時間および時期に基づいて、各エンジニアリングツール２１にアップデートの指示を出す。
【００５５】
具体的には、スケジュール管理部１１が、ファームウェアのアップデート対象となっているユニットを管理している各エンジニアリングツール２１に、アップデート対象のユニットに関する情報を要求する。
【００５６】
各エンジニアリングツール２１は、スケジュール管理部１１からの要求に応じた情報をスケジュール管理部１１に送信する。各エンジニアリングツール２１は、スケジュール管理部１１から要求があったユニットのうち、ファームウェアのアップデートが可能なユニットの情報をスケジュール管理部１１に通知する（ステップＳ１４０）。これにより、スケジュール管理部１１は、各ＰＣ２０の各エンジニアリングツール２１から、アップデート可能なユニットの情報を取得する（ステップＳ１４１）。
【００５７】
スケジュール管理部１１は、予め、各ユニットのファームウェアをアップデートするのに要する時間と、各ＰＬＣ３０をリセットする順番（起動順序）の情報とを、アップデート情報として記憶しておく。スケジュール管理部１１は、アップデート対象となる全てのユニットのファームウェアをアップデートさせる時間と、ネットワークシステム１が復帰するまでの時間との合計時間とをアップデート合計時間として算出する。スケジュール管理部１１は、アップデート情報に基づいてアップデート合計時間を算出する。
【００５８】
このアップデート合計時間は、アップデート対象となる全てのユニットのファームウェアのうち最初ファームウェアのアップデートを開始してからネットワークシステム１が復帰するまでの時間である。
【００５９】
スケジュール管理部１１は、アップデート情報を用いて、各ユニットのファームウェアをアップデートする最適時期（タイミング）を算出する（ステップＳ１４２）。そして、スケジュール管理部１１は、各ＰＬＣ３０の動作スケジュール（生産の計画）に基づいて、ネットワークシステム１による生産工程に支障が出ない時間帯（生産計画スケジュールの空き時間など）に、ファームウェアをアップデートさせる時期（アップデート時期）を設定する。ネットワークシステム１での生産工程に支障が出ない時間帯は、例えば、ＰＬＣ３０が稼働していない時間帯である。
【００６０】
スケジュール管理部１１は、設定したアップデート時期を生産計画（生産工程）のタスクに設定する（ステップＳ１４３）。そして、アップデートの予定時刻が来ると、スケジュール管理部１１は各エンジニアリングツール２１に対して順番に各ユニットへのアップデート指示を出す（ステップＳ１４４）。
【００６１】
スケジュール管理部１１からアップデート指示を受けた各エンジニアリングツール２１は、それぞれ図４で説明した処理手順に従って、各ユニットのアップデートを実行する。全てのユニットのアップデートが完了すると、スケジュール管理部１１は、アップデート情報に従って、各ＰＬＣ３０をリセットする。
【００６２】
図７は、ＰＣのハードウェア構成を示す図である。なお、ＰＣ２０（１）〜２０（Ｎ）は、同様の構成を有しているので、ここではＰＣ２０（１）の構成について説明する。ＰＣ２０（１）は、ＣＰＵ（Central  Processing  Unit）９１、ＲＯＭ（Read  Only  Memory）９２、ＲＡＭ（Random  Access  Memory）９３、表示部９４、入力部９５を有している。ＰＣ２０（１）では、これらのＣＰＵ９１、ＲＯＭ９２、ＲＡＭ９３、表示部９４、入力部９５がバスラインＢを介して接続されている。
【００６３】
ＣＰＵ９１は、コンピュータプログラム（エンジニアリングツールプログラム）であるエンジニアリングツール２１（１）を用いてＰＬＣ３０（１）を動作させるためのプログラムをＰＬＣ３０（１）に書き込む。
【００６４】
表示部９４は、液晶モニタなどの表示装置であり、ＣＰＵ９１からの指示に基づいて、ＰＬＣ３０（１）が備える各ユニットのファームウェアのバージョンなどを表示する。入力部９５は、マウスやキーボードを備えて構成され、使用者から外部入力される指示情報（ファームウェアのアップデートに必要なパラメータ等）を入力する。入力部９５へ入力された指示情報は、ＣＰＵ９１へ送られる。
【００６５】
エンジニアリングツール２１（１）は、ＲＯＭ９２内に格納されており、バスラインＢを介してＲＡＭ９３へロードされる。ＣＰＵ９１はＲＡＭ９３内にロードされたエンジニアリングツール２１（１）を実行する。具体的には、ＰＣ２０（１）では、使用者による入力部９５からの指示入力に従って、ＣＰＵ９１がＲＯＭ９２内からエンジニアリングツール２１（１）を読み出してＲＡＭ９３内のプログラム格納領域に展開して各種処理を実行する。ＣＰＵ９１は、この各種処理に際して生じる各種データをＲＡＭ９３内に形成されるデータ格納領域に一時的に記憶させておく。
【００６６】
ＰＣ２０（１）で実行されるエンジニアリングツール２１（１）は、ＰＬＣ３０（１）を動作させるためのプログラム（ファームウェアなど）をＰＬＣ３０（１）に書き込む場合や、ファームウェアをアップデートする際に、主記憶装置上にロードされ、これらが主記憶装置上に生成される。
【００６７】
なお、アップデートが正常に完了しなかった場合、スケジュール管理部１１は、生産計画の修正を行ってもよい。この場合、エンジニアリングツール２１は、アップデートが正常に完了しなかったユニットの復旧に要する時間を算出し、スケジュール管理部１１に送る。これにより、スケジュール管理部１１は、復旧に要する時間に基づいて、生産計画の修正を自動的に行う。
【００６８】
また、ネットワークシステム１には、ＰＣ２０の代わりにＰＣ２０以外のコンピュータを配置してもよい。また、ネットワークシステム１に配置するＰＣ２０は、複数に限らず１つであってもよい。
【００６９】
このように、本実施の形態では、ＰＬＣ３０が備えるユニットのファームウェアを自動でアップデートする。また、スケジュール管理部１１は、生産計画スケジュールの空き時間に合わせてアップデートを行う。したがって、作業員の作業時間短縮が短縮されるとともに、生産工程の遅れをなくすことが可能になる。
【００７０】
また、スケジュール管理部１１は、各ＰＬＣ３０をリセットする順番の情報に基づいて、各ファームウェアをアップデートする最適時期を算出するので、ネットワークシステム１を適用した工場などを円滑に立ち上げることが可能となる。
【００７１】
また、本実施の形態では、ファームウェアのアップデート前に自動でＰＬＣ３０のデータ（プログラム、パラメータなど）をバックアップし、アップデート後の新たなファームウェアにバックアップしておいたデータを設定するので、アップデート前後で矛盾した動作が行われることを回避できる。
【００７２】
また、本実施の形態では、ＰＣ２０が、ＰＬＣ３０の備えるユニット内のファームウェアをアップデートするので、特殊な治具（インターフェイス機器）を用いることなくファームウェアをアップデートすることが可能となる。
【００７３】
また、ＰＣ２０が、ファームウェアをアップデートするので、ユニット毎にアップデートを実行するか否かを設定することが可能となる。また、アップデートが正常に完了しなかった場合に、生産計画の修正が行われるので、効率の良い生産を実行することが可能となる。
【００７４】
このように実施の形態によれば、ＰＣ２０のエンジニアリングツール２１が、ＰＬＣ３０の備える複数のユニット内の各ファームウェアをアップデートするので、簡易な構成で複数のファームウェアをアップデートすることが可能となる。
【００７５】
また、生産工程に支障が出ない時間帯にファームウェアをアップデートさせる時期を設定するので、生産工程を変えることなくＰＬＣ３０が備えるユニットのファームウェアをアップデートすることが可能となる。
【産業上の利用可能性】
【００７６】
以上のように、本発明に係るエンジニアリングツールプログラムおよびネットワークシステムは、ファームウェアのアップデートに適している。
【符号の説明】
【００７７】
１  ネットワークシステム、１０  管理機器、１１  スケジュール管理部、２０（１）〜２０（Ｎ）  ＰＣ、２１（１）〜２１（Ｎ）  エンジニアリングツール、３０（１）〜３０（Ｍ）  ＰＬＣ、３１（１）  ＣＰＵユニット、３２（１）  インテリジェント機能ユニット。
【要約】
プログラマブルロジックコントローラが備える各機能ユニットにプログラムを書き込むエンジニアリングツールプログラムにおいて、プログラマブルロジックコントローラに接続されたコンピュータに、複数のプログラマブルロジックコントローラのそれぞれにファームウェアの更新を指示する指示ステップと、各機能ユニットに新しいファームウェアを書き込むことによってファームウェアを更新する更新ステップと、を実行させる。【図１】
0005653568.tif 000002
【図２】
0005653568.tif 000003
【図３】
0005653568.tif 000004
【図４】
0005653568.tif 000005
【図５】
0005653568.tif 000006
【図６】
0005653568.tif 000007
【図７】
0005653568.tif 000008