JP7589598B2 - CONTROL SYSTEM, SUPPORT METHOD AND PROGRAM - Google Patents
CONTROL SYSTEM, SUPPORT METHOD AND PROGRAM Download PDFInfo
- Publication number
- JP7589598B2 JP7589598B2 JP2021038267A JP2021038267A JP7589598B2 JP 7589598 B2 JP7589598 B2 JP 7589598B2 JP 2021038267 A JP2021038267 A JP 2021038267A JP 2021038267 A JP2021038267 A JP 2021038267A JP 7589598 B2 JP7589598 B2 JP 7589598B2
- Authority
- JP
- Japan
- Prior art keywords
- communication
- control
- program
- schedule
- control devices
- 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
Links
- 238000000034 method Methods 0.000 title claims description 46
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 230000006854 communication Effects 0.000 claims description 257
- 238000004891 communication Methods 0.000 claims description 215
- 238000004364 calculation method Methods 0.000 claims description 100
- 238000012545 processing Methods 0.000 claims description 30
- 238000011156 evaluation Methods 0.000 claims description 28
- 238000010586 diagram Methods 0.000 description 51
- 230000008569 process Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 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
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/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Description
本開示は、制御システム、サポート方法およびプログラムに関する。 This disclosure relates to a control system, a support method, and a program.
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置と制御装置に接続される複数の通信スレーブとを備える制御システムが導入されている。製造現場では、制御システムの規模を増大させたいという要望が生じうる。このような要望に対して、現状のPLCの能力が不足している場合、高性能のPLCに置き換えることが考えられる。そのため、PLCを提供するベンダーは、制御システムの規模に応じた多種類の商品を開発しておく必要がある。 At various manufacturing sites, control systems that include a control device such as a PLC (Programmable Logic Controller) and multiple communication slaves connected to the control device are being introduced. At manufacturing sites, there may be a demand to increase the scale of the control system. If the current PLC's capabilities are insufficient to meet such demands, it may be possible to replace it with a high-performance PLC. For this reason, vendors that provide PLCs need to develop a wide variety of products according to the scale of the control system.
近年、ネットワークを介して複数のPLCを接続し、PLC間でデータの送受を行ないながら、協働,同期運転等を行なう分散コントローラシステムが開発されている(特開2010-097624号公報(特許文献1)参照)。分散コントローラシステムを用いることにより、既存のPLCと同じ機種のPLCを増設することにより、制御システムの規模の増大に対応できる。これにより、ベンダーが準備しておく商品の種類の数を減らすことができる。 In recent years, distributed controller systems have been developed that connect multiple PLCs via a network and send and receive data between the PLCs to perform collaborative and synchronous operations (see JP 2010-097624 A (Patent Document 1)). By using a distributed controller system, it is possible to accommodate an increase in the scale of the control system by adding PLCs of the same model as existing PLCs. This allows the number of types of products that vendors need to prepare to be reduced.
複数のPLCを用いた分散コントローラシステムを構築する場合、制御システム内の通信および各PLCの演算内容を最適化するための作業が必要となる。特許文献1は、このような作業の効率化について考慮されていない。
When building a distributed controller system using multiple PLCs, work is required to optimize the communications within the control system and the calculations of each PLC.
本開示は、上記の問題に鑑みてなされたものであり、その目的は、通信および各制御装置の演算内容の最適化を効率的に進めることが可能な制御システム、サポート方法およびプログラムを提供することである。 This disclosure has been made in consideration of the above problems, and its purpose is to provide a control system, support method, and program that can efficiently optimize communications and the calculation content of each control device.
本開示の一例によれば、制御対象を制御する制御システムは、複数の通信スレーブと、通信マスタとして動作する複数の制御装置とを含む。複数の制御装置の各々はプロセッサを含む。制御システムは、分割手段と、スケジューリング手段と、算出手段と、を備える。分割手段は、制御対象を制御するためのユーザプログラムを複数の部分プログラムに分割する。スケジューリング手段は、複数の部分プログラムを複数の制御装置に割り当てる複数の組み合わせの各々について、複数の制御装置および複数の通信スレーブの接続関係を示す情報と割り当てられた部分プログラムとを用いて、複数の制御装置の各々の通信スケジュールと、複数の制御装置の各々のプロセッサによる演算スケジュールとを決定する。算出手段は、複数の組み合わせの各々について、通信スケジュールと演算スケジュールとに応じた評価値を算出する。 According to one example of the present disclosure, a control system for controlling a control target includes a plurality of communication slaves and a plurality of control devices operating as communication masters. Each of the plurality of control devices includes a processor. The control system includes a division means, a scheduling means, and a calculation means. The division means divides a user program for controlling the control target into a plurality of partial programs. For each of a plurality of combinations in which the plurality of partial programs are assigned to the plurality of control devices, the scheduling means determines a communication schedule for each of the plurality of control devices and a calculation schedule for each of the processors of the plurality of control devices using information indicating the connection relationships between the plurality of control devices and the plurality of communication slaves and the assigned partial programs. The calculation means calculates an evaluation value according to the communication schedule and the calculation schedule for each of the plurality of combinations.
この開示によれば、ユーザは、評価値を参照することにより、複数の組み合わせについて、各制御装置の通信スケジュールと演算スケジュールとの良否を判断できる。その結果、ユーザは、制御システム内の通信および各制御装置の演算内容の最適化を効率的に進めることができる。 According to this disclosure, by referring to the evaluation values, the user can determine the suitability of the communication schedule and calculation schedule of each control device for multiple combinations. As a result, the user can efficiently optimize the communications within the control system and the calculation content of each control device.
上述の開示において、制御システムは、評価値に基づいて、複数の組み合わせの中から1つの組み合わせを選択する選択手段と、複数の制御装置の各々に、1つの組み合わせにおいて割り当てられている部分プログラムを設定する設定手段と、をさらに備える。 In the above disclosure, the control system further includes a selection means for selecting one combination from among the multiple combinations based on the evaluation value, and a setting means for setting the partial program assigned to one combination in each of the multiple control devices.
この開示によれば、評価値に基づいて選択された1つの組み合わせに従って、部分プログラムを制御装置にインストールできる。 According to this disclosure, a partial program can be installed in the control device according to one combination selected based on the evaluation value.
上述の開示において、複数の制御装置の各々は、予め定められた制御周期毎に、複数の通信スレーブのうちの少なくとも1つとの間の入出力データの通信と入出力データを用いた演算とを実行する。複数の制御装置は、第1制御装置と第2制御装置とを含む。制御システムは、さらに、第1制御装置と第2制御装置との間の通信タイミングに応じて、第1制御装置における制御周期の開始タイミングと第2制御装置における制御周期の開始タイミングとの時間差を調整する調整手段を備える。 In the above disclosure, each of the multiple control devices executes communication of input/output data with at least one of the multiple communication slaves and calculations using the input/output data for each predetermined control period. The multiple control devices include a first control device and a second control device. The control system further includes an adjustment means for adjusting the time difference between the start timing of the control period in the first control device and the start timing of the control period in the second control device in accordance with the communication timing between the first control device and the second control device.
この開示によれば、第1制御装置と第2制御装置との間の通信タイミングに応じて、第1制御装置における制御周期の開始タイミングと第2制御装置における制御周期の開始タイミングとの時間差が調整されることにより、無駄な待機時間の発生が抑制される。 According to this disclosure, the time difference between the start timing of the control cycle in the first control device and the start timing of the control cycle in the second control device is adjusted according to the communication timing between the first control device and the second control device, thereby reducing the occurrence of unnecessary waiting time.
上述の開示において、ユーザプログラムは、複数の通信スレーブからの入力データを監視する監視プログラムを含む。複数の制御装置は、監視プログラムが割り当てられない第1制御装置と、監視プログラムが割り当てられる第2制御装置とを含む。スケジューリング部は、複数の通信スレーブのうちのいずれかの通信スレーブから第1制御装置への通信方式を、第1制御装置と第2制御装置とを宛先として指定したマルチキャストに設定する。さらに、スケジューリング部は、第2制御装置の通信スケジュールに、マルチキャストによって送信された入力データを読み出すための読出時間を組み込む。 In the above disclosure, the user program includes a monitoring program that monitors input data from multiple communication slaves. The multiple control devices include a first control device to which the monitoring program is not assigned, and a second control device to which the monitoring program is assigned. The scheduling unit sets the communication method from any one of the multiple communication slaves to the first control device to multicast, with the first control device and the second control device specified as destinations. Furthermore, the scheduling unit incorporates a read time for reading the input data transmitted by multicast into the communication schedule of the second control device.
この開示によれば、通信方式がマルチキャストに設定されることにより、制御システムの通信が効率化される。 According to this disclosure, the communication method is set to multicast, which makes communication in the control system more efficient.
上述の開示において、複数の制御装置の各々は、予め定められた制御周期毎に、複数の通信スレーブのうちの少なくとも1つとの間の入出力データの通信と入出力データを用いた演算とを実行する。制御システムは、さらに、読出時間に応じて、第1制御装置における制御周期の開始タイミングと第2制御装置における制御周期の開始タイミングとの時間差を調整する調整手段を備える。 In the above disclosure, each of the multiple control devices executes communication of input/output data with at least one of the multiple communication slaves and calculations using the input/output data for each predetermined control period. The control system further includes an adjustment means for adjusting the time difference between the start timing of the control period in the first control device and the start timing of the control period in the second control device in accordance with the read time.
この開示によれば、無駄が待機時間の発生が抑制される。その結果、制御システムの通信が効率化される。 This disclosure reduces the occurrence of unnecessary waiting time. As a result, communication in the control system becomes more efficient.
上述の開示において、複数の制御装置の各々は、予め定められた制御周期毎に、複数の通信スレーブのうちの少なくとも1つへの出力データの送信を実行する。設定部は、さらに、1つの組み合わせに対して決定された、複数の制御装置の各々の通信スケジュールに基づいて、制御周期内において、複数の通信スレーブに出力データが到達するタイミングのうち最も遅い第1タイミングを特定し、複数の通信スレーブが処理を開始する第2タイミングを第1タイミング以降に設定する。この開示によれば、複数の通信スレーブの処理を同期させることができる。 In the above disclosure, each of the multiple control devices transmits output data to at least one of the multiple communication slaves for each predetermined control period. The setting unit further identifies a first timing that is the latest among the timings at which the output data arrives at the multiple communication slaves within the control period based on the communication schedule of each of the multiple control devices determined for one combination, and sets a second timing at which the multiple communication slaves start processing to be after the first timing. According to this disclosure, the processing of the multiple communication slaves can be synchronized.
本開示の別の一例によれば、制御対象を制御する制御システムをサポートするサポート方法は、第1~第3のステップを備える。第1のステップは、制御対象を制御するためのユーザプログラムを複数の部分プログラムに分割するステップである。第2のステップは、複数の部分プログラムを複数の制御装置に割り当てる複数の組み合わせの各々について、複数の制御装置および複数の通信スレーブの接続関係を示す情報と割り当てられた部分プログラムとを用いて、複数の制御装置の各々の通信スケジュールと、複数の制御装置の各々のプロセッサによる演算スケジュールとを決定するステップである。第3のステップは、複数の組み合わせの各々について、通信スケジュールと演算スケジュールとに応じた評価値を算出するステップである。 According to another example of the present disclosure, a support method for supporting a control system that controls a control target includes first to third steps. The first step is a step of dividing a user program for controlling the control target into multiple partial programs. The second step is a step of determining, for each of multiple combinations in which multiple partial programs are assigned to multiple control devices, a communication schedule for each of the multiple control devices and a calculation schedule by each processor of the multiple control devices using information indicating the connection relationships between the multiple control devices and the multiple communication slaves and the assigned partial programs. The third step is a step of calculating an evaluation value according to the communication schedule and the calculation schedule for each of the multiple combinations.
本開示の別の一例によれば、プログラムは、上記のサポート方法をコンピュータに実行させる。 According to another example of the present disclosure, a program causes a computer to execute the above support method.
これらの開示によっても、ユーザは、制御システム内の通信および各制御装置の演算内容の最適化を効率的に進めることができる。 These disclosures also enable users to efficiently optimize communications within a control system and the calculations of each control device.
本開示によれば、ユーザは、制御システム内の通信および各制御装置の演算内容の最適化を効率的に進めることができる。 This disclosure allows users to efficiently optimize communications within a control system and the calculations of each control device.
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。 Embodiments of the present invention will now be described with reference to the drawings. In the following description, identical parts and components are given the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions of these will not be repeated. Note that the embodiments and variations described below may be combined as appropriate.
§1.適用例
本実施の形態にかかる制御システムの概略について説明する。図1は、実施の形態に係る制御システムの一例を示す図である。図1に例示される制御システム1は、ロボット、搬送装置、セーフティ装置などの各種の制御対象を制御する。
§1. Application Example An outline of a control system according to the present embodiment will be described. Fig. 1 is a diagram showing an example of a control system according to the present embodiment. A
図1に示されるように、制御システム1は、サポート装置100と、複数のPLC200と、複数の通信スレーブ300と、1以上のスイッチ400と、を備える。PLC200は、通信マスタとして動作する制御装置の一例である。図1に示す例では、複数のPLC200は、PLC200a,200bを含む。複数の通信スレーブ300は、通信スレーブ300a~300iを含む。ただし、PLC200の個数は、2個に限定されず、3個以上であってもよい。通信スレーブ300の個数は、8個に限定されず、2個以上であればよい。
As shown in FIG. 1, the
制御システム1では、複数のPLC200の同期をとるために、TSN(Time-Sensitive Networking)技術が採用される。TSN技術は、標準のEthernet(登録商標)を拡張する産業用ネットワークと情報系ネットワークとを相互運用するためのネットワーク技術であり、Ethernet(登録商標)をベースにしながら時間の同期性を保証するとともに、リアルタイム性を担保する。TSN技術の仕様は、ネットワーク規格の「IEEE 802.1 AS-Rev Timing and Synchronization for Time-Sensitive Applications」によって定義されている。TSNのスケジューリングは、複数のPLC200のうちCNC(Central Network Controller)が実装されたネットワークコントローラとして機能するPLCが担当する。あるいは、制御システム1は、スイッチ400に接続されるネットワークコントローラを備えてもよい。この場合、ネットワークコントローラがTSNのスケジューリングを行なえばよい。
In the
PLC200は、プロセッサ202を有するCPU(Central Processing Unit)ユニットを含む。さらに、PLC200は、通信ユニット、セーフティユニットなどの拡張ユニットをさらに含んでもよい。通信スレーブ300は、入出力装置などのデバイスである。
The
複数のPLC200の各々は、予め定められた制御周期毎に、複数の通信スレーブ300のうちの少なくとも1つとの間の入出力データ(IOデータ)の通信とIOデータを用いた演算とを実行する。
Each of the
スイッチ400は、たとえばL2スイッチである。スイッチ400は、接続された機器のMACアドレスを記憶しており、MACアドレスを用いて送信先にのみデータを送信する。
サポート装置100は、制御システム1をサポートする。サポート装置100は、複数のPLC200が制御対象を制御するために必要な準備を支援する情報処理装置(コンピュータの一例)である。
The
具体的には、サポート装置100は、PLC200間の通信および各PLC200の演算内容の最適化を支援するためのサポート処理を実行する。サポート処理は、以下の(1)~(3)のステップを含む。
Specifically, the
(1)サポート装置100は、制御対象を制御するためのユーザプログラムを複数の部分プログラムに分割する。
(1) The
(2)サポート装置100は、複数の部分プログラムを複数のPLC200に割り当てる複数の組み合わせを特定する。サポート装置100は、複数のPLC200と複数の通信スレーブ300との接続関係を示す接続情報を取得する。サポート装置100は、複数の組み合わせの各々について、接続情報と割り当てられた部分プログラムとを用いて、各PLC200の通信スケジュールと、各PLC200のプロセッサ202による演算スケジュールとを決定する。
(2) The
(3)サポート装置100は、複数の組み合わせの各々について、通信スケジュールと演算スケジュールとに応じた評価値を算出する。
(3) The
ユーザは、上記のサポート処理によって算出された評価値を確認することにより、複数の組み合わせのうち、各PLC200の通信スケジュールと各PLC200のプロセッサ202による演算スケジュールとの良否を判断できる。その結果、ユーザは、制御システム1内の通信および各PLC200の演算内容の最適化を効率的に進めることができる。
By checking the evaluation values calculated by the above support process, the user can determine the suitability of the communication schedule of each
なお、サポート装置100は、ユーザプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、複数のPLC200および複数の通信スレーブ300のパラメータ(コンフィギュレーション)を設定するための設定環境などを提供してもよい。サポート装置100は、公知の技術を用いて、これらの環境を提供する。そのため、開発環境および設定環境の提供の詳細について、説明を省略する。
The
§2.具体例
<A.制御システムの規模の増大>
図2は、制御システムの規模を増大させる例を示す図である。図2には、互いに関連する2つの通信スレーブ300からなるモジュールの個数が1個から3個に増大される例が示される。
§2. Specific examples <A. Increase in the scale of control systems>
2 is a diagram showing an example of increasing the scale of a control system, in which the number of modules, each of which is made up of two
規模の増大前の制御システム1Xは、PLC200XとモジュールMaとを含む。PLC200Xには、モジュールMaを制御するためのユーザプログラム122Xがインストールされる。
The
規模の増大後の制御システム1Yは、モジュールMaに加えて、モジュールMb,Mcをさらに含む。PLC200Xは、3個のモジュールMa,Mb,Mcを制御する能力を有していない。そのため、制御システム1Yは、PLC200Xの代わりに高性能のPLC200Yを備える。高性能のPLC200Yは、一般にコストが高い。そのため、PLC200XをPLC200Yに置き換えるためのコストが高くなる。さらに、PLCを提供するベンダーは、制御システムの規模に応じた多品種のPLCを開発しておく必要が生じる。
After the scale increase, the
PLC200Yには、モジュールMa,Mb,Mcを制御するためのユーザプログラム122Yがインストールされる。1台のPLC200YによってモジュールMa,Mb,Mcを制御するため、ユーザプログラム122Yには、各モジュールの有効化処理および無効化処理が含まれ得る。そのため、ユーザプログラム122Yの作成に手間がかかる。
A
このように、制御システムの規模の増大に応じて、PLC200Xを高性能のPLC200Yに置き換える場合、コストおよびユーザプログラムの作成の手間が増大するという問題が生じる。 As such, when PLC200X is replaced with a high-performance PLC200Y as the scale of the control system increases, problems arise in that costs and the effort required to create user programs increase.
図3は、分散コントローラシステムを用いて規模が増大された制御システムの一例を示す図である。図3に例示される制御システム1Zは、モジュールMa,Mb,McとモジュールMa,Mb,Mcをそれぞれ制御するPLC200Xa,200Xb,200Xcとスイッチ400Zとを備える。スイッチ400Zは、PLC200Xa,200Xb,200Xc間の通信を切り替える。
Figure 3 is a diagram showing an example of a control system whose scale has been increased by using a distributed controller system. The
制御システム1Zでは、PLC200Xa,200Xb,200Xcの各々は、1個のモジュールを制御するため、図2に示す制御システム1XのPLC200Xと同じ性能を有していればよい。そのため、制御システム1Xから制御システム1Zに規模を増大する場合、安価なPLC200Xを2個追加すればよい。
In
さらに、ユーザは、モジュールMa,Mb,Mcをそれぞれ制御するためのプログラム122Za,122Zb,122Zcを組み合わせることにより、ユーザプログラム122Zを作成すればよい。そして、プログラム122Za,122Zb,122ZcがPLC200Xa,200Xb,200Xcにそれぞれインストールされる。そのため、ユーザは、ユーザプログラム122Zの作成の際に、モジュールの有効化処理および無効化処理の追加を省略できる。その結果、ユーザプログラムの作成の手間が削減される。
Furthermore, the user can create
このように、分散コントローラシステムを用いることにより、PLCに要するコストの増大、ユーザプログラムの作成の手間が抑制され得る。しかしながら、制御システムに含まれる通信スレーブの個数、PLCの個数が多くなると、制御システム内の通信および各PLCの演算内容を最適化するための作業が必要となる。そのため、本実施の形態に係るサポート装置100は、制御システム内の通信および各PLCの演算内容を最適化するための作業を支援する。
In this way, by using a distributed controller system, the increase in costs required for PLCs and the effort required to create user programs can be suppressed. However, as the number of communication slaves and PLCs included in a control system increases, work must be done to optimize the communications within the control system and the calculation contents of each PLC. For this reason, the
<B.分散コントローラシステムにおける処理の流れ>
図4は、分散コントローラシステムにおける処理の流れを示す図である。図4には、PLC200a,200bを用いて分散コントローラシステムを構築したときの、PLC200a,200bの処理の流れが示される。
<B. Processing flow in the distributed controller system>
Fig. 4 is a diagram showing a process flow in the distributed controller system. Fig. 4 shows a process flow of the
まず、ステップS1a,S1bにおいて、PLC200a,200bは、内部タイマの時刻補正を行なう。これにより、PLC200a,200bの内部タイマが同期される。
First, in steps S1a and S1b, PLCs 200a and 200b correct the time of their internal timers. This synchronizes the internal timers of
次に、PLC200a,200bは、スケジューラの動作を開始する(ステップS2a,S2b)。PLC200a,200bは、アドレス解決を行なう(ステップS3a,S3b)。
Next,
次に、PLC200a,200bは、接続されている通信スレーブ300との間で照合を行なう(ステップS4a,S4b)。照合結果に応じて、PLC200a,200bは、接続されている通信スレーブ300との間でコネクションを確立する(ステップS5a,S5b)。
Next, the
次に、PLC200a,200bは、同期トリガの送受信を行なう(ステップS6a,S6b)。PLC200a,200bは、同期トリガに応じて、通信を開始する(S7a,S7b)。これにより、PLC200a,200bの通信処理が同期される。
Next, the
<C.ハードウェア構成>
(C-1.サポート装置のハードウェア構成)
図5は、サポート装置のハードウェア構成の一例を示す図である。図5に示されるように、サポート装置100は、CPU102と、ROM(Read Only Memory)103と、RAM(Random Access Memory)104と、HDD(Hard Disk Drive)105と、通信コントローラ107と、I/O(Input/Output)インターフェイス108と、を含む。サポート装置100には、キーボード109およびディスプレイ110が接続される。キーボード109は、ユーザからのサポート装置100に対する指示を含む入力を受付ける。当該入力を受付けるために、サポート装置100には、マウス等の他のデバイスが接続されてもよい。ディスプレイ110は、LCD(Liquid Crystal Display)または有機EL(Electro Luminescence)を含み、サポート装置100から出力される映像信号または画像信号に従う映像または画像を表示する。サポート装置100は、外部の記憶媒体101を脱着自在に装着し、装着された記憶媒体101にプログラムおよび/またはデータを読み書きするR/W(リーダライタ)デバイス106を備える。
C. Hardware Configuration
(C-1. Hardware configuration of the support device)
FIG. 5 is a diagram showing an example of the hardware configuration of the support device. As shown in FIG. 5, the
通信コントローラ107は、ネットワークを介した外部装置(PLC200を含む)との通信を制御する。通信コントローラ107は、例えばNIC(Network Interface Card)を含んで構成される。I/Oインターフェイス108は、CPU102とキーボード109およびディスプレイ110との間のデータの遣り取りを制御する。
The
HDD305は、OSを含むシステムプログラム120、ユーザプログラム122を生成するためのUPG生成プログラム121、ユーザプログラム122、接続情報123、および分散設計プログラム124を記憶する。
HDD305 stores a
UPG生成プログラム121は、キーボード109から受け付けるユーザ操作に従い、ユーザプログラム122を編集(生成)するエディタ、編集されたユーザプログラム122をコンパイルするコンパイラ、ユーザプログラム122を実行可能な形式に変換するビルダなどを含む。なお、ビルダが、コンパイルの機能を含んでもよい。
The
接続情報123は、制御システム1の機器間の接続関係を示す。具体的には、接続情報123は、機器間の物理的な配線、配線の長さなどを示す。たとえば図1に示す構成の場合、PLC200a,200b、通信スレーブ300a~300iおよびスイッチ400の接続関係を示す接続情報123が予め作成され、HDD105に格納される。
The
分散設計プログラム124は、分散コントロールシステムとして制御システム1を構築するときの設計支援を行なう。
The distributed
(C-2.PLCのハードウェア構成)
図6は、PLCのハードウェア構成の一例を示す図である。図6に示されるように、PLC200は、主たるハードウェアコンポーネントとして、プロセッサ202と、メインメモリ204と、ストレージ206と、フィールドネットワークコントローラ212と、通信コントローラ213と、ローカルバスコントローラ214とを含む。これらのハードウェアコンポーネントは、内部バス218を介して電気的に接続される。
(C-2. PLC Hardware Configuration)
Fig. 6 is a diagram showing an example of a hardware configuration of a PLC. As shown in Fig. 6, the
プロセッサ202は、演算処理部に相当し、CPUやGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ202は、ストレージ210に格納されたプログラムを読出して、メインメモリ204に展開して実行することで、制御対象に応じた演算処理および各種処理を実現する。
The
メインメモリ204は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ206は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
The
ストレージ206には、基本的な機能を実現するためのシステムプログラム220、制御対象に応じて作成されたユーザプログラム122の一部である部分プログラム222、および、通信スケジュールおよび演算スケジュールを定義付けるシステム設定情報224などが格納される。システムプログラム220は、PLC200における基本的な機能を実現するため、制御プログラムの少なくとも一部とみなすことができる。
フィールドネットワークコントローラ212は、フレームが一巡するように構成されたネットワークに接続される。より具体的には、フィールドネットワークコントローラ212は、EtherCAT(登録商標)やEtherNet/IPなどの通信プロトコルを用いて、フレームの送受信処理を担当するポートを有する。フィールドネットワークコントローラ212は、通信マスタ(マスタ)として機能する。なお、フィールドネットワークコントローラ212は、フレームを周期的に送受信するための同期カウンタを有していてもよい。
The
通信コントローラ213は、ネットワークを介した外部装置(サポート装置100を含む)との通信を制御する。
The
ローカルバスコントローラ214は、内部バス218を介して、1または複数の拡張ユニット216と電気的に接続される。拡張ユニット216は、制御対象との間で各種の信号をやり取りする機能などを含む。拡張ユニット216は、例えば、制御対象からのデジタル信号を受取るDI(Digital Input)機能、制御対象に対してデジタル信号を出力するDO(Digital Output)機能、制御対象からのアナログ信号を受取るAI(Analog Input)機能、制御対象に対してアナログ信号を出力するAO(Analog Output)機能のうち1または複数の機能を有している。さらに、拡張ユニット216としては、PID(Proportional Integral Derivative)制御やモーション制御といった特殊機能を実装したコントローラを含み得る。
The
図6には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、PLC200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
Although FIG. 6 shows an example of a configuration in which the necessary functions are provided by the
<D.サポート装置の機能構成>
図7は、サポート装置の機能構成の一例を示す図である。図7に示されるように、サポート装置100は、記憶部10と、分割部11と、スケジューリング部12と、算出部13と、選択部14と、設定部15と、を備える。記憶部10は、図4に示すROM103、RAM104およびHDD105によって実現される。分割部11、スケジューリング部12、算出部13、選択部14、および設定部15は、CPU102が分散設計プログラム124を実行することにより実現される。
D. Functional configuration of the support device
Fig. 7 is a diagram showing an example of the functional configuration of the support device. As shown in Fig. 7, the
記憶部10は、ユーザプログラム122と、接続情報123と、変数リスト125とを記憶する。
The
図8は、変数リストの一例を示す図である。図8に示されるように、変数リスト125は、各通信スレーブ300について、デバイス名と、当該通信スレーブ300によって使用される変数名と、グルーバル変数名との一覧である。変数リスト125は、サポート装置100によって提供される設定環境を利用して予め作成される。
Figure 8 is a diagram showing an example of a variable list. As shown in Figure 8, the
分割部11(図6参照)は、ユーザプログラム122を複数の部分プログラム222に分割する。ユーザプログラム122を複数の部分プログラム222に分割する方法については後述する。
The division unit 11 (see FIG. 6) divides the
スケジューリング部12は、制御システム1に含まれる複数のPLC200に複数の部分プログラムを割り当てる複数の組み合わせを特定する。スケジューリング部12は、接続情報123を参照することにより、制御システム1に含まれるPLC200の個数を認識すればよい。スケジューリング部12は、複数の組み合わせの各々について、接続情報と割り当てられた部分プログラムとを用いて、各PLC200の通信スケジュールと、各PLC200のプロセッサ202による演算スケジュールとを決定する。
The
算出部13は、複数の組み合わせの各々について、通信スケジュールと演算スケジュールとに応じた評価値を算出する。
The
選択部14は、評価値に基づいて、複数の組み合わせの中から1つの組み合わせを選択する。たとえば、選択部14は、複数の組み合わせの各々の評価値をディスプレイ110に表示し、キーボード109への入力に応じて1つの組み合わせを選択する。あるいは、選択部14は、複数の組み合わせの中から、評価値の最も高い1つの組み合わせを選択してもよい。
The
設定部15は、複数のPLC200の各々に、選択された1つの組み合わせにおいて割り当てられている部分プログラム222を設定する。具体的には、設定部15は、PLC200に部分プログラム222をインストールする。さらに、設定部15は、複数のPLC200の各々に、選択された1つの組み合わせに対応する通信スケジュールおよび演算スケジュールを設定する。具体的には、設定部15は、各PLC200に対して、通信スケジュールおよび演算スケジュールを定義付けるためのシステム設定情報224を生成し、生成したシステム設定情報224を設定する。
The setting
<E.ユーザプログラムの分割方法>
制御システム1に備えられる複数の通信スレーブ300の各々は、生産ラインに設置される複数の機構のいずれかに関連付けられる。そのため、複数の通信スレーブ300は、関連する機構に応じて、複数のモジュールに分類され得る。
<E. How to divide a user program>
Each of the
図9は、図1に示される制御システムに含まれるモジュールの例を示す図である。図9に示されるように、制御システム1は、互いに関連する通信スレーブ300b~300dからなるモジュールMdと、互いに関連する通信スレーブ300e~300iからなるモジュールMeとを含む。
Figure 9 is a diagram showing an example of modules included in the control system shown in Figure 1. As shown in Figure 9, the
分割部11は、たとえば、モジュール単位でユーザプログラム122を複数の部分プログラム222に分割する。
The
図10は、演算の定義の一例を示す図である。図9に示される定義50は、入力「A_in1」~「A_inN」と、ロジックと、出力「A_out1」~「A_outM」とを定義する。ロジックは、「A_in1」~「A_inN」を参照して、「A_out1」~「A_outM」を出力するための演算を定義する。
Figure 10 is a diagram showing an example of an operation definition.
ユーザは、図10に示される定義50を含む複数の定義を用いて、ユーザプログラム122を作成する。たとえば、ユーザは、定義50の入力「A_in1」~「A_inN」に割り付ける変数またはデバイスと、定義50の出力「A_out1」~「A_outM」に割り付ける変数またはデバイスとを設定することにより、定義50の演算を含むユーザプログラム122を作成する。
The user creates a
図11は、ユーザプログラムに組み込まれた演算ブロックの一例を示す図である。図10に示される演算ブロック52は、図9に示される定義50の入力および出力に変数またはデバイスが割り付けられることにより作成される。たとえば、入力「A_in1」にセンサ60が割り付けられ、入力「A_inN」に変数61が割り付けられ、出力「A_out1」にアクチュエータ62が割り付けられ、出力「A_outM」に変数63が割り付けられる。この場合、演算ブロック52は、センサ60から入力されたデータおよび変数61を用いた演算を行ない、演算によって得られたデータをアクチュエータ62に出力するとともに、変数63を更新する。
Figure 11 is a diagram showing an example of a calculation block incorporated in a user program. The
演算ブロック52は、定義50と、割り付け情報とに基づいて作成される。割り付け情報は、各入力に割り付けられる変数またはデバイスと、各出力に割り付けられる変数またはデバイスとを示す。割り付け情報は、ユーザプログラム122を作成する際に、ユーザ入力に応じて作成される。
The
図12は、演算の定義および割り付け情報に従って作成されるユーザプログラムの一部を示す図である。図12に示されるように、ユーザプログラム122を設計するための設計情報は、演算の定義50,51と、割り付け情報70~72とを含む。
Figure 12 shows a portion of a user program created according to operation definitions and allocation information. As shown in Figure 12, the design information for designing
演算ブロック52は、定義50と割り付け情報70とに基づいて作成される。演算ブロック52は、センサ60から入力されたデータと変数61とを用いた演算を行ない、演算によって得られたデータをアクチュエータ62に出力するとともに、変数63を更新する。
The
演算ブロック53は、定義50と割り付け情報71とに基づいて作成される。演算ブロック53は、センサ64から入力されたデータと変数65とを用いた演算を行ない、演算によって得られたデータをアクチュエータ66に出力するとともに、変数67を更新する。
The
演算ブロック54は、定義51と割り付け情報72とに基づいて作成される。演算ブロック54は、ネットワーク上の機器80から入力されたデータと変数63,67とを用いた演算を行ない、演算によって得られたデータを機器80に出力するとともに、変数61,65を更新する。
分割部11は、センサ60,64およびアクチュエータ62,66を含む機構を特定し、特定結果に応じて、ユーザプログラム122を複数の部分プログラム222に分割する。なお、分割部11は、キーボード109への入力に応じて、センサ60,64およびアクチュエータ62,66を含む機構を特定すればよい。あるいは、接続情報123がセンサ60,64およびアクチュエータ62,66と機構との接続関係を示す情報を含む場合、分割部11は、接続情報123を参照して、センサ60,64およびアクチュエータ62,66を含む機構を特定してもよい。
The dividing
図13は、ユーザプログラムを複数の部分プログラムに分割する例を示す図である。図13に示されるように、センサ60およびアクチュエータ62は、図9に示すモジュールMdに関連する機構90に含まれる。センサ64およびアクチュエータ66は、図9に示すモジュールMeに関連する機構91に含まれる。
Figure 13 is a diagram showing an example of dividing a user program into multiple partial programs. As shown in Figure 13, the
分割部11は、各機構について、当該機構に含まれるデバイス(センサ、アクチュエータなど)からの入力を用いて演算を行なう演算ブロックと、当該デバイス(センサ、アクチュエータなど)へデータを出力する演算ブロックとを特定する。分割部11は、各機構について、特定した演算ブロックを当該機構に関連するモジュール向けの部分プログラムの一部として決定する。
For each mechanism, the
図12に示す例では、分割部11は、機構90に含まれるセンサ60からの入力を用いて演算を行なう演算ブロック52を、機構90に関連するモジュールMd(図9参照)向けの部分プログラム222dの一部として決定する。同様に、分割部11は、機構91に含まれるセンサ64からの入力を用いて演算を行なう演算ブロック53を、機構91に関連するモジュールMe(図9参照)向けの部分プログラム222eの一部として決定する。
In the example shown in FIG. 12, the
さらに、分割部11は、残りの演算ブロックの各々について、入力される変数を更新する他の演算ブロックを特定する。特定した他の演算ブロックがいずれかの部分プログラム222に属する場合、分割部11は、他の演算ブロックが属する部分プログラム222に残りの演算ブロックを含める。なお、特定した他の演算ブロックが複数存在する場合、分割部11は、複数の他の演算ブロックの中から1つの演算ブロックを選択する。分割部11は、任意に1つの演算ブロックを選択してもよいし、キーボード109への入力に応じて1つの演算ブロックを選択してもよい。
Furthermore, for each of the remaining operation blocks, the
あるいは、分割部11は、変数リスト125を参照して、各演算ブロックに入力される変数を更新する通信スレーブ300を特定し、特定した通信スレーブ300を含むモジュール向けの部分プログラム222に当該演算ブロックを含ませてもよい。
Alternatively, the
図13に示す例では、分割部11は、演算ブロック54に入力される変数63を更新する演算ブロック52を特定する。分割部11は、演算ブロック52が属する部分プログラム222dに演算ブロック54を含める。あるいは、分割部11は、演算ブロック54に入力される変数67を更新する演算ブロック53を特定してもよい。この場合、分割部11は、演算ブロック53が属する部分プログラム222eに演算ブロック54を含める。
In the example shown in FIG. 13, the
このようにして、分割部11は、ユーザプログラム122を複数の部分プログラム222に分割する。
In this way, the
図14は、ユーザプログラムから分割された部分プログラムの例を示す図である。図14に示されるように、ユーザプログラム122は、モジュールMd向けの部分プログラム222dとモジュールMe向けの部分プログラム222eとに分割される。図13に示されるように、部分プログラム222dに属する演算ブロック54は、部分プログラム222eに属する演算ブロック53によって更新される変数67を用いて演算を行なう。演算ブロック53は、演算ブロック54によって更新される変数65を用いて演算を行なう。そのため、図14に示されるように、部分プログラム222d,222eの間で指示およびステータスの遣り取りが必要となる。
Figure 14 is a diagram showing an example of partial programs divided from a user program. As shown in Figure 14, the
<F.複数の部分プログラムを複数のPLCに割り当てる組み合わせ>
スケジューリング部12は、制御システム1に含まれる複数のPLC200に複数の部分プログラム222を割り当てる複数の組み合わせを特定する。たとえば、制御システム1がPLC200a,200bを備え(図1参照)、かつ、ユーザプログラム122が部分プログラム222d,222eに分割される(図13参照)場合、スケジューリング部12は、以下の4通りの組み合わせ(1)~(4)を特定する。
組み合わせ(1):部分プログラム222d,222eをPLC200aに割り当てる。
組み合わせ(2):部分プログラム222dをPLC200aに割り当て、部分プログラム222eをPLC200bに割り当てる。
組み合わせ(3):部分プログラム222dをPLC200bに割り当て、部分プログラム222eをPLC200aに割り当てる。
組み合わせ(4):部分プログラム222d,222eをPLC200bに割り当てる。
<F. Combination of allocating multiple partial programs to multiple PLCs>
The
Combination (1): The
Combination (2): The
Combination (3): The
Combination (4): The
図15は、スケジューリング部によって特定される複数の組み合わせのうちの1つを示す図である。図15には、上記の組み合わせ(2)が示される。 Figure 15 is a diagram showing one of the multiple combinations identified by the scheduling unit. Figure 15 shows the above combination (2).
<G.通信スケジュールおよび演算スケジュールの決定>
次に、図16~図24を参照して、各組み合わせについての通信スケジュールおよび演算スケジュールの決定方法の一例について説明する。
G. Determination of communication schedule and computation schedule
Next, an example of a method for determining a communication schedule and a calculation schedule for each combination will be described with reference to FIGS.
図16は、制御システムにおいて実施される通信の一例を示す図である。図16には、図15に示される組み合わせ(2)において実施される通信が示される。図中の矢印は、機器間の通信を表している。 Figure 16 is a diagram showing an example of communication carried out in a control system. Figure 16 shows communication carried out in combination (2) shown in Figure 15. The arrows in the diagram represent communication between devices.
スケジューリング部12は、PLC200aに割り当てられる部分プログラム222dがモジュールMd向けであることから、PLC200aとモジュールMdに含まれる通信スレーブ300b~300dとの間で入出力データ(IOデータ)の通信が必要であると判断する。同様に、スケジューリング部12は、PLC200bに割り当てられる部分プログラム222eがモジュールMe向けであることから、PLC200bとモジュールMeに含まれる通信スレーブ300e~300iとの間でIOデータの通信が必要であると判断する。
The
さらに、スケジューリング部12は、通信スレーブ300b~300dにデイジーチェイン接続される通信スレーブ300aとPLC200aとの間でIOデータの通信が必要であると判断する。
Furthermore, the
上述したように、部分プログラム222d,222eの間で指示およびステータスの遣り取りが必要となる。そのため、スケジューリング部12は、PLC200a,200b間で指示およびステータスの通信が必要であると判断する。
As described above, it is necessary to exchange instructions and status between
スケジューリング部12は、TSN技術を用いて通信を行なうときの通信スケジュールを決定する。TSN技術では、キューの開閉時間を計算した上で、全スイッチに内蔵している時刻を同期させ、その時刻でいつポートを開けて閉めるかを全スイッチに設定することで、フレームがキューで待ち状態にならずに、スイッチを通過できる。
The
図17は、図15に示される組み合わせ(2)において実施されるフレーム通信を示す図である。図17には、PLC200aからスイッチ400、PLC200b、通信スレーブ300b~300dにフレームが伝送される様子が示される。
Figure 17 is a diagram showing frame communication performed in combination (2) shown in Figure 15. Figure 17 shows how frames are transmitted from
スケジューリング部12は、フレームサイズ、フレームの伝搬時間、機器内の処理のための遅延時間を用いて、フレーム通信に要する時間を計算する。
The
たとえば、スイッチ400のポート内のキューの開閉時刻は、以下のようにして計算される。スケジューリング部12は、スイッチ400の開時刻を式(a)に従って計算する。
開時刻=フレーム送信開始時刻+オフセット時間+送信ジッタT12+フレーム伝搬遅延時間T13+フレーム送出時間T11・・・式(a)。
For example, the opening and closing times of a queue in a port of the
Start time=frame transmission start time+offset time+transmission jitter T12+frame propagation delay time T13+frame sending time T11...formula (a).
フレーム送信開始時刻は、PLC200aがフレームの送信を開始する時刻である。スケジューリング部12は、組み合わせ(2)においてPLC200aに割り当てられる部分プログラム222dを解析することにより、フレーム送信開始時刻を決定する。フレーム送信開始時刻は、図4に示す通信開始(ステップS7a,S7b)の時刻を0として決定される。
The frame transmission start time is the time when
オフセット時間は、PLC200aが有する内部タイマとスイッチ400が有する内部タイマとの時間差である。各組み合わせの通信スケジュールを決定する際には、オフセット時間=0とすればよい。
The offset time is the time difference between the internal timer of
送信ジッタT12は、フレームが通信ケーブルを伝搬する時間である。スケジューリング部12は、事前に測定された送信ジッタT12を記憶する。あるいは、接続情報123が機器間の配線の長さを含む場合、スケジューリング部12は、接続情報123を参照して、配線の長さに予め定められた係数を乗算することにより、送信ジッタT12を計算してもよい。
The transmission jitter T12 is the time it takes for a frame to propagate through a communication cable. The
フレーム伝搬遅延時間T13は、スイッチ400内の処理に要する時間である。スケジューリング部12は、事前に測定されたフレーム伝搬遅延時間T13を記憶する。あるいは、スケジューリング部12は、スイッチ400を販売するベンダーから提供されたフレーム伝搬遅延時間T13を記憶する。
The frame propagation delay time T13 is the time required for processing within the
フレーム送出時間T11は、フレームの先頭から最後まで送出するための時間である。スケジューリング部12は、フレームサイズに基づいて、フレーム送出時間T11を計算する。フレームサイズは、通信されるIOデータのサイズであり、たとえばユーザによって指定される。
The frame transmission time T11 is the time required to transmit a frame from the beginning to the end. The
さらに、スケジューリング部12は、各フレームのサイズが同一である場合、スイッチ400の閉時刻を式(b)に従って計算する。Nは、連続して伝送されるフレームの個数である。
閉時刻=開時刻+送信ジッタT12×N+フレーム伝搬遅延時間T13×(N-1)+フレーム送出時間T11×N・・・式(b)。
Furthermore, when the size of each frame is the same, the
Close time=open time+transmission jitter T12×N+frame propagation delay time T13×(N−1)+frame sending time T11×N...equation (b).
このようにして、スケジューリング部12は、スイッチ400の開時刻と閉時刻とを計算し、スイッチ400が通信を行なう時間T15を計算する。同様の方法により、スケジューリング部12は、PLC200aが通信を行なう時間T14を計算する。
In this way, the
図18は、PLCにおけるIOデータの通信スケジュールの一例を示す図である。図18には、図15に示される組み合わせ(2)におけるPLC200aのIOデータの通信処理41,42が示される。通信処理41は、PLC200aと通信スレーブ300b~300dとの間で実施される。通信処理42は、PLC200aとPLC200bとの間で実施される。スケジューリング部12は、上記の計算を行なうことにより、通信処理41,42の時間を決定する。
Figure 18 is a diagram showing an example of a communication schedule for IO data in a PLC. Figure 18 shows communication processes 41 and 42 for IO data in
さらに、スケジューリング部12は、各PLCのプロセッサ202の演算スケジュールを決定する。
Furthermore, the
図19は、ユーザプログラムに含まれる各種プログラムのタスクへの割り当ての一例を示す図である。ユーザプログラム122には様々なプログラムが含まれ、各プログラムは、優先度に応じて、複数のタスクのうちのいずれかに割り当てられる。各プログラムのタスクへの割り当ては、ユーザ入力に応じて設定される。複数のタスクには、高優先のプライマリタスクと、プライマリタスクよりも優先度の低いセカンダリタスクと、イベントタスクとが含まれる。プライマリタスクは、ユーザによって設定された制御周期Tc(=Xms)毎に実行される。セカンダリタスクは、ユーザによって設定された周期(=Yms)毎に実行される。セカンダリタスクの周期の長さは、制御周期Tcと同じであってもよいし、制御周期Tcの倍数であってもよい。イベントタスクは、イベントが発生したタイミングで実行される。
Figure 19 is a diagram showing an example of the allocation of various programs included in a user program to tasks. The
図19に示す例では、ユーザプログラム122は、制御プログラム131と、安全プログラム132と、監視プログラム133と、イベントプログラム134とを含む。制御プログラム131は、制御対象を制御するための演算を定義する。安全プログラム132は、設備や機械などによって人の安全が脅かされることを防止するためのセーフティ機能を提供する。監視プログラム133は、制御システム1において使用される変数を監視する。イベントプログラム134は、イベントが発生したときの動作を定義する。
In the example shown in FIG. 19, the
制御プログラム131および安全プログラム132は、遅延なく、周期的に実行されることが望まれる。そのため、制御プログラム131および安全プログラム132は、通常、プライマリタスクに割り当てられる。なお、制御プログラム131および安全プログラム132の実行に必要なIOデータの通信処理も、プライマリタスクに割り当てられる。
It is desirable for the
監視プログラム133は、周期的に実行されることが望まれるが、遅延が許容される。そのため、監視プログラム133は、通常、セカンダリタスクに割り当てられる。監視プログラム133の実行に必要なIOデータの通信処理も、セカンダリタスクに割り当てられる。
It is desirable for the
イベントプログラム134は、周期的に実行される必要がないため、イベントタスクに割り当てられる。
The
TSN技術では、フレームに対して、QoS(サービス品質)優先度が設定される。各フレームは、QoS優先度に応じて、キューが割り当てられる。QoS優先度は、「0」~「7」の8つの中から設定される。QoS優先度「7」が最も高く、QoS優先度「0」が最も低い。 In TSN technology, a QoS (Quality of Service) priority is set for each frame. Each frame is assigned to a queue according to its QoS priority. QoS priority is set to one of eight values, from "0" to "7." QoS priority "7" is the highest, and QoS priority "0" is the lowest.
制御プログラム131および安全プログラム132の実行に必要なIOデータのフレームは、優先して通信されることが好ましい。そのため、制御プログラム131および安全プログラム132の実行に必要なIOデータのフレームに対して、QoS優先度「7」が設定される。
It is preferable that frames of IO data required for the execution of the
スケジューリング部12は、各PLC200について、当該PLC200に割り当てられた部分プログラム222を割り当てたタスク、部分プログラム222によって定義される演算内容に基づいて、当該PLC200のプロセッサ202の演算スケジュールを決定する。
For each
図20は、スケジューリング部によって決定されたスケジュールの一例を示す図である。図20には、図15に示される組み合わせ(2)におけるPLC200aのプロセッサ202のスケジュールが示される。
Figure 20 is a diagram showing an example of a schedule determined by the scheduling unit. Figure 20 shows a schedule for
図20に示されるように、スケジューリング部12は、プライマリタスクのスケジュールとして、通信処理41,42を実行する通信スケジュールと、演算処理43を実行する演算スケジュールとを決定する。
As shown in FIG. 20, the
通信処理41,42は、部分プログラム222dにおいてプライマリタスクに割り当てられたプログラムの実行に必要なIOデータの通信処理である。通信処理41は、通信スレーブ300b~300cとの間の通信処理である。通信処理42は、PLC200bとの間の通信処理である。通信処理41,42によって通信されるフレームには、QoS優先度「7」が設定される。
Communication processes 41 and 42 are communication processes for IO data required to execute the program assigned to the primary task in
演算処理43は、部分プログラム222dにおいてプライマリタスクに割り当てられたプログラムによって定義される。
同様に、スケジューリング部12は、セカンダリタスクのスケジュールとして、通信処理44を実行する通信スケジュールを決定する。
Similarly, the
通信処理44は、部分プログラム222dにおいてセカンダリタスクに割り当てられたプログラムの実行に必要なIOデータの通信処理である。通信処理44によって通信されるフレームには、QoS優先度「5」が設定される。
通信処理41,42,44に要する時間の計算方法は、図17,18を参照して説明した通りである。 The method for calculating the time required for communication processes 41, 42, and 44 is as described with reference to Figures 17 and 18.
スケジューリング部12は、部分プログラム222dの解析結果、ユーザの入力情報、各機器の動作情報などに基づいて、演算処理43に要する時間を計算する。
The
制御周期Tcのうち空き時間には、たとえばイベントタスクに割り当てられたプログラムによって定義される演算処理、他の通信処理が実行される。 During free time in the control cycle Tc, for example, calculation processing defined by a program assigned to the event task and other communication processing are executed.
また、制御周期Tcのうち通信処理41,42,44の占める時間以外の時間において、演算結果に応じて通信が必要となったデータ、イベントの発生に応じて必要となったデータなどを含むフレームが通信される。これらのフレームには、予めQoS優先度が設定されている。 In addition, during the control period Tc other than the time occupied by the communication processes 41, 42, and 44, frames including data that has become necessary due to the results of calculations, data that has become necessary due to the occurrence of an event, etc. are communicated. QoS priorities are set in advance for these frames.
図21は、ユーザプログラムに含まれる各種プログラムのタスクへの割り当ての別の例を示す図である。図21に示す例では、ユーザプログラム122は、制御プログラム131と、安全プログラム132と、監視プログラム133と、イベントプログラム134と、データリンク設定プロブラム135とを含む。
Figure 21 is a diagram showing another example of the allocation of various programs included in a user program to tasks. In the example shown in Figure 21, the
データリンク設定プロブラム135は、複数のPLC200間で通信を使ってお互いのメモリエリアを自動的に更新し、1つのPLC200のメモリ状況を常に別のPLC200に反映させるデータリンクを設定するプログラムである。データリンク設定プロブラム135の実行により、複数のPLC200は、メモリエリアのデータを互いに通信する。
The data
図21に示す例では、データリンク設定プロブラム135は、セカンダリタスクに割り当てられている。
In the example shown in FIG. 21, the data
図22は、スケジューリング部によって決定されたスケジュールの別の例を示す図である。図22には、図15に示される組み合わせ(2)におけるPLC200aのプロセッサ202のスケジュールが示される。図22に示されるように、スケジューリング部12は、セカンダリタスクの通信スケジュールの中に、PLC200bとの間のデータリンクのための通信処理45を含ませる。通信処理45に要する時間は、メモリエリアの容量に応じて計算される。
Figure 22 is a diagram showing another example of a schedule determined by the scheduling unit. Figure 22 shows a schedule for the
このようにして、スケジューリング部12は、各組み合わせについて、各PLC200の通信スケジュールおよび演算スケジュールを決定する。
In this way, the
図23は、部分プログラム222d,222eをPLC200aに割り当てる組み合わせ(1)のときの、PLC200aのスケジュールを示す図である。
Figure 23 shows the schedule for
図23に示されるように、PLC200aのスケジュールは、全ての通信スレーブ300との通信処理41aを実行する通信スケジュールと、演算処理43d,43eを実行する演算スケジュールとを含む。演算処理43dは、モジュールMd向けの部分プログラム222dによって定義される。演算処理43eは、モジュールMe向けの部分プログラム222eによって定義される。
As shown in FIG. 23, the schedule of
図24は、部分プログラム222d,222eをPLC200a,200bにそれぞれ割り当てる組み合わせ(2)のときの、PLC200a,200bのスケジュールを示す図である。
Figure 24 shows the schedules for
図24に示されるように、PLC200aのスケジュールは、通信処理41b,42aを実行する通信スケジュールと、演算処理43dを実行する演算スケジュールとを含む。通信処理41bは、通信スレーブ300a~300d(図16参照)との間の通信処理である。通信処理42aは、PLC200bとの間の通信処理である。
As shown in FIG. 24, the schedule of
PLC200bのスケジュールは、通信処理41c,42bを実行する通信スケジュールと、演算処理43eを実行する演算スケジュールとを含む。通信処理41cは、通信スレーブ300e~300i(図15参照)との間の通信処理である。通信処理42bは、PLC200aとの間の通信処理である。
The schedule of
通信処理42aにおいてPLC200aから送信されたデータは、通信処理42bにおいてPLC200bによって受信される。通信処理42bにおいてPLC200bから送信されたデータは、通信処理42aにおいてPLC200aによって受信される。そのため、スケジューリング部12は、PLC200aにおける制御周期Tcの開始タイミングとPLC200bにおける制御周期Tcの開始タイミングとの時間差Tdを調整する調整手段として動作してもよい。すなわち、スケジューリング部12は、PLC200a,200bの間の通信タイミング(つまり、通信処理42a,42bのタイミング)に応じて時間差Tdを調整する。時間差Tdが一律に0に設定されると、PLC200bにおいて、通信処理41cと通信処理42bとの間に無駄な待機時間が発生する。しかしながら、時間差Tdが調整されることにより、このような待機時間の発生が抑制される。
Data transmitted from
<H.評価値の算出方法>
図25および図26を参照して、通信スケジュールと演算スケジュールとに応じた評価値の算出方法について説明する。
<H. Evaluation value calculation method>
A method of calculating an evaluation value according to a communication schedule and a computation schedule will be described with reference to FIGS.
図25は、通信スケジュールおよび演算スケジュールから算出される評価値の一例を示す図である。図25に示されるように、算出部13は、各組み合わせについて、各PLC200のプロセッサ202の負荷率を評価値として算出する。算出部13は、各制御周期において実行される通信処理および演算処理の合計時間を制御周期Tcで除算することにより、プロセッサ202の負荷率を算出する。
Figure 25 is a diagram showing an example of an evaluation value calculated from a communication schedule and a calculation schedule. As shown in Figure 25, the
さらに、算出部13は、各組み合わせについて、各PLC200のプロセッサ202の負荷に占める通信処理の割合を評価値として算出する。算出部13は、各制御周期において実行される通信処理の合計時間を制御周期Tcで除算することにより、プロセッサ202の負荷に占める通信処理の割合を算出する。
Furthermore, the
図26は、通信スケジュールおよび演算スケジュールから算出される評価値の別の例を示す図である。図25に示されるように、算出部13は、各組み合わせについて、通信ケーブルごとのネットワーク帯域を表す指標を評価値として算出する。算出部13は、接続情報123によって示される機器間の接続関係と通信ケーブルごとの通信量とに基づいて、ネットワーク帯域を表す指標を算出すればよい。
Figure 26 is a diagram showing another example of an evaluation value calculated from a communication schedule and a calculation schedule. As shown in Figure 25, the
<I.選択部14および設定部15の処理例>
たとえば、選択部14は、各組み合わせに対して算出部13によって算出された評価値をディスプレイ110に表示し、複数の組み合わせの中から1つの組み合わせを選択する指示の入力を促す。ユーザは、表示された評価値を参照して、所望の組み合わせを選択すればよい。設定部15は、選択された組み合わせについて決定された通信スケジュールおよび演算スケジュールをPLC200に設定すればよい。
<I. Examples of Processing by the
For example, the
<J.通信スケジュールの別の決定例>
図27は、制御システムにおいて実施される通信の別の例を示す図である。図27には、図15に示される組み合わせ(2)において実施される通信が示される。図中の矢印は、機器間の通信を表している。組み合わせ(2)では、上述したように、モジュールMd向けの部分プログラム222dがPLC200aに割り当てられ、モジュールMe向けの部分プログラム222eがPLC200aに割り当てられる。ただし、PLC200bには、クラウドブローカー機能を有する拡張ユニット216bが取り付けられており、PLC200bに割り当てられる部分プログラム222eには、監視プログラム133bが含まれる。
<J. Another Example of Determining a Communication Schedule>
Fig. 27 is a diagram showing another example of communication performed in a control system. Fig. 27 shows communication performed in the combination (2) shown in Fig. 15. The arrows in the diagram represent communication between devices. In the combination (2), as described above, the
監視プログラム133bは、通信スレーブ300b~300iからの入力データを監視し、監視結果を拡張ユニット216bに提供する。拡張ユニット216は、提供された監視結果をクラウドシステム500に出力する。
The
通信スレーブ300b~300dからの入力データは、モジュールMd向けの部分プログラム222dの演算に必要である。そのため、通信スレーブ300b~300dからの出力データは、PLC200aに送信される。しかしながら、監視プログラム133bがPLC200bに割り当てられたことにより、PLC200bも、通信スレーブ300b~300dからの入力データを受け取る必要がある。そのため、スケジューリング部12は、通信スレーブ300b~300dからの出力データの通信方式を、PLC200aを宛先とするユニキャストからPLC200a,200bを宛先として指定したマルチキャストに設定変更する。これにより、PLC200a,200bは、通信スレーブ300b~300dからの出力データを取得できる。
The input data from the
図28は、組み合わせ(2)において部分プログラム222eが監視プログラムを含むときのPLC200a,200bのスケジュールを示す図である。
Figure 28 shows the schedules of
図28に示されるスケジュールは、図25に示されるスケジュールと比較して、PLC200bの通信スケジュールに通信処理46および提供処理47が含まれる点で相違する。通信処理46は、通信スレーブ300b~300dからマルチキャストされた入力データを読み出す処理である。このように、スケジューリング部12は、PLC200bの通信スケジュールにマルチキャストによって送信された入力データを読み出すための読出時間を組み込めばよい。
The schedule shown in FIG. 28 differs from the schedule shown in FIG. 25 in that the communication schedule of
さらに、スケジューリング部12は、読出時間に応じて、PLC200aにおける制御周期Tcの開始タイミングとPLC200bにおける制御周期Tcの開始タイミングとの時間差Tdを調整する調整手段として動作してもよい。すなわち、スケジューリング部12は、通信スレーブ300b~300dから入力データがマルチキャストされた後に通信処理46が実施されるように、時間差Tdを調整する。これにより、無駄が待機時間の発生が抑制される。
Furthermore, the
提供処理47は、通信スレーブ300b~300iからの入力データを拡張ユニット216bに提供する処理である。
The
<K.通信スレーブの処理スケジュールの設定>
設定部15は、選択部14によって選択された組み合わせに対して決定された、各PLC200の通信スケジュールに基づいて、通信スレーブ300の処理スケジュールを設定してもよい。
<K. Setting the processing schedule of the communication slave>
The setting
図29は、通信スレーブの処理スケジュールの設定方法の一例を示す図である。図29に示されるように、設定部15は、選択された組み合わせに対応する、PLC200a,200bの各々の通信スケジュールに基づいて、制御周期Tc内において、複数の通信スレーブ300にフレームが到達するタイミングのうち最も遅いタイミングt1を特定する。設定部15は、複数の通信スレーブ300が各種処理を開始するタイミングt2をタイミングt1以降に設定する。これにより、複数の通信スレーブ300の処理を同期させることができる。
Figure 29 is a diagram showing an example of a method for setting the processing schedule of the communication slaves. As shown in Figure 29, the setting
<L.TSNのスケジューリング>
上述したように、複数のPLC200のうちCNCが実装されたPLC200は、TSNのスケジューリングを行なう。CNCが実装されたPLC200は、複数のPLC200の各々に部分プログラム222が設定されると、オンラインで実測した値を用いて、各PLC200の制御周期の位相を調整してもよい。すなわち、CNCが実装されたPLC200は、PLC200aにおける制御周期Tcの開始タイミングとPLC200bにおける制御周期Tcの開始タイミングとの時間差Tdを調整する調整手段として動作してもよい。あるいは、制御システム1に備えられるネットワークコントローラが、時間差Tdを調整する調整手段として動作してもよい。
L.TSN Scheduling
As described above, the
たとえば、PLC200aとPLC200bとの間でIOデータの通信が必要である場合、CNCが実装されたPLC200は、図24に示されるように、PLC200aとPLC200bとの間の通信スケジュールに応じて時間差Tdを調整する。
For example, when IO data communication is required between
あるいは、PLC200bがマルチキャスト方式で送信された入力データを読み出す必要がある場合(図27参照)、CNCが実装されたPLC200は、図28に示されるように、PLC200bによる当該入力データの読出時間に応じて時間差Tdを調整する。
Alternatively, when
§3.付記
以上のように、上記の実施の形態による開示は以下のような開示を含む。
§3. Supplementary Note As described above, the disclosure according to the above embodiment includes the following disclosure.
<構成1>
制御対象を制御する制御システム(1)であって、
複数の通信スレーブ(300)と、
通信マスタとして動作する複数の制御装置(200)とを含み、
前記複数の制御装置(200)の各々はプロセッサ(202)を含み、
前記制御システム(1)は、さらに、
前記制御対象を制御するためのユーザプログラム(122)を複数の部分プログラム(222)に分割する分割手段(11,102)と、
前記複数の部分プログラム(222)を前記複数の制御装置(200)に割り当てる複数の組み合わせの各々について、前記複数の制御装置(200)および前記複数の通信スレーブ(300)の接続関係を示す情報と割り当てられた部分プログラム(222)とを用いて、前記複数の制御装置(200)の各々の通信スケジュールと、前記複数の制御装置(200)の各々の前記プロセッサ(202)による演算スケジュールとを決定するスケジューリング手段(12,102)と、
前記複数の組み合わせの各々について、前記通信スケジュールと前記演算スケジュールとに応じた評価値を算出する算出手段(13,102)と、を備える、制御システム(1)。
<
A control system (1) for controlling a control target,
A plurality of communication slaves (300);
A plurality of control devices (200) operating as communication masters;
Each of the plurality of control devices (200) includes a processor (202);
The control system (1) further comprises:
A dividing means (11, 102) for dividing a user program (122) for controlling the control target into a plurality of partial programs (222);
a scheduling means (12, 102) for determining, for each of a plurality of combinations of allocating the plurality of partial programs (222) to the plurality of control devices (200), a communication schedule for each of the plurality of control devices (200) and a calculation schedule for each of the processors (202) of the plurality of control devices (200) using information indicating a connection relationship between the plurality of control devices (200) and the plurality of communication slaves (300) and the allocated partial programs (222);
A control system (1) comprising: a calculation means (13, 102) for calculating an evaluation value according to the communication schedule and the calculation schedule for each of the plurality of combinations.
<構成2>
前記評価値に基づいて、前記複数の組み合わせの中から1つの組み合わせを選択する選択手段(13,102)と、
前記複数の制御装置(200)の各々に、前記1つの組み合わせにおいて割り当てられている部分プログラム(222)を設定する設定手段(14,102)と、をさらに備える、構成1に記載の制御システム(1)。
<
a selection means (13, 102) for selecting one combination from among the plurality of combinations based on the evaluation value;
The control system (1) according to
<構成3>
前記複数の制御装置(200)の各々は、予め定められた制御周期毎に、前記複数の通信スレーブ(300)のうちの少なくとも1つとの間の入出力データの通信と前記入出力データを用いた演算とを実行し、
前記複数の制御装置(200)は、第1制御装置(200a)と第2制御装置(200b)とを含み、
前記制御システム(1)は、さらに、
前記第1制御装置(200a)と前記第2制御装置(200b)との間の通信タイミングに応じて、前記第1制御装置(200a)における前記制御周期の開始タイミングと前記第2制御装置(200b)における前記制御周期の開始タイミングとの時間差を調整する調整手段(12,102,200)を備える、構成1または2に記載の制御システム(1)。
<Configuration 3>
Each of the plurality of control devices (200) executes communication of input/output data with at least one of the plurality of communication slaves (300) and a calculation using the input/output data at each predetermined control period;
The plurality of control devices (200) include a first control device (200a) and a second control device (200b),
The control system (1) further comprises:
The control system (1) according to
<構成4>
前記ユーザプログラム(122)は、前記複数の通信スレーブからの入力データを監視する監視プログラム(133b)を含み、
前記複数の制御装置(200)は、前記監視プログラム(133b)が割り当てられない第1制御装置(200a)と、前記監視プログラム(133b)が割り当てられる第2制御装置(200b)とを含み、
前記スケジューリング手段(12,102)は、
前記複数の通信スレーブ(300)のうちのいずれかの通信スレーブから前記第1制御装置(200a)への通信方式を、前記第1制御装置(200a)と前記第2制御装置(200b)とを宛先として指定したマルチキャストに設定し、
前記第2制御装置(200b)の通信スケジュールに、前記マルチキャストによって送信された前記入力データを読み出すための読出時間を組み込む、構成1または2に記載の制御システム(1)。
<
The user program (122) includes a monitoring program (133b) for monitoring input data from the plurality of communication slaves,
The plurality of control devices (200) include a first control device (200a) to which the monitoring program (133b) is not assigned, and a second control device (200b) to which the monitoring program (133b) is assigned,
The scheduling means (12, 102)
A communication method from any one of the plurality of communication slaves (300) to the first control device (200a) is set to a multicast destination designated for the first control device (200a) and the second control device (200b);
3. The control system (1) according to
<構成5>
前記複数の制御装置(200)の各々は、予め定められた制御周期毎に、前記複数の通信スレーブ(300)のうちの少なくとも1つとの間の入出力データの通信と前記入出力データを用いた演算とを実行し、
前記制御システム(1)は、さらに、
前記読出時間に応じて、前記第1制御装置(200a)における前記制御周期の開始タイミングと前記第2制御装置(200b)における前記制御周期の開始タイミングとの時間差を調整する調整手段(12,102,200)を備える、構成4に記載の制御システム(1)。
<
Each of the plurality of control devices (200) executes communication of input/output data with at least one of the plurality of communication slaves (300) and a calculation using the input/output data at each predetermined control period;
The control system (1) further comprises:
The control system (1) of
<構成6>
前記複数の制御装置(200)の各々は、予め定められた制御周期毎に、前記複数の通信スレーブ(300)のうちの少なくとも1つへの出力データの送信を実行し、
前記設定手段(15,102)は、さらに、
前記1つの組み合わせに対して決定された、前記複数の制御装置(200)の各々の前記通信スケジュールに基づいて、前記制御周期内において、前記複数の通信スレーブ(300)に前記出力データが到達するタイミングのうち最も遅い第1タイミングを特定し、
前記複数の通信スレーブ(300)が処理を開始する第2タイミングを前記第1タイミング以降に設定する、構成2に記載の制御システム(1)。
<
Each of the plurality of control devices (200) transmits output data to at least one of the plurality of communication slaves (300) at each predetermined control period;
The setting means (15, 102) further includes:
identifying a first timing, which is the latest among timings at which the output data arrives at the plurality of communication slaves (300) within the control period, based on the communication schedule of each of the plurality of control devices (200) determined for the one combination;
The control system (1) according to
<構成7>
制御対象を制御する制御システム(1)をサポートするサポート方法であって、
前記制御システム(1)は、
複数の通信スレーブ(300)と、
通信マスタとして動作する複数の制御装置(200)とを含み、
前記複数の制御装置(200)の各々はプロセッサ(202)を含み、
前記サポート方法は、
前記制御対象を制御するためのユーザプログラム(122)を複数の部分プログラム(222)に分割するステップと、
前記複数の部分プログラム(222)を前記複数の制御装置(200)に割り当てる複数の組み合わせの各々について、前記複数の制御装置(200)および前記複数の通信スレーブ(300)の接続関係を示す情報(123)と割り当てられた部分プログラム(222)とを用いて、前記複数の制御装置(200)の各々の通信スケジュールと、前記複数の制御装置(200)の各々の前記プロセッサ(202)による演算スケジュールとを決定するステップと、
前記複数の組み合わせの各々について、前記通信スケジュールと前記演算スケジュールとに応じた評価値を算出するステップと、を備える、サポート方法。
<
A method for supporting a control system (1) for controlling a controlled object, comprising:
The control system (1)
A plurality of communication slaves (300);
A plurality of control devices (200) operating as communication masters;
Each of the plurality of control devices (200) includes a processor (202);
The support method includes:
Dividing a user program (122) for controlling the control target into a plurality of partial programs (222);
determining, for each of a plurality of combinations of allocating the plurality of partial programs (222) to the plurality of control devices (200), a communication schedule for each of the plurality of control devices (200) and a calculation schedule for each of the processors (202) of the plurality of control devices (200) using information (123) indicating a connection relationship between the plurality of control devices (200) and the plurality of communication slaves (300) and the allocated partial programs (222);
calculating an evaluation value for each of the plurality of combinations according to the communication schedule and the computation schedule.
<構成8>
構成7に記載のサポート方法をコンピュータに実行させる、プログラム(124)。
<
A program (124) for causing a computer to execute the support method according to
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組み合わせても、実施することが意図される。 The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is indicated by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims. Furthermore, the inventions described in the embodiments and each modified example are intended to be implemented, as far as possible, either alone or in combination.
1,1X,1Y,1Z 制御システム、10 記憶部、11 分割部、12 スケジューリング部、13 算出部、14 選択部、15 設定部、41,41a~41c,42,42a,42b,44~46 通信処理、43,43d,43e 演算処理、47 提供処理、50,51 定義、52~54 演算ブロック、60,64 センサ、61,63,65,67 変数、62,66 アクチュエータ、70~72 割り付け情報、80 機器、90,91 機構、100 サポート装置、101 記憶媒体、102 CPU、103 ROM、104 RAM、106 デバイス、107,213 通信コントローラ、108 I/Oインターフェイス、109 キーボード、110 ディスプレイ、120,220 システムプログラム、121 UPG生成プログラム、122,122X,122Y,122Z ユーザプログラム、122Za,122Zb,122Zc プログラム、123 接続情報、124 分散設計プログラム、125 変数リスト、131 制御プログラム、132 安全プログラム、133,133b 監視プログラム、134 イベントプログラム、135 データリンク設定プロブラム、200,200X,200Xa,200Xb,200Xc,200Y,200a,200b PLC、202 プロセッサ、204 メインメモリ、206,210 ストレージ、212 フィールドネットワークコントローラ、214 ローカルバスコントローラ、216,216b 拡張ユニット、218 内部バス、222,222d,222e 部分プログラム、224 システム設定情報、300,300a~300i 通信スレーブ、400,400Z スイッチ、500 クラウドシステム。 1, 1X, 1Y, 1Z Control system, 10 Memory unit, 11 Division unit, 12 Scheduling unit, 13 Calculation unit, 14 Selection unit, 15 Setting unit, 41, 41a to 41c, 42, 42a, 42b, 44 to 46 Communication processing, 43, 43d, 43e Calculation processing, 47 Provision processing, 50, 51 Definition, 52 to 54 Calculation block, 60, 64 Sensor, 61, 63, 65, 67 Variable, 62, 66 Actuator, 70 to 72 Allocation information, 80 Equipment, 90, 91 Mechanism, 100 Support device, 101 Storage medium, 102 CPU, 103 ROM, 104 RAM, 106 Device, 107, 213 Communication controller, 108 I/O interface, 109 Keyboard, 110 Display, 120, 220 System program, 121 UPG generation program, 122, 122X, 122Y, 122Z User program, 122Za, 122Zb, 122Zc program, 123 Connection information, 124 Distributed design program, 125 Variable list, 131 Control program, 132 Safety program, 133, 133b Monitoring program, 134 Event program, 135 Data link setting program, 200, 200X, 200Xa, 200Xb, 200Xc, 200Y, 200a, 200b PLC, 202 Processor, 204 Main memory, 206, 210 Storage, 212 Field network controller, 214 Local bus controller, 216, 216b Expansion unit, 218 Internal bus, 222, 222d, 222e Partial program, 224 system setting information, 300, 300a-300i communication slave, 400, 400Z switch, 500 cloud system.
Claims (7)
複数の通信スレーブと、
通信マスタとして動作する複数の制御装置とを含み、
前記複数の制御装置の各々はプロセッサを含み、
前記制御システムは、さらに、
前記制御対象を制御するためのユーザプログラムを複数の部分プログラムに分割する分割手段と、
前記複数の部分プログラムを前記複数の制御装置に割り当てる複数の組み合わせの各々について、前記複数の制御装置および前記複数の通信スレーブの接続関係を示す情報と割り当てられた部分プログラムとを用いて、前記複数の制御装置の各々の通信スケジュールと、前記複数の制御装置の各々の前記プロセッサによる演算スケジュールとを決定するスケジューリング手段と、
前記複数の組み合わせの各々について、前記通信スケジュールと前記演算スケジュールとに応じた評価値を算出する算出手段と、を備え、
前記ユーザプログラムは、前記複数の通信スレーブからの入力データを監視する監視プログラムを含み、
前記複数の制御装置は、前記監視プログラムが割り当てられない第1制御装置と、前記監視プログラムが割り当てられる第2制御装置とを含み、
前記スケジューリング手段は、
前記複数の通信スレーブのうちのいずれかの通信スレーブから前記第1制御装置への通信方式を、前記第1制御装置と前記第2制御装置とを宛先として指定したマルチキャストに設定し、
前記第2制御装置の通信スケジュールに、前記マルチキャストによって送信された前記入力データを読み出すための読出時間を組み込む、制御システム。 A control system for controlling a control target,
A plurality of communication slaves;
a plurality of control devices acting as communication masters;
each of the plurality of control devices includes a processor;
The control system further comprises:
A dividing means for dividing a user program for controlling the controlled object into a plurality of partial programs;
a scheduling means for determining, for each of a plurality of combinations of allocating the plurality of partial programs to the plurality of control devices, a communication schedule for each of the plurality of control devices and a calculation schedule for each of the processors of the plurality of control devices, using information indicating a connection relationship between the plurality of control devices and the plurality of communication slaves and the allocated partial programs;
a calculation means for calculating an evaluation value according to the communication schedule and the calculation schedule for each of the plurality of combinations,
the user program includes a monitoring program that monitors input data from the plurality of communication slaves;
the plurality of control devices include a first control device to which the monitoring program is not assigned and a second control device to which the monitoring program is assigned;
The scheduling means comprises:
A communication method from any one of the plurality of communication slaves to the first control device is set to a multicast destination designated to the first control device and the second control device;
A control system incorporating a read time for reading the input data transmitted by the multicast into a communication schedule of the second control device .
前記複数の制御装置の各々に、前記1つの組み合わせにおいて割り当てられている部分プログラムを設定する設定手段と、をさらに備える、請求項1に記載の制御システム。 a selection means for selecting one combination from among the plurality of combinations based on the evaluation value;
The control system according to claim 1 , further comprising: a setting unit that sets a partial program assigned in said one combination to each of said plurality of control devices.
前記複数の制御装置は、2つの制御装置を含み、
前記制御システムは、さらに、
前記2つの制御装置の間の通信タイミングに応じて、前記2つの制御装置の一方における前記制御周期の開始タイミングと前記2つの制御装置の他方における前記制御周期の開始タイミングとの時間差を調整する調整手段を備える、請求項1または2に記載の制御システム。 each of the plurality of control devices executes communication of input/output data with at least one of the plurality of communication slaves and a calculation using the input/output data at each predetermined control period;
The plurality of control devices includes two control devices,
The control system further comprises:
3. The control system according to claim 1 or 2 , further comprising an adjustment means for adjusting the time difference between the start timing of the control period in one of the two control devices and the start timing of the control period in the other of the two control devices in accordance with communication timing between the two control devices.
前記制御システムは、さらに、
前記読出時間に応じて、前記第1制御装置における前記制御周期の開始タイミングと前記第2制御装置における前記制御周期の開始タイミングとの時間差を調整する調整手段を備える、請求項1または2に記載の制御システム。 each of the plurality of control devices executes communication of input/output data with at least one of the plurality of communication slaves and a calculation using the input/output data at each predetermined control period;
The control system further comprises:
3. The control system according to claim 1, further comprising an adjustment means for adjusting a time difference between a start timing of the control cycle in the first control device and a start timing of the control cycle in the second control device in accordance with the readout time.
前記設定手段は、さらに、
前記1つの組み合わせに対して決定された、前記複数の制御装置の各々の前記通信スケジュールに基づいて、前記制御周期内において、前記複数の通信スレーブに前記出力データが到達するタイミングのうち最も遅い第1タイミングを特定し、
前記複数の通信スレーブが処理を開始する第2タイミングを前記第1タイミング以降に設定する、請求項2に記載の制御システム。 each of the plurality of control devices transmits output data to at least one of the plurality of communication slaves at each predetermined control period;
The setting means further includes:
identifying a first timing, which is the latest among timings at which the output data arrives at the plurality of communication slaves within the control period, based on the communication schedule of each of the plurality of control devices determined for the one combination;
The control system according to claim 2 , wherein a second timing at which the plurality of communication slaves start processing is set to be later than or equal to the first timing.
前記制御システムは、
複数の通信スレーブと、
通信マスタとして動作する複数の制御装置とを含み、
前記複数の制御装置の各々はプロセッサを含み、
前記サポート方法は、
前記制御対象を制御するためのユーザプログラムを複数の部分プログラムに分割するステップと、
前記複数の部分プログラムを前記複数の制御装置に割り当てる複数の組み合わせの各々について、前記複数の制御装置および前記複数の通信スレーブの接続関係を示す情報と割り当てられた部分プログラムとを用いて、前記複数の制御装置の各々の通信スケジュールと、前記複数の制御装置の各々の前記プロセッサによる演算スケジュールとを決定するステップと、
前記複数の組み合わせの各々について、前記通信スケジュールと前記演算スケジュールとに応じた評価値を算出するステップと、を備え、
前記ユーザプログラムは、前記複数の通信スレーブからの入力データを監視する監視プログラムを含み、
前記複数の制御装置は、前記監視プログラムが割り当てられない第1制御装置と、前記監視プログラムが割り当てられる第2制御装置とを含み、
前記通信スケジュールを決定するステップは、
前記複数の通信スレーブのうちのいずれかの通信スレーブから前記第1制御装置への通信方式を、前記第1制御装置と前記第2制御装置とを宛先として指定したマルチキャストに設定することと、
前記第2制御装置の通信スケジュールに、前記マルチキャストによって送信された前記入力データを読み出すための読出時間を組み込むこととを含む、サポート方法。 A method for supporting a control system that controls a control target, comprising the steps of:
The control system includes:
A plurality of communication slaves;
a plurality of control devices acting as communication masters;
each of the plurality of control devices includes a processor;
The support method includes:
Dividing a user program for controlling the control target into a plurality of partial programs;
determining, for each of a plurality of combinations of allocating the plurality of partial programs to the plurality of control devices, a communication schedule for each of the plurality of control devices and a calculation schedule for each of the processors of the plurality of control devices, using information indicating a connection relationship between the plurality of control devices and the plurality of communication slaves and the allocated partial programs;
calculating an evaluation value according to the communication schedule and the calculation schedule for each of the plurality of combinations ;
the user program includes a monitoring program that monitors input data from the plurality of communication slaves;
the plurality of control devices include a first control device to which the monitoring program is not assigned and a second control device to which the monitoring program is assigned;
The step of determining the communication schedule includes:
setting a communication method from any one of the plurality of communication slaves to the first control device to a multicast destination designated by the first control device and the second control device;
incorporating in a communication schedule of the second control device a read time for reading the input data transmitted by the multicast .
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021038267A JP7589598B2 (en) | 2021-03-10 | 2021-03-10 | CONTROL SYSTEM, SUPPORT METHOD AND PROGRAM |
PCT/JP2021/034458 WO2022190416A1 (en) | 2021-03-10 | 2021-09-21 | Control system, support method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021038267A JP7589598B2 (en) | 2021-03-10 | 2021-03-10 | CONTROL SYSTEM, SUPPORT METHOD AND PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022138400A JP2022138400A (en) | 2022-09-26 |
JP7589598B2 true JP7589598B2 (en) | 2024-11-26 |
Family
ID=83227795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021038267A Active JP7589598B2 (en) | 2021-03-10 | 2021-03-10 | CONTROL SYSTEM, SUPPORT METHOD AND PROGRAM |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7589598B2 (en) |
WO (1) | WO2022190416A1 (en) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004280222A (en) | 2003-03-13 | 2004-10-07 | Omron Corp | Controller |
JP2006106858A (en) | 2004-09-30 | 2006-04-20 | Incs Inc | Distribution processing system, distribution processing method, and its program |
JP2006309345A (en) | 2005-04-26 | 2006-11-09 | Toshiba Corp | Parallel-type monitoring control system and update method of firmware of parallel-type controller of same system |
JP2010160600A (en) | 2009-01-07 | 2010-07-22 | Yamatake Corp | Information processing apparatus, scheduler, and scheduling method |
JP2011193149A (en) | 2010-03-12 | 2011-09-29 | Mitsubishi Electric Corp | Digital broadcast receiver and method for activating the same |
JP2014120187A (en) | 2012-12-17 | 2014-06-30 | Fuji Electric Co Ltd | Control system, master module, and refreshing method |
JP5808450B1 (en) | 2014-04-04 | 2015-11-10 | ファナック株式会社 | Control device for executing sequential program using multi-core processor |
WO2018180004A1 (en) | 2017-03-30 | 2018-10-04 | シチズン時計株式会社 | Control device for work machine |
JP2019161523A (en) | 2018-03-15 | 2019-09-19 | オムロン株式会社 | Network system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08190408A (en) * | 1994-12-31 | 1996-07-23 | Olympus Optical Co Ltd | Data linking method for programmable controller |
JP4207105B2 (en) * | 2001-03-15 | 2009-01-14 | オムロン株式会社 | system |
JP2014063414A (en) * | 2012-09-24 | 2014-04-10 | Toshiba Corp | Control system |
JP7257772B2 (en) * | 2018-10-31 | 2023-04-14 | ルネサスエレクトロニクス株式会社 | System using semiconductor device |
-
2021
- 2021-03-10 JP JP2021038267A patent/JP7589598B2/en active Active
- 2021-09-21 WO PCT/JP2021/034458 patent/WO2022190416A1/en active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004280222A (en) | 2003-03-13 | 2004-10-07 | Omron Corp | Controller |
JP2006106858A (en) | 2004-09-30 | 2006-04-20 | Incs Inc | Distribution processing system, distribution processing method, and its program |
JP2006309345A (en) | 2005-04-26 | 2006-11-09 | Toshiba Corp | Parallel-type monitoring control system and update method of firmware of parallel-type controller of same system |
JP2010160600A (en) | 2009-01-07 | 2010-07-22 | Yamatake Corp | Information processing apparatus, scheduler, and scheduling method |
JP2011193149A (en) | 2010-03-12 | 2011-09-29 | Mitsubishi Electric Corp | Digital broadcast receiver and method for activating the same |
JP2014120187A (en) | 2012-12-17 | 2014-06-30 | Fuji Electric Co Ltd | Control system, master module, and refreshing method |
JP5808450B1 (en) | 2014-04-04 | 2015-11-10 | ファナック株式会社 | Control device for executing sequential program using multi-core processor |
WO2018180004A1 (en) | 2017-03-30 | 2018-10-04 | シチズン時計株式会社 | Control device for work machine |
JP2019161523A (en) | 2018-03-15 | 2019-09-19 | オムロン株式会社 | Network system |
Also Published As
Publication number | Publication date |
---|---|
JP2022138400A (en) | 2022-09-26 |
WO2022190416A1 (en) | 2022-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111034128B (en) | Control system and control device | |
JP7484912B2 (en) | Control System | |
US8005553B2 (en) | Automatic configuration of synchronous block execution for control modules run in fieldbus networks | |
JP7359199B2 (en) | Methods implemented in control systems | |
EP3940477B1 (en) | Control system, setting device and setting program | |
Gemlau et al. | A platform programming paradigm for heterogeneous systems integration | |
WO2022185589A1 (en) | Information processing device, method, and program | |
EP3940998A1 (en) | Control system, apparatus, and control method | |
JP7589598B2 (en) | CONTROL SYSTEM, SUPPORT METHOD AND PROGRAM | |
WO2021131530A1 (en) | Control system | |
JP6939665B2 (en) | Network system | |
CN111052012B (en) | Control device and control system | |
Lee et al. | Phasing of periodic tasks distributed over real-time fieldbus | |
JP7231073B2 (en) | Controllers and control systems | |
EP3940471A1 (en) | Control system, support device, and support program | |
Raja et al. | A synchronous model for fieldbus systems | |
JP2021026587A (en) | Control device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240827 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240927 |
|
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: 20241015 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241028 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7589598 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |