IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

<>
  • 特許-情報処理装置およびプログラム 図1
  • 特許-情報処理装置およびプログラム 図2
  • 特許-情報処理装置およびプログラム 図3
  • 特許-情報処理装置およびプログラム 図4
  • 特許-情報処理装置およびプログラム 図5
  • 特許-情報処理装置およびプログラム 図6
  • 特許-情報処理装置およびプログラム 図7
  • 特許-情報処理装置およびプログラム 図8
  • 特許-情報処理装置およびプログラム 図9
  • 特許-情報処理装置およびプログラム 図10
  • 特許-情報処理装置およびプログラム 図11
  • 特許-情報処理装置およびプログラム 図12
  • 特許-情報処理装置およびプログラム 図13
  • 特許-情報処理装置およびプログラム 図14
  • 特許-情報処理装置およびプログラム 図15
  • 特許-情報処理装置およびプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】情報処理装置およびプログラム
(51)【国際特許分類】
   G05B 19/05 20060101AFI20241008BHJP
【FI】
G05B19/05 F
【請求項の数】 7
(21)【出願番号】P 2021036616
(22)【出願日】2021-03-08
(65)【公開番号】P2022136823
(43)【公開日】2022-09-21
【審査請求日】2024-01-16
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】原田 英輝
(72)【発明者】
【氏名】遠坂 州平
(72)【発明者】
【氏名】若林 大輔
【審査官】尾形 元
(56)【参考文献】
【文献】特開2005-165470(JP,A)
【文献】特開2002-229663(JP,A)
【文献】特開2020-61055(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
プロセッサを有し、かつ制御対象を制御する制御装置によって実行されるタスクに関する設定を行うための情報処理装置であって、
前記制御装置の動作モードに関するユーザ入力を受け付ける入力部と、
前記ユーザ入力に従って前記制御装置の動作条件を設定する設定部と、
前記設定部により設定された前記制御装置の前記動作条件を前記制御装置に転送する転送部とを備え、
前記動作モードは、第1のモードと、前記第1のモードでの動作温度よりも高温で前記制御装置を動作させるための第2のモードとを含み、
前記ユーザ入力によって前記第2のモードが選択された場合、前記設定部は、前記タスクの制御周期内に、前記プロセッサの空き時間を割り当てる、情報処理装置。
【請求項2】
前記ユーザ入力によって前記第2のモードが選択された場合、前記設定部は、前記制御周期から前記空き時間を除いた第1の残り時間内に、複数のタスクのうち、前記プロセッサによる実行の優先度の高い高優先タスクの実行時間を割り当てる、請求項1に記載の情報処理装置。
【請求項3】
前記ユーザ入力によって前記第2のモードが選択された場合に、前記設定部は、前記制御周期から前記空き時間および前記高優先タスクの実行時間を除いた第2の残り時間内に、前記複数のタスクのうち、実行の優先度の低い低優先タスクが割り当て可能かどうかを判断して、
前記第2の残り時間内に、前記低優先タスクが割り当て可能である場合には、前記設定部は、前記第2の残り時間内に前記低優先タスクの実行時間を割り当て、
前記第2の残り時間内に、前記低優先タスクが割り当てできない場合には、前記設定部は、前記第2の残り時間を前記空き時間に割り当てる、請求項2に記載の情報処理装置。
【請求項4】
前記ユーザ入力によって前記第2のモードが選択された場合に、前記設定部は、前記高優先タスクの実行時間の揺らぎに基づく前記高優先タスクの最大の実行時間を、前記第1の残り時間内に割り当てる、請求項2に記載の情報処理装置。
【請求項5】
前記設定部は、前記空き時間の少なくとも一部を、前記高優先タスクの終了直後に割り当てる、請求項2から請求項4のいずれか1項に記載の情報処理装置。
【請求項6】
前記ユーザ入力によって前記第1のモードが選択された場合に、前記設定部は、前記制御周期内に前記空き時間を確保せず、かつ、複数のタスクが優先度の高い順に前記制御周期内で実行されるように、前記複数のタスクを割り当てる、請求項1から請求項5のいずれか1項に記載の情報処理装置。
【請求項7】
プロセッサを有し、かつ制御対象を制御する制御装置によって実行されるタスクに関する設定を、コンピュータに実行させるためのプログラムであって、
前記コンピュータに、
前記制御装置の動作モードに関するユーザ入力を受け付けるステップと、
前記ユーザ入力に従って前記制御装置の動作条件を設定するステップと、
前記制御装置の前記動作条件を前記制御装置に転送するステップとを実行させ、
前記動作モードは、第1のモードと、前記第1のモードでの動作温度よりも高温で前記制御装置を動作させるための第2のモードとを含み、
前記設定するステップは、
前記ユーザ入力によって前記第2のモードが選択された場合に、前記タスクの制御周期内に、前記プロセッサの空き時間を割り当てるステップを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、およびプログラムに関し、特に制御装置の設定のための情報処理装置およびプログラムに関する。
【背景技術】
【0002】
様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。近年の情報通信技術(ICT:Information and Communication Technology)の発展に伴って、このようなFA分野における制御装置においても、従来のシーケンスプログラムだけではなく、各種のアプリケーションプログラムが実行されるようになっている。
【0003】
たとえば特開2020-61055号公報(特許文献1)は、制御装置のプロセッサにおいて、一定の制御周期内に高優先度のプログラムと低優先度のプログラムとを実行させること、および、高優先度プログラムの実行を妨げないように、プロセッサの空き時間に低優先度プログラムを実行することを開示する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2020-61055号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述の制御装置では、優先度の高い第1のプログラムがプロセッサによって、定周期で繰り返し実行される。さらに、第1のプログラムの実行を妨げないように、制御周期中のプロセッサの空き時間に、第2のプログラムおよび第3のプログラムをプロセッサに実行させる。演算速度および性能の向上の観点から、設定された制御周期の中で、プロセッサは、その周期を超えないぎりぎりの時間まで演算をおこなう。しかし、プロセッサおよび周辺回路は高負荷状態にあるため、制御装置の消費電力が大きい。制御装置の消費電力が大きくなるほど、制御装置から発せられる熱の量も大きくなる。
【0006】
制御装置は、ある動作周囲温度で使用可能なように設計される。また、実際に作製された装置は、その動作周囲温度まで使用可能かどうか評価される。設計および評価は、制御装置にとって厳しい条件、すなわち、制御周期の終わりの直前までプロセッサが演算を行ったという条件(最大負荷状態)で実施される。
【0007】
小型サイズ、および製造コストの抑制といった点から、制御装置の放熱の能力に余裕がない可能性がある。たとえば、設計および評価の段階で決定した動作周囲温度の上限よりも高い周囲温度のもとで制御装置を最大負荷状態で動作させた場合には、制御装置の誤動作、停止、あるいは故障の可能性が生じる。
【0008】
プロセッサの中には、高温時にクロック周波数を自動的に低下させる機能を有するものがある。クロック周波数を低下させることによってプロセッサの消費電力が下がるため、プロセッサの発熱量を下げることができる。しかし、PLCのように生産現場に用いられる制御装置では、クロック周波数を下げた場合には制御性能が低下するという問題が生じる。このため、制御装置によって制御される対象(製造装置)の動作が変化することが起こり得る。
【0009】
制御装置の使用されうる環境が多様になっている。したがって想定した使用周囲温度よりも高い温度の下で制御装置を使用する可能性も生じる。たとえば筐体を大きくすることによって、制御装置の放熱性能を高めようとすれば、制御装置の新たな設計が必要になる。サイズおよび製造コストに対する要請の点から、ハードウェアの変更は容易ではない。
【0010】
本発明の1つの目的は、より高い周囲温度で制御装置を使用可能なように制御装置を設定するための情報処理装置および、情報処理装置によって実行されるプログラムを提供することである。
【課題を解決するための手段】
【0011】
本開示の一例の情報処理装置は、プロセッサを有し、かつ制御対象を制御する制御装置によって実行されるタスクに関する設定を行うための情報処理装置であって、制御装置の動作モードに関するユーザ入力を受け付ける入力部と、ユーザ入力に従って制御装置の動作条件を設定する設定部と、設定部により設定された制御装置の動作条件を制御装置に転送する転送部とを備える。動作モードは、第1のモードと、第1のモードでの動作温度よりも高温で制御装置を動作させるための第2のモードとを含む。ユーザ入力によって第2のモードが選択された場合、設定部は、タスクの制御周期内に、プロセッサの空き時間を割り当てる。
【0012】
この開示によれば、情報処理装置は、ユーザによって第2のモードが選択された際に、制御周期内にプロセッサの空き時間を割り当てる。空き時間の間には、プロセッサは演算を行わないので、プロセッサの発熱量が抑えられる。したがって第1のモードでの周囲温度よりも高い温度において制御装置を動作させることが可能となる。情報処理装置は、第1のモードでの周囲温度よりも高い温度において制御装置が動作可能なように制御装置を設定することができる。
【0013】
上述の開示において、ユーザ入力によって第2のモードが選択された場合、設定部は、制御周期から空き時間を除いた第1の残り時間内に、複数のタスクのうち、プロセッサによる実行の優先度の高い高優先タスクの実行時間を割り当てる。
【0014】
上述の開示によれば、高優先タスクの実行に影響を与えることなく、制御周期内でプロセッサの空き時間を確保することができる。したがって、たとえば重要度の高いタスクの実行に影響を与えることなく、高い周囲温度において制御装置を動作させることができる。
【0015】
上述の開示において、ユーザ入力によって第2のモードが選択された場合に、設定部は、制御周期から空き時間および高優先タスクの実行時間を除いた第2の残り時間内に、複数のタスクのうち、実行の優先度の低い低優先タスクが割り当て可能かどうかを判断する。第2の残り時間内に、低優先タスクが割り当て可能である場合には、設定部は、第2の残り時間内に低優先タスクの実行時間を割り当てる。第2の残り時間内に、低優先タスクが割り当てできない場合には、設定部は、第2の残り時間を空き時間に割り当てる。
【0016】
上述の開示によれば、制御周期内に高優先タスクおよび低優先タスクを実行することによって、制御対象に対する制御の性能を向上させることができる。低優先タスクが実行できない場合は、制御周期内の空き時間をより長くすることができる。したがって、プロセッサの発熱量を抑える効果を高めることができる。
【0017】
上述の開示において、ユーザ入力によって第2のモードが選択された場合に、設定部は、高優先タスクの実行時間の揺らぎに基づく高優先タスクの最大の実行時間を、第1の残り時間内に割り当てる。
【0018】
上述の開示によれば、制御周期内に空き時間を確保しつつ、高優先タスクを確実に実行することができる。
【0019】
上述の開示において、設定部は、空き時間の少なくとも一部を、高優先タスクの終了直後に割り当てる。
【0020】
上述の開示によれば、プロセッサが連続的に動作する時間を短くすることによって、制御周期を変えることなく、プロセッサの温度が大きく上昇することを抑えることができる。
【0021】
上述の開示において、ユーザ入力によって第1のモードが選択された場合に、設定部は、制御周期内に空き時間を確保せず、かつ、複数のタスクが優先度の高い順に制御周期内で実行されるように、複数のタスクを割り当てる。
【0022】
上述の開示によれば、制御周期内に高優先タスクおよび低優先タスクを実行することによって、制御対象に対する制御の性能を向上させることができる。
【0023】
本開示の一例によれば、プロセッサを有し、かつ制御対象を制御する制御装置によって実行されるタスクに関する設定を、コンピュータに実行させるためのプログラムであって、コンピュータに、制御装置の動作モードに関するユーザ入力を受け付けるステップと、ユーザ入力に従って制御装置の動作条件を設定するステップと、制御装置の動作条件を制御装置に転送するステップとを実行させる。動作モードは、第1のモードと、第1のモードでの動作温度よりも高温で制御装置を動作させるための第2のモードとを含む。設定するステップは、ユーザ入力によって第2のモードが選択された場合に、タスクの制御周期内に、プロセッサの空き時間を割り当てるステップを含む。
【0024】
この開示によれば、より高い周囲温度で制御装置を使用可能なように制御装置を設定することができる。
【発明の効果】
【0025】
本開示によれば、より高い周囲温度で制御装置を使用可能なように制御装置を設定することができる。
【図面の簡単な説明】
【0026】
図1】本実施の形態に係る制御装置におけるデフォルトモードでのプログラムの実行スケジュールの一例を示す模式図である。
図2】本実施の形態に係る制御装置における拡張モードでのプログラムの実行スケジュールの一例を示す模式図である。
図3】一実施形態に係る制御装置を含む制御システムの模式図である。
図4】本実施の形態に係る制御装置を構成する演算ユニットのハードウェア構成の一例を示す模式図である。
図5】本実施の形態に係るシステムを構成するサポート装置のハードウェア構成例を示すブロック図である。
図6】本実施の形態に係る制御装置を構成する演算ユニットのソフトウェア構成の一例を示す模式図である。
図7】サポート装置の表示部によって提供される、動作モードの設定のための画面の一例を示す図である。
図8】第1の実施の形態に係る制御装置の動作モード設定処理の概略を示したフローチャートである。
図9】デフォルトモードと拡張モードにおける、制御周期内の時間の割当ての優先度を説明した図である。
図10】制御装置の演算ユニットがデフォルトモードにおいて実行するタスク処理の例を説明する図である。
図11】制御装置の演算ユニットが拡張モードにおいて実行するタスク処理の例を説明する図である。
図12】制御装置の演算ユニットが拡張モードにおいて実行するタスク処理の別の例を説明する図である。
図13】制御装置の演算ユニットが拡張モードにおいて実行するタスク処理のさらに別の例を説明する図である。
図14】第2の実施の形態に係る制御装置の動作モード設定処理の概略を示したフローチャートである。
図15】制御装置によるタスクの実行時におけるプロセッサ空き時間の制御に関する処理を説明するフローチャートである。
図16】第2の実施の形態に係る制御装置の演算ユニットが拡張モードにおいて実行するタスク処理の例を説明する図である。
【発明を実施するための形態】
【0027】
以下、図面を参照しつつ、本発明に従う実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【0028】
<A.適用例>
まず、図1および図2を参照して、本発明が適用される場面の一例について説明する。
【0029】
本実施の形態に係る制御装置は、任意の制御対象を制御するためのコンピュータであり、1または複数のプロセッサを有する。制御装置は、2つの動作モードを有する。第1の動作モードはデフォルト(標準)モードである。第2の動作モードは拡張モードである。
【0030】
図1は、本実施の形態に係る制御装置におけるデフォルトモードでのプログラムの実行スケジュールの一例を示す模式図である。図2は、本実施の形態に係る制御装置における拡張モードでのプログラムの実行スケジュールの一例を示す模式図である。
【0031】
図1に示すように、制御装置をデフォルトモードで動作させる場合、制御装置は、制御周期内で高優先タスク20と、低優先タスク30とを実行する。
【0032】
本明細書において、「タスク」は、コンピューティング資源を割当てる制御の対象となる基本単位であり、各タスクに、実行させるべき1または複数のプログラムが設定される。すなわち、いずれかのタスクに対してコンピューティング資源が割当てられ、当該タスクが実行できる状態になると、当該タスクに設定されている1または複数のプログラムの実行が開始または再開される。
【0033】
高優先タスク20は、制御周期内に実行すべきタスクである。高優先タスク20には、制御装置のプロセッサで繰返し実行される最も実行の優先度(以下、単に「優先度」とも称す。)の高いプログラムが設定される。高優先タスク20は、例えば、入出力データの更新処理、および最優先で実行されるべきシーケンス演算処理などを含んでもよい。高優先タスク20が制御周期内に必ず実行されるように、制御周期内に高優先タスク20の処理時間が割り当てられる。
【0034】
一方、低優先タスク30は、高優先タスク20よりも実行の優先度が低いタスクであり、たとえば要求があった場合に実行される。低優先タスク30には、高優先タスク20に設定されるプログラムより優先度が低いプログラムが設定される。
【0035】
制御装置は、スケジューラプログラムに従って、これらのタスクに設定される各プログラムの実行タイミングを管理する。スケジューラプログラムによるプログラムの実行管理は、適時のタイミングおよび期間で、コンピューティング資源を各プログラムに割当てることで実現できる。
【0036】
デフォルトモードでは、スケジューラプログラムは、高優先タスク20に設定されたプログラムの実行を妨げないように、制御周期内の高優先タスク20を実行していない時間に、低優先タスク30に設定されるプログラムをプロセッサに実行させる。なお、スケジューラプログラムは、予め設定された制御周期を超えないように、制御周期内に低優先タスク30の実行時間を割り当てる。したがって、ある制御周期では、高優先タスク20および低優先タスク30を割り当てた状態で、さらにプロセッサの空き時間が生じることが起こり得る。また、別の制御周期では、高優先タスク20のみが割り当てられ、残りの時間がプロセッサの空き時間となることが起こり得る。
【0037】
図2を参照して、標準的な制御装置の使用周囲温度(たとえば55℃以下の温度)よりも高い周囲温度(たとえば60℃)で制御装置を動作させる場合に、拡張モードが選択される。制御装置を拡張モードで動作させる場合、スケジューラプログラムは、制御周期のうちの所定の割合の時間を、プロセッサの空き時間40に確保する。制御周期に対する空き時間40の割合は、たとえば制御装置の開発者が、実際の装置を用いて空き時間を変えながら温度測定試験を実施することによって決定した値であってもよい。
【0038】
次にスケジューラプログラムは、制御周期のうちの空き時間40を引いた残り時間(第1の残り時間)に高優先タスク20の処理時間を割り当てる。続いてスケジューラプログラムは、制御周期から空き時間40および高優先タスク20の処理時間を引いた第2の残り時間に、低優先タスク30を割り当てることができるかどうかを判断する。
【0039】
第2の残り時間に、低優先タスク30を割り当てることができる場合、その制御周期では、高優先タスク20および低優先タスク30が割り当てられるとともに実行される。さらに、その制御周期では、予め決められた長さを持つ空き時間40が確保される。一方、第2の残り時間に、低優先タスク30を割り当てることができない場合は、その制御周期において、高優先タスク20のみ実行される。すなわち、高優先タスク20の実行時間以外の時間が、プロセッサの空き時間40となる。したがって実際のプロセッサ空き時間は、予め確保された時間よりも長くなる。
【0040】
たとえば制御装置をデフォルトモードで動作させている状態で、高優先タスクの最大処理時間が長くなり、制御周期内に空き時間を確保できないことが起こり得る。この状態において、制御装置の周囲温度が高くなると、制御周期を長く設定しなければならない。しかし、制御周期を長くすると、高優先タスクの処理の性能が低下する。すなわち制御装置の制御性能が低下する。
【0041】
本開示の実施の形態によれば、拡張モードにおいて、制御装置は、必ず、一定時間以上の長さの空き時間40を制御周期内に確保することができる。プロセッサは空き時間の間、演算を停止する。したがって、デフォルトモードでの動作に比べてプロセッサの消費電力を低減できる。プロセッサの消費電力を低減することによって、プロセッサの発熱量を抑えることができる。これにより、拡張モードでは、デフォルトモードよりも高い周囲温度でも制御装置を動作させることができる。特に、本開示の実施の形態によれば、制御装置の放熱性を高めるためのハードウェアの変更(たとえば筐体を大きくする)を不要としながら高い周囲温度でも制御装置を動作させることができる。
【0042】
<B.構成例>
(B-1.システムの構成)
図3は、一実施形態に係る制御装置を含む制御システムの模式図である。本実施の形態に係る制御装置は、たとえばFAの生産ライン10に備えられ、制御対象を制御する。生産ライン10は、制御装置1A,1B,1C,1D,1E,1F,1G,1Hを含む。制御装置1A~1Hは、たとえばPLCによって実現される。
【0043】
制御装置1A~1Hは、通信装置4に接続される。制御装置1A~1Hは通信装置4を介して、互いの間でデータを遣り取りできる。通信装置4は、産業分野で行われる通信に必要なリアルタイム性を実現するための装置であり、たとえばIEEE 802.1.TSNに準拠したスイッチである。また、制御装置1A,1B,1C,1D,1E,1F,1G,1Hは、互いに時刻同期する。このために制御装置1A,1B,1C,1D,1E,1F,1G,1Hは、タイマー機能を備える。
【0044】
図3に示す生産ライン10において、制御装置1A~1Hのうち少なくとも1つが実施の形態に係る制御装置である。以後、実施の形態に係る制御装置として、制御装置1Aを説明する。なお、制御装置1A~1Hのすべてが本実施の形態に係る制御装置に該当してもよい。さらに、図3は、生産ライン10に含まれる制御装置の数を限定することを意図していない。
【0045】
制御装置1Aは、制御対象であるフィールド機器5に対する制御処理を実行する。制御装置1Aは、その制御処理を実行するための機能が実装された複数の機能ユニットを備える。図1に示すように、制御装置1Aは、演算ユニット100A、機能ユニット201A,201B,201C,201DおよびI/Oユニット300Aを含む。フィールド機器5の種類は特に限定されず、たとえばサーボモータ等を含みうる。
【0046】
機能ユニット201A,201B,201C,201Dの各々が実装する機能は、特に限定されるものではない。たとえば、機能ユニット201A,201B,201C,201Dは、通信ユニットを含むことができる。図1に示した例では、機能ユニット201Dは通信ユニットであり、ネットワークを介して通信装置4に接続される。
【0047】
AC-DC電源400Aは、交流電圧を直流電圧に変換して、その直流電圧を、制御装置1Aに電源電圧として供給する。制御装置1Aの電源電圧は、たとえばDC24Vである。
【0048】
制御装置1Bは、演算ユニット100B、機能ユニット202AおよびI/Oユニット300Bを含む。機能ユニット202Aは、たとえば通信ユニットであり、ネットワークを介して通信装置4に接続される。制御装置1Aと同様に、AC-DC電源400Bは、電源電圧(たとえばDC24V)を制御装置1Bの各機能ユニットに供給する。
【0049】
サポート装置8は、制御装置1A~1Hが対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置8は、制御装置1A~1Hの各々で実行されるタスクに関する設定環境、制御装置1A~1Hにおけるタスクの実行状況のモニタ画面などを提供する。
【0050】
(B-2.演算ユニットのハードウェア構成)
図4は、本実施の形態に係る制御装置1Aを構成する演算ユニット100Aのハードウェア構成の一例を示す模式図である。図4を参照して、演算ユニット100Aは、プロセッサ101と、チップセット102と、メインメモリ104と、不揮発性メモリ106と、システムタイマ108と、PLCシステムバスコントローラ120と、フィールドネットワークコントローラ140と、USBコネクタ110とを含む。チップセット102と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【0051】
プロセッサ101およびチップセット102は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ101は、チップセット102から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット102は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ101に必要な命令コードを生成する。さらに、チップセット102は、プロセッサ101での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【0052】
図4には、説明の便宜上、1つのプロセッサ101が描かれているが、複数のプロセッサ101を配置してもよいし、1つのプロセッサ101に複数のコアが実装されていてもよい。プロセッサ101の性能および構成は、要求されるコンピューティング資源に応じて決定されてもよい。
【0053】
演算ユニット100Aは、記憶手段として、メインメモリ104および不揮発性メモリ106を有する。メインメモリ104は、揮発性の記憶領域(RAM)であり、演算ユニット100Aへの電源投入後にプロセッサ101で実行されるべき各種プログラムを保持する。また、メインメモリ104は、プロセッサ101による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ104としては、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)といったデバイスが用いられる。
【0054】
不揮発性メモリ106は、リアルタイムOS(Operating System)、制御装置1Aのシステムプログラム、ユーザプログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、プロセッサ101がアクセスできるようにメインメモリ104にコピーされる。このような不揮発性メモリ106としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、不揮発性メモリ106として、ハードディスクドライブのような磁気記録媒体などを用いてもよい。
【0055】
システムタイマ108は、割り込み信号を発生させてプロセッサ101に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、OS(Operating System)やBIOS(Basic Input Output System)などによって、任意の周期で割り込み信号を発生するように設定することもできる。システムタイマ108が発生する割り込み信号を利用して、制御周期毎の制御動作が実現される。
【0056】
演算ユニット100Aは、通信回路として、PLCシステムバスコントローラ120およびフィールドネットワークコントローラ140を有する。これらの通信回路は、任意の指令値といった出力データを送信するとともに、任意のセンサから得られた検出値といった入力データを受信する。
【0057】
PLCシステムバスコントローラ120は、PLCシステムバス(図示せず)を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ120は、DMA(Dynamic Memory Access)制御回路122と、PLCシステムバス制御回路124と、バッファメモリ126とを含む。PLCシステムバスコントローラ120は、PLCシステムバスコネクタ130を介してPLCシステムバスと内部的に接続される。
【0058】
バッファメモリ126は、PLCシステムバスを介して他のユニットへ出力されるデータ(出力データ)用の送信バッファ、および、PLCシステムバスを介して他のユニットから入力されるデータ(入力データ)用の受信バッファとして機能する。DMA制御回路122は、メインメモリ104からバッファメモリ126への出力データの転送、および、バッファメモリ126からメインメモリ104への入力データの転送を行う。PLCシステムバス制御回路124は、PLCシステムバスに接続される他のユニットとの間で、バッファメモリ126の出力データを送信する処理および入力データを受信してバッファメモリ126に格納する処理を行う。
【0059】
フィールドネットワークコントローラ140は、フィールドネットワーク(図示せず)を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ140は、用いられるフィールドネットワークの規格に従い、出力データの送信および入力データの受信を制御する。より具体的には、フィールドネットワークコントローラ140は、DMA制御回路142と、フィールドネットワーク制御回路144と、バッファメモリ146とを含む。
【0060】
バッファメモリ146は、フィールドネットワークを介して他の装置などへ出力されるデータ(出力データ)用の送信バッファ、および、フィールドネットワークを介して他の装置などから入力されるデータ(入力データ)用の受信バッファとして機能する。DMA制御回路142は、メインメモリ104からバッファメモリ146への出力データの転送、および、バッファメモリ146からメインメモリ104への入力データの転送を行う。フィールドネットワーク制御回路144は、フィールドネットワークに接続される他の装置との間で、バッファメモリ146の出力データを送信する処理および入力データを受信してバッファメモリ146に格納する処理を行う。
【0061】
USBコネクタ110は、外部の装置と演算ユニット100Aとを接続するためのインターフェイスである。たとえば演算ユニット100Aは、USBコネクタ110およびUSBケーブルを介してサポート装置8に接続される。演算ユニット100Aのプロセッサ101で実行可能なプログラムなどは、サポート装置8から転送され、USBコネクタ110を介して制御装置1Aに取込まれる。
【0062】
温度センサ161は、演算ユニット100Aの内部の温度を検出して、温度値を出力する。温度値は、チップセット102を介してプロセッサ101へと送られる。
【0063】
(B-3.サポート装置のハードウェア構成)
本実施の形態に係るサポート装置8は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)がプログラムを実行することによって実現される。
【0064】
図5は、本実施の形態に係るシステムを構成するサポート装置8のハードウェア構成例を示すブロック図である。図5を参照して、サポート装置8は、CPUまたはMPUなどのプロセッサ802と、光学ドライブ804と、主記憶装置806と、二次記憶装置808と、USBコントローラ812と、入力部816と、表示部818とを含む。これらのコンポーネントはバス820を介して接続される。
【0065】
プロセッサ802は、二次記憶装置808に格納された各種プログラムを読み出して、主記憶装置806に展開して実行することで、後述するような各種処理を実現する。プロセッサ802は、ユーザ入力に従って制御装置1Aの動作条件を設定する設定部に相当する。
【0066】
二次記憶装置808は、例えば、HDDあるいはSSDなどによって構成される。二次記憶装置808には、典型的には、ユーザプログラムの作成、タスクに関する設定などを行うツールである開発プログラム822が格納される。二次記憶装置808には、OSおよび他の必要なプログラムが格納されてもよい。
【0067】
サポート装置8は、光学ドライブ804を有することができる。光学ドライブ804は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体805(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムを読み出す。記録媒体805から読み出されたプログラムは、二次記憶装置808などにインストールされてもよい。
【0068】
サポート装置8で実行される各種プログラムは、ネットワーク上のサーバ装置などからダウンロードされてサポート装置8にインストールされてもよい。またサポート装置8が提供する機能は、OSが提供するモジュールの一部を利用する形で実現されてもよい。
【0069】
USBコントローラ812は、USB接続を介して制御装置1Aとの間のデータの遣り取りを制御する。本実施の形態では、USBコントローラ812は、制御装置1Aの動作条件を制御装置1Aに転送するための転送部を実現する。
【0070】
入力部816は、キーボードおよびマウスなどで構成され、ユーザ操作、ユーザ入力などを受付ける。本実施の形態では、入力部816は、制御装置1Aの動作モードに関するユーザ入力を受け付けるように構成される。
【0071】
表示部818は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ802からの処理結果などを出力する。
【0072】
図5には、プロセッサ802がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0073】
(B-4.演算ユニットのソフトウェア構成)
図6は、本実施の形態に係る制御装置1Aを構成する演算ユニット100Aのソフトウェア構成の一例を示す模式図である。図6には、本実施の形態に係る各種機能を提供するためのソフトウェア群の一例を示す。これらのソフトウェア群に含まれる命令コードは、適切なタイミングで読み出され、演算ユニット100Aのプロセッサ101によって実行される。
【0074】
図6を参照して、演算ユニット100Aで実行されるソフトウェアは、リアルタイムOS200と、システムプログラム210と、ユーザプログラム234とを含む。
【0075】
リアルタイムOS200は、演算ユニット100Aのコンピュータアーキテクチャに応じて設計されており、プロセッサ101がシステムプログラム210およびユーザプログラム234を実行するための基本的な実行環境を提供する。このリアルタイムOSは、典型的には、制御装置のメーカあるいは専門のソフトウェア会社などによって提供される。
【0076】
システムプログラム210は、制御装置1Aとしての機能を提供するためのソフトウェア群である。具体的には、システムプログラム210は、スケジューラプログラム212と、IO処理プログラム214(入力処理プログラム216および出力処理プログラム218を含む)と、シーケンス命令実行部232と、システムサービスプログラム220とを含む。
【0077】
ユーザプログラム234は、ユーザにおける制御目的に応じて作成される。すなわち、制御装置1Aを用いて制御する制御対象に応じて、任意に作成されるプログラムである。ユーザプログラム234は、例えばサポート装置8において生成される。ユーザプログラム234は、サポート装置8から演算ユニット100Aへ転送されて、不揮発性メモリ106などに格納される。
【0078】
ユーザプログラム234は、シーケンス命令およびモーション命令などの命令コードからなるIEC(International Electrotechnical Commission:国際電気標準会議)プログラム236と、サーボモータなどの駆動装置を制御する制御アプリケーションの手順を表現するアプリケーションプログラム238とを含む。
【0079】
IECプログラム236は、IECによって規定された国際規格IEC61131-3に従って記述された1または複数の命令からなるプログラムを包含する。
【0080】
アプリケーションプログラム238は、目標軌跡を定義する1または複数のコマンドを含む。アプリケーションプログラム238は、ロボット言語やG言語などのインタプリタ型の言語で書かれたプログラムであってもよい。
【0081】
シーケンス命令実行部232は、IECプログラム236を実行して指令値を出力する。シーケンス命令実行部232は、IECプログラム236に含まれるシーケンス命令を解釈し、指定されたシーケンス演算(論理演算)を実行する。さらに、シーケンス命令実行部232は、IECプログラム236に含まれるモーション命令に従って指令値を算出する。モーション命令は、1つのコマンドによって複数の制御周期に亘って指令値の算出を定義しており、シーケンス命令実行部232は、このようなモーション命令を解釈して、モーション指令値を制御周期毎に更新する。
【0082】
システムサービスプログラム220は、図6に個別に示したプログラム以外の、制御装置1Aの各種機能を実現するためのプログラム群をまとめて示すものである。システムサービスプログラム220は、例えば、外部装置との間でファイルやデータを送受信する処理を実現するプログラム(すなわち、通信処理に係るプログラム)、異常監視処理および各種解析処理などを実現するプログラムなどであってもよい。
【0083】
本実施の形態に係る演算ユニット100Aにおいては、システムサービスプログラム220に含まれるプログラムは、少なくとも2つに優先度が区別されている。一例として、システムサービスプログラム220は、高優先タスク20に設定される高優先度サービスプログラム222と、低優先タスクに設定される低優先度サービスプログラム226とを含む。高優先度サービスプログラム222は、低優先度サービスプログラム226に比較して、実行に関する優先度が高く設定されている。
【0084】
高優先度サービスプログラム222は、アプリケーションプログラム実行部(図示せず)を含む。アプリケーションプログラム実行部は、例えば、アプリケーションプログラム238をインタプリタ方式で実行して、制御対象(たとえばサーボモータ)に対する指令値を出力する。
【0085】
スケジューラプログラム212は、タスク毎に設置された優先度に応じて、各タスクに設定されるプログラムをプロセッサ101に実行させる。すなわち、スケジューラプログラム212は、IO処理プログラム214、およびシステムサービスプログラム220等について、各実行周期での処理開始および処理中断後の処理再開を制御する。
【0086】
具体的には、スケジューラプログラム212は、制御機能2120と、監視機能2122とを含む。制御機能2120は、各処理に対してコンピューティング資源を割当てるための制御を司る。監視機能2122は、システムサービスプログラム220に含まれる各プログラムの実行状況を監視する。監視機能2122は、システムサービスプログラム220に含まれる高優先度サービスプログラム222の通知機能プログラムによる通知などに基づいて、各サービスの実行状況を把握する。
【0087】
IO処理プログラム214は、演算ユニット100Aにおいて利用可能なデータ(入力データおよび出力データ)を更新する処理を司る。IO処理プログラム214の入力処理プログラム216は、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140によって受信された入力データを、演算ユニット100Aのプロセッサ101が使用するのに適した形式に再配置する。
【0088】
出力処理プログラム218は、ユーザプログラム234の実行によって生成された出力データを、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140へ転送するのに適した形式に再配置する。PLCシステムバスコントローラ120またはフィールドネットワークコントローラ140が、プロセッサ101からの、送信を実行するための指令を必要とする場合は、出力処理プログラム218がそのような指令を発行する。
【0089】
なお、プロセッサ101が図6に示されるプログラムを実行することで後述するような機能および処理を実現する実装形態に代えて、その一部または全部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などのハードワイヤードな回路を用いて実装してもよい。
【0090】
図7は、サポート装置8の表示部818によって提供される、動作モードの設定のための画面の一例を示す図である。図7に示す設定画面の例では、デフォルト(Default)モードと、拡張(Extended)モードとが画面に表示される。
【0091】
デフォルトモードとは、動作周囲温度(Operating Ambient Temperature)が標準温度(この例では55℃)である場合の制御装置1Aの動作モードである。拡張モードとは、動作周囲温度が、デフォルトモードでの動作周囲温度よりも高い温度(たとえば60℃)での制御装置1Aの動作モードである。
【0092】
ユーザがサポート装置の入力部816を操作することによって、画面内に矢印の形状で表現されたカーソルが上下に移動するとともに、その矢印が指す動作モードの表示が反転される。ユーザが決定のための操作を入力部816に対して行うことによって、入力部816は、ユーザによる動作モードの入力を受け付ける。
<C.制御装置の動作モードの設定>
(C-1.ツールによる設定)
第1の実施の形態では、サポート装置8が制御周期内の空き時間を設定する。
【0093】
図8は、第1の実施の形態に係る制御装置の動作モード設定処理の概略を示したフローチャートである。サポート装置8がプログラムを実行することによって、図8に示した処理が実行される。図8を参照して、設定処理は、まず、サポート装置8において実行されるモード設定処理(ステップS11)を含む。具体的には、ユーザがサポート装置8の設定画面(図7を参照)を操作することによって、動作モードが決定される。入力部816は、ユーザによる動作モードの入力を受け付ける。
【0094】
ステップS12において、サポート装置8のプロセッサ802は、入力部816によって受け付けられた動作モードが、デフォルトモードまたは拡張モードのいずれであるかを判定する。デフォルトモードの場合、ステップS13において、デフォルトモードでの制御処理のための設定が実行される。一方、拡張モードの場合、ステップS14において拡張モードでの制御処理のための設定が実行される。
【0095】
デフォルトモードおよび拡張モードの設定処理(ステップS13,S14)において、ユーザは、サポート装置8によって提供されるユーザインターフェイスを用いて、制御周期の長さ、および、高優先タスクの割り当て、低優先タスクの割当て等を設定する。デフォルトモードと拡張モードとでは、制御周期内のタスクの割当てが相違する。
【0096】
図9は、デフォルトモードと拡張モードにおける、制御周期内の時間の割当ての優先度を説明した図である。デフォルトモードでは、高優先タスク(優先度:高)が制御周期内に優先的に割り当てられ、制御周期内の残りの時間に、低優先タスク(優先度:中~低)が割り当てられる。一方、拡張モードでは、プロセッサの空き時間が制御周期内に最優先で割り当てられる。次に、高優先タスク(優先度:高)の処理時間が割り当てられる。制御周期内の残りの時間に低優先タスクを割り当て可能である場合には、低優先タスクが割り当てられる。
【0097】
図8に戻り、デフォルトモードの設定の場合、ユーザは、高優先タスクの割り当て、低優先タスクの割当ておよび、制御周期の長さを設定する。このとき、サポート装置8のプロセッサ802は、制御周期内にプロセッサ空き時間を確保しない。さらにプロセッサ802は、複数のタスクが優先度の高い順に制御周期内で実行されるように、複数のタスクが割り当てられることを可能にする。したがって、デフォルトモードでは、基本的に、制御周期内にプロセッサ空き時間が発生しない。あるいは、デフォルトモードにおいてプロセッサ空き時間が発生したとしても、空き時間は極めて短い。
【0098】
一方、拡張モードの設定の場合、サポート装置8のプロセッサ802は、制御周期中の一定の割合(たとえば10%)をプロセッサ空き時間として確保する。その上で、プロセッサ802は、制御周期内の残りの時間(第1の残り時間)内に高優先タスクの割当てが行われるように、ユーザの設定を受け付ける。
【0099】
なお、拡張モードの設定において、プロセッサ802は、高優先タスクの処理時間の最大の揺らぎを考慮して、処理(タスク)専有時間を計算する。すなわち、プロセッサ802は、高優先タスクの最大の処理時間を計算して、その計算結果を表示部818に表示する。ユーザは、この計算結果に基づいて、高優先タスクの割り当ておよび制御周期を決定する。制御周期に対するプロセッサ空き時間の割合は一定であるので、ユーザが設定した制御周期の長さに応じてプロセッサ空き時間が決定される。したがって、高優先タスクの実行時間が長くなった場合であっても、制御周期内にプロセッサの空き時間を確保することができる。
【0100】
さらに、拡張モードの設定では、プロセッサ802は、制御周期から空き時間および高優先タスクの実行時間を除いた第2の残り時間内に、低優先タスクが割り当て可能かどうかを判断する。第2の残り時間内に、低優先タスクが割り当て可能である場合には、プロセッサ802は、その第2の残り時間内に低優先タスクの実行時間を割り当てる。一方、第2の残り時間内に、低優先タスクが割り当てできない場合には、プロセッサ802は、その第2の残り時間をプロセッサ空き時間に割り当てる。したがって、制御周期内に低優先タスクを割り当てできない場合には、プロセッサ空き時間が最初に確保された時間よりも長くなる。
【0101】
ステップS13またはステップS14において、ユーザによる設定が終了すると、ステップS15において、プログラムおよび設定内容が、サポート装置8から制御装置1A(PLC)に転送される。拡張モードでは、デフォルトモードでサポート装置8から制御装置1A(PLC)に転送される内容に加えて、制御周期内にプロセッサ空き時間があることを示す情報、および、その空き時間の長さについての情報が制御装置1Aに送られる。
【0102】
演算ユニット100Aが、拡張モードの設定に関する情報を受け取った場合、演算ユニット100Aは、その情報に含まれる空き時間の情報に基づいて、プロセッサ101への割り込み要求を設定する。これにより、演算ユニット100A内部の回路(たとえばシステムタイマ108)は、設定されたタイミングで割り込み信号を発生させ、その割り込み信号をプロセッサ101に提供する。以後の説明では、割り込み信号によってプロセッサ101に送られる割り込み要求を「IRQ(Interrupt ReQuest)」と称する。
【0103】
図10は、制御装置1Aの演算ユニットがデフォルトモードにおいて実行するタスク処理の例を説明する図である。デフォルトモードでは、設定された制御周期ごとにIRQが発生する。演算ユニット100Aのプロセッサ101は、IRQに応じて処理を開始して高優先タスク20および低優先タスク30を実行する。デフォルトモードでは、制御周期の終わり直前までタスクが実行される。したがって、演算速度および制御性能が高められる。
【0104】
図11は、制御装置1Aの演算ユニットが拡張モードにおいて実行するタスク処理の例を説明する図である。拡張モードでは、制御周期の開始時に加え、空き時間の開始時に、IRQが発生する。演算ユニット100Aのプロセッサ101は、制御周期内のIRQに応じて演算処理を停止する。プロセッサ101が演算を停止してから次の制御周期の開始までの時間が空き時間40に相当する。演算処理を停止した後、制御周期の開始時に次のIRQが発生する。プロセッサ101はIRQに応じて、次の制御周期での演算(高優先タスク20の実行)を開始する。
【0105】
図12は、制御装置1Aの演算ユニットが拡張モードにおいて実行するタスク処理の別の例を説明する図である。図12に示すように、空き時間40の開始に加え、空き時間40の終了をIRQによってプロセッサ101に通知してもよい。これにより図12に示すように、空き時間40を制御周期内の任意の期間に配置させることができる。たとえば図12に示すように、空き時間40は、高優先タスク20と低優先タスク30との間(言い換える高優先タスク20の終了直後)に配置されてもよい。プロセッサ101が連続的に動作する時間を短くすることによって、制御周期を変えることなく、プロセッサ101の温度が大きく上昇することを抑えることができる。
【0106】
図13は、制御装置1Aの演算ユニットが拡張モードにおいて実行するタスク処理のさらに別の例を説明する図である。図13に示すように、複数の空き時間40が制御周期内に配置されてもよい。各々の空き時間40の開始および終了がIRQによってプロセッサ101に通知される。この例によれば、高優先タスク20の終了直後にプロセッサ101の演算を停止させるだけでなく、低優先タスク30終了直後にもプロセッサ101の演算を停止させることができる。これによって、プロセッサ101が連続で稼働する時間を短くすることができるので、制御周期を変えることなく、プロセッサ101の温度が大きく上昇することを抑えることができる。
【0107】
なお、高優先タスクを複数のタスクに分割できる場合には、その分割されたタスクの終了ごとに空き時間を割り当てても良い。
【0108】
(C-2.制御装置による設定)
第2の実施の形態では、拡張モードが設定された場合、制御装置1Aの演算ユニット100Aは、温度センサ161(図4を参照)の測定値に基づいて制御周期内の空き時間を決定する。
【0109】
図14は、第2の実施の形態に係る制御装置の動作モード設定処理の概略を示したフローチャートである。たとえばプロセッサ101が制御装置1Aのスケジューラプログラム212を実行することによって、図14に示した処理が実行される。まず、ステップS21において、演算ユニット100Aは、プログラムおよび設定内容の入力を受け付ける。ユーザは、サポート装置8を操作することにより、動作モードを決定するとともに、制御周期の長さ、高優先タスクの割り当て、低優先タスクの割当て等を設定する。サポート装置8から、プログラムおよび設定内容が制御装置1Aに転送される。設定内容は、動作モードに関する情報を含む。
【0110】
ステップS22において、演算ユニット100Aのプロセッサ101は、サポート装置8から転送された情報に基づいて、ユーザにより設定された動作モードが、デフォルトモードまたは拡張モードのいずれであるかを判断する。デフォルトモードの場合、ステップS23において、プロセッサ101は、デフォルトモードでの制御処理のための設定を実行する。一方、拡張モードの場合、ステップS24において、プロセッサ101は、拡張モードでの制御処理のための設定を実行する。
【0111】
デフォルトモードでの動作時に、プロセッサ101は、制御周期内にプロセッサ空き時間を確保しない。さらに複数のタスクが優先度の高い順に制御周期内で実行されるように、プロセッサ101は、制御周期内に複数のタスクを割り当てる。
【0112】
拡張モードでの動作時に、プロセッサ101は、制御周期中の一定の割合(たとえば10%)をプロセッサ空き時間として確保する。その上で、プロセッサ101は、制御周期内の残りの時間(第1の残り時間)内に高優先タスクを割当てる。この場合において、プロセッサ101は、高優先タスクの処理時間の最大の揺らぎを考慮して高優先タスクを制御周期内に割り当てる。
【0113】
さらに、プロセッサ101は、制御周期から空き時間および高優先タスクの実行時間を除いた第2の残り時間内に、低優先タスクが割り当て可能かどうかを判断する。第2の残り時間内に、低優先タスクが割り当て可能である場合には、プロセッサ101は、その第2の残り時間内に低優先タスクの実行時間を割り当てる。一方、第2の残り時間内に、低優先タスクが割り当てできない場合には、プロセッサ101は、その第2の残り時間をプロセッサ空き時間に割り当てる。
【0114】
デフォルトモードにおいて実行するタスク処理、および拡張モードにおいて実行するタスク処理は、第1の実施の形態において説明された処理と基本的に同じであるので、詳細な説明は繰り返さない。第2の実施の形態では、拡張モードが選択された場合、制御周期に対するプロセッサ空き時間の割合が、温度センサ161によって測定された温度(すなわち制御装置1Aの動作周囲温度)に応じて変化する。この点において第2の実施の形態は第1の実施形態と相違する。
【0115】
図15は、制御装置1Aによるタスクの実行時におけるプロセッサ空き時間の制御に関する処理を説明するフローチャートである。ステップS31において、プロセッサ101は、温度センサ161から温度値(温度センサ値)を取得する。プロセッサ101は、所定の周期ごとに温度センサ161から測定値を取得して、その測定値の平均値を温度値として算出してもよい。
【0116】
ステップS32において、プロセッサ101は、制御周期に対する空き時間の比率を求める。温度値から空き時間を求める方法は、特に限定されない。たとえばプロセッサ101は、制御周期に対する空き時間の比率を温度値から求めるための演算式を用いてもよい。
【0117】
プロセッサ101は、演算式および温度センサ161の検出値から、制御周期に対する空き時間の比率を求め、その比率と制御周期とに基づいて、空き時間を決定することができる。あるいは演算ユニット100Aの不揮発性メモリ106が、温度と、制御周期に対する空き時間の比率とを対応付けたテーブルを記憶してもよい。プロセッサ101は、そのテーブルと、温度センサ161の検出値から、制御周期に対する空き時間の比率を求め、その比率と制御周期とに基づいて、空き時間を決定することができる。演算式およびテーブルのいずれにおいても、制御周期に対する空き時間の比率は、温度が高いほど大きくなるように設定される。
【0118】
ステップS33において、プロセッサ101は、制御周期内の空き時間を決定する。ステップS34において、プロセッサ101は、空き時間の情報をIRQに設定する。
【0119】
上記の設定に従い、プロセッサ101は処理を実行する。拡張モードでは、IRQの発生によって、プロセッサ101は、演算を停止させる。さらに、IRQによって、次の制御周期の開始時がプロセッサ101に通知される。プロセッサ101はIRQに応じて、その制御周期での演算および処理を開始する。プロセッサ101が演算を停止する時間が空き時間である。
【0120】
図16は、第2の実施の形態に係る制御装置1Aの演算ユニットが拡張モードにおいて実行するタスク処理の例を説明する図である。図16に示すように、拡張モードにおいて、プロセッサ101は、温度センサ161の測定値が高いほど制御周期内の空き時間40を長くする。温度センサ161の測定値は、制御装置1Aの動作周囲温度を表わす。一方、制御装置1Aの動作周囲温度が低下した場合、制御装置1Aは、空き時間40を短くする。この場合、たとえば制御周期に対する空き時間の割合が、サポート装置8で設定された割合よりも大きく保たれる。
【0121】
第2の実施の形態では、制御周期の長さは、空き時間の長さが温度に応じて変化するものの制御周期の長さは変化しない。システムの稼働中に制御周期の長さが変わると、高優先タスクの処理性能が変化する(高くなる、あるいは低くなる)可能性がある。高優先タスクの処理性能が変化すると、制御対象(たとえば製造装置)の動作に影響が生じる可能性がある。制御周期の長さを変えないことによって高優先タスクの処理性能が変化することを防ぐことができる。
【0122】
図16では、1つの制御周期内に高優先タスクと低優先タスクとが実行される例が示されている。しかし、温度が高くなった場合に1つの制御周期内に高優先タスクのみが実行され、制御周期内の残りの時間が空き時間であってもよい。第1の実施の形態と同様に、第2の実施の形態でも、制御周期内へ空き時間の割当てが最も優先され、次に、高優先タスクの割り当てが優先される。したがって、制御周期内にプロセッサの空き時間を確保することができる。これにより、プロセッサの発熱量が増加することを抑えることができるので、プロセッサの温度が大きく上昇することを抑えることができる。
【0123】
また、第2の実施の形態においても、IRQによって、図12図13に示した空き時間の配置と同じ配置を採用することができる。制御周期内の空き時間40の配置は特に限定されない。
【0124】
<D.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
【0125】
[構成1]
プロセッサ(101)を有し、かつ制御対象を制御する制御装置(1A)によって実行されるタスクに関する設定を行うための情報処理装置(8)であって、
前記制御装置(1A)の動作モードに関するユーザ入力を受け付ける入力部(816)と、
前記ユーザ入力に従って前記制御装置(1A)の動作条件を設定する設定部(802)と、
前記設定部(802)により設定された前記制御装置(1A)の前記動作条件を前記制御装置(1A)に転送する転送部(812)とを備え、
前記動作モードは、第1のモードと、前記第1のモードでの動作温度よりも高温で前記制御装置(1A)を動作させるための第2のモードとを含み、
前記ユーザ入力によって前記第2のモードが選択された場合、前記設定部(802)は、前記タスクの制御周期内に、前記プロセッサ(101)の空き時間(40)を割り当てる、情報処理装置(8)。
【0126】
[構成2]
前記ユーザ入力によって前記第2のモードが選択された場合、前記設定部(802)は、前記制御周期から前記空き時間(40)を除いた第1の残り時間内に、複数のタスクのうち、前記プロセッサ(101)による実行の優先度の高い高優先タスク(20)の実行時間を割り当てる、構成1に記載の情報処理装置(8)。
【0127】
[構成3]
前記ユーザ入力によって前記第2のモードが選択された場合に、前記設定部(802)は、前記制御周期から前記空き時間(40)および前記高優先タスク(20)の実行時間を除いた第2の残り時間内に、前記複数のタスクのうち、実行の優先度の低い低優先タスク(30)が割り当て可能かどうかを判断して、
前記第2の残り時間内に、前記低優先タスク(30)が割り当て可能である場合には、前記設定部(802)は、前記第2の残り時間内に前記低優先タスク(30)の実行時間を割り当て、
前記第2の残り時間内に、前記低優先タスク(30)が割り当てできない場合には、前記設定部(802)は、前記第2の残り時間を前記空き時間(40)に割り当てる、構成2に記載の情報処理装置(8)。
【0128】
[構成4]
前記ユーザ入力によって前記第2のモードが選択された場合に、前記設定部(802)は、前記高優先タスク(20)の実行時間の揺らぎに基づく前記高優先タスク(20)の最大の実行時間を、前記第1の残り時間内に割り当てる、構成2に記載の情報処理装置(8)。
【0129】
[構成5]
前記設定部(802)は、前記空き時間(40)の少なくとも一部を、前記高優先タスク(20)の終了直後に割り当てる、構成2から構成4のいずれかに記載の情報処理装置(8)。
【0130】
[構成6]
前記ユーザ入力によって前記第1のモードが選択された場合に、前記設定部(802)は、前記制御周期内に前記空き時間(40)を確保せず、かつ、複数のタスクが優先度の高い順に前記制御周期内で実行されるように、前記複数のタスクを割り当てる、構成1から構成5のいずれか1項に記載の情報処理装置(8)。
【0131】
[構成7]
プロセッサ(101)を有し、かつ制御対象を制御する制御装置(1A)によって実行されるタスクに関する設定を、コンピュータ(8)に実行させるためのプログラムであって、
前記コンピュータ(8)に、
前記制御装置(1A)の動作モードに関するユーザ入力を受け付けるステップ(S11)と、
前記ユーザ入力に従って前記制御装置(1A)の動作条件を設定するステップ(S13,S14)と、
前記制御装置(1A)の前記動作条件を前記制御装置(1A)に転送するステップ(S15)とを実行させ、
前記動作モードは、第1のモードと、前記第1のモードでの動作温度よりも高温で前記制御装置(1A)を動作させるための第2のモードとを含み、
前記設定するステップ(S13,S14)は、
前記ユーザ入力によって前記第2のモードが選択された場合に、前記タスクの制御周期内に、前記プロセッサ(101)の空き時間(40)を割り当てるステップ(S14)を含む、プログラム。
【0132】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0133】
1A~1H 制御装置、4 通信装置、5 フィールド機器、8 サポート装置、10 生産ライン、20 高優先タスク、30 低優先タスク、40 空き時間、100A,100B 演算ユニット、101,802 プロセッサ、102 チップセット、104 メインメモリ、106 不揮発性メモリ、108 システムタイマ、110 USBコネクタ、120 システムバスコントローラ、122,142 DMA制御回路、124 システムバス制御回路、126,146 バッファメモリ、130 システムバスコネクタ、140 フィールドネットワークコントローラ、144 フィールドネットワーク制御回路、161 温度センサ、200 リアルタイムOS、201A~201D,202A 機能ユニット、210 システムプログラム、212 スケジューラプログラム、214 IO処理プログラム、216 入力処理プログラム、218 出力処理プログラム、220 システムサービスプログラム、222 高優先度サービスプログラム、226 低優先度サービスプログラム、232 シーケンス命令実行部、234 ユーザプログラム、236 IECプログラム、238 アプリケーションプログラム、300A,300B I/Oユニット、400A,400B AC-DC電源、804 光学ドライブ、805 記録媒体、806 主記憶装置、808 二次記憶装置、812 USBコントローラ、816 入力部、818 表示部、820 バス、822 開発プログラム、2120 制御機能、2122 監視機能、S11~S34 ステップ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16