[go: up one dir, main page]

JP7589598B2 - CONTROL SYSTEM, SUPPORT METHOD AND PROGRAM - Google Patents

CONTROL SYSTEM, SUPPORT METHOD AND PROGRAM Download PDF

Info

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
Application number
JP2021038267A
Other languages
Japanese (ja)
Other versions
JP2022138400A (en
Inventor
成憲 澤田
重行 江口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2021038267A priority Critical patent/JP7589598B2/en
Priority to PCT/JP2021/034458 priority patent/WO2022190416A1/en
Publication of JP2022138400A publication Critical patent/JP2022138400A/en
Application granted granted Critical
Publication of JP7589598B2 publication Critical patent/JP7589598B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable 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.

特開2010-097624号公報JP 2010-097624 A

複数の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. Patent Document 1 does not take into consideration the efficiency of such work.

本開示は、上記の問題に鑑みてなされたものであり、その目的は、通信および各制御装置の演算内容の最適化を効率的に進めることが可能な制御システム、サポート方法およびプログラムを提供することである。 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.

実施の形態に係るサポート装置が適用される制御システムの一例を示す図である。FIG. 1 is a diagram illustrating an example of a control system to which a support device according to an embodiment is applied. 制御システムの規模を増大させる例を示す図である。FIG. 13 is a diagram showing an example of increasing the scale of a control system. 分散コントローラシステムを用いて規模が増大された制御システムの一例を示す図である。FIG. 1 illustrates an example of a scaled-up control system using a distributed controller system. 分散コントローラシステムにおける処理の流れを示す図である。FIG. 2 is a diagram showing a process flow in a distributed controller system. サポート装置のハードウェア構成の一例を示す図である。FIG. 2 illustrates an example of a hardware configuration of a support device. PLCのハードウェア構成の一例を示す図である。FIG. 2 is a diagram illustrating an example of a hardware configuration of a PLC. サポート装置の機能構成の一例を示す図である。FIG. 2 illustrates an example of a functional configuration of a support device. 変数リストの一例を示す図である。FIG. 13 is a diagram illustrating an example of a variable list. 図1に示される制御システムに含まれるモジュールの例を示す図である。FIG. 2 is a diagram showing an example of modules included in the control system shown in FIG. 1 . 演算の定義の一例を示す図である。FIG. 13 is a diagram illustrating an example of a definition of an operation. ユーザプログラムに組み込まれた演算ブロックの一例を示す図である。FIG. 13 is a diagram illustrating an example of a calculation block incorporated in a user program. 演算の定義および割り付け情報に従って作成されるユーザプログラムの一部を示す図である。FIG. 13 is a diagram showing a part of a user program created in accordance with the definition of operations and allocation information. ユーザプログラムを複数の部分プログラムに分割する例を示す図である。FIG. 13 is a diagram illustrating an example of dividing a user program into a plurality of partial programs. ユーザプログラムから分割された部分プログラムの例を示す図である。FIG. 11 is a diagram showing an example of a partial program divided from a user program. スケジューリング部によって特定される複数の組み合わせのうちの1つを示す図である。A diagram showing one of multiple combinations identified by a scheduling unit. 制御システムにおいて実施される通信の一例を示す図である。FIG. 2 is a diagram illustrating an example of communication performed in a control system. 組み合わせ(2)において実施されるフレーム通信を示す図である。FIG. 13 is a diagram showing frame communication performed in combination (2). PLCにおけるIOデータの通信スケジュールの一例を示す図である。FIG. 2 is a diagram showing an example of a communication schedule for IO data in a PLC. ユーザプログラムに含まれる各種プログラムのタスクへの割り当ての一例を示す図である。FIG. 2 is a diagram showing an example of allocation of various programs included in a user program to tasks. スケジューリング部によって決定されたスケジュールの一例を示す図である。FIG. 11 is a diagram showing an example of a schedule determined by a scheduling unit. ユーザプログラムに含まれる各種プログラムのタスクへの割り当ての別の例を示す図である。FIG. 11 is a diagram showing another example of allocation of various programs included in a user program to tasks. スケジューリング部によって決定されたスケジュールの別の例を示す図である。FIG. 13 is a diagram showing another example of a schedule determined by the scheduling unit. 部分プログラム222d,222eをPLC200aに割り当てる組み合わせ(1)のときの、PLC200aのスケジュールを示す図である。13 is a diagram showing a schedule of PLC 200a in a combination (1) in which partial programs 222d and 222e are assigned to PLC 200a. FIG. 組み合わせ(2)のときのPLC200a,200bのスケジュールを示す図である。FIG. 13 is a diagram showing the schedules of PLCs 200a and 200b in the case of combination (2). 通信スケジュールおよび演算スケジュールから算出される評価値の一例を示す図である。11 is a diagram showing an example of an evaluation value calculated from a communication schedule and a calculation schedule; FIG. 通信スケジュールおよび演算スケジュールから算出される評価値の別の例を示す図である。FIG. 13 is a diagram showing another example of an evaluation value calculated from a communication schedule and a calculation schedule. 制御システムにおいて実施される通信の別の例を示す図である。FIG. 13 illustrates another example of communication implemented in the control system. 組み合わせ(2)において部分プログラム222eが監視プログラムを含むときのPLC200a,200bのスケジュールを示す図である。FIG. 13 is a diagram showing the schedules of PLCs 200a and 200b when a partial program 222e includes a monitoring program in combination (2). 通信スレーブの処理スケジュールの設定方法の一例を示す図である。FIG. 11 illustrates an example of a method for setting a processing schedule of a communication slave.

以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。 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 control system 1 illustrated in Fig. 1 controls various control targets such as a robot, a transport device, and a safety device.

図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 control system 1 includes a support device 100, multiple PLCs 200, multiple communication slaves 300, and one or more switches 400. The PLC 200 is an example of a control device that operates as a communication master. In the example shown in FIG. 1, the multiple PLCs 200 include PLCs 200a and 200b. The multiple communication slaves 300 include communication slaves 300a to 300i. However, the number of PLCs 200 is not limited to two, and may be three or more. The number of communication slaves 300 is not limited to eight, and may be two or more.

制御システム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 control system 1, TSN (Time-Sensitive Networking) technology is adopted to synchronize the multiple PLCs 200. TSN technology is a network technology for interoperating industrial networks and information networks that extend standard Ethernet (registered trademark), and is based on Ethernet (registered trademark), ensuring time synchronization and real-time performance. The specifications of TSN technology are defined by the network standard "IEEE 802.1 AS-Rev Timing and Synchronization for Time-Sensitive Applications". Scheduling of TSN is handled by a PLC that functions as a network controller and has a CNC (Central Network Controller) implemented among the multiple PLCs 200. Alternatively, the control system 1 may include a network controller connected to the switch 400. In this case, the network controller may perform TSN scheduling.

PLC200は、プロセッサ202を有するCPU(Central Processing Unit)ユニットを含む。さらに、PLC200は、通信ユニット、セーフティユニットなどの拡張ユニットをさらに含んでもよい。通信スレーブ300は、入出力装置などのデバイスである。 The PLC 200 includes a CPU (Central Processing Unit) unit having a processor 202. Furthermore, the PLC 200 may further include expansion units such as a communication unit and a safety unit. The communication slave 300 is a device such as an input/output device.

複数のPLC200の各々は、予め定められた制御周期毎に、複数の通信スレーブ300のうちの少なくとも1つとの間の入出力データ(IOデータ)の通信とIOデータを用いた演算とを実行する。 Each of the multiple PLCs 200 communicates input/output data (IO data) with at least one of the multiple communication slaves 300 and performs calculations using the IO data at each predetermined control period.

スイッチ400は、たとえばL2スイッチである。スイッチ400は、接続された機器のMACアドレスを記憶しており、MACアドレスを用いて送信先にのみデータを送信する。 Switch 400 is, for example, an L2 switch. Switch 400 stores the MAC addresses of connected devices and transmits data only to the destination using the MAC address.

サポート装置100は、制御システム1をサポートする。サポート装置100は、複数のPLC200が制御対象を制御するために必要な準備を支援する情報処理装置(コンピュータの一例)である。 The support device 100 supports the control system 1. The support device 100 is an information processing device (an example of a computer) that assists the multiple PLCs 200 in making the necessary preparations to control the control targets.

具体的には、サポート装置100は、PLC200間の通信および各PLC200の演算内容の最適化を支援するためのサポート処理を実行する。サポート処理は、以下の(1)~(3)のステップを含む。 Specifically, the support device 100 executes a support process to support communication between the PLCs 200 and optimization of the calculation contents of each PLC 200. The support process includes the following steps (1) to (3).

(1)サポート装置100は、制御対象を制御するためのユーザプログラムを複数の部分プログラムに分割する。 (1) The support device 100 divides a user program for controlling a control target into multiple partial programs.

(2)サポート装置100は、複数の部分プログラムを複数のPLC200に割り当てる複数の組み合わせを特定する。サポート装置100は、複数のPLC200と複数の通信スレーブ300との接続関係を示す接続情報を取得する。サポート装置100は、複数の組み合わせの各々について、接続情報と割り当てられた部分プログラムとを用いて、各PLC200の通信スケジュールと、各PLC200のプロセッサ202による演算スケジュールとを決定する。 (2) The support device 100 identifies multiple combinations in which multiple partial programs are assigned to multiple PLCs 200. The support device 100 acquires connection information indicating the connection relationship between the multiple PLCs 200 and the multiple communication slaves 300. For each of the multiple combinations, the support device 100 uses the connection information and the assigned partial programs to determine a communication schedule for each PLC 200 and a calculation schedule for the processor 202 of each PLC 200.

(3)サポート装置100は、複数の組み合わせの各々について、通信スケジュールと演算スケジュールとに応じた評価値を算出する。 (3) The support device 100 calculates an evaluation value for each of the multiple combinations according to the communication schedule and the calculation schedule.

ユーザは、上記のサポート処理によって算出された評価値を確認することにより、複数の組み合わせのうち、各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 PLC 200 and the calculation schedule by the processor 202 of each PLC 200 among multiple combinations. As a result, the user can efficiently optimize the communication within the control system 1 and the calculation content of each PLC 200.

なお、サポート装置100は、ユーザプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、複数のPLC200および複数の通信スレーブ300のパラメータ(コンフィギュレーション)を設定するための設定環境などを提供してもよい。サポート装置100は、公知の技術を用いて、これらの環境を提供する。そのため、開発環境および設定環境の提供の詳細について、説明を省略する。 The support device 100 may also provide a development environment for user programs (program creation and editing tools, parsers, compilers, etc.), a configuration environment for setting parameters (configurations) for multiple PLCs 200 and multiple communication slaves 300, and the like. The support device 100 provides these environments using known technology. Therefore, details of providing the development environment and the configuration environment will not be described.

§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 communication slaves 300 associated with each other, is increased from one to three.

規模の増大前の制御システム1Xは、PLC200XとモジュールMaとを含む。PLC200Xには、モジュールMaを制御するためのユーザプログラム122Xがインストールされる。 The control system 1X before the scale increase includes a PLC 200X and a module Ma. A user program 122X for controlling the module Ma is installed in the PLC 200X.

規模の増大後の制御システム1Yは、モジュールMaに加えて、モジュールMb,Mcをさらに含む。PLC200Xは、3個のモジュールMa,Mb,Mcを制御する能力を有していない。そのため、制御システム1Yは、PLC200Xの代わりに高性能のPLC200Yを備える。高性能のPLC200Yは、一般にコストが高い。そのため、PLC200XをPLC200Yに置き換えるためのコストが高くなる。さらに、PLCを提供するベンダーは、制御システムの規模に応じた多品種のPLCを開発しておく必要が生じる。 After the scale increase, the control system 1Y further includes modules Mb and Mc in addition to module Ma. PLC 200X does not have the ability to control the three modules Ma, Mb, and Mc. Therefore, the control system 1Y is equipped with a high-performance PLC 200Y instead of PLC 200X. A high-performance PLC 200Y is generally expensive. Therefore, the cost of replacing PLC 200X with PLC 200Y is high. Furthermore, a vendor that provides PLCs will need to develop a wide variety of PLCs according to the scale of the control system.

PLC200Yには、モジュールMa,Mb,Mcを制御するためのユーザプログラム122Yがインストールされる。1台のPLC200YによってモジュールMa,Mb,Mcを制御するため、ユーザプログラム122Yには、各モジュールの有効化処理および無効化処理が含まれ得る。そのため、ユーザプログラム122Yの作成に手間がかかる。 A user program 122Y for controlling modules Ma, Mb, and Mc is installed in PLC 200Y. Since modules Ma, Mb, and Mc are controlled by a single PLC 200Y, user program 122Y may include processes for enabling and disabling each module. This makes it time-consuming to create user program 122Y.

このように、制御システムの規模の増大に応じて、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 control system 1Z shown in Figure 3 includes modules Ma, Mb, and Mc, PLCs 200Xa, 200Xb, and 200Xc that control modules Ma, Mb, and Mc, respectively, and a switch 400Z. The switch 400Z switches communication between the PLCs 200Xa, 200Xb, and 200Xc.

制御システム1Zでは、PLC200Xa,200Xb,200Xcの各々は、1個のモジュールを制御するため、図2に示す制御システム1XのPLC200Xと同じ性能を有していればよい。そのため、制御システム1Xから制御システム1Zに規模を増大する場合、安価なPLC200Xを2個追加すればよい。 In control system 1Z, PLCs 200Xa, 200Xb, and 200Xc each control one module, and therefore only need to have the same performance as PLC 200X in control system 1X shown in FIG. 2. Therefore, when increasing the scale from control system 1X to control system 1Z, it is sufficient to add two inexpensive PLCs 200X.

さらに、ユーザは、モジュールMa,Mb,Mcをそれぞれ制御するためのプログラム122Za,122Zb,122Zcを組み合わせることにより、ユーザプログラム122Zを作成すればよい。そして、プログラム122Za,122Zb,122ZcがPLC200Xa,200Xb,200Xcにそれぞれインストールされる。そのため、ユーザは、ユーザプログラム122Zの作成の際に、モジュールの有効化処理および無効化処理の追加を省略できる。その結果、ユーザプログラムの作成の手間が削減される。 Furthermore, the user can create user program 122Z by combining programs 122Za, 122Zb, and 122Zc for controlling modules Ma, Mb, and Mc, respectively. Programs 122Za, 122Zb, and 122Zc are then installed in PLCs 200Xa, 200Xb, and 200Xc, respectively. Therefore, the user can omit adding module enablement and disablement processes when creating user program 122Z. As a result, the effort required to create a user program is reduced.

このように、分散コントローラシステムを用いることにより、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 support device 100 according to this embodiment supports the work of optimizing the communications within the control system and the calculation contents of each PLC.

<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 PLCs 200a and 200b when a distributed controller system is constructed using the PLCs 200a and 200b.

まず、ステップ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 PLCs 200a and 200b.

次に、PLC200a,200bは、スケジューラの動作を開始する(ステップS2a,S2b)。PLC200a,200bは、アドレス解決を行なう(ステップS3a,S3b)。 Next, PLCs 200a and 200b start the operation of the scheduler (steps S2a and S2b). PLCs 200a and 200b perform address resolution (steps S3a and S3b).

次に、PLC200a,200bは、接続されている通信スレーブ300との間で照合を行なう(ステップS4a,S4b)。照合結果に応じて、PLC200a,200bは、接続されている通信スレーブ300との間でコネクションを確立する(ステップS5a,S5b)。 Next, the PLCs 200a and 200b perform a comparison with the connected communication slave 300 (steps S4a and S4b). Depending on the comparison result, the PLCs 200a and 200b establish a connection with the connected communication slave 300 (steps S5a and S5b).

次に、PLC200a,200bは、同期トリガの送受信を行なう(ステップS6a,S6b)。PLC200a,200bは、同期トリガに応じて、通信を開始する(S7a,S7b)。これにより、PLC200a,200bの通信処理が同期される。 Next, the PLCs 200a and 200b transmit and receive a synchronization trigger (steps S6a and S6b). In response to the synchronization trigger, the PLCs 200a and 200b start communication (S7a and S7b). This synchronizes the communication processes of the PLCs 200a and 200b.

<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 support device 100 includes a CPU 102, a ROM (Read Only Memory) 103, a RAM (Random Access Memory) 104, a HDD (Hard Disk Drive) 105, a communication controller 107, and an I/O (Input/Output) interface 108. A keyboard 109 and a display 110 are connected to the support device 100. The keyboard 109 accepts inputs including instructions from a user to the support device 100. To accept the inputs, other devices such as a mouse may be connected to the support device 100. The display 110 includes an LCD (Liquid Crystal Display) or an organic EL (Electro Luminescence), and displays a video or image according to a video signal or image signal output from the support device 100. The support apparatus 100 includes an R/W (reader/writer) device 106 that detachably mounts an external storage medium 101 and reads and writes programs and/or data to the mounted storage medium 101 .

通信コントローラ107は、ネットワークを介した外部装置(PLC200を含む)との通信を制御する。通信コントローラ107は、例えばNIC(Network Interface Card)を含んで構成される。I/Oインターフェイス108は、CPU102とキーボード109およびディスプレイ110との間のデータの遣り取りを制御する。 The communication controller 107 controls communication with external devices (including the PLC 200) via a network. The communication controller 107 includes, for example, a NIC (Network Interface Card). The I/O interface 108 controls data exchange between the CPU 102 and the keyboard 109 and display 110.

HDD305は、OSを含むシステムプログラム120、ユーザプログラム122を生成するためのUPG生成プログラム121、ユーザプログラム122、接続情報123、および分散設計プログラム124を記憶する。 HDD305 stores a system program 120 including an OS, a UPG generation program 121 for generating a user program 122, the user program 122, connection information 123, and a distributed design program 124.

UPG生成プログラム121は、キーボード109から受け付けるユーザ操作に従い、ユーザプログラム122を編集(生成)するエディタ、編集されたユーザプログラム122をコンパイルするコンパイラ、ユーザプログラム122を実行可能な形式に変換するビルダなどを含む。なお、ビルダが、コンパイルの機能を含んでもよい。 The UPG generation program 121 includes an editor that edits (generates) the user program 122 in accordance with user operations received from the keyboard 109, a compiler that compiles the edited user program 122, and a builder that converts the user program 122 into an executable format. The builder may also include a compilation function.

接続情報123は、制御システム1の機器間の接続関係を示す。具体的には、接続情報123は、機器間の物理的な配線、配線の長さなどを示す。たとえば図1に示す構成の場合、PLC200a,200b、通信スレーブ300a~300iおよびスイッチ400の接続関係を示す接続情報123が予め作成され、HDD105に格納される。 The connection information 123 indicates the connection relationships between the devices in the control system 1. Specifically, the connection information 123 indicates the physical wiring between the devices, the length of the wiring, etc. For example, in the configuration shown in FIG. 1, the connection information 123 indicating the connection relationships between the PLCs 200a, 200b, the communication slaves 300a to 300i, and the switch 400 is created in advance and stored in the HDD 105.

分散設計プログラム124は、分散コントロールシステムとして制御システム1を構築するときの設計支援を行なう。 The distributed design program 124 provides design support when constructing the control system 1 as a distributed control system.

(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 PLC 200 includes, as main hardware components, a processor 202, a main memory 204, a storage 206, a field network controller 212, a communication controller 213, and a local bus controller 214. These hardware components are electrically connected via an internal bus 218.

プロセッサ202は、演算処理部に相当し、CPUやGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ202は、ストレージ210に格納されたプログラムを読出して、メインメモリ204に展開して実行することで、制御対象に応じた演算処理および各種処理を実現する。 The processor 202 corresponds to an arithmetic processing unit, and is composed of a CPU, a GPU (Graphics Processing Unit), etc. Specifically, the processor 202 reads out a program stored in the storage 210, expands it in the main memory 204, and executes it to realize arithmetic processing and various processes according to the control target.

メインメモリ204は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ206は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。 The main memory 204 is composed of a volatile storage device such as a dynamic random access memory (DRAM) or a static random access memory (SRAM). The storage 206 is composed of a non-volatile storage device such as a solid state drive (SSD) or a hard disk drive (HDD).

ストレージ206には、基本的な機能を実現するためのシステムプログラム220、制御対象に応じて作成されたユーザプログラム122の一部である部分プログラム222、および、通信スケジュールおよび演算スケジュールを定義付けるシステム設定情報224などが格納される。システムプログラム220は、PLC200における基本的な機能を実現するため、制御プログラムの少なくとも一部とみなすことができる。 Storage 206 stores a system program 220 for implementing basic functions, a partial program 222 that is part of a user program 122 created according to the control target, and system setting information 224 that defines a communication schedule and a calculation schedule. Since the system program 220 implements basic functions in PLC 200, it can be considered as at least a part of the control program.

フィールドネットワークコントローラ212は、フレームが一巡するように構成されたネットワークに接続される。より具体的には、フィールドネットワークコントローラ212は、EtherCAT(登録商標)やEtherNet/IPなどの通信プロトコルを用いて、フレームの送受信処理を担当するポートを有する。フィールドネットワークコントローラ212は、通信マスタ(マスタ)として機能する。なお、フィールドネットワークコントローラ212は、フレームを周期的に送受信するための同期カウンタを有していてもよい。 The field network controller 212 is connected to a network configured to circulate frames. More specifically, the field network controller 212 has a port that handles frame transmission and reception processing using a communication protocol such as EtherCAT (registered trademark) or EtherNet/IP. The field network controller 212 functions as a communication master. The field network controller 212 may also have a synchronization counter for periodically transmitting and receiving frames.

通信コントローラ213は、ネットワークを介した外部装置(サポート装置100を含む)との通信を制御する。 The communication controller 213 controls communication with external devices (including the support device 100) via the network.

ローカルバスコントローラ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 local bus controller 214 is electrically connected to one or more expansion units 216 via an internal bus 218. The expansion unit 216 includes a function for exchanging various signals with the control object. The expansion unit 216 has one or more functions, for example, a DI (Digital Input) function for receiving a digital signal from the control object, a DO (Digital Output) function for outputting a digital signal to the control object, an AI (Analog Input) function for receiving an analog signal from the control object, and an AO (Analog Output) function for outputting an analog signal to the control object. Furthermore, the expansion unit 216 may include a controller that implements special functions such as PID (Proportional Integral Derivative) control and motion control.

図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 processor 202 executing a program, some or all of these provided functions may be implemented using a dedicated hardware circuit (e.g., an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array)). Alternatively, the main part of the PLC 200 may be realized using hardware that follows a general-purpose architecture (e.g., an industrial PC based on a general-purpose PC). In this case, virtualization technology may be used to run multiple OSs (operating systems) with different uses in parallel, and necessary applications may be executed on each OS.

<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 support device 100 includes a storage unit 10, a division unit 11, a scheduling unit 12, a calculation unit 13, a selection unit 14, and a setting unit 15. The storage unit 10 is realized by the ROM 103, the RAM 104, and the HDD 105 shown in Fig. 4. The division unit 11, the scheduling unit 12, the calculation unit 13, the selection unit 14, and the setting unit 15 are realized by the CPU 102 executing the distributed design program 124.

記憶部10は、ユーザプログラム122と、接続情報123と、変数リスト125とを記憶する。 The memory unit 10 stores a user program 122, connection information 123, and a variable list 125.

図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 variable list 125 is a list of the device name, the variable name used by the communication slave 300, and the global variable name for each communication slave 300. The variable list 125 is created in advance using the setting environment provided by the support device 100.

分割部11(図6参照)は、ユーザプログラム122を複数の部分プログラム222に分割する。ユーザプログラム122を複数の部分プログラム222に分割する方法については後述する。 The division unit 11 (see FIG. 6) divides the user program 122 into a plurality of partial programs 222. The method of dividing the user program 122 into a plurality of partial programs 222 will be described later.

スケジューリング部12は、制御システム1に含まれる複数のPLC200に複数の部分プログラムを割り当てる複数の組み合わせを特定する。スケジューリング部12は、接続情報123を参照することにより、制御システム1に含まれるPLC200の個数を認識すればよい。スケジューリング部12は、複数の組み合わせの各々について、接続情報と割り当てられた部分プログラムとを用いて、各PLC200の通信スケジュールと、各PLC200のプロセッサ202による演算スケジュールとを決定する。 The scheduling unit 12 identifies multiple combinations for allocating multiple partial programs to multiple PLCs 200 included in the control system 1. The scheduling unit 12 can recognize the number of PLCs 200 included in the control system 1 by referring to the connection information 123. For each of the multiple combinations, the scheduling unit 12 determines a communication schedule for each PLC 200 and a calculation schedule for the processor 202 of each PLC 200 using the connection information and the allocated partial programs.

算出部13は、複数の組み合わせの各々について、通信スケジュールと演算スケジュールとに応じた評価値を算出する。 The calculation unit 13 calculates an evaluation value for each of the multiple combinations according to the communication schedule and the calculation schedule.

選択部14は、評価値に基づいて、複数の組み合わせの中から1つの組み合わせを選択する。たとえば、選択部14は、複数の組み合わせの各々の評価値をディスプレイ110に表示し、キーボード109への入力に応じて1つの組み合わせを選択する。あるいは、選択部14は、複数の組み合わせの中から、評価値の最も高い1つの組み合わせを選択してもよい。 The selection unit 14 selects one combination from among the multiple combinations based on the evaluation value. For example, the selection unit 14 displays the evaluation value of each of the multiple combinations on the display 110 and selects one combination in response to an input to the keyboard 109. Alternatively, the selection unit 14 may select one combination with the highest evaluation value from among the multiple combinations.

設定部15は、複数のPLC200の各々に、選択された1つの組み合わせにおいて割り当てられている部分プログラム222を設定する。具体的には、設定部15は、PLC200に部分プログラム222をインストールする。さらに、設定部15は、複数のPLC200の各々に、選択された1つの組み合わせに対応する通信スケジュールおよび演算スケジュールを設定する。具体的には、設定部15は、各PLC200に対して、通信スケジュールおよび演算スケジュールを定義付けるためのシステム設定情報224を生成し、生成したシステム設定情報224を設定する。 The setting unit 15 sets the partial program 222 assigned in the selected combination to each of the multiple PLCs 200. Specifically, the setting unit 15 installs the partial program 222 in the PLC 200. Furthermore, the setting unit 15 sets a communication schedule and a calculation schedule corresponding to the selected combination to each of the multiple PLCs 200. Specifically, the setting unit 15 generates system setting information 224 for defining the communication schedule and the calculation schedule for each PLC 200, and sets the generated system setting information 224.

<E.ユーザプログラムの分割方法>
制御システム1に備えられる複数の通信スレーブ300の各々は、生産ラインに設置される複数の機構のいずれかに関連付けられる。そのため、複数の通信スレーブ300は、関連する機構に応じて、複数のモジュールに分類され得る。
<E. How to divide a user program>
Each of the multiple communication slaves 300 included in the control system 1 is associated with one of multiple mechanisms installed in the production line. Therefore, the multiple communication slaves 300 can be classified into multiple modules according to the associated mechanism.

図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 control system 1 includes a module Md consisting of mutually related communication slaves 300b to 300d, and a module Me consisting of mutually related communication slaves 300e to 300i.

分割部11は、たとえば、モジュール単位でユーザプログラム122を複数の部分プログラム222に分割する。 The division unit 11, for example, divides the user program 122 into multiple partial programs 222 on a module basis.

図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. Definition 50 shown in Figure 9 defines inputs "A_in1" to "A_inN", logic, and outputs "A_out1" to "A_outM". The logic defines an operation for outputting "A_out1" to "A_outM" by referencing "A_in1" to "A_inN".

ユーザは、図10に示される定義50を含む複数の定義を用いて、ユーザプログラム122を作成する。たとえば、ユーザは、定義50の入力「A_in1」~「A_inN」に割り付ける変数またはデバイスと、定義50の出力「A_out1」~「A_outM」に割り付ける変数またはデバイスとを設定することにより、定義50の演算を含むユーザプログラム122を作成する。 The user creates a user program 122 using multiple definitions including the definition 50 shown in FIG. 10. For example, the user creates a user program 122 including the calculation of definition 50 by setting variables or devices to be assigned to the inputs "A_in1" to "A_inN" of definition 50 and variables or devices to be assigned to the outputs "A_out1" to "A_outM" of definition 50.

図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 calculation block 52 shown in Figure 10 is created by assigning variables or devices to the inputs and outputs of the definition 50 shown in Figure 9. For example, a sensor 60 is assigned to the input "A_in1", a variable 61 is assigned to the input "A_inN", an actuator 62 is assigned to the output "A_out1", and a variable 63 is assigned to the output "A_outM". In this case, the calculation block 52 performs a calculation using the data input from the sensor 60 and the variable 61, outputs the data obtained by the calculation to the actuator 62, and updates the variable 63.

演算ブロック52は、定義50と、割り付け情報とに基づいて作成される。割り付け情報は、各入力に割り付けられる変数またはデバイスと、各出力に割り付けられる変数またはデバイスとを示す。割り付け情報は、ユーザプログラム122を作成する際に、ユーザ入力に応じて作成される。 The operation block 52 is created based on the definition 50 and the allocation information. The allocation information indicates the variables or devices to be allocated to each input and the variables or devices to be allocated to each output. The allocation information is created in response to user input when creating the user program 122.

図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 user program 122 includes operation definitions 50 and 51 and allocation information 70 to 72.

演算ブロック52は、定義50と割り付け情報70とに基づいて作成される。演算ブロック52は、センサ60から入力されたデータと変数61とを用いた演算を行ない、演算によって得られたデータをアクチュエータ62に出力するとともに、変数63を更新する。 The calculation block 52 is created based on the definition 50 and the allocation information 70. The calculation block 52 performs calculations using data input from the sensor 60 and the variables 61, outputs the data obtained by the calculation to the actuator 62, and updates the variables 63.

演算ブロック53は、定義50と割り付け情報71とに基づいて作成される。演算ブロック53は、センサ64から入力されたデータと変数65とを用いた演算を行ない、演算によって得られたデータをアクチュエータ66に出力するとともに、変数67を更新する。 The calculation block 53 is created based on the definition 50 and the allocation information 71. The calculation block 53 performs calculations using data input from the sensor 64 and the variables 65, outputs the data obtained by the calculation to the actuator 66, and updates the variables 67.

演算ブロック54は、定義51と割り付け情報72とに基づいて作成される。演算ブロック54は、ネットワーク上の機器80から入力されたデータと変数63,67とを用いた演算を行ない、演算によって得られたデータを機器80に出力するとともに、変数61,65を更新する。 Calculation block 54 is created based on definition 51 and allocation information 72. Calculation block 54 performs calculations using data input from device 80 on the network and variables 63 and 67, outputs the data obtained by the calculation to device 80, and updates variables 61 and 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 unit 11 identifies a mechanism including the sensors 60, 64 and the actuators 62, 66, and divides the user program 122 into a plurality of partial programs 222 according to the identification result. The dividing unit 11 may identify a mechanism including the sensors 60, 64 and the actuators 62, 66 according to an input to the keyboard 109. Alternatively, when the connection information 123 includes information indicating the connection relationship between the sensors 60, 64 and the actuators 62, 66 and the mechanism, the dividing unit 11 may refer to the connection information 123 to identify a mechanism including the sensors 60, 64 and the actuators 62, 66.

図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 sensor 60 and the actuator 62 are included in the mechanism 90 associated with the module Md shown in Figure 9. The sensor 64 and the actuator 66 are included in the mechanism 91 associated with the module Me shown in Figure 9.

分割部11は、各機構について、当該機構に含まれるデバイス(センサ、アクチュエータなど)からの入力を用いて演算を行なう演算ブロックと、当該デバイス(センサ、アクチュエータなど)へデータを出力する演算ブロックとを特定する。分割部11は、各機構について、特定した演算ブロックを当該機構に関連するモジュール向けの部分プログラムの一部として決定する。 For each mechanism, the division unit 11 identifies an arithmetic block that performs calculations using input from a device (sensor, actuator, etc.) included in the mechanism, and an arithmetic block that outputs data to the device (sensor, actuator, etc.). For each mechanism, the division unit 11 determines the identified arithmetic block as part of a partial program for a module related to the mechanism.

図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 division unit 11 determines an operation block 52 that performs an operation using an input from a sensor 60 included in the mechanism 90 as part of a partial program 222d for a module Md (see FIG. 9) associated with the mechanism 90. Similarly, the division unit 11 determines an operation block 53 that performs an operation using an input from a sensor 64 included in the mechanism 91 as part of a partial program 222e for a module Me (see FIG. 9) associated with the mechanism 91.

さらに、分割部11は、残りの演算ブロックの各々について、入力される変数を更新する他の演算ブロックを特定する。特定した他の演算ブロックがいずれかの部分プログラム222に属する場合、分割部11は、他の演算ブロックが属する部分プログラム222に残りの演算ブロックを含める。なお、特定した他の演算ブロックが複数存在する場合、分割部11は、複数の他の演算ブロックの中から1つの演算ブロックを選択する。分割部11は、任意に1つの演算ブロックを選択してもよいし、キーボード109への入力に応じて1つの演算ブロックを選択してもよい。 Furthermore, for each of the remaining operation blocks, the division unit 11 identifies other operation blocks that update the input variables. If the identified other operation blocks belong to any of the partial programs 222, the division unit 11 includes the remaining operation blocks in the partial program 222 to which the other operation blocks belong. Note that, if there are multiple identified other operation blocks, the division unit 11 selects one operation block from the multiple other operation blocks. The division unit 11 may select one operation block arbitrarily, or may select one operation block in response to an input to the keyboard 109.

あるいは、分割部11は、変数リスト125を参照して、各演算ブロックに入力される変数を更新する通信スレーブ300を特定し、特定した通信スレーブ300を含むモジュール向けの部分プログラム222に当該演算ブロックを含ませてもよい。 Alternatively, the division unit 11 may refer to the variable list 125 to identify a communication slave 300 that updates the variables input to each operation block, and include the operation block in the partial program 222 for the module that includes the identified communication slave 300.

図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 division unit 11 identifies an operation block 52 that updates a variable 63 input to an operation block 54. The division unit 11 includes the operation block 54 in the partial program 222d to which the operation block 52 belongs. Alternatively, the division unit 11 may identify an operation block 53 that updates a variable 67 input to an operation block 54. In this case, the division unit 11 includes the operation block 54 in the partial program 222e to which the operation block 53 belongs.

このようにして、分割部11は、ユーザプログラム122を複数の部分プログラム222に分割する。 In this way, the division unit 11 divides the user program 122 into multiple partial programs 222.

図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 user program 122 is divided into partial program 222d for module Md and partial program 222e for module Me. As shown in Figure 13, the operation block 54 belonging to partial program 222d performs an operation using a variable 67 updated by the operation block 53 belonging to partial program 222e. The operation block 53 performs an operation using a variable 65 updated by the operation block 54. Therefore, as shown in Figure 14, it is necessary to exchange instructions and status between the partial programs 222d and 222e.

<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 scheduling unit 12 identifies a plurality of combinations for allocating a plurality of partial programs 222 to a plurality of PLCs 200 included in the control system 1. For example, when the control system 1 includes the PLCs 200a and 200b (see FIG. 1) and the user program 122 is divided into partial programs 222d and 222e (see FIG. 13), the scheduling unit 12 identifies the following four combinations (1) to (4).
Combination (1): The partial programs 222d and 222e are assigned to the PLC 200a.
Combination (2): The partial program 222d is assigned to the PLC 200a, and the partial program 222e is assigned to the PLC 200b.
Combination (3): The partial program 222d is assigned to the PLC 200b, and the partial program 222e is assigned to the PLC 200a.
Combination (4): The partial programs 222d and 222e are assigned to the PLC 200b.

図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 scheduling unit 12 determines that communication of input/output data (IO data) is required between the PLC 200a and the communication slaves 300b to 300d included in module Md because the partial program 222d assigned to the PLC 200a is intended for module Md. Similarly, the scheduling unit 12 determines that communication of IO data is required between the PLC 200b and the communication slaves 300e to 300i included in module Me because the partial program 222e assigned to the PLC 200b is intended for module Me.

さらに、スケジューリング部12は、通信スレーブ300b~300dにデイジーチェイン接続される通信スレーブ300aとPLC200aとの間でIOデータの通信が必要であると判断する。 Furthermore, the scheduling unit 12 determines that communication of IO data is required between the communication slave 300a, which is daisy-chain connected to the communication slaves 300b to 300d, and the PLC 200a.

上述したように、部分プログラム222d,222eの間で指示およびステータスの遣り取りが必要となる。そのため、スケジューリング部12は、PLC200a,200b間で指示およびステータスの通信が必要であると判断する。 As described above, it is necessary to exchange instructions and status between partial programs 222d and 222e. Therefore, the scheduling unit 12 determines that it is necessary to communicate instructions and status between PLCs 200a and 200b.

スケジューリング部12は、TSN技術を用いて通信を行なうときの通信スケジュールを決定する。TSN技術では、キューの開閉時間を計算した上で、全スイッチに内蔵している時刻を同期させ、その時刻でいつポートを開けて閉めるかを全スイッチに設定することで、フレームがキューで待ち状態にならずに、スイッチを通過できる。 The scheduling unit 12 determines the communication schedule when communication is performed using TSN technology. With TSN technology, the time for opening and closing the queue is calculated, the time built into all switches is synchronized, and the time for opening and closing the port is set in all switches based on that time, allowing frames to pass through the switch without waiting in the queue.

図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 PLC 200a to switch 400, PLC 200b, and communication slaves 300b to 300d.

スケジューリング部12は、フレームサイズ、フレームの伝搬時間、機器内の処理のための遅延時間を用いて、フレーム通信に要する時間を計算する。 The scheduling unit 12 calculates the time required for frame communication using the frame size, frame propagation time, and delay time for processing within the device.

たとえば、スイッチ400のポート内のキューの開閉時刻は、以下のようにして計算される。スケジューリング部12は、スイッチ400の開時刻を式(a)に従って計算する。
開時刻=フレーム送信開始時刻+オフセット時間+送信ジッタT12+フレーム伝搬遅延時間T13+フレーム送出時間T11・・・式(a)。
For example, the opening and closing times of a queue in a port of the switch 400 are calculated as follows: The scheduling unit 12 calculates the opening time of the switch 400 according to formula (a).
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 PLC 200a starts transmitting a frame. The scheduling unit 12 determines the frame transmission start time by analyzing the partial program 222d assigned to PLC 200a in combination (2). The frame transmission start time is determined by setting the time of communication start (steps S7a and S7b) shown in FIG. 4 as 0.

オフセット時間は、PLC200aが有する内部タイマとスイッチ400が有する内部タイマとの時間差である。各組み合わせの通信スケジュールを決定する際には、オフセット時間=0とすればよい。 The offset time is the time difference between the internal timer of PLC 200a and the internal timer of switch 400. When determining the communication schedule for each combination, the offset time should be set to 0.

送信ジッタ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 scheduling unit 12 stores the transmission jitter T12 measured in advance. Alternatively, if the connection information 123 includes the length of the wiring between the devices, the scheduling unit 12 may refer to the connection information 123 and calculate the transmission jitter T12 by multiplying the length of the wiring by a predetermined coefficient.

フレーム伝搬遅延時間T13は、スイッチ400内の処理に要する時間である。スケジューリング部12は、事前に測定されたフレーム伝搬遅延時間T13を記憶する。あるいは、スケジューリング部12は、スイッチ400を販売するベンダーから提供されたフレーム伝搬遅延時間T13を記憶する。 The frame propagation delay time T13 is the time required for processing within the switch 400. The scheduling unit 12 stores the frame propagation delay time T13 measured in advance. Alternatively, the scheduling unit 12 stores the frame propagation delay time T13 provided by the vendor selling the switch 400.

フレーム送出時間T11は、フレームの先頭から最後まで送出するための時間である。スケジューリング部12は、フレームサイズに基づいて、フレーム送出時間T11を計算する。フレームサイズは、通信されるIOデータのサイズであり、たとえばユーザによって指定される。 The frame transmission time T11 is the time required to transmit a frame from the beginning to the end. The scheduling unit 12 calculates the frame transmission time T11 based on the frame size. The frame size is the size of the IO data to be communicated, and is specified, for example, by the user.

さらに、スケジューリング部12は、各フレームのサイズが同一である場合、スイッチ400の閉時刻を式(b)に従って計算する。Nは、連続して伝送されるフレームの個数である。
閉時刻=開時刻+送信ジッタT12×N+フレーム伝搬遅延時間T13×(N-1)+フレーム送出時間T11×N・・・式(b)。
Furthermore, when the size of each frame is the same, the scheduling unit 12 calculates the closing time of the switch 400 according to equation (b), where N is the number of frames to be transmitted consecutively.
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 scheduling unit 12 calculates the open time and close time of the switch 400, and calculates the time T15 during which the switch 400 communicates. In a similar manner, the scheduling unit 12 calculates the time T14 during which the PLC 200a communicates.

図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 PLC 200a in combination (2) shown in Figure 15. Communication process 41 is performed between PLC 200a and communication slaves 300b to 300d. Communication process 42 is performed between PLC 200a and PLC 200b. Scheduling unit 12 determines the times for communication processes 41 and 42 by performing the above calculations.

さらに、スケジューリング部12は、各PLCのプロセッサ202の演算スケジュールを決定する。 Furthermore, the scheduling unit 12 determines the calculation schedule of the processor 202 of each PLC.

図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 user program 122 includes various programs, and each program is assigned to one of multiple tasks according to its priority. The allocation of each program to a task is set according to user input. The multiple tasks include a high-priority primary task, a secondary task with a lower priority than the primary task, and an event task. The primary task is executed at every control period Tc (=X ms) set by the user. The secondary task is executed at every period (=Y ms) set by the user. The length of the period of the secondary task may be the same as the control period Tc, or may be a multiple of the control period Tc. The event task is executed when an event occurs.

図19に示す例では、ユーザプログラム122は、制御プログラム131と、安全プログラム132と、監視プログラム133と、イベントプログラム134とを含む。制御プログラム131は、制御対象を制御するための演算を定義する。安全プログラム132は、設備や機械などによって人の安全が脅かされることを防止するためのセーフティ機能を提供する。監視プログラム133は、制御システム1において使用される変数を監視する。イベントプログラム134は、イベントが発生したときの動作を定義する。 In the example shown in FIG. 19, the user program 122 includes a control program 131, a safety program 132, a monitoring program 133, and an event program 134. The control program 131 defines the calculations for controlling the control target. The safety program 132 provides safety functions to prevent human safety from being threatened by equipment, machinery, etc. The monitoring program 133 monitors variables used in the control system 1. The event program 134 defines the operation when an event occurs.

制御プログラム131および安全プログラム132は、遅延なく、周期的に実行されることが望まれる。そのため、制御プログラム131および安全プログラム132は、通常、プライマリタスクに割り当てられる。なお、制御プログラム131および安全プログラム132の実行に必要なIOデータの通信処理も、プライマリタスクに割り当てられる。 It is desirable for the control program 131 and the safety program 132 to be executed periodically without delay. For this reason, the control program 131 and the safety program 132 are usually assigned to the primary task. In addition, the communication processing of the IO data required for the execution of the control program 131 and the safety program 132 is also assigned to the primary task.

監視プログラム133は、周期的に実行されることが望まれるが、遅延が許容される。そのため、監視プログラム133は、通常、セカンダリタスクに割り当てられる。監視プログラム133の実行に必要なIOデータの通信処理も、セカンダリタスクに割り当てられる。 It is desirable for the monitoring program 133 to be executed periodically, but delays are acceptable. For this reason, the monitoring program 133 is usually assigned to a secondary task. The communication processing of IO data required for the execution of the monitoring program 133 is also assigned to a secondary task.

イベントプログラム134は、周期的に実行される必要がないため、イベントタスクに割り当てられる。 The event program 134 is assigned to an event task because it does not need to be executed periodically.

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 control program 131 and the safety program 132 are communicated with priority. Therefore, a QoS priority of "7" is set for frames of IO data required for the execution of the control program 131 and the safety program 132.

スケジューリング部12は、各PLC200について、当該PLC200に割り当てられた部分プログラム222を割り当てたタスク、部分プログラム222によって定義される演算内容に基づいて、当該PLC200のプロセッサ202の演算スケジュールを決定する。 For each PLC 200, the scheduling unit 12 determines the calculation schedule of the processor 202 of the PLC 200 based on the tasks assigned to the partial programs 222 assigned to the PLC 200 and the calculation contents defined by the partial programs 222.

図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 processor 202 of PLC 200a in combination (2) shown in Figure 15.

図20に示されるように、スケジューリング部12は、プライマリタスクのスケジュールとして、通信処理41,42を実行する通信スケジュールと、演算処理43を実行する演算スケジュールとを決定する。 As shown in FIG. 20, the scheduling unit 12 determines, as the schedule for the primary task, a communication schedule for executing communication processes 41 and 42, and a computation schedule for executing computation process 43.

通信処理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 partial program 222d. Communication process 41 is communication process between communication slaves 300b to 300c. Communication process 42 is communication process with PLC 200b. A QoS priority of "7" is set for frames communicated by communication processes 41 and 42.

演算処理43は、部分プログラム222dにおいてプライマリタスクに割り当てられたプログラムによって定義される。 Calculation process 43 is defined by the program assigned to the primary task in partial program 222d.

同様に、スケジューリング部12は、セカンダリタスクのスケジュールとして、通信処理44を実行する通信スケジュールを決定する。 Similarly, the scheduling unit 12 determines a communication schedule for executing the communication process 44 as a schedule for the secondary task.

通信処理44は、部分プログラム222dにおいてセカンダリタスクに割り当てられたプログラムの実行に必要なIOデータの通信処理である。通信処理44によって通信されるフレームには、QoS優先度「5」が設定される。 Communication process 44 is a communication process for IO data required for executing a program assigned to a secondary task in partial program 222d. A QoS priority of "5" is set for frames communicated by communication process 44.

通信処理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 scheduling unit 12 calculates the time required for the calculation process 43 based on the analysis results of the partial program 222d, the user's input information, the operation information of each device, etc.

制御周期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 user program 122 includes a control program 131, a safety program 132, a monitoring program 133, an event program 134, and a data link setting program 135.

データリンク設定プロブラム135は、複数のPLC200間で通信を使ってお互いのメモリエリアを自動的に更新し、1つのPLC200のメモリ状況を常に別のPLC200に反映させるデータリンクを設定するプログラムである。データリンク設定プロブラム135の実行により、複数のPLC200は、メモリエリアのデータを互いに通信する。 The data link setting program 135 is a program that sets up a data link that automatically updates each other's memory areas using communication between multiple PLCs 200 and always reflects the memory status of one PLC 200 in another PLC 200. By executing the data link setting program 135, the multiple PLCs 200 communicate data in their memory areas with each other.

図21に示す例では、データリンク設定プロブラム135は、セカンダリタスクに割り当てられている。 In the example shown in FIG. 21, the data link setting program 135 is assigned to a secondary task.

図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 processor 202 of PLC 200a in the combination (2) shown in Figure 15. As shown in Figure 22, the scheduling unit 12 includes a communication process 45 for a data link with PLC 200b in the communication schedule of the secondary task. The time required for the communication process 45 is calculated according to the capacity of the memory area.

このようにして、スケジューリング部12は、各組み合わせについて、各PLC200の通信スケジュールおよび演算スケジュールを決定する。 In this way, the scheduling unit 12 determines the communication schedule and calculation schedule of each PLC 200 for each combination.

図23は、部分プログラム222d,222eをPLC200aに割り当てる組み合わせ(1)のときの、PLC200aのスケジュールを示す図である。 Figure 23 shows the schedule for PLC 200a when combination (1) is used to assign partial programs 222d and 222e to PLC 200a.

図23に示されるように、PLC200aのスケジュールは、全ての通信スレーブ300との通信処理41aを実行する通信スケジュールと、演算処理43d,43eを実行する演算スケジュールとを含む。演算処理43dは、モジュールMd向けの部分プログラム222dによって定義される。演算処理43eは、モジュールMe向けの部分プログラム222eによって定義される。 As shown in FIG. 23, the schedule of PLC 200a includes a communication schedule for executing communication process 41a with all communication slaves 300, and a calculation schedule for executing calculation processes 43d and 43e. Calculation process 43d is defined by partial program 222d for module Md. Calculation process 43e is defined by partial program 222e for module Me.

図24は、部分プログラム222d,222eをPLC200a,200bにそれぞれ割り当てる組み合わせ(2)のときの、PLC200a,200bのスケジュールを示す図である。 Figure 24 shows the schedules for PLCs 200a and 200b when combination (2) is used, in which partial programs 222d and 222e are assigned to PLCs 200a and 200b, respectively.

図24に示されるように、PLC200aのスケジュールは、通信処理41b,42aを実行する通信スケジュールと、演算処理43dを実行する演算スケジュールとを含む。通信処理41bは、通信スレーブ300a~300d(図16参照)との間の通信処理である。通信処理42aは、PLC200bとの間の通信処理である。 As shown in FIG. 24, the schedule of PLC 200a includes a communication schedule for executing communication processes 41b and 42a, and a calculation schedule for executing calculation process 43d. Communication process 41b is a communication process with communication slaves 300a to 300d (see FIG. 16). Communication process 42a is a communication process with PLC 200b.

PLC200bのスケジュールは、通信処理41c,42bを実行する通信スケジュールと、演算処理43eを実行する演算スケジュールとを含む。通信処理41cは、通信スレーブ300e~300i(図15参照)との間の通信処理である。通信処理42bは、PLC200aとの間の通信処理である。 The schedule of PLC 200b includes a communication schedule for executing communication processes 41c and 42b, and a calculation schedule for executing calculation process 43e. Communication process 41c is a communication process with communication slaves 300e to 300i (see FIG. 15). Communication process 42b is a communication process with PLC 200a.

通信処理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 PLC 200a in communication process 42a is received by PLC 200b in communication process 42b. Data transmitted from PLC 200b in communication process 42b is received by PLC 200a in communication process 42a. Therefore, the scheduling unit 12 may operate as an adjustment means for adjusting the time difference Td between the start timing of the control period Tc in PLC 200a and the start timing of the control period Tc in PLC 200b. That is, the scheduling unit 12 adjusts the time difference Td according to the communication timing between PLC 200a and 200b (i.e., the timing of communication processes 42a and 42b). If the time difference Td is uniformly set to 0, unnecessary waiting time occurs between communication process 41c and communication process 42b in PLC 200b. However, by adjusting the time difference Td, the occurrence of such waiting time is suppressed.

<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 calculation unit 13 calculates the load rate of the processor 202 of each PLC 200 for each combination as an evaluation value. The calculation unit 13 calculates the load rate of the processor 202 by dividing the total time of the communication processing and calculation processing executed in each control period by the control period Tc.

さらに、算出部13は、各組み合わせについて、各PLC200のプロセッサ202の負荷に占める通信処理の割合を評価値として算出する。算出部13は、各制御周期において実行される通信処理の合計時間を制御周期Tcで除算することにより、プロセッサ202の負荷に占める通信処理の割合を算出する。 Furthermore, the calculation unit 13 calculates, for each combination, the proportion of communication processing in the load of the processor 202 of each PLC 200 as an evaluation value. The calculation unit 13 calculates the proportion of communication processing in the load of the processor 202 by dividing the total time of communication processing executed in each control period by the control period Tc.

図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 calculation unit 13 calculates an index representing the network bandwidth for each communication cable as an evaluation value for each combination. The calculation unit 13 may calculate the index representing the network bandwidth based on the connection relationship between the devices indicated by the connection information 123 and the communication volume for each communication cable.

<I.選択部14および設定部15の処理例>
たとえば、選択部14は、各組み合わせに対して算出部13によって算出された評価値をディスプレイ110に表示し、複数の組み合わせの中から1つの組み合わせを選択する指示の入力を促す。ユーザは、表示された評価値を参照して、所望の組み合わせを選択すればよい。設定部15は、選択された組み合わせについて決定された通信スケジュールおよび演算スケジュールをPLC200に設定すればよい。
<I. Examples of Processing by the Selection Unit 14 and the Setting Unit 15>
For example, the selection unit 14 displays the evaluation values calculated by the calculation unit 13 for each combination on the display 110, and prompts the user to input an instruction to select one combination from among the multiple combinations. The user may select a desired combination by referring to the displayed evaluation values. The setting unit 15 may set the communication schedule and the calculation schedule determined for the selected combination in the PLC 200.

<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 partial program 222d for the module Md is assigned to the PLC 200a, and the partial program 222e for the module Me is assigned to the PLC 200a. However, the expansion unit 216b having the cloud broker function is attached to the PLC 200b, and the partial program 222e assigned to the PLC 200b includes the monitoring program 133b.

監視プログラム133bは、通信スレーブ300b~300iからの入力データを監視し、監視結果を拡張ユニット216bに提供する。拡張ユニット216は、提供された監視結果をクラウドシステム500に出力する。 The monitoring program 133b monitors input data from the communication slaves 300b to 300i and provides the monitoring results to the expansion unit 216b. The expansion unit 216 outputs the provided monitoring results to the cloud system 500.

通信スレーブ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 communication slaves 300b to 300d is necessary for the calculation of the partial program 222d for the module Md. Therefore, the output data from the communication slaves 300b to 300d is sent to the PLC 200a. However, since the monitoring program 133b has been assigned to the PLC 200b, the PLC 200b also needs to receive the input data from the communication slaves 300b to 300d. Therefore, the scheduling unit 12 changes the communication method for the output data from the communication slaves 300b to 300d from unicast addressed to the PLC 200a to multicast addressed to the PLCs 200a and 200b. This allows the PLCs 200a and 200b to obtain the output data from the communication slaves 300b to 300d.

図28は、組み合わせ(2)において部分プログラム222eが監視プログラムを含むときのPLC200a,200bのスケジュールを示す図である。 Figure 28 shows the schedules of PLCs 200a and 200b when partial program 222e includes a monitoring program in combination (2).

図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 PLC 200b includes communication process 46 and provision process 47. Communication process 46 is a process for reading input data that has been multicast from communication slaves 300b to 300d. In this way, the scheduling unit 12 need only incorporate a read time for reading input data transmitted by multicast into the communication schedule of PLC 200b.

さらに、スケジューリング部12は、読出時間に応じて、PLC200aにおける制御周期Tcの開始タイミングとPLC200bにおける制御周期Tcの開始タイミングとの時間差Tdを調整する調整手段として動作してもよい。すなわち、スケジューリング部12は、通信スレーブ300b~300dから入力データがマルチキャストされた後に通信処理46が実施されるように、時間差Tdを調整する。これにより、無駄が待機時間の発生が抑制される。 Furthermore, the scheduling unit 12 may operate as an adjustment means for adjusting the time difference Td between the start timing of the control period Tc in PLC 200a and the start timing of the control period Tc in PLC 200b according to the read time. That is, the scheduling unit 12 adjusts the time difference Td so that the communication process 46 is performed after the input data is multicast from the communication slaves 300b to 300d. This reduces the occurrence of unnecessary waiting time.

提供処理47は、通信スレーブ300b~300iからの入力データを拡張ユニット216bに提供する処理である。 The provision process 47 is a process that provides input data from the communication slaves 300b to 300i to the expansion unit 216b.

<K.通信スレーブの処理スケジュールの設定>
設定部15は、選択部14によって選択された組み合わせに対して決定された、各PLC200の通信スケジュールに基づいて、通信スレーブ300の処理スケジュールを設定してもよい。
<K. Setting the processing schedule of the communication slave>
The setting unit 15 may set a processing schedule for the communication slave 300 based on the communication schedule for each PLC 200 determined for the combination selected by the selection unit 14 .

図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 unit 15 identifies the latest timing t1 of the timing at which a frame arrives at the multiple communication slaves 300 within the control period Tc based on the communication schedules of each of the PLCs 200a and 200b corresponding to the selected combination. The setting unit 15 sets the timing t2 at which the multiple communication slaves 300 start various processes to be after timing t1. This makes it possible to synchronize the processing of the multiple communication slaves 300.

<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 PLC 200 having a CNC implemented therein among the plurality of PLCs 200 performs scheduling of the TSN. When the partial program 222 is set in each of the plurality of PLCs 200, the PLC 200 having a CNC implemented therein may adjust the phase of the control period of each PLC 200 using a value actually measured online. That is, the PLC 200 having a CNC implemented therein may operate as an adjustment means for adjusting the time difference Td between the start timing of the control period Tc in the PLC 200a and the start timing of the control period Tc in the PLC 200b. Alternatively, a network controller provided in the control system 1 may operate as an adjustment means for adjusting the time difference Td.

たとえば、PLC200aとPLC200bとの間でIOデータの通信が必要である場合、CNCが実装されたPLC200は、図24に示されるように、PLC200aとPLC200bとの間の通信スケジュールに応じて時間差Tdを調整する。 For example, when IO data communication is required between PLC 200a and PLC 200b, PLC 200 equipped with a CNC adjusts the time difference Td according to the communication schedule between PLC 200a and PLC 200b, as shown in FIG. 24.

あるいは、PLC200bがマルチキャスト方式で送信された入力データを読み出す必要がある場合(図27参照)、CNCが実装されたPLC200は、図28に示されるように、PLC200bによる当該入力データの読出時間に応じて時間差Tdを調整する。 Alternatively, when PLC 200b needs to read input data transmitted by the multicast method (see FIG. 27), PLC 200 equipped with a CNC adjusts the time difference Td according to the read time of the input data by PLC 200b, as shown in FIG. 28.

§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)。
<Configuration 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)。
<Configuration 2>
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 configuration 1, further comprising: a setting means (14, 102) for setting a partial program (222) assigned in one of the combinations to each of the plurality of control devices (200).

<構成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 configuration 1 or 2, further comprising an adjustment means (12, 102, 200) for adjusting a time difference between a start timing of the control cycle in the first control device (200a) and a start timing of the control cycle in the second control device (200b) in accordance with a communication timing between the first control device (200a) and the second control device (200b).

<構成4>
前記ユーザプログラム(122)は、前記複数の通信スレーブからの入力データを監視する監視プログラム(133b)を含み、
前記複数の制御装置(200)は、前記監視プログラム(133b)が割り当てられない第1制御装置(200a)と、前記監視プログラム(133b)が割り当てられる第2制御装置(200b)とを含み、
前記スケジューリング手段(12,102)は、
前記複数の通信スレーブ(300)のうちのいずれかの通信スレーブから前記第1制御装置(200a)への通信方式を、前記第1制御装置(200a)と前記第2制御装置(200b)とを宛先として指定したマルチキャストに設定し、
前記第2制御装置(200b)の通信スケジュールに、前記マルチキャストによって送信された前記入力データを読み出すための読出時間を組み込む、構成1または2に記載の制御システム(1)。
<Configuration 4>
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 configuration 1 or 2, wherein a read time for reading the input data transmitted by the multicast is incorporated into a communication schedule of the second control device (200b).

<構成5>
前記複数の制御装置(200)の各々は、予め定められた制御周期毎に、前記複数の通信スレーブ(300)のうちの少なくとも1つとの間の入出力データの通信と前記入出力データを用いた演算とを実行し、
前記制御システム(1)は、さらに、
前記読出時間に応じて、前記第1制御装置(200a)における前記制御周期の開始タイミングと前記第2制御装置(200b)における前記制御周期の開始タイミングとの時間差を調整する調整手段(12,102,200)を備える、構成4に記載の制御システム(1)。
<Configuration 5>
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 configuration 4 further comprises an adjustment means (12, 102, 200) for adjusting a time difference between a start timing of the control cycle in the first control device (200a) and a start timing of the control cycle in the second control device (200b) in accordance with the readout time.

<構成6>
前記複数の制御装置(200)の各々は、予め定められた制御周期毎に、前記複数の通信スレーブ(300)のうちの少なくとも1つへの出力データの送信を実行し、
前記設定手段(15,102)は、さらに、
前記1つの組み合わせに対して決定された、前記複数の制御装置(200)の各々の前記通信スケジュールに基づいて、前記制御周期内において、前記複数の通信スレーブ(300)に前記出力データが到達するタイミングのうち最も遅い第1タイミングを特定し、
前記複数の通信スレーブ(300)が処理を開始する第2タイミングを前記第1タイミング以降に設定する、構成2に記載の制御システム(1)。
<Configuration 6>
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 configuration 2, wherein a second timing at which the plurality of communication slaves (300) start processing is set to be later than or equal to the first timing.

<構成7>
制御対象を制御する制御システム(1)をサポートするサポート方法であって、
前記制御システム(1)は、
複数の通信スレーブ(300)と、
通信マスタとして動作する複数の制御装置(200)とを含み、
前記複数の制御装置(200)の各々はプロセッサ(202)を含み、
前記サポート方法は、
前記制御対象を制御するためのユーザプログラム(122)を複数の部分プログラム(222)に分割するステップと、
前記複数の部分プログラム(222)を前記複数の制御装置(200)に割り当てる複数の組み合わせの各々について、前記複数の制御装置(200)および前記複数の通信スレーブ(300)の接続関係を示す情報(123)と割り当てられた部分プログラム(222)とを用いて、前記複数の制御装置(200)の各々の通信スケジュールと、前記複数の制御装置(200)の各々の前記プロセッサ(202)による演算スケジュールとを決定するステップと、
前記複数の組み合わせの各々について、前記通信スケジュールと前記演算スケジュールとに応じた評価値を算出するステップと、を備える、サポート方法。
<Configuration 7>
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)。
<Configuration 8>
A program (124) for causing a computer to execute the support method according to configuration 7.

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組み合わせても、実施することが意図される。 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つの組み合わせにおいて割り当てられている部分プログラムを設定する設定手段と、をさらに備える、請求項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.
前記複数の制御装置の各々は、予め定められた制御周期毎に、前記複数の通信スレーブのうちの少なくとも1つとの間の入出力データの通信と前記入出力データを用いた演算とを実行し、
前記複数の制御装置は、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つとの間の入出力データの通信と前記入出力データを用いた演算とを実行し、
前記制御システムは、さらに、
前記読出時間に応じて、前記第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つの組み合わせに対して決定された、前記複数の制御装置の各々の前記通信スケジュールに基づいて、前記制御周期内において、前記複数の通信スレーブに前記出力データが到達するタイミングのうち最も遅い第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 .
請求項に記載のサポート方法をコンピュータに実行させる、プログラム。 A program for causing a computer to execute the support method according to claim 6 .
JP2021038267A 2021-03-10 2021-03-10 CONTROL SYSTEM, SUPPORT METHOD AND PROGRAM Active JP7589598B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
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