JP7036064B2 - 制御装置およびソフトウェアのデプロイ方法 - Google Patents
制御装置およびソフトウェアのデプロイ方法 Download PDFInfo
- Publication number
- JP7036064B2 JP7036064B2 JP2019040601A JP2019040601A JP7036064B2 JP 7036064 B2 JP7036064 B2 JP 7036064B2 JP 2019040601 A JP2019040601 A JP 2019040601A JP 2019040601 A JP2019040601 A JP 2019040601A JP 7036064 B2 JP7036064 B2 JP 7036064B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- version
- package
- packages
- user
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31418—NC program management, support, storage, distribution, version, update
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)
Description
本開示は、制御対象を制御する制御装置およびその制御装置におけるソフトウェアのデプロイ方法に関する。
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計された制御プログラムなどのユーザプログラムが実行される。この種のプログラマブルコントローラは、プログラムツールにより作成されたユーザプログラムを記憶するとともに、このユーザプログラムを解釈及び実行してプロセスを制御している。
プログラムツールおよびプログラマブルコントローラのそれぞれがプログラムを管理することにより、ツールとコントローラとの間でプログラムのバージョンが整合しないことが起こりえる。特開平7-253875号公報(特許文献1)は、ツールバージョンとインタプリタバージョンとが不一致の場合に、該当するユーザプログラムの実行を阻止するプログラム実行阻止手段を開示する。
プログラマブルコントローラでは、ユーザプログラムの実行時に呼び出される複数のプログラムを予め格納していることが多い。ユーザプログラムのさまざまなバージョンに対応可能なように、さまざまなバージョンのプログラムをプログラマブルコントローラに格納することが考えられる。したがって、ユーザプログラムを実行させるために、プログラマブルコントローラはユーザプログラムのバージョンに対応した適切なバージョンのパッケージプログラムを選択する必要がある。
本開示の1つの目的は、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる制御装置およびその制御装置におけるソフトウェアのデプロイ方法を提供することである。
本開示の一例は、制御対象を制御するための制御装置であって、ユーザプログラムと、ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージとを不揮発的に格納する主記憶装置と、ユーザプログラムおよびプログラムパッケージのプログラムを配置するための主メモリと、プログラムパッケージを管理するパッケージ管理モジュールを含むソフトウェアを実行するためのプロセッサとを備え、パッケージ管理モジュールは、ユーザプログラムのバージョンに基づいて、1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択して、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを主メモリに配置するためのデプロイ処理を実行する。
上記によれば、制御装置は、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる。これにより、たとえばユーザプログラムの後方互換性を確保することができる。
好ましくは、1または複数のプログラムパッケージは、パッケージ管理モジュールのデプロイ処理に応じて、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを選択して、その選択されたプログラムを主メモリに配置するチェックモジュールを含む。
上記によれば、パッケージ管理モジュールは、必要なパッケージを選択するだけでよい。一方、チェックモジュールは、適切なバージョンのプログラムを選択するだけでよい。したがって、パッケージの追加に対して柔軟に対応することができる。
好ましくは、主記憶装置は、制御装置のハードウェアの形式名に関する形式情報を格納し、パッケージ管理モジュールは、主記憶装置から形式情報を取得して、形式情報およびユーザプログラムのバージョンに基づいて、1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択する。
上記によれば、形式情報に基づいて、ユーザプログラムと協働するプログラムを含むパッケージを選択することができる。
好ましくは、主記憶装置は、形式情報と、1または複数のプログラムパッケージにおいて形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブルを格納し、チェックモジュールは、形式情報およびパッケージ管理テーブルに記憶された情報に基づいて、ユーザプログラムのバージョンに適合した、パッケージのプログラムのバージョンについての情報を取得する。
上記によれば、形式情報およびユーザプログラムのバージョンに基づいて、ユーザプログラムに適応するプログラムをパッケージから選択することができる。
好ましくは、1または複数のプログラムパッケージは、複数のプログラムパッケージであり、複数のプログラムパッケージは、制御装置にアドオンされたアドオンパッケージを含み、主記憶装置は、ユーザプログラムのバージョンと、複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブルを格納し、パッケージ管理モジュールは、テーブルに記憶された情報に基づいて、アドオンパッケージを含む複数のプログラムパッケージの組み合わせがユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定して、ユーザプログラムのバージョンに適合した組み合わせの場合に、ユーザプログラムのバージョンに適合したバージョンを有するアドオンパッケージのプログラムを選択する。
上記によれば、アドオンパッケージのプログラムを適切にデプロイすることができる。
本開示の一例は、制御対象を制御する制御装置で利用されるソフトウェアのデプロイ方法であって、制御装置は、ユーザプログラムと、ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージとを不揮発的に格納する主記憶装置と、ユーザプログラムおよびプログラムパッケージのプログラムを配置するための主メモリと、ソフトウェアを実行するためのプロセッサとを備え、デプロイ方法は、ユーザプログラムのバージョンを取得するステップと、ユーザプログラムのバージョンに基づいて、1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択するステップと、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップと、選択されたプログラムを主メモリに配置するステップとを備える。
本開示の一例は、制御対象を制御する制御装置で利用されるソフトウェアのデプロイ方法であって、制御装置は、ユーザプログラムと、ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージとを不揮発的に格納する主記憶装置と、ユーザプログラムおよびプログラムパッケージのプログラムを配置するための主メモリと、ソフトウェアを実行するためのプロセッサとを備え、デプロイ方法は、ユーザプログラムのバージョンを取得するステップと、ユーザプログラムのバージョンに基づいて、1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択するステップと、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップと、選択されたプログラムを主メモリに配置するステップとを備える。
上記によれば、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる。これにより、たとえばユーザプログラムの後方互換性を確保することができる。
好ましくは、デプロイ対象のパッケージを選択するステップは、主記憶装置に記憶された、制御装置のハードウェアの形式名に関する形式情報を取得するステップと、形式情報およびユーザプログラムのバージョンに基づいて、1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択するステップとを含む。
上記によれば、形式情報に基づいて、ユーザプログラムと協働するプログラムを含むパッケージを選択することができる。
好ましくは、主記憶装置は、形式情報と、1または複数のプログラムパッケージにおいて形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブルを格納し、ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、形式情報に基づいて、バージョンの情報を取得するステップを含む。
上記によれば、形式情報およびユーザプログラムのバージョンに基づいて、ユーザプログラムに適応するプログラムをパッケージから選択することができる。
好ましくは、1または複数のプログラムパッケージは、複数のプログラムパッケージであり、複数のプログラムパッケージは、制御装置にアドオンされたアドオンパッケージを含み、主記憶装置は、ユーザプログラムのバージョンと、複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブルを格納し、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、テーブルに記憶された情報に基づいて、アドオンパッケージを含む複数のプログラムパッケージの組み合わせがユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定するステップと、複数のプログラムパッケージの組み合わせがユーザプログラムのバージョンに適合した組み合わせの場合に、ユーザプログラムのバージョンに適合したバージョンを有するアドオンパッケージのプログラムを選択する。
上記によれば、アドオンパッケージのプログラムを適切にデプロイすることができる。
本開示によれば、制御装置は、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる。
以下、図面を参照しつつ、本発明に従う各本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各本実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
<A.適用例>
まず、図1および図2を参照して、本発明が適用される場面の一例について説明する。
まず、図1および図2を参照して、本発明が適用される場面の一例について説明する。
図1は、本実施の形態に係る制御システム1の全体構成例を模式的に示す図である。図1には、本実施の形態に係る制御装置100を中心とした制御システム1を示す。
図1を参照して、制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルコントローラ)として具現化されてもよい。
制御装置100は、フィールドネットワーク2を介して各種のフィールド機器500と接続されてもよい。制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器500との間でデータを遣り取りする。一般的に、「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、以下の説明においては、「フィールドネットワーク」と総称する。すなわち、本明細書の「フィールドネットワーク」は、狭義の「フィールドネットワーク」に加えて「フィールドバス」を含み得る概念である。
フィールドネットワーク2には、任意のフィールド機器500を接続することができる。フィールド機器500は、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含む。たとえばフィールドネットワーク2として、EtherCAT(登録商標)を採用することができる。
図1に示す例においては、フィールドネットワーク2に接続されるフィールド機器500は、リモートI/O(Input/Output)装置510と、ロボットコントローラ522,526と、サーボドライバ540,544とを含む。ロボットコントローラ522,526およびサーボドライバ540,544は、制御装置100からの制御指令に従って動作する1または複数のアクチュエータ(デバイス)に相当する。
図1には、制御装置100からの制御指令に従って動作する1または複数のアクチュエータについても、フィールドネットワーク2に接続されている例を示すが、これに限らず、制御装置100からの制御指令を受けることができれば、どのような接続形態であってもよい。例えば、フィールドネットワーク2に接続されたリモートI/O装置510から信号線を介して制御指令を与えるようにしてもよい。
図2は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。図2を参照して、本実施の形態に係る制御装置100は、CPUユニットとも称される演算処理部であり、プロセッサ102と、フィールドネットワークコントローラ130とを備える。
フィールドネットワークコントローラ130は、フィールドネットワーク2を介したフィールド機器500の間のデータの遣り取りを制御する。このようなデータの遣り取りは、制御装置100からフィールド機器500に対する制御指令などのデータ(以下、「出力データ」とも称す。)を送信する処理と、フィールド機器500において収集または生成されたデータ(以下、「入力データ」とも称す。)を制御装置100が受信する処理とを含む。フィールドネットワークコントローラ130は、「通信回路」の一実施例に対応する。
制御装置100は、予め定められた制御周期毎に、出力データの送信と、入力データの受信と、入力データを使用して出力データを生成する制御プログラムの実行とを順次繰り返すことによって、フィールド機器500を制御するように構成されている。
制御プログラムは、ユーザにおける制御目的に応じて作成されるユーザプログラムと、ユーザプログラムと協働してユーザにおける制御目的を実現する少なくとも1つのプログラムを含む。後者のプログラムは、たとえばシステムプログラムを含み得る。本実施の形態では、制御装置100には、少なくとも1つのパッケージが格納され、パッケージは、1または複数のバージョンのプログラムを有する。
制御装置100は、ユーザプログラムのバージョンなどに応じて、必要なパッケージを選択し、各パッケージにユーザプログラムのバージョン情報を含むデプロイ指示を与える。各パッケージは、そのバージョン情報に応じて、適切なバージョンのプログラムをロードする。したがって制御装置100では、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる。さらに制御装置100においては、パッケージの追加(アドオン)にも柔軟に対応できる。
以下、本発明のより具体的な応用例として、本実施の形態に係る制御システム1のより詳細な構成および処理について説明する。
<B.制御システムの全体構成例>
まず、図1に示す制御システム1の全体構成例についてより詳細に説明する。
まず、図1に示す制御システム1の全体構成例についてより詳細に説明する。
図1に示す構成例において、サーボドライバ540,544は、制御装置100からの制御指令(例えば、位置指令または速度指令など)に従って、サーボモータ542,546をそれぞれ駆動する。
ロボットコントローラ522はロボット520を駆動し、ロボットコントローラ526はロボット524を駆動する。ロボットコントローラ522,526は、制御装置100からの制御指令(位置指令または速度指令など)に従って、軌跡計算および各軸の角度計算などを行なうとともに、計算結果に従って、ロボット520,524を構成するサーボモータなどを駆動する。
リモートI/O装置510は、典型的には、フィールドネットワーク2を介して通信を行なう通信カプラと、入力データの取得および出力データの出力を行なうための入出力部(以下、「I/Oユニット」とも称す。)とを含む。リモートI/O装置510には、入力リレーや各種センサ(例えば、アナログセンサ、温度センサ、振動センサなど)などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。
フィールド機器500としては、これらに限られることなく、入力データを収集する任意のデバイス(例えば、視覚センサなど)、ならびに、出力データに従う何らかの作用を与える任意のデバイス(例えば、インバータ装置など)などを採用することができる。
制御装置100は、上位ネットワーク6を介して、他の装置に接続されていてもよい。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)あるいはEtherNet/IP(登録商標)が採用されていてもよい。より具体的には、1または複数のサーバ装置300、または1または複数の表示装置400が上位ネットワーク6に接続されてもよい。
サーバ装置300としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を上位ネットワーク6に接続するようにしてもよい。情報系サービスとしては、制御対象の製造装置や設備からの情報を取得して、マクロ的またはミクロ的な分析などを行なう処理が想定される。例えば、制御対象の製造装置や設備からの情報に含まれる何らかの特徴的な傾向を抽出するデータマイニングや、制御対象の設備や機械からの情報に基づく機械学習を行なうための機械学習ツールなどが想定される。
表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを出力するとともに、制御装置100での演算結果などをグラフィカルに表示する。
さらに、制御装置100には、サポート装置200が接続可能になっている。サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したシーケンスプログラムを制御装置100へ出力する機能、制御装置100上で実行されるシーケンスプログラムなどをオンラインで修正・変更する機能、などを提供する。
図1に示す制御システム1においては、制御装置100、サポート装置200および表示装置400がそれぞれ別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
<C.制御装置のハードウェア構成例>
図2は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。
図2は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。
図2を参照して、制御装置100は、CPUユニットと称される演算処理部であり、プロセッサ102と、チップセット104と、主メモリ106と、ストレージ108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などにより構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。すなわち、制御装置100は、1または複数のプロセッサ102、および/または、1または複数のコアを有するプロセッサ102を有している。チップセット104は、プロセッサ102および周辺エレメントを制御することで、制御装置100全体としての処理を実現する。
主メモリ106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ108は、主記憶装置であり、例えば、HDD(Hard Disk Drive)およびSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
プロセッサ102は、ストレージ108に格納された各種プログラムを読出して、主メモリ106に展開して実行することで、制御対象に応じた制御および各種処理を実現する。ストレージ108には、ユーザデータ30に加えて、1または複数のパッケージプログラム32、および設定情報40が格納される。
ユーザデータ30は、ユーザにおける制御目的に応じてサポート装置200において作成されて、サポート装置200から制御装置100へと送られる。ユーザデータ30は、制御システム1を用いて制御する対象のライン(プロセス)などに応じて設計されたユーザプログラムを含む。ユーザプログラムは、パッケージプログラム32と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラムは、パッケージプログラム32によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラムおよびパッケージプログラムを、「制御プログラム」と総称する場合もある。パッケージプログラム32は、たとえば制御対象の製造装置あるいは設備等に応じて準備され、ストレージ108に格納される。
システムプログラム34は、プロトコルスタック36およびデバイスドライバ38を含むことができる。システムプログラム34は、制御装置100としての機能を実現するためのプログラムである。たとえばシステムプログラム34は、スケジューラプログラムと、入出力処理プログラムと、その他のシステムプログラムとを含むことができる。プロトコルスタック36は、フィールドネットワーク2における通信の手順や遣り取りを規定する複数のプロトコルの階層からなる。デバイスドライバ38は、フィールドネットワークコントローラ130を制御するためのドライバである。
上位ネットワークコントローラ110は、上位ネットワーク6を介して、サーバ装置300や表示装置400(図1参照)などとの間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
メモリカードインターフェイス114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(シーケンスプログラム、ユーザプログラムなど)を読出すことが可能になっている。
内部バスコントローラ120は、制御装置100に装着されるI/Oユニット122との間のデータの遣り取りを制御する。具体的には、内部バスコントローラ120は、I/Oユニット122へ出力されるデータ(出力データ)の送信バッファ、および、I/Oユニット122から入力されるデータ(入力データ)の受信バッファとして機能する。なお、プロセッサ102による演算処理によって生成された出力データは、原始的にはストレージ108に格納される。そして、特定のI/Oユニット122へ転送されるべき出力データは、ストレージ108から読み出されて、送信バッファに一時的に保持される。また、I/Oユニット122から転送された入力データは、受信バッファに一時的に保持された後、ストレージ108に移される。内部バスコントローラ120は、さらに、I/Oユニット122との間で、送信バッファの出力データを送信する処理、および入力データを受信して受信バッファに格納する処理を行なう。典型的には、内部バスコントローラ120は、内部バスにおける物理層およびデータリンク層の機能を提供する。
フィールドネットワークコントローラ130は、フィールドネットワーク2を介したフィールド機器500との間のデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ130は、フィールドネットワーク2の規格に従い、出力データの送信および入力データの受信を制御する。具体的には、フィールドネットワークコントローラ130は、フィールド機器500へ出力されるデータ(出力データ)の送信バッファ、および、フィールド機器500から入力されるデータ(入力データ)の受信バッファとして機能する。なお、プロセッサ102による演算処理によって生成された出力データは、原始的にはストレージ108に格納される。そして、特定のフィールド機器500へ転送されるべき出力データは、ストレージ108から読み出されて、送信バッファに一時的に保持される。また、フィールド機器500から転送された入力データは、受信バッファに一時的に保持された後、ストレージ108に移される。フィールドネットワークコントローラ130は、さらに、フィールド機器500との間で、送信バッファの出力データを送信する処理、および入力データを受信して受信バッファに格納する処理を行なう。典型的には、フィールドネットワークコントローラ130は、フィールドネットワーク2における物理層およびデータリンク層の機能を提供する。
図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
<D.サポート装置の構成例>
図3は、本実施の形態に従う制御装置100に接続されるサポート装置200のハードウェア構成例を示す模式図である。サポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
図3は、本実施の形態に従う制御装置100に接続されるサポート装置200のハードウェア構成例を示す模式図である。サポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
図7を参照して、サポート装置200は、CPUやGPUなどのプロセッサ202と、主記憶装置204と、入力部206と、出力部208と、二次記憶装置510と、光学ドライブ212と、通信インターフェイス218とを含む。これらのコンポーネントは、プロセッサバス220を介して接続されている。
プロセッサ202は、二次記憶装置210に格納されたプログラム(一例として、OS2102およびサポートプログラム2104)を読出して、主記憶装置204に展開して実行することで、各種処理を実現する。
二次記憶装置210には、基本的な機能を実現するためのOS2102に加えて、サポート装置200としての機能を提供するためのサポートプログラム2104が格納される。サポートプログラム2104は、コンピュータである情報処理装置(実質的にはプロセッサ202)により実行されることで、本実施の形態に従うサポート装置200を実現する。
二次記憶装置210には、サポートプログラム2104が実行されることで提供される開発環境においてユーザにより作成されるプロジェクト2106が格納される。
本実施の形態において、サポート装置200は、制御装置100(図3では「PLC」と表記する)に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。プロジェクト2106は、このような統合的な開発環境によって生成されるデータを含む。
典型的には、プロジェクト2106は、標準制御ソースプログラム2108を含む。標準制御ソースプログラム2108は、オブジェクトコードに変換された上で、制御装置100へ転送され、ユーザプログラムとして格納される。
入力部206は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部208は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ202からの処理結果などを出力する。
通信インターフェイス218は、USBやイーサネットなどの任意の通信媒体を介して、制御システム1との間のデータを遣り取りする。
サポート装置200は、光学ドライブ212を有しており、コンピュータ読取可能な命令を非一過的に格納する記録媒体214(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られて二次記憶装置210などにインストールされる。
サポート装置200で実行されるサポートプログラム2104などは、コンピュータ読取可能な記録媒体214を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
図3には、プロセッサ202がプログラムを実行することで、サポート装置200として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
<E.制御装置の適用場面の例>
図4は、本実施の形態に係る制御装置100の適用場面の一例を示した図である。なお、図4に示された構成は、主メモリ106にプログラムを展開することによって実現される。
図4は、本実施の形態に係る制御装置100の適用場面の一例を示した図である。なお、図4に示された構成は、主メモリ106にプログラムを展開することによって実現される。
主記憶装置であるストレージ108は、ユーザデータ30と、パッケージ32A,32B,32Cと、形式情報50と、パッケージ整合性テーブル60とを格納する。パッケージ32A,32B,32Cは、それぞれ図4において、「パッケージA」、「パッケージB」、「パッケージC」とも表記される。一方、主メモリ106にプログラムを展開することにより、パッケージ管理モジュール106Aが主メモリ106に配置される。
ユーザデータ30は、サポート装置200において作成されて、サポート装置200から制御装置100へと転送される。ユーザデータ30は、ユーザプログラム10と、ユーザデータバージョン情報12と、コンフィグレーションデータ14とを含む。
ユーザプログラム10は、パッケージ32A~32Cのうちの1つまたは複数によって提供される命令、関数、機能モジュールなどを利用して、目的の動作を実現する。ユーザプログラム10のバージョンは、ユーザデータバージョン情報12により示される。図3の例では、ユーザデータのバージョンは「1.2」である。ユーザデータ30は、ユーザデータバージョンの情報に加えて、ユーザデータの属性の情報を含むのでもよい。
コンフィグレーションデータ14は、制御装置100を含む制御システム1の構成や設定を定義する情報を含む。たとえばコンフィグレーションデータ14は、フィールドネットワーク2に接続されているフィールド機器500に関連付けられた、ユーザプログラムや設定値の情報、および、上位ネットワーク6に接続されている装置に関連付けられた、ユーザプログラムや設定値の情報を含むことができる。
制御装置100には、パッケージ単位でプログラムが格納される。たとえばパッケージ32A,32B,32Cは、E-CATなどの通信プロトコルに関するものであってもよい。パッケージは予め制御装置100にインストールされていてもよく、アドオンにより制御装置100にインストールされてもよい。
パッケージ32A,32B,32Cの各々は、1または複数のバージョンのプログラム(パッケージプログラム)と、チェックモジュールとを含む。パッケージ32Aは、バージョン1.0のプログラム20Aと、バージョン1.1のプログラム21Aと、バージョン1.2のプログラム22Aと、チェックモジュール25Aとを含む。
パッケージ32Bは、バージョン1.0のプログラム20Bと、バージョン2.0のプログラム22Bと、チェックモジュール25Bとを含む。
パッケージ32Cは、バージョン1.0のプログラム20Cと、チェックモジュール25Cとを含む。
後述するデプロイにおいて、各パッケージのチェックモジュールは、当該パッケージに含まれる1または複数のプログラムのバージョンをチェックして、適切なバージョンのプログラムを選択する。適切なバージョンとは、たとえば、パッケージプログラムのプログラムに対して、ユーザプログラムが後方互換性を有する場合のバージョンである。パッケージプログラムのプログラムに対して、ユーザプログラムが上位互換性を有するバージョンであってもよい。
形式情報50は、形式名情報52およびパッケージ管理テーブル54を含む。形式名情報52は、ハードウェアの形式名に関する情報、たとえば図2に示すプロセッサ102の形式を含む。形式名情報52は、他のハードウェアの形式名に関する情報を含んでもよい。たとえば形式名情報52は、フィールドネットワークコントローラ130の形式情報を含んでもよい。
パッケージ管理テーブル54は、形式名情報52に含まれる形式名と、対応するパッケージプログラムのプログラムバージョンとを関連付けて記憶する。図5は、パッケージ管理テーブル54の例を示した模式図である。パッケージ管理テーブル54には、プロセッサ102の形式が格納される。プロセッサ102の形式と、各パッケージのプログラム(図5には「パッケージAプログラム」、「パッケージBプログラム」等と表記)の適応するバージョンとが対応付けられる。たとえばプロセッサ102の形式が「CPU101-1」である場合、パッケージAプログラムの適応するプログラムのバージョンは1.1以降であり、パッケージBプログラムの適応するプログラムのバージョンは1.0以降である。
パッケージ整合性テーブル60は、ユーザデータバージョンと、パッケージプログラムのバージョンとを対応付けて記憶する。図6は、パッケージ整合性テーブル60の例を示した模式図である。図6に示すように、1つのユーザデータバージョンに対して、各パッケージのプログラムのバージョンが登録される。パッケージ整合性テーブル60は、あるユーザデータバージョンに対して使用できないパッケージプログラムのバージョンの組み合わせを表す。たとえばユーザデータバージョンが1.0のとき、パッケージAプログラムA(バージョン1.01)と、パッケージBプログラム(バージョン1.01)と、パッケージCプログラム(バージョン1.02)との組み合わせは利用できない。
主メモリ106には、プロセッサ102によって実行されるプログラムが展開される。パッケージ管理モジュール106Aは、主メモリ106に展開されたプログラムのモジュールのうちの1つである。プロセッサ102がプログラムを実行することにより取得されたデータ、情報等は、主メモリ106に一時的に格納される。図6において、ストレージ108からパッケージ管理モジュール106Aへの向きの矢印は、ストレージ108から取得された情報が主メモリ106に格納されることを示す。一方、パッケージ管理モジュール106Aからストレージ108への向きの矢印は、パッケージ管理モジュール106Aによる制御を示している。
パッケージ管理モジュール106Aは、ストレージ108から形式情報50を取得して、パッケージ32A,32B,32Cの各々からデプロイ対象のパッケージプログラムを選択する。パッケージ管理モジュール106Aは、ストレージ108からユーザデータのバージョンを取得して、そのユーザデータバージョンに基づいて選択したパッケージプログラムをデプロイする。これにより、ユーザデータバージョンに適応したバージョンのパッケージプログラムが主メモリ106に展開される。
<F.デプロイ処理>
以下に説明する例では、パッケージ32A,32Bは制御装置100に予めインストールされているものとし、パッケージ32Cは制御装置100にアドオンされたパッケージプログラムであるとする。
以下に説明する例では、パッケージ32A,32Bは制御装置100に予めインストールされているものとし、パッケージ32Cは制御装置100にアドオンされたパッケージプログラムであるとする。
図7は、本実施の形態に係る制御装置における固定形式情報に基づくデプロイ処理を説明する図である。図7は、形式情報50に予め含まれる情報に基づくデプロイのフローを示す。ステップS1において、パッケージ管理モジュール106Aは、形式情報50を参照して、形式情報(たとえばプロセッサ102の形式情報)を取得する。
次にステップS2において、パッケージ管理モジュール106Aは、パッケージ管理テーブル54を参照する。パッケージ管理モジュール106Aは、ステップS1において取得された形式情報に基づき、デプロイ対象のパッケージ、およびそのパッケージのプログラムの適切なバージョンに関する情報(形式情報)を取得する。
続いてステップS3において、パッケージ管理モジュール106Aは、ユーザデータ30を参照する。具体的には、パッケージ管理モジュール106Aは、ユーザデータバージョン情報12を参照して、ユーザデータバージョンを取得する。
ステップS4Aにおいて、パッケージ管理モジュール106Aは、ユーザデータバージョンに従って、パッケージ32Aのデプロイを実行する。この場合、パッケージ管理モジュール106Aは、パッケージ32Aのチェックモジュール25Aにデプロイ指示を与える。パッケージ32Aでは、チェックモジュール25Aが適合可能なパッケージプログラムを選択し(ステップS5A)、そのプログラムをデプロイする(ステップS6A)。
同様に、ステップS4Bにおいて、パッケージ管理モジュール106Aは、ユーザデータバージョンに従って、パッケージ32Bをデプロイする。パッケージ管理モジュール106Aは、パッケージ32Bのチェックモジュール25Bにデプロイ指示を与える。パッケージ32Bでは、チェックモジュール25Bが適合可能なパッケージプログラムを選択し(ステップS5B)、そのプログラムをデプロイする(ステップS6B)。
説明の便宜上、ステップS4Aの処理の説明の次にステップS4Bの処理を説明したが、ステップS4A,S4Bの処理はシーケンシャルに実行されてもよく、並行して実行されてもよい。またステップS4A,S4Bの処理において、パッケージ整合性テーブル60が参照されてもよい。
図8は、本実施の形態に係る制御装置におけるアドオンパッケージのデプロイ処理を説明する図である。図8を参照して、ステップS11において、パッケージ管理モジュール106Aは、ユーザデータバージョンに従って、パッケージ32Aのデプロイを実行する。ステップS12において、パッケージ管理モジュール106Aは、ユーザデータバージョンに従って、パッケージ32Bのデプロイを実行する。ステップS11,S12の処理は、図7に示した対応するステップの処理と基本的に同じであるので以後の説明は繰り返さない。
ステップS13において、パッケージ管理モジュール106Aは、外部から、パッケージ32Cのアドオンの操作を受け付ける。この場合、パッケージ管理モジュール106Aは、パッケージ整合性テーブル60を参照して、パッケージ32A,32B,32Cのプログラムの組み合わせの中に、適合可能なバージョンの組み合わせが存在するかどうかを判断する。
適合可能な適合可能なバージョンの組み合わせが存在する場合、ステップS15において、パッケージ管理モジュール106Aは、ユーザデータバージョン情報12を参照して、ユーザデータバージョンを取得する。ステップS16において、パッケージ管理モジュール106Aは、ユーザデータバージョンにしたがって、パッケージ32Cの適合可能なバージョンのプログラムをデプロイするようチェックモジュール25Cに指示する。パッケージ32Cでは、チェックモジュール25Cが適合可能なパッケージプログラムを選択し(ステップS17A)、そのパッケージプログラムをデプロイする(ステップS17A)。
図9は、パッケージプログラム内のチェックモジュールが実行する処理のフローを示すフローチャートである。処理が開始されると、ステップS21において、パッケージ管理モジュール106Aからユーザデータバージョンを受けて、チェックモジュールはデプロイ処理を開始する。ステップS22において、チェックモジュールは、パッケージ管理テーブル54から各パッケージのデプロイ可能なプログラムのバージョンを取得する。このときに、デプロイ可能なパッケージプログラムがある場合、処理はステップS23に進み、チェックモジュールはデプロイ可能なパッケージプログラムを有効化する。続けて、ステップS24において、チェックモジュールは、有効化したパッケージプログラムバージョンを、パッケージ管理モジュールに伝える。一方、デプロイ可能なパッケージプログラムが無い場合には、チェックモジュールは、デプロイ可能なパッケージプログラムが無いことを、パッケージ管理モジュール106Aに伝える。
本実施の形態によれば、パッケージ管理モジュールは、必要なパッケージを選択するだけでよい。一方、チェックモジュールは、適切なバージョンのプログラムを選択するだけでよい。したがって、パッケージの追加に対して柔軟に対応することができる。
なお、上述の実施の形態では、チェックモジュールは各パッケージプログラムに含まれる。しかしながら、パッケージ管理モジュール106Aがチェックモジュールを有していてもよい。
<G.付記>
以上説明したように、本実施形態は以下に列挙する開示を含む。
以上説明したように、本実施形態は以下に列挙する開示を含む。
1.制御対象を制御するための制御装置(100)であって、
ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージ(32A,32B,32C)とを不揮発的に格納する主記憶装置(108)と、
前記ユーザプログラムおよび前記プログラムパッケージ(32A,32B,32C)の前記プログラムを配置するための主メモリ(106)と、
前記プログラムパッケージ(32A,32B,32C)を管理するパッケージ管理モジュール(106A)を含むソフトウェアを実行するためのプロセッサ(102)とを備え、
前記パッケージ管理モジュール(106A)は、前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、デプロイ対象のパッケージを選択して、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを前記主メモリ(106)に配置するためのデプロイ処理を実行する、制御装置(100)。
ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージ(32A,32B,32C)とを不揮発的に格納する主記憶装置(108)と、
前記ユーザプログラムおよび前記プログラムパッケージ(32A,32B,32C)の前記プログラムを配置するための主メモリ(106)と、
前記プログラムパッケージ(32A,32B,32C)を管理するパッケージ管理モジュール(106A)を含むソフトウェアを実行するためのプロセッサ(102)とを備え、
前記パッケージ管理モジュール(106A)は、前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、デプロイ対象のパッケージを選択して、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを前記主メモリ(106)に配置するためのデプロイ処理を実行する、制御装置(100)。
2.前記1または複数のプログラムパッケージ(32A,32B,32C)は、
前記パッケージ管理モジュール(106A)の前記デプロイ処理に応じて、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択して、その選択されたプログラムを前記主メモリ(106)に配置するチェックモジュール(25A,25B,25C)を含む、1.に記載の制御装置(100)。
前記パッケージ管理モジュール(106A)の前記デプロイ処理に応じて、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択して、その選択されたプログラムを前記主メモリ(106)に配置するチェックモジュール(25A,25B,25C)を含む、1.に記載の制御装置(100)。
3.前記主記憶装置(108)は、
前記制御装置(100)のハードウェアの形式名に関する形式情報を格納し、
前記パッケージ管理モジュール(106A)は、前記主記憶装置(108)から前記形式情報を取得して、前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、前記デプロイ対象のパッケージを選択する、2.に記載の制御装置(100)。
前記制御装置(100)のハードウェアの形式名に関する形式情報を格納し、
前記パッケージ管理モジュール(106A)は、前記主記憶装置(108)から前記形式情報を取得して、前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、前記デプロイ対象のパッケージを選択する、2.に記載の制御装置(100)。
4.前記主記憶装置(108)は、前記形式情報と、前記1または複数のプログラムパッケージ(32A,32B,32C)において前記形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブル(54)を格納し、
前記チェックモジュール(25A,25B,25C)は、前記形式情報および前記パッケージ管理テーブル(54)に記憶された情報に基づいて、前記ユーザプログラムのバージョンに適合した、前記パッケージのプログラムのバージョンについての情報を取得する、3.に記載の制御装置(100)。
前記チェックモジュール(25A,25B,25C)は、前記形式情報および前記パッケージ管理テーブル(54)に記憶された情報に基づいて、前記ユーザプログラムのバージョンに適合した、前記パッケージのプログラムのバージョンについての情報を取得する、3.に記載の制御装置(100)。
5.前記1または複数のプログラムパッケージ(32A,32B,32C)は、複数のプログラムパッケージであり、
前記複数のプログラムパッケージは、前記制御装置(100)にアドオンされたアドオンパッケージ(32C)を含み、
前記主記憶装置(108)は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブル(60)を格納し、
前記パッケージ管理モジュール(106A)は、前記テーブル(60)に記憶された情報に基づいて、前記アドオンパッケージ(32C)を含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定して、前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージ(32C)のプログラムを選択する、1.から4.のいずれか1つに記載の制御装置(100)。
前記複数のプログラムパッケージは、前記制御装置(100)にアドオンされたアドオンパッケージ(32C)を含み、
前記主記憶装置(108)は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブル(60)を格納し、
前記パッケージ管理モジュール(106A)は、前記テーブル(60)に記憶された情報に基づいて、前記アドオンパッケージ(32C)を含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定して、前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージ(32C)のプログラムを選択する、1.から4.のいずれか1つに記載の制御装置(100)。
6.制御対象を制御する制御装置(100)で利用されるソフトウェアのデプロイ方法であって、前記制御装置(100)は、
ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージ(32A,32B,32C)とを不揮発的に格納する主記憶装置(108)と、
前記ユーザプログラムおよび前記プログラムパッケージ(32A,32B,32C)の前記プログラムを配置するための主メモリ(106)と、
前記ソフトウェアを実行するためのプロセッサ(102)とを備え、
前記デプロイ方法は、
前記ユーザプログラムのバージョンを取得するステップと、
前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、デプロイ対象のパッケージを選択するステップと、
前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップと、
選択されたプログラムを前記主メモリ(106)に配置するステップとを備える、ソフトウェアのデプロイ方法。
ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージ(32A,32B,32C)とを不揮発的に格納する主記憶装置(108)と、
前記ユーザプログラムおよび前記プログラムパッケージ(32A,32B,32C)の前記プログラムを配置するための主メモリ(106)と、
前記ソフトウェアを実行するためのプロセッサ(102)とを備え、
前記デプロイ方法は、
前記ユーザプログラムのバージョンを取得するステップと、
前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、デプロイ対象のパッケージを選択するステップと、
前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップと、
選択されたプログラムを前記主メモリ(106)に配置するステップとを備える、ソフトウェアのデプロイ方法。
7.前記デプロイ対象のパッケージを選択するステップは、
前記主記憶装置(108)に記憶された、前記制御装置(100)のハードウェアの形式名に関する形式情報を取得するステップと、
前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、前記デプロイ対象のパッケージを選択するステップとを含む、6.に記載のソフトウェアのデプロイ方法。
前記主記憶装置(108)に記憶された、前記制御装置(100)のハードウェアの形式名に関する形式情報を取得するステップと、
前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、前記デプロイ対象のパッケージを選択するステップとを含む、6.に記載のソフトウェアのデプロイ方法。
8.前記主記憶装置(108)は、前記形式情報と、前記1または複数のプログラムパッケージ(32A,32B,32C)において前記形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブル(54)を格納し、
前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
前記形式情報に基づいて、バージョンの情報を取得するステップを含む、7.に記載のソフトウェアのデプロイ方法。
前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
前記形式情報に基づいて、バージョンの情報を取得するステップを含む、7.に記載のソフトウェアのデプロイ方法。
9.前記1または複数のプログラムパッケージ(32A,32B,32C)は、複数のプログラムパッケージであり、
前記複数のプログラムパッケージは、前記制御装置(100)にアドオンされたアドオンパッケージ(32C)を含み、
前記主記憶装置(108)は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブル(60)を格納し、
前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
前記テーブル(60)に記憶された情報に基づいて、前記アドオンパッケージ(32C)を含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定するステップと、
前記複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージ(32C)のプログラムを選択する、6.から8.のいずれか1項に記載のソフトウェアのデプロイ方法。
前記複数のプログラムパッケージは、前記制御装置(100)にアドオンされたアドオンパッケージ(32C)を含み、
前記主記憶装置(108)は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブル(60)を格納し、
前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
前記テーブル(60)に記憶された情報に基づいて、前記アドオンパッケージ(32C)を含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定するステップと、
前記複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージ(32C)のプログラムを選択する、6.から8.のいずれか1項に記載のソフトウェアのデプロイ方法。
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 フィールドネットワーク、6 上位ネットワーク、10 ユーザプログラム、12 ユーザデータバージョン情報、14 コンフィグレーションデータ、20A,20B,20C,21A,22A,22B プログラム、25A,25B,25C チェックモジュール、30 ユーザデータ、32 パッケージプログラム、32A,32B,32C パッケージ、34 システムプログラム、36 プロトコルスタック、38 デバイスドライバ、40 設定情報、50 形式情報、52 形式名情報、54 パッケージ管理テーブル、60 パッケージ整合性テーブル、100 制御装置102,202 プロセッサ、104 チップセット、106 主メモリ、106A パッケージ管理モジュール、108 ストレージ、110 上位ネットワークコントローラ、112 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、120 内部バスコントローラ、122 I/Oユニット、130 フィールドネットワークコントローラ、200 サポート装置、204 主記憶装置、206 入力部、208 出力部、210,510 二次記憶装置、212 光学ドライブ、214 記録媒体、218 通信インターフェイス、220 プロセッサバス、300 サーバ装置、400 表示装置、500 フィールド機器、520,524 ロボット、522,526 ロボットコントローラ、540,544 サーボドライバ、542,546 サーボモータ、2104 サポートプログラム、2106 プロジェクト、2108 標準制御ソースプログラム、S1~S24 ステップ。
Claims (9)
- 制御対象を制御するための制御装置であって、
ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージとを不揮発的に格納する主記憶装置と、
前記ユーザプログラムおよび前記プログラムパッケージの前記プログラムを配置するための主メモリと、
前記プログラムパッケージを管理するパッケージ管理モジュールを含むソフトウェアを実行するためのプロセッサとを備え、
前記パッケージ管理モジュールは、前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択して、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを前記主メモリに配置するためのデプロイ処理を実行する、制御装置。 - 前記1または複数のプログラムパッケージは、
前記パッケージ管理モジュールの前記デプロイ処理に応じて、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択して、その選択されたプログラムを前記主メモリに配置するチェックモジュールを含む、請求項1に記載の制御装置。 - 前記主記憶装置は、
前記制御装置のハードウェアの形式名に関する形式情報を格納し、
前記パッケージ管理モジュールは、前記主記憶装置から前記形式情報を取得して、前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージから、前記デプロイ対象のパッケージを選択する、請求項2に記載の制御装置。 - 前記主記憶装置は、前記形式情報と、前記1または複数のプログラムパッケージにおいて前記形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブルを格納し、
前記チェックモジュールは、前記形式情報および前記パッケージ管理テーブルに記憶された情報に基づいて、前記ユーザプログラムのバージョンに適合した、前記パッケージのプログラムのバージョンについての情報を取得する、請求項3に記載の制御装置。 - 前記1または複数のプログラムパッケージは、複数のプログラムパッケージであり、
前記複数のプログラムパッケージは、前記制御装置にアドオンされたアドオンパッケージを含み、
前記主記憶装置は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブルを格納し、
前記パッケージ管理モジュールは、前記テーブルに記憶された情報に基づいて、前記アドオンパッケージを含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定して、前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージのプログラムを選択する、請求項1から請求項4のいずれか1項に記載の制御装置。 - 制御対象を制御する制御装置で利用されるソフトウェアのデプロイ方法であって、前記制御装置は、
ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージとを不揮発的に格納する主記憶装置と、
前記ユーザプログラムおよび前記プログラムパッケージの前記プログラムを配置するための主メモリと、
前記ソフトウェアを実行するためのプロセッサとを備え、
前記デプロイ方法は、
前記ユーザプログラムのバージョンを取得するステップと、
前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択するステップと、
前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップと、
選択されたプログラムを前記主メモリに配置するステップとを備える、ソフトウェアのデプロイ方法。 - 前記デプロイ対象のパッケージを選択するステップは、
前記主記憶装置に記憶された、前記制御装置のハードウェアの形式名に関する形式情報を取得するステップと、
前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージから、前記デプロイ対象のパッケージを選択するステップとを含む、請求項6に記載のソフトウェアのデプロイ方法。 - 前記主記憶装置は、前記形式情報と、前記1または複数のプログラムパッケージにおいて前記形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブルを格納し、
前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
前記形式情報に基づいて、バージョンの情報を取得するステップを含む、請求項7に記載のソフトウェアのデプロイ方法。 - 前記1または複数のプログラムパッケージは、複数のプログラムパッケージであり、
前記複数のプログラムパッケージは、前記制御装置にアドオンされたアドオンパッケージを含み、
前記主記憶装置は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブルを格納し、
前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
前記テーブルに記憶された情報に基づいて、前記アドオンパッケージを含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定するステップと、
前記複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージのプログラムを選択する、請求項6から請求項8のいずれか1項に記載のソフトウェアのデプロイ方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019040601A JP7036064B2 (ja) | 2019-03-06 | 2019-03-06 | 制御装置およびソフトウェアのデプロイ方法 |
PCT/JP2020/007790 WO2020179581A1 (ja) | 2019-03-06 | 2020-02-26 | 制御装置およびソフトウェアのデプロイ方法 |
US17/434,637 US11907735B2 (en) | 2019-03-06 | 2020-02-26 | Control device and method for deployment of software |
EP20766476.4A EP3936951B1 (en) | 2019-03-06 | 2020-02-26 | Control device and software deployment method |
CN202080017947.7A CN113508346B (zh) | 2019-03-06 | 2020-02-26 | 控制装置以及软件的部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019040601A JP7036064B2 (ja) | 2019-03-06 | 2019-03-06 | 制御装置およびソフトウェアのデプロイ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020144594A JP2020144594A (ja) | 2020-09-10 |
JP7036064B2 true JP7036064B2 (ja) | 2022-03-15 |
Family
ID=72338618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019040601A Active JP7036064B2 (ja) | 2019-03-06 | 2019-03-06 | 制御装置およびソフトウェアのデプロイ方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11907735B2 (ja) |
EP (1) | EP3936951B1 (ja) |
JP (1) | JP7036064B2 (ja) |
CN (1) | CN113508346B (ja) |
WO (1) | WO2020179581A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11921486B2 (en) * | 2021-11-05 | 2024-03-05 | Rockwell Automation Technologies, Inc. | Automation design environment with integrated industrial power system management capabilities |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016224559A (ja) | 2015-05-27 | 2016-12-28 | 株式会社キーエンス | プログラム作成支援装置、制御方法およびプログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3270238B2 (ja) | 1994-03-14 | 2002-04-02 | 株式会社東芝 | プログラマブルコントローラ及びそのプログラムツール |
JPH11161479A (ja) * | 1997-11-28 | 1999-06-18 | Brother Ind Ltd | データ処理装置およびデータ処理方法ならびに記録媒体 |
JP4190609B2 (ja) * | 1998-02-06 | 2008-12-03 | パナソニック株式会社 | 電子部品実装用装置および電子部品実装用装置における制御プログラムのバージョン管理方法 |
JP4305740B2 (ja) * | 2003-07-16 | 2009-07-29 | オムロン株式会社 | プログラマブルコントローラシステムおよび接続保証方法 |
US7376945B1 (en) * | 2003-12-02 | 2008-05-20 | Cisco Technology, Inc. | Software change modeling for network devices |
JP4110557B2 (ja) * | 2005-06-21 | 2008-07-02 | 三菱電機株式会社 | プログラム実行システムを備えた検査装置およびプログラミングシステム |
CN103593203B (zh) | 2012-08-16 | 2016-12-21 | 施耐德电器工业公司 | 可编程逻辑控制器的编程和固件更新方法 |
JP5864467B2 (ja) | 2013-03-28 | 2016-02-17 | 株式会社沖データ | 情報処理装置、ファームウェア更新方法及びコンピュータプログラム |
US9690564B2 (en) * | 2013-09-10 | 2017-06-27 | International Business Machines Corporation | Runtime detection of software configurations and upgrades |
US9965377B1 (en) * | 2016-03-29 | 2018-05-08 | EMC IP Holding Company LLC | Deploy pipeline for development packages |
CN105912346A (zh) | 2016-05-09 | 2016-08-31 | 合肥联宝信息技术有限公司 | 固件版本恢复方法、装置及终端 |
CN107809445A (zh) | 2016-08-31 | 2018-03-16 | 阿里巴巴集团控股有限公司 | 服务请求处理系统、方法和装置 |
US10447814B2 (en) * | 2017-02-02 | 2019-10-15 | Microsoft Technology Licensing, Llc | Joint servicing of software packages |
US20180341475A1 (en) * | 2017-05-24 | 2018-11-29 | Dell Products L.P. | Just In Time Deployment with Package Managers |
CN107864098A (zh) | 2017-10-18 | 2018-03-30 | 上海斐讯数据通信技术有限公司 | 一种路由器固件的兼容方法及系统 |
-
2019
- 2019-03-06 JP JP2019040601A patent/JP7036064B2/ja active Active
-
2020
- 2020-02-26 EP EP20766476.4A patent/EP3936951B1/en active Active
- 2020-02-26 WO PCT/JP2020/007790 patent/WO2020179581A1/ja unknown
- 2020-02-26 US US17/434,637 patent/US11907735B2/en active Active
- 2020-02-26 CN CN202080017947.7A patent/CN113508346B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016224559A (ja) | 2015-05-27 | 2016-12-28 | 株式会社キーエンス | プログラム作成支援装置、制御方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2020144594A (ja) | 2020-09-10 |
CN113508346B (zh) | 2024-01-30 |
EP3936951A4 (en) | 2022-11-16 |
WO2020179581A1 (ja) | 2020-09-10 |
CN113508346A (zh) | 2021-10-15 |
US20220171636A1 (en) | 2022-06-02 |
EP3936951A1 (en) | 2022-01-12 |
US11907735B2 (en) | 2024-02-20 |
EP3936951B1 (en) | 2024-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2023140299A1 (ja) | 検証システムおよび検証方法 | |
US7561929B2 (en) | Industrial controller based on distributed technology objects | |
EP3559763B1 (en) | Dynamically configurable field device and respective method | |
JP2018153883A (ja) | コントロールシステム、コントローラ及び制御方法 | |
JP2019061467A (ja) | サポート装置およびサポートプログラム | |
JP7036064B2 (ja) | 制御装置およびソフトウェアのデプロイ方法 | |
US20210067483A1 (en) | Control System, Controller, and Control Method | |
JP7327225B2 (ja) | ロボット制御システムおよび制御方法 | |
WO2020246097A1 (ja) | サポート装置およびサポートプログラム | |
EP3457239B1 (en) | Control device and control method | |
WO2015045004A1 (ja) | プログラマブルコントローラおよびプログラマブルコントローラの制御方法 | |
CN111052012A (zh) | 控制装置以及控制系统 | |
WO2021038930A1 (ja) | サポート装置、サポートプログラムおよび設定方法 | |
JP4186383B2 (ja) | プログラマブルコントローラシステム | |
JP4877257B2 (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
JP5027820B2 (ja) | 装置および構成要素から構成されているモジュール式の生産機械を制御するための方法 | |
WO2022249713A1 (ja) | 制御システム、システムプログラムおよびデバッグ方法 | |
JP2001325010A (ja) | プログラマブルコントローラシステム | |
WO2020246096A1 (ja) | サポート装置およびサポートプログラム | |
WO2014080491A1 (ja) | プログラマブル表示器 | |
WO2019216191A1 (ja) | 制御システム、サポート装置、サポートプログラム | |
JP6002021B2 (ja) | スレーブ機器 | |
JP2020144812A (ja) | エンジニアリングツール | |
WO2017208365A1 (ja) | 制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201215 |
|
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: 20220201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7036064 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |