(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0017】
<A.システム構成>
まず、本実施の形態に係る制御システムのシステム構成について説明する。本実施の形態においては、機械や設備などの制御対象を制御するプログラマブルコントローラ(PLC)を制御装置の典型例として説明を行う。但し、本発明に係る制御装置は、PLCに限られることなく、各種の制御装置へ適用可能である。
【0018】
図1は、本実施の形態に係る制御システム1のシステム構成を示す模式図である。
図1を参照して、制御システム1は、PLC100と、PLC100に接続されるサポート装置300と、PLC100からのアクセスを受けるデータベース装置400とを含む。PLC100は、後述するようなユーザプログラムを周期的またはイベント的に実行する。このユーザプログラムにアクセス命令を含めることができ、PLC100は、このアクセスに従って、データベース装置400にアクセスすることができる。すなわち、PLC100およびデータベース装置400は、イーサネット(登録商標)などのネットワーク112を介して、データを互いに遣り取りできるように構成される。
【0019】
サポート装置300は、PLC100に接続可能な情報処理装置の典型例である。サポート装置300は、接続ケーブル114を介してPLC100に接続され、PLC100との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。PLC100とサポート装置300との間は、典型的には、USB(Universal Serial Bus)規格に従って通信可能に構成される。
【0020】
PLC100は、制御演算を実行するCPUユニット104と、1つ以上のIO(Input/Output)ユニット106とを含む。これらのユニットは、PLCシステムバス108を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット102によって適切な電圧の電源が供給される。
【0021】
制御システム1において、PLC100は、(PLCシステムバス108を介して接続される)IOユニット106を介して、および/または、フィールドバス110を介して、各種のフィールド機器との間でデータを遣り取りする。これらのフィールド機器は、制御対象に対して何らかの処理を行うためのアクチュエータや、制御対象から各種情報を取得するためのセンサなどを含む。
図1には、このようなフィールド機器の一例として、検出スイッチ10、リレー20およびモータ32を駆動するサーボモータドライバ30を含む。また、PLC100は、フィールドバス110を介してリモートIOターミナル200も接続されている。リモートIOターミナル200は、基本的には、IOユニット106と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートIOターミナル200は、フィールドバス110でのデータ伝送に係る処理を行うための通信カプラ202と、1つ以上のIOユニット204とを含む。これらのユニットは、リモートIOターミナルバス208を介して、データを互いに遣り取りできるように構成される。
【0022】
<B.PLC100の構成>
次に、本実施の形態に係るPLC100の構成について説明する。
図2は、本実施の形態に係るPLC100の主要部を示すハードウェア構成を示す模式図である。
図3は、本実施の形態に係るPLC100のソフトウェア構成を示す模式図である。
【0023】
図2を参照して、PLC100のCPUユニット104のハードウェア構成について説明する。CPUユニット104は、プロセッサ120と、チップセット122と、システムクロック124と、主メモリ126と、不揮発性メモリ128と、USBコネクタ130と、PLCシステムバスコントローラ140と、フィールドバスコントローラ150と、上位通信コントローラ160と、メモリカードインターフェイス170とを含む。チップセット122と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【0024】
プロセッサ120およびチップセット122は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ120は、チップセット122から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット122は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ120に必要な命令コードを生成する。システムクロック124は、予め定められた周期のシステムクロックを発生してプロセッサ120に提供する。チップセット122は、プロセッサ120での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【0025】
CPUユニット104は、記憶手段として、主メモリ126および不揮発性メモリ128を有する。主メモリ126は、揮発性の記憶領域であり、プロセッサ120で実行されるべき各種プログラムを保持するとともに、各種プログラムの実行時の作業用メモリとしても使用される。不揮発性メモリ128は、OS(Operating System)、システムプログラム、ユーザプログラム、データ定義情報、ログ情報などを不揮発的に保持する。
【0026】
USBコネクタ130は、サポート装置300とCPUユニット104とを接続するためのインターフェイスである。典型的には、サポート装置300から転送される実行可能なプログラムなどは、USBコネクタ130を介してCPUユニット104に取込まれる。
【0027】
CPUユニット104は、通信手段として、PLCシステムバスコントローラ140、フィールドバスコントローラ150、および上位通信コントローラ160を有する。これらの通信回路は、データの送信および受信を行う。
【0028】
PLCシステムバスコントローラ140は、PLCシステムバス108を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ140は、バッファメモリ142と、PLCシステムバス制御回路144と、DMA(Dynamic Memory Access)制御回路146とを含む。PLCシステムバスコントローラ140は、PLCシステムバスコネクタ148を介してPLCシステムバス108と接続される。
【0029】
フィールドバスコントローラ150は、バッファメモリ152と、フィールドバス制御回路154と、DMA制御回路156とを含む。フィールドバスコントローラ150は、フィールドバスコネクタ158を介してフィールドバス110と接続される。上位通信コントローラ160は、バッファメモリ162と、上位通信制御回路164と、DMA制御回路166とを含む。上位通信コントローラ160は、上位通信コネクタ168を介してネットワーク112と接続される。
【0030】
メモリカードインターフェイス170は、CPUユニット104に対して着脱可能なメモリカード172とプロセッサ120とを接続する。
【0031】
<C.CPUユニットのソフトウェア構成>
次に、
図3を参照して、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット104のプロセッサ120によって実行される。
【0032】
図3は、本発明の実施の形態に係るCPUユニット104で実行されるソフトウェア構成を示す模式図である。
図3を参照して、CPUユニット104で実行されるソフトウェアとしては、リアルタイムOS200と、システムプログラム210と、ユーザプログラム236との3階層になっている。
【0033】
リアルタイムOS200は、CPUユニット104のコンピュータアーキテクチャに応じて設計されており、プロセッサ120がシステムプログラム210およびユーザプログラム236を実行するための基本的な実行環境を提供する。このリアルタイムOSは、典型的には、PLCのメーカーあるいは専門のソフトウェア会社などによって提供される。
【0034】
システムプログラム210は、PLC100としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム210は、スケジューラプログラム212と、出力処理プログラム214と、入力処理プログラム216と、シーケンス命令演算プログラム232と、モーション演算プログラム234と、その他のシステムプログラム220とを含む。なお、一般には出力処理プログラム214および入力処理プログラム216は、連続的(一体として)に実行されるので、これらのプログラムを、IO処理プログラム218と総称する場合もある。
【0035】
ユーザプログラム236は、ユーザにおける制御目的に応じて作成される。すなわち、制御システム1を用いて制御する対象のライン(プロセス)などに応じて、任意に設計されるプログラムである。
【0036】
後述するように、ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム236、シーケンス命令演算プログラム232、およびモーション演算プログラム234を、制御プログラム230と総称する場合もある。
【0037】
このように、CPUユニット104のプロセッサ120は、記憶手段に格納されたシステムプログラム210およびユーザプログラム236を実行する。
【0038】
以下、各プログラムについてより詳細に説明する。
ユーザプログラム236は、上述したように、ユーザにおける制御目的(たとえば、対象のラインやプロセス)に応じて作成される。ユーザプログラム236は、典型的には、CPUユニット104のプロセッサ120で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム236は、サポート装置300などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム236は、サポート装置300から接続ケーブル10を介してCPUユニット104へ転送され、不揮発性メモリ128などに格納される。
【0039】
スケジューラプログラム212は、出力処理プログラム214、入力処理プログラム216、および制御プログラム230について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム212は、タスクの実行を制御する。タスクは、割り付けられたプログラム(IO処理プログラム218、制御プログラム230など)を順次実行する。
【0040】
スケジューラプログラム212は、タスクの優先度の設定、タスクの周期の設定などのタスクの実行条件の設定に従って、これらプログラムによる処理の実行順序などを管理する。各タスクの実行条件の設定は、後述するタスク実行条件管理テーブル242により管理されている。本実施形態の制御システム1では、各タスクについて、タスクの実行優先度やタスク実行の周期などの実行条件を変更するための命令(設定用の命令)が提供されており、この命令をユーザプログラム236に含めることができる。CPUユニット104は、ユーザプログラム236に含まれる、各タスクの実行条件を変更するための命令を実行することで、各タスクの優先度、各タスクの周期などを変更する。このように、制御システム1は、タスクの優先度を、ユーザプログラムから変更することができる。
【0041】
出力処理プログラム214は、ユーザプログラム236(制御プログラム230)の実行によって生成された出力データを、PLCシステムバスコントローラ140および/またはフィールドバスコントローラ150へ転送するのに適した形式に再配置する。PLCシステムバスコントローラ140またはフィールドバスコントローラ150が、プロセッサ120からの、送信を実行するための指示を必要とする場合は、出力処理プログラム214がそのような指示を発行する。
【0042】
入力処理プログラム216は、PLCシステムバスコントローラ140および/またはフィールドバスコントローラ150によって受信された入力データを、制御プログラム230が使用するのに適した形式に再配置する。
【0043】
シーケンス命令演算プログラム232は、ユーザプログラム236で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
【0044】
モーション演算プログラム234は、ユーザプログラム236による指示に従って実行され、サーボモータドライバ30やパルスモータドライバといったモータドライバに対して出力する指令値を算出するプログラムである。
【0045】
その他のシステムプログラム220は、
図3に個別に示したプログラム以外の、PLC100の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム220は、DBアクセス処理プログラム192を含む。DBアクセス処理プログラム192は、ユーザプログラム236の実行に伴って、データベース装置400へアクセスするために必要な処理を実現するための命令コード群を含む。DBアクセス処理プログラム192は、ユーザプログラム236において指定可能な命令に対応する実行コードを含む。
【0046】
モーション制御サイクルの周期を指定する情報の形式としては、モーション制御サイクルの周期を示す時間の値や、モーション制御サイクルの周期に関する予め用意された複数の選択肢のうちから1つを特定する情報(番号または文字)などを採用することができる。
【0047】
リアルタイムOS200は、複数のプログラムを時間の経過に従い切り換えて実行するための環境を提供する。本実施の形態に係るPLC100においては、CPUユニット104のプログラム実行によって生成された出力データを他のユニットまたは他の装置へ出力(送信)するためのイベント(割り込み)として、出力準備割り込み(P)およびフィールドネットワーク送信割り込み(X)が初期設定される。リアルタイムOS200は、出力準備割り込み(P)またはフィールドネットワーク送信割り込み(X)が発生すると、プロセッサ120での実行対象を、割り込み発生時点で実行中のプログラムからスケジューラプログラム212に切り換える。
【0048】
なお、リアルタイムOS200は、スケジューラプログラム212およびスケジューラプログラム212がその実行を制御するプログラムが何ら実行されていない場合に、その他のシステムプログラム210に含まれているプログラムを実行する。このようなプログラムとしては、たとえば、CPUユニット104とサポート装置300との間の接続ケーブル10(USB)などを介した通信処理に関するもの、CPUユニット104と、上位の装置(データベース装置400など)との通信処理に関するものなどが含まれる。
【0049】
<D.データ構造>
図4を参照して、CPUユニット104が使用するデータについて説明する。
【0050】
図4は、タスク実行条件管理テーブル242を示す図である。
図4に示すように、タスク実行条件管理テーブル242は、各タスクをCPUユニット104が実行するための条件を示し、例えば、各タスクを実行する優先度と、各タスクの周期とを示す。タスク実行条件管理テーブル242の各レコードは、タスク名244と、実行優先度246と、タスク周期248とを含む。
【0051】
タスク名244は、各タスクの名称を示す。
実行優先度246は、各タスクの優先度の設定値を示す。優先度の設定値は、例えば、最も高い優先度である優先度「高」、次に優先度が高い優先度「中」、最も優先度が低い優先度「低」がある。この他に、優先度の設定値は3段階に限らず、さらに多くの段階に設定可能であるとしてもよい。
【0052】
タスク周期248は、各タスクを実行する周期を示す。例えば、最も優先度が高い優先度「高」のタスクの周期を基準とし、他の優先度のタスクは、優先度「高」のタスクの周期の整数倍であるとしてもよい。
【0053】
図5は、各タスクの実行順序の一例を示した図である。
図5を参照して、CPUユニット104は、優先度の設定が優先度「高」、周期「T1」の定周期タスクと、優先度の設定が優先度「中」、周期「T2」の定周期タスクとを、タスクの実行条件に従って実行する。優先度「高」の定周期タスクは、CPUユニット104の中で最高優先度のタスクである。
【0054】
優先度「中」の定周期タスク実行中に高優先度定周期タスクが実行可能になった場合、優先度「中」の定周期タスクは、優先度「高」のタスクよりも優先度が低いため一旦中断され、優先度「高」の定周期タスクが実行される。優先度「高」の定周期タスクの完了後、優先度「中」の定周期タスクの実行が再開される。なお、優先度「中」の定周期タスクの周期T2は、優先度「高」の定周期タスクの周期T1の整数倍である。
図5は、T2=2T1(周期T2が周期T1の2倍の周期)の場合を表している。
【0055】
図5においては、スケジューラプログラムを「SC」と、出力・入力処理プログラムを「OI」と、ユーザプログラム236を「UPRG」と、モーション演算プログラム234を「MC」と表記している。また、
図5では、説明の便宜上、各OI、各MCを識別するために、それぞれに異なる参照符合701〜707を付している。
【0056】
PLC100の実行中においては、プロセッサ120が、少なくとも、出力・入力処理プログラム(出力処理プログラム214および入力処理プログラム216)と、ユーザプログラム236と、モーション演算プログラム234とが実行可能な状態になっている。厳密に言えば、リアルタイムOS200がそれぞれのプログラムに係るプロセス(または、スレッド)を実行可能な状態に保持しており、スケジューラプログラム212がリアルタイムOS200およびハードウェアリソース(システムクロック124など)を利用することで、各プログラムが適切なタイミングかつ適切な順序で実行される。このように、それぞれのプログラムに係る実行の開始/中断/終了などは、スケジューラプログラム212によって制御される。
【0057】
<E.タスクの実行条件を変更するための命令>
図6を参照して、ユーザプログラム236に含めることができる、タスクの実行条件を変更するための命令について説明する。実施の形態1のPLC100において、ユーザプログラム236には、タスクの実行条件(タスクの優先度の設定、タスクを実行する周期の設定)を変更するための命令を含めることができる。PLC100のCPUユニット104は、ユーザプログラム236に含まれる、タスクの実行条件を変更するための命令を実行することにより、タスク実行条件管理テーブル242に示される各タスクの優先度の設定と、タスクを実行する周期の設定のいずれかまたは両方を変更することができる。
【0058】
スケジューラプログラム212は、タスク実行条件管理テーブル242に示される各タスクの優先度および各タスクの周期に従って、プログラムの実行順序を各サイクルについて制御する。例えば、スケジューラプログラム212は、ある処理の完了など何らかの条件が成立することにより、タスク実行条件管理テーブル242を参照して各タスクの優先度および各タスクの周期を取得し、取得したタスクの優先度およびタスクの周期の設定に従って、各プログラムの実行順序を管理する。
【0059】
図6は、タスクの実行条件を変更するための命令の例を示す図である。
図6では、サポート装置300のディスプレイ310において、ユーザがタスク実行条件変更命令320を編集している画面の例を示している。
図6に示すように、タスクの実行条件を変更するための命令「ChangeTaskProperties」により、ユーザは、タスク名称「TaskName」、タスク周期「TaskInterval」、タスクの実行優先度「TaskPriority」を設定することができる。タスク実行条件変更命令320は、例えば、ファンクションブロック形式で記述することができる。タスク実行条件変更命令320は、PLC100のCPUユニット104によって実行されることにより、指定されたタスクの優先度またはタスクの実行周期のいずれかまたは両方を変更してタスク実行条件管理テーブル242を更新する。
【0060】
<F.動作>
次に、CPUユニット104がユーザプログラム236に含まれる命令を実行することで、各タスクの優先度を変更する場合の動作の例を説明する。
【0061】
<F1.ユーザプログラムからのタスク優先度の変更>
図7は、CPUユニット104がユーザプログラムに含まれる命令を実行してタスクの優先度を変更する場合の各タスクの実行順序を示す図である。
図7(A)は、タスク「B」の優先度が優先度「中」の場合の各タスクの実行順序を示す。
図7(B)は、タスク「B」の優先度が優先度「低」の場合の各タスクの実行順序を示す。なお、
図7(A)および
図7(B)において、ユーザプログラムに含まれる命令(ファンクションブロック)を「FB」とする。命令801と命令803とは、タスクの実行条件を変更するための命令である。
【0062】
図7(A)に示すように、CPUユニット104が、ユーザプログラム800を実行し、このユーザプログラム800に含まれる命令801を実行すると、タスク「B」の優先度が優先度「中」から優先度「低」へ変更される。以降、
図7(B)に示すように各タスクが実行される。
図7(B)において、CPUユニット104が、ユーザプログラム802を実行し、このユーザプログラム802に含まれる命令803を実行すると、タスク「B」の優先度が優先度「低」から優先度「中」へ変更される。
【0063】
例えば、制御システム1において、各装置が製品を生産している場合と、生産用のパラメータであるレシピをPLC100がサーバから受信している場合とで、タスクの優先度を変更することで、PLC100の各処理を効率的に動作させることができる。具体的には、例えば、制御システム1の処理を、製品の生産をするための処理からレシピを受信する処理へと切り替えるとする。この時、タスク「B」の優先度を、タスク「通信処理タスク」よりも低くすることで、PLC100による通信処理が効率的に行われ、レシピデータの受信処理を高速化することができる。また、制御システム1の処理を、レシピを受信する処理から製品の生産をするための処理へと切り替えるとする。この時、タスク「B」の優先度を変更してタスク「通信処理タスク」と同等またはそれ以上の優先度とすることで、製品の生産を効率的にすることができる。
【0064】
<F2.ユーザプログラムからのタスク周期の変更>
図8は、CPUユニット104がユーザプログラムに含まれる命令を実行してタスクの周期を変更する場合の各タスクの実行順序を示す図である。
図8(A)は、タスク「A」の周期と、タスク「通信処理タスク」の周期とが、ともに周期「T1」である場合の各タスクの実行順序を示す。
図8(B)は、タスク「A」の周期と、タスク「通信処理タスク」の周期とが、ともに周期「T2」である場合の各タスクの実行順序を示す。なお、
図8において、タスク「A」の優先度は、タスク「通信処理タスク」の優先度よりも高いものとする。命令805と命令807とは、タスクの実行条件を変更するための命令である。
【0065】
図8(A)に示すように、CPUユニット104は、各タスクの周期に従ってプログラムを実行する。CPUユニット104は、周期「T1」の期間において、まずタスク「A」の処理を実行し、タスク「A」の処理が終了した残りの時間内にタスク「通信処理タスク」を実行する。CPUユニット104が、ユーザプログラム804を実行し、このユーザプログラム804に含まれる命令805を実行すると、タスク「A」の周期とタスク「通信処理タスク」の周期とが、周期「T1」から周期「T2」へと変更される。以降、
図8(B)に示すように各タスクが実行される。
【0066】
図8(A)と
図8(B)とを比較すると、
図8(B)の方が、各タスクの周期が長くなっている。そのため、
図8(B)の状態では、タスク「通信処理タスク」が、
図8(A)の状態と比較して、より長い期間実行されている。そのため、
図8(B)の状態において、CPUユニット104が外部の機器(例えば、データベース装置400など)と通信している期間は、
図8(A)の状態よりも長くなる。
【0067】
図8(B)において、CPUユニット104が、ユーザプログラム806を実行し、このユーザプログラム806に含まれる命令807を実行すると、タスク「A」の周期とタスク「通信処理タスク」の周期とが、周期「T2」から周期「T1」へと変更される。
【0068】
例えば、制御システム1において、装置の立ち上げ時や装置を調整する局面など、状況に応じて各装置の制御処理と通信処理とのバランスを調整したいことがある。ここで、各装置を制御するためのタスク(
図8の例では、タスク「A」など)の周期を調整することで、タスク「通信処理タスク」の処理の時間を調整することができる。
【0069】
例えば、制御システム1の設計時には、装置の制御処理を優先してタスクの周期を短く設定することがある。一方、通信処理にある程度の余裕が必要である場合に、タスクの周期を長く設定することがある。
図8に示す例のように、ユーザプログラムからタスク周期の変更を可能とすることで、装置の立ち上げ時や調整の局面などにおいて、タスク周期を微調整することができ、これらの立ち上げ、調整などの作業を効率よく進めることができる。
【0070】
<F3.ユーザプログラムからのタスク優先度およびタスク周期の変更>
図9は、CPUユニット104がユーザプログラムに含まれる命令を実行してタスクの優先度およびタスクの周期を変更する場合の各タスクの実行順序を示す図である。
図9(A)は、タスク「A」について優先度「高」、周期「T1」であり、タスク「B」について優先度「中」、周期「T2」であり、タスク「通信処理タスク」について優先度「低」、周期「T2」である場合の各タスクの実行順序を示す。
図9(B)は、タスク「A」について優先度「高」、周期「T1」であり、タスク「B」について優先度「低」、周期「T3」であり、タスク「通信処理タスク」について優先度「低」、周期「T3」である場合の各タスクの実行順序を示す。命令809と命令811とは、タスクの実行条件を変更するための命令である。
【0071】
図9(A)に示すように、CPUユニット104が、ユーザプログラム808を実行し、このユーザプログラムに含まれる命令809を実行すると、タスク「B」の優先度が優先度「中」から優先度「低」へと変更され、タスク「B」の周期が周期「T2」から周期「T3」へと変更される。また、ユーザプログラムに含まれる命令809が実行されることにより、タスク「通信処理タスク」の優先度が優先度「低」から優先度「中」へと変更され、タスク「通信処理タスク」の周期が周期「T2」から周期「T3」へと変更される。以降、
図9(B)に示すように各タスクが実行される。
【0072】
図9(A)と
図9(B)とを比較すると、
図9(B)の方が、タスク「B」およびタスク「通信処理タスク」の周期が長くなり、タスク「通信処理タスク」の優先度がタスク「B」よりも高くなっている。
【0073】
図9(B)において、CPUユニット104が、ユーザプログラム810を実行し、このユーザプログラム810に含まれる命令811を実行すると、タスク「B」の優先度が優先度「低」から優先度「中」へ変更され、周期「T3」から周期「T2」へと変更される。またタスク「通信処理タスク」の優先度が優先度「中」から優先度「低」へと変更され、周期が周期「T3」から周期「T2」へと変更される。
【0074】
図7と比較して、優先度を下げるタスクが周期的に動作する場合は、そのタスクの優先度を下げると共に、タスクの周期を長くする。これにより、優先度を下げたタスクが、タスク周期を超過させず動作させることができる。
【0075】
<G.効果>
制御システムは、通常、プログラムの優先度や周期を予め設定し、設定に従って各プログラムを実行する。これらのシステムにおいて、状況によって優先させたいプログラムやプログラムの周期が異なることがある。例えば、制御装置が、ネットワークを介して接続される上位の装置(データベース装置、サーバなど)に対してデータを送受信する場合や各装置を立ち上げる場合等と、製品の生産時など高速な動作が求められる場合とで、優先させたいプログラムやプログラムのサイクルタイムが異なることがある。本実施形態で説明した制御システム1によると、制御プログラム230が動作中である場合にも、プログラムを実行する優先度や制御装置を動作させるサイクルタイムを変更することができ、制御システム1の動作を効率化することができる。
【0076】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。