JP7067406B2 - 制御システム、制御装置および制御方法 - Google Patents

制御システム、制御装置および制御方法 Download PDF

Info

Publication number
JP7067406B2
JP7067406B2 JP2018193148A JP2018193148A JP7067406B2 JP 7067406 B2 JP7067406 B2 JP 7067406B2 JP 2018193148 A JP2018193148 A JP 2018193148A JP 2018193148 A JP2018193148 A JP 2018193148A JP 7067406 B2 JP7067406 B2 JP 7067406B2
Authority
JP
Japan
Prior art keywords
program
execution
time
processor
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018193148A
Other languages
English (en)
Other versions
JP2020061055A (ja
JP2020061055A5 (ja
Inventor
拓 大谷
圭 安田
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.)
Omron Corp
Original Assignee
Omron Corp
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 Omron Corp filed Critical Omron Corp
Priority to JP2018193148A priority Critical patent/JP7067406B2/ja
Publication of JP2020061055A publication Critical patent/JP2020061055A/ja
Publication of JP2020061055A5 publication Critical patent/JP2020061055A5/ja
Application granted granted Critical
Publication of JP7067406B2 publication Critical patent/JP7067406B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、優先度の異なる複数のプログラムを実行する制御システム、制御装置および制御方法に関する。
様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。近年の情報通信技術(ICT:Information and Communication Technology)の発展に伴って、このようなFA分野における制御装置においても、従来のシーケンスプログラムだけではなく、各種のアプリケーションプログラムが実行されるようになっている。
例えば、特開2012-194662号公報(特許文献1)は、第1のユーザプログラム実行サイクルで、ユーザプログラムおよびモーション演算プロセッサを繰返し実行する構成を開示する。
特開2012-194662号公報
特開2012-194662号公報(特許文献1)では、ユーザプログラムは、モーション制御サイクルで繰返し実行される高優先ユーザプログラムと、モーション制御サイクルの周期の整数倍で繰返し実行される低優先ユーザプログラムとに分類される。低優先ユーザプログラムとしては、複数のプログラムが含まれることがあり、これらのプログラムが予め定められた順序で実行されることになる。
しかしながら、低優先ユーザプログラムよりもさらに優先度の低いシステムサービスとして実行されるプログラムの高度化および複雑化に伴って、ロボット言語やG言語などのインタプリタ処理やデータベースにデータを送信する処理などを実行するための時間を十分に確保できないという新たな課題が生じるようになってきた。
本技術は、制御装置で優先度の異なる複数のプログラムを実行させるにあたって、相対的に優先度の低いプログラムの実行状況も適切に評価できる仕組みを提供することを目的とする。
本開示の一例の制御システムは、制御対象を制御するための制御装置を備える。制御装置は、プロセッサと、プロセッサによって定周期で繰り返し実行される第1のプログラムと、第1のプログラムより実行の優先度が低い第2のプログラムと、第2のプログラムより実行の優先度が低い第3のプログラムと、プロセッサに実行させるプログラムを管理するスケジューラプログラムとを含む。スケジューラプログラムは、第1のプログラムの実行を妨げないように、プロセッサの空き時間に、第2のプログラムおよび第3のプログラムをプロセッサに実行させるための命令と、第2のプログラムの実行状況を監視するための命令とを含む。制御システムは、さらに、スケジューラプログラムによって監視された実行状況から得られる状況情報を表示させるための表示手段を備える。
この開示によれば、ユーザは、表示された状況情報を確認することにより、第1のプログラムよりも優先度の低い第2のプログラムの実行状況を適切に評価できる。すなわち、制御装置で優先度の異なる複数のプログラムを実行させるにあたって、相対的に優先度の低い第2のプログラムの実行状況も適切に評価できる。
上述の開示において、スケジューラプログラムは、予め設定された周期ごとに、第2のプログラムを実行させるための時間として、予め設定された割合の時間を確保するための命令を含む。状況情報は、予め設定された周期においてプロセッサが第2のプログラムを実行した時間を示す実行時間情報を含む。
この開示によれば、ユーザは、実行時間情報を確認することにより、第2のプログラムに対して予め設定された周期および予め設定された割合を適宜見直すことができる。
上述の開示において、状況情報は、予め設定された周期においてプロセッサが第2のプログラムを実行した回数を示す回数情報をさらに含む。
この開示によれば、ユーザは、回数情報を確認することにより、第2のプログラムに対して予め設定された周期を適宜見直すことができる。
上述の開示において、第2のプログラムは複数のプログラムを含む。実行周期は、複数のプログラムの各々に対して予め設定される。状況情報は、複数のプログラムの各々に対応する実行時間情報を含む。
この開示によれば、ユーザは、第2のプログラムに含まれる複数のプログラムの各々について、実行時間情報を確認することにより、当該プログラムに対して予め設定された周期および予め設定された割合を適宜見直すことができる。
上述の開示において、状況情報は、制御装置の予め定められた動作時間に対する、第1のプログラムおよび第2のプログラムの少なくとも一方が実行されていない時間の割合を示す余裕度情報をさらに含む。
この開示によれば、ユーザは、余裕度情報を確認することにより、プロセッサの余裕度を把握できる。ユーザは、当該余裕度に基づいて、第3のプログラムを適宜見直したり、第2のプログラムについて設定した周期および割合を適宜見直したりできる。
上述の開示において、第2のプログラムは複数のプログラムを含む。スケジューラプログラムは、複数のプログラムの各々について、予め設定された周期ごとに、当該プログラムを実行させるための時間として、予め設定された割合の時間を確保するための命令と、予め設定された位相差だけ、複数のプログラムに対応する予め設定された周期の位相をずらす命令とを含む。状況情報は、複数のプログラムの各々が実行されたタイミングを示すタイミング情報を含む。
この開示によれば、ユーザは、タイミング情報を確認することにより、第2のプログラムに含まれる複数のプログラムの各々について設定した周期および位相差を適宜見直すことができる。
本開示の一例によれば、表示装置に接続された、制御対象を制御するための制御装置は、プロセッサと、プロセッサによって定周期で繰り返し実行される第1のプログラムと、第1のプログラムより実行の優先度が低い第2のプログラムと、第2のプログラムより実行の優先度が低い第3のプログラムと、プロセッサに実行させるプログラムを管理するスケジューラプログラムとを備える。スケジューラプログラムは、第1のプログラムの実行を妨げないように、プロセッサの空き時間に、第2のプログラムおよび第3のプログラムをプロセッサに実行させるための命令と、第2のプログラムの実行状況を監視するための命令とを含む。スケジューラプログラムによって監視された実行状況から得られる状況情報が表示装置に表示される。
本開示の一例によれば、制御対象を制御するための制御装置は、プロセッサと、プロセッサによって定周期で繰り返し実行される第1のプログラムと、第1のプログラムより実行の優先度が低い第2のプログラムと、第2のプログラムより実行の優先度が低い第3のプログラムとを含む。制御装置を備える制御システムの制御方法は、第1のプログラムの実行を妨げないように、プロセッサの空き時間に応じて、第2のプログラムおよび第3のプログラムをプロセッサに実行させるステップと、第2のプログラムの実行状況を監視するステップと、監視された実行状況から得られる状況情報を表示させるステップとを備える。
これらの開示によっても、制御装置で優先度の異なる複数のプログラムを実行させるにあたって、第1のプログラムよりも優先度の低い第2のプログラムの実行状況も適切に評価できる。
本開示によれば、制御装置で優先度の異なる複数のプログラムを実行させるにあたって、相対的に優先度の低いプログラムの実行状況も適切に評価できる。
本実施の形態に係る制御装置1におけるプログラムの実行スケジュールの一例を示す模式図である。 状況情報を含むモニタ画面の一例を示す図である。 本実施の形態に係る制御システムSYSの構成例を示す模式図である。 本実施の形態に係る制御装置1を構成する演算ユニット13のハードウェア構成の一例を示す模式図である。 本実施の形態に係る制御システムSYSを構成するサポート装置8のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御装置1を構成する演算ユニット13のソフトウェア構成の一例を示す模式図である。 本実施の形態に係る制御システムの概略処理のフローチャートである。 本実施の形態に係るシステムサービスの実行周期と実行時間割合とを設定するためのユーザインターフェイスを示す図である。 本実施の形態に係る演算ユニット13における通知機能36および監視機能2122を説明するための図である。 タスクの実行状況の一例を示す図である。 状況情報を含むモニタ画面の別の例を示す図である。
以下、図面を参照しつつ、本発明に従う実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
§1 適用例
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る制御装置1におけるプログラムの実行スケジュールの一例を示す模式図である。図1を参照して、制御装置1は、任意の制御対象を制御するためのコンピュータであり、1または複数のプロセッサを有している。
図1に示す例の制御装置1では、定周期タスク20と、定周期タスク20以外のシステムサービスタスク30とがシーケンシャルに実行される。
本明細書において、「タスク」は、コンピューティング資源を割当てる制御の対象となる基本単位であり、各タスクに、実行させるべき1または複数のプログラムが設定される。すなわち、いずれかのタスクに対してコンピューティング資源が割当てられ、当該タスクが実行できる状態になると、当該タスクに設定されている1または複数のプログラムの実行が開始または再開されることになる。
定周期タスク20は、定周期で繰り返し実行すべきタスクであり、実行周期が保証される。定周期タスク20には、制御装置1のプロセッサで繰返し実行される最も実行の優先度(以下、単に「優先度」とも称す。)の高いプログラムが設定される。定周期タスク20は、例えば、入出力データの更新処理(以下、「IOリフレッシュ」とも称す。)および最優先で実行されるべきシーケンス演算処理などを含む。定周期タスク20が定周期実行されるように、定周期タスク20の処理完了に要する時間は、実行周期の長さ以下になるように保証される。
図1に示す例では、定周期タスク20は、制御周期ごとに繰り返し実行されるプライマリ定周期タスク22と、それ以外の定周期タスク24とを含む。定周期タスク24は、一般に制御周期の2以上の整数倍ごとに繰り返し実行される。
一方、システムサービスタスク30は、定周期タスク20より実行の優先度が低いタスクであり、要求があった場合に実行される。本実施の形態においては、システムサービスタスク30は、定周期タスク20より実行の優先度が低い高優先度システムサービス32と、高優先度システムサービス32よりさらに実行の優先度が低い低優先度システムサービス34とを含む。すなわち、高優先度システムサービス32には、定周期タスク20に設定されるプログラムより優先度が低いプログラムが設定され、低優先度システムサービス34には、高優先度システムサービス32に設定されるプログラムより優先度が低いプログラムが設定される。
制御装置1は、スケジューラプログラムに従って、これらのタスクに設定される各プログラムの実行タイミングを管理する。スケジューラプログラムによるプログラムの実行管理は、適時のタイミングおよび期間で、コンピューティング資源を各プログラムに割当てることで実現できる。
スケジューラプログラムは、定周期タスク20に設定されるプログラムを予め設定された実行周期で繰返し実行させる。
スケジューラプログラムは、定周期タスク20に設定されたプログラムの実行を妨げないように、定周期タスク20を実行していないプロセッサの空き時間に、システムサービスタスク30に設定されるプログラム(高優先度システムサービス32および低優先度システムサービス34にそれぞれ設定されているプログラム)を実行させる。スケジューラプログラムは、予め設定された実行周期(「実行時間間隔」ともいう)ごとに、システムサービスタスク30を実行させるための時間として、予め設定された実行時間割合の時間を確保しておく。これにより、システムサービスタスク30の実行要求があった場合に、スケジューラプログラムは、確保した時間にシステムサービスタスク30を実行させることができる。実行周期および実行時間割合は、システムサービス毎に設定される。
システムサービスタスク30は、定周期タスク20を実行するために使用されるコンピューティング資源を用いて実行される。そのため、定周期タスク20に設定されたプログラムを実行している間、システムサービスタスク30に設定されたプログラムを実行できない。その結果、システムサービスタスク30の実行周期は必ずしも保証されない。また、予め設定された実行周期および実行時間割合に基づいて確保された時間よりも空き時間が長い場合には、当該空き時間に他のシステムサービスタスクに対してコンピュータ資源が割り当てられる。
本実施の形態に係る制御装置1は、システムサービスタスク30の高優先度システムサービス32に設定されているプログラムの実行状況を監視する。当該実行状況から得られる状況情報は、制御装置1に接続されたサポート装置などに表示される。これにより、ユーザは、高優先度システムサービス32に設定されたプログラムの実行状況を確認することにより、当該高優先度システムサービス32に対して設定した実行周期および実行時間割合を適宜見直すことができる。
図2は、状況情報を含むモニタ画面の一例を示す図である。図2に示すモニタ画面例では、高優先度システムサービス32に設定されたプログラムについて、設定された実行周期(図中では「設定周期」と記載)および実行時間割合(図中では「設定割合」と記載)とともに、実行周期における実行時間の平均値および最大値とが表示されている。
§2 構成例
<2-1.制御システムの構成>
まず、本実施の形態に係る制御システムSYSの構成について説明する。
図3は、本実施の形態に係る制御システムSYSの構成例を示す模式図である。図3を参照して、制御システムSYSは、制御装置1と、制御装置1とフィールドネットワーク2を介して接続されるサーボモータドライバ3およびリモートIOターミナル5と、フィールド機器である検出スイッチ6およびリレー7とを含む。制御装置1には、接続ケーブル10などを介してサポート装置8が接続される。
制御装置1は、PLCなどの、一種のコンピュータとして具現化されてもよい。制御装置1は、主たる演算処理を実行する演算ユニット13と、1つ以上のIOユニット14と、特殊ユニット15とを含む。これらのユニットは、PLCシステムバス11を介して、データを互いに遣り取りできるように構成される。これらのユニットには、電源ユニット12によって適切な電圧の電源が供給される。
IOユニット14は、一般的な入出力処理に関するユニットであり、オン/オフといった2値化されたデータの入出力を司る。具体的には、IOユニット14は、検出スイッチ6などのセンサが何らかの対象物を検出している状態(オン)および何らの対象物も検出していない状態(オフ)のいずれであるかという情報を収集する。また、IOユニット14は、リレー7やアクチュエータといった出力先に対して、活性化するための指令(オン)および不活性化するための指令(オフ)のいずれかを出力することもある。
特殊ユニット15は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、IOユニット14ではサポートしない機能を有する。
フィールドネットワーク2は、演算ユニット13と遣り取りされる各種データを伝送する。フィールドネットワーク2としては、典型的には、各種の産業用イーサネット(登録商標)を用いることができる。産業用イーサネット(登録商標)としては、例えば、EtherCAT(登録商標)、Profinet IRT、MECHATROLINK(登録商標)-III、Powerlink、SERCOS(登録商標)-III、CIP Motionなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。例えば、モーション制御を行わない場合であれば、DeviceNet、CompoNet/IP(登録商標)などを用いてもよい。
図3には、PLCシステムバス11およびフィールドネットワーク2の両方を有する制御装置1を例示するが、一方のみを搭載するシステム構成を採用することもできる。
サーボモータドライバ3は、フィールドネットワーク2を介して演算ユニット13と接続されるとともに、演算ユニット13からの指令値に従ってサーボモータ4を駆動する。具体的には、サーボモータドライバ3は、制御装置1から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボモータドライバ3は、サーボモータ4の軸に接続されている位置センサ(ロータリーエンコーダ)やトルクセンサといった検出器から、位置、速度、トルクといったサーボモータ4の動作に係る実測値を取得してサーボモータ4を駆動するための電流を調整する。なお、サーボモータドライバ3は、サーボモータアンプと称されることもある。
図3に示す制御システムSYSのフィールドネットワーク2には、さらに、リモートIOターミナル5が接続されている。リモートIOターミナル5は、基本的には、IOユニット14と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートIOターミナル5は、フィールドネットワーク2でのデータ伝送に係る処理を行うための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。
サポート装置8は、制御装置1が対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置8は、制御装置1で実行されるタスクに関する設定環境、制御装置1におけるタスクの実行状況のモニタ画面、などを提供する。
<2-2.演算ユニットのハードウェア構成>
次に、図3に示す制御装置1を構成する演算ユニット13のハードウェア構成について説明する。図4は、本実施の形態に係る制御装置1を構成する演算ユニット13のハードウェア構成の一例を示す模式図である。
図4を参照して、演算ユニット13は、プロセッサ100と、チップセット102と、メインメモリ104と、不揮発性メモリ106と、システムタイマ108と、PLCシステムバスコントローラ120と、フィールドネットワークコントローラ140と、USBコネクタ110とを含む。チップセット102と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
プロセッサ100およびチップセット102は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ100は、チップセット102から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット102は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ100に必要な命令コードを生成する。さらに、チップセット102は、プロセッサ100での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
図4には、説明の便宜上、1つのプロセッサ100が描かれているが、複数のプロセッサ100を配置してもよいし、1つのプロセッサ100に複数のコアが実装されていてもよい。プロセッサ100の性能や構成は、要求されるコンピューティング資源に応じて決定されてもよい。
演算ユニット13は、記憶手段として、メインメモリ104および不揮発性メモリ106を有する。
メインメモリ104は、揮発性の記憶領域(RAM)であり、演算ユニット13への電源投入後にプロセッサ100で実行されるべき各種プログラムを保持する。また、メインメモリ104は、プロセッサ100による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ104としては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といったデバイスが用いられる。
不揮発性メモリ106は、リアルタイムOS(Operating System)、制御装置1のシステムプログラム、ユーザプログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、プロセッサ100がアクセスできるようにメインメモリ104にコピーされる。このような不揮発性メモリ106としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体などを用いてもよい。
システムタイマ108は、一定周期毎に割り込み信号を発生してプロセッサ100に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、OS(Operating System)やBIOS(Basic Input Output System)などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ108が発生する割り込み信号を利用して、制御周期毎の制御動作が実現される。
演算ユニット13は、通信回路として、PLCシステムバスコントローラ120およびフィールドネットワークコントローラ140を有する。これらの通信回路は、任意の指令値といった出力データを送信するとともに、任意のセンサから得られた検出値といった入力データを受信する。
PLCシステムバスコントローラ120は、PLCシステムバス11を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ120は、DMA(Dynamic Memory Access)制御回路122と、PLCシステムバス制御回路124と、バッファメモリ126とを含む。PLCシステムバスコントローラ120は、PLCシステムバスコネクタ130を介してPLCシステムバス11と内部的に接続される。
バッファメモリ126は、PLCシステムバス11を介して他のユニットへ出力されるデータ(出力データ)用の送信バッファ、および、PLCシステムバス11を介して他のユニットから入力されるデータ(入力データ)用の受信バッファとして機能する。DMA制御回路122は、メインメモリ104からバッファメモリ126への出力データの転送、および、バッファメモリ126からメインメモリ104への入力データの転送を行う。PLCシステムバス制御回路124は、PLCシステムバス11に接続される他のユニットとの間で、バッファメモリ126の出力データを送信する処理および入力データを受信してバッファメモリ126に格納する処理を行う。
フィールドネットワークコントローラ140は、フィールドネットワーク2を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ140は、用いられるフィールドネットワーク2の規格に従い、出力データの送信および入力データの受信を制御する。より具体的には、フィールドネットワークコントローラ140は、DMA制御回路142と、フィールドネットワーク制御回路144と、バッファメモリ146とを含む。
バッファメモリ146は、フィールドネットワーク2を介して他の装置などへ出力されるデータ(出力データ)用の送信バッファ、および、フィールドネットワーク2を介して他の装置などから入力されるデータ(入力データ)用の受信バッファとして機能する。DMA制御回路142は、メインメモリ104からバッファメモリ146への出力データの転送、および、バッファメモリ146からメインメモリ104への入力データの転送を行う。フィールドネットワーク制御回路144は、フィールドネットワーク2に接続される他の装置との間で、バッファメモリ146の出力データを送信する処理および入力データを受信してバッファメモリ146に格納する処理を行う。
USBコネクタ110は、サポート装置8と演算ユニット13とを接続するためのインターフェイスである。典型的には、サポート装置8から転送される、演算ユニット13のプロセッサ100で実行可能なプログラムなどは、USBコネクタ110を介して制御装置1に取込まれる。
<2-3.サポート装置のハードウェア構成>
本実施の形態に係るサポート装置8は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いてプログラムを実行することで実現される。
図5は、本実施の形態に係る制御システムSYSを構成するサポート装置8のハードウェア構成例を示すブロック図である。図5を参照して、サポート装置8は、CPUまたはMPUなどのプロセッサ802と、光学ドライブ804と、主記憶装置806と、二次記憶装置808と、USB(Universal Serial Bus)コントローラ812と、入力部816と、表示部818とを含む。これらのコンポーネントはバス820を介して接続される。
プロセッサ802は、二次記憶装置808に格納された各種プログラムを読み出して、主記憶装置806に展開して実行することで、後述するような各種処理を実現する。
二次記憶装置808は、例えば、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などで構成される。二次記憶装置808には、典型的には、ユーザプログラムの作成、タスクに関する設定などを行うための開発プログラム822と、タスクの実行状況を解析する解析ツール827と、監視データ828とが格納される。監視データ828は、タスクの実行状況を解析するために利用可能な情報であり、制御装置1においてタスクが実行された場合に収集される。また、二次記憶装置808には、OSおよび他の必要なプログラムが格納されてもよい。
サポート装置8は、光学ドライブ804を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体805(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られて二次記憶装置808などにインストールされてもよい。
サポート装置8で実行される各種プログラムは、コンピュータ読取可能な記録媒体805を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置8が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
USBコントローラ812は、USB接続を介して制御装置1との間のデータの遣り取りを制御する。
入力部816は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。表示部818は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ802からの処理結果などを出力する。
図5には、プロセッサ802がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
<2-4.演算ユニットのソフトウェア構成>
次に、図3に示す制御装置1を構成する演算ユニット13のソフトウェア構成について説明する。図6は、本実施の形態に係る制御装置1を構成する演算ユニット13のソフトウェア構成の一例を示す模式図である。図6には、本実施の形態に係る各種機能を提供するためのソフトウェア群の一例を示す。これらのソフトウェア群に含まれる命令コードは、適切なタイミングで読み出され、演算ユニット13のプロセッサ100によって実行される。
図6を参照して、演算ユニット13で実行されるソフトウェアとしては、基本的には、リアルタイムOS200と、システムプログラム210と、ユーザプログラム234とを含む。
リアルタイムOS200は、演算ユニット13のコンピュータアーキテクチャに応じて設計されており、プロセッサ100がシステムプログラム210およびユーザプログラム234を実行するための基本的な実行環境を提供する。このリアルタイムOSは、典型的には、制御装置のメーカあるいは専門のソフトウェア会社などによって提供される。
システムプログラム210は、制御装置1としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム210は、スケジューラプログラム212と、IO処理プログラム214(入力処理プログラム216および出力処理プログラム218を含む)と、シーケンス命令実行部232と、システムサービスプログラム220とを含む。
ユーザプログラム234は、ユーザにおける制御目的に応じて作成される。すなわち、制御システムSYSを用いて制御する制御対象に応じて、任意に作成されるプログラムである。
ユーザプログラム234は、例えばサポート装置8において生成される。ユーザプログラム234は、サポート装置8から接続ケーブル10を介して演算ユニット13へ転送され、不揮発性メモリ106などに格納される。
ユーザプログラム234は、シーケンス命令およびモーション命令などの命令コードからなるIEC(International Electrotechnical Commission:国際電気標準会議)プログラム236と、モータなどの駆動装置を制御する制御アプリケーションの手順を表現するアプリケーションプログラム238とを含む。
IECプログラム236は、IECによって規定された国際規格IEC61131-3に従って記述された1または複数の命令からなるプログラムを包含する。
アプリケーションプログラム238は、目標軌跡を定義する1または複数のコマンドを含む。アプリケーションプログラム238は、ロボット言語やG言語などのインタプリタ型の言語で書かれたプログラムであってもよい。
シーケンス命令実行部232は、IECプログラム236を実行して指令値を出力する。シーケンス命令実行部232は、IECプログラム236に含まれるシーケンス命令を解釈し、指定されたシーケンス演算(論理演算)を実行する。さらに、シーケンス命令実行部232は、IECプログラム236に含まれるモーション命令に従って指令値を算出する。モーション命令は、1つのコマンドによって複数の制御周期に亘って指令値の算出を定義しており、シーケンス命令実行部232は、このようなモーション命令を解釈して、モーション指令値を制御周期毎に更新する。
システムサービスプログラム220は、図6に個別に示したプログラム以外の、制御装置1の各種機能を実現するためのプログラム群をまとめて示すものである。システムサービスプログラム220は、例えば、外部装置との間でファイルやデータを送受信する処理を実現するプログラム(すなわち、通信処理に係るプログラム)や、異常監視処理や各種解析処理などを実現するプログラムなどが想定される。
本実施の形態に係る演算ユニット13においては、システムサービスプログラム220に含まれるプログラムは、少なくとも2つに優先度が区別されている。図6には、一例として、システムサービスプログラム220は、高優先度システムサービス32に設定される高優先度サービスプログラム222と、低優先度システムサービス34に設定される低優先度サービスプログラム226とを含む。高優先度サービスプログラム222は、低優先度サービスプログラム226に比較して、高い優先度が設定されている。
高優先度サービスプログラム222は、アプリケーションプログラム実行部228を含む。アプリケーションプログラム実行部228は、例えば、アプリケーションプログラム238をインタプリタ方式で実行して、各モータに対する指令値を出力する。
スケジューラプログラム212は、タスク毎に設置された優先度に応じて、各タスクに設定されるプログラムをプロセッサ100に実行させる。すなわち、スケジューラプログラム212は、IO処理プログラム214、制御プログラム230、およびシステムサービスプログラム220について、各実行周期での処理開始および処理中断後の処理再開を制御する。
具体的には、スケジューラプログラム212は、制御機能2120と、監視機能2122とを含む。制御機能2120は、各処理に対してコンピューティング資源を割当てるための制御を司る。監視機能2122は、システムサービスプログラム220に含まれる各プログラムの実行状況を監視する。監視機能2122は、システムサービスプログラム220に含まれる高優先度サービスプログラム222の通知機能プログラム224による通知などに基づいて、各サービスの実行状況を把握する。システムサービスプログラム220に含まれる各プログラムの実行状況の監視については、後に詳述する。
IO処理プログラム214は、演算ユニット13において利用可能なデータ(入力データおよび出力データ)を更新する処理を司る。IO処理プログラム214の入力処理プログラム216は、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140によって受信された入力データを、制御プログラム230が使用するのに適した形式に再配置する。
出力処理プログラム218は、ユーザプログラム234(制御プログラム230)の実行によって生成された出力データを、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140へ転送するのに適した形式に再配置する。PLCシステムバスコントローラ120またはフィールドネットワークコントローラ140が、プロセッサ100からの、送信を実行するための指令を必要とする場合は、出力処理プログラム218がそのような指令を発行する。
なお、プロセッサ100が図6に示されるプログラムを実行することで後述するような機能および処理を実現する実装形態に代えて、その一部または全部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などのハードワイヤードな回路を用いて実装してもよい。
<2-5.制御システムにより実施される処理の概要>
図7は、本実施の形態に係る制御システムの概略処理のフローチャートである。図7を参照して、制御システムSYSにより実施される全体処理は、まず、サポート装置8においてなされる各種設定処理(ステップS1)を含む。当該各種設定の処理は、タスク(定周期タスク20およびシステムサービスタスク30)に関する設定処理を含む。さらに、全体処理は、制御装置1においてなされるタスクの実行処理(ステップS2)およびタスクの実行状況を監視する処理(ステップS3)を含む。さらに、全体処理は、サポート装置8においてなされる、タスクの実行状況から得られる状況情報の表示処理(ステップS4)およびタスクに関する再設定処理(ステップS5)を含む。
なお、図7では、サポート装置8が表示処理および再設定処理(ステップS4,S5)を実行するが、これら処理は制御装置1により実行されてもよい。
<2-6.タスクに関する設定>
ユーザは、サポート装置8によって提供されるユーザインターフェイスを用いて、各タスクに割当てるプログラムを設定または変更することができる。さらに、ユーザは、システムサービスタスクについて、実行周期と実行時間割合とを設定することができる。
図8は、本実施の形態に係るシステムサービスの実行周期と実行時間割合とを設定するためのユーザインターフェイスを示す図である。図8のユーザインターフェイスは、サポート装置8の表示部818の表示画面として提供される。図8には、高優先度システムサービス32の実行周期と実行時間割合とを設定するための画面が示される。
ユーザは、高優先度システムサービス32として複数のタスクを登録することができる。図8に示す例では、「タスクA」と「タスクB」とが高優先度システムサービス32として登録される。高優先度システムサービス32として複数のタスクが登録された場合、当該複数のタスクの各々について、実行周期と実行時間割合とが設定される。さらに,ユーザは、当該複数のタスク間の実行周期の位相差を設定する。実行周期の位相差とは、実行周期の開始タイミングの時間差を示す。ユーザは、当該複数のタスクの任意の1つを基準のタスクとし、当該基準のタスクの実行周期の開始タイミングと、残りのタスクの各々の実行周期の開始タイミングとの時間差を設定する。位相差は、制御周期の整数倍の時間である。
<2-7.優先度に応じた処理>
次に、図1を参照して、本実施の形態に係る演算ユニット13における優先度に応じた処理の一例について説明する。図1を参照して、演算ユニット13においては、実行周期が保証されるプライマリ定周期タスク22および定周期タスク24に加えて、実行周期が必ずしも保証されない高優先度システムサービス32および低優先度システムサービス34とが実行される。
このような定周期実行を実現するにあたって、プロセッサ100が提供可能なコンピューティング資源は、まず、プライマリ定周期タスク22に割当てられ、その後、定周期タスク24に割当てられる。その上で、残ったコンピューティング資源が高優先度システムサービス32および低優先度システムサービス34に割当てられる。なお、コンピューティング資源の割当ては、スケジューラプログラム212により提供されるスケジューラによって管理される。
プライマリ定周期タスク22には、IO処理プログラム214(図6)およびユーザプログラム234(図6)の全部または一部が設定されており、予め設定された制御周期毎に対応する処理が実行される。制御周期は、演算ユニット13において管理される最も短い周期であり、例えば、数100μsから数msの範囲で設定される。すなわち、プライマリ定周期タスク22の実行周期は制御周期と一致しており、制御周期毎にプライマリ定周期タスク22に含まれるプログラム全体が実行される。
一方、定周期タスク24の優先度は、プライマリ定周期タスク22の優先度より低く設定されており、実行周期は保証されるものの、一般的にその実行周期は制御周期の複数倍になっている。例えば、定周期タスク24の実行周期が制御周期の2倍に設定されている場合には、2回分の制御周期の間に、定周期タスク24に設定されたプログラムが一回実行される。
また、システムサービスタスク30には、定時実行性の要求が相対的に低いプログラムが設定される。図1に示す処理例においては、システムサービスタスク30は、高優先度システムサービス32および低優先度システムサービス34を含む。低優先度システムサービス34の優先度は、高優先度システムサービス32の優先度より低い。
例えば、図1に示すような異なる優先度が設定された複数のタスクをシングルコアのプロセッサ100を用いて実行させる場合には、スケジューラプログラム212は、プライマリ定周期タスク22に設定されたプログラムを制御周期毎に繰返し実行させる。さらに、スケジューラプログラム212は、プライマリ定周期タスク22に設定されたプログラムが実行されていない空き時間において、制御周期の複数倍の実行周期毎に定周期タスク24を繰り返し実行させる。
さらに、スケジューラプログラム212は、プライマリ定周期タスク22および定周期タスク24に設定されたプログラムが実行されていない空き時間に、システムサービスタスク30(高優先度システムサービス32および低優先度システムサービス34)を実行させる。
高優先度システムサービス32として登録されるタスクとしては、制御装置1からロボットを制御するためのロボット言語をインタプリタ処理するタスク、加工装置などを制御するためのG言語のインタプリタ処理するタスク、制御装置1からデータベースへデータ送信するタスク、制御装置1における制御動作を視覚化するシミュレータ用のデータを生成するタスクなどが想定される。低優先度システムサービス34として登録されるタスクとしては、HMI(Human Machine Interface)の画面更新を行うためのデータ生成タスクなどが想定される。
スケジューラプログラム212は、定周期タスク20に設定されたプログラムが実行されていない空き時間において、コンピューティング資源を高優先度システムサービス32に割当てるように制御する。スケジューラプログラム212は、設定された実行周期毎に、高優先度システムサービス32を実行させるための時間として、設定された実行時間割合の時間を確保する。
スケジューラプログラム212は、高優先度システムサービス32として複数のタスクが登録された場合、当該複数のタスクの実行周期の位相を設定された位相差だけずらす。すなわち、スケジューラプログラム212は、高優先度システムサービス32として登録された複数のタスクの各々に設定されるプログラムの実行のために確保する時間を、設定された位相差だけずらす。これにより、高優先度システムサービス32として登録された複数のタスクの実行開始タイミングが重なることを防ぐことができる。
さらに、スケジューラプログラム212は、定周期タスク20および高優先度システムサービス32に設定されたプログラムが実行されていない空き時間において、コンピューティング資源を低優先度システムサービス34に割当てるように制御する。スケジューラプログラム212は、設定された実行周期毎に、低優先度システムサービス34を実行させるための時間として、設定された実行時間割合の時間を確保する。
このように、本実施の形態に係る演算ユニット13は、システムサービスタスク30に対するコンピューティング資源割当ての管理機能を有している。
<2-8.高優先度システムサービスの実行状況の監視>
次に、本実施の形態に係る演算ユニット13における、高優先度システムサービス32の実行状況の監視機能について説明する。
図9は、本実施の形態に係る演算ユニット13における通知機能36および監視機能2122を説明するための図である。図9を参照して、高優先度システムサービス32は、通知機能36を有しており、高優先度システムサービス32に含まれる処理の実行開始を監視機能2122へ通知する(開始通知270)とともに、当該処理が完了するとそれを通知する(終了通知272)。このように、高優先度システムサービス32の通知機能36は、自身の処理開始および処理終了を監視機能2122へ通知する。
高優先度システムサービス32として複数のタスクが登録されることもあるので、各タスクを特定するための識別情報を開始通知270および/または終了通知272に組込む。
コンピューティング資源割当ての監視対象とすべき高優先度システムサービス32に含まれる処理に対して、通知機能36を実現するためのAPI(Application Programming Interface)を組込むことで実現してもよい。すなわち、通知機能36を実現するための命令コードは、APIを利用して、高優先度サービスプログラム222の通知機能プログラム224に組込まれてもよい。あるいは、高優先度システムサービス32に含まれる処理の命令コード自体に、通知機能36を実現するための命令コードを直接埋込むようにしてもよい。
監視機能2122は、スケジューラプログラム212の一部またはスケジューラプログラム212の付加機能として実装される。監視機能2122は、通知機能36からの開始通知270および終了通知272に基づいて、高優先度システムサービス32の実行状況(開始時刻および終了時刻)を監視する。スケジューラプログラム212は、プライマリ定周期タスク22および定周期タスク24の実行状況(開始時刻および終了時刻)も管理している。監視機能2122は、これらの実行状況を示すデータを監視データ828として収集し保存する。保存された監視データ828は、サポート装置8に送信され、サポート装置8の二次記憶装置808に格納される。
<2-9.状況情報の表示処理>
図10は、タスクの実行状況の一例を示す図である。図10において、符号「T_k」は、k番目の制御周期を示している。制御周期は1msである。
高優先度システムサービス32として登録された「タスクA」に対して実行周期「3ms」が予め設定されており、実行周期3msごとに、タスクAを実行させるための時間が確保される。図10に示す例では、n番目の制御周期T_nからn+2番目の制御周期T_n+2までの長さ3msの実行周期において、プロセッサ100は、タスクAの実行要求を1回だけ受け、予めタスクA用に確保しておいた時間(制御周期T_nの空き時間)に、タスクAに設定されたプログラムを実行完了している。
次の長さ3msの実行周期(n+3番目の制御周期T_n+3からn+5番目の制御周期T_n+5)では、プロセッサ100は、予めタスクA用に確保しておいた時間(制御周期T_n+3の空き時間)に加えて、制御周期T_n+4の空き時間にも、タスクAに設定されたプログラムを実行している。これは、制御周期T_n+3の空き時間だけではタスクAに設定されたプログラムの実行を完了できないため、当該プログラムの実行が一旦中断され、次の制御周期T_n+4の空き時間に当該プログラムの実行が再開されているためである。なお、タスクAの実行要求を2回受け、制御周期T_n+3,T_n+4の各々の空き時間で、タスクAに設定されたプログラムが実行完了されている場合もあり得る。
高優先度システムサービス32として登録された「タスクB」に対して実行周期「4ms」が予め設定されており、長さ4msの実行周期ごとに、タスクBを実行させるための時間が確保される。図10に示す例では、各実行周期において、プロセッサ100は、タスクBの実行要求を1回だけ受け、予めタスクB用に確保しておいた時間に、タスクBに設定されたプログラムを実行完了している。
低優先度システムサービス34は、プライマリ定周期タスク22、定周期タスク24および高優先度システムサービス32が実行されていない空き時間に実行される。
上述したように、制御装置1のスケジューラプログラム212によって収集された監視データ828がサポート装置8の二次記憶装置808に格納される。監視データ828は、プライマリ定周期タスク22、定周期タスク24および高優先度システムサービス32の実行状況(開始時刻および終了時刻)を示す。
サポート装置8のプロセッサ802は、解析ツール827を実行することにより、監視データ828から得られる状況情報を含むモニタ画面を表示部818に表示させる。
状況情報は、例えば、高優先度システムサービス32として登録された各タスクについて、実行周期においてプロセッサ100が当該タスクに設定されたプログラムを実行した時間を示す実行時間情報を含む。図10に示す例では、プロセッサ802は、「(1)実績」で示されるように、タスクAについて、設定された実行周期内にタスクAに設定されたプログラムが実行された時間を実行時間情報として算出する。
状況情報は、例えば、高優先度システムサービス32に登録された各タスクについて、実行周期において当該タスクに設定されたプログラムの実行回数を示す回数情報(頻度情報)を含んでもよい。プロセッサ802は、タスクに設定されたプログラムの実行の開始時刻から終了時刻までを1回として、当該プログラムの実行回数をカウントすることにより、回数情報を算出すればよい。
状況情報は、例えば、制御装置1の予め定められた動作時間に対する、定周期タスク20および高優先度システムサービス32の少なくとも一方が実行されていない時間の割合を示す情報(以下、「余裕度情報」という)を含んでもよい。動作時間として、システムサービスタスク30に対して設定される最も長い実行周期以上の時間が設定される。プロセッサ802は、動作時間から、定周期タスク20および高優先度システムサービス32の少なくとも一方が実行された合計時間を差し引いた空き時間を算出する。プロセッサ802は、算出した空き時間を動作時間で除算することにより余裕度情報を生成すればよい。図10の「(2)余裕度」に示されるように、余裕度情報は、低優先度システムサービス34にコンピュータ資源を割り当て可能な時間の割合を示す。
図11は、状況情報を含むモニタ画面の別の例を示す図である。図11に示す例のモニタ画面80は、プライマリ定周期タスク22の実行状況を示す領域81と、定周期タスク24の実行状況を示す領域82と、高優先度システムサービス32の実行状況を示す領域83と、余裕度情報を示す領域84とを含む。
領域81には、プライマリ定周期タスク22の実行時間の代表値(平均、最大)、プライマリ定周期タスク22の実行周期(図では「設定周期」と記載)、プライマリ定周期タスク22の実行回数、プライマリ定周期タスク22の処理の内訳などの情報が表示される。これらの情報は、監視データ828から生成される。
領域82には、定周期タスク24の実行時間の代表値(平均、最大)、定周期タスク24の実行周期(図では「設定周期」と記載)、定周期タスク24の実行回数、定周期タスク24の処理の内訳が表示される。これらの情報は、監視データ828から生成される。
領域83には、高優先度システムサービス32として登録されたタスク(タスクAおよびタスクB)ごとの実行状況を示す状況情報が表示される。図11に示す例では、領域83は、タスクAの実行状況を示すサブ領域85と、タスクBの実行状況を示すサブ領域86とを含む。
サブ領域85には、タスクAの実行時間情報である、タスクAに対して設定された実行周期におけるタスクAの実行時間の代表値(平均、最大)が表示される。さらに、サブ領域85には、タスクAに対して設定された実行周期(図では「設定周期」と記載)およびタスクAの実行回数(累積)も表示される。これらの情報は、監視データ828から生成される。
サブ領域86には、タスクBの実行時間情報である、タスクBに対して設定された実行周期におけるタスクBの実行時間の代表値(平均、最大)が表示される。さらに、サブ領域86には、タスクBに対して設定された実行周期(図では「設定周期」と記載)およびタスクBの実行回数(累積)も表示される。これらの情報は、監視データ828から生成される。
領域84には、余裕度情報が表示される。余裕度情報は、特定の周期幅(例えば10ms)における余裕度を示す。特定の周期幅が10msである場合、制御装置1の動作時間10msにおけるプライマリ定周期タスク22の10回分の実行時間と、定周期タスク24の5回分の実行時間と、高優先度システムサービス32(タスクAおよびタスクB)の実行時間との総和を10msから差し引いた分が余裕度として表示される。図11に示す例のモニタ画面は、当該総和が「43%」であり、余裕度が「57%」であることを示している。さらに、領域84には、周期幅において、プライマリ定周期タスク22、定周期タスク24および高優先度システムサービス32の各々の実行時間が示す割合を視覚的に示すゲージが表示される。これにより、ユーザは、各タスクの割合および余裕度を認識しやすくなる。周期幅は、ユーザによって設定されてもよいし、高優先度システムサービス32として登録された各タスクの実行周期の最小公倍数でもよい。余裕度情報は、監視データ828から生成される。
ユーザは、領域83に表示された状況情報(実行時間情報)を参考にして、高優先度システムサービス32として登録した各タスクについて設定した実行周期および実行時間割合を適宜見直すことができる。
なお、サブ領域85,86の各々には、対応するタスクの回数情報である、実行周期において当該タスクに設定されたプログラムの実行回数の代表値(平均、最大)が表示されてもよい。ユーザは、当該回数情報を参考にして、高優先度システムサービス32として登録した各タスクについて設定した実行周期を適宜見直すことができる。
さらに、ユーザは、領域84に表示された余裕度情報を確認することにより、プロセッサ100の余裕度を把握できる。ユーザは、余裕度に基づいて、低優先度システムサービス34として登録するタスクを適宜見直すことができる。もしくは、ユーザは、余裕度を調整するために、高優先度システムサービス32として登録した各タスクについて設定した実行周期および実行時間割合を見直してもよい。
モニタ画面80は、実行時間をリセットするためのリセットボタン87を含む。リセットボタン87が操作されると、プロセッサ802は、二次記憶装置808に格納されている監視データ828をリセットする。
図10に戻って、高優先度システムサービス32として複数のタスクが登録されると、スケジューラプログラム212は、当該複数のタスクに対して設定される実行周期の位相を設定された位相差だけずらす。図10に示す例では、タスクBとタスクAとの位相差として1msが設定されている。そのため、スケジューラプログラム212は、タスクBに設定されたプログラムを実行するために確保する時間を、タスクAに設定されたプログラムを実行するために確保する時間から位相差1msだけずらしている。その結果、図10の「(3)オフセット(時間差)」に示されるように、タスクBに設定されたプログラムが実際に実行されたタイミングと、タスクAに設定されたプログラムが実際に実行されたタイミングとがずれている。
プロセッサ802は、高優先度システムサービス32として登録された複数のタスクの各々に設定されたプログラムが実行されたタイミングを示すタイミング情報を状況情報として生成し、当該タイミング情報を含むモニタ画面を表示部818に表示させてもよい。タイミング情報は、例えば、図10の領域Aのように、高優先度システムサービス32として登録された複数のタスクの実行タイミングを時間軸に沿って配置したタイミングチャートと、複数のタスクの実行タイミングの時間差とを示す。
ユーザは、タイミング情報で示されるタイミングチャートおよび実行タイミングの時間差を確認することにより、高優先度システムサービス32として登録された複数のタスクの各々に対して設定した実行周期および位相差を適宜見直すことができる。例えば、ユーザは、高優先度システムサービス32として登録された1つのタスクの実行周期を別のタスクの実行周期の1以上の整数倍に設定する。さらに、ユーザは、当該1つのタスクと当該別のタスクとの実行周期の位相差を当該別のタスクの実行周期よりも短い時間に設定する。これにより、スケジューラプログラム212は、当該1つのタスク用に確保される時間と当該別のタスク用に確保される時間とが重ならないようにスケジュール管理しやすくなる。
<2-10.変形例>
サポート装置8が備える解析ツール827は、制御装置1に備えられていてもよい。制御装置1は、プライマリ定周期タスク22、定周期タスク24および高優先度システムサービス32の実行状況を示す監視データ828を収集し、当該監視データ828を解析することにより得られたモニタ画面(図11参照)を表示装置に表示すればよい。
<2-11.付記>
以上のように、本実施の形態は以下のような開示を含む。
(構成1)
制御システム(SYS)であって、
制御対象を制御するための制御装置(1)を備え、
前記制御装置(1)は、
プロセッサ(100)と、
前記プロセッサ(100)によって定周期で繰り返し実行される第1のプログラム(と、
前記第1のプログラムより実行の優先度が低い第2のプログラムと、
前記第2のプログラムより実行の優先度が低い第3のプログラムと、
前記プロセッサ(100)に実行させるプログラムを管理するスケジューラプログラム(212)とを含み、
前記スケジューラプログラム(212)は、前記第1のプログラムの実行を妨げないように、前記プロセッサ(100)の空き時間に、前記第2のプログラムおよび前記第3のプログラムを前記プロセッサに実行させるための命令と、
前記第2のプログラムの実行状況を監視するための命令とを含み、
前記制御システム(SYS)は、さらに、
前記スケジューラプログラム(212)によって監視された前記実行状況から得られる状況情報を表示させるための表示手段(802,818,827)を備える、制御システム(SYS)。
(構成2)
前記スケジューラプログラム(212)は、予め設定された周期ごとに、前記第2のプログラムを実行させるための時間として、予め設定された割合の時間を確保するための命令を含み、
前記状況情報は、前記予め設定された周期において前記プロセッサ(100)が前記第2のプログラムを実行した時間を示す実行時間情報を含む、構成1に記載の制御システム(SYS)。
(構成3)
前記状況情報は、前記予め設定された周期において前記プロセッサ(100)が前記第2のプログラムを実行した回数を示す回数情報をさらに含む、構成2に記載の制御システム(SYS)。
(構成4)
前記第2のプログラムは複数のプログラムを含み、
前記実行周期は、前記複数のプログラムの各々に対して予め設定され、
前記状況情報は、前記複数のプログラムの各々に対応する前記実行時間情報を含む、構成2に記載の制御システム(SYS)。
(構成5)
前記状況情報は、前記制御装置の予め定められた動作時間に対する、前記第1のプログラムおよび前記第2のプログラムの少なくとも一方が実行されていない時間の割合を示す余裕度情報をさらに含む、構成2から4のいずれかに記載の制御システム(SYS)。
(構成6)
前記第2のプログラムは複数のプログラムを含み、
前記スケジューラプログラム(212)は、
前記複数のプログラムの各々について、予め設定された周期ごとに、当該プログラムを実行させるための時間として、予め設定された割合の時間を確保するための命令と、
予め設定された位相差だけ、前記複数のプログラムに対応する前記予め設定された周期の位相をずらす命令とを含み、
前記状況情報は、前記複数のプログラムの各々が実行されたタイミングを示すタイミング情報を含む、構成1に記載の制御システム(SYS)。
(構成7)
表示装置(8)に接続された、制御対象を制御するための制御装置(1)であって、
プロセッサ(100)と、
前記プロセッサ(100)によって定周期で繰り返し実行される第1のプログラムと、
前記第1のプログラムより実行の優先度が低い第2のプログラムと、
前記第2のプログラムより実行の優先度が低い第3のプログラムと、
前記プロセッサ(100)に実行させるプログラムを管理するスケジューラプログラム(212)とを備え、
前記スケジューラプログラム(212)は、前記第1のプログラムの実行を妨げないように、前記プロセッサ(100)の空き時間に、前記第2のプログラムおよび前記第3のプログラムを前記プロセッサに実行させるための命令と、
前記第2のプログラムの実行状況を監視するための命令とを含み、
前記スケジューラプログラム(212)によって監視された前記実行状況から得られる状況情報が前記表示装置(8)に表示される、制御装置(1)。
(構成8)
制御対象を制御するための制御装置(1)を備える制御システム(SYS)の制御方法であって、
前記制御装置(1)は、
プロセッサ(100)と、
前記プロセッサ(100)によって定周期で繰り返し実行される第1のプログラムと、
前記第1のプログラムより実行の優先度が低い第2のプログラムと、
前記第2のプログラムより実行の優先度が低い第3のプログラムとを含み、
前記制御方法は、
前記第1のプログラムの実行を妨げないように、前記プロセッサ(100)の空き時間に応じて、前記第2のプログラムおよび前記第3のプログラムを前記プロセッサ(100)に実行させるステップと、
前記第2のプログラムの実行状況を監視するステップと、
監視された前記実行状況から得られる状況情報を表示させるステップとを備える、制御方法。
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御装置、2 フィールドネットワーク、3 サーボモータドライバ、4 サーボモータ、5 IOターミナル、6 検出スイッチ、7 リレー、8 サポート装置、10 接続ケーブル、11 PLCシステムバス、12 電源ユニット、13 演算ユニット、14,53 IOユニット、15 特殊ユニット、20,24 定周期タスク、22 プライマリ定周期タスク、30 システムサービスタスク、32 高優先度システムサービス、34 低優先度システムサービス、36 通知機能、51 リモートIOターミナルバス、52 通信カプラ、80 モニタ画面、81,82,83,84,A 領域、85,86 サブ領域、87 リセットボタン、100,802 プロセッサ、102 チップセット、104 メインメモリ、106 不揮発性メモリ、108 システムタイマ、110 USBコネクタ、120 PLCシステムバスコントローラ、122,142 DMA制御回路、124 PLCシステムバス制御回路、126,146 バッファメモリ、130 PLCシステムバスコネクタ、140 フィールドネットワークコントローラ、144 フィールドネットワーク制御回路、200 リアルタイムOS、210 システムプログラム、212 スケジューラプログラム、214 IO処理プログラム、216 入力処理プログラム、218 出力処理プログラム、220 システムサービスプログラム、222 高優先度サービスプログラム、224 通知機能プログラム、226 低優先度サービスプログラム、228 アプリケーションプログラム実行部、230 制御プログラム、232 シーケンス命令実行部、234 ユーザプログラム、236 IECプログラム、238 アプリケーションプログラム、270 開始通知、272 終了通知、804 光学ドライブ、805 記録媒体、806 主記憶装置、808 二次記憶装置、812 USBコントローラ、816 入力部、818 表示部、820 バス、822 開発プログラム、827 解析ツール、828 監視データ、2120 制御機能、2122 監視機能、SYS 制御システム。

Claims (7)

  1. 制御システムであって、
    制御対象を制御するための制御装置を備え、
    前記制御装置は、
    プロセッサと、
    前記プロセッサによって定周期で繰り返し実行される第1のプログラムと、
    前記第1のプログラムより実行の優先度が低い第2のプログラムと、
    前記第2のプログラムより実行の優先度が低い第3のプログラムと、
    前記プロセッサに実行させるプログラムを管理するスケジューラプログラムとを含み、
    前記スケジューラプログラムは、前記第1のプログラムの実行を妨げないように、前記プロセッサの空き時間に、前記第2のプログラムおよび前記第3のプログラムを前記プロセッサに実行させるための命令と、
    前記第2のプログラムの実行状況を監視するための命令とを含み、
    前記制御システムは、さらに、
    前記スケジューラプログラムによって監視された前記実行状況から得られる状況情報を表示させるための表示手段を備え、
    前記第2のプログラムは複数のプログラムを含み、
    前記スケジューラプログラムは、
    前記複数のプログラムの各々について、予め設定された周期ごとに、当該プログラムを実行させるための時間として、予め設定された割合の時間を確保するための命令と、
    予め設定された位相差だけ、前記複数のプログラムに対応する前記予め設定された周期の位相をずらす命令とを含み、
    前記状況情報は、前記複数のプログラムの各々が実行されたタイミングを示すタイミング情報を含み、
    前記予め設定された位相差は、前記定周期の整数倍の時間である、制御システム。
  2. 前記スケジューラプログラムは、予め設定された周期ごとに、前記第2のプログラムを実行させるための時間として、予め設定された割合の時間を確保するための命令を含み、
    前記状況情報は、前記予め設定された周期において前記プロセッサが前記第2のプログラムを実行した時間を示す実行時間情報を含む、請求項1に記載の制御システム。
  3. 前記状況情報は、前記予め設定された周期において前記プロセッサが前記第2のプログラムを実行した回数を示す回数情報をさらに含む、請求項2に記載の制御システム。
  4. 前記第2のプログラムは複数のプログラムを含み、
    前記予め設定された周期は、前記複数のプログラムの各々に対して予め設定され、
    前記状況情報は、前記複数のプログラムの各々に対応する前記実行時間情報を含む、請求項2に記載の制御システム。
  5. 前記状況情報は、前記制御装置の予め定められた動作時間に対する、前記第1のプログラムおよび前記第2のプログラムの少なくとも一方が実行されていない時間の割合を示す余裕度情報をさらに含む、請求項2から4のいずれか1項に記載の制御システム。
  6. 表示装置に接続された、制御対象を制御するための制御装置であって、
    プロセッサと、
    前記プロセッサによって定周期で繰り返し実行される第1のプログラムと、
    前記第1のプログラムより実行の優先度が低い第2のプログラムと、
    前記第2のプログラムより実行の優先度が低い第3のプログラムと、
    前記プロセッサに実行させるプログラムを管理するスケジューラプログラムとを備え、
    前記スケジューラプログラムは、前記第1のプログラムの実行を妨げないように、前記プロセッサの空き時間に、前記第2のプログラムおよび前記第3のプログラムを前記プロセッサに実行させるための命令と、
    前記第2のプログラムの実行状況を監視するための命令とを含み、
    前記スケジューラプログラムによって監視された前記実行状況から得られる状況情報が前記表示装置に表示され、
    前記第2のプログラムは複数のプログラムを含み、
    前記スケジューラプログラムは、
    前記複数のプログラムの各々について、予め設定された周期ごとに、当該プログラムを実行させるための時間として、予め設定された割合の時間を確保するための命令と、
    予め設定された位相差だけ、前記複数のプログラムに対応する前記予め設定された周期の位相をずらす命令とを含み、
    前記状況情報は、前記複数のプログラムの各々が実行されたタイミングを示すタイミング情報を含み、
    前記予め設定された位相差は、前記定周期の整数倍の時間である、制御装置。
  7. 制御対象を制御するための制御装置を備える制御システムの制御方法であって、
    前記制御装置は、
    プロセッサと、
    前記プロセッサによって定周期で繰り返し実行される第1のプログラムと、
    前記第1のプログラムより実行の優先度が低い第2のプログラムと、
    前記第2のプログラムより実行の優先度が低い第3のプログラムとを含み、
    前記制御方法は、
    前記第1のプログラムの実行を妨げないように、前記プロセッサの空き時間に応じて、前記第2のプログラムおよび前記第3のプログラムを前記プロセッサに実行させるステップと、
    前記第2のプログラムの実行状況を監視するステップと、
    監視された前記実行状況から得られる状況情報を表示させるステップとを備え、
    前記第2のプログラムは複数のプログラムを含み、
    前記制御方法は、
    前記複数のプログラムの各々について、予め設定された周期ごとに、当該プログラムを実行させるための時間として、予め設定された割合の時間を確保するステップと、
    予め設定された位相差だけ、前記複数のプログラムに対応する前記予め設定された周期の位相をずらすステップとをさらに備え、
    前記状況情報は、前記複数のプログラムの各々が実行されたタイミングを示すタイミング情報を含み、
    前記予め設定された位相差は、前記定周期の整数倍の時間である、制御方法。
JP2018193148A 2018-10-12 2018-10-12 制御システム、制御装置および制御方法 Active JP7067406B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018193148A JP7067406B2 (ja) 2018-10-12 2018-10-12 制御システム、制御装置および制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018193148A JP7067406B2 (ja) 2018-10-12 2018-10-12 制御システム、制御装置および制御方法

Publications (3)

Publication Number Publication Date
JP2020061055A JP2020061055A (ja) 2020-04-16
JP2020061055A5 JP2020061055A5 (ja) 2021-02-12
JP7067406B2 true JP7067406B2 (ja) 2022-05-16

Family

ID=70219021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018193148A Active JP7067406B2 (ja) 2018-10-12 2018-10-12 制御システム、制御装置および制御方法

Country Status (1)

Country Link
JP (1) JP7067406B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4131035A4 (en) 2020-03-30 2023-09-27 NEC Corporation AUTHENTICATION MANAGEMENT DEVICE, AUTHENTICATION MANAGEMENT METHOD, AND RECORDING MEDIUM
JP7512886B2 (ja) 2020-12-23 2024-07-09 オムロン株式会社 制御装置、制御方法および制御プログラム
JP7567566B2 (ja) * 2021-03-08 2024-10-16 オムロン株式会社 情報処理装置およびプログラム
JP2022136824A (ja) * 2021-03-08 2022-09-21 オムロン株式会社 制御装置および制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023296A1 (ja) 2010-08-16 2012-02-23 三菱電機株式会社 制御プログラム生成装置、制御プログラム生成プログラム、及び制御プログラム生成方法
JP2012194671A (ja) 2011-03-15 2012-10-11 Omron Corp コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体
JP2018072221A (ja) 2016-10-31 2018-05-10 オムロン株式会社 制御システム、その制御方法およびそのプログラム
WO2018186358A1 (ja) 2017-04-07 2018-10-11 オムロン株式会社 制御装置、制御方法および制御プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023296A1 (ja) 2010-08-16 2012-02-23 三菱電機株式会社 制御プログラム生成装置、制御プログラム生成プログラム、及び制御プログラム生成方法
JP2012194671A (ja) 2011-03-15 2012-10-11 Omron Corp コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体
JP2018072221A (ja) 2016-10-31 2018-05-10 オムロン株式会社 制御システム、その制御方法およびそのプログラム
WO2018186358A1 (ja) 2017-04-07 2018-10-11 オムロン株式会社 制御装置、制御方法および制御プログラム

Also Published As

Publication number Publication date
JP2020061055A (ja) 2020-04-16

Similar Documents

Publication Publication Date Title
JP7067406B2 (ja) 制御システム、制御装置および制御方法
JP6540166B2 (ja) 制御装置
JP4807475B1 (ja) 演算ユニット、出力制御方法、およびプログラム
JP6488830B2 (ja) 制御装置
JP6406466B1 (ja) 制御装置、制御方法および制御プログラム
US8977534B2 (en) Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program
US10877803B2 (en) Control apparatus, control method and non-transitory storage medium
WO2018186358A1 (ja) 制御装置、制御方法および制御プログラム
EP3379358A2 (en) Control system, control device, control program, and control method
US11061377B2 (en) Control device
JP2019159697A (ja) 制御システムおよび制御方法
JP2012194671A (ja) コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体
EP2533114B1 (en) Controller support device, controller support program to be executed in said device, recording medium storing said program, and method for estimating execution duration of control program
JP2016194831A (ja) 制御装置
JP2019061467A (ja) サポート装置およびサポートプログラム
US20230132698A1 (en) Robot control system and control method
JP7380390B2 (ja) 制御装置、プログラムおよび制御方法
JP2012194955A (ja) 支援装置、表示制御方法、およびプログラム
JP6969454B2 (ja) 制御装置、制御方法、および、制御プログラム
JP7567566B2 (ja) 情報処理装置およびプログラム
WO2022249713A1 (ja) 制御システム、システムプログラムおよびデバッグ方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211102

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220411

R150 Certificate of patent or registration of utility model

Ref document number: 7067406

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150