JPWO2015104790A1 - 制御装置、開発装置、および開発プログラム - Google Patents
制御装置、開発装置、および開発プログラム Download PDFInfo
- Publication number
- JPWO2015104790A1 JPWO2015104790A1 JP2014527414A JP2014527414A JPWO2015104790A1 JP WO2015104790 A1 JPWO2015104790 A1 JP WO2015104790A1 JP 2014527414 A JP2014527414 A JP 2014527414A JP 2014527414 A JP2014527414 A JP 2014527414A JP WO2015104790 A1 JPWO2015104790 A1 JP WO2015104790A1
- Authority
- JP
- Japan
- Prior art keywords
- event
- priority
- task
- input
- control
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
所望のイベントを他のイベントよりも先に処理するために、制御装置は、制御プログラムを記憶する記憶装置と、イベントに応じた処理を実行する夫々タスク優先度が設定される複数のタスク、および、前記複数のタスクの夫々をタスク優先度に基づいて実行状態に状態遷移させるタスク管理を、前記制御プログラムに基づいて実現する演算装置と、を備え、前記イベントはイベント優先度が予め設定され、各タスクは、複数のイベントが入力された場合、自タスクが実行状態である際に、前記入力された各イベントに応じた各処理を前記入力された各イベントのイベント優先度に基づく順番で実行する(S35、S36)。
Description
本発明は、被制御装置を制御する制御装置、制御装置を動作させる制御プログラムの開発装置、および、開発プログラムに関する。
被制御装置を制御する制御装置は、種々の場面で使用される。例えば、FA分野においては、製造ラインを制御する制御装置としてPLC(Programmable Logic Controller)が用いられる。また、遠隔地の機器(例えばビルまたは駅内の空調機器、セキュリティ機器、照明機器、エレベータの構成機器)を制御するために制御装置が用いられる。また、電力、ガス、水道等のインフラを支える機器を監視したり制御したりするために、制御装置が用いられる。このような制御装置においては、イベント処理のリアルタイム性を高めることが要望される。
例えば特許文献1には、詳細な実行時刻が判明する前の上流設計工程において実時間性を考慮した状態遷移と、タスク優先度の設計と、を行うことができる実時間処理ソフトウェアの制御装置および制御方法が開示されている。
しかしながら、上記特許文献1の技術によれば、状態遷移に応じてタスクの優先度設定が可能であるが、所望のイベントを他のイベントよりも先に処理するといった制御ができないという問題点があった。
本発明は、上記に鑑みてなされたものであって、所望のイベントを他のイベントよりも先に処理することができる制御装置、当該制御装置を動作させる制御プログラムの開発を支援する開発装置、および開発プログラムを得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、制御プログラムを記憶する記憶装置と、イベントに応じた処理を実行する夫々タスク優先度が設定される複数のタスク、および、前記複数のタスクの夫々をタスク優先度に基づいて実行状態に状態遷移させるタスク管理を、前記制御プログラムに基づいて実現する演算装置と、を備え、前記イベントはイベント優先度が予め設定され、各タスクは、複数のイベントが入力された場合、自タスクが実行状態である際に、前記入力された各イベントに応じた各処理を前記入力された各イベントのイベント優先度に基づく順番で実行する、ことを特徴とする。
本発明にかかる制御装置は、イベント毎にイベント優先度が予め設定され、各タスクが、各イベントに応じた各処理をイベント優先度に基づく順番で実行するので、所望のイベントを他のイベントよりも先に処理することができる。
以下に、本発明にかかる実施の形態の制御装置、開発装置、および開発プログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1の制御装置が使用されるシステムを示す図である。制御装置1は、被制御システム4と開発装置5とに接続される。
図1は、本発明の実施の形態1の制御装置が使用されるシステムを示す図である。制御装置1は、被制御システム4と開発装置5とに接続される。
被制御システム4は、センサ2と駆動装置3とを備えている。センサ2は、被制御システム4の動作を検出するものである。センサ2が検出する動作とは、例えば、温度、速度、または位置などが該当する。駆動装置3は、被制御システム4に動力を供給する装置である。例えばモータまたはアクチュエータが駆動装置3に該当する。
制御装置1は、駆動装置3に対する駆動指令をセンサ2からの入力に基づいて演算する。制御装置1は、演算した駆動指令を駆動装置3に供給する。なお、制御装置1は、制御プログラム14に基づいて動作する。
開発装置5は、制御プログラム14の作成を支援したり、作成された制御プログラム14を制御装置1に設定したりする装置である。制御装置1が被制御システム4の制御を実行中においては、開発装置5は制御装置1に接続されていなくてもよい。
図2は、制御装置1のハードウェア構成例を示す図である。制御装置1は、演算装置10、主記憶装置11、補助記憶装置12、およびI/O13を備える。演算装置10、主記憶装置11、補助記憶装置12、およびI/O13は互いにバスで接続される。
演算装置10は、プログラムに基づく演算を実行することができる装置である。演算装置10は、例えばCPU(Central Processing Unit)である。演算装置10としては、シングルコアプロセッサまたはマルチコアプロセッサが適用できる。演算装置10は制御装置1に複数具備され、複数の演算装置10は並行して動作することが可能に構成されてもよい。
主記憶装置11は、演算装置10のワークエリアとして機能するメモリである。主記憶装置11は、例えば補助記憶装置12よりも高速に動作するメモリによって構成される。主記憶装置11は、例えばRAM(Random Access Memory)によって構成される。
補助記憶装置12は、ストレージ、および、制御プログラム14を記憶する記憶装置、として機能する。補助記憶装置12は、例えば、ROM(Read Only Memory)、ハードディスクドライブ、SSD(Solid State Drive)、着脱可能なメモリデバイス、またはこれらの組み合わせによって構成される。
I/O13は、センサ2、駆動装置3、および開発装置5と通信を行うための接続インタフェースである。センサ2、駆動装置3、および開発装置5と制御装置1との間の接続規格としては任意の規格が採用可能である。
制御プログラム14は、ユーザプログラムおよびオペレーティングシステム(OS)プログラムを含む。制御プログラム14は、補助記憶装置12から読み出され、バスを介して主記憶装置11のワークエリアへロードされる。演算装置10は、ワークエリアにロードされたOSに基づいて、複数のタスクを生成する。そして、演算装置10は、複数のタスクを切り換えながら実行する。制御装置1による被制御システム4の制御(例えば駆動装置3に対する駆動指令をセンサ2からの入力に基づいて生成する動作)は、複数のタスクの協働により実現する。
タスクの実体は、制御プログラム14に含まれるプログラムモジュールに制御に応じて変化する値を持たされたものである。各プログラムモジュールは、ワークエリアに保持され、演算装置10は、ワークエリアに保持された各プログラムモジュールをOSによるタスク管理の下で切り換えながら実行する。演算装置10がシングルコアプロセッサにより構成される場合には、演算装置10は、同時に1つのタスクのみ実行する。演算装置10がマルチコアプロセッサにより構成される場合には、演算装置10は、同時に複数のタスクを実行することができる。タスク間で情報を送受信することが可能である。タスクに入力されたりタスクから出力されたりする情報を、イベントと表記する。
図3は、制御装置1のソフトウェア構成例を示す図である。複数のタスク(タスク100a〜100e)は、OS110によるタスク管理の下で夫々動作する。タスク100a〜100eを総称してタスク100と表記することがある。OS110は、タスク100がハードウェア120を使用できるように、タスク100とハードウェア120との間に介在する。ハードウェア120とは、演算装置10、主記憶装置11、補助記憶装置12、およびI/O13を概括する概念である。各タスク100は、イベントの入力を受け付けたり、イベントを生成して出力したりすることができる。
タスク100a〜100eは、階層構造を構成する。なお、タスク100a〜100eは、階層構造を構成しなくてもよい。ここでは、タスク100aおよびタスク100eは、OS110に最も近い階層(第1階層)に属する。タスク100cは、OS110から最も遠い階層(第3階層)に属する。タスク100bおよびタスク100dは、第1階層と第3階層との間に介在する階層(第2階層)に属する。
センサ2からのセンサ信号は、第1階層のタスク100aによってイベント101aとして取り込まれる。タスク100aは、取り込んだイベント101aを加工してまたはそのままイベント101bとしてタスク100bに入力する。タスク100cは、センサ2からの入力に基づいて駆動装置3に対する駆動指令を演算するタスクであって、被制御システム4の制御の主要部を担うタスクである。タスク100bは、イベント101bとして入力されたセンサ信号を、タスク100cが利用できる程度に抽象化(平滑化などの所定のフィルタ処理)し、抽象化後のセンサ信号をタスク100cにイベント101cとして入力する。タスク100cは、イベント101cとして入力された抽象化後のセンサ信号に基づいて抽象化された駆動指令を演算し、演算された抽象化された駆動指令をイベント101dとしてタスク100dに入力する。タスク100dは、イベント101dとして入力された抽象化された駆動指令を、外部に出力可能な形式に変換し、変換後の駆動指令をイベント101eとしてタスク100eに入力する。タスク100eは、イベント101eとして入力された変換後の駆動指令を、OS110およびハードウェア120を介して駆動装置3に入力する。
図4は、OS110によるタスク管理を説明するための図である。OS110は、タスク100を生成することができ、さらに、生成したタスク100に優先度(タスク優先度)を設定することができる(S1)。生成されたタスク100の状態(タスク状態)は、実行可能状態である(S2)。OS110は、演算装置10に実行可能状態のタスク100を実行させる(S3)。演算装置10に実行可能状態のタスク100を実行させることを、タスク100に演算装置10を割り当てる、と表記する。ここで、実行可能状態のタスク100が複数存在する場合には、OS110は、演算装置10の割り当て先のタスク100をタスク優先度に応じて選択する。タスク優先度に応じたタスク100の割り当て手法は任意である。例えば、OS110は、タスク優先度として最も高い値が設定されたタスク100を選択し、選択したタスク100に演算装置10を割り当てる。OS110は、実行時間に制限値を設けてタスク100に演算装置10を割り当て、実行時間が制限値を経過した後は、演算装置10の割り当て先を他のタスク100にスイッチするようにしてもよい。
演算装置10が割り当てられたタスク100は、演算装置10によって実行される(S4)。演算装置10によって実行されていることを示すタスク状態を、実行状態と表記する。即ち、OS110は、タスク100をタスク優先度に基づいて実行可能状態から実行状態に状態遷移させることができる。
また、OS110は、実行状態のタスク100を、実行を中断させることで実行可能状態に戻すことができる(S5)。例えば、実行状態のタスク100よりもタスク優先度が高いタスク100が実行可能状態となったとき、OS110は、実行状態のタスク100の実行を中断させることができる。また、実行状態のタスク100の実行時間が制限値を経過したとき、OS110は、実行状態のタスク100の実行を中断させることができる。
実行状態のタスク100が実行を完了したとき、OS110が実行状態のタスク100への演算装置10の割り当てを終了することによってタスク状態が実行状態から待機状態に状態遷移する(S6)。待機状態のタスク100は、イベントの入力を受け付けることができる(S7)。イベントの入力を受け付けた待機状態のタスク100は、実行可能状態に状態遷移する(S2)。なお、OS110は、実行状態のタスク100が実行完了したとき、そのタスク100を消滅させることも可能である(S8)。
図5は、タスク100の機能構成を示す図である。タスク100は、イベント管理部101、入力部102、出力部103、イベント記憶部104、処理実行部105、履歴記憶部106、状態管理部107および設定記憶部108を備える。イベント管理部101は、優先度判定部109を備える。
入力部102は、入力されてきたイベントを受け付ける。イベント記憶部104は、イベントを記憶するバッファである。イベント管理部101は、イベントをイベント記憶部104に格納する。イベント管理部101は、イベント記憶部104に格納されているイベントを取得して、取得したイベントに応じた処理(イベント処理)を処理実行部105に渡す。処理実行部105は、渡されたイベント処理を実行する。
一般に、タスク100は、イベントが入力されると、イベント処理をできるだけ早く実行することが望まれる。実施の形態によれば、タスク100は、早急に処理すべきイベントと、早急に処理しなくてもよいイベントと、の両方が未処理の状態となっている場合には、前者のイベントを先に処理することができる。
具体的には、イベント毎に優先度(イベント優先度)が設定される。そして、イベント記憶部104に複数のイベントが格納されている場合には、優先度判定部109は、イベント毎の優先度(イベント優先度)を判定し、イベント記憶部104に格納されている複数のイベントのうちのイベント優先度が最も高いイベントを、処理対象として選択する。
なお、ここでは、タスク100は、イベント毎に複数のイベント処理を実行しうるものとする。1つのタスク100で実行可能な複数のイベント処理のうちの何れを実行するべきかは、そのときの制御状態に基づいて決まるものとする。制御状態とは、実行状態をさらに細かく分類したものであって、タスク100がどのような制御を実行中であるかを示すものである。なお、各イベントに対して夫々1つのイベント処理が実行されるように構成されてもよい。
設定記憶部108は、イベント処理テーブル108a、優先度設定テーブル(優先度情報)108b、および実行可否設定情報108cが予め格納される。イベント処理テーブル108a、優先度設定テーブル108b、および実行可否設定情報108cは、開発装置5によって設定されたり編集されたりすることが可能である。
図6は、イベント処理テーブル108aのデータ構造例を示す図である。イベント処理テーブル108aは、イベントと制御状態とに基づいてイベント処理を検索することができるテーブル構造を備えている。図6に示す例によれば、イベントとしては、Rバス同期通信、Qバス同期通信、および、非同期低速バス同期通信などの種類が設定されている。制御状態としては、アイドル、送信中、および、再送待ちなどの種類が設定されている。そして、イベント毎および制御状態毎にイベント処理が設定されている。
また、ここではさらに、制御状態に応じてイベント優先度が変動することが可能に構成されている。また、補正条件が満たされるか否かに基づいてイベント優先度を変動することが可能に構成されている。イベント優先度および補正条件の設定は、優先度設定テーブル108bに記述される。補正条件は、ここでは、時間条件および実行回数条件であるものとする。各補正条件については後述する。
図7は、優先度設定テーブル108bのデータ構造例を示す図である。優先度設定テーブル108bは、イベントと制御状態とに基づいてイベント優先度を検索することができるテーブル構造を備える。
ここで、図7において、「T0」は、時間条件とイベント優先度の補正量とを示す。時間条件とは、イベント優先度の補正を行うか否かの判定のための判定条件であって、ここでは一例としてしきい値(時間しきい値)が用いられる。時間しきい値は、制御状態が優先度設定テーブル108bの行に示す制御状態に遷移してからの経過時間と比較される。例えば、経過時間が時間しきい値を超過している場合にはイベント優先度が補正され、経過時間が時間しきい値を超過していない場合にはイベント優先度が補正されない。経過時間が時間しきい値を超過していない場合にイベント優先度が補正され、経過時間が時間しきい値を超過している場合にはイベント優先度が補正されなくてもよい。即ち、時間条件は、経過時間の判定を含んでいる。
また、図7において、「C0」は、実行回数条件とイベント優先度の補正量とを示す。実行回数条件とは、イベント優先度の補正を行うか否かの判定のための判定条件であって、ここでは一例としてしきい値(実行回数しきい値)が用いられる。実行回数しきい値は、イベント処理が実行された回数(実行回数)と比較される。例えば、実行回数が実行回数しきい値を超過している場合にはイベント優先度が補正され、実行回数が実行回数しきい値を超過していない場合にはイベント優先度が補正されない。実行回数が実行回数しきい値を超過していない場合にはイベント優先度が補正され、実行回数が実行回数しきい値を超過している場合にはイベント優先度が補正されなくてもよい。即ち、実行回数条件は、イベント処理の実行回数の判定を含んでいる。
実行可否設定情報108cは、イベント記憶部104に格納されているイベントをイベント優先度に応じて処理するか否かが設定される情報である。イベント記憶部104に格納されているイベントをイベント優先度に応じて処理する動作を、優先度制御と表記する。
制御状態は、状態管理部107によって管理される。状態管理部107は、制御状態の管理のほかに、イベントの受信履歴(以降、単に受信履歴)を履歴記憶部106に記録する。
処理実行部105は、イベント処理を実行する。処理実行部105は、イベント処理を実行する毎にイベント処理の実行履歴(以下、単に実行履歴)を履歴記憶部106に記録する。イベント処理の実行履歴は、実行時の時刻の記録を含む。イベント処理の実行により新たにイベントが生成された場合には、イベント管理部101は、新たに生成されたイベントを出力部103を介して出力する。
次に、タスク100の動作を説明する。
図8は、タスク100がイベントを受信した際のタスク100の動作を説明するフローチャートである。入力部102がイベントを受信すると(S11)、イベント管理部101は、入力部102が受信したイベントをイベント記憶部104に格納する(S12)。S12の処理の後、S11の処理が再び実行される。
図9は、イベント記憶部104に格納されているイベントをタスク100が処理する動作を説明するフローチャートである。
イベント管理部101は、まず、処理実行部105がイベント処理を非実行中であるか実行中であるかを判定する(S21)。処理実行部105がイベント処理を実行中である場合(S21、No)、イベント管理部101は、S21の動作を再び実行する。
処理実行部105がイベント処理を非実行中である場合(S21、Yes)、イベント管理部101は、設定記憶部108に格納されている実行可否設定情報108cを参照することによって、優先度制御の実行が「可能」に設定されているか否かを判定する(S22)。
優先度制御の実行が「可能」に設定されていない場合(S22、No)、イベント管理部101は、イベント記憶部104からイベントを取得する(S23)。ここで、イベント記憶部104に複数のイベントが格納されている場合においては、イベント記憶部104に格納されている複数のイベントのうちの何れをS23の処理において取得するかは任意である。例えば、イベント管理部101は、FIFOのルールに基づいてイベントを取得してもよい。また、イベント管理部101は、FILOのルールに基づいてイベントを取得してもよい。
S23の処理の後、イベント管理部101は、状態管理部107に問合せを行うことによって、現在の制御状態を特定する(S24)。そして、イベント管理部101は、設定記憶部108に格納されているイベント処理テーブル108aをイベントおよび現在の制御状態をキーとして用いて参照することによって、イベント処理を特定する(S25)。そして、イベント管理部101は、特定したイベント処理を処理実行部105に渡し、実行させる(S26)。そして、イベント管理部101は、S21の動作を再び実行する。なお、S26の動作によって処理実行部105が新たにイベントを生成した場合には、イベント管理部101は、生成されたイベントを出力部103を介して出力する。
優先度制御の実行が「可能」に設定されている場合(S22、Yes)、優先度判定部109は、イベント記憶部104からイベントを取得する(S27)。S27の処理においても、イベントの取得手法は任意である。そして、優先度判定部109は、状態管理部107に問合せを行うことによって、現在の制御状態を特定する(S28)。そして、優先度判定部109は、設定記憶部108に格納されているイベント処理テーブル108aをイベントおよび現在の制御状態をキーとして用いて参照することによって、イベント処理を特定する(S29)。そして、優先度判定部109は、設定記憶部108に格納されている優先度設定テーブル108bをイベントおよび制御状態をキーとして用いて参照することによって、イベント優先度を特定する(S30)。イベント優先度とともに各条件(時間条件または実行回数条件)が設定されている場合には、優先度判定部109は、各条件および補正量をイベント優先度とともに特定する。
続いて、優先度判定部109は、履歴記憶部106に格納されている受信履歴を参照することによって、イベントを受信してからの経過時間が時間条件に設定されたしきい値を越えているか否かを判定する(S31)。なお、時間条件が設定されていない場合には、S31の動作はスキップされる。イベントを受信してからの経過時間が時間条件に設定されたしきい値を越えていない場合(S31、No)、優先度判定部109は、履歴記憶部106に格納されている実行履歴を参照することによって、イベント処理の実行回数が実行回数条件に設定されたしきい値を越えているか否かを判定する(S32)。なお、時間条件が設定されていない場合には、S32の動作はスキップされる。
イベントを受信してからの経過時間が時間条件に設定されたしきい値を越えている場合(S31、Yes)、または、イベント処理の実行回数が実行回数条件に設定されたしきい値を越えている場合(S32、Yes)、優先度判定部109は、取得したイベント優先度を、補正量を用いて補正する(S33)。
イベント処理の実行回数が実行回数条件に設定されたしきい値を越えていない場合(S32、No)、または、S33の動作の後、優先度判定部109は、他のイベント、即ちイベント優先度が特定されていないイベント、がイベント記憶部に104に存在するか否かを判定する(S34)。他のイベントが存在する場合(S34、Yes)、優先度判定部109は、S27の動作を再び実行する。他のイベントが存在しない場合(S34、No)、優先度判定部109は、最もイベント優先度が高いイベントに対するイベント処理を選択する(S35)。イベント管理部101は、選択されたイベント処理を処理実行部105に渡し、実行させる(S36)。そして、イベント管理部101は、S21の動作を再び実行する。
なお、イベント管理部101は、イベント記憶部104にイベントが格納されていない状態でイベントを受信したとき、受信したイベントをイベント記憶部104に格納することなくS24〜S26の処理を実行してもよい。
なお、以上の説明においては、優先度設定テーブル108bがタスク100内に記憶されるものとして説明したが、優先度設定テーブル108bは、タスク100の外部に記憶されてもよい。その場合には、優先度判定部109は、タスク100の外部に記憶される優先度設定テーブル108bにイベント優先度を問い合わせるように構成されてもよい。
例えばPLCにおいては、制御プログラムはユーザプログラムを含む。ユーザプログラムは、制御装置1においてサイクリックに実行される。ユーザプログラムの実行結果の出力とユーザプログラムへの入力とがI/O13を介して被制御システム4との間でサイクリックに伝送される。I/O13を介して情報をサイクリックに伝送するイベント処理が伝送のエラー処理よりも高いイベント優先度が設定されることにより、I/O13を介して情報をサイクリックに伝送するイベント処理を先に実行することが可能となる。
このように、本発明の実施の形態1によれば、イベントはイベント優先度が予め設定され、各タスク100は、複数のイベントが入力された場合、自タスク100が実行状態である際に、入力された各イベントに応じた各イベント処理を入力された各イベントのイベント優先度に基づく順番で実行するので、制御装置1は、所望のイベントを他のイベントよりも先に処理することができる。また、ユーザがイベント毎のイベント優先度を細かく調整することで、タクトタイムを短縮することが可能となる。また、タスク優先度を変更することなくイベント優先度を変更することが可能であるので、制御装置1の負荷バランスを崩すことなく調整を行うことが可能となる。
また、イベント毎および制御状態毎にイベント優先度が予め設定され、各タスク100は、自タスク100の制御状態と、入力された各イベントと、に基づいて各イベントのイベント優先度を特定する。入力された各イベントのうちの何れを先に実行するかを制御状態に応じて変更するといった制御が可能となるので、ユーザは、より細かく、かつ、より柔軟な調整を行うことが可能となる。
また、補正条件を設け、補正条件が満たされるときにイベント優先度が補正されるように構成される。これにより、条件に応じてイベント優先度を変更することが可能となる。
また、補正条件は、例えばイベントが入力されてからの経過時間の判定を含む。これにより、イベントが入力されてからの経過時間に応じてイベント優先度を変動させるという細かい制御が可能となる。
また、補正条件は、例えばイベント処理の実行回数の判定を含む。これにより、例えばイベントを送信するイベント処理が何度か実行されて失敗した場合に、イベントを送信するイベント処理のイベント優先度をより小さい値に変更するという細かい制御が可能となる。
実施の形態2.
優先度設定テーブルが複数設定され、複数の優先度設定テーブルのうちの何れが使用されるかが自動または手動で切り替えられるように構成されてもよい。ここでは、使用する優先度設定テーブルが2つの優先度設定テーブルの間で時刻の判定による切り替え条件に基づいて切り替えられる例を説明する。
優先度設定テーブルが複数設定され、複数の優先度設定テーブルのうちの何れが使用されるかが自動または手動で切り替えられるように構成されてもよい。ここでは、使用する優先度設定テーブルが2つの優先度設定テーブルの間で時刻の判定による切り替え条件に基づいて切り替えられる例を説明する。
図10は、実施の形態2の設定記憶部を説明する図である。設定記憶部108には、第1の優先度設定テーブル108dおよび第2の優先度設定テーブル108eが格納される。ここでは、イベント処理テーブル108aおよび実行可否設定情報108cの図示を省略している。第1の優先度設定テーブル108dは、平日に使用されるものである。第2の優先度設定テーブル108eは、休日および祝日に使用されるものである。
図11は、タスク100が優先度設定テーブルを切り替える動作を説明するフローチャートである。優先度判定部109は、まず、現在時刻を取得し、現在は平日であるか否かを判定する(S41)。現在は平日であると判定された場合には(S41、Yes)、優先度判定部109は、第1の優先度設定テーブル108dを使用し(S42)、S41の動作を再び実行する。現在は平日ではないと判定された場合には(S41、No)、優先度判定部109は、第2の優先度設定テーブル108eを使用し(S43)、S41の動作を再び実行する。
なお、S41の動作は1日に一回だけ実行されるようにしてもよい。また、ここでは2つの優先度設定テーブルが切り替えられるものとして説明したが、3以上の優先度設定テーブルが切り替えるように優先度判定部109が構成されてもよい。また、優先度設定テーブルの切り替えの基準は、平日であるか否かだけに限定されない。例えば、現在時刻は9時から17時までの範囲に含まれるか否かによって優先度設定テーブルが切り替えられてもよい。また、時刻だけではなく、被制御システム4の状態または外部からの入力に応じて優先度設定テーブルが切り替えられてもよい。
このように、本発明の実施の形態2によれば、各タスク100は、優先度設定テーブル108d、108eのうちの使用対象の優先度設定テーブルを、切り替え条件に基づいて選択する。これにより、イベント優先度をさらに細かくかつ柔軟に設定することが可能となる。
また、切り替え条件は、時刻の判定を含む。これにより、時刻に応じてイベント優先度を自動的に切り替えることが可能となる。
実施の形態3.
図12は、開発装置5のハードウェア構成例を示す図である。開発装置5は、演算装置50、主記憶装置51、補助記憶装置52、I/O53、入力装置54、および出力装置55を備える。演算装置50、主記憶装置51、補助記憶装置52、I/O53、入力装置54、および出力装置55は互いにバスで接続される。
図12は、開発装置5のハードウェア構成例を示す図である。開発装置5は、演算装置50、主記憶装置51、補助記憶装置52、I/O53、入力装置54、および出力装置55を備える。演算装置50、主記憶装置51、補助記憶装置52、I/O53、入力装置54、および出力装置55は互いにバスで接続される。
演算装置50は、プログラムに基づく演算を実行することができる装置である。演算装置50は、例えばCPUである。主記憶装置51は、演算装置50のワークエリアとして機能するメモリである。主記憶装置51は、例えば補助記憶装置52よりも高速に動作するメモリによって構成される。主記憶装置51は、例えばRAMによって構成される。補助記憶装置52は、ストレージ、および、開発プログラム56を予め記憶する記録媒体、として機能する。補助記憶装置52は、例えば、ROM、ハードディスクドライブ、SSD、着脱可能なメモリデバイス、またはこれらの組み合わせによって構成される。I/O53は、制御装置1と通信を行うための接続インタフェースである。開発装置5と制御装置1との間の接続規格としては任意の規格が採用可能である。
入力装置54は、ユーザによる開発装置5に対する入力を受け付ける装置である。入力装置54は、例えば、キーボードおよびポインティングデバイスによって構成される。入力装置54に入力された情報は、バスを介して演算装置50に送られる。表示装置55は、演算装置50が出力する情報をユーザが視認可能に表示する装置である。表示装置55は、例えば液晶ディスプレイによって構成される。
演算装置50は、補助記憶装置52に格納されている開発プログラム56を読み出してワークエリアに展開する。そして、演算装置50は、ワークエリアに展開された開発プログラム56を実行することによって、制御プログラム14の作成および設定を支援するための各種機能を実現することができる。
図13は、演算装置50が開発プログラム56を実行することによって実現する、開発装置5の機能構成を説明する図である。演算装置50は、表示・編集部57と、シミュレーション部60とを備える。
表示・編集部57は、制御プログラム14の編集画面を表示装置55に表示する。編集画面は、編集中の制御プログラム14を編集画面に表示するための画面である。編集画面は、例えばGUI(Graphical User Interface)機能を有する。表示・編集部57は、編集画面に表示中の制御プログラム14に対する編集入力が行われたとき、入力内容を編集中の制御プログラム14に反映させるとともに表示画面を更新する。
シミュレーション部60は、制御プログラム14を仮想的に実行することができる。図3に従って説明すると、シミュレーション部60は、開発装置5内にハードウェア120を仮想的に生成する。そして、シミュレーション部60は、仮想的なハードウェア120上でOS110を実行し、OS110によるタスク管理の下でタスク100a〜100eを生成し実行する。タスク100は、図5に説明した構成を有する。各タスク100は、履歴記憶部106に各種履歴を記憶する。
表示・編集部57は、イベント優先度設定部58と、履歴表示部59とを備える。
イベント優先度設定部58は、イベント優先度を設定するための設定画面を編集画面に表示することができる。図14は、設定画面の一例を示す図である。図示するように、編集画面61には、設定画面62が表示されている。設定画面62は、図7に示す優先度設定テーブル108bをグラフィカルに表示する。ユーザは、ポインタ63を用いてテーブル内の任意の箇所を指定し、指定した箇所に数値入力を行うことで、イベント毎および制御状態毎のイベント優先度、時間条件、および実行回数条件を設定することができる。イベントの種類および制御状態の種類は、追加したり削除したりすることが可能である。イベント優先度設定部58は、設定画面62を介して入力された内容を受け付ける。そして、イベント優先度設定部58は、入力された内容を整えて制御プログラム14に埋め込むことができる。制御プログラム14は、例えば、実行されたとき、イベント優先度設定部58によって埋め込まれたイベント優先度を優先度設定テーブル108b、108d、108eとして各タスク100に保持させる。
履歴表示部59は、シミュレーション部60が制御プログラム14を仮想的に実行した際、各タスク100の履歴記憶部106から各種履歴を収集する。そして、履歴表示部59は、収集した各種履歴を編集画面61上に表示することができる。ユーザは、編集画面61に表示された各種履歴を参照しながら、設定画面62を介してイベント優先度を調整することが可能となる。
このように、本発明の実施の形態3によれば、開発装置5は、イベント優先度を入力することが可能な設定画面62を表示装置55に表示し、入力されたイベント優先度を制御プログラム14に設定することができる。これにより、ユーザは、イベント毎のイベント優先度を簡単に設定することが可能となる。
また、開発装置5は、制御プログラム14を仮想的に実行し、イベント処理の実行履歴を表示装置55に表示することができる。これにより、ユーザは、実行履歴に基づいてイベント優先度を細かく調整することが可能となる。
1 制御装置、2 センサ、3 駆動装置、4 被制御システム、5 開発装置、10,50 演算装置、11,51 主記憶装置、12,52 補助記憶装置、13,53 I/O、14 制御プログラム、54 入力装置、55 表示装置、56 開発プログラム、57 表示・編集部、58 イベント優先度設定部、59 履歴表示部、60 シミュレーション部、61 編集画面、62 設定画面、63 ポインタ、100,100a〜100e タスク、101 イベント管理部、101a〜101e イベント、102 入力部、103 出力部、104 イベント記憶部、105 処理実行部、106 履歴記憶部、107 状態管理部、108 設定記憶部、108a イベント処理テーブル、108b,108d,108e 優先度設定テーブル、108c 実行可否設定情報、109 優先度判定部、120 ハードウェア。
上述した課題を解決し、目的を達成するために、本発明は、制御プログラムを記憶する記憶装置と、イベントに応じた処理を実行する夫々タスク優先度が設定される複数のタスク、および、前記複数のタスクの夫々をタスク優先度に基づいて実行状態に状態遷移させるタスク管理を、前記制御プログラムに基づいて実現する演算装置と、を備え、前記イベントはイベント優先度が予め設定され、前記複数のタスクの一は、複数のイベントの入力を受け付け可能であって、複数のイベントが入力された場合、自タスクが実行状態である際に、前記入力された各イベントに応じた各処理を前記入力された各イベントのイベント優先度に基づく順番で実行する、ことを特徴とする。
上述した課題を解決し、目的を達成するために、本発明は、制御プログラムを記憶する記憶装置と、夫々1以上のイベントの入力を受け付け可能であり、入力されたイベントに応じた処理を実行する夫々タスク優先度が設定される複数のタスク、および、前記複数のタスクのうちの実行可能状態のタスクが複数存在するとき、前記複数の実行可能状態のタスクのうちの実行状態に遷移させるタスクをタスク優先度に基づいて選択し、前記選択したタスクを実行可能状態から実行状態に状態遷移させるタスク管理を、前記制御プログラムに基づいて実現する演算装置と、を備え、各イベントはタスク優先度と異なるイベント優先度が予め設定され、前記複数のタスクの一は、自タスクが実行状態でなくかつ自タスクの実行対象のイベントが入力されたとき、実行可能状態に状態遷移し、自タスクの実行対象の複数のイベントが入力されかつ自タスクが実行状態である際に、前記入力された各イベントに応じた各処理を前記入力された各イベントのイベント優先度に基づく順番で実行する、ことを特徴とする。
続いて、優先度判定部109は、履歴記憶部106に格納されている受信履歴を参照することによって、イベントを受信してからの経過時間が時間条件に設定されたしきい値を越えているか否かを判定する(S31)。なお、時間条件が設定されていない場合には、S31の動作はスキップされる。イベントを受信してからの経過時間が時間条件に設定されたしきい値を越えていない場合(S31、No)、優先度判定部109は、履歴記憶部106に格納されている実行履歴を参照することによって、イベント処理の実行回数が実行回数条件に設定されたしきい値を越えているか否かを判定する(S32)。なお、実行回数条件が設定されていない場合には、S32の動作はスキップされる。
例えばPLCにおいては、制御プログラムはユーザプログラムを含む。ユーザプログラムは、制御装置1においてサイクリックに実行される。ユーザプログラムの実行結果の出力とユーザプログラムへの入力とがI/O13を介して、制御装置1と被制御システム4との間でサイクリックに伝送される。I/O13を介して情報をサイクリックに伝送するイベント処理が伝送のエラー処理よりも高いイベント優先度が設定されることにより、I/O13を介して情報をサイクリックに伝送するイベント処理を先に実行することが可能となる。
実施の形態3.
図12は、開発装置5のハードウェア構成例を示す図である。開発装置5は、演算装置50、主記憶装置51、補助記憶装置52、I/O53、入力装置54、および表示装置55を備える。演算装置50、主記憶装置51、補助記憶装置52、I/O53、入力装置54、および表示装置55は互いにバスで接続される。
図12は、開発装置5のハードウェア構成例を示す図である。開発装置5は、演算装置50、主記憶装置51、補助記憶装置52、I/O53、入力装置54、および表示装置55を備える。演算装置50、主記憶装置51、補助記憶装置52、I/O53、入力装置54、および表示装置55は互いにバスで接続される。
Claims (12)
- 制御プログラムを記憶する記憶装置と、
イベントに応じた処理を実行する夫々タスク優先度が設定される複数のタスク、および、前記複数のタスクの夫々をタスク優先度に基づいて実行状態に状態遷移させるタスク管理を、前記制御プログラムに基づいて実現する演算装置と、
を備え、
前記イベントはイベント優先度が予め設定され、
各タスクは、複数のイベントが入力された場合、自タスクが実行状態である際に、前記入力された各イベントに応じた各処理を前記入力された各イベントのイベント優先度に基づく順番で実行する、
ことを特徴とする制御装置。 - イベント毎および制御状態毎にイベント優先度が予め設定され、
各タスクは、自タスクの制御状態と、前記入力された各イベントと、に基づいて前記入力された各イベントのイベント優先度を特定する、
ことを特徴とする請求項1に記載の制御装置。 - イベント毎および制御状態毎に実行対象の処理が予め設定され、
各タスクは、自タスクの制御状態と、前記入力された各イベントと、に基づいて前記入力された各イベントに応じた処理を特定する、
ことを特徴とする請求項2に記載の制御装置。 - 補正条件が予め設定され、
各タスクは、前記補正条件が満たされているか否かに基づいて前記入力された各イベントのイベント優先度を補正したり補正しなかったりする、
ことを特徴とする請求項1から請求項3の何れか一項に記載の制御装置。 - 前記補正条件は、各イベントが入力されてからの経過時間の判定、または各イベントに応じた処理の実行回数の判定を含む、
ことを特徴とする請求項4に記載の制御装置。 - 各タスクは、
イベント毎にイベント優先度が対応付けられる優先度情報を記憶し、
前記優先度情報に基づいて前記入力された各イベントのイベント優先度を特定する、
ことを特徴とする請求項1から請求項3の何れか一項に記載の制御装置。 - 各タスクは、前記優先度情報を複数記憶するとともに前記優先度情報の切り替え条件を記憶し、前記複数の優先度情報のうちの各イベントのイベント優先度を特定するために使用する優先度情報を前記切り替え条件に基づいて選択する、
ことを特徴とする請求項6に記載の制御装置。 - 前記切り替え条件は、時刻の判定を含む、
ことを特徴とする請求項7に記載の制御装置。 - 請求項1から請求項8の何れか一項に記載の制御装置が備える前記記憶装置に記憶される前記制御プログラムの開発を支援する開発装置であって、
表示装置と、
イベント毎にイベント優先度の入力を受け付ける設定画面を前記表示装置に表示し、前記設定画面を介して入力されたイベント毎のイベント優先度を前記制御プログラムに設定する、イベント優先度設定部と、
を備える、
ことを特徴とする開発装置。 - 各タスクは、処理の実行履歴を記憶し、
前記制御プログラムを仮想的に実行するシミュレーション部と、
前記シミュレーション部が前記制御プログラムを仮想的に実行した後、各タスクから処理の実行履歴を収集して前記表示装置に表示する履歴表示部と、
をさらに備えることを特徴とする請求項9に記載の開発装置。 - 請求項1から請求項8の何れか一項に記載の制御装置が備える前記記憶装置に記憶される前記制御プログラムの開発の支援をコンピュータに実行させる開発プログラムであって、
前記コンピュータに、
イベント毎にイベント優先度の入力を受け付ける設定画面を表示装置に表示するステップと、
前記設定画面を介してイベント毎のイベント優先度の入力を受け付けるステップと、
前記受け付けたイベント毎のイベント優先度を前記制御プログラムに設定するステップと、
を実行させることを特徴とする開発プログラム。 - 各タスクは、処理の実行履歴を記憶し、
前記コンピュータに、
前記制御プログラムを仮想的に実行するステップと、
前記制御プログラムを仮想的に実行した後、各タスクから処理の実行履歴を収集するステップと、
前記収集した処理の実行履歴を前記表示装置に表示するステップと、
をさらに実行させることを特徴とする請求項11に記載の開発プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/050065 WO2015104790A1 (ja) | 2014-01-07 | 2014-01-07 | 制御装置、開発装置、および開発プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5669987B1 JP5669987B1 (ja) | 2015-02-18 |
JPWO2015104790A1 true JPWO2015104790A1 (ja) | 2017-03-23 |
Family
ID=52573829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014527414A Expired - Fee Related JP5669987B1 (ja) | 2014-01-07 | 2014-01-07 | 制御装置、開発装置、および開発プログラム |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP5669987B1 (ja) |
CN (1) | CN105900025A (ja) |
TW (1) | TWI534569B (ja) |
WO (1) | WO2015104790A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6926443B2 (ja) * | 2016-11-01 | 2021-08-25 | ヤマハ株式会社 | 情報表示装置、情報表示方法およびプログラム |
JP6406466B1 (ja) * | 2017-04-07 | 2018-10-17 | オムロン株式会社 | 制御装置、制御方法および制御プログラム |
CN111630493A (zh) * | 2017-09-26 | 2020-09-04 | 深圳传音通讯有限公司 | 终端智能控制方法、装置、设备及计算机可读存储介质 |
JP7277292B2 (ja) * | 2019-07-08 | 2023-05-18 | ファナック株式会社 | Plc装置 |
CN111698135B (zh) * | 2020-06-12 | 2022-03-29 | 宁波奥克斯电气股份有限公司 | 空调网络控制方法、装置、网络互连设备及存储介质 |
CN112638144B (zh) * | 2020-12-21 | 2022-03-22 | 合肥安迅精密技术有限公司 | 一种采用层次状态机的贴片机控制方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002099434A (ja) * | 2000-09-25 | 2002-04-05 | Matsushita Electric Ind Co Ltd | 制御装置 |
JP3578082B2 (ja) * | 2000-12-20 | 2004-10-20 | 株式会社デンソー | 処理実行装置及び記録媒体 |
JP5691616B2 (ja) * | 2011-02-21 | 2015-04-01 | 株式会社デンソー | 制御装置 |
GB2489399A (en) * | 2011-03-21 | 2012-10-03 | Sony Corp | Suppression of further notifications during initial notification handling and automatic recording of parallel video/audio upon notification display |
CN103399798A (zh) * | 2013-07-29 | 2013-11-20 | 深圳市汇川控制技术有限公司 | Plc的多任务控制方法和装置 |
-
2014
- 2014-01-07 JP JP2014527414A patent/JP5669987B1/ja not_active Expired - Fee Related
- 2014-01-07 WO PCT/JP2014/050065 patent/WO2015104790A1/ja active Application Filing
- 2014-01-07 CN CN201480072488.7A patent/CN105900025A/zh active Pending
- 2014-05-23 TW TW103118030A patent/TWI534569B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW201527912A (zh) | 2015-07-16 |
TWI534569B (zh) | 2016-05-21 |
CN105900025A (zh) | 2016-08-24 |
WO2015104790A1 (ja) | 2015-07-16 |
JP5669987B1 (ja) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5669987B1 (ja) | 制御装置、開発装置、および開発プログラム | |
KR102428091B1 (ko) | 키 밸류 장치를 위한 애플리케이션 인식 입출력 완료 모드 변환기의 방법 | |
EP3074826B1 (en) | Offloading human-machine-interaction tasks | |
TW201602908A (zh) | 使用選擇性任務調變之熱減輕 | |
JP2015176191A (ja) | コントローラ | |
JPWO2007114059A1 (ja) | データ処理装置 | |
TW201816598A (zh) | 任務切換方法和相關裝置 | |
US11886170B2 (en) | Control system, setting device and setting program | |
CN104348996A (zh) | 图像切换装置、图像切换系统以及图像切换方法 | |
WO2019000669A1 (zh) | 工作模式的切换方法及装置、镜面显示设备及存储介质 | |
US10802470B2 (en) | Control system | |
JP2002318780A (ja) | リアルタイム制御システム | |
CN111782409B (zh) | 任务处理、风险识别任务处理方法、装置及电子设备 | |
JP2008282221A (ja) | 設備監視装置、情報処理装置及びプログラム | |
JP5844013B1 (ja) | 機能ユニット、アナログ入力ユニット、プログラマブルコントローラシステム | |
JP6396084B2 (ja) | エンジニアリング装置、エンジニアリングシステム、およびダウンロード処理方法 | |
JPWO2016125270A1 (ja) | 空気調和システム | |
JP2016153986A (ja) | 計算機資源使用制御装置 | |
JP2020198674A (ja) | スレーブユニット、及びサーボ駆動システム | |
JP2020034239A (ja) | 空調システム | |
WO2014125580A1 (ja) | 機器管理装置、周波数制御方法及びプログラム | |
JP2017177227A (ja) | 産業用ロボットシステム | |
JP6373236B2 (ja) | 計算機 | |
CN114398159A (zh) | 基于计算引擎应用的数据处理方法、装置及电子设备 | |
CN113934731A (zh) | 任务执行方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5669987 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |