JP2022048289A - 制御装置および制御システム - Google Patents
制御装置および制御システム Download PDFInfo
- Publication number
- JP2022048289A JP2022048289A JP2022014416A JP2022014416A JP2022048289A JP 2022048289 A JP2022048289 A JP 2022048289A JP 2022014416 A JP2022014416 A JP 2022014416A JP 2022014416 A JP2022014416 A JP 2022014416A JP 2022048289 A JP2022048289 A JP 2022048289A
- Authority
- JP
- Japan
- Prior art keywords
- control
- frame
- output data
- data
- processor
- 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
- 238000000034 method Methods 0.000 claims abstract description 133
- 230000005540 biological transmission Effects 0.000 claims abstract description 123
- 238000004891 communication Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 description 100
- 230000006870 function Effects 0.000 description 18
- 238000013500 data storage Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 15
- 238000004519 manufacturing process Methods 0.000 description 11
- 230000000052 comparative effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000036461 convulsion Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004452 microanalysis Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Programmable Controllers (AREA)
Abstract
【課題】制御装置におけるフレームの送信タイミングを保証するための新たな構成を提供する。【解決手段】本開示の一例に係る制御装置は、制御対象を制御するための制御装置であって、プロセッサと、通信回路とを備える。通信回路は、制御対象に対する出力データの送信、および前記制御対象からの入力データの受信を行なう。制御装置は、予め定められた制御周期毎に、出力データの送信と、入力データの受信と、入力データを使用して出力データを生成する制御プログラムの実行とを順次繰り返すことによって、制御対象を制御するように構成される。出力データの送信処理において、プロセッサは、前回の制御周期における制御プログラムの実行により生成された出力データをフレームに格納する処理と、出力データが格納されたフレームを制御対象に送信するように通信回路を制御する処理とを実行するように構成される。プロセッサは、次回の制御周期で実行される、出力データをフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する。【選択図】図6
Description
本開示は、制御対象を制御する制御装置およびそれを備える制御システムに関する。
生産現場においては、様々なFA(Factory Automation)技術が広く普及している。このようなFAシステムは、PLC(プログラマブルコントローラ)といった制御装置が用いられる。制御装置は、1または複数のデバイス(典型的には、リモートIO(Input/Output)装置やサーボモータドライバなど)との間でネットワークを介してデータを遣り取りする。
このような制御装置においては、入力データの取得および制御指令の出力を高精度に同期させたいという要求がある。このような要求に応えるために、ネットワークを介して接続されている制御装置およびデバイスは、各々に内蔵されるクロックが互いに時刻同期した状態に維持される。そして、制御装置およびデバイスの各々は、互いに同期したクロックに基づいて、送信タイミングおよび受信タイミングを調整する。
このような時刻同期された構成において、デバイス装置が収集した入力データを制御装置が受信する処理、および、制御装置にて生成された制御指令をデバイスに送信する処理を含む入出力処理が制御周期毎に実行される。例えば、特開2012-194662号公報(特許文献1)は、制御指令の送信と、入力データの受信と、入力データを使用して制御指令を生成する制御プログラム(ユーザプログラムおよびモーション演算プログラム)の実行とを制御周期で繰り返すことによって、制御対象を制御する構成を開示する。
上述した制御装置において、入出力処理は、CPU(Central Processing Unit)などで構成されたプロセッサによるソフトウェア処理で実現される。ソフトウェア処理においては、プロセッサの処理能力などに依存して、あるデータ量を処理するのに要する処理時間にばらつきが生じることがある。そのため、入出力処理のうち、制御指令が格納されたフレームをデバイスに送信する処理においては、制御装置からネットワークへフレームが送信されるタイミングにばらつきが生じてしまう場合がある。
このような処理時間のばらつきが、処理時間全体のうちの所定の割合を占める場合、処理すべきデータ量が増えるに従って、処理時間のばらつきも大きくなってしまう。したがって、制御指令をデバイスに送信する処理において、プロセッサが処理すべきデータ量が増えると、制御装置からネットワークへフレームが送信されるタイミングのばらつきが増長されることが懸念される。そして、制御装置からネットワークへフレームが送信されるタイミングにばらつきが生じることで、ネットワーク上のデバイスがフレームを受信するタイミングにも影響を及ぼす可能性がある。これにより、複数のデバイス間の同期処理の精度を低下させることが懸念される。
このように、制御装置においては、ソフトウェア処理におけるデータ処理量が、フレームの送信タイミングのばらつき精度に大きな影響を及ぼすことから、フレームの送信タイミングを保証することが難しいという課題がある。
本開示は、制御装置におけるフレームの送信タイミングを保証するための新たな構成を提供することを目的とする。
本開示の一例に係る制御装置は、制御対象を制御するための制御装置であって、プロセッサと、通信回路とを備える。通信回路は、制御対象に対する出力データの送信、および前記制御対象からの入力データの受信を行なう。制御装置は、予め定められた制御周期毎に、出力データの送信と、入力データの受信と、入力データを使用して出力データを生成する制御プログラムの実行とを順次繰り返すことによって、制御対象を制御するように構成される。出力データの送信処理において、プロセッサは、前回の制御周期における制御プログラムの実行により生成された出力データをフレームに格納する処理と、出力データが格納されたフレームを制御対象に送信するように通信回路を制御する処理とを実行するように構成される。プロセッサは、次回の制御周期で実行される、出力データをフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する。
本開示によれば、次回の制御周期で実行される送信処理に含まれるソフトウェア処理の少なくとも一部を、今回の制御周期内で実行するように、送信処理のスケジューリングが実行されるため、次回の制御周期では、送信処理にて実行されるソフトウェア処理のデータ処理量が低減され、ソフトウェア処理に要する処理時間のばらつきが低減されることになる。処理時間のばらつきが低減されることで、フレームが送信されるタイミングのばらつきを低減できるため、フレームの送信タイミングを保証することができる。これにより、ネットワーク上のデバイスがフレームを受信するタイミングが変動することを抑制することができるため、複数のデバイス間の同期処理の精度を確保できる。
また、本開示によれば、既存のプロトコルスタックおよびハードウェアを改造することなく、フレームの送信タイミングを保証することができる。
上述の開示において、プロセッサは、今回の制御周期内で、制御プログラムを実行した後に、出力データをフレームに格納する処理を実行する。プロセッサはさらに、次回の制御周期が開始されると、通信回路を制御する処理を実行する。
この開示によれば、フレームの送信タイミングのばらつきの要因となり得る、出力データをフレームに格納する処理を、制御プログラムを実行した後の残り時間を利用して、前倒しで実行するように、送信処理のスケジューリングが実行される。したがって、次回の制御周期では、制御装置からフレームが送信されるタイミングのばらつきが低減され、結果的にフレームの送信タイミングを保証することが可能となる。
上述の開示において、プロセッサは、今回の制御周期内で、出力データをフレームに格納する処理の一部分を実行する。プロセッサは、さらに、次回の制御周期が開始されると、出力データをフレームに格納する処理の残りの部分、および通信回路を制御する処理を順次実行する。
この開示によれば、次回の制御周期で実行される送信処理に含まれるソフトウェア処理の一部を、今回の制御周期内で実行するように、送信処理のスケジューリングが実行されるため、次回の制御周期では、送信処理にて実行されるソフトウェア処理のデータ処理量が低減される。これにより、プロセッサにおける処理時間のばらつきを抑制できるため、フレームの送信タイミングを保証することができる。
上述の開示において、出力データをフレームに格納する処理は、フレームを生成する処理と、生成されたフレームに出力データを格納する処理とを含む。制御装置は、上位ネットワークを介して他の装置との間でデータを遣り取りするように構成される。制御周期内において、制御プログラムの実行後に、他の装置とのデータの遣り取りによって出力データが更新される場合、プロセッサは、今回の制御周期内で、入力データを受信する処理を実行した後であって、制御プログラムを実行する前に、フレームを生成する処理を実行する。プロセッサは、さらに、次回の制御周期が開始されると、出力データを格納する処理を実行する。
この開示によれば、制御周期内において、上位ネットワークを介して制御装置と他の装置とのデータの遣り取りによって出力データが更新される場合においても、次回の制御周期における送信処理にて実行されるソフトウェア処理のデータ処理量を低減することができる。これにより、プロセッサにおける処理時間のばらつきを抑制できるため、フレームの送信タイミングを保証することができる。
上述の開示において、出力データをフレームに格納する処理は、フレームを生成する処理と、生成されたフレームに出力データを格納する処理とを含む。制御装置は、上位ネットワークを介して他の装置との間でデータを遣り取りするように構成される。制御周期内において、制御プログラムの実行後に、他の装置とのデータの遣り取りによって出力データが更新される場合、プロセッサは、今回の制御周期内で、制御プログラムを実行した後であって、他の装置とのデータの遣り取りを実行する前に、出力データをフレームに格納する処理を実行する。プロセッサは、さらに、次回の制御周期が開始されると、更新された出力データをフレームに格納する処理、および通信回路を制御する処理を順次実行する。
この開示によれば、制御周期内において、上位ネットワークを介して制御装置と他の装置とのデータの遣り取りによって出力データが更新される場合においても、次回の制御周期における送信処理にて実行されるソフトウェア処理のデータ処理量を低減することができる。これにより、プロセッサにおける処理時間のばらつきを抑制できるため、フレームの送信タイミングを保証することができる。
本開示の一例に係る制御システムは、制御装置と、制御装置からの制御指令に従って動作する1または複数のデバイスとを備える。制御装置および1または複数のデバイスは、互いに時刻同期されたタイマを有している。制御装置は、プロセッサと、1または複数のデバイスに対する制御指令の送信、および1または複数のデバイスからの入力データの受信を行なう通信回路とを含む。制御装置は、予め定められた制御周期毎に、制御指令の送信と、入力データの受信と、入力データを使用して制御指令を生成する制御プログラムの実行とを順次繰り返すことによって、1または複数のデバイスを制御するように構成される。制御指令の送信処理において、プロセッサは、前回の制御周期における制御プログラムの実行により生成された制御指令をフレームに格納する処理と、制御指令が格納されたフレームを制御対象に送信するように通信回路を制御する処理とを実行するように構成される。プロセッサは、次回の制御周期で実行される、制御指令をフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する。
本開示によれば、制御装置において、次回の制御周期で実行される送信処理に含まれるソフトウェア処理の少なくとも一部を、今回の制御周期内で実行するように、送信処理のスケジューリングが実行されるため、次回の制御周期では、送信処理にて実行されるソフトウェア処理のデータ処理量が低減され、処理時間のばらつきを低減することができる。これにより、制御装置におけるフレームの送信タイミングが保証されるため、複数のデバイス間の同期処理の精度を確保することができる。
本開示の一例によれば、制御周期内におけるフレームの送信タイミングを保証するための新たな構成を提供することができる。
以下、図面を参照しつつ、本発明に従う各本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各本実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
<A.適用例>
まず、図1および図2を参照して、本発明が適用される場面の一例について説明する。
まず、図1および図2を参照して、本発明が適用される場面の一例について説明する。
図1は、本実施の形態に係る制御システム1の全体構成例を模式的に示す図である。図1には、本実施の形態に係る制御装置100を中心とした制御システム1を示す。
図1を参照して、制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルコントローラ)として具現化されてもよい。制御装置100は、フィールドネットワーク2を介して各種のフィールド機器500と接続されてもよい。制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器500との間でデータを遣り取りする。一般的に、「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、以下の説明においては、「フィールドネットワーク」と総称する。すなわち、本明細書の「フィールドネットワーク」は、狭義の「フィールドネットワーク」に加えて「フィールドバス」を含み得る概念である。
フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行なうバスまたはネットワークを採用することが好ましい。このような定周期通信を行なうバスまたはネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
フィールドネットワーク2には、任意のフィールド機器500を接続することができる。フィールド機器500は、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含む。
フィールドネットワーク2として、EtherCAT(登録商標)を採用した場合には、フィールドネットワーク2に接続されるノードのうち少なくとも1つが「マスタ」として機能し、その他のノードが「スレーブ」として機能する。「マスタ」として機能するノードは、フィールドネットワーク2におけるフレームの転送タイミングなどを管理する。
図1に示す例においては、制御装置100が「マスタ」として機能し、その他のフィールド機器500が「スレーブ」として機能する。マスタ-スレーブ型の構成を採用するフィールドネットワーク2においては、ノード間で互いに時刻同期されたタイマTMRを有しており、各ノードが有するタイマTMRが示す時刻(実質的には、カウンタ値)に基づいて、フレームの転送タイミングなどが決定される。
図1に示す構成においては、フィールドネットワーク2に接続されるフィールド機器500は、リモートI/O(Input/Output)装置510と、ロボットコントローラ522,526と、サーボドライバ540,544とを含む。
ロボットコントローラ522,526およびサーボドライバ540,544は、制御装置100からの制御指令に従って動作する1または複数のアクチュエータ(デバイス)に相当する。サーボドライバ540,544に対する制御指令は、制御装置100においてサイクリック実行されるシーケンスプログラムに含まれるモーション指令に従って生成される。
なお、図1には、制御装置100からの制御指令に従って動作する1または複数のアクチュエータについても、フィールドネットワーク2に接続されている例を示すが、これに限らず、制御装置100からの制御指令を受けることができれば、どのような接続形態であってもよい。例えば、フィールドネットワーク2に接続されたリモートI/O装置510から信号線を介して制御指令を与えるようにしてもよい。
図2は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。図2を参照して、本実施の形態に係る制御装置100は、CPUユニットと称される演算処理部であり、プロセッサ102と、フィールドネットワークコントローラ130とを備える。
フィールドネットワークコントローラ130は、フィールドネットワーク2を介したフィールド機器500の間のデータの遣り取りを制御する。このようなデータの遣り取りは、制御装置100からフィールド機器500に対する制御指令などのデータ(以下、「出力データ」とも称す。)を送信する処理と、フィールド機器500において収集または生成されたデータ(以下、「入力データ」とも称す。)を制御装置100が受信する処理とを含む。フィールドネットワークコントローラ130は、「通信回路」の一実施例に対応する。
制御装置100は、予め定められた制御周期毎に、出力データの送信と、入力データの受信と、入力データを使用して出力データを生成する制御プログラムの実行とを順次繰り返すことによって、フィールド機器500を制御するように構成されている。
本明細書において、制御プログラムは、ユーザにおける制御目的に応じて作成されるユーザプログラムと、ユーザプログラムと協働してユーザにおける制御目的を実現するシーケンスプログラムとを含む。シーケンスプログラムは、シーケンス命令およびモーション命令のうち少なくとも1つを含み得る。シーケンス命令は、入力値、出力値、内部値などを演算する1または複数の論理回路により記述される1または複数の命令を包含する用語である。モーション命令は、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加加速度などの数値を制御指令として演算するための1または複数の命令を包含する用語である。
1回の制御周期において、シーケンスプログラムは、ユーザプログラムとともに実行される。制御周期毎にシーケンスプログラムを実行することで出力される制御指令は、典型的には、シーケンス命令に従って決定されるデジタル出力のオン/オフ、ならびに、モーション命令に従って演算されるアナログ出力を含む。
本実施の形態に係る制御装置100において、プロセッサ102は、出力データの送信処理において、(1)前回の制御周期における制御プログラムの実行により生成された出力データ(制御指令)をフレームに格納する処理、および(2)出力データが格納されたフレームをフィールド機器500に送信するようにフィールドネットワークコントローラ130を制御する処理を実行するように構成される。そして、上記構成において、プロセッサは、次回の制御周期で実行される、(1)出力データをフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する構成となっている。
出力データの送信処理のうち(1)出力データをフレームに格納する処理は、プロセッサ102によるソフトウェア処理で実現されるため、プロセッサ102の処理能力などに依存して、処理時間にばらつきが生じることがある。そのため、制御装置100からフィールドネットワーク2へフレームが送信されるタイミングにばらつきが生じてしまう場合がある。処理時間のばらつきが、処理時間全体のうちの所定の割合を占める場合には、プロセッサ102が処理すべきデータ量が増えるに従って、処理時間のばらつきも大きくなるため、結果的にフレームの送信タイミングのばらつきが増長されてしまうことが懸念される。
このように、制御装置100におけるフレームの送信タイミングにばらつきが生じると、フィールドネットワーク2上のフィールド機器500が出力データを受信するタイミングに影響を及ぼすおそれがある。これにより、複数のフィールド機器500間の同期処理の精度を低下させることが懸念される。このように、制御装置100においては、ソフトウェア処理におけるデータ処理量が、フレームの送信タイミングのばらつき精度に大きな影響を及ぼすことから、フレームの送信タイミングを保証することが難しいという課題がある。
本実施の形態に係る制御装置100においては、次回の制御周期で実行される送信処理に含まれるソフトウェア処理の少なくとも一部が、今回の制御周期内で実行するように、送信処理のスケジューリングが行なわれる。これによると、次回の制御周期の開始タイミングにおいて実行される送信処理では、ソフトウェア処理のデータ処理量が低減されるために、処理時間のばらつきを低減することができる。このように処理時間のばらつきが低減されることによって、フレームの送信タイミングのばらつきを低減することができ、結果的に制御周期内におけるフレームの送信タイミングを保証することができる。これによると、フィールドネットワーク2上のフィールド機器500が出力データを受信するタイミングを保証することができるため、複数のフィールド機器500間の同期処理の精度を確保することができる。
以下、本発明のより具体的な応用例として、本実施の形態に係る制御システム1のより詳細な構成および処理について説明する。
<B.制御システムの全体構成例>
まず、図1に示す制御システム1の全体構成例についてより詳細に説明する。
まず、図1に示す制御システム1の全体構成例についてより詳細に説明する。
図1に示す構成例において、サーボドライバ540,544は、制御装置100からの制御指令(例えば、位置指令または速度指令など)に従って、サーボモータ542,546をそれぞれ駆動する。
ロボットコントローラ522はロボット520を駆動し、ロボットコントローラ526はロボット524を駆動する。ロボットコントローラ522,526は、制御装置100からの制御指令(位置指令または速度指令など)に従って、軌跡計算および各軸の角度計算などを行なうとともに、計算結果に従って、ロボット520,524を構成するサーボモータなどを駆動する。
リモートI/O装置510は、典型的には、フィールドネットワーク2を介して通信を行なう通信カプラと、入力データの取得および出力データの出力を行なうための入出力部(以下、「I/Oユニット」とも称す。)とを含む。リモートI/O装置510には、入力リレーや各種センサ(例えば、アナログセンサ、温度センサ、振動センサなど)などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。
フィールド機器500としては、これらに限られることなく、入力データを収集する任意のデバイス(例えば、視覚センサなど)、ならびに、出力データに従う何らかの作用を与える任意のデバイス(例えば、インバータ装置など)などを採用することができる。
フィールドネットワーク2を介して、制御装置100とフィールド機器500との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。このようなデータの遣り取りは、フィールド機器500において収集または生成されたデータ(入力データ)を制御装置100が受信する処理、および、制御装置100からフィールド機器500に対する制御指令などのデータ(出力データ)を送信する処理を含む。このような遣り取りされるデータの更新処理が「入出力処理」に相当する。
制御装置100は、上位ネットワーク6を介して、他の装置に接続されていてもよい。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)やEtherNet/IP(登録商標)が採用されていてもよい。より具体的には、上位ネットワーク6には、1または複数のサーバ装置300または1または複数の表示装置400が接続されてもよい。
サーバ装置300としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を上位ネットワーク6に接続するようにしてもよい。情報系サービスとしては、制御対象の製造装置や設備からの情報を取得して、マクロ的またはミクロ的な分析などを行なう処理が想定される。例えば、制御対象の製造装置や設備からの情報に含まれる何らかの特徴的な傾向を抽出するデータマイニングや、制御対象の設備や機械からの情報に基づく機械学習を行なうための機械学習ツールなどが想定される。
表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを出力するとともに、制御装置100での演算結果などをグラフィカルに表示する。
さらに、制御装置100には、サポート装置200が接続可能になっている。サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したシーケンスプログラムを制御装置100へ出力する機能、制御装置100上で実行されるシーケンスプログラムなどをオンラインで修正・変更する機能、などを提供する。
<C.制御装置のハードウェア構成例>
次に、本実施の形態に係る制御装置100のハードウェア構成例について説明する。図2は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。
次に、本実施の形態に係る制御装置100のハードウェア構成例について説明する。図2は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。
図2を参照して、制御装置100は、CPUユニットと称される演算処理部であり、プロセッサ102と、チップセット104と、主メモリ106と、ストレージ108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。すなわち、制御装置100は、1または複数のプロセッサ102、および/または、1または複数のコアを有するプロセッサ102を有している。チップセット104は、プロセッサ102および周辺エレメントを制御することで、制御装置100全体としての処理を実現する。主メモリ106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ108は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
プロセッサ102は、ストレージ108に格納された各種プログラムを読出して、主メモリ106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。ストレージ108には、基本的な機能を実現するためのシステムプログラム34に加えて、制御対象の製造装置や設備に応じて作成されるシーケンスプログラム32およびユーザプログラム30、および設定情報40が格納される。
システムプログラム34は、制御装置100として機能を提供するためのソフトウェア群である。具体的には、システムプログラム34は、スケジューラプログラムと、入出力処理プログラムと、その他のシステムプログラムとを含む。
シーケンスプログラム32は、実行毎に全体がスキャンされて、実行毎に制御指令を出力できるプログラムを包含する概念である。シーケンスプログラム32には、シーケンス命令および/またはモーション命令を含み得る。基本的には、シーケンスプログラム32は、制御対象やアプリケーションに応じて、ユーザによって任意に作成される。
ユーザプログラム30は、ユーザにおける制御目的に応じて作成される。すなわち、制御システム1を用いて制御する対象のライン(プロセス)などに応じて、任意に設計されるプログラムである。ユーザプログラム30は、シーケンスプログラム32と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム30は、シーケンスプログラム32によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム30およびシーケンスプログラム32を、「制御プログラム」と総称する場合もある。
設定情報40は、制御装置100を含む制御システム1の構成や設定を定義する情報を含む。設定情報には、フィールドネットワーク2に接続されているフィールド機器500に関連付けられた、ユーザプログラムや設定値の情報、および、上位ネットワーク6に接続されている装置に関連付けられた、ユーザプログラムや設定値の情報を含む。
ストレージ108には、フィールドネットワーク2における通信の手順や遣り取りを規定する複数のプロトコルの階層からなるプロトコルスタック36、および、フィールドネットワークコントローラ130を制御するデバイスドライバ38がさらに格納される。
上位ネットワークコントローラ110は、上位ネットワーク6を介して、サーバ装置300や表示装置400(図1参照)などとの間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
メモリカードインターフェイス114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(シーケンスプログラム32、ユーザプログラム30など)を読出すことが可能になっている。
内部バスコントローラ120は、制御装置100に装着されるI/Oユニット12との間のデータの遣り取りを制御する。具体的には、内部バスコントローラ120は、I/Oユニット12へ出力されるデータ(出力データ)の送信バッファ、および、I/Oユニット12から入力されるデータ(入力データ)の受信バッファとして機能する。なお、プロセッサ102による演算処理によって生成された出力データは、原始的にはストレージ108に格納される。そして、特定のI/Oユニット12へ転送されるべき出力データは、ストレージ108から読み出されて、送信バッファに一時的に保持される。また、I/Oユニット12から転送された入力データは、受信バッファに一時的に保持された後、ストレージ108に移される。内部バスコントローラ120は、さらに、I/Oユニット12との間で、送信バッファの出力データを送信する処理、および入力データを受信して受信バッファに格納する処理を行なう。典型的には、内部バスコントローラ120は、内部バスにおける物理層およびデータリンク層の機能を提供する。
フィールドネットワークコントローラ130は、フィールドネットワーク2を介したフィールド機器500との間のデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ130は、フィールドネットワーク2の規格に従い、出力データの送信および入力データの受信を制御する。具体的には、フィールドネットワークコントローラ130は、フィールド機器500へ出力されるデータ(出力データ)の送信バッファ、および、フィールド機器500から入力されるデータ(入力データ)の受信バッファとして機能する。なお、プロセッサ102による演算処理によって生成された出力データは、原始的にはストレージ108に格納される。そして、特定のフィールド機器500へ転送されるべき出力データは、ストレージ108から読み出されて、送信バッファに一時的に保持される。また、フィールド機器500から転送された入力データは、受信バッファに一時的に保持された後、ストレージ108に移される。フィールドネットワークコントローラ130は、さらに、フィールド機器500との間で、送信バッファの出力データを送信する処理、および入力データを受信して受信バッファに格納する処理を行なう。典型的には、フィールドネットワークコントローラ130は、フィールドネットワーク2における物理層およびデータリンク層の機能を提供する。
なお、図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
図2に示す制御システム1においては、制御装置100、サポート装置200および表示装置400がそれぞれ別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
<D.制御装置のソフトウェア構成例>
次に、本実施の形態に係る制御装置100のソフトウェア構成の一例について説明する。図3は、本実施の形態に係る制御装置100のソフトウェア構成の一例を示す模式図である。
次に、本実施の形態に係る制御装置100のソフトウェア構成の一例について説明する。図3は、本実施の形態に係る制御装置100のソフトウェア構成の一例を示す模式図である。
図3を参照して、制御装置100のプロセッサ102ではスケジューラ170が実行される。スケジューラ170は、予め定められた制御周期に従って、複数の処理の実行順序や実行中断などを決定する。より具体的には、スケジューラ170は、制御プログラム実行処理173と、各種処理を含む周辺処理174と、入出力処理177に対して、予め定められた優先度および制御周期などに従って、処理リソース(プロセッサ時間およびメモリなど)を割り当てる。
制御プログラム実行処理173は、ユーザプログラム30およびシーケンスプログラム32(制御プログラム)の実行に係る処理を含む。
入出力処理177は、フィールドネットワーク2を介して制御装置100とフィールド機器500との間で遣り取りされるデータの更新処理である。入出力処理は、入力データを受信して制御装置100へ転送する処理(以下、「受信処理」とも称す。)、および、制御装置100からフィールド機器500に対して出力データを送信する処理(以下、「送信処理」とも称す。)を含む。これらの処理は、プロトコルスタック36に従って実行される。
さらに、制御装置100のプロセッサ102には、デバイスドライバ38が実装されており、デバイスドライバ38がフィールドネットワークコントローラ130などを制御する。
スケジューラ170は、入出力処理および制御プログラム実行処理のスケジューリングを行なう。入出力処理のうち送信処理のスケジューリングとしては、後述する3種類の送信モード(送信モード1、送信モード2、送信モード3)172が用意されている。これら3つの送信モードは、1制御周期内におけるフィールド機器500へのフレームの送信タイミングが互いに異なるように構成されている。これらの3つの送信モードを全て実装する必要はなく、必要な送信モードのみを実装するようにしてもよい。3つの送信モードに加えて、あるいは、3つの送信モードに代えて、3つの送信モード以外の送信モードを採用してもよい。
なお、上記3つの送信モードのうちどの送信モードを用いるかについては、サポート装置200において、制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定する際に、設定することができる。
<E.タスクの実行スケジュール>
最初に、図4を参照して、比較例に係るタスクの実行スケジュールについて説明する。図4は、比較例に係るタスクの実行スケジュールを示すタイミングチャートである。
最初に、図4を参照して、比較例に係るタスクの実行スケジュールについて説明する。図4は、比較例に係るタスクの実行スケジュールを示すタイミングチャートである。
図4を参照して、制御装置100が実行するタスクとしては、入出力処理(送信処理および受信処理)、ユーザプログラム30に従う制御指令の出力処理(ユーザプログラム処理)、および、シーケンスプログラム32に含まれるモーション命令に従う制御指令の出力処理(モーション処理)が設定されている。これらのタスクは、制御周期ごとに実行される。
なお、ユーザプログラム処理は、制御周期毎にユーザプログラム30を実行して制御指令を演算する処理である。モーション処理は、モーション命令に従って、制御指令を制御周期毎に演算する処理である。これらの制御指令は、ロボットコントローラ522,526およびサーボドライバ540,544の少なくとも一部に向けられたものとなる。以下では、ユーザプログラム処理およびモーション処理をまとめて、制御プログラム処理とも称する。
送信処理は、ユーザプログラム30およびシーケンスプログラム32の実行によって生成された出力データ(制御指令など)を、フィールドネットワークコントローラ130を経てフィールドネットワーク2上のフィールド機器500に送信する処理である。具体的には、送信処理は、(1)フレーム生成、(2)データ格納、(3)デバイスドライバ、(4)ハードウェアにより構成される。このうち(1)フレーム生成、(2)データ格納、および(3)デバイスドライバは、プロセッサ102により実行される。
(1)フレーム生成は、フィールドネットワーク2上を伝送されるフレームを生成する処理である。図5は、フレームの構成例を示す。図5に示すように、フレーム800は、例えば、プリアンブル部81、ヘッダ部82、データ部83およびフッタ部84を含む。
プリアンブル部81は、フレームの開始を表す同期信号を示すプリアンブルが格納される。ヘッダ部82は、フィールドネットワーク2においてTALKERであるフレームの送信元、フレームのLISTNERである送信先、およびタイプが格納される。送信元および送信先には、各種のアドレスを適用することができる。Ethernetベースの産業用ネットワークの場合、ヘッダ部82は、Ethernetヘッダおよび産業用ネットワークとしてのヘッダにより構成される。Ethernetヘッダは、送信元、送信先およびEtherタイプ等を含み、産業用ネットワークとしてのヘッダは、データサイズおよびタイプ等を含む。
データ部83は、フィールドネットワーク2を介して伝送させるべきデータ(出力データおよび入力データ)が格納される。データ部83には、制御系データを含む各種のデータが格納され得る。制御系データは、製造装置や設備の制御に用いられるデータであり、ユーザプログラム30およびシーケンスプログラム32の実行によって生成された制御指令を含む。データとして制御系データが格納されたフレーム800は、その送信元は制御装置100を示し、送信先は任意のフィールド機器500を示す。
フッタ部84は、誤り検知のFCS(Frame Check Sequence)が格納される。Ethernetベースの産業用ネットワークの場合、フッタ部84は、Ethernetフッタにより構成される。フッタ部84は、さらに産業用ネットワークのフッタを含む場合がある。
なお、図5のフレームの構成は一例であって限定されない。また、本実施の形態では、フィールドネットワーク2を伝送されるデータの形式は、フレームとしているが、フレームに限定されない。
(1)フレーム生成では、プロセッサ102は、図5に示したフレーム800におけるヘッダ部82およびフッタ部84を形成する。具体的には、プロセッサ102は、ヘッダ部82に送信元、送信先およびタイプ等を格納する。プロセッサ102は、制御装置100のアドレスを送信元に格納するとともに、制御指令が送信されるべきフィールド機器500を特定し、該フィールド機器500のアドレスを送信先に格納する。プロセッサ102は、さらに、フッタ部84にFCSを格納する。なお、Ethernetベースの産業用ネットワークの場合、プロセッサ102は、Ehternetヘッダおよび産業用ネットワークとしてのヘッダを形成するとともに、Ethernetフッタおよび産業用ネットワークとしてのフッタを形成する。
(2)データ格納では、プロセッサ102は、フレーム800におけるデータ部83に各種のデータを格納する。プロセッサ102は、前回の制御周期における、ユーザプログラム30に従う制御指令の出力処理(ユーザプログラム処理)、およびシーケンスプログラム32に含まれるモーション命令に従う制御指令の出力処理(モーション処理)によって生成された制御指令をフレームのデータ部83に格納する。このとき、プロセッサ102は、同一のフィールド機器500に送信される複数の出力データを一括して送信できるように、同一のフィールド機器500に向けられた出力データ群がまとめられるように出力データを再配置する。以下の説明において、(1)フレーム生成および(2)データ格納をまとめて、「出力データをフレームに格納する処理」とも称する。
(3)デバイスドライバでは、プロセッサ102は、フィールドネットワークコントローラ130を制御する。プロセッサ102は、出力データが格納されたフレームをフィールドネットワークコントローラ130へ転送する。
(4)ハードウェアでは、フィールドネットワークコントローラ130は、転送されたフレームを、フィールドネットワーク2を介して送信先(フィールド機器500)へ送信する。
受信処理は、フィールドネットワーク2上のフィールド機器500から転送された入力データを、フィールドネットワークコントローラ130を経てプロセッサ102に送信する処理である。具体的には、送信先(フィールド機器500)からフィールドネットワーク2を介して送信された入力データは、フィールドネットワークコントローラ130によって受信され、内部の受信バッファに格納される。この受信バッファに格納された入力データは、プロセッサ102に転送される。プロセッサ102は転送された入力データを主メモリへコピーする。このとき、プロセッサ102は、主メモリ106にコピーされた入力データを制御プログラムが使用するのに適した形式に再配置する。
フィールドネットワーク2がEtherCAT(登録商標)を採用する場合、単一のフレームに、各フィールド機器500宛ての出力データおよび各フィールド機器500からの入力データが含まれる。マスタに設定される制御装置100からフレームが送信されると、送信されたフレームはデイジーチェーン接続されたそれぞれのフィールド機器500を経由して順次転送される。なお、制御装置100以外のそれぞれのフィールド機器500はスレーブに設定される。フレームが末端のフィールド機器500に到達すると、そこで当該フレームは全二重の通信路を折り返して再びスレーブであるそれぞれのフィールド機器500を経由して制御装置100に戻る。各フィールド機器500においては、往路のフレームをFIFO(First In First Out)方式で通過させながら、自スレーブ宛ての出力データを選択的に取り込むとともに、自スレーブで発生した入力データをフレームの適切な位置に書き込む。各スレーブは、帰路のフレームについては、出力データの読み出し、および入力データの書き込みは行なわずに通過させる。
このように、EtherCAT(登録商標)の場合は、単一のフレームを送信および受信することが、フィールドネットワークコントローラ130による、プロセッサ102から各フィールド機器500への出力データの転送、および、各フィールド機器500からプロセッサ102への入力データの転送に相当する。
フィールドネットワーク2としてEtherCAT(登録商標)を用いる場合、出力データを含むフレームを送信し、そのフレームがスレーブのそれぞれのフィールド機器500を経由して戻ってきた場合には、そのフレームに入力データが含まれることになる。そのため、実行順序については、送信処理の後に受信処理が実行されることになる。
受信処理が実行された後、プロセッサ102は、入力データを用いて、ユーザプログラム処理およびシーケンス処理を順次実行する。すなわち、プロセッサ102は、入力データを用いて出力データを生成する制御プログラムを実行する。そして、制御プログラムの実行結果に応じて、プロセッサ102は、次の制御周期において出力データの送信および入力データの受信を行なう。
このように、制御装置100は、出力データの送信(送信処理)と、入力データの受信(受信処理)と、入力データを使用して出力データを生成する制御プログラムの実行(制御プログラム処理)とを順次繰り返すことによって制御対象を制御する。すなわち、プロセッサ102は、ストレージ108に格納された制御プログラム(ユーザプログラム30およびシーケンスプログラム32)を実行し、その実行結果に応じて、フィールドネットワークコントローラ130は、制御周期毎に出力データの送信および入力データの受信を行なう。
ここで、図4に示す比較例においては、制御周期が開始すると、送信処理として、プロセッサ102は(1)フレーム生成、(2)データ格納、(3)デバイスドライバを順次実行し、フィールドネットワークコントローラ130は(4)ハードウェアを構成し、フィールドネットワーク2へフレームを送信する。このうち(1)フレーム生成、および(2)データ格納(すなわち、出力データをフレームに格納する処理)は、プロセッサ102によるソフトウェア処理で実行される。そのため、プロセッサ102が処理すべきデータ量が増加するに従って、処理時間のばらつきが大きくなる傾向がある。その結果、データ量の増加に伴い、制御装置100からフィールドネットワーク2へフレームが送信されるタイミングのばらつきが増長されることが懸念される。
このように、比較例では、送信処理におけるデータ処理量が、制御装置100からフィールドネットワーク2へフレームが送信されるタイミングのばらつき精度に影響を及ぼすことから、フレームの送信タイミングを厳密に保証することが難しいという課題がある。フレームの送信タイミングにばらつきが発生すると、フィールドネットワーク2上のフィールド機器500がフレームを受信するタイミングに影響を及ぼす可能性があるため、複数のフィールド機器500間の同期処理の精度を低下させることが懸念される。
そこで、本実施の形態に係る制御装置100では、送信処理において、プロセッサ102は、次回の制御周期で実行される、出力データをフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する。すなわち、次回の制御周期で実行される送信処理に含まれるソフトウェア処理の少なくとも一部を、今回の制御周期内で実行するように、送信処理のスケジューリングが実行される。
これによると、次回の制御周期では、送信処理にて実行されるソフトウェア処理のデータ処理量が低減されることから、ソフトウェア処理に要する処理時間のばらつきが低減されることになる。ソフトウェア処理の処理時間のばらつきが低減されることによって、フレームが送信されるタイミングのばらつきを低減することができる。これにより、フィールドネットワーク2上のフィールド機器500がフレームを受信するタイミングを保証することができるため、複数のフィールド機器500間の同期処理の精度を確保することができる。
以下では、本実施の形態に係る送信処理のスケジューリングについて説明する。図6から図8に示されるタスクの実行スケジュールは、すなわちプロセッサリソースの割当ては、スケジューラ170(図3参照)によって実行される。
送信処理については、スケジューラ170は、サポート装置200で設定された制御装置100に接続される各種デバイスの構成情報(コンフィギュレーション)に基づいて、3種類の送信モード(送信モード1、送信モード2および送信モード3)を選択的に実行することができる。
具体的には、送信モード1は、制御装置100と、上位ネットワーク6に接続される他の装置(サーバ装置300および表示装置400など)との間でデータの遣り取りが行なわれない構成に対して適用され得る。一方、送信モード2および送信モード3は、制御装置100と、上位ネットワーク6に接続される他の装置との間でデータの遣り取りが行なわれる構成に対して適用され得る。
上位ネットワーク6に接続される他の装置との間のデータの遣り取りは、制御周期内における、制御プログラムを実行した後の残り時間を使って実行される。このデータの遣り取りによって、制御プログラムの実行により生成された出力データが更新される場合がある。この場合、更新された出力データをフレームに格納する必要が生じる。送信モード2および送信モード3は、出力データが更新される場合における送信処理のスケジューリングを規定している。
なお、スケジューラ170は、タスクの実行中において、上記3つの送信モードを適宜選択するという動的スケジューリングを行なわないこととする。これは、3つの送信モードは送信処理に要する時間が互いに異なるため、動的に送信モードを切り替えると、送信処理時間が変動してしまい、結果的にフィールド機器500がフレームを受信するタイミングを変動させてしまう虞があるためである。
(f1.送信モード1)
図6は、本実施の形態に係るタスクの実行スケジュールの第1の構成例を示すタイミングチャートである。第1の構成例は、送信モード1が選択されている場合のタスクの実行スケジュールを示す。
図6は、本実施の形態に係るタスクの実行スケジュールの第1の構成例を示すタイミングチャートである。第1の構成例は、送信モード1が選択されている場合のタスクの実行スケジュールを示す。
図6を参照して、第1の構成例においては、送信処理を構成する(1)フレーム生成、(2)データ格納、(3)デバイスドライバ、および(4)ハードウェアのうち、(1)フレーム生成、および(2)データ格納は、今回の制御周期内で制御プログラムを実行した後に実行される。そして、次回の制御周期が開始されると、(3)デバイスドライバ、および(4)ハードウェアが実行される。
図4に示した比較例と図6の第1の構成例とを比較すると、本構成例では、送信処理のうち出力データをフレームに格納する処理は、制御プログラムを実行した後の残り時間を利用して、前倒しで実行されている。
上述したように、出力データをフレームに格納する処理は、プロセッサ102によるソフトウェア処理で実行されるため、データ処理量が増えるに従って処理時間のばらつきが大きくなる傾向がある。そのため、図4の比較例のように、次回の制御周期が開始されたタイミングにおいて、出力データをフレームに格納する処理((1)フレーム生成、および(2)データ格納)を実行すると、制御装置100からフレームが送信されるタイミングにばらつきが生じてしまうことが懸念される。
これに対して、第1の構成例では、送信タイミングのばらつきの要因となり得る、出力データをフレームに格納する処理が、今回の制御周期内において前倒しで実行されるため、次回の制御周期において、制御装置100からフレームが送信されるタイミングのばらつきが低減される。これにより、フレームの送信タイミングを保証することが可能となるため、複数のフィールド機器500間の同期処理の精度を確保することができる。
(f2.送信モード2)
図7は、本実施の形態に係るタスクの実行スケジュールの第2の構成例を示すタイミングチャートである。第2の構成例は、送信モード2が選択されている場合のタスクの実行スケジュールを示す。
図7は、本実施の形態に係るタスクの実行スケジュールの第2の構成例を示すタイミングチャートである。第2の構成例は、送信モード2が選択されている場合のタスクの実行スケジュールを示す。
図7を参照して、第2の構成例においては、送信処理を構成する(1)フレーム生成、(2)データ格納、(3)デバイスドライバ、および(4)ハードウェアのうち、(1)フレーム生成は、今回の制御周期内で、受信処理を実行した後であって、ユーザプログラムを実行する前に実行される。そして、次回の制御周期が開始されると、(2)データ格納、(3)デバイスドライバおよび(4)ハードウェアが順次実行される。
第2の構成例においては、制御プログラムを実行して出力データが生成される前に、フレームが生成されるため、(1)フレーム生成の段階では、フレームのデータ部にはダミーデータ(制御を指定しないデータ)が一時的に格納される。そして、ダミーデータが格納された後、ユーザプログラム処理およびモーション処理が順次実行される。
モーション処理が実行された後、上位ネットワーク6を介して、制御装置100と他の装置(サーバ装置300および表示装置400など)との間でデータの遣り取りが行なわれる。このデータの遣り取りによって、出力データが更新される場合がある。
第2の構成例では、次回の制御周期が開始されると、(2)データ格納として、プロセッサ102は、フレームに格納されているダミーデータを、制御プログラムにより生成された出力データに書き換える処理を実行する。この出力データは、上位ネットワーク6を介した他の装置との通信によって更新されたデータを含んでいる。出力データが格納された後、(3)デバイスドライバ、および(4)ハードウェアが順次実行される。
第2の構成例においては、ソフトウェア処理のうち(1)フレーム生成が前倒しで実行されるため、図4の比較例に比べて、次回の制御周期における送信処理にて実行されるソフトウェア処理のデータ処理量が低減される。ソフトウェア処理のデータ処理量が低減されることによって、処理時間のばらつきも低減されるため、フレームが送信されるタイミングのばらつきを低減することができる。これにより、フィールドネットワーク2上のフィールド機器500がフレームを受信するタイミングを保証することができるため、複数のフィールド機器500間の同期処理の精度を確保することが可能となる。
(f3.送信モード3)
図8は、本実施の形態に係るタスクの実行スケジュールの第3の構成例を示すタイミングチャートである。第3の構成例は、送信モード3が選択されている場合のタスクの実行スケジュールを示す。
図8は、本実施の形態に係るタスクの実行スケジュールの第3の構成例を示すタイミングチャートである。第3の構成例は、送信モード3が選択されている場合のタスクの実行スケジュールを示す。
図8を参照して、第3の構成例においては、送信処理を構成する(1)フレーム生成、(2)データ格納、(3)デバイスドライバ、および(4)ハードウェアのうち、(1)フレーム生成および(2)データ格納は、今回の制御周期内において制御プログラムを実行した後に実行される。ただし、本構成例では、制御プログラムを実行した後に、上位ネットワーク6を介して制御装置100と他の装置との間でデータの遣り取りが行なわれるため、出力データが更新される場合がある。そのため、次回の制御周期が開始されると、最初に、更新された出力データをフレームに格納する処理が実行される。出力データが格納された後、(3)デバイスドライバ、および(4)ハードウェアが順次実行される。
第3の構成例においては、ソフトウェア処理のうち(1)フレーム生成および(2)データ格納が前倒しで実行されるため、図4の比較例に比べて、次回の制御周期における送信処理にて実行されるソフトウェア処理のデータ処理量が低減される。ソフトウェア処理のデータ処理量が低減されることによって、処理時間のばらつきも低減されるため、フレームが送信されるタイミングのばらつきを低減することができる。これにより、フィールドネットワーク2上のフィールド機器500がフレームを受信するタイミングを保証することができるため、複数のフィールド機器500間の同期処理の精度を確保することが可能となる。
なお、第3の構成例では、第2の構成例に比較して、次回の制御周期の開始タイミングにおけるデータ処理量がさらに低減される。したがって、制御周期内におけるフレームが送信されるタイミングをより厳密に保証することができる。
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
制御対象を制御するための制御装置(1)であって、
プロセッサ(102)と、
前記制御対象に対する出力データの送信、および前記制御対象からの入力データの受信を行なう通信回路(130)とを備え、
前記制御装置は、予め定められた制御周期毎に、前記出力データの送信と、前記入力データの受信と、前記入力データを使用して前記出力データを生成する制御プログラムの実行とを順次繰り返すことによって、前記制御対象を制御するように構成されており、
前記出力データの送信処理において、前記プロセッサは、
前回の制御周期における前記制御プログラムの実行により生成された前記出力データをフレームに格納する処理と、
前記出力データが格納された前記フレームを前記制御対象に送信するように前記通信回路を制御する処理とを実行するように構成されており、
前記プロセッサは、次回の制御周期で実行される、前記出力データをフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する、制御装置。
[構成2]
前記プロセッサは、
今回の制御周期内で、前記制御プログラムを実行した後に、前記出力データをフレームに格納する処理を実行し、
次回の制御周期が開始されると、前記通信回路を制御する処理を実行する、構成1に記載の制御装置。
[構成3]
前記プロセッサは、
今回の制御周期内で、前記出力データをフレームに格納する処理の一部分を実行し、
次回の制御周期が開始されると、前記出力データをフレームに格納する処理の残りの部分、および前記通信回路を制御する処理を順次実行する、構成1に記載の制御装置。
[構成4]
前記出力データをフレームに格納する処理は、
前記フレームを生成する処理と、
生成された前記フレームに前記出力データを格納する処理とを含み、
前記制御装置は、上位ネットワーク(6)を介して他の装置(300,400)との間でデータを遣り取りするように構成されており、
制御周期内において、前記制御プログラムの実行後に、前記他の装置とのデータの遣り取りによって前記出力データが更新される場合、前記プロセッサは、
今回の制御周期内で、前記入力データを受信する処理を実行した後であって、前記制御プログラムを実行する前に、前記フレームを生成する処理を実行し、
次回の制御周期が開始されると、前記出力データを格納する処理を実行する、構成3に記載の制御装置。
[構成5]
前記出力データをフレームに格納する処理は、
前記フレームを生成する処理と、
生成された前記フレームに前記出力データを格納する処理とを含み、
前記制御装置は、上位ネットワークを介して他の装置との間でデータを遣り取りするように構成されており、
制御周期内において、前記制御プログラムの実行後に、前記他の装置とのデータの遣り取りによって前記出力データが更新される場合、前記プロセッサは、
今回の制御周期内で、前記制御プログラムを実行した後であって、前記他の装置とのデータの遣り取りを実行する前に、前記出力データをフレームに格納する処理を実行し、
次回の制御周期が開始されると、更新された前記出力データを前記フレームに格納する処理、および前記通信回路を制御する処理を順次実行する、構成3に記載の制御装置。
[構成6]
制御装置と、
前記制御装置からの制御指令に従って動作する1または複数のデバイス(500)とを備え、
前記制御装置および前記1または複数のデバイスは、互いに時刻同期されたタイマ(TMR)を有しており、
前記制御装置は、
プロセッサと、
前記1または複数のデバイスに対する制御指令の送信、および前記1または複数のデバイスからの入力データの受信を行なう通信回路とを含み、
前記制御装置は、予め定められた制御周期毎に、前記制御指令の送信と、前記入力データの受信と、前記入力データを使用して前記制御指令を生成する制御プログラムの実行とを順次繰り返すことによって、前記1または複数のデバイスを制御するように構成されており、
前記制御指令の送信処理において、前記プロセッサは、
前回の制御周期における前記制御プログラムの実行により生成された前記制御指令をフレームに格納する処理と、
前記制御指令が格納された前記フレームを前記制御対象に送信するように前記通信回路を制御する処理とを実行するように構成されており、
前記プロセッサは、次回の制御周期で実行される、前記制御指令をフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する、制御システム。
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
制御対象を制御するための制御装置(1)であって、
プロセッサ(102)と、
前記制御対象に対する出力データの送信、および前記制御対象からの入力データの受信を行なう通信回路(130)とを備え、
前記制御装置は、予め定められた制御周期毎に、前記出力データの送信と、前記入力データの受信と、前記入力データを使用して前記出力データを生成する制御プログラムの実行とを順次繰り返すことによって、前記制御対象を制御するように構成されており、
前記出力データの送信処理において、前記プロセッサは、
前回の制御周期における前記制御プログラムの実行により生成された前記出力データをフレームに格納する処理と、
前記出力データが格納された前記フレームを前記制御対象に送信するように前記通信回路を制御する処理とを実行するように構成されており、
前記プロセッサは、次回の制御周期で実行される、前記出力データをフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する、制御装置。
[構成2]
前記プロセッサは、
今回の制御周期内で、前記制御プログラムを実行した後に、前記出力データをフレームに格納する処理を実行し、
次回の制御周期が開始されると、前記通信回路を制御する処理を実行する、構成1に記載の制御装置。
[構成3]
前記プロセッサは、
今回の制御周期内で、前記出力データをフレームに格納する処理の一部分を実行し、
次回の制御周期が開始されると、前記出力データをフレームに格納する処理の残りの部分、および前記通信回路を制御する処理を順次実行する、構成1に記載の制御装置。
[構成4]
前記出力データをフレームに格納する処理は、
前記フレームを生成する処理と、
生成された前記フレームに前記出力データを格納する処理とを含み、
前記制御装置は、上位ネットワーク(6)を介して他の装置(300,400)との間でデータを遣り取りするように構成されており、
制御周期内において、前記制御プログラムの実行後に、前記他の装置とのデータの遣り取りによって前記出力データが更新される場合、前記プロセッサは、
今回の制御周期内で、前記入力データを受信する処理を実行した後であって、前記制御プログラムを実行する前に、前記フレームを生成する処理を実行し、
次回の制御周期が開始されると、前記出力データを格納する処理を実行する、構成3に記載の制御装置。
[構成5]
前記出力データをフレームに格納する処理は、
前記フレームを生成する処理と、
生成された前記フレームに前記出力データを格納する処理とを含み、
前記制御装置は、上位ネットワークを介して他の装置との間でデータを遣り取りするように構成されており、
制御周期内において、前記制御プログラムの実行後に、前記他の装置とのデータの遣り取りによって前記出力データが更新される場合、前記プロセッサは、
今回の制御周期内で、前記制御プログラムを実行した後であって、前記他の装置とのデータの遣り取りを実行する前に、前記出力データをフレームに格納する処理を実行し、
次回の制御周期が開始されると、更新された前記出力データを前記フレームに格納する処理、および前記通信回路を制御する処理を順次実行する、構成3に記載の制御装置。
[構成6]
制御装置と、
前記制御装置からの制御指令に従って動作する1または複数のデバイス(500)とを備え、
前記制御装置および前記1または複数のデバイスは、互いに時刻同期されたタイマ(TMR)を有しており、
前記制御装置は、
プロセッサと、
前記1または複数のデバイスに対する制御指令の送信、および前記1または複数のデバイスからの入力データの受信を行なう通信回路とを含み、
前記制御装置は、予め定められた制御周期毎に、前記制御指令の送信と、前記入力データの受信と、前記入力データを使用して前記制御指令を生成する制御プログラムの実行とを順次繰り返すことによって、前記1または複数のデバイスを制御するように構成されており、
前記制御指令の送信処理において、前記プロセッサは、
前回の制御周期における前記制御プログラムの実行により生成された前記制御指令をフレームに格納する処理と、
前記制御指令が格納された前記フレームを前記制御対象に送信するように前記通信回路を制御する処理とを実行するように構成されており、
前記プロセッサは、次回の制御周期で実行される、前記制御指令をフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する、制御システム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、30 ユーザプログラム、32 シーケンスプログラム、34 システムプログラム、36 プロトコルスタック、38 デバイスドライバ、40 設定情報、81 プリアンブル部、82 ヘッダ部、83 データ部、84 フッタ部、100 制御装置、102 プロセッサ、104 チップセット、106 主メモリ、108 ストレージ、110 上位ネットワークコントローラ、112 USBコントローラ、114 メモリカードインターフェイス、116 メモリーカード、120 内部バスコントローラ、122 I/Oユニット、130 フィールドネットワークコントローラ、170 スケジューラ、172 送信モード、173 制御プログラム実行処理、174 その他周辺処理、177 入出力処理、200 サポート装置、300 サーバ装置、400 表示装置、500 フィールド機器、510 リモートI/O装置、520,524 ロボット、522,526 ロボットコントローラ、540,544 サーボドライバ、542,546 サーボモータ、800 フレーム。
Claims (6)
- 制御対象を制御するための制御装置であって、
プロセッサと、
前記制御対象に対する出力データの送信、および前記制御対象からの入力データの受信を行なう通信回路とを備え、
前記制御装置は、予め定められた制御周期毎に、前記出力データの送信と、前記入力データの受信と、前記入力データを使用して前記出力データを生成する制御プログラムの実行とを順次繰り返すことによって、前記制御対象を制御するように構成されており、
前記出力データの送信処理において、前記プロセッサは、
前回の制御周期における前記制御プログラムの実行により生成された前記出力データをフレームに格納する処理と、
前記出力データが格納されたフレームを前記制御対象に送信するように前記通信回路を制御する処理とを実行するように構成されており、
前記プロセッサは、次回の制御周期で実行される、前記出力データをフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する、制御装置。 - 前記プロセッサは、
今回の制御周期内で、前記制御プログラムを実行した後に、前記出力データをフレームに格納する処理を実行し、
次回の制御周期が開始されると、前記通信回路を制御する処理を実行する、請求項1に記載の制御装置。 - 前記プロセッサは、
今回の制御周期内で、前記出力データをフレームに格納する処理の一部分を実行し、
次回の制御周期が開始されると、前記出力データをフレームに格納する処理の残りの部分、および前記通信回路を制御する処理を順次実行する、請求項1に記載の制御装置。 - 前記出力データをフレームに格納する処理は、
前記フレームを生成する処理と、
生成された前記フレームに前記出力データを格納する処理とを含み、
前記制御装置は、上位ネットワークを介して他の装置との間でデータを遣り取りするように構成されており、
制御周期内において、前記制御プログラムの実行後に、前記他の装置とのデータの遣り取りによって前記出力データが更新される場合、前記プロセッサは、
今回の制御周期内で、前記入力データを受信する処理を実行した後であって、前記制御プログラムを実行する前に、前記フレームを生成する処理を実行し、
次回の制御周期が開始されると、前記出力データを格納する処理を実行する、請求項3に記載の制御装置。 - 前記出力データをフレームに格納する処理は、
前記フレームを生成する処理と、
生成された前記フレームに前記出力データを格納する処理とを含み、
前記制御装置は、上位ネットワークを介して他の装置との間でデータを遣り取りするように構成されており、
制御周期内において、前記制御プログラムの実行後に、前記他の装置とのデータの遣り取りによって前記出力データが更新される場合、前記プロセッサは、
今回の制御周期内で、前記制御プログラムを実行した後であって、前記他の装置とのデータの遣り取りを実行する前に、前記出力データをフレームに格納する処理を実行し、
次回の制御周期が開始されると、更新された前記出力データを前記フレームに格納する処理、および前記通信回路を制御する処理を順次実行する、請求項3に記載の制御装置。 - 制御装置と、
前記制御装置からの制御指令に従って動作する1または複数のデバイスとを備え、
前記制御装置および前記1または複数のデバイスは、互いに時刻同期されたタイマを有しており、
前記制御装置は、
プロセッサと、
前記1または複数のデバイスに対する制御指令の送信、および前記1または複数のデバイスからの入力データの受信を行なう通信回路とを含み、
前記制御装置は、予め定められた制御周期毎に、前記制御指令の送信と、前記入力データの受信と、前記入力データを使用して前記制御指令を生成する制御プログラムの実行とを順次繰り返すことによって、前記1または複数のデバイスを制御するように構成されており、
前記制御指令の送信処理において、前記プロセッサは、
前回の制御周期における前記制御プログラムの実行により生成された前記制御指令をフレームに格納する処理と、
前記制御指令が格納された前記フレームを制御対象に送信するように前記通信回路を制御する処理とを実行するように構成されており、
前記プロセッサは、次回の制御周期で実行される、前記制御指令をフレームに格納する処理の少なくとも一部分を、今回の制御周期内で実行する、制御システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022014416A JP7231073B2 (ja) | 2018-03-09 | 2022-02-01 | 制御装置および制御システム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018042676A JP7020198B2 (ja) | 2018-03-09 | 2018-03-09 | 制御装置および制御システム |
JP2022014416A JP7231073B2 (ja) | 2018-03-09 | 2022-02-01 | 制御装置および制御システム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018042676A Division JP7020198B2 (ja) | 2018-03-09 | 2018-03-09 | 制御装置および制御システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022048289A true JP2022048289A (ja) | 2022-03-25 |
JP7231073B2 JP7231073B2 (ja) | 2023-03-01 |
Family
ID=87760977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022014416A Active JP7231073B2 (ja) | 2018-03-09 | 2022-02-01 | 制御装置および制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7231073B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015133175A1 (ja) * | 2014-03-04 | 2015-09-11 | オムロン株式会社 | 制御システム、制御装置および制御方法 |
JP2016149645A (ja) * | 2015-02-12 | 2016-08-18 | 株式会社神戸製鋼所 | 通信制御システム及び通信制御方法 |
JP2017161994A (ja) * | 2016-03-07 | 2017-09-14 | 横河電機株式会社 | 制御演算装置 |
-
2022
- 2022-02-01 JP JP2022014416A patent/JP7231073B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015133175A1 (ja) * | 2014-03-04 | 2015-09-11 | オムロン株式会社 | 制御システム、制御装置および制御方法 |
JP2016149645A (ja) * | 2015-02-12 | 2016-08-18 | 株式会社神戸製鋼所 | 通信制御システム及び通信制御方法 |
JP2017161994A (ja) * | 2016-03-07 | 2017-09-14 | 横河電機株式会社 | 制御演算装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7231073B2 (ja) | 2023-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6946909B2 (ja) | 制御システムおよび制御装置 | |
US10761884B2 (en) | Control device for operating multiple types of programs in different execution formats | |
JP6962099B2 (ja) | 制御システムおよび制御装置 | |
CN109581976B (zh) | 控制装置 | |
JP6919404B2 (ja) | 制御装置 | |
JP6903275B2 (ja) | 制御装置および制御方法 | |
JP6950385B2 (ja) | 制御装置および制御方法 | |
JP7020198B2 (ja) | 制御装置および制御システム | |
EP3457239B1 (en) | Control device and control method | |
JP2022048289A (ja) | 制御装置および制御システム | |
WO2021095466A1 (ja) | 制御装置 | |
WO2021145124A1 (ja) | 制御装置 | |
JP2021026587A (ja) | 制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220201 |
|
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: 20230117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7231073 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |