(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022183939
(43)【公開日】2022-12-13
(54)【発明の名称】制御装置、制御システム、および制御プログラムの更新を管理するプログラム
(51)【国際特許分類】
G05B 19/042 20060101AFI20221206BHJP
G05B 19/05 20060101ALI20221206BHJP
【FI】
G05B19/042
G05B19/05 A
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021091493
(22)【出願日】2021-05-31
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】田村 嘉英
(72)【発明者】
【氏名】▲濱▼崎 治
(72)【発明者】
【氏名】見置 孝昌
(72)【発明者】
【氏名】片岡 仁之
【テーマコード(参考)】
5H220
【Fターム(参考)】
5H220AA04
5H220BB07
5H220BB09
5H220CC07
5H220CX01
5H220JJ12
5H220JJ16
5H220JJ22
5H220JJ26
5H220JJ51
5H220JJ53
5H220JJ59
5H220KK01
(57)【要約】
【課題】制御対象を制御するための制御プログラムの更新による制御対象の生産性の低下および安全性の低下を抑制する。
【解決手段】制御装置100は、判定手段92と、更新手段93とを備える。判定手段92は、第1制御プログラムPu1から第2制御プログラムPu11への更新指令Cmuに応じて、第1制御プログラムPu1に基づく制御対象200の制御から第2制御プログラムPu11に基づく制御対象200の制御への移行が可能か否かを判定する。更新手段93は、移行が可能である場合に運転モードにおいて第1制御プログラムPu1を第2制御プログラムPu11に更新する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1制御プログラムに基づいて制御対象を制御するための運転モードを動作モードとして有する制御装置であって、
前記第1制御プログラムから第2制御プログラムへの更新指令に応じて、前記第1制御プログラムに基づく前記制御対象の制御から前記第2制御プログラムに基づく前記制御対象の制御への移行が可能か否かを判定する判定手段と、
前記移行が可能である場合に前記運転モードにおいて前記第1制御プログラムを前記第2制御プログラムに更新する更新手段とを備える、制御装置。
【請求項2】
前記判定手段は、前記第1制御プログラムと前記第2制御プログラムとの差分が予め禁止された変更を含まない場合に、前記移行が可能であると判定する、請求項1に記載の制御装置。
【請求項3】
前記制御装置と前記制御対象とはネットワークを介して接続され、
前記第1制御プログラムは、変数およびファンクションブロックを含み、
前記予め禁止された変更は、前記制御対象の動作を不定とさせ得る、前記変数に関する変更および前記ファンクションブロックに関する変更、ならびに前記ネットワークを介した通信を停止させ得る事項の変更を含む、請求項2に記載の制御装置。
【請求項4】
発光部をさらに備え、
前記更新手段は、前記第1制御プログラムを前記第2制御プログラムへ更新する場合に前記発光部を点灯させる、請求項1~3のいずれか1項に記載の制御装置。
【請求項5】
第1制御プログラムに基づいて制御対象を制御するための運転モードを動作モードとして有する制御システムであって、
第2制御プログラムを開発するプログラム開発手段と、
前記第1制御プログラムに基づく前記制御対象の制御から前記第2制御プログラムに基づく前記制御対象の制御への移行が可能か否かを判定する判定手段と、
前記移行が可能である場合に前記運転モードにおいて前記第1制御プログラムを前記第2制御プログラムに更新する更新手段とを備える、制御システム。
【請求項6】
前記判定手段は、前記判定手段の判定結果を前記プログラム開発手段に送信する、請求項5に記載の制御システム。
【請求項7】
前記プログラム開発手段は、前記移行が不可能であるとの前記判定結果を受信した場合、前記移行が不可能であると判定された理由を表示する、請求項6に記載の制御システム。
【請求項8】
前記プログラム開発手段は、前記移行が可能であるとの前記判定結果を受信した場合、前記第1制御プログラムから前記第2制御プログラムへの更新を実行するか否かの決定をユーザに要求し、前記ユーザによって入力された前記決定を前記更新手段に送信し、
前記更新手段は、前記決定に従って前記更新を処理する、請求項6または7に記載の制御システム。
【請求項9】
前記プログラム開発手段は、前記移行が可能であるとの前記判定結果を前記判定手段から受信した場合、前記ユーザに特定時間間隔の入力を要求し、前記ユーザによって入力された前記特定時間間隔を前記更新手段に送信し、
前記更新手段は、前記特定時間間隔を前記プログラム開発手段から受信したタイミングから前記特定時間間隔経過後に、前記更新を実行する、請求項8に記載の制御システム。
【請求項10】
制御対象を制御するための運転モードにおいて実行される第1制御プログラムの更新を管理するプログラムであって、
前記プログラムは、プロセッサによって実行されることによって、
前記第1制御プログラムから第2制御プログラムへの更新指令に応じて、前記第1制御プログラムに基づく前記制御対象の制御から前記第2制御プログラムに基づく前記制御対象の制御への移行が可能か否かを判定し、
前記移行が可能である場合に前記運転モードにおいて前記第1制御プログラムを前記第2制御プログラムに更新する、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御プログラムに基づいて制御対象を制御する制御装置および制御システム、ならびに当該制御プログラムの更新を管理するプログラムに関する。
【背景技術】
【0002】
従来、制御プログラムに基づいて制御対象を制御する制御装置が知られている。たとえば、特開2012-194682号公報(特許文献1)には、実行される複数のタスクが同期する際に動作モードを切り替える制御装置が開示されている。当該制御装置によれば、マルチタスクで処理が行われている際に動作モードの切り替えを適切に行うことができる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1には、動作モードとして、ユーザプログラムを実行することにより、制御対象を実際に制御するための運転モードと、ユーザプログラムを実行することなくユーザがツール装置を用いてユーザプログラムを編集するためのプログラムモードが開示されている。特許文献1において制御装置のユーザプログラムを編集するためには、制御装置の動作モードを、ユーザプログラムに基づく制御対象の制御が停止されるプログラムモードに切り替える必要がある。プログラムモードにおいては、当該制御が停止している間の制御対象の作業時間の逸失、および当該制御対象による作業において使用される予定であった材料の使用可能期間の経過等が生じ得るため、制御対象の生産性が低下し得る。一方、運転モードにおいてユーザプログラムの変更を無制限に可能にすると、ユーザプログラムの変更内容によっては制御対象が不測の挙動を示し得るため、制御対象の安全性も低下し得る。
【0005】
本開示は上記のような課題を解決するためになされたものであり、その目的は、制御対象を制御するための制御プログラムの更新による制御対象の生産性の低下および安全性の低下を抑制することである。
【課題を解決するための手段】
【0006】
本開示の一局面に係る制御装置は、第1制御プログラムに基づいて制御対象を制御するための運転モードを動作モードとして有する。制御装置は、判定手段と、更新手段とを備える。判定手段は、第1制御プログラムから第2制御プログラムへの更新指令に応じて、第1制御プログラムに基づく制御対象の制御から第2制御プログラムに基づく制御対象の制御への移行が可能か否かを判定する。更新手段は、移行が可能である場合に運転モードにおいて第1制御プログラムを第2制御プログラムに更新する。
【0007】
この開示によれば、第1制御プログラムの更新処理において、第1制御プログラムの実行が継続されるため、制御対象の生産性の低下を抑制することができる。また、第1制御プログラムから第2制御プログラムへの更新が、第1制御プログラムに基づく制御対象の制御から第2制御プログラムに基づく制御対象の制御への移行が可能であると判定される場合に限定されるため、制御対象の安全性の低下も抑制することができる。
【0008】
上記の開示において、判定手段は、第1制御プログラムと第2制御プログラムとの差分が予め禁止された変更を含まない場合に、移行が可能であると判定してもよい。
【0009】
この開示によれば、制御プログラムの更新処理において、予め禁止された変更が行われることを防止することができる。
【0010】
上記の開示において、前記制御装置と前記制御対象とはネットワークを介して接続されてもよい。前記第1制御プログラムは、変数およびファンクションブロックを含んでもよい。前記予め禁止された変更は、前記制御対象の動作を不定とさせ得る、前記変数に関する変更および前記ファンクションブロックに関する変更、ならびに前記ネットワークを介した通信を停止させ得る事項の変更を含んでもよい。
【0011】
この開示によれば、制御プログラムの更新処理において、制御対象の動作を不定とさせ得る、前記変数に関する変更および前記ファンクションブロックに関する変更、ならびに前記ネットワークを介した通信を停止させ得る事項の変更が行われることを防止することができる。
【0012】
上記の開示において、制御装置は、発光部をさらに備えてもよい。更新手段は、第1制御プログラムを第2制御プログラムへ更新する場合に発光部を点灯させてもよい。
【0013】
この開示によれば、制御プログラムが更新される場合、発光部が点灯するため、制御装置のユーザは、制御プログラムの更新が実行中であることを知ることができる。
【0014】
本開示の他の局面に係る制御システムは、第1制御プログラムに基づいて制御対象を制御するための運転モードを動作モードとして有する。制御システムは、プログラム開発手段と、判定手段と、更新手段とを備える。プログラム開発手段は、第2制御プログラムを開発する。判定手段は、第1制御プログラムに基づく制御対象の制御から第2制御プログラムに基づく制御対象の制御への移行が可能か否かを判定する。更新手段は、移行が可能である場合に運転モードにおいて第1制御プログラムを第2制御プログラムに更新する。
【0015】
この開示によれば、第1制御プログラムの更新処理において、第1制御プログラムの実行が継続されるため、制御対象の生産性の低下を抑制することができる。また、第1制御プログラムから第2制御プログラムへの更新が、第1制御プログラムに基づく制御対象の制御から第2制御プログラムに基づく制御対象の制御への移行が可能であると判定される場合に限定されるため、制御対象の安全性の低下も抑制することができる。
【0016】
上記の開示において、判定手段は、判定手段の判定結果をプログラム開発手段に送信してもよい。
【0017】
この開示によれば、ユーザプログラムの更新が許可されるか否かをプログラム開発手段のユーザが知ることができる。
【0018】
上記の開示において、プログラム開発手段は、移行が不可能であるとの判定結果を受信した場合、移行が不可能であると判定された理由を表示してもよい。
【0019】
この開示によれば、制御プログラムの更新が許可されない場合に、プログラム開発手段のユーザは当該更新が許可されない理由を知ることができるため、更新が可能となるように第2制御プログラムを適切に修正することができる。
【0020】
上記の開示において、プログラム開発手段は、移行が可能であるとの判定結果を受信した場合、第1制御プログラムから第2制御プログラムへの更新を実行するか否かの決定をユーザに要求し、ユーザによって入力された決定を更新手段に送信してもよい。更新手段は、決定に従って更新を処理してもよい。
【0021】
この開示によれば、制御プログラムの更新についてユーザの確認が行われるため、制御プログラムの不測の更新を防止することができる。
【0022】
上記の開示において、プログラム開発手段は、移行が可能であるとの判定結果を判定手段から受信した場合、ユーザに特定時間間隔の入力を要求し、ユーザによって入力された特定時間間隔を更新手段に送信してもよい。更新手段は、特定時間間隔をプログラム開発手段から受信したタイミングから特定時間間隔経過後に、更新を実行してもよい。
【0023】
この開示によれば、プログラム開発手段のユーザは、制御プログラムを所望のタイミングにおいて更新することができる。
【0024】
本開示の他の局面に係るプログラムは、制御対象を制御するための運転モードにおいて実行される第1制御プログラムの更新を管理する。当該プログラムは、プロセッサによって実行されることによって、第1制御プログラムから第2制御プログラムへの更新指令に応じて、第1制御プログラムに基づく制御対象の制御から第2制御プログラムに基づく制御対象の制御への移行が可能か否かを判定し、移行が可能である場合に運転モードにおいて第1制御プログラムを第2制御プログラムに更新する。
【0025】
この開示によれば、第1制御プログラムの更新処理において、第1制御プログラムの実行が継続されるため、制御対象の生産性の低下を抑制することができる。また、第1制御プログラムから第2制御プログラムへの更新が、第1制御プログラムに基づく制御対象の制御から第2制御プログラムに基づく制御対象の制御への移行が可能であると判定される場合に限定されるため、制御対象の安全性の低下も抑制することができる。
【発明の効果】
【0026】
本開示に係る制御装置、制御システム、またはプログラムによれば、制御対象を制御するための制御プログラムの更新による制御対象の生産性の低下および安全性の低下を抑制することができる。
【図面の簡単な説明】
【0027】
【
図1】実施の形態1に係る制御システムの機能構成を示すブロック図である。
【
図2】
図1の制御システムのネットワーク構成例を示す模式図である。
【
図3】
図2の制御装置のハードウェア構成例を示すブロック図である。
【
図4】
図2のサポート装置のハードウェア構成例を示すブロック図である。
【
図6】ユーザがサポート装置によって編集したユーザプログラムをプログラムモードにおいて制御装置に転送する場合の制御装置およびサポート装置の各々のタイムチャートを併せて示す図である。
【
図7】
図6の運転モードおよびプログラムモードの各々で行われている具体的な処理のタイムチャートである。
【
図8】ユーザがサポート装置によって編集したユーザプログラムを運転モードにおいて制御装置に転送する場合の制御装置およびサポート装置の各々のタイムチャートを併せて示す図である。
【
図9】
図8の運転モードで行われる具体的な処理のタイムチャートである。
【
図10】
図3の制御装置が運転モードにおいてサポート装置からユーザプログラムの更新指令を受けた場合に行われる処理の流れを示すフローチャートである。
【
図11】
図4のサポート装置が制御装置からユーザプログラムの更新が可能か否かの判定結果を受信した場合に行われる処理の流れを示すフローチャートである。
【
図12】
図11の不許可理由を示すステップにおいて表示されるダイアログの一例を示す図である。
【
図13】
図11の確認ステップにおいて表示されるダイアログの一例を示す図である。
【
図14】実施の形態2に係る制御システムの機能構成を示すブロック図である。
【
図15】
図14の制御装置のハードウェア構成例を示すブロック図である。
【
図16】
図14のサポート装置のハードウェア構成例を示すブロック図である。
【
図17】
図14の制御装置が運転モードにおいてサポート装置からユーザプログラムの更新指令を受けた場合に行われる処理の流れを示すフローチャートである。
【
図18】
図14のプログラム開発手段がユーザからユーザプログラムの転送要求を受けた場合に、サポート装置において行われる処理を示すフローチャートである。
【発明を実施するための形態】
【0028】
以下、実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は原則として繰り返さない。
【0029】
[実施の形態1]
<適用例>
図1は、実施の形態1に係る制御システム1の機能構成を示すブロック図である。
図1に示されるように、制御システム1は、制御装置100と、サポート装置400とを備える。
【0030】
制御装置100は、動作モードとして、運転モードおよびプログラムモードを有する。運転モードとは、ユーザプログラムを実行することにより、フィールドデバイス200を実際に制御するためのモードである。プログラムモードとは、ユーザプログラムを実行することなく、フィールドデバイス200に対する制御を停止して、ユーザがサポート装置400を用いてユーザプログラムを編集するためのモードである。
【0031】
制御装置100は、記憶手段90と、制御手段91と、判定手段92と、更新手段93とを備える。記憶手段90には、フィールドデバイス200(制御対象)を制御するためのユーザプログラムPu1(第1制御プログラム)が保存されている。制御手段91は、ユーザプログラムPu1を実行する。
【0032】
サポート装置400は、記憶手段80と、プログラム開発手段81とを備える。プログラム開発手段81は、ユーザUsの入力に応じて、ユーザプログラムPu11を開発し、ユーザプログラムPu11を記憶手段80に保存する。プログラム開発手段81は、ユーザプログラムPu1からPu11(第2制御プログラム)への更新指令Cmuを制御装置100に送信する。判定手段92は、更新指令Cmuに応じて、ユーザプログラムPu1に基づくフィールドデバイス200の制御からユーザプログラムPu11に基づくフィールドデバイス200の制御への移行が可能か否かを判定する。更新手段93は、当該移行が可能である場合に運転モードにおいてユーザプログラムPu1をPu11に更新する。
【0033】
<制御システムのネットワーク構成例>
図2は、
図1の制御システム1のネットワーク構成例を示す模式図である。
図2に示されるように、制御システム1は、複数のデバイスが互いに通信可能に構成されたデバイス群を含む。典型的には、デバイスは、ユーザプログラムを実行する処理主体である制御装置100と、制御装置100に接続される周辺装置とを含み得る。
【0034】
制御装置100は、各種の設備または装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、制御演算を実行する一種のコンピュータであり、典型的には、PLC(Programmable Logic Controller)を含む。制御装置100は、フィールドネットワーク20を介してフィールドデバイス200に接続されている。制御装置100は、フィールドネットワーク20を介して、少なくとも1つのフィールドデバイス200との間でデータを遣り取りする。
【0035】
制御装置100において実行される制御演算は、フィールドデバイス200において収集または生成されたデータを収集する処理、フィールドデバイス200に対する指令値などのデータを生成する処理、および生成した出力データを対象のフィールドデバイス200へ送信する処理などを含む。
【0036】
フィールドネットワーク20は、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、またはCompoNet(登録商標)などが知られている。データの到達時間が保証される点において、EtherCAT(登録商標)が好ましい。
【0037】
フィールドネットワーク20には、任意のフィールドデバイス200を接続することができる。フィールドデバイス200は、フィールド側にあるロボットまたはコンベアなどに対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含む。
【0038】
制御システム1においてフィールドデバイス200は、複数のサーボドライバ220_1,220_2と、複数のサーボドライバ220_1,220_2にそれぞれ接続された複数のサーボモータ222_1,222_2とを含む。フィールドデバイス200は、「制御対象」の一例である。
【0039】
サーボドライバ220_1,220_2は、制御装置100からの指令値(たとえば、位置指令値または速度指令値など)に従って、サーボモータ222_1および222_2のうちの対応するサーボモータを駆動する。このようにして、制御装置100は、フィールドデバイス200を制御することができる。
【0040】
制御装置100は、上位ネットワーク12を介して、他の装置にも接続されている。上位ネットワーク12は、ゲートウェイ700を介して、外部ネットワークであるインターネット900に接続されている。上位ネットワーク12には、一般的なネットワークプロトコルであるイーサネット(登録商標)、あるいはEtherNet/IP(登録商標)が採用されてもよい。より具体的には、上位ネットワーク12には、少なくとも1つのサーバ装置600および少なくとも1つの表示装置500が接続されてもよい。
【0041】
サーバ装置600としては、データベースシステム、または製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置または設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、あるいは出荷情報などを扱うこともできる。これらに限らず、情報系サービスを提供する装置を上位ネットワーク12に接続するようにしてもよい。情報系サービスとしては、制御対象の製造装置または設備からの情報を取得して、マクロ的またはミクロ的な分析などを行う処理が想定される。たとえば、情報系サービスとしては、制御対象の製造装置または設備からの情報に含まれる何らかの特徴的な傾向を抽出するデータマイニング、あるいは制御対象の設備または機械からの情報に基づく機械学習を行うための機械学習ツールなどが想定される。
【0042】
表示装置500は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを出力するとともに、制御装置100での演算結果などをグラフィカルに表示する。
【0043】
制御装置100には、サポート装置400が接続可能になっている。サポート装置400は、上位ネットワーク12またはインターネット900を介して制御装置100に接続されてもよい。サポート装置400は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置400は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、およびコンパイラなど)、制御装置100および制御装置100に接続される各種デバイスの構成情報(コンフィギュレーション)を設定するための設定環境、生成したプログラムを制御装置100へ出力する機能、および制御装置100上で実行されるプログラムなどをオンラインで修正および変更を行う機能などを提供する。
【0044】
サポート装置400は、動作モードの切替指令を制御装置100に送信する。制御装置100は、サポート装置400からの動作モードの切替指令に応じて、動作モードを、運転モードおよびプログラムモードの間で選択的に切り替える。
【0045】
制御システム1においては、制御装置100、サポート装置400、および表示装置500がそれぞれ別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成が採用されてもよい。
【0046】
制御装置100は、一の生産現場のみで使用される場合に限らず、他の生産現場においても使用される。また、一の生産現場内においても複数の異なるラインで使用される場合もある。
【0047】
<制御装置のハードウェア構成例>
図3は、
図2の制御装置100のハードウェア構成例を示すブロック図である。
図3に示されるように、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ160と、メモリカードインターフェイス112と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116と、LED(Light Emitting Diode)117(発光部)と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ170とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
【0048】
プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)および/またはGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ160に保存されたプログラムを読み出して、メインメモリ104に展開して実行することで、制御対象に対する制御演算を実現する。プロセッサ102は、デュアルコアであり、マルチタスク処理により複数のタスクを並行して実行する。当該マルチタスク処理においては、予め設定された制御周期(たとえば、1ms)の制御サイクルが処理全体の共通サイクルとして採用されている。すなわち、プロセッサ102は、複数のタスクの各々を周期的に実行する。なお、プロセッサ102は、シングルコアであり、時分割により複数のタスクを並行して実行してもよい。また、プロセッサ102のコア数は、3以上であってもよい。プロセッサ102は、制御装置100の動作モードを、運転モードおよびプログラムモードの間で選択的に切り替える。
【0049】
メインメモリ104は、DRAM(Dynamic Random Access Memory)および/またはSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ160は、たとえば、SSD(Solid State Drive)および/またはHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
【0050】
LED117は、ユーザプログラムPu1が更新される場合に点灯される。
ストレージ160には、システムプログラムPscと、ユーザプログラムPu1,Pu2,Pu3と、タスク情報L1とが保存されている。ストレージ160は、
図1の記憶手段90に対応する。システムプログラムPscは、制御装置100を統合的に制御して、制御装置100の各機能を実現するためのプログラムを含む。すなわち、システムプログラムPscを実行するプロセッサ102が、
図1の制御手段91、判定手段92、および更新手段93に対応する。ユーザプログラムPu1~Pu3は、たとえばラダー言語で記述されている。タスク情報L1には、複数のタスクの各々の名称と、当該タスクの優先度と、当該タスクが実行される周期と、当該タスクで実行されるユーザプログラムが含まれている。なお、優先度の値が相対的に小さいタスクが優先的に実行される。すなわち、優先度の値が小さいほど、当該優先度は高い。
【0051】
メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。
【0052】
上位ネットワークコントローラ106は、上位ネットワーク12(たとえばローカルエリアネットワーク)を介して、上位ネットワーク12に接続された任意の情報処理装置との間でデータを遣り取りする。
【0053】
フィールドネットワークコントローラ108は、フィールドネットワーク20を介して、サーボモータ222_1,222_2等の任意のデバイスとの間でデータを遣り取りする。
【0054】
ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100を構成する任意の機能ユニット180との間でデータを遣り取りする。機能ユニット180は、たとえば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニット、ならびにエンコーダなどからのパルスを受け付けるカウンタユニットなどからなる。
【0055】
USBコントローラ170は、USB接続を介して、任意の情報処理装置との間でデータを遣り取りする。USBコントローラ170には、たとえばサポート装置400が接続される。
【0056】
<サポート装置のハードウェア構成>
図4は、
図2のサポート装置400のハードウェア構成例を示すブロック図である。サポート装置400は、一例として、汎用的なアーキテクチャに従うコンピュータがプログラムを実行することで実現される。
【0057】
図4に示されるように、サポート装置400は、プロセッサ402と、揮発性メモリ404と、不揮発性メモリ406と、ストレージ(Hard Disk Drive)408と、ディスプレイ450と、キーボード410と、マウス412と、メモリカードインターフェイス414と、外部装置インターフェイス418とを備える。これらのコンポーネントは、プロセッサバス420を介して相互に通信可能に接続されている。
【0058】
プロセッサ402は、CPUおよびGPUなどで構成され、不揮発性メモリ406およびストレージ408に保存されたプログラム(一例として、サポートプログラムPsp)を読み出して、揮発性メモリ404に展開して実行することで、各種処理を実現する。すなわち、サポートプログラムPspを実行するプロセッサ402が、
図1のプログラム開発手段81に対応する。ストレージ408は、たとえば、SSDおよび/またはHDDなどの不揮発性記憶装置などで構成される。
【0059】
サポート装置400においては、プロセッサ402が所定のプログラムを実行することで、サポート装置400として必要な機能が提供される。当該機能の一部または全部が、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装されてもよい。
【0060】
揮発性メモリ404は、DRAMおよびSRAMなど、各種の揮発性記憶装置によって構成される。不揮発性メモリ406は、SSDなど、各種の不揮発性記憶装置によって構成される。
【0061】
不揮発性メモリ406およびストレージ408には、基本的な機能を実現するためのOS(Operating System)に加えて、サポート装置400としての機能を提供するためのサポートプログラムPspが保存されている。なお、サポート装置400においては、ストレージ408にサポートプログラムPspおよびユーザプログラムPu11が保存されている。ストレージ408は、
図1の記憶手段80に対応する。サポートプログラムPspには、コンピュータをサポート装置400として機能させるための命令が規定されている。
【0062】
ディスプレイ450は、プロセッサ402からの処理結果などを出力する。キーボード410およびマウス412は、ユーザプログラムなどの各種のプログラムを作成したり、制御対象に応じた設定値などをユーザが入力したりするときに、ユーザ操作を受け付ける。
【0063】
メモリカードインターフェイス414は、メモリカード115が着脱可能に構成されており、メモリカード115に対して各種データ(ユーザプログラムなど)を書き込み、メモリカード115から各種データを読み出すことが可能になっている。
【0064】
外部装置インターフェイス418は、ネットワークを介して、制御装置100などの任意の外部装置などとの間でデータを遣り取りする。
【0065】
なお、図示は省略するが、サポート装置400は、光学ドライブを備えていてもよく、コンピュータが読み取り可能なプログラムを非一過的に保存するDVD(Digital Versatile Disc)などの光学記録媒体から、その中に保存されたプログラム(サポートプログラムなど)が読み取られて不揮発性メモリ406またはストレージ408などにインストールされる。
【0066】
サポート装置400において実行されるサポートプログラムPspなどは、コンピュータ読取可能なDVDを介してインストールされてもよいが、ネットワーク上のサーバ装置600などからダウンロードする形でインストールされるようにしてもよい。また、サポート装置400が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
【0067】
図5は、
図3のタスク情報L1の一例を示す図である。
図5に示されるように、タスクAの優先度は1であり、タスクAの制御周期は1msであり、タスクAで実行されるユーザプログラムはPu1である。タスクBの優先度は2であり、タスクBの制御周期は2msであり、タスクBで実行されるユーザプログラムはPu2である。タスクCの優先度は3であり、タスクCの制御周期は4msであり、タスクCで実行されるユーザプログラムはPu3である。タスクAは、タスクB,Cよりも優先的に実行される。タスクBは、タスクCよりも優先的に実行される。タスクB,Cの各々の制御周期は、タスクAの制御周期の自然数倍に設定されている。
【0068】
図6は、ユーザUsがサポート装置400によって編集したユーザプログラムをプログラムモードにおいて制御装置100に転送する場合の制御装置100およびサポート装置400の各々のタイムチャートを併せて示す図である。
図6に示されるように、制御装置100は、時刻t0から運転モードを開始する。ユーザUsは、時刻t1(>t0)~t2(>t1)の間、サポート装置400に保存されたユーザプログラムをプログラム作成編集ツールを用いて編集する。ユーザUsは、時刻t3(>t2)においてプログラムモードへの切替指令をサポート装置400を介して制御装置100に送信する。全タスクの制御周期の開示時刻が合う時刻t4(>t3)において、制御装置100は、動作モードを運転モードからプログラムモードに切り替える。
【0069】
ユーザUsは、時刻t5(>t4)にユーザプログラムの更新指令を制御装置100に送信する。制御装置100は、制御装置100に保存されているユーザプログラムをサポート装置400によって編集されたユーザプログラムに更新する。制御装置100は、全タスクの制御周期の開始時刻が合う時刻t6に動作モードをプログラムモードから運転モードに切り替えて、更新されたユーザプログラムの実行を開始する。
【0070】
図7は、
図6の運転モードおよびプログラムモードの各々で行われている具体的な処理のタイムチャートである。以下で説明する処理は、
図3のシステムプログラムPscを実行するプロセッサ102によって実現される。後に説明する
図9に関しても同様である。
【0071】
図7に示されるように、運転モードにおいては、制御サイクルが開始される場合、全タスクA~Cの実行サイクルが同時に開始される。プロセッサ102はデュアルコアであるため、優先度が高い順にタスクA,Bの処理を同時に開始する。タスクCは、タスクA,Bよりも優先度が低いため、待機状態になる。
【0072】
タスクAにおいては、入出力更新処理IO1、ユーザプログラムPu1、およびユーザプログラムPu1以外のプログラムSPaが実行される。タスクBにおいては、入出力更新処理IO2、ユーザプログラムPu2、およびユーザプログラムPu2以外のプログラムSPbが実行される。なお、入出力更新処理IO1,IO2の各々における出力更新処理は、当該入出力更新処理に対応するユーザプログラムの実行により決定された出力値を、内部変数および/または制御対象に反映する処理を含む。特に、フィールドネットワーク20を介して接続されているフィールドデバイス200に対する出力値は、通信フレームに格納されてフィールドネットワーク20に送出される。入出力更新処理IO1,IO2の各々における入力更新処理は、当該入出力更新処理に対応するユーザプログラムの実行に必要な入力値(状態値)を、内部変数および/または制御対象から取得する処理を含む。特に、フィールドネットワーク20を介して接続されているフィールドデバイス200からの入力値は、フィールドネットワーク20上を伝搬する通信フレームから取得される。
【0073】
タスクAの処理が終了すると、プロセッサ102の2つのコアのうち1つが空くため、タスクCの処理が開始される。タスクCにおいては、ユーザプログラムPu3、およびユーザプログラムPu3以外のプログラムSPcが実行される。
【0074】
運転モードが開始されてから1ms(タスクAの制御周期)が経過した時刻において、タスクCより優先度が高いタスクBが実行中であり、かつタスクCの優先度よりもタスクAの優先度が高いため、タスクCの処理が中断されて、タスクAの処理が開始される。タスクBの処理が終了すると、タスクCの処理が再開される。
【0075】
運転モードが開始されてから2ms(タスクBの制御周期)が経過した時刻において、タスクA,Bの処理が同時に開始される。当該時点においてタスクCは待機状態である。
【0076】
運転モードが開始されてから3msが経過した時刻において、タスクAの処理が開始される。当該時刻において、タスクBは実行中であり、タスクCは待機状態である。
【0077】
運転モードが開始されてから4msが経過した時刻t4において、タスクA~Cの制御周期の開始時刻が合うため、制御装置100の動作モードが運転モードからプログラムモードに切り替えられる。プログラムモードにおいては、タスクA~Cの各々のユーザプログラムは実行されないため、当該タスクの制御周期毎にユーザプログラム以外のプログラムが実行される。タスクA~Cの制御周期の開始時刻が合う時刻t6に、動作モードがプログラムモードから運転モードに切り替えられて、更新されたユーザプログラムの実行が開始される。
【0078】
プログラムモードにおいては、ユーザプログラムが実行されないため、フィールドデバイス200の制御が停止する。そのため、フィールドデバイス200作業時間の逸失、およびフィールドデバイス200の作業において使用される予定であった材料の使用可能期間の経過等が生じ得るため、フィールドデバイス200の生産性が低下し得る。一方、運転モードにおいてユーザプログラムの変更を無制限に可能にすると、ユーザプログラムの変更内容によってはフィールドデバイス200が不測の挙動を示し得るため、フィールドデバイス200の安全性も低下し得る。
【0079】
そこで、制御システム1においては、運転モードにおいて、全タスクのユーザプログラムを実行しながら、ユーザプログラムを更新する前に、現在のユーザプログラムに基づくフィールドデバイス200の制御からサポート装置400によって編集されたユーザプログラムに基づく制御への移行が可能であると判定された場合に限って、当該ユーザプログラムの更新を許可する。制御システム1によれば、ユーザプログラムの更新処理において、ユーザプログラムの実行が継続されるため、フィールドデバイスの生産性の低下を抑制することができる。また、ユーザプログラムの更新が現在のユーザプログラムに基づく制御対象の制御からサポート装置400によって編集されたユーザプログラムに基づく制御対象の制御への移行が可能であると判定される場合に限定されるため、フィールドデバイス200の安全性の低下も抑制することができる。制御システム1によれば、フィールドデバイス200を制御するためのユーザプログラムの更新によるフィールドデバイス200の生産性の低下および安全性の低下を抑制することができる。
【0080】
図8は、ユーザUsがサポート装置400によって編集したユーザプログラムを運転モードにおいて制御装置100に転送する場合の制御装置100およびサポート装置400の各々のタイムチャートを併せて示す図である。
図8に示されるように、制御装置100は、時刻t10から運転モードを開始する。ユーザUsは、時刻t11(>t10)~t12(>t11)の間、サポート装置400に保存されたユーザプログラムをプログラム作成編集ツールを用いて編集する。ユーザUsは、時刻t13(>t12)においてユーザプログラムの更新指令を制御装置100に送信する。制御装置100は、制御装置100に保存されているユーザプログラムに基づく制御からサポート装置400によって編集されたユーザプログラムに基づく制御への移行が可能である場合にユーザプログラムを更新する。制御装置100は、全タスクの制御周期の開始時刻が合う時刻t14(>t13)に更新されたユーザプログラムの実行を開始する。
【0081】
図9は、
図8の運転モードで行われる具体的な処理のタイムチャートである。運転モードで行われる処理は、
図7の運転モードで行われる処理と同様であるため、同様の処理についての説明を繰り返さない。
図7および
図9を比較すると、
図9においてはユーザプログラムの更新にプログラムモードを介する必要がないため、タスクA~Cが停止されず、ユーザプログラムの更新をより早期に行うことができる。
【0082】
図10は、
図3の制御装置100が運転モードにおいてサポート装置400からユーザプログラムの更新指令を受けた場合に行われる処理の流れを示すフローチャートである。以下ではステップを単にSと記載する。
図10に示される処理は、制御装置100を統合的に制御する不図示のメインルーチンから呼び出される。当該メインルーチンは、システムプログラムPscを実行するプロセッサ102によって実行される。
【0083】
図10に示されるように、プロセッサ102は、S101において特定の周辺機能を停止して、処理をS102に進める。特定の周辺機能には、たとえば、デバッグ機能(たとえば、データトレース、微分モニタ、または強制値リフレッシュ)が含まれる。S101において停止されない周辺機能には、たとえば、I/Oリフレッシュ、タグデータリンク、または発生中の異常が含まれる。
【0084】
プロセッサ102は、S102において、サポート装置400から新ユーザプログラムPu11を取得して、処理をS103に進める。プロセッサ102は、S103において、ストレージ160に保存されている元のユーザプログラムPu1と新ユーザプログラムPu11とを比較して、両者の差分を抽出し、処理をS104に進める。
【0085】
プロセッサ102は、S104において、元のユーザプログラムPu1に基づく制御から新ユーザプログラムPu11に基づく制御への移行が可能か否かを判定する。具体的には、両者の差分が予め禁止された変更を含まない場合に当該移行が可能であると判定される。その結果、ユーザプログラムの更新処理において、予め禁止された変更が行われることを防止することができる。
【0086】
予め禁止された変更には、たとえば、フィールドデバイス200の制御を不定とさせ得る、ユーザプログラムPu1に含まれる変数に関する変更およびファンクションブロックに関する変更、ならびにフィールドネットワーク20を介した通信を停止させ得る事項の変更が含まれる。その結果、制御プログラムの更新処理において、制御対象の動作を不定とさせ得る、変数に関する変更およびファンクションブロックに関する変更、ならびにネットワークを介した通信を停止させ得る事項の変更が行われることを防止することができる。予め禁止された変更の具体例は、以下の表に示される。
【0087】
【0088】
元のユーザプログラムPu1に基づく制御から新ユーザプログラムに基づく制御への移行が不可能である場合(S104においてNO)、プロセッサ102は、S111においてユーザプログラムの更新が許可されないという判定結果および当該更新が許可されない理由をサポート装置に通知して、処理をメインルーチンに返す。当該移行が可能である場合(S104においてYES)、プロセッサ102は、S105において、ユーザプログラムの更新が許可されるという判定結果をサポート装置400に通知して、処理をS106に進める。プロセッサ102は、S106において、サポート装置400からの指令を受信するまで待機する。プロセッサ102は、S107において、サポート装置400から受信した指令が更新の実行指令であるか否かを判定する。当該指令が更新のキャンセル指令である場合(S107においてNO)、プロセッサ102は、処理をメインルーチンに返す。
【0089】
サポート装置400から受信した指令が更新の実行指令である場合(S107においてYES)、プロセッサ102は、S108において、LED117を点灯して処理をS109に進める。プロセッサ102は、S109において、ユーザによって指定されたタイミングでユーザプログラムPu1をPu11に更新し、処理をS110に進める。ユーザによって指定されたタイミングとは、サポート装置400からの更新の実行指令を受信したタイミングから当該実行指令とともに受信した時間間隔経過後のタイミングである。プロセッサ102は、S110においてLED117を消灯し、処理をメインルーチンに返す。
【0090】
図11は、
図4のサポート装置400が制御装置100からユーザプログラムの更新が可能か否かの判定結果を受信した場合に行われる処理の流れを示すフローチャートである。
図11に示される処理は、サポート装置400を統合的に制御する不図示のメインルーチンによって実行される。当該メインルーチンは、サポートプログラムPspを実行するプロセッサ402によって実行される。
【0091】
図11に示されるように、プロセッサ402は、S111において、制御装置100からの判定結果においてユーザプログラムの更新が許可されているか否かを判定する。当該判定結果において当該更新が許可されていない場合(S111においてNO)、プロセッサ402は、S117においてユーザプログラムの更新が許可されない理由を示すダイアログDg1(
図12参照)をディスプレイ450に表示して、処理をメインルーチンに返す。
【0092】
制御装置100からの判定結果においてユーザプログラムの更新が許可されている場合(S111においてYES)、プロセッサ402は、S112においてダイアログDg2(
図13参照)をディスプレイ450に表示して、ユーザにユーザプログラムの更新を実行するか否かの決定をユーザに要求し、処理をS113に進める。プロセッサ402は、S113においてユーザの決定を待機する。プロセッサ402は、S114においてユーザの決定がユーザプログラムの更新の実行であるか否かを判定する。
【0093】
ユーザの決定がユーザプログラムの更新の実行である場合(S114においてYES)、プロセッサ402は、S115において、ユーザプログラムの更新の実行指令、およびユーザによって指定された当該更新が実行されるタイミングを制御装置100に送信し、処理をメインルーチンに返す。ユーザの決定がユーザプログラムのキャンセルである場合(S114においてNO)、プロセッサ402は、S116において、ユーザプログラムの更新のキャンセル指令を制御装置100に送信して、処理をメインルーチンに返す。
【0094】
図13は、
図11の確認ステップS112において表示されるダイアログの一例であるダイアログDg2を示す図である。
図13に示されるように、「ユーザプログラムの更新が可能です。」との文字列Str1と、ダイアログDg2は、エディットボックスEb1と、更新ボタンBt1と、キャンセルボタンBt2とを含む。エディットボックスEb1には、ユーザプログラムの更新が実行されるタイミングを指定するために必要な時間間隔(特定時間間隔)が入力される。更新ボタンBt1がユーザによって押下された場合、サポート装置400から制御装置100へユーザプログラムの更新指令およびエディットボックスEb1に入力された時間間隔が送信される。更新ボタンBt1がユーザによって押下された場合にエディットボックスEb1が空欄のときは、所定の時間間隔(たとえば0秒)が更新指令とともに制御装置100へ送信される。キャンセルボタンBt2がユーザによって押下された場合、サポート装置400から制御装置100へユーザプログラムの更新のキャンセル指令が送信される。
【0095】
制御装置100によれば、ユーザプログラムの更新が許可されるか否かをサポート装置400のユーザが知ることができる。また、ユーザプログラムの更新が許可されない場合に、サポート装置400のユーザは当該更新が許可されない理由を知ることができるため、更新が可能となるように新ユーザプログラムを適切に修正することができる。また、ユーザプログラムが更新されている間、LED117が点灯しているため、制御装置100のユーザは、ユーザプログラムの更新が実行中であることを知ることができる。また、ユーザプログラムの更新についてユーザの確認が行われるため、ユーザプログラムの不測の更新を防止することができる。さらに、サポート装置400のユーザは、ユーザプログラムを所望のタイミングにおいて更新することができる。
【0096】
以上、実施の形態1に係る制御装置、制御システム、およびプログラムによれば、制御対象を制御するための制御プログラムの更新による制御対象の生産性の低下および安全性の低下を抑制することができる。
【0097】
[実施の形態2]
実施の形態1においては、運転モードにおける制御プログラムの更新が可能であるか否かの判定を制御装置において行う制御システムについて説明した。実施の形態2においては、当該判定をサポート装置において行う制御システムについて説明する。
【0098】
図14は、実施の形態2に係る制御システム2の機能構成を示すブロック図である。
図1に示されるように、制御システム1は、制御装置100Bと、サポート装置400Bとを備える。制御装置100Bの構成は、
図1の制御装置100の構成から判定手段92が除かれているとともに、更新手段93が93Bに置き換えられた構成である。制御装置100Bのこれら以外の構成は、制御装置100と同様であるため、同様の構成についての説明を繰り返さない。また、サポート装置400Bの構成は、
図1のサポート装置400の構成に判定手段82が追加されているとともに、プログラム開発手段81が81Bに置き換えられた構成である。サポート装置400Bのこれら以外の構成は、サポート装置400と同様であるため、同様の構成についての説明を繰り返さない。
【0099】
図14に示されるように、判定手段82は、プログラム開発手段81BがユーザUsからユーザプログラムPu11の転送要求を受けた場合に、ユーザプログラムPu1に基づくフィールドデバイス200の制御からユーザプログラムPu11に基づくフィールドデバイス200の制御への移行が可能か否かを判定し、判定結果をプログラム開発手段81Bに出力する。プログラム開発手段81Bは、当該移行が可能であると判定手段82によって判定された場合にユーザプログラムPu1からPu11への更新指令Cmuを更新手段93Bに送信する。更新手段93Bは、更新指令Cmuに応じて、運転モードにおいてユーザプログラムPu1をPu11に更新する。
【0100】
図15は、
図14の制御装置100Bのハードウェア構成例を示すブロック図である。
図15に示されるハードウェア構成は、
図3に示されるシステムプログラムPscがPscBに置き換えられた構成である。これ以外の制御装置100Bのハードウェア構成は、
図3に示されるハードウェア構成と同様であるため、同様の構成についての説明を繰り返さない。
図15を参照しながら、システムプログラムPscBを実行するプロセッサ102が、
図1の制御手段91および更新手段93に対応する。
【0101】
図16は、
図14のサポート装置400Bのハードウェア構成例を示すブロック図である。
図16に示されるハードウェア構成は、
図4に示されるサポートプログラムPspがPspBに置き換えられた構成である。これ以外のサポート装置400Bのハードウェア構成は、
図4に示されるハードウェア構成と同様であるため、同様の構成についての説明を繰り返さない。
図16を参照しながら、サポートプログラムPspBを実行するプロセッサ402が、
図14のプログラム開発手段81Bおよび判定手段82に対応する。
【0102】
図17は、
図14の制御装置100Bが運転モードにおいてサポート装置400からユーザプログラムの更新指令Cmuを受けた場合に行われる処理の流れを示すフローチャートである。
図17に示されるフローチャートは、
図10に示されるフローチャートからS103~S107,S111が除かれたフローチャートである。
図17に示されるように、プロセッサ102は、実施の形態1と同様にS101,S102,S108~S110を実行し、ユーザプログラムを更新する。
【0103】
図18は、
図14のプログラム開発手段81BがユーザUsからユーザプログラムの転送要求を受けた場合に、サポート装置400Bにおいて行われる処理を示すフローチャートである。
図18に示される処理は、サポート装置400を統合的に制御する不図示のメインルーチンによって実行される。
【0104】
図18に示されるように、プロセッサ402は、S201において、元のユーザプログラムPu1に基づく制御から新ユーザプログラムPu11に基づく制御への移行が可能か否かを判定する。元のユーザプログラムPu1に基づく制御から新ユーザプログラムに基づく制御への移行が不可能である場合(S201においてNO)、プロセッサ402は、S206においてユーザプログラムの更新が許可されない理由を示すダイアログDg1(
図12参照)をディスプレイ450に表示して、処理をメインルーチンに返す。
【0105】
元のユーザプログラムPu1に基づく制御から新ユーザプログラムPu11に基づく制御への移行が可能である場合(S201においてYES)、プロセッサ402は、S202においてダイアログDg2(
図13参照)をディスプレイ450に表示して、ユーザにユーザプログラムの更新を実行するか否かの決定をユーザに要求し、処理をS203に進める。プロセッサ402は、S203においてユーザの決定を待機する。プロセッサ402は、S204においてユーザの決定がユーザプログラムの更新の実行であるか否かを判定する。
【0106】
ユーザの決定がユーザプログラムの更新の実行である場合(S204においてYES)、プロセッサ402は、S205において、ユーザプログラムの更新指令Cmu、およびユーザによって指定された当該更新が実行されるタイミングを制御装置100Bに送信し、処理をメインルーチンに返す。ユーザの決定がユーザプログラムのキャンセルである場合(S204においてNO)、プロセッサ402は、処理をメインルーチンに返す。
【0107】
以上、実施の形態2に係る制御装置、制御システム、およびプログラムによれば、制御対象を制御するための制御プログラムの更新による制御対象の生産性の低下および安全性の低下を抑制することができる。
【0108】
<付記>
上記したような本実施の形態は、以下のような技術思想を含む。
【0109】
[構成1]
第1制御プログラム(Pu1)に基づいて制御対象(200)を制御するための運転モードを動作モードとして有する制御装置(100)であって、
前記第1制御プログラム(Pu1)から第2制御プログラム(Pu11)への更新指令(Cmu)に応じて、前記第1制御プログラム(Pu1)に基づく前記制御対象(200)の制御から前記第2制御プログラム(Pu11)に基づく前記制御対象(200)の制御への移行が可能か否かを判定する判定手段(92)と、
前記移行が可能である場合に前記運転モードにおいて前記第1制御プログラム(Pu1)を前記第2制御プログラム(Pu11)に更新する更新手段(93)とを備える、制御装置(100)。
【0110】
[構成2]
前記判定手段(92)は、前記第1制御プログラム(Pu1)と前記第2制御プログラム(Pu11)との差分が予め禁止された変更を含まない場合に、前記移行が可能であると判定する、構成1に記載の制御装置(100)。
【0111】
[構成3]
前記制御装置(100)と前記制御対象(200)とはネットワーク(20)を介して接続され、
前記第1制御プログラム(Pu1)は、変数およびファンクションブロックを含み、
前記予め禁止された変更は、前記制御対象(200)の動作を不定とさせ得る、前記変数に関する変更および前記ファンクションブロックに関する変更、ならびに前記ネットワーク(20)を介した通信を停止させ得る事項の変更を含む、構成2に記載の制御装置(100)。
【0112】
[構成4]
発光部(117)をさらに備え、
前記更新手段(93)は、前記第1制御プログラム(Pu1)を前記第2制御プログラム(Pu11)へ更新する場合に前記発光部(117)を点灯させる、構成1~3のいずれか1項に記載の制御装置(100)。
【0113】
[構成5]
第1制御プログラム(Pu1)に基づいて制御対象(200)を制御するための運転モードを動作モードとして有する制御システム(1)であって、
第2制御プログラム(Pu11)を開発するプログラム開発手段(400)と、
前記第1制御プログラム(Pu1)に基づく前記制御対象(200)の制御から前記第2制御プログラム(Pu11)に基づく前記制御対象(200)の制御への移行が可能か否かを判定する判定手段(92)と、
前記移行が可能である場合に前記運転モードにおいて前記第1制御プログラム(Pu1)を前記第2制御プログラム(Pu11)に更新する更新手段(93)と、を備える、制御システム(1)。
【0114】
[構成6]
前記判定手段(92)は、前記判定手段(92)の判定結果を前記プログラム開発手段(400)に送信する、構成5に記載の制御システム(1)。
【0115】
[構成7]
前記プログラム開発手段(400)は、前記移行が不可能であるとの前記判定結果を受信した場合、前記移行が不可能であると判定された理由を表示する、構成6に記載の制御システム(1)。
【0116】
[構成8]
前記プログラム開発手段(400)は、前記移行が可能であるとの前記判定結果を受信した場合、前記第1制御プログラム(Pu1)から前記第2制御プログラム(Pu11)への更新を実行するか否かの決定をユーザ(Us)に要求し、前記ユーザ(Us)によって入力された前記決定を前記更新手段(93)に送信し、
前記更新手段(93)は、前記決定に従って前記更新を処理する、構成6または7に記載の制御システム(1)。
【0117】
[構成9]
前記プログラム開発手段(400)は、前記移行が可能であるとの前記判定結果を前記判定手段(92)から受信した場合、前記ユーザ(Us)に特定時間間隔の入力を要求し、前記ユーザ(Us)によって入力された前記特定時間間隔を前記更新手段(93)に送信し、
前記更新手段(93)は、前記特定時間間隔を前記プログラム開発手段(400)から受信したタイミングから前記特定時間間隔経過後に、前記更新を実行する、構成8に記載の制御システム(1)。
【0118】
[構成10]
制御対象(200)を制御するための運転モードにおいて実行される第1制御プログラム(Pu1)の更新を管理するプログラム(Psc)であって、
前記プログラムは、プロセッサによって実行されることによって、
前記第1制御プログラム(Pu1)から第2制御プログラム(Pu11)への更新指令(Cmu)に応じて、前記第1制御プログラム(Pu1)に基づく前記制御対象(200)の制御から前記第2制御プログラム(Pu11)に基づく前記制御対象(200)の制御への移行が可能か否かを判定し、
前記移行が可能である場合に前記運転モードにおいて前記第1制御プログラム(Pu1)を前記第2制御プログラム(Pu11)に更新する、プログラム(Psc)。
【0119】
今回開示された各実施の形態は、矛盾しない範囲で適宜組み合わされて実施されることも予定されている。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0120】
1,2 制御システム、12 上位ネットワーク、20 フィールドネットワーク、80,90 記憶手段、81,81B プログラム開発手段、82,92 判定手段、91 制御手段、93,93B 更新手段、100,100B 制御装置、102,402 プロセッサ、104 メインメモリ、106 上位ネットワークコントローラ、108 フィールドネットワークコントローラ、112,414 メモリカードインターフェイス、114,115 メモリカード、116 ローカルバスコントローラ、117 LED、118,420 プロセッサバス、122 ローカルバス、160,408 ストレージ、170 コントローラ、180 機能ユニット、200 フィールドデバイス、220 サーボドライバ、222 サーボモータ、400,400B サポート装置、404 揮発性メモリ、406 不揮発性メモリ、410 キーボード、412 マウス、418 外部装置インターフェイス、450 ディスプレイ、500 表示装置,600 サーバ装置,700 ゲートウェイ,900 インターネット,A~C タスク,Bt1 更新ボタン,Bt2 キャンセルボタン,Cmu 更新指令,Dg1,Dg2 ダイアログ,Eb1 エディットボックス,I アナログ,I,O アナログ,I デジタル,I,O デジタル,IO1,IO2 入出力更新処理,L1 タスク情報,Psc,PscB システムプログラム,Psp,PspB サポートプログラム、Pu1~Pu3,Pu11 ユーザプログラム。