JP2017182105A - コントローラ装置およびコントローラ装置のタスク実行管理方法 - Google Patents

コントローラ装置およびコントローラ装置のタスク実行管理方法 Download PDF

Info

Publication number
JP2017182105A
JP2017182105A JP2016063034A JP2016063034A JP2017182105A JP 2017182105 A JP2017182105 A JP 2017182105A JP 2016063034 A JP2016063034 A JP 2016063034A JP 2016063034 A JP2016063034 A JP 2016063034A JP 2017182105 A JP2017182105 A JP 2017182105A
Authority
JP
Japan
Prior art keywords
task
performance index
controller
executed
controller device
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
JP2016063034A
Other languages
English (en)
Other versions
JP6580505B2 (ja
Inventor
光洋 今井
Mitsuhiro Imai
光洋 今井
亮 平兮
Ryo Heikei
亮 平兮
史之 田村
Fumiyuki Tamura
史之 田村
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.)
Hitachi Industrial Equipment Systems Co Ltd
Original Assignee
Hitachi Industrial Equipment Systems Co Ltd
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 Hitachi Industrial Equipment Systems Co Ltd filed Critical Hitachi Industrial Equipment Systems Co Ltd
Priority to JP2016063034A priority Critical patent/JP6580505B2/ja
Priority to PCT/JP2016/082754 priority patent/WO2017168814A1/ja
Priority to EP16897030.9A priority patent/EP3441879A4/en
Priority to TW106100560A priority patent/TWI646412B/zh
Publication of JP2017182105A publication Critical patent/JP2017182105A/ja
Application granted granted Critical
Publication of JP6580505B2 publication Critical patent/JP6580505B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • 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
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】一度に一つのタスクを実行する単一のマイクロプロセッサを用いて、優先度の異なるタスクを実行し、かつ、性能指標を出力できるようにすること。【解決手段】コントローラ1は、一度に一つのタスクを実行する単一のマイクロプロセッサと、マイクロプロセッサにより実現され、高い優先度に設定される第1タスクを実行する第1タスク実行部110と、マイクロプロセッサにより実現され、低い優先度に設定される第2タスクを実行する第2タスク実行部120と、マイクロプロセッサの有する演算処理資源のうち第2タスクの実行に割当て可能な余裕資源を算出し、算出した余裕資源を用いて第2タスクを実行した場合の、第2タスクの性能の推定値を示す性能指標を決定し、余裕資源と性能指標とを出力するタスク管理部130と、を備える。【選択図】図1

Description

本発明はコントローラ装置及びコントローラ装置のタスク実行管理方法に関する。
例えば、発電所、工場、プラント等の種々の施設では、発電機、モータ、ポンプ、ヒータ等のアクチュエータや、温度センサ、圧力センサ、電圧計、電流計等のセンサが複数設けられている。施設に設置されたコントローラ装置は、センサからの信号に基づいてアクチュエータを制御する。
コントローラ装置は、シーケンス制御装置もしくはプログラマブル・コントローラ(PLC)とも呼ばれる。コントローラ装置は、ラダー言語に代表されるシーケンスプログラム言語で記述された内容に従って、アクチュエータの動作等を制御する。
コントローラ装置は、通常、一つ一つ決められた順番に実行するシーケンス制御を行うため、複雑な算術演算を必要とするデータ処理には向いていない。複雑な算術演算をラダー言語等で記述することは、プログラム作成上の負担が大きい。さらに、シーケンス実行時間に比較してデータ処理に長い時間を消費するので、シーケンス実行の即時性に影響を及ぼす可能性がある。
そこで、特許文献1には、シーケンス実行部は、起動命令を読み込むと、データ処理実行部を起動させてデータ処理プログラムを実行させ、その演算結果を受け取ってシーケンス制御を続行する技術が開示されている。
また、マルチコアのCPUを用い、シーケンス制御のような高い即時性が求められている処理と、HMI(Human Machine Interface)処理のような高い即時性が求められていない処理とで、割り当てるCPUコアを分ける技術も知られている。
特開平9−274511号公報
BECKHOFF社、"マルチコアとマルチタスクのサポート"、[online]、2011年12月22日、BECKHOFF社TwinCAT 3製品紹介Webページ、[2015年9月29日検索]、インターネット<URL:http://www.beckhoff.co.jp/jp.asp?twincat/twincat-3-xa-performance.htm>
特許文献1では、シーケンス実行部とデータ処理実行部とをそれぞれ異なるマイクロコンピュータで実行させることで、シーケンス処理の即時性を維持しつつ、複雑な算術演算を含むデータ処理を実現する。しかし、発電所や工場、プラント等の各種施設で使用されるコントローラ装置の中には、いわゆるワンチップ、シングルコア構成のCPUを備えるものも多い。一度に一つのタスクしか処理できない構成のマイクロプロセッサでは、優先度の高いシーケンス処理と優先度の低いデータ処理とを両立させることが難しい。
非特許文献1では、複数のコアを有するマルチコアCPUを用いるため、特許文献1と同様に、優先度の高いシーケンス処理と優先度の低いHMI処理とを両立させることができる。しかし、非特許文献1も、特許文献1と同様に、組込機器などで多用されているワンチップ、シングルコア構成のCPUに対して適用することはできない。
もしも仮に、ワンチップ、シングルコア構成のCPUを有するシーケンス制御装置において、シーケンス処理と複雑な算術演算を含むデータ処理とを実行する場合、ユーザは、データ処理がどの程度の性能で実施されるのかを知る手段がない。
本発明は、上述の課題に鑑みてなされたもので、その目的は、一度に一つのタスクを実行する単一のマイクロプロセッサを用いて、高い優先度の第1タスクの実行と低い優先度の第2タスクの実行とを両立させることができ、かつ、第2タスクを実行する場合の性能指標を出力することができるようにしたコントローラ装置およびコントローラ装置のタスク実行管理方法を提供することにある。
上記課題を解決すべく、本発明に従うコントローラ装置は、優先度の異なる複数のタスクを実行するコントローラ装置であって、一度に一つのタスクを実行する単一のマイクロプロセッサと、マイクロプロセッサにより実現され、高い優先度に設定される一つ以上の第1タスクを実行する第1タスク実行部と、マイクロプロセッサにより実現され、低い優先度に設定される一つ以上の第2タスクを実行する第2タスク実行部と、マイクロプロセッサの有する演算処理資源のうち第2タスクの実行に割当て可能な余裕資源を算出し、算出した余裕資源を用いて第2タスクを実行した場合の、第2タスクの性能の推定値を示す性能指標を決定し、余裕資源と性能指標とを出力するタスク管理部と、を備える。
本発明によれば、一度に一つのタスクを実行する単一のマイクロプロセッサにより、優先度の高い第1タスクと優先度の低い第2タスクとを実行させることができ、さらに、第2タスクの実行に割当て可能な余裕資源を算出して、第2タスクを実行する場合の性能指標を出力することができる。これにより、優先度の異なる複数タスクを実行することができ、かつ、第2タスクを実行する場合の性能指標を出力することができる。
コントローラを含む制御システムの全体構成を示す説明図である。 コントローラおよびプログラム配布装置のハードウェア構成図である。 高優先度タスクを実行する際の優先度を管理する高優先度タスク優先度テーブルである。 ベストエフォート型タスク(BEタスク)の優先度を管理するBEタスク優先度管理テーブルである。 周期的に実行される周期タスクの動作周期および実行時間を管理する周期タスク動作テーブルである。 BEタスクの性能指標を管理するBEタスク性能指標テーブルである。 BEタスクに設定可能な性能指標および対応するCPU動作周波数を管理するBEタスク設定可能性能指標テーブルである。 BEタスクが動作する際の最低限の性能指標および対応するCPU動作周波数を管理するBEタスク最低動作性能指標テーブルである。 CPUの動作周波数を管理するCPU動作周波数テーブルである。 CPUの空き状況を管理するCPU空き状況テーブルである。 BEタスクの動作状態を管理するBEタスク動作状態テーブルである。 コントローラのタスクスケジューラによる、割込みタスクおよび周期タスクへのCPUリソースのスケジューリング動作の例を示す。 CPU空き状況を算出して記憶する処理を示すフローチャートである。 停止中のBEタスクの実行を許可するか否かを判定する処理のフローチャートである。 BEタスクへ設定することのできる性能指標を判定する処理のフローチャートである。 追加でBEタスクを実行することのできるCPU動作周波数を算出する処理のフローチャートである。 BEタスクの動作を設定するBEタスク動作設定画面である。 BEタスク動作設定画面を作成する処理のフローチャートである。 プログラム配布装置からコントローラへBEタスクをインストールする処理のフローチャートである。 第2実施例に係り、タスクのパラメータを設定する幾つかの方法を示す説明図である。 第3実施例に係るBEタスク動作設定画面である。 第4実施例に係り、高優先度タスクとBEタスクとが互いの実行結果に基づいて相互に作用する様子を示すフローチャートである。
以下、図面に基づいて、本発明の実施の形態を説明する。本実施形態に係る制御システムは、コントローラ装置とプログラム配布装置を有する。コントローラ装置は、一度に一つのタスクを実行する単一のマイクロプロセッサを備える。コントローラ装置は、単一のマイクロプロセッサにより、高い優先度を持つ第1タスクと、低い優先度を持つ第2タスクとを実行する。
第1タスクは、例えば、発電所、工場、鉄道、プラント、エレベータシステム等の各種制御システムに使用されるシーケンス制御のような、高い即時性が求められる高優先タスクである。以下、第1タスクを高優先度タスクと呼ぶ。これに対し、第2タスクは、シーケンス制御の合間に実行される、複雑な算術演算を含むデータ処理のようなベストエフォート型のタスクである。以下、第2タスクをBEタスクと呼ぶ。BEタスクは、或る一つの高優先度タスクと他の一つの高優先度タスクとの間の隙間時間を利用して、できる限りの性能で実行される。
BEタスクは、ベストエフォート型のタスクであるため、実行時の性能は保証されていない。従って、通常の場合、コントローラ装置のユーザは、BEタスクがどの程度の性能で実行されるのか知るすべがない。しかし、本実施形態では、BEタスクの実行時の性能を推定して、出力することができる。従って、ユーザは、BEタスクがどの程度の性能を発揮するのか等を容易に把握することができ、利便性が向上する。
本実施形態では、CPU動作周波数と周期タスクのCPU利用率とから、BEタスクの実行可能なCPU動作周波数の目安を算出する。さらに、本実施形態では、CPU動作周波数から換算可能な性能指標を、BEタスクに適した単位と値に変換して、ユーザへ提示する。BEタスクに適した単位と値とは、BEタスクの処理内容に性質に適した単位または値という意味である。例えば、所定期間のログ情報を解析するBEタスクの場合、そのログ情報の解析に要する「時間」を性能指標として採用する。例えば、機器の動作状態を管理するBEタスクの場合、管理対象の機器の「数」を性能指標として採用する。例えば、何らかの物理状態の変化を定期的に計測するBEタスクの場合、サンプリングの「周波数」を性能指標として採用する。例えば、監視カメラの画像を解析するBEタスクの場合、所定時間に解析する画像データの数を示す「フレームレート」を採用する。以上は、BEタスクの性能指標の一例であり、本実施形態では上述の例に限定しない。
本実施形態に係るコントローラ装置1は、後述するように、一つまたは複数の周期タスクの周期と平均実行時間に関するテーブル143を保持し、マイクロプロセッサ11の動作周波数に関するテーブル147を保持する。
コントローラ装置1は、各周期タスクの周期と平均実行時間の和と、コントローラ装置1のCPU動作周波数とから、割込みタスクが発生しない場合において、周期タスクがCPUを利用しないCPU空き状況を算出する手段(S40〜S42)を有する。CPUリソースは「演算処理資源」に対応し、CPU空き状況は「余裕資源」に対応する。
本実施形態では、CPU空き状況を、BEタスクの利用可能なCPUリソースの目安として使用する。本実施形態は、コントローラ装置のユーザに対して、BEタスクがどの程度の性能で動作できそうであるかの目安を提供する。ただし、ユーザに提供する性能指標は、あくまでも一つの目安であって、ユーザに提示した性能をコントローラ装置1が保証するものではない。
本実施形態では、CPUリソース量(CPU動作周波数、CPU使用率)で換算されるBEタスクの性能を、例えば、計算時間、数、サンプリング周波数、フレームレートといった、ユーザに理解しやすい指標で提供する。コントローラ装置1は、各BEタスクの性能指標を管理するテーブル144と、各BEタスクが最低限動作するのに必要な性能指標を管理するテーブル146と、各BEタスクが設定可能な性能指標に関するテーブル145とを有する。
ユーザは、各BEタスクの利用可能なCPUリソースを、計算時間やフレームレートといった理解しやすい性能指標を用いて、簡単に設定できる。各BEタスクは、ユーザの設定した性能指標に対応するCPUリソースを消費して、実行する。
本実施形態では、コントローラ装置1へBEタスクを配布するためのプログラム配布装置2を備える。プログラム配布装置2は、ユーザの要求するBEタスク、またはコントローラ装置1が自動的に判断して要求するBEタスクを、通信ネットワークCN1を介してコントローラ装置1へ送信する。プログラム配布装置2は、各BEタスクに設定可能な性能指標のマスタ情報232と、BEタスクの配布を管理するタスク配布管理部210とを有する。プログラム配布装置2は、コントローラ装置1へBEタスクを配布する際に、そのBEタスクに設定可能な性能指標の情報も一緒に配布する。
このように構成される本実施形態では、周期タスクや割込みタスクから構成される高優先度タスクがCPUを利用しない隙間時間を利用して、BEタスクをできるかぎりの性能で実行することができる。さらに、本実施形態では、BEタスクの性能指標の目安をユーザへ提示する。本実施形態では、ユーザは、BEタスクの動作および性能指標を、GUI(Graphical User Interface)を用いて簡単に設定することができる。
図1〜図18を用いて第1実施例を説明する。図1は、制御システム全体の機能構成例を示す。
制御システムは、例えば、発電所、工場、プラント、エレベータシステム、鉄道システム、上下水道システム、ビル空調システム等の各種施設4の制御に用いられる。制御システムは、少なくとも一つのコントローラ1と、少なくとも一つのプログラム配布装置2と、少なくとも一つの制御対象機器3を備える。コントローラ1は「コントローラ装置」に対応する。施設4内には複数のコントローラ1を設置することができる。各コントローラ1は、それぞれ複数の制御対象機器3を管理下に置くことができる。プログラム配布装置2は、同一施設4内の各コントローラ1に接続されているほかに、図外の他施設に設置されたコントローラ1とも接続することができる。
接続構成を説明する。プログラム配布装置2とコントローラ1は、通信ネットワークCN1を介して双方向通信可能に接続されている。通信ネットワークCN1は、例えば、イントラネット等の自営網、光通信等を利用する閉域網、専用線、あるいはインターネット等を含んで構成される。通信ネットワークCN1は、有線または無線のいずれであってもよい。
施設4内では、コントローラ1と制御対象機器3とが、制御ネットワークCN2を介して通信可能に接続されている。コントローラ1と制御対象機器3とは、例えば、LAN(Local Area Network)ケーブル、RS−485ケーブル、RS−232Cケーブル、専用バス等の有線、または無線を介して制御ネットワークCN2に接続されており、所定の手順にしたがって情報をやり取りする。
制御対象機器3には、センサ31と、アクチュエータ32が含まれる。センサ31には、例えば、手動スイッチ、リレー、光電スイッチ、近接スイッチ、リミットスイッチ、重量計、温度センサ、圧力センサ、振動センサ、音波センサ、流量計、流速計、ガスセンサ、速度センサ、回転計、電流計、電圧計、電力計、水質センサ、色判別センサ、カメラ等がある。アクチュエータ32には、例えば、モータ、発電機、ヒーター、制御弁、シリンダ、ソレノイド、ランプ、表示器、ブザー、スピーカー、ポンプ、圧縮機、空調機、冷凍機、コンベア等がある。
コントローラ1の機能構成を説明する。コントローラ1は、例えば、高優先度タスク実行部110、BEタスク実行部120、タスク管理部130、記憶部140、ユーザインターフェース部150を備える。
高優先度タスク実行部110は、「第1タスク実行部」に対応する。高優先度タスク実行部110は、「第1タスク」としての割込みタスク111および周期タスク112を実行する。割込みタスク111とは、所定の事象が検出されたときに生じる割込みにより実行されるタスクである。周期タスク112とは、周期的に実行されるタスクである。ただし、周期タスク112の実行周期は一定であるとは限らない。ある程度の時間幅で周期が変化することもある。高優先度タスクは、制御対象機器3を制御するためのタスクであり、制御処理には高い即時性が要求される。従って、高優先度タスクには、BEタスクよりも高い優先度が設定されている。
BEタスク実行部120は、「第2タスク実行部」に対応する。BEタスク実行部120は、「第2タスク」としてのBEタスク121を実行する。BEタスク121は、例えば、ログ情報を解析して故障の予兆に必要な学習データを作成する処理、センサ信号から故障の予兆を診断する処理、機械振動から状態を診断する処理、画像データを解析する処理等がある。BEタスクは、高優先度タスクとは異なり即時性は求められないため、高優先度タスクが実行されていない隙間時間(アイドル時間)を利用して実行される。BEタスクは、実行可能な場合にできる範囲で実行できればよいとする、いわゆるベストエフォート型のタスクであるため、高優先度タスクよりも低い優先度が設定される。
タスク管理部130は、高優先度タスクやBEタスクを管理する。タスク管理部130は、記憶部140に記憶されている各管理テーブル141〜149の内容を管理することで、高優先度タスクやBEタスクを管理する。さらに、タスク管理部130は、ユーザインターフェース部150を介して、BEタスクの動作を設定するための画面G10(図17で後述)をユーザに提供する。タスク管理部130は、BEタスク動作設定画面G10から入力されるユーザ指示に応じて、BEタスクのパラメータを変更する。
記憶部140は、高優先度タスクおよびBEタスクを管理等するために必要な複数のテーブル141〜149を保持している。記憶部140には、例えば、高優先度タスク優先度テーブル141、BEタスク優先度テーブル142、周期タスク動作テーブル143、BEタスク性能指標テーブル144、BEタスク設定可能性能指標テーブル145、BEタスク最低動作性能指標テーブル146、CPU動作周波数テーブル147、CPU空き状況テーブル148、BEタスク動作状態テーブル149を保持する。各テーブルの詳細は後述する。
ユーザインターフェース部(図中、UI部)150は、コントローラ1のユーザとコントローラ1との間で情報を交換するための機能である。本実施例では、コントローラ1内のユーザインターフェース部150を用いて、コントローラ1はユーザと情報を交換する場合を説明する。これに限らず、ユーザの所持するユーザ端末とコントローラ1とが通信することで、ユーザとコントローラとが情報を交換する構成でもよい。
プログラム配布装置2の機能構成を説明する。プログラム配布装置2は、各施設4内の各コントローラ1に対して、BEタスクを配布するコンピュータである。プログラム配布装置2は、例えば、タスク配布管理部210と、データベース管理部220と、記憶部230を備える。
タスク配布管理部210は、ユーザからの要求をコントローラ1を通じて受領すると、指定されたBEタスクをコントローラ1のタスク管理部130へ送信する。データベース管理部220は、記憶部230に記憶された各BEタスク231やテーブル232を管理する。なお、タスク配布管理部210は、コントローラ1が自動的に必要であると判断したBEタスクを、コントローラ1からの要求に従ってタスク管理部130へ送信する構成としてもよい。
図2は、コントローラ1およびプログラム配布装置2のハードウェア構成を示す。まず最初にコントローラ1から説明する。コントローラ1は、例えば、マイクロプロセッサ(図中、CPU)11、ネットワークインターフェース12,13、周辺制御装置14、EPROM(Erasable Programmable Read Only Memory)15、メインメモリ16、不揮発性記憶装置17、ユーザインターフェース装置18を備えている。各装置11,12,15,16はバス19で相互に接続されている。以下、インターフェースをI/Fと略記する場合がある。ネットワークI/F12,13と、不揮発性記憶装置17と、ユーザインターフェース装置18とは、周辺制御装置14を介してバス19に接続される。
マイクロプロセッサ11は、例えばEPROM15に記憶されたコンピュータプログラムを実行することで、図1で述べた機能110〜130を実現する。
ネットワークI/F12は、通信ネットワークCN1に接続して通信する。ネットワークI/F13は、制御ネットワークCN2に接続して通信する。
不揮発性記憶装置17は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)のような記憶装置として構成される。不揮発性記憶装置17は、オペレーティングシステムや各種コンピュータプログラムを記憶する。図1で述べた記憶部140は、不揮発性記憶装置17により実現されるが、これに限らず、例えばEPROM15やメインメモリ16、不揮発性記憶装置17のいずれか一つまたは複数から記憶部140を実現してもよい。コンピュータプログラムやファイルの少なくとも一部は、EPROM15へ記憶させてもよい。不揮発性記憶装置17またはEPROM15に記憶されたコンピュータプログラム等は、メインメモリ16に展開されて、CPU11により実行される。
ユーザインターフェース装置18は、ユーザがコントローラ1へ指示等を入力するための情報入力装置と、コントローラ1からユーザへ情報を提供するための情報出力装置とを備える。情報入力装置としては、例えばキーボード、タッチパネル、マウス、音声入力装置等がある。情報出力装置としては、例えばディスプレイ、音声合成装置、スピーカー、プリンタ等がある。
プログラム配布装置2の構成を説明する。プログラム配布装置2は、例えば、マイクロプロセッサ21、ネットワークI/F22、周辺制御装置23、EPROM24、メインメモリ25、不揮発性記憶装置26、ユーザインターフェース装置27を備えている。マイクロプロセッサ21とメインメモリ25とEPROM24と周辺制御装置23とは、バス28を介して相互に接続されている。ネットワークI/F22と不揮発性記憶装置26とユーザインターフェース装置27とは、周辺制御装置23を介してバス28に接続されている。
不揮発性記憶装置26またはEPROM24に記憶されたコンピュータプログラムがメインメモリ25へ転送されて、メインメモリ25上に展開されると、マイクロプロセッサ21がそのコンピュータプログラムを読み込んで実行する。これにより、図1で述べたタスク配布管理部210およびデータベース管理部220の機能が実現する。
ネットワークI/F22は、通信ネットワークCN1に接続して通信する。ユーザインターフェース装置27は、システム管理者がプログラム配布装置2と情報を交換するために用いる。なお、プログラム配布装置2には、通信ネットワークCN1または記憶媒体を介して、BEタスクを記憶させることもできる。
図3は、高優先度タスクの優先度を管理するテーブル141の構成を示す。この高優先度タスク優先度テーブル141は、コントローラ1が保持している。
テーブル141は、例えば、高優先度タスク名C1411と、実行優先度C1412を対応付けて管理する。高優先度タスク名C1411は、高優先度タスクである各割込みタスクや各周期タスクを識別する名称である。実行優先度C1412は、「高い優先度」に対応する。
ここで、優先度C1412では、値が小さいタスクほど優先度が高い。オペレーティングシステムのタスクスケジューラは、優先度の低いタスクを実行中に、それよりも優先度の高いタスクが起動すると、その優先度の高い方のタスクにCPU11のリソースを割り当てる。コントローラ1に搭載するオペレーティングシステムとしては、例えば、Linux(登録商標)やiTRONがある。なお、優先度が同じ値のタスクの場合は、タスクスケジューラによって均等にCPUリソース(コンピュータリソース)が割り当てられる。
図4は、BEタスクの優先度を管理するテーブル142を示す。BEタスク優先度テーブル142は、コントローラ1が保持する。BEタスク優先度テーブル142は、例えば、BEタスク名C1421と、実行優先度C1422を対応付けて管理する。BEタスク名C1421は、BEタスクを識別する名称である。実行優先度C1422は、「低い優先度」に対応する。上述の通り、値が小さいほど優先度が高い。本実施例では、高優先度タスクには負の値を、BEタスクには正の値(ここでは0を含む)を設定しているため、BEタスクの優先度は高優先度タスクの優先度よりも低くなっている。
図5は、周期タスクの動作を管理するテーブル143を示す。この周期タスク動作テーブル143は、コントローラ1が保持する。周期タスク動作テーブル143は、例えば、周期タスク名C1431と、動作周期C1432と、平均実行時間C1433を対応付けて管理する。
周期タスク名C1431は、周期タスクを識別する名称である。動作周期C1432は、周期タスクが実行する周期である。平均実行時間C1433は、周期タスクの一回の実行に要する時間の平均値である。平均実行時間C1433は、コントローラ1が過去の動作履歴から最新値に更新してもよい。または後述する実施例のように、他のコントローラ1での動作した実績値に基づいて設定することもできる。
図6は、BEタスクの性能指標を管理するテーブル144を示す。このBEタスク性能指標テーブル144は、コントローラ1が保持する。このテーブル144は、例えば、BEタスク名C1441と、性能指標の内容C1442と、性能指標の単位C1443を対応付けて管理する。
BEタスク名C1441は、BEタスクを識別する名称である。性能指標の内容C1442は、BEタスクごとに設定されている性能指標の具体的内容を示す。単位C1443は、性能指標の単位である。性能指標は、BEタスクの性質に応じて設定されている。例えば、故障を予知して学習するBEタスクでは、一日分のログ情報を解析して学習することを性能指標としている。この性能指標の単位は、「時間」である。故障の予兆を診断するBEタスクでは、故障予知の診断対象とするセンサの数を性能指標とする。この性能指標の単位は、「センサ数」である。振動を診断するBEタスクでは、振動を検出するサンプリング周波数を性能指標とする。この性能指標の単位は、「周波数」である。画像データを解析するBEタスクでは、画像データの解析速度であるフレームレートを性能指標とする。この性能指標の単位は、「fps」である。
図7は、BEタスクに設定可能な性能指標を管理するテーブル145を示す。このテーブル145は、コントローラ1が保持する。BEタスク設定可能性能指標テーブル145は、例えば、BEタスク名C1451と、設定可能な性能指標C1452と、対応するCPU動作周波数C1453を対応付けて管理する。
BEタスク名C1451は、BEタスクを識別する名称である。設定可能な性能指標C1452は、BEタスクに設定することのできる性能指標を示す。対応するCPU動作周波数C1453は、設定可能な各性能指標に対応するCPU動作周波数である。BEタスクに設定する性能指標を高くするほど、その性能指標の実現に要するCPU動作周波数も高くなる。CPU動作周波数に代えてCPU使用率を用いる場合、高い性能指標にするほど、必要なCPU使用率は大きくなる。
ここで、コントローラ1が保持するBEタスク設定可能性能指標テーブル145は、プログラム配布装置2の保持するBEタスク設定可能性能指標マスタテーブル232の一部である。つまり、プログラム配布装置2は、登録されている各BEタスクに設定可能な全ての性能指標をマスタテーブル232で管理している。プログラム配布装置2からコントローラ1へBEタスクが配布される際には、そのBEタスクに設定可能な性能指標の一覧も一緒に配布される。コントローラ1は、プログラム配布装置2から受領したBEタスクおよび設定可能な性能指標を、テーブル145へ登録して保持する。プログラム配布装置2の保持するマスタテーブル232の基本的な構成は、図7に示すBEタスク設定可能性能指標テーブル145と同様であるため、図示は省略する。
図8は、BEタスクの最低動作時の性能指標を管理するテーブル146である。このテーブル146は、コントローラ1が保持する。BEタスク最低動作性能指標テーブル146は、例えば、BEタスク名C1461と、最低動作性能指標C1462と、対応するCPU動作周波数C1463を対応付けて管理する。
BEタスク名C1461は、BEタスクを識別する名称である。最低動作性能指標C1462は、BEタスクが動作する際の最低の性能指標を示す。BEタスクは、最低動作性能指標よりも低い性能で実行することはできない。対応するCPU動作周波数C1463は、BEタスクが最低動作性能指標で実行する場合に必要なCPU動作周波数である。上述の通り、CPU動作周波数に代えてCPU使用率を用いてもよい。
図9は、CPU動作周波数を管理するテーブル147である。このテーブル147は、コントローラ1が保持する。CPU動作周波数テーブル147は、CPU11の最大動作周波数を記憶する。
図10は、CPU11の空き状況を管理するテーブル148である。このテーブル148は、コントローラ1が保持する。CPU空き状況テーブル148は、例えば、動作周波数C1481と、CPU使用率C1482を対応付けて管理する。
動作周波数C1481は、CPU11の現在の動作周波数である。CPU使用率C1482は、CPU11の現在の使用率である。例えば、CPU11の最大動作周波数が1000MHzであり、現在の動作周波数が650MHzである場合、CPU11は動作周波数350MHzだけ空いている。CPU11の現在の使用率が65%であるならば、CPU11は35%だけ空いている、つまり演算処理に余裕がある。
図11は、BEタスクの動作状態を管理するテーブル149を示す。このテーブル149は、コントローラ1が保持する。BEタスク動作状態テーブル149は、例えば、BEタスク名C1491と、動作状態C1492と、設定された性能指標C1493と、対応するCPU動作周波数C1494を対応付けて管理する。
BEタスク名C1491は、BEタスクを識別する名称である。動作状態C1492は、BEタスクの現在の動作状態を示す。動作状態の値には、例えば「実行中」と「停止中」がある。設定された性能指標C1493は、BEタスクに設定された性能指標を示している。BEタスクは、設定された性能指標を目指して実行される。しかし、ベストエフォート型のタスクであるから、設定された性能指標は一つの目安、または、期待あるいは推定された性能にすぎない。従って、設定された性能指標通りにBEタスクが実行されるとは限らない。対応するCPU動作周波数C1494は、設定された性能指標に対応するCPU11の動作周波数である。
図12は、タスクへCPU11のリソースを割り当てる様子を示す。コントローラ1のタスクスケジューラは、割込みタスクおよび周期タスクに対する、CPUリソースの割当てをスケジューリングする。
図12(1)は、割込みタスクが発生していない場合を示す。図12(2)は、割込みタスク(TIa)が周期タスク(TPb)と周期タスク(TPc)の間の隙間時間で発生した場合を示す。図12(3)は、周期タスク(TPb)の実行中に、割込みタスク(TIa)が発生した場合を示す。
図12(1)に示すように、割込みタスクが発生していない場合、タスクスケジューラは、高優先度タスク優先度テーブル141の情報に従って、各周期タスク(TPa)(TPb)(TPc)にCPUリソースを割り当てる。これら周期タスク(TPa)(TPb)(TPc)の優先度が互いに等しい場合、タスクスケジューラは、均等にCPUリソースを割り当てる。タスクスケジューラは、各周期タスク(TPa)(TPb)(TPc)の実行時間が重複しないように、CPUリソースを均等に割り当てる。
図12(2)では、周期タスク(TPb)と周期タスク(TPc)の間の空いている時間に、割込みタスク(TIa)が発生して実行されている。もともと空いている時間帯なので、各周期タスク(TPa)(TPb)(TPc)の実行時間に変更は生じない。周期タスク(TPa)(TPb)(TPc)は、図12(1)と同様のタイミングと時間で、実行される。
図12(3)では、周期タスク(TPb)の実行中に、割込みタスク(TIa)が発生している。上述の通り、割込みタスクの優先度は、周期タスクの優先度よりも高くなるように設定されている。従って、タスクスケジューラは、周期タスク(TPb)の処理を一時中断し、中断した時間帯(t1−t2)で割込みタスク(TIa)を実行する。
図12の状況において、BEタスクを動作する場合を説明する。BEタスクの優先度は、高優先度タスクの優先度よりも低い。このため、タスクスケジューラは、割込みタスクや周期タスクの実行中では、BEタスクへCPUリソースを割り当てない。タスクスケジューラは、周期タスクおよび割込みタスクがいずれも実行されていない期間に、BEタスクへCPUリソースを割り当てる。図12では、BEタスクの実行が可能な時間の一部を点線で示している。
本実施例では、タスク管理部130は、BEタスクに対して割当て可能なCPUリソースを以下のように試算する。
図13は、CPU11の空き状況を算出して記憶する処理のフローチャートである。本処理は、例えばコントローラ1の起動時や、図17で述べるBEタスク動作設定画面G10の作成時に、実行する。本処理の実行主体はタスク管理部130であるが、コントローラ1を実行主体として説明する。
コントローラ1は、まず最初に、周期タスク動作テーブル143に記載された各周期タスクのCPU使用率の和(値A)を計算する(S10)。ここで、各周期タスクのCPU使用率は、平均実行時間と動作周期との商からもとめられる(CPU使用率=動作周期/平均実行時間)。
図5に示す周期タスク動作テーブル143の場合、周期タスTPaのCPU使用率は、10%(100μs/1000μs=0.1)となる。周期タスクTPbのCPU使用率は、20%となる(200/2000=0.1)。周期タスクTPcのCPU使用率は、15%となる(75/500=0.15)。従って、各周期タスクのCPU使用率の和(値A)は、35%となる(10%+10%+15%=35%)。
コントローラ1は、(1−A)とCPU動作周波数テーブル147のCPU動作周波数(値B)との積を算出して、値Cを得る(C=B*(1−A))。具体例で説明する。CPU動作周波数(値B)は1000MHzであり、値Aは35%であるから、値Bと値(1−A)との積(値C)は、650MHzとなる(1000MHz*(100−35/100)=650MHzとなる(S11)。
コントローラ1は、値CをCPU空き状況テーブル148の動作周波数c1483へ格納すると共に、値(C/B)をCPU空き状況テーブル148のCPU使用率C1481へ格納する(S12)。
図14は、停止中のBEタスクの実行可否を判定する処理のフローチャートである。本処理は、図17で述べるBEタスク動作設定画面G10の描画時等に、タスク管理部130により実行される。以下、動作主体をコントローラ1であるとして説明する。
コントローラ1は、図16で後述する処理により、追加でBEタスクを実行可能なCPU動作周波数(値F)を算出する(S20)。すなわち、コントローラ1は、CPU11のリソースがどの程度残っているかを算出する。
コントローラ1は、BEタスク動作状態テーブル149を参照し、動作状態C1492が「停止中」であるタスクを一つ選択する(S21)。以下、動作を停止しているBEタスクを「停止中BEタスク」と呼ぶ場合がある。
コントローラ1は、BEタスク最低動作性能指標テーブル146の欄C1463から、ステップS21で選択した停止中BEタスクに対応するCPU動作周波数(値G)を読み出す(S22)。
コントローラ1は、ステップS20で算出した値Fと、ステップS22で読み出した値Gとを比較し、値Fが値Gよりも大きいか判定する(S23)。
コントローラ1は、値Fが値Gよりも大きければ(S23:YES)、ステップS21で選択した停止中BEタスクは実行可能であると判断し、図17に示すBEタスク動作設定画面G10において「停止中」と表示する(S24)。
これに対し、コントローラ1は、値Fが値G以下の場合(S23:NO)、ステップS21で選択した停止中BEタスクは実行することができないと判定し、BEタスク動作設定画面G10において「実行不可能」と表示する(S25)。
コントローラ1は、ステップS24またはステップS25を実行した後で、全ての停止中BEタスクについて実行可否を判定したか確認する(S26)。コントローラ1は、未だ判定していない停止中BEタスクがある場合(S26:NO)、ステップS21へ戻り、未判定の停止中BEタスクを一つ選択する。コントローラ1は、BEタスク動作状態テーブル149に記載されている全ての停止中BEタスクについての実行可否を判断すると(S26:YES)、本処理を終了する。
図15は、BEタスクに設定することのできる性能指標を判定する処理を示すフローチャートである。本処理は、タスク管理部130により、BEタスク動作設定画面G10の作成時等に実行される。ここでも動作主体をコントローラ1として説明する。
コントローラ1は、図16で述べる処理により、追加でBEタスクを実行可能なCPU動作周波数(値F)を算出する(S30)。
コントローラ1は、BEタスク動作状態テーブル149を参照し、動作状態C1492に「実行中」または「停止中」のいずれかが設定されているBEタスクの中から、いずれか一つを選択する(S31)。
コントローラ1は、BEタスク設定可能性能指標テーブル145を参照し、ステップS31で選択したBEタスクに対応するCPU動作周波数C1452の中から一つのCPU動作周波数(値H)を読み出す(S32)。
コントローラ1は、ステップS30で取得した値FとステップS32で取得した値Hとを比較し、値Fが値Hよりも大きいか判定する(S33)。コントローラ1は、値Fが値Hよりも大きい場合(S33:YES)、ステップS32で選択したCPU動作周波数に対応する性能指標を、ステップS31で選択したBEタスクに設定可能であると判定する(S34)。
コントローラ1は、値Fが値H以下の場合(S33:NO)、ステップS32で選択したCPU動作周波数に対応する性能指標を、ステップS31で選択したBEタスクに設定することはできないと判定する(S35)。
コントローラ1は、ステップS34またはS35を実行した後、ステップS31で選択したBEタスクに関する全ての性能指標について、そのBEタスクへ設定可能であるか否かを判定したか、を確認する(S36)。
コントローラ1は、ステップS31で選択したBEタスクについて設定の可否を判定していない性能指標がある場合(S26:NO)、ステップS32に戻る。コントローラ1は、BEタスク設定可能性能指標テーブル145の動作周波数C1452の中から、ステップS31で選択したBEタスクに関する他のCPU動作周波数を一つ選択する。以後は、上述の処理を実行する。そして、コントローラ1は、ステップS31で選択したBEタスクに関する全ての性能指標について、その設定の可否を判定した場合(S36:YES)、ステップS37へ移る。
コントローラ1は、BEタスク動作状態テーブル149の動作状態C1492に「実行中」または「停止中」のいずれかが設定されているBEタスクの全てについて、判定したかを確認する(S37)。
コントローラ1は、未判定のBEタスクがある場合(S37:NO)、ステップS31へ戻り、BEタスク動作状態テーブル149の中から、動作状態C1492が「実行中」または「停止中」のいずれかであるBEタスクを一つ選択する。以後は、上述の処理を実行する。そして、コントローラ1は、動作状態C1492に「実行中」または「停止中」のいずれかが設定されているBEタスクの全てについて、性能指標の設定可否を判定すると(S37:YES)、本処理を終了する。
図16は、追加でBEタスク実行可能なCPU動作周波数(値F)を算出する処理を示すフローチャートである。
コントローラ1は、BEタスク動作状態テーブル149の動作状態C1492が「実行中」である全てのBEタスクについて、性能指標C1493に設定されているCPU動作周波数を読出し、それらの和(値D)を算出する(S40)。
コントローラ1は、CPU空き状況テーブル148の欄C1481から、CPU動作周波数を値Eとしてを読み出す(S41) 。コントローラ1は、ステップS41で取得した値EとステップS40で取得した値Dとの差Fを計算し(F=E−D)、その差Fを、追加でBEタスクを実行可能なCPU動作周波数(値F)とする(S42)。つまり、コントローラ1は、現在実行中のBEタスクで消費しているCPU動作周波数の合計と、CPU11の最大動作周波数との差(F)を、新たなBEタスクの実行に割当て可能な動作周波数として算出する。
図17は、BEタスク動作設定画面G10の例を示す。BEタスク動作設定画面G10は、ユーザインターフェース部150からユーザへ提供される。ユーザインターフェース部150は、設定画面G10を、例えばWebサーバの提供するWebページのようにユーザへ提供し、ユーザとの間で情報を交換することができる。設定画面G10を作成する処理については、図18で後述する。
設定画面G10は、例えば、目安表示部GP10と、タスク一覧GP11と、設定ボタンGP12と、キャンセルボタンGP13と、注意表示部GP14とを含む。
目安表示部GP10は、BEタスクを新たに実行可能なCPUリソースの目安を表示する領域である。タスク一覧GP11は、コントローラ1が管理しているBEタスクの一覧を示す。タスク一覧GP11は、例えば、「タスク名」、「動作状態」、「性能指標の内容」、「最低動作性能指標」、「最低動作周波数」、「設定性能指標」、「設定動作周波数」を対応付けて一覧表示する。
「タスク名」は、コントローラ1の管理下のBEタスクを識別する名称である。「動作状態」は、各BEタスクの動作状態を示す。動作状態には例えば停止中、実行中、実行不可がある。ユーザは、「停止中」または「実行中」であるBEタスクの動作状態を、プルダウンメニュー等で変更可能である。「性能指標の内容」は、BEタスクの性能を知るための指標の内容を示す。「最低動作性能指標」は、BEタスクが最低限の動作をする際の性能指標である。「最低動作周波数」は、最低動作性能指標に対応するCPU動作周波数である。「設定性能指標」は、BEタスクに現在設定されている性能指標である。「設定動作周波数」は、設定性能指標に対応するCPU動作周波数である。ユーザは、実行中のBEタスクに設定されている性能指標を、プルダウンメニューGP16等で変更することができる。
ユーザは、画面G10への入力でBEタスクの動作を設定する場合は、設定ボタンGP12を操作する。逆に、ユーザは、画面G10への入力を取り消す場合、キャンセルボタンGP13を操作する。
注意表示部GP14は、BEタスクに設定した性能指標は、その実現を保証するものではなく、目安に過ぎないことをユーザへ通知するためのメッセージを表示する。
上述のBEタスク動作設定画面G10を表示することで、ユーザは、BEタスクの利用可能なCPUリソースの目安を知ることができる。さらに、BEタスクの性能指標は、1日分のログ情報の学習時間、サンプリング周波数、センサ数、フレームレートといった、各BEタスクの性能を直感的に把握できる情報として提供されている。従って、ユーザは、画面G10へのGUI操作により、所望の性能指標を簡単に設定できる。
図12に示すように、割込みタスクが発生した場合や周期タスクの実行時間が長くなったりした場合には、BEタスクの利用可能なCPUリソースがCPU空き状況テーブル148に示す値よりも減少する。このため、BEタスクは、設定された性能指標よりも低い性能しか発揮できない可能性もある。そこで、BEタスク動作設定画面G10では、注意表示部GP14を設けて、ユーザへ注意を促している。
図18は、BEタスク動作設定画面G10を作成する処理のフローチャートである。本処理は、コントローラ1のタスク管理部130がBEタスク動作設定画面G10の描画時に実行する。以下、動作主体をコントローラ1として述べる。
コントローラ1は、CPU空き状況テーブル148を参照し、BEタスクを実行可能なCPUリソースの値C1481,C1482を読出し、CPU使用率(動作周波数)の目安として描画する(S50)。
コントローラ1は、BEタスク性能指標テーブル144、BEタスク動作状態テーブル149、BEタスク最低動作性能指標テーブル146に記載の情報を元に、タスク一覧GP11に表示するテーブルを描画する(S51)。
コントローラ1は、BEタスク設定可能性能指標テーブル145を参照し、各BEタスクへ設定可能な性能指標欄C1452の値を内部的に保持する(S52)。コントローラ1は、停止中のBEタスクを実行再開できるか否か判定し、停止中のBEタスクのうち実行不可能と判定したBEタスクについて「実行不可能」と表記し、ユーザが選択できないようにする(S53)。
コントローラ1は、各BEタスクへ設定可能な性能指標を判定し、設定不可能な性能指標をS52で保持した内容から除外する(S54)。以上の処理を実行することで、図17に示す設定画面G10を作成することができる。
図19は、コントローラ1へBEタスクをインストールする処理を示すフローチャートである。コントローラ1は、ユーザインターフェース部150からユーザに向けて、BEタスクをコントローラ1へインストールするためのインストール画面を提供する。ユーザは、図示せぬインストール画面を呼び出して、BEタスクのインストールを要求することができる。
コントローラ1は、ユーザからのインストール指示を受領すると、プログラム配布装置2へ接続し、ユーザの指定したBEタスクのインストールをプログラム配布装置2に要求する(S60)。
プログラム配布装置2は、インストール要求を受領すると、CPU11の動作周波数とコントローラ1にインストール済みのBEタスクの一覧とを、コントローラ1に要求する(S61)。
コントローラ1は、CPU動作周波数テーブル147に記載されたCPU動作周波数とBEタスク動作状態テーブル149に記載されたBEタスク名C1491の情報とを、プログラム配布装置2へ送信する(S62)。
プログラム配布装置2は、BEタスク設定可能性能指標マスタテーブル232とコントローラ1のCPU動作周波数およびBEタスク名の一覧とを比較し、コントローラ1がインストール可能なBEタスクの一覧を検出する。プログラム配布装置2は、コントローラ1がインストール可能なBEタスク一覧を、コントローラ1へ送信する(S63)。
コントローラ1は、プログラム配布装置2から受信したBEタスク一覧をユーザインターフェース部150を介してユーザに提示する。ユーザは、提示されたBEタスクの中から、所望のBEタスクを選択する。ユーザの選択結果は、ユーザインターフェース部150からコントローラ1へ入力される(S64)。
コントローラ1は、ユーザの選択したBEタスクのインストールを、プログラム配布装置2へ要求する(S65)。プログラム配布装置2は、コントローラ1から要求されたBEタスクのプログラムとそのBEタスクに設定可能な性能指標の情報とを、コントローラ1へ送信する(S66)。
コントローラ1は、プログラム配布装置2から受信したBEタスクをBEタスク実行部120にインストールし、さらに、そのBEタスクに設定可能な性能指標の情報を、BEタスク性能指標テーブル144と、 BEタスク設定可能性能指標テーブル145と、BEタスク動作状態テーブル149と、BEタスク最低動作性能指標テーブル146と、BEタスク優先度テーブル142とに、それぞれ追記する(S67)。
このように構成される本実施例によれば、シングルチップ、シングルコア構成のCPU11によって、周期タスクおよび割込みタスクを優先的に実行しながら、それらの高優先度タスクが実行されていない場合の余裕資源を利用してBEタスクをできる限りの性能で実行させることができる。従って、本実施例のコントローラ装置は、複数のマイクロプロセッサや複数コアを有するマイクロプロセッサを用いることなく、複数のタスクをその優先度の相違に応じてそれぞれ実行することができ、装置構成を簡素化して製造コストを低減することができる。
本実施例では、BEタスクの実行性能の目安となる指標をユーザへ提示するため、ユーザは、BEタスクがどの程度の性能で実行されるかを事前に確認することができ、使い勝手が向上する。さらに、本実施例では、時間、センサ数、周波数、フレームレートなどのように、BEタスクの性質に応じた分かり易い性能指標をユーザへ提示するため、不慣れなユーザであっても直感的にBEタスクの性能を把握することができる。
さらに本実施例では、BEタスク動作設定画面G10の注意表示部GP14を通じて、BEタスクの性能指標は目安であることを通知するため、ユーザが誤解するのを未然に防止することができ、これによっても使い勝手が向上する。
図20を用いて第2実施例を説明する。本実施例を含む以下の各実施例は、第1実施例の変形例に該当するため、第1実施例との相違を中心に説明する。本実施例では、BEタスクの平均実行時間をコントローラ1へ設定する方法を幾つか説明する。
図20は制御システムの全体図である。プログラム配布装置2は、複数のコントローラ1(1)〜(3)と接続されている。それらコントローラ1(1)〜(3)は同一事業所に設けられていてもよいし、それぞれ異なる事業所に設けられてもよい。ここでは、コントローラ1(1),(2)が既設であり、コントローラ1(3)が新設されたものであると仮定して説明する。なお、コントローラ1の新設時に限らず、コントローラ1の管理する制御システムの構成が変化した場合や、ユーザが更新を指示した場合に、以下の処理を実行することもできる。
本実施例のプログラム配布装置2は、第1実施例で述べた構成に加えて、実績値解析部240とパラメータ設定部250とを備える。
実績値解析部240は、複数のコントローラ1(1),(2)のタスク管理部130から、周期タスクの平均実行時間やBEタスクの動作パラメータをそれぞれ収集して(S70)、解析する(S71)。実績値解析部240は、複数のコントローラ1(1),(2)における各タスクの実行実績を統計処理等することで、より正確な推定値を得ることができる。
パラメータ設定部250は、実績値解析部240の解析結果を、更新対象のコントローラ1(3)のタスク管理部130へ送信し、周期タスクの平均実行時間やBEタスクの動作パラメータ(例えば最低動作性能指標など)を更新させる(S72)。新設のコントローラ1(3)に初期設定されていた各種パラメータは、実績値解析部240の算出した最新値に更新される。パラメータ設定部250の機能は、タスク配布管理部210が実行してもよい。
既設のコントローラ1(1),(2)での実績値を統計処理する方法に代えて、あるいは、統計する処理と共に、シミュレータ5を用いてもよい。シミュレータ5は、各タスクの動作環境を模擬した環境で、各タスクの実行を事前にテストし、各タスクのパラメータを調製する(S80)。パラメータ設定部250は、シミュレータ5の結果に従って、対象のコントローラ1(3)の持つ各タスクのパラメータを更新する。
このように構成される本実施例も第1実施例と同様の作用効果を奏する。さらに本実施例では、コントローラ1の持つ各タスクのパラメータを更新することができるため、CPU11の空き状況などをより正確に算出することができ、BEタスクの性能指標の実現精度を高めることができる。
コントローラ1の設けられる制御システムは、常に一定というわけではなく、制御対象機器3の経年劣化等によって変化する。また制御システムの設けられる現場の条件や周囲環境も変化する。従って、各タスクの実行に要する時間は変化する。
また、BEタスクは、いわゆるオープンソースプログラムを利用して作成することもできるため、セキュリティ対策などのためにプログラムが適宜修正される。プログラムの修正に伴い、BEタスクの実行性能は変化する。本実施例では、プログラム修正されたBEタスクの動作を事前にシミュレータ5で確認することができ、必要に応じてパラメータを変更等できるため、BEタスクの信頼性を高めることができ、使い勝手が向上する。
図21を用いて第3実施例を説明する。本実施例では、ユーザが簡単にBEタスクの動作を設定できるようにした。図21は、本実施例のBEタスク動作設定画面G10Aの例を示す。
本実施例の画面G10Aは、簡易設定部GP17を備える。簡易設定部GP17は、ユーザの選択した希望に従って、BEタスクの動作を自動的に設定する。簡易設定部GP17では、例えば、「できるだけ多くのBEタスクを実行する」「優先度の高いBEタスクを優先して実行する」などの条件をユーザが選択できる。
「できるだけ多くのBEタスクを実行する」ためには、例えば、選択したBEタスクのCPU動作周波数の合計値が、空いているCPU動作周波数の値に一致するまで(空いているCPU動作周波数の値を超えない限りで最も近づくまで)、実行に必要なCPU動作周波数の少ない順でBEタスクを選択すればよい。
また、「優先度の高いBEタスクを優先して実行する」ためには、例えば、選択したBEタスクのCPU動作周波数の合計値が、空いているCPU動作周波数の値に一致するまで(空いているCPU動作周波数の値を超えない限りで最も近づくまで)、優先度の高い順であって、かつ実行に必要なCPU動作周波数の少ない順に、BEタスクを選択すればよい。
タスク管理部130は、簡易設定部GP17から取得した選択結果に従って、BEタスク動作設定部G10Aの具体的内容を自動的に設定し、ユーザへ提示する。
このように構成される本実施例も第1実施例と同様の作用効果を奏する。さらに本実施例では、簡易設定部GP17を設けるため、不慣れなユーザであってもBEタスクの動作を所望の値に設定することができる。本実施例では、BEタスクに関する直感的な性能指標の表示と、BEタスクの動作を簡易設定するための簡易設定部GP17とが結合することで、ユーザの使い勝手がさらに向上する。
図22を用いて第4実施例を説明する。本実施例では、BEタスクと高優先度タスクとが連携する場合を説明する。図22は、BEタスクと高優先度タスク(周期タスク、割込みタスク)が連携して相互作用する例を示すフローチャートである。
BEタスクの実行結果が高優先度タスクに作用する例を説明する。BEタスク実行部120は、故障の予兆を検出すると、タスク管理部130へ通知する(S90)。タスク管理部130は、その故障予兆に対応するか否か、さらに、対応する場合のパラメータ変更について評価する(S91)。タスク管理部130は、故障予兆に対応すると評価した場合、パラメータの変更を高優先度タスク実行部110へ指示する(S93)。
例えば、故障の予兆が検出された場合に、設定温度や設定圧力などの設定値あるいは動作周期などの、周期タスクのパラメータを変更することで、故障の可能性を低下させたり、故障までの時間を引き延ばしたりすることができる。周期タスクの動作周期が低下する場合、BEタスクの実行時の性能を高くできるため、より一層、故障予兆などの処理の頻度や精度を高めることができる。
図22の下側に示すように、高優先度タスク実行部110は、何らかの異常を検出すると、タスク管理部130へ通知する(S94)。タスク管理部130は、この異常検知を診断し、BEタスクの実行が必要であるか否か判定する(S95)。例えば、異常な音が検出された場合に、タスク管理部130は、故障予兆診断BEタスクや振動診断タスクを起動させるべきか否か判定する。
BEタスク実行部120は、実行させるべきBEタスクがインストールされているか否か判定し、インストールされていない場合は、プログラム配布装置2に対してインストールを要求する(S96)。この処理は、図19で述べたので割愛する。
BEタスク実行部120は、実行させるべきBEタスクの実行を、BEタスク実行部120に対して指示する(S97)。BEタスク実行部120は、指示されたBEタスクを実行する。
これにより本実施例では、第1実施例と同様の作用効果を奏する上に、BEタスクと高優先度タスクとを連携させることができるため、コントローラ1の信頼性を高めることができる。
なお、本発明は、上述した実施形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。上述の実施形態において、添付図面に図示した構成例に限定されない。本発明の目的を達成する範囲内で、実施形態の構成や処理方法は適宜変更することが可能である。
また、本発明の各構成要素は、任意に取捨選択することができ、取捨選択した構成を具備する発明も本発明に含まれる。さらに特許請求の範囲に記載された構成は、特許請求の範囲で明示している組合せ以外にも組み合わせることができる。
本実施形態は、例えば下記のように表現することもできる。
「高い優先度に設定される一つ以上の第1タスクと低い優先度に設定される一つ以上の第2タスクとを、一度に一つのタスクを実行する単一のマイクロプロセッサを有するコントローラ装置により実行させるためのコンピュータプログラムであって、
前記マイクロプロセッサの有する演算処理資源のうち前記第2タスクの実行に割当て可能な余裕資源を算出し、
前記算出した余裕資源を用いて前記第2タスクを実行した場合の、前記第2タスクの性能の推定値を示す性能指標を決定し、
前記余裕資源と前記性能指標とを出力する、
コンピュータプログラム。」
「優先度の異なる複数のタスクを実行するコントローラ装置と、前記コントローラ装置へタスクを配布するプログラム配布装置を備える制御システムであって、
前記コントローラ装置は、
一度に一つのタスクを実行する単一のマイクロプロセッサと、
前記マイクロプロセッサにより実現され、高い優先度に設定される一つ以上の第1タスクを実行する第1タスク実行部と、
前記マイクロプロセッサにより実現され、低い優先度に設定される一つ以上の第2タスクを実行する第2タスク実行部と、
前記マイクロプロセッサの有する演算処理資源のうち前記第2タスクの実行に割当て可能な余裕資源を算出し、前記算出した余裕資源を用いて前記第2タスクを実行した場合の、前記第2タスクの性能の推定値を示す性能指標を決定し、前記余裕資源と前記性能指標とを出力するタスク管理部と、
を備え、
前記プログラム配布装置は、前記コントローラ装置から要求された第2タスクと、その第2タスクのインストールに際して必要な情報とを、前記コントローラ装置へ送信してインストールさせる、
制御システム。」
1:コントローラ、2:プログラム配布装置、3:制御対象機器、31:センサ、32:アクチュエータ、110:高優先度タスク実行部、120:BEタスク実行部、130:タスク管理部、140:記憶部、150:ユーザインターフェース部、210:タスク配布管理部、220:データベース管理部、230:記憶部

Claims (15)

  1. 優先度の異なる複数のタスクを実行するコントローラ装置であって、
    一度に一つのタスクを実行する単一のマイクロプロセッサと、
    前記マイクロプロセッサにより実現され、高い優先度に設定される一つ以上の第1タスクを実行する第1タスク実行部と、
    前記マイクロプロセッサにより実現され、低い優先度に設定される一つ以上の第2タスクを実行する第2タスク実行部と、
    前記マイクロプロセッサの有する演算処理資源のうち前記第2タスクの実行に割当て可能な余裕資源を算出し、前記算出した余裕資源を用いて前記第2タスクを実行した場合の、前記第2タスクの性能の推定値を示す性能指標を決定し、前記余裕資源と前記性能指標とを出力するタスク管理部と、
    を備えるコントローラ装置。
  2. 前記第1タスクは、前記演算処理資源を優先的に使用して実行されるものであり、
    前記第2タスクは、前記余裕資源を使用して実行されるものである、
    請求項1に記載のコントローラ装置。
  3. 前記第1タスクは、前記マイクロプロセッサの制御対象である制御対象機器に直接関わる処理であって、前記演算処理資源を優先的に使用して実行されるものであり、
    前記第2タスクは、前記制御対象機器に間接的に関わる処理であって、前記余裕資源を使用して実行されるものである、
    請求項2に記載のコントローラ装置。
  4. 前記余裕資源は、前記演算処理資源のうち前記第1タスクが実行されていないアイドル時間に基づいて算出される、
    請求項3に記載のコントローラ装置。
  5. 前記第1タスクは、周期的に実行される周期タスクと、前記マイクロプロセッサが実行中のタスクに割り込んで実行される割込みタスクとが含まれており、
    前記余裕資源は、前記割込みタスクが発生しない場合において前記周期タスクが前記演算処理資源を使用する時間と前記演算処理資源の全体との差分から算出される、
    請求項4に記載のコントローラ装置。
  6. 前記余裕資源は、前記マイクロプロセッサの使用率または動作周波数の少なくともいずれか一方を用いて表示出力される、
    請求項5に記載のコントローラ装置。
  7. 前記性能指標は、前記マイクロプロセッサの使用率または動作周波数のいずれか一方に基づいて予め用意された複数の値の中から選択される、
    請求項6に記載のコントローラ装置。
  8. 前記タスク管理部は、前記性能指標と前記マイクロプロセッサの使用率または動作周波数とを対応付けて出力する、
    請求項6に記載のコントローラ装置。
  9. 前記タスク管理部は、前記第2タスクに設定された性能指標の値である設定性能指標と、前記設定性能指標に対応する前記マイクロプロセッサの使用率または駆動周波数の値と、前記第2タスクが最低限動作に必要な性能指標の値である最低動作性能指標と、前記最低動作性能指標に対応するマイクロプロセッサの使用率または駆動周波数の値と、を対応付けて出力する、
    請求項8に記載のコントローラ装置。
  10. 前記タスク管理部は、前記第2タスクの動作状態も出力することができ、
    前記動作状態には、「実行中」、「停止中」、「実行不可」が含まれている、
    請求項9に記載のコントローラ装置。
  11. 前記タスク管理部は、
    前記決定された性能指標と前記余裕資源を比較し、
    実行可能な第2タスクについては前記動作状態として「停止中」を選択し、かつ、ユーザの実行指示を受け付けることができるように表示出力し、
    実行不可能な第2タスクについては前記動作状態として「実行不可」を選択し、かつ、ユーザの実行指示の受け付けないように表示出力する、
    請求項10に記載のコントローラ装置。
  12. 前記タスク管理部は、前記動作状態が「実行中」である第2タスクについては、ユーザによる前記設定性能指標の変更指示を受け付けることができるように表示出力する、
    請求項11に記載のコントローラ装置。
  13. 前記タスク管理部は、前記第2タスク実行部の実行結果に基づいて、前記第1タスク実行部が前記第1タスクを実行する際のパラメータの少なくとも一部を変更する、
    請求項1〜12のいずれか一項に記載のコントローラ装置。
  14. 前記タスク管理部は、前記第1タスク実行部の実行結果に基づいて、前記第2タスク実行部で実行させる第2タスクを決定する、
    請求項13に記載のコントローラ装置。
  15. 優先度の異なる複数のタスクをコントローラ装置により実行するタスク実行管理方法であって、
    前記コントローラ装置は、一度に一つのタスクを実行する単一のマイクロプロセッサを備えており、
    前記タスクには、高い優先度に設定される一つ以上の第1タスクと低い優先度に設定される一つ以上の第2タスクとが含まれており、
    前記コントローラ装置は、
    前記マイクロプロセッサの有する演算処理資源のうち前記第2タスクの実行に割当て可能な余裕資源を算出し、
    前記算出した余裕資源を用いて前記第2タスクを実行した場合の、前記第2タスクの性能の推定値を示す性能指標を決定し、
    前記余裕資源と前記性能指標とを出力する、
    コントローラ装置のタスク実行管理方法。
JP2016063034A 2016-03-28 2016-03-28 コントローラ装置およびコントローラ装置のタスク実行管理方法 Active JP6580505B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016063034A JP6580505B2 (ja) 2016-03-28 2016-03-28 コントローラ装置およびコントローラ装置のタスク実行管理方法
PCT/JP2016/082754 WO2017168814A1 (ja) 2016-03-28 2016-11-04 コントローラ装置およびコントローラ装置のタスク実行管理方法
EP16897030.9A EP3441879A4 (en) 2016-03-28 2016-11-04 CONTROL DEVICE APPARATUS AND JOB EXECUTION MANAGEMENT METHOD FOR CONTROL DEVICE APPARATUS
TW106100560A TWI646412B (zh) 2016-03-28 2017-01-09 控制器裝置及控制器裝置之任務執行管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016063034A JP6580505B2 (ja) 2016-03-28 2016-03-28 コントローラ装置およびコントローラ装置のタスク実行管理方法

Publications (2)

Publication Number Publication Date
JP2017182105A true JP2017182105A (ja) 2017-10-05
JP6580505B2 JP6580505B2 (ja) 2019-09-25

Family

ID=59963806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016063034A Active JP6580505B2 (ja) 2016-03-28 2016-03-28 コントローラ装置およびコントローラ装置のタスク実行管理方法

Country Status (4)

Country Link
EP (1) EP3441879A4 (ja)
JP (1) JP6580505B2 (ja)
TW (1) TWI646412B (ja)
WO (1) WO2017168814A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933019A (zh) * 2017-12-15 2019-06-25 欧姆龙株式会社 工业控制系统及其支持装置、控制支持方法和存储介质
CN111919181A (zh) * 2018-03-29 2020-11-10 株式会社日立产机系统 控制装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019159310A1 (ja) * 2018-02-16 2019-08-22 株式会社日立製作所 電子制御装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199367A (ja) * 2008-02-21 2009-09-03 Nec Corp 計算機システム、i/oスケジューラ及びi/oスケジューリング方法
JP2010033131A (ja) * 2008-07-25 2010-02-12 Mitsubishi Electric Corp 管理装置及びプログラム
US20100088492A1 (en) * 2008-10-02 2010-04-08 Nec Laboratories America, Inc. Systems and methods for implementing best-effort parallel computing frameworks
JP2013182502A (ja) * 2012-03-02 2013-09-12 Nec Corp リソース配分システム、リソース配分方法、及びリソース配分プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3862715B2 (ja) * 2004-06-01 2006-12-27 株式会社ソニー・コンピュータエンタテインメント タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
US8397235B2 (en) * 2008-10-07 2013-03-12 Futurewei Technologies, Inc. User tolerance based scheduling method for aperiodic real-time tasks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199367A (ja) * 2008-02-21 2009-09-03 Nec Corp 計算機システム、i/oスケジューラ及びi/oスケジューリング方法
JP2010033131A (ja) * 2008-07-25 2010-02-12 Mitsubishi Electric Corp 管理装置及びプログラム
US20100088492A1 (en) * 2008-10-02 2010-04-08 Nec Laboratories America, Inc. Systems and methods for implementing best-effort parallel computing frameworks
JP2013182502A (ja) * 2012-03-02 2013-09-12 Nec Corp リソース配分システム、リソース配分方法、及びリソース配分プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933019A (zh) * 2017-12-15 2019-06-25 欧姆龙株式会社 工业控制系统及其支持装置、控制支持方法和存储介质
CN109933019B (zh) * 2017-12-15 2022-02-25 欧姆龙株式会社 工业控制系统及其支持装置、控制支持方法和存储介质
CN111919181A (zh) * 2018-03-29 2020-11-10 株式会社日立产机系统 控制装置
EP3779622A4 (en) * 2018-03-29 2021-12-29 Hitachi Industrial Equipment Systems Co., Ltd. Control device
US11402815B2 (en) 2018-03-29 2022-08-02 Hitachi Industrial Equipment Systems Co., Ltd. Control apparatus
CN111919181B (zh) * 2018-03-29 2023-09-12 株式会社日立产机系统 控制装置

Also Published As

Publication number Publication date
TW201734682A (zh) 2017-10-01
JP6580505B2 (ja) 2019-09-25
TWI646412B (zh) 2019-01-01
EP3441879A4 (en) 2019-11-27
EP3441879A1 (en) 2019-02-13
WO2017168814A1 (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
JP6580505B2 (ja) コントローラ装置およびコントローラ装置のタスク実行管理方法
AU2010229206B2 (en) System and method for configuring a power device
KR102038712B1 (ko) 에너지 관리 시스템 및 에너지 관리 방법
JP3839440B2 (ja) エネルギー管理装置、施設監視制御装置、エネルギー管理プログラムおよび施設監視制御プログラム
US20200019436A1 (en) Control device, control method, and control program
JP5983677B2 (ja) 情報表示方法、情報表示装置、情報表示システム、情報表示プログラム、及び記録媒体
KR101691787B1 (ko) 건물 에너지 관리 지수 측정 시스템 기반 경향 분석 서비스 제공 방법 및 시스템
JPWO2019163823A1 (ja) 情報処理システム
US20200123878A1 (en) Systems and methods for scheduling and executing maintenance
JP5066222B2 (ja) ネットワーク解析支援装置、ネットワーク解析支援方法及びプログラム
KR102089811B1 (ko) 플랫폼 기반의 에너지 관리 시스템 및 에너지 관리 방법
KR20150096833A (ko) 양방향 조율 및 순차보상 기반 최대수요전력관리 방법 및 시스템
JP5843816B2 (ja) 空調制御装置、プログラム及び空調管理システム
KR20160126609A (ko) 건물 에너지 분석 시스템 및 방법
KR101641259B1 (ko) 중앙 제어 장치, 중앙 제어 시스템 및 중앙 제어 방법
KR101999781B1 (ko) 사물 인터넷 미지원 디바이스에 대한 모니터링 장치 및 그 방법
JP6131528B2 (ja) メンテナンス支援装置及びメンテナンス支援システム
JP2010044780A (ja) 運転状況分析方法および運転状況分析システム
JP5914281B2 (ja) 予測変数特定装置、方法、およびプログラム
JP6061874B2 (ja) データ管理装置及びプログラム
US20240118737A1 (en) Evaluation device and program
JP2017220108A (ja) 機器制御装置および機器制御プログラム
WO2016152695A1 (ja) 機器制御装置
KR101323833B1 (ko) 스케줄링 장치 및 방법
JP2020021115A (ja) 中央監視装置、負荷情報提示システム、および負荷情報提示方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190731

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: 20190820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190828

R150 Certificate of patent or registration of utility model

Ref document number: 6580505

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150