JPWO2012043008A1 - プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム - Google Patents

プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム Download PDF

Info

Publication number
JPWO2012043008A1
JPWO2012043008A1 JP2011542619A JP2011542619A JPWO2012043008A1 JP WO2012043008 A1 JPWO2012043008 A1 JP WO2012043008A1 JP 2011542619 A JP2011542619 A JP 2011542619A JP 2011542619 A JP2011542619 A JP 2011542619A JP WO2012043008 A1 JPWO2012043008 A1 JP WO2012043008A1
Authority
JP
Japan
Prior art keywords
upgrade
controller
execution environment
user
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.)
Granted
Application number
JP2011542619A
Other languages
English (en)
Other versions
JP4987169B2 (ja
Inventor
深津 法保
法保 深津
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP4987169B2 publication Critical patent/JP4987169B2/ja
Publication of JPWO2012043008A1 publication Critical patent/JPWO2012043008A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

(課題)コントローラOSデータのバージョンアップの必要性を確認し、自動的に行われるコントローラOSデータの無駄なバージョンアップを排除し、金銭的、時間的、作業的に効率が良く、かつ安全性を考慮したコントローラOSデータのバージョンアップ方法を提供する。(解決手段)現在発達しているインターネット網と、コントローラ用のプログラミングツールとの組み合わせを活用し、コントローラ用のプログラミングツールをコントローラに接続したとき、コントローラのOSバージョンを自動的に確認し、インターネット上の所定のサイトに存在する最新OSバージョンを確認する。そして、バージョンアップすべきと判断した場合(例えば、不具合の内在が報告されているコントローラであると判断した場合)、最新OSデータをコントローラにダウンロードする。

Description

本発明は、方法、システム、およびプログラムに関する。
現代の製造設備、及び特に工業自動化の分野において、自動化プロセスは、多くの場合、低水準の自動化システムやプロセス制御および監視システム等によって制御される。低水準の自動化システムは、プログラマブル・ロジック・コントローラ(PLC)によって制御もしくは監視される専用ロボット機器、または他の自動化システムを含んでいることがある。またこのようなプロセスを監視するため、マシン・ビジョン・システム、バーコードリーダー、及び種々の光学、電気、電気機械、温度センサ等の種々の検知装置および計器が使用されることがある。
一般的に、ユーザはラダープログラムのような制御ロジックを開発し、PLC(コントローラ)はユーザが所望する製造プロセスを達成するためにこの制御ロジックを実行する。制御ロジックは、ユーザ・アプリケーション・ソフトウェアとしてコントローラのメモリに格納され、それはコントローラにより読み出し可能である。コントローラには、コントローラのプロセッサが制御ロジックを処理しユーザ・アプリケーションを実行できる実行環境が提供される。この(例えばパーソナルコンピュータにおけるオペレーティングシステム(OS)に類似した)実行環境はコントローラの一部であるので、コントローラ製造元がその実行環境を保守する責任を負う。コントローラの製造元は、この実行環境に問題または不具合があればしばしば実行環境のバージョンアップを行う。この実行環境は不揮発性メモリに格納されるので、製造元は多くの場合コントローラ全体を交換して実行環境にバージョンアップを適用するが、この方法はこれらコントローラの製造元に対しサポート費用の増加をもたらす。さらに、ユーザはその実行環境をバージョンアップするときは製造プロセスを停止しなければならない。
したがって、コントローラの実行環境の効率的なバージョンアップを可能にするためのシステムや方法が要求される。
本発明の例示的な実施形態は、少なくとも上記した問題点や不都合な点及び前述されていないその他の不都合な点について言及するものである。本発明は上記不都合な点を克服することが要求されているものではなく、また本発明の実施形態によって必ずしも上記した不都合な点を克服するものでもない。
本発明の第1の局面によって、プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法が提供されている。この方法には、前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すステップと、前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、前記実行環境の中で前記判定された部分をバージョンアップするステップとが含まれている。
本発明の第2の局面によってプログラマブル・ロジック・コントローラのソフトウェア保守を実行するシステムが提供されている。このシステムには、プログラミングツールとコントローラとが備わっている。前記プログラミングツールは、前記コントローラの実行環境をバージョンアップするための操作が可能である。また、前記プログラミングツールは、該コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニットと、前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニットと、前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニットと、前記実行環境の中の前記判定された部分をバージョンアップするバージョンアップユニットと、が含まれている。
本発明の上記態様および/または他の態様は、添付図面を参照して本発明のいくつかの例示的な実施形態を説明することによってより一層明らかになるであろう。
図1は、システム構成の一例を示す図である。 図2は、コントローラ(シーケンサ)の実行環境(オペレーティングシステム)にバージョンアップが適用できる手順の一例を説明する図である。 図3Aは、コントローラの構成の一例を示す図である。 図3Bは、コントローラのソフトウェアの構造の一例を示す図である。 図4Aは、OS実行パラメータの実施例を示す図である。 図4Bは、OS実行パラメータの実施例を示す図である。 図5は、OSプログラムをさらに詳細に説明する図である。 図6は、ラダープログラムの一例を示す図である。 図7Aは、バージョンアップ情報およびバージョンアップソフトウェアを示す図である。 図7Bは、バージョンアップ情報およびバージョンアップソフトウェアを示す図である。 図8Aは、図2の手順の一例をさらに詳細に説明する図である。 図8Bは、図2の手順の一例をさらに詳細に説明する図である。 図9は、プログラミングツールの内部構造を説明する図である。
以下に本発明のいくつかの実施形態を添付図面を参照してより詳細に説明する。
以下の説明では、異なる図面であっても類似した要素には類似の参照番号が使用される。発明の包括的な理解を助けるべく、詳細な構成や構成要素等が明細書中で例示されているが、しかしながら、本発明は具体的に例示されたこれらの事項なしに実施することも可能である。さらに、不必要な細部を記載することで発明を分かり難くすることがあるので、既知の機能または構成は詳細に説明されていない。
実施の形態.
図1は、本発明の例示的な実施形態によるシステム構成を示している。プログラミングツール1は、ユーザによって開発されたプログラムを制御シーケンサ2にインストールする。シーケンサ2は、ユーザの製造プロセスを制御する機器である。シーケンサ2はプログラマブル・ロジック・コントローラ(PLC)でもよい。シーケンサ2およびプログラミングツール1は、USB(ユニバーサル・シリアル・バス)などの手段によって互いに接続され得るものである。プログラミングツール1は、異なる機能を実行する別個の論理ユニットまたは処理ユニットを備えるプロセッサを含んでいてもよい。これらそれぞれ異なる論理ユニットは、プロセッサ上で具現化されるソフトウェアに組み込ませることができる。サーバ3はインターネット4を介してプログラミングツール1に接続され、シーケンサ2で使用されるソフトウェアを保守・バージョンアップするために必要な情報やファイルを格納する。以下、「シーケンサ」および「コントローラ」の語が交互に用いられているが、それらはシーケンサ2を指すものである。サーバ3は、シーケンサ3の製造元またはシーケンサ2をサポートする別の保守会社によって管理されているコンピュータであってもよい。サーバ3はインターネット4と接続され、規定されたURLに基づく所定の要求を受け付ける。サーバ3は、ストレージユニットとしてハード・ディスク・ドライブ・ユニットを有することができ、そのストレージユニット内にシーケンサ2の保守および交換のために準備された(後述する)バージョンアップソフトウェア52および(後述する)バージョンアップ情報53を格納することができる。
次に、図2は、コントローラ2の実行環境(例えば、オペレーティングシステム)に対して、それによりバージョンアップが適用され得る手順を示している。
ステップS201では、顧客が、自身が保守することを望む対象コントローラにプログラミングツールを接続する。ステップS202では、対象コントローラのOS(オペレーティングシステム)のバージョンを示すデータ(すなわち、バージョン情報)及び他のデータがプログラミングツールによって読み出される。ステップS203では、プログラミングツールは、該コントローラから読み出されたOSバージョン(バージョン情報)に関してサーバ3に格納されているOSデータ情報を参照する。ステップS204では、プログラミングツールは、コントローラの実行環境(例えば、オペレーティングシステム)にバージョンアップを適用すべきかどうかを判定する。また、プログラミングツールは、プログラミングツールがコントローラから読み出したOSバージョンを示すデータ(すなわち、バージョン情報)および他のデータに基づいて、バージョンアップの内容を決定する。プログラミングツールは、バージョンアップが適用されるべきでないと判定した場合(ステップS204で「No」の場合)に、処理を終了し、バージョンアップが適用されるべきであると判定した場合(ステップS204で「Yes」の場合)に、処理をステップS205へ進める。ステップS205では、プログラミングツールは、コントローラの実行環境にバージョンアップを適用する。上記手順は本発明によって想定され得る手順の一例についての概略的な記述であり、その詳細は、次にコントローラの構造を詳細に説明することにより明らかにされるであろう。
図3Aは、シーケンサ2の構成を説明するための図である。シーケンサ2では、外部ユニット21および22がシステムバス24を介してコントローラモジュール23に接続される。外部ユニット21および22は、図示されていないセンサ、ランプ、アクチュエータおよびサーボ等の外部装置または外部機器に接続されるユニットであり、外部装置または外部機器に関するデータを格納している。これら外部装置または外部機器は、例えば外部ユニット21および22との間で情報や信号をやり取りすることなどにより、所定の製造プロセスを実行する。外部ユニット21および22は、ビット群に基づくデジタル情報やアナログ信号の入出力に用いることができる。
コントローラモジュール23は、プロセッサ231と、メモリユニット232と、システムバスI/F233と、プログラミングツール接続ユニット234とを含む。コントローラモジュールはシステムバスI/F233を介してシステムバス24と通信する。プロセッサ231は、ユーザによって開発されたプログラムや、シーケンサ2のオペレーティングシステム(OS)を実行するMPU(マイクロ・プロセッシング・ユニット)である。以下、ユーザによって開発されたプログラムは、アプリケーションプログラムと称する。メモリユニット232は不揮発性メモリ232aおよび揮発性メモリ232bを備えている。不揮発性メモリ232aは、OS実行パラメータ31、OSプログラムファイル32、OSバージョン情報33、ユーザプログラム34、及びコントローラ情報35等を格納している。揮発性メモリ232bは、外部装置または外部機器に関するデータを外部ユニット21および22からシステムバス24経由で取得し格納している。しかしながら、不揮発性メモリ232aに格納された情報の全部または一部は高速アクセスの目的でさらに揮発性メモリ232bに格納することもできる。
メモリユニット232の内容は、搬送波、RF信号、イーサネット(登録商標)(Ethernet(登録商標))信号、TCP/IPなどの様々な手段を介してバージョンアップすることができる。そのすべてを網羅しているわけではないが、記憶媒体のリストには、1本またはそれ以上の配線を有する電気的接続、フロッピー(登録商標)ディスクもしくはフレキシブルディスクのような携帯用コンピュータディスケット、磁気テープもしくは他の磁気的媒体、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュメモリ)、メモリカード、その他のメモリチップもしくはカートリッジ、光ファイバ、携帯用コンパクト・ディスク・リード・オンリー・メモリ(CD−ROM)、その他の光学的媒体、パンチカード、紙テープ、その他穴パターンを備えた物理的媒体、コンピュータ/コントローラが読み出すことができるその他の媒体、またはこれらの適当な組み合わせが含まれる。
プログラミングツール接続ユニット234は、シーケンサ2がネットワーク・インターフェイス・モジュールを介してプログラミングツールと通信することができるようなネットワーク・インターフェイス・モジュール104を含んでいてもよい。ネットワーク・インターフェイス・モジュール104は、データバスに連結されたネットワーク・インターフェイス・カードを含んでいてもよい。ネットワーク・インターフェイス・モジュールは、ネットワークリンクへの双方向データ通信接続を提供する。そのような双方向データ通信接続は、ローカルエリアネットワーク(LAN)に接続されるものでもよい。たとえば、ネットワーク・インターフェイス・モジュール104は、対応する型の電話回線へのデータ通信接続を提供する統合サービス・デジタル・ネットワーク(ISDN)カードまたはモデムでもよい。また別の実施例として、ネットワーク・インターフェイス・モジュール104は、互換性があるLANへのデータ通信接続を提供するローカル・エリア・ネットワーク・インターフェイス・カード(LAN NIC)でもよい。既知の802.11a、802.11b、802.11gおよびBluetooth等の無線リンクもネットワークの実装のために使用してもよい。このような実装においては、いずれもネットワーク・インターフェイス・モジュール104が、様々なタイプの情報を示すデジタル/アナログ・データ・ストリームを搬送する電気的、電磁気的、または、光学的信号を送受信する。
OS実行パラメータ31は、OSプログラム32の演算パラメータを含んでおり、たとえば、ウォッチドッグ・タイマ(WDT)・セッティングをOS実行パラメータ31として含めることができる。OSプログラム32は、ある一定の演算を実行するためにOS実行パラメータを利用する機能を参照する。たとえば、エラー処理用機能(たとえば、ゼロ除算が生じたとき、または、ユーザのコード中の規定がコントローラによって実行できないときに何が起こるかを定義する機能)がOSプログラム32として認識され得る。OSプログラム32は、OSプログラムの演算が各機能用の演算パラメータに基づいて変化するように設計される。OSプログラム32の別の例として、ウォッチドッグ・タイマ(WDT)・セッティングを監視し、ウォッチドッグ・タイマ(WDT)・セッティングがある一定の値(たとえば、200ミリ秒)を超えた場合、現在実行中のプログラムを停止するプログラムであってもよい。
OSプログラム32は、コントローラの実行環境の全体的な機能を調整するプログラムコードを代表するものである。OSプログラム32はパーソナルコンピュータのOSのカーネルコードに類似している。OSのカーネルコードと同様に、OSプログラム32は特権モードで動き、ラダープログラム等のユーザプログラムは、OSプログラムを変更したり、またはOSプログラムを制御したりすることはできないが、OSプログラムはユーザプログラムの実行を制御する。さらに、OSプログラム32は、コントローラハードウェアの最適な実行、ユーザ・シーケンス・プログラムの管理および実行、プログラミングツールとの通信、コントローラハードウェアの診断、及びハードウェア診断の結果の報告等の責任を負う。
OSバージョン情報33は、現行のOSプログラム32のバージョンを識別するため使用される情報である。ユーザプログラム34はコントローラを制御するための命令のリストである。工場自動化の分野では、ラダーダイアグラムの形式のプログラムが使用されることが多い。コントローラ情報35は、コントローラの製造元、モデル名、型式などに関する情報に相当するものである。
図3Bは、コントローラのソフトウェアの内部構造を示しており、図3Bの詳細な説明は図6の説明の後に行われる。
図4Aおよび図4Bは、OS実行パラメータ31のいくつかの例をより詳細に示している。ウォッチドッグ・タイマ(WDT)セッティング401は、OS実行パラメータ31の一例である。図4Aは、グラフィカル・ユーザ・インターフェイスを介して、複数のOS実行パラメータを示している。すなわち、複数のOS実行パラメータは、グラフィカル・ユーザ・インターフェイスを使用して構成することができる。図4Aは、OS実行パラメータ31の別の例であるエラーチェック402も示している。OS実行パラメータは、図4Bに示されているようにMPUレジスタのようなデータ構造として構成することができる。データ構造403は、WDTセッティング401を示しており、WDTセッティング401の様々な部分を指す複数のビットを含んでいる。たとえば、データ構造403のビット0は、初期実行監視時間がオンにされているか、または、オフにされているかを指定する。ビット1は、低速実行監視時間がオンにされているか、またはオフにされるかどうかを指定する。データ構造403の中の残りのビット群は、図4AでWDTセッティングフィールドに入力された値を指定することができる。同様に、データ構造404は、図4Aにおいてエラーチェック402のセッティングに関係した複数のビットを示している。たとえば、データ構造404中のビット0は、図4Aでバッテリチェック実行セッティングがユーザによりチェックされる場合に「1」である。
図5は、OSプログラム32をより詳細に示したものである。図5に示されるように、OSプログラム32はさらに複数の実行モジュールに分割され得る。たとえば、実行モジュール32aはある一定のエラー処理を実施し、別の実行モジュール32bはウォッチドッグ・タイマ(WDT)を実施し、さらに別の実行モジュール32cは、ラダープログラムで使用されるオペレータに対応する命令コードを実施することができる。たとえば、実行モジュール32は、LD、MOVなどの命令やそれらの定義を含むことができるのである。
図6は、ユーザプログラム34に格納されたラダープログラムの一例を示している。ラダープログラムは、一種のユーザ・アプリケーション・プログラムである。ラダープログラムの各ステップは、オペレータがそれに従って動作するオペランドで構成されている。オペレータは演算のタイプを示す識別子である。オペランドは、オペレータがそれに従って動作するデータまたは変数である。たとえば、コマンドLD SM400は、SM400と称するオペランドと、LDと称するオペレータとの組み合わせで構成される。オペレータLDは、SM400に格納された値をメモリにロードすることができる命令である。LD命令は、メモリに格納されたデータをSM400にロードするように定義され得る。このLD命令は、単なる一例であり、実行環境が異なればLDを異なるように定義し得る。
図3Bは、コントローラのソフトウェアの内部構造を図示したものである。コントローラのソフトウェアの内部構造は、7つのレイヤ(7つのソフトウェアレイヤ)に分割することが可能であり、OSプログラムファイル32は、この7つのレイヤのうちの5つのレイヤを含む。なお、図3Bには、7つのレイヤのうちの6つのレイヤが例示されている。
ユーザレイヤ301は、OS実行パラメータ、ユーザ・シーケンス・プログラム、及びI/Oデータを含んでいる。ユーザレイヤ301は、コントローラのOSプログラム32(図3A参照)のファイル中に含まれないが、コントローラのOSプログラム32のファイルと密接に関連している。OS実行パラメータは、OS実行パラメータ31(図3A参照)に対応し、ユーザ・シーケンス・プログラムは、ユーザプログラム34(図3A参照)に対応している。I/Oデータは、ユーザ・シーケンス・プログラムの実行のために使用される入力データおよび出力データを指す。コントローラは、外部ユニット21、22から入力データを取得し、ユーザ・シーケンス・プログラムを実行してデータを外部ユニット21、22へ出力する。
ユーザI/Fレイヤ302は、コントローラOSの一部である。より具体的には、ユーザI/Fレイヤ302は、OSプログラム32(図3A参照)のファイルの一部である。ユーザI/Fレイヤ302は、OS実行パラメータ・デコードおよびユーザ・シーケンス・プログラム・デコード等の機能を含んでいる。OS実行パラメータ・デコード機能は、OS実行パラメータ31(図3A参照)を読んで復号するための機能である。同様に、ユーザ・シーケンス・プログラム・デコード機能は、ユーザ・シーケンス・プログラムを読んで復号するための機能である。
アプリケーションレイヤ303は、OSプログラム32(図3A参照)のファイルの一部であり、ユーザ・シーケンス・プログラムの実行を担っている。より具体的には、アプリケーションレイヤ303は、ユーザ・シーケンス・プログラム命令実行、及び通信機能を含んでいる。ユーザ・シーケンス・プログラム命令実行は、ユーザI/Fレイヤ302でユーザ・シーケンス・プログラム・デコード機能によって復号された命令を実行するための機能である。通信機能は、コントローラとプログラミングツールとの間の通信を取り扱うための機能である。
診断レイヤ304もまた、OSプログラム32(図3A参照)のファイルの一部であり、コントローラ自体のチェックおよび診断を担っている。診断レイヤ304は、診断結果マネージメント、システムバス診断、モジュール診断、及びバッテリ診断を含んでいる。診断結果マネージメントは、システムバス診断機能、モジュール診断機能、および、バッテリ診断機能などの異なる診断機能から得られる診断結果を格納する。システムバス診断は、システムバスの状態のチェックを担う機能である。モジュール診断は、コントローラモジュール自体および外部ユニットの状態のチェックを担う機能である。バッテリ診断はバッテリの状態のチェックを担う機能である。
抽象化レイヤ305は、ファイルアクセス、機器のメモリアクセス、モジュールアクセス、通信データバッファ、および動作マネージメントなどの機能を含んでいる。抽象化レイヤ305も同様に、OSプログラム32(図3A参照)のファイルの一部である。ファイルアクセス機能は、他のソフトウェアレイヤに対して、OS実行パラメータ31(図3A参照)のファイルまたはユーザ・シーケンス・プログラム(ユーザプログラム34)のファイルへのアクセスを制御する(例えば、許容したり、禁止したりする)。機器メモリアクセスは、他のレイヤに対して、機器メモリへのアクセスを制御する(例えば、許容したり、禁止したりする)。機器群は、例えば、プログラムを構成する構成要素(たとえば、接点およびコイル群)を含むと共に、コントローラのCPUにおけるプログラミング用の仮想要素を含む。仮想要素は、コントローラのCPUによって使用されるプログラミング言語の一部を含んでも良い。これら仮想要素は、ある機能を特定するとともに、ユーザプログラムで使用される基本的なビルディングブロックを表わしているものを含んでも良い。たとえば、仮想要素(機器)は、スイッチを示すものを含んでもよい。ユーザは、スイッチに対応する仮想要素を組み込むことにより、自分のプログラム中にスイッチを組み込むことができる。機器メモリは揮発性メモリ内にある。モジュールアクセスは、種々のソフトウェアレイヤに対して、外部ユニットのいくつかに理論的にアクセスすることを制御する(例えば、許容したり、禁止したりする)。通信データバッファは、通信プロトコルの使用を要求することなく、ソフトウェアレイヤに対して接続された機器と通信することを制御する(例えば、許容したり、禁止したりする)。動作マネージメントは、LED、スイッチ、および、バッテリを取り扱う。動作マネージメントは、ソフトウェアレイヤ群に対して、LEDやスイッチ、バッテリへの理論的なアクセスを制御する(例えば、許容したり、禁止したりする)。
最後のレイヤは、ハードウェアI/F(ハードウェアインターフェイス)レイヤ306である。ハードウェアI/Fレイヤ306も同様にOSプログラム32(図3A参照)のファイルの一部であり、ハードウェア資源とのインターフェイス処理を行うドライバプログラムを含んでいる。ハードウェアI/Fレイヤ306は、シーケンス命令の実行に基づいて異なるモジュールの制御を担うシーケンス命令実行エンジン・ドライバを含んでいる。ハードウェアI/Fレイヤ306は、不揮発性メモリ用のドライバであるフラッシュROMドライバと、システムバス用のドライバであるシステムバス通信ドライバと、通信ポートを担う通信ドライバとをさらに含んでいる。
次に、バージョンアップ情報53の詳細な説明が図7Aおよび図7Bに関して与えられる。バージョンアップ情報53およびバージョンアップ情報53に特有の構造は、本発明に対してコントローラのソフトウェアをバージョンアップする際の独自の柔軟性を提供する本発明の重要な特徴である。バージョンアップ情報53は、サーバ3(図1参照)に格納され、インターネット4を介してサーバ3からプログラミングツール1へ転送される。どのようなタイプのネットワークでもサーバ3からプログラミングツール1へバージョンアップ情報を転送するため使用できることに注目すべきである。バージョンアップソフトウェア52は、バージョンアップ情報53の内容に基づいてプログラミングツール1によってシーケンサ2にインストールされる。バージョンアップソフトウェア52は、バージョンアップ情報53に基づいて、OSプログラム32(図3A参照)を新しいバージョンのものに完全に置き換えるか、または、OSプログラム32の一部を新しいものに置き換える。
バージョンアップ情報53は、最上位エントリが「コントローラ型式」であるツリー構造で図7Aおよび図7Bに示されている。コントローラ型式700は、バージョンアップソフトウェア52が対象とするコントローラのモデルを識別する情報である。コントローラに2つ以上のモデルがあるとき、モデル毎に異なるバージョンアップソフトウェア52が準備されることが可能であり、2つ以上のバージョンアップ情報53は同様に各バージョンアップ情報52に対応して準備され得るものである。
コントローラ型式700が特定されると、OSバージョン701がバージョンアップソフトウェア52に対して特定される。バージョンアップ情報53はさらにハードウェア変更の要否702を含んでおり、ハードウェア変更の要否702は、コントローラが不具合のあるハードウェア設計を含んでいるかどうか、または、ハードウェアの変更が必要であるかどうかを示す。ハードウェア変更の要否702が1(true)である場合、ハードウェアの交換が必要であるというメッセージがコントローラのユーザに対して表示され得る。このメッセージはプログラミングツール1を通じて表示されてもよい。
次に、バージョンアップ要因703は、メジャーバージョンアップ情報と、マイナーバージョンアップ情報と、不具合情報とを含む。バージョンアップ要因703は、さらに保守の重要度、すなわち、緊急性を特定する情報も含む。バージョンアップソフトウェア52がコントローラの中に未だ存在しない新しい機能を含んでいる場合、メジャーバージョンアップは「1(true)」である。たとえば、新しい機能が、インターネットを介して通信するコントローラのOS(実行環境)に組み込まれることがある。マイナーバージョンアップ情報には、既にコントローラOSの一部である、ある一定の機能が改良されるべきであり、かつ、バージョンアップソフトウェア52は改良点を含んでいることが示されている。たとえば、バージョンアップソフトウェア52には、拡張WDT機能を装備することもできる。マイナーバージョンアップフィールドが「1(true)」である場合、アップグレードの重要度は低いことに注目すべきである。重要性が「低」である場合、ユーザに対して選択肢が提供され、その選択肢を用いてユーザは自分の判断でバージョンアップソフトウェア52をインストールすることを選択してもよい。
バージョンアップ要因703中の不具合フィールド(不具合情報)は、コントローラの実行環境に不具合が存在するかどうかを示す。より具体体には、不具合フィールドは、OSプログラム32の中に不具合が存在するときに「1(true)」とすることができる。たとえば、不具合フィールドは、WDT機能が働かないか、または、WDT機能がWDTデータ構造403からパラメータを取り出しそこなったときに「1(true)」とすることができる。不具合フィールドが1(true)である場合、アップグレードの重要度は「高」である。重要度が「高」である場合、バージョンアップソフトウェア52が本質的な問題の修正のため準備されているので、バージョンアップソフトウェア52が直ちに/強制的にコントローラ(シーケンサ2)にインストールされ得る。しかしながら、コントローラ(シーケンサ2)のユーザは、不具合を含む機能を使用していないことがあり、その場合、ユーザに対して選択肢が提供され、その選択肢を用いてユーザは、コントローラOSへのアップグレードの適用をスキップすることを選択してもよい。
さらに、OSバージョンアップ箇所704は、バージョンアップが影響を及ぼすOSレイヤを指定することができる。たとえば、バージョンアップソフトウェア52は、診断レイヤのみ、または、OSプログラム32の診断レイヤおよび抽象化レイヤの両方に影響を及ぼすこともある。
バージョンアップ情報705は、バージョンアップソフトウェア52に影響を受けるOSプログラム32の部分を特定する情報である。このエントリには従属エントリが存在している。たとえば、第1の従属エントリは、バージョンアップ機能一覧705−1であり得る。バージョンアップ機能一覧705−1はOSプログラム32に含まれている機能を特定する。たとえば、WDT機能が影響を受ける場合、バージョンアップ機能一覧705−1は、機能1の次のバージョンアップエントリに「1(true)」を指定する。同様に、バージョンアップソフトウェア52が、初期実行監視、低速実行監視などの他のOS機能に影響を与える場合、バージョンアップエントリはこれらの機能毎に特定され得る。バージョンアップ情報705は、別の従属エントリとして、バージョンアップ命令リスト705−2をさらに含むこともできる。バージョンアップ命令リスト705−2は、バージョンアップがLD、MOVなど、異なる命令に適用されているかどうかを特定する。
図7Bはバージョンアップソフトウェア52を図式的に示している。バージョンアップソフトウェア52は、コントローラの実行環境(OS)へのバージョンアップとして適用されるバイナリデータを含んでいる。例示的な実装によれば、図3Bで説明されたソフトウェアレイヤのいずれかがバージョンアップされるべき場合、バージョンアップソフトウェア52は、そのレイヤの特定の機能に対するバイナリデータを含んでいる。したがって、レイヤの1つがバージョンアップされる必要がない場合、OSデータ706はそのレイヤをバージョンアップするためのバイナリデータを含まない。さらに、バージョンアップソフトウェア52は、OSデータ706用のチェックサム707を含んでいてもよい。
次に、図2に示す手順の詳細について、図8A及び図8Bを用いて説明される。ステップS801で、ユーザは、対象コントローラに関する保守を実行するため、プログラミングツールを対象コントローラに接続する。ステップS802−1では、プログラミングツールは、対象コントローラからコントローラ型式の情報を読み出す。ステップS802−2では、プログラミングツールは、対象コントローラからOSバージョン情報を読み出す。S803−1では、プログラミングツールは、対象コントローラをインターネットに接続する。S803−2では、プログラミングツールは、サーバからバージョンアップ情報を読み出すためサーバ3にアクセスする。サーバは2台以上のコントローラのためのバージョンアップ情報を格納していてもよい。したがって、ステップS804では、プログラミングツールは、対象コントローラに対応するバージョンアップ情報が存在するかどうかを判定する。存在しない場合、手順を終了させるか、もしくは、ユーザが次のコントローラに関する保守を実行することに決めることができる。図8Aでは、手順を終了させる場合を例示している。上記の各ステップはプログラミングツール1中の論理ユニット群によって実行できることに注目すべきである。すなわち、プログラミングツールは、サーバからデータを読み出す第1の論理ユニットと、OSバージョン型式を読み出す第2の論理ユニットとを有することができるのである。
ステップS804では、プログラミングツールは、対象コントローラに対応するバージョンアップ情報がサーバから読み出されたバージョンアップ情報の中に存在すると判定された場合、手順をステップS806−1へ進める。ステップS806−1では、OSバージョンアップ情報(例えば、図7Aに示すようなバージョンアップ情報53)が対応する対象コントローラ用に読み出される。プログラミングツールは、対象コントローラに対応するバージョンアップ情報53を見つけ出すべくバージョンアップ情報を解析しなければならない場合もある。
ステップS806−1でバージョンアップ情報が決定される、すなわち対象コントローラに対応するバージョンアップ情報53を見つけ出されると、ステップS806−2では、プログラミングツールは、バージョンアップ情報53におけるハードウェア変更の要否702を確認する。ステップS807では、プログラミングツールは、ハードウェア変更の要否702がバージョンアップ情報53中で「1(true)」であるかどうかをチェックする。プログラミングツールは、「1(true)」である場合(ステップS807で「Yes」の場合)、手順をステップS808へ進める。ステップS808では、プログラミングツールは、管理者に、PLCに対してハードウェアの交換が必要であることを通知する。たとえば、プログラミングツールは、コントローラを交換する必要があることを通知する。プログラミングツールは、ステップS807で「0(false)」である場合(ステップS807で「No」の場合)、手順をS809ー1へ進める。ステップS809ー1では、プログラミングツールは、バージョンアップ情報53におけるOSバージョンアップ箇所704を確認する。ステップS809−2では、プログラミングツールは、このバージョンアップによって訂正されるべき不具合があるかどうかを判定する。これは、バージョンアップ情報53中のバージョンアップ要因703の下で「不具合」情報が「1(true)」であるかどうかをチェックすることにより判定される。プログラミングツールは、不具合情報が「1(true)」である場合(ステップS809−2で「Yes」の場合)、「アップグレード」の重要度は高であるので、手順をステップS810−1へ進める。プログラミングツールは、不具合情報が「0(false)」である場合(ステップS809−2で「No」の場合)、手順を終了させる。
ステップS810−1では、プログラミングツールは、バージョンアップ情報53におけるOSバージョンアップ箇所704を確認する。ステップS810−2では、プログラミングツールは、バージョンアップがコントローラのOSプログラム32の基本部分に影響を与えるかどうかをチェックする。すなわち、プログラミングツールは、OSバージョンアップ箇所704の下で診断レイヤ、抽象化レイヤ、ハードウェアI/Fレイヤのいずれか1つが「1(true)」である場合、そのバージョンアップがコントローラのOSプログラム32の基本部分に影響を与えると判定する。プログラミングツールは、バージョンアップがコントローラのOSプログラム32の基本部分に影響を与えると判定した場合(ステップS810−2で「Yes」の場合)、手順をステップS814ー1へそのまま進める。ステップ814ー1では、プログラミングツールは、インターネット経由でサポートサイトにアクセスし、サポートサイトからOSデータを読み出す。ステップS814ー2では、プログラミングツールは、バージョンアップソフトウェア52を用いて、コントローラのOSプログラム32の基本部分の中の様々なレイヤの対応する部分を差し替える。たとえば、抽象化レイヤ305に不具合がある場合、プログラミングツールは、バージョンアップソフトウェア52を用いて、OSプログラム32の中の抽象化レイヤ305を差し替える。
一方、プログラミングツールは、バージョンアップがコントローラのOSプログラム32の基本部分に影響を与えないと判定した場合(ステップS810で「No」の場合)、手順をステップS811−1へ進める。ステップS811−1では、プログラミングツールは、対象コントローラからOS実行パラメータ31およびOSプログラム32を読み出す。ステップS812ー1及びステップS812ー2では、プログラミングツールは、バージョンアップ情報53を参照することにより、OS実行パラメータおよびOSプログラムの中でバージョンアッププログラム52による影響を受ける部分を判定する。たとえば、ステップS812−1では、プログラミングツールは、OS実行パラメータ31を読み出すことにより、ユーザが使用しているOS機能を特定する。たとえば、データ構造403(図4Bを参照)のビット中で1つが設定される場合、これは、WDT機能がWDTセッティングを使用していることを示唆していると言える。さらに、ユーザによって使用されずにバージョンアップソフトウェア52による影響を受ける機能が存在する可能性がある。そこで、ステップS812−2では、プログラミングツールは、バージョンアップ情報53におけるバージョンアップ機能一覧705−1を確認する。バージョンアップ機能一覧705−1は、バージョンアップソフトウェア52による影響を受けている機能のリストを提供する。
なお、ユーザによって使用される機能に基づいて、プログラミングツールは、これらの機能をバージョンアップすべきかどうかについての選択肢をユーザに提供してもよい。
さらに、バージョンアップ機能一覧とユーザによって使用される機能との間に重複がない場合、OSプログラム32に対してバージョンアップが適用されなくてもよい可能性がある。これは、バージョンアップ機能一覧中に特定されたいくつかの機能に不具合があるが、これらの機能がユーザによって使用されていないときに起こり得る。したがって、OSプログラム32中のこれらの機能に対してはバージョンアップを行わなくてもよい可能性もある。そこで、ステップS810−3では、プログラミングツールは、バージョンアップの二次的な必要性を確認するために、次のチェックを行う。プログラミングツールは、バージョンアップ機能一覧とユーザによって使用される機能との間に重複があるかどうか、すなわち不具合対応のOSデータがユーザにより使用される機能を対象としているか否かをチェックする。プログラミングツールは、不具合対応のOSデータがユーザにより使用される機能を対象としている場合(ステップS810−3で「Yes」の場合)、手順をステップS814−1へ進め、不具合対応のOSデータがユーザにより使用される機能を対象としていない場合(ステップS810−3で「No」の場合)、手順をステップS811−2へ進める。
なお、ステップS812−2でユーザに選択肢を提供したときは、ユーザがバージョンアップすべきとの選択肢を選択した場合がステップS810−3で「Yes」の場合に対応し、ユーザがバージョンアップすべきでないとの選択肢を選択した場合がステップS810−3で「No」の場合に対応する。
さらに、プログラミングツールは、ラダープログラムまたはアプリケーションプログラムの中でユーザによって使用されている命令/オペレータを抽出することも可能である。プログラミングツールは、抽出された命令をバージョンアップ命令リスト705−2中の命令と比較し、それに応じてラダープログラムに対してバージョンアップを適用することができる。そこで、ステップS811−2では、プログラミングツールは、対象コントローラからOS実行パラメータ31およびOSプログラム32を読み出す。ステップS812ー3及びステップS812ー4では、プログラミングツールは、バージョンアップ情報53を参照することにより、OS実行パラメータおよびOSプログラムの中でバージョンアッププログラム52による影響を受ける部分を判定する。たとえば、ステップS812−3では、プログラミングツールは、OS実行パラメータ31を読み出すことにより、ユーザが使用している命令を特定する。さらに、ユーザによって使用されずにバージョンアップソフトウェア52による影響を受ける命令が存在する可能性がある。そこで、ステップS812−4では、プログラミングツールは、バージョンアップ情報53におけるバージョンアップ命令一覧705−2を確認する。バージョンアップ命令一覧705−2は、バージョンアップソフトウェア52による影響を受けている命令のリストを提供する。
なお、ユーザによって使用される命令に基づいて、プログラミングツールは、これらの命令をバージョンアップすべきかどうかについての選択肢をユーザに提供してもよい。
さらに、バージョンアップ命令一覧とユーザによって使用される機能との間に重複がない場合、OSプログラム32に対してバージョンアップが適用されなくてもよい可能性がある。これは、バージョンアップ命令一覧中に特定されたいくつかの命令に不具合があるが、これらの命令がユーザによって使用されていないときに起こり得る。したがって、OSプログラム32中のこれらの命令に対してはバージョンアップを行わなくてもよい可能性もある。そこで、ステップS810−4では、プログラミングツールは、バージョンアップの三次的な必要性を確認するために、次のチェックを行う。プログラミングツールは、バージョンアップ命令一覧とユーザによって使用される命令との間に重複があるかどうか、すなわち不具合対応のOSデータがユーザにより使用される命令を対象としているか否かをチェックする。プログラミングツールは、不具合対応のOSデータがユーザにより使用される機能を対象としている場合(ステップS810−4で「Yes」の場合)、手順をステップS814−1へ進め、不具合対応のOSデータがユーザにより使用される機能を対象としていない場合(ステップS810−4で「No」の場合)、手順を終了させる。
なお、ステップS812−4でユーザに選択肢を提供したときは、ユーザがバージョンアップすべきとの選択肢を選択した場合がステップS810−4で「Yes」の場合に対応し、ユーザがバージョンアップすべきでないとの選択肢を選択した場合がステップS810−4で「No」の場合に対応する。
上記のような手順によって、ユーザは、コントローラ・オペレーティング・システムのバージョンアップの手順に対してよりよい制御を供与され得るのであり、もしユーザがバージョンアップによる影響を受けるであろう、ある機能やプログラム群を使用していない場合、コントローラに対してバージョンアップは適用されないような制御を実現できる。
次に、プログラミングツールの内部構造が図9を参照してより詳細に説明される。プログラミングツール1は、コントローラのコントローラ型式およびコントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニット901と、コントローラ型式およびバージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニット902と、バージョンアップ情報に基づいてオペレーティングシステム中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニット903と、オペレーティングシステム中の判定された部分をバージョンアップするバージョンアップユニット904とを含む。
バージョンアップ情報は、オペレーティングシステムの中でバージョンアップすべき部分を特定するための情報を含む。先に述べたように、バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含む。バージョンアップ機能一覧は、オペレーティングシステムに含まれる、バージョンアップされるべき機能に関する情報を含む。バージョンアップエリア判定ユニット903は、オペレーティングシステム実行パラメータを読み出すことにより、オペレーティングシステムに含まれる機能がコントローラのユーザによって使用されているかどうかを判定することができる。バージョンアップユニット904は、オペレーティングシステムの機能の中でユーザによって使用されている機能だけにバージョンアップを適用することができる。
さらに、プログラミングツールは、バージョンアップ機能一覧から一つの機能をバージョンアップするかどうかを選択するための選択肢をユーザに提供することができる。バージョンアップユニット904は、それらの選択肢を用いてユーザによって選択された機能だけをバージョンアップする。
バージョンアップエリア判定ユニット903は、ユーザ・アプリケーション・プログラムがバージョンアップ情報53で特定された複数の命令から一つの命令を使用しているかどうかをさらに判定することができ、バージョンアップユニット904は、ユーザ・アプリケーション・プログラムが複数の命令の中の少なくとも1個を使用していると判定された場合、このユーザ・アプリケーション・プログラムをバージョンアップすることができる。
フローチャートやブロック図の各ブロック、及びフローチャートやブロック図内のブロック群の組み合わせは、コンピュータプログラム命令群によって実施できることが理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、または、他のプログラマブル・データ処理装置等のプロセッサに供給され、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令群がフローチャートやブロック図のブロックまたは複数のブロックで特定された機能/動作を実行する手段を生成するようにできる。さらに、図9におけるブロック群の各々は、FPGA、ASICなどのプロセッサによって実装可能である。
これらのコンピュータプログラム命令群は、コンピュータ、あるいは他のプログラマブル・データ処理装置、または他の機器群に対してもそれらが特定の方法で機能するように指示できるコンピュータ読み取り可能な媒体、またはより具体的には、コンピュータ読み取り可能な記憶媒体に格納され、それによってコンピュータで読み取り可能な媒体に格納された命令群がフローチャートやブロック図のブロックまたはブロック群で特定される機能/動作を実施する命令群を含む物を製造できるようにすることが可能である。
以上の実施形態群は、単なる例示であり、本発明を制限するように解釈されるべきでない。本教示は、他のタイプの装置に容易に適用可能である。同様に、本発明の実施形態の説明は、請求項の範囲を制限することなく、例示的であることが意図され、多数の代替、変更および変形が可能であることは当業者にとって明白であろう。
1 プログラミングツール
2 シーケンサ
3 サーバ
4 インターネット
52 バージョンアップソフトウェア
53 バージョンアップ情報

Claims (21)

  1. プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法であって、
    前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すステップと、
    前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、
    前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、
    前記実行環境の中で前記判定された部分をバージョンアップするステップと、
    を備えることを特徴とする方法。
  2. 前記バージョンアップ情報は、前記実行環境の中でバージョンアップされるべき部分を特定する情報を含む、
    ことを特徴とする請求項1に記載の方法。
  3. 前記バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含み、
    前記バージョンアップ機能一覧は、前記実行環境に含まれる機能の中でバージョンアップされるべき機能に関する情報を含む、
    ことを特徴とする請求項1に記載の方法。
  4. 前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定するステップと、
    前記実行環境中、前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用するステップと、
    をさらに備える、
    ことを特徴とする請求項3に記載の方法。
  5. 前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択するための選択肢を前記ユーザに提供するステップと、
    前記選択肢を用いて前記ユーザによって選択された機能だけをバージョンアップするステップと、
    をさらに備える、
    ことを特徴とする請求項3に記載の方法。
  6. 前記バージョンアップ情報は、バージョンアップされるべき複数の命令を特定する情報を含む、
    ことを特徴とする請求項1に記載の方法。
  7. ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定するステップと、
    前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも1つを使用していると判定された場合に前記ユーザ・アプリケーション・プログラムをバージョンアップするステップと、
    をさらに備える、
    ことを特徴とする請求項6に記載の方法。
  8. プログラマブル・ロジック・コントローラのソフトウェア保守を実行するシステムであって、
    プログラミングツールと、
    コントローラと、
    を備え、
    前記プログラミングツールは、前記コントローラの実行環境をバージョンアップするように操作可能であり、
    前記プログラミングツールは、
    前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニットと、
    前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニットと、
    前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニットと、
    前記実行環境の中の前記判定された部分をバージョンアップするバージョンアップユニットと、
    を含む、
    ことを特徴とするシステム。
  9. 前記バージョンアップ情報は、前記実行環境の中でバージョンアップされるべき部分を特定する情報を含む、
    ことを特徴とする請求項8に記載のシステム。
  10. 前記バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含み、
    前記バージョンアップ機能一覧は、前記実行環境に含まれる機能の中でバージョンアップされるべき機能に関する情報を含む、
    ことを特徴とする請求項8に記載のシステム。
  11. 前記バージョンアップエリア判定ユニットは、前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定し、
    前記バージョンアップユニットは、前記実行環境の中で、前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用する、
    ことを特徴とする請求項10に記載のシステム。
  12. 前記システムでは、前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択するための選択肢が前記ユーザに提供され、
    前記バージョンアップユニットは、前記ユーザによって選択された機能だけをバージョンアップする、
    ことを特徴とする請求項10に記載のシステム。
  13. 前記バージョンアップ情報は、バージョンアップされるべき複数の命令を特定する情報を含む、
    ことを特徴とする請求項8に記載のシステム。
  14. 前記バージョンアップエリア判定ユニットは、ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定し、
    前記バージョンアップユニットは、前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも1つを使用していると判定された場合に、前記ユーザ・アプリケーション・プログラムをバージョンアップする、
    ことを特徴とする請求項13に記載のシステム。
  15. コンピュータに、プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法を実行させるためのプログラムであって、
    前記コンピュータに、
    前記コントローラのコントローラ型式およびオペレーティングシステムのバージョン情報を読み出すステップと、
    前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、
    前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、
    前記実行環境の中で前記判定された部分をバージョンアップするステップと、
    を実行させることを特徴とするプログラム。
  16. 前記バージョンアップ情報は、前記実行環境の中でバージョンアップされるべき部分を特定する情報を含む、
    ことを特徴とする請求項15に記載のプログラム。
  17. 前記バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含み、
    前記バージョンアップ機能一覧は、前記実行環境に含まれる機能の中でバージョンアップされるべき機能に関する情報を含む、
    ことを特徴とする請求項15に記載のプログラム。
  18. 前記コンピュータに、
    前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定するステップと、
    前記実行環境の中で前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用するステップと、
    をさらに実行させる、
    ことを特徴とする請求項17に記載のプログラム。
  19. 前記コンピュータに、
    前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択する余地を前記ユーザに提供するステップと、
    前記ユーザによって選択された機能だけをバージョンアップするステップと、
    をさらに実行させる、
    ことを特徴とする請求項17に記載のプログラム。
  20. 前記バージョンアップ情報は、バージョンアップされるべき複数の命令を特定する情報を含む、
    ことを特徴とする請求項15に記載のプログラム。
  21. 前記コンピュータに、
    ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定するステップと、
    前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも1つを使用していると判定された場合に前記ユーザ・アプリケーション・プログラムをバージョンアップするステップと、
    をさらに実行させる、
    ことを特徴とする請求項20に記載のプログラム。
JP2011542619A 2010-09-29 2011-07-06 プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム Active JP4987169B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/893,914 US8806470B2 (en) 2010-09-29 2010-09-29 System, method, and apparatus for software maintenance of sensor and control systems
US12/893,914 2010-09-29
PCT/JP2011/065522 WO2012043008A1 (ja) 2010-09-29 2011-07-06 プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム

Publications (2)

Publication Number Publication Date
JP4987169B2 JP4987169B2 (ja) 2012-07-25
JPWO2012043008A1 true JPWO2012043008A1 (ja) 2014-02-06

Family

ID=45872020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011542619A Active JP4987169B2 (ja) 2010-09-29 2011-07-06 プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム

Country Status (6)

Country Link
US (1) US8806470B2 (ja)
JP (1) JP4987169B2 (ja)
KR (1) KR101493628B1 (ja)
CN (1) CN103124938B (ja)
DE (1) DE112011103308B4 (ja)
WO (1) WO2012043008A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229771B2 (en) * 2012-03-08 2016-01-05 Microsoft Technology Licensing, Llc Cloud bursting and management of cloud-bursted applications
EP2711797A1 (en) * 2012-09-21 2014-03-26 ABB Research Ltd. Operating a programmable logic controller
US9444896B2 (en) 2012-12-05 2016-09-13 Microsoft Technology Licensing, Llc Application migration between clouds
CN104216725B (zh) * 2013-06-04 2019-04-19 Sap欧洲公司 用于软件解决方案托管的存储库层策略调整
KR101707266B1 (ko) * 2013-08-29 2017-02-15 엘에스산전 주식회사 Plc에서의 os의 업데이트 장치 및 방법
JP5937637B2 (ja) * 2014-04-30 2016-06-22 ファナック株式会社 シーケンスプログラムの切り替え時に、切り替え予告信号を出力する制御装置
CN104035799A (zh) * 2014-06-19 2014-09-10 浪潮电子信息产业股份有限公司 一种软件可定制升级的方法
JP2016218932A (ja) * 2015-05-26 2016-12-22 京セラ株式会社 ソフトウェア更新装置およびソフトウェア更新システム
CN106293851A (zh) * 2016-08-19 2017-01-04 联想(北京)有限公司 一种固件升级方法及设备
JP6696383B2 (ja) * 2016-09-27 2020-05-20 ブラザー工業株式会社 数値制御装置
US10387139B2 (en) * 2017-07-25 2019-08-20 Aurora Labs Ltd. Opportunistic software updates during select operational modes
EP3462262A1 (de) * 2017-09-29 2019-04-03 Siemens Aktiengesellschaft Automatisiertes zuordnen von messdaten zur cloudbasierten überwachung mechanischer assets
EP3742240A1 (de) * 2019-05-22 2020-11-25 Siemens Aktiengesellschaft Verfahren und engineering-system zur änderung eines programms einer industriellen automatisierungskomponente
JP7503767B2 (ja) 2020-02-19 2024-06-21 パナソニックIpマネジメント株式会社 情報端末、インターホンシステム、サーバシステム、ゲートウェイ装置、処理方法、及びプログラム
JP7028361B1 (ja) * 2020-07-31 2022-03-02 三菱電機株式会社 更新管理プログラム、情報処理装置、および、更新管理方法
CN115421820B (zh) * 2022-11-03 2023-02-21 深圳市江元智造科技有限公司 一种基于安卓应用的自动清理方法、系统和可读存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805898A (en) * 1995-02-24 1998-09-08 International Business Machines Corporation Method and apparatus for estimating installation time in a data processing system
JP3444737B2 (ja) 1996-12-26 2003-09-08 東京瓦斯株式会社 燃焼機器修理支援装置
JP3635903B2 (ja) 1997-12-15 2005-04-06 三菱電機株式会社 プログラマブルコントローラ
US6360363B1 (en) * 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
US7080371B1 (en) * 1998-03-03 2006-07-18 Siebel Systems, Inc. Method, system, apparatus and program product for distribution and instantiation of software upgrades
US6711738B1 (en) * 2000-11-27 2004-03-23 Siemens Aktiengesellschaft Method for replacing technologically aging sub-systems in a system
JP2002222005A (ja) 2001-01-24 2002-08-09 Yaskawa Electric Corp 数値制御装置システム
US6763517B2 (en) * 2001-02-12 2004-07-13 Sun Microsystems, Inc. Automated analysis of kernel and user core files including searching, ranking, and recommending patch files
JP2002297388A (ja) 2001-03-29 2002-10-11 Yaskawa Electric Corp システムパートプログラムのダウンロード方法、それに用いるシステムメモリおよびシステムパートプログラム
US7093244B2 (en) * 2001-04-18 2006-08-15 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
US7051327B1 (en) * 2001-05-08 2006-05-23 Gateway Inc. System for providing data backup and restore with updated version by creating data package based upon configuration data application data and user response to suggestion
JP2003015879A (ja) 2001-06-29 2003-01-17 Sharp Corp ファーム格納方法
JP2003022233A (ja) 2001-07-06 2003-01-24 Toshiba Corp 入出力モジュール装置、制御装置及びプログラミング装置
DE10161321A1 (de) * 2001-12-13 2003-06-26 Siemens Ag Verfahren zur Aktualisierung von elektronisch modifizierbaren Komponenten eines Automatisierungsgerätes
JP2003216430A (ja) 2002-01-18 2003-07-31 Nec Corp ソフトウェア自動更新システムおよび端末
US20040031029A1 (en) * 2002-08-06 2004-02-12 Kyu-Woong Lee Methods and systems for automatically updating software components in a network
JP4085930B2 (ja) * 2002-11-08 2008-05-14 コニカミノルタホールディングス株式会社 画像処理装置
JP4305740B2 (ja) 2003-07-16 2009-07-29 オムロン株式会社 プログラマブルコントローラシステムおよび接続保証方法
US7454745B2 (en) * 2003-07-31 2008-11-18 International Business Machines Corporation Automated semantic-based updates to modified code base
US20060080656A1 (en) * 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system
JP2006227871A (ja) 2005-02-17 2006-08-31 Fujitsu Ten Ltd アップデートシステム、情報処理装置、情報配信装置、及びアップデート方法
US20070016432A1 (en) * 2005-07-15 2007-01-18 Piggott Bryan N Performance and cost analysis system and method
US8392602B2 (en) 2005-09-30 2013-03-05 Rockwell Automation Technologies, Inc. Embedding controllers and devices with data to facilitate up-to-date control and configuration information
JP5025562B2 (ja) 2008-05-26 2012-09-12 三菱電機株式会社 プログラマブルコントローラシステム

Also Published As

Publication number Publication date
WO2012043008A1 (ja) 2012-04-05
KR101493628B1 (ko) 2015-02-23
KR20130095763A (ko) 2013-08-28
JP4987169B2 (ja) 2012-07-25
US8806470B2 (en) 2014-08-12
CN103124938B (zh) 2015-05-13
DE112011103308B4 (de) 2018-02-01
US20120079470A1 (en) 2012-03-29
CN103124938A (zh) 2013-05-29
DE112011103308T5 (de) 2013-08-29

Similar Documents

Publication Publication Date Title
JP4987169B2 (ja) プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム
JP5960673B2 (ja) ネットワーク上でフィールド機器を構成する方法
US8644959B2 (en) System and method for functionalization in line with demand, for control and regulatory devices
US10890887B2 (en) Platform for continued use of existing software for the actuation of industrial field devices
JP2009099150A (ja) プログラムの自動修正方法及び自動化システム
JP2009099150A6 (ja) プログラムの自動修正方法及び自動化システム
EP2833225B1 (en) Systems and methods for batch device commissioning and decommissioning
EP2761811B1 (en) Tool and method for dynamic configuration and implementation of device firmware utilizing defined components
JP2008282363A (ja) プログラマブルコントローラ、プログラム作成支援装置、コンピュータプログラム及びplcシステム
JP6776436B2 (ja) 制御装置
US20080301270A1 (en) System and method for directed provision and installation of device-specific functionalities, in particular for field devices
JP2017515418A (ja) 独立した基礎ネットワークにマップされた論理モデルを提供するゲートウェイ
CN109643231A (zh) 非冗余输入/输出(i/o)固件的过程中迁移
CN110914768B (zh) 用于使用pc程序控制plc的方法
JP2002268730A (ja) フィールドデバイスのメンテナンス装置
US8832670B2 (en) Programmable controller and programming tool for communication with legacy equipment
WO2019167316A1 (ja) エンジニアリングツール、コントローラ、および制御システム
JP5119204B2 (ja) プログラマブルコントローラ、データ書き込み方法、及び受信モジュール
EP3952222B1 (en) Network management device, management method, management program, and recording medium
EP3039819B1 (en) Communication apparatus and relay protection apparatus
JP7281275B2 (ja) モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法
JP5079166B1 (ja) シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
JP2002169693A (ja) 制御用表示装置、および、そのプログラムが記録された記録媒体
JP2006502463A (ja) 自動化装置の電子的に変更可能な構成要素の更新方法
US20140172130A1 (en) Modular System And Associated Method

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120327

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120424

R150 Certificate of patent or registration of utility model

Ref document number: 4987169

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250