Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7844296B2 - controller - Google Patents
[go: Go Back, main page]

JP7844296B2 - controller - Google Patents

controller

Info

Publication number
JP7844296B2
JP7844296B2 JP2022147318A JP2022147318A JP7844296B2 JP 7844296 B2 JP7844296 B2 JP 7844296B2 JP 2022147318 A JP2022147318 A JP 2022147318A JP 2022147318 A JP2022147318 A JP 2022147318A JP 7844296 B2 JP7844296 B2 JP 7844296B2
Authority
JP
Japan
Prior art keywords
start time
data
period
transmission process
controller
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
JP2022147318A
Other languages
Japanese (ja)
Other versions
JP2024042538A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2022147318A priority Critical patent/JP7844296B2/en
Publication of JP2024042538A publication Critical patent/JP2024042538A/en
Application granted granted Critical
Publication of JP7844296B2 publication Critical patent/JP7844296B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Programmable Controllers (AREA)

Description

本実施形態は、コントローラに関する。 This embodiment relates to a controller.

産業機械等を制御するコントローラは、産業装置等の制御対象からのデータの入出力処理、データのタスク処理、および、データを他のコントローラへ出力する通信処理を個別に非同期で実行している場合がある。また、このようなコントローラにおいて、優先度の異なるデータが混在していても、リアルタイム通信を維持するように送信キューを時間制御している場合がある。 Controllers that control industrial machinery and other equipment may independently and asynchronously perform data input/output processing from controlled industrial equipment, data task processing, and communication processing to output data to other controllers. Furthermore, such controllers may use time-controlled transmission queues to maintain real-time communication even when data with different priorities are mixed together.

しかし、タスク処理と通信処理とが非同期の場合、送信処理の送信キューを厳密に時間管理すると、通信処理とタスク処理との周期が適合せず、送信すべきデータが次の周期の通信処理で送信されることがある。この場合、データの通信処理が遅延し、そのリアルタイム性が損なわれてしまうおそれがある。 However, when task processing and communication processing are asynchronous, strictly managing the transmission queue for transmission processing can lead to mismatches between the cycles of communication processing and task processing. This can result in data that should be transmitted being sent in the next cycle of communication processing. In this case, data transmission processing may be delayed, potentially compromising its real-time capabilities.

特開2019-121822号公報Japanese Patent Publication No. 2019-121822 特許第5184597号Patent No. 5184597 特許第6768625号Patent No. 6768625

データのタスク処理と送信処理が非同期であっても、データの通信処理のリアルタイム性を実現できるコントローラを提供する。 This controller provides real-time data communication processing even when data task processing and transmission processing are asynchronous.

本実施形態によるコントローラは、制御対象を制御するコントローラである。第1インタフェースコントローラは、制御対象と通信可能に接続され、制御対象からデータを周期的に入力する。第1記憶部は、データを格納する。演算部は、データを入力処理して演算処理して第1記憶部へ転送する。第2インタフェースコントローラは、他のコントローラと通信可能に接続され、データを他のコントローラへ周期的に送信する送信処理を実行する。演算部は、送信処理の開始時刻がデータの入力処理の期間に重複する場合に、送信処理の開始時刻を入力処理の期間より後に遅延させる。 The controller according to this embodiment is a controller that controls a controlled object. The first interface controller is connected to the controlled object for communication and periodically receives data from the controlled object. The first storage unit stores the data. The arithmetic unit processes the input data, performs calculations, and transfers the results to the first storage unit. The second interface controller is connected to other controllers for communication and performs transmission processing to periodically send data to other controllers. If the start time of the transmission processing overlaps with the data input processing period, the arithmetic unit delays the start time of the transmission processing to a later time than the input processing period.

第1実施形態による産業用コントローラシステムの構成例を示すブロック図。A block diagram showing an example configuration of an industrial controller system according to the first embodiment. コントローラの内部構成の一例を示すブロック図。A block diagram showing an example of the internal configuration of a controller. LANコントローラの構成および機能の一例を示す概念図。A conceptual diagram showing an example of the configuration and functions of a LAN controller. コントローラの入出力処理、演算処理、送信処理のそれぞれの動作の一例を示すタイミング図。A timing diagram showing an example of the operation of the controller's input/output processing, calculation processing, and transmission processing. コントローラの入出力処理、演算処理、送信処理のそれぞれの動作の一例を示すタイミング図。A timing diagram showing an example of the operation of the controller's input/output processing, calculation processing, and transmission processing. コントローラのタスク処理の動作の一例を示すフロー図。A flowchart illustrating an example of how a controller processes tasks. コントローラの送信処理の動作の一例を示すフロー図。A flowchart illustrating an example of the controller's transmission process. 第2実施形態によるコントローラのタスク処理時間を示す表。A table showing the task processing time of the controller according to the second embodiment. 第2実施形態によるコントローラの動作の一例を示すフロー図。A flowchart showing an example of controller operation according to the second embodiment.

以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。図面は模式的または概念的なものであり、各部分の比率などは、必ずしも現実のものと同一とは限らない。明細書と図面において、既出の図面に関して前述したものと同様の要素には同一の符号を付して詳細な説明は適宜省略する。 The embodiments of the present invention will be described below with reference to the drawings. These embodiments are not limiting to the present invention. The drawings are schematic or conceptual, and the proportions of each part may not necessarily be identical to those of actual objects. In the specification and drawings, elements similar to those described above are denoted by the same reference numerals, and detailed explanations are omitted as appropriate.

(第1実施形態)
図1は、第1実施形態による産業用コントローラシステム(以下、単にシステムという)1の構成例を示すブロック図である。システム1は、コントローラ11~15を備えており、システム1の外部に設けられた単数または複数の産業機械を制御するために設けられている。
(First Embodiment)
Figure 1 is a block diagram showing an example configuration of an industrial controller system (hereinafter simply referred to as "the system") 1 according to the first embodiment. The system 1 includes controllers 11 to 15 and is provided for controlling one or more industrial machines located outside the system 1.

コントローラ11~15は、例えば、LAN(Local Area Network)等のネットワーク20を介して互いに通信可能に接続されている。ネットワーク20は、有線または無線のいずれでもよい。コントローラ11~15には、他のコントローラと重複しない固有の識別子が付されている。コントローラ11~15は、その内部にタイマ機能を有しており、その時刻は、IEEE1588で定義されているPTP(Precision Time Protocol)などを用いて、互いに高精度に同期している。 Controllers 11-15 are connected to each other via a network 20, such as a LAN (Local Area Network), enabling communication between them. The network 20 may be wired or wireless. Each controller 11-15 is assigned a unique identifier that does not overlap with other controllers. Controllers 11-15 have internal timer functions, and their time is synchronized with high precision using a protocol such as PTP (Precision Time Protocol) as defined in IEEE 1588.

コントローラ11~15は、それぞれ同一構成を有してよい。また、コントローラの数は、5個に限定されず、4個以下でもよく、あるいは、6個以上であってもよい。 Controllers 11 to 15 may each have the same configuration. Furthermore, the number of controllers is not limited to five; it may be four or fewer, or six or more.

図2は、コントローラ11の内部構成の一例を示すブロック図である。コントローラ12~15の構成は、コントローラ11の構成と同じであるので、ここでは、コントローラ11の構成を説明し、コントローラ12~15の構成の説明は省略する。 Figure 2 is a block diagram showing an example of the internal configuration of controller 11. Since the configurations of controllers 12-15 are the same as those of controller 11, only the configuration of controller 11 will be described here, and the configurations of controllers 12-15 will be omitted.

コントローラ11は、CPU30と、I/Oバスコントローラ40と、メモリ50と、コモンメモリ60と、インタフェースブリッジ70と、LANコントローラ80とを備えている。コントローラ11は、I/O装置90を介して産業機械100に通信可能に接続されている。 The controller 11 comprises a CPU 30, an I/O bus controller 40, a memory 50, a common memory 60, an interface bridge 70, and a LAN controller 80. The controller 11 is communicated to the industrial machine 100 via an I/O device 90.

演算部の一例としてのCPU30は、I/Oバスコントローラ40から入力された産業機械100からの入力データを処理する。入力データは、例えば、産業機械100に設けられた各種センサの情報であり、より詳細には、圧力情報、温度情報、モータの位置情報等でよい。CPU30は、このような入力データをI/Oバスコントローラ40から入力してメモリ50および/またはコモンメモリ60へ転送する入力処理を実行する。また、CPU30は、入力データ等を処理し、それに対応して制御コマンドを生成し、この制御コマンドを、I/Oバスコントローラ40を介して産業機械100へ出力する。制御コマンドは、I/O装置90を介して産業機械100へ送信され、産業機械100を制御するために用いられる。例えば、入力データが温度情報の場合には、制御コマンドは、産業機械100の温度を制御するためにヒータの出力を調節するために用いられる。また、CPU30は、メモリ50と協働して入力データを演算処理し、その結果として得られた演算結果データをコモンメモリ60に格納する。 As an example of a calculation unit, the CPU 30 processes input data from the industrial machine 100 received from the I/O bus controller 40. The input data may include, for example, information from various sensors installed on the industrial machine 100, more specifically, pressure information, temperature information, motor position information, etc. The CPU 30 performs input processing, receiving such input data from the I/O bus controller 40 and transferring it to the memory 50 and/or common memory 60. The CPU 30 also processes the input data, generates control commands accordingly, and outputs these control commands to the industrial machine 100 via the I/O bus controller 40. The control commands are transmitted to the industrial machine 100 via the I/O device 90 and used to control the industrial machine 100. For example, if the input data is temperature information, the control command is used to adjust the heater output to control the temperature of the industrial machine 100. Furthermore, the CPU 30 works in cooperation with the memory 50 to perform calculations on the input data and stores the resulting calculation data in the common memory 60.

CPU30に導入されるOS(オペレーションシステム)は、リアルタイムOSである。CPU30は、入力データおよび制御コマンドの入出力処理、入力データの演算処理、演算結果データの送信処理等のソフトウェア処理をリアルタイムでスケジューリングする。入力処理では、CPU30は、入力データを周期的に入力処理して入力データや演算結果データをコモンメモリ60へ転送する。 The operating system (OS) installed in the CPU 30 is a real-time OS. The CPU 30 schedules software processing in real time, including input/output processing of input data and control commands, calculation processing of input data, and transmission of calculation result data. In input processing, the CPU 30 periodically processes input data and transfers the input data and calculation result data to the common memory 60.

第1インタフェースコントローラの一例としてのI/Oバスコントローラ40は、I/O装置90を介して外部の産業機械100と通信可能に接続されている。I/Oバスコントローラ40は、I/O装置90を制御して、産業機械100から入力データを入力し、CPU30からの制御コマンドを産業機械100へ出力する。I/Oバスコントローラ40は、産業機械100とのデータの入出力処理を一定の周期(例えば、約200μs)で実行する。このように、I/Oバスコントローラ40は、産業機械100とコントローラ11との間のデータの入出力処理を制御する。 An I/O bus controller 40, as an example of a first interface controller, is connected to an external industrial machine 100 via an I/O device 90 for communication. The I/O bus controller 40 controls the I/O device 90 to receive input data from the industrial machine 100 and outputs control commands from the CPU 30 to the industrial machine 100. The I/O bus controller 40 performs data input/output processing with the industrial machine 100 at a fixed interval (for example, approximately 200 μs). In this way, the I/O bus controller 40 controls the data input/output processing between the industrial machine 100 and the controller 11.

第2記憶部としてのメモリ50は、CPU30で実行されるプログラム、および、入力データを演算処理するために用いられる様々なパラメータ等を格納している。また、メモリ50は、入出力処理で入力された入力データあるいは入力データを演算処理して得られた演算結果を一時的に格納する。 The second memory unit, memory 50, stores the program executed by the CPU 30, as well as various parameters used for processing input data. Memory 50 also temporarily stores input data received during input/output processing, or the calculation results obtained by processing the input data.

第1記憶部としてのコモンメモリ60は、連続した記憶領域を複数のブロックに分割し、管理している。各ブロックは、送信処理に用いられるコントローラの識別子(以下、ノード番号ともいう)と関連付けて予め設定されている。また、各ブロックは、高速、中速および低速の送信優先度が設定されている。高速のブロックのデータは、中速または低速のブロックのデータよりも優先度が高い。中速のブロックのデータは、低速のブロックのデータよりも優先度が高い。優先度の高いブロックのデータは、優先的に送信処理される。 The common memory 60, acting as the first storage unit, manages a contiguous storage area divided into multiple blocks. Each block is pre-configured and associated with a controller identifier (hereinafter also referred to as the node number) used for transmission processing. Furthermore, each block is assigned a transmission priority of high speed, medium speed, and low speed. Data in high-speed blocks has higher priority than data in medium-speed or low-speed blocks. Data in medium-speed blocks has higher priority than data in low-speed blocks. Data in high-priority blocks is processed for transmission preferentially.

コモンメモリ60は、コントローラ11の入出力処理で入力された入力データおよび演算結果データを格納するとともに、他のコントローラ12~15のデータも等値化処理によって格納する。例えば、コモンメモリ60の各ブロックのデータは、マルチキャストによる送信処理により、ネットワーク20内の他のコントローラ12~15に送信され、コモンメモリ60の内容はコントローラ間で等値化されている。等値化処理は、コントローラ11~15が入出力処理において産業機械100から受け取った自己のデータを、ネットワーク20を介して他のコントローラへ送信し合い、また、他のコントローラのデータを受け取ってコモンメモリ60に格納することによって、コモンメモリ60に格納されているデータを等値化する処理である。これにより、コントローラ11~15のコモンメモリ60のデータがそれぞれのコモンメモリ60に等しく格納され等値状態となる。 The common memory 60 stores input data and calculation result data received during the input/output processing of controller 11, and also stores data from other controllers 12-15 through an equalization process. For example, the data in each block of the common memory 60 is transmitted to other controllers 12-15 in the network 20 via multicast transmission, and the contents of the common memory 60 are equalized among the controllers. The equalization process is a process in which controllers 11-15 transmit their own data received from the industrial machine 100 during input/output processing to other controllers via the network 20, and also receive data from other controllers and store it in the common memory 60, thereby equalizing the data stored in the common memory 60. As a result, the data in the common memory 60 of controllers 11-15 is stored equally in each common memory 60, resulting in an equalized state.

インタフェースブリッジ70は、例えば、PCIエクスプレス(登録商標)ブリッジでよい。インタフェースブリッジ70は、データのプロトコル変換を行い、データをLANコントローラ80からネットワーク20へ送信可能にする。 The interface bridge 70 may be, for example, a PCI Express® bridge. The interface bridge 70 performs data protocol conversion, enabling data transmission from the LAN controller 80 to the network 20.

第2インタフェースコントローラの一例としてのLANコントローラ80は、他のコントローラ12~15とネットワーク20を介して通信可能に接続されている。LANコントローラ80は、データを他のコントローラ12~15へ周期的に同報送信する。LANコントローラ80は、コモンメモリ60に格納されたデータ等の送信すべきデータ(以下、送信データともいう)を送信処理する際に、送信キューのゲート制御を行う。送信データは、それぞれに優先度の情報が付されており、その優先度ごとに送信キューに蓄積(格納)される。LANコントローラ80は、送信データが1つ選択されるように各送信キューをゲート制御する機能を実装している。これにより、LANコントローラ80は、送信キューに蓄積された送信データを優先度の高い順に1ブロックずつ送信処理する。このとき、このゲート制御機能は、IEEE802.1Qbvの規格に準拠しており、ゲート制御設定はソフトウェアとして実装されている。 As an example of a second interface controller, the LAN controller 80 is connected to the other controllers 12-15 via the network 20 for communication. The LAN controller 80 periodically broadcasts data to the other controllers 12-15. When processing data to be transmitted (hereinafter also referred to as transmission data), such as data stored in the common memory 60, the LAN controller 80 performs gate control of the transmission queue. Each transmission data item is assigned priority information, and these are stored in the transmission queue according to their priority. The LAN controller 80 implements a function to gate each transmission queue so that one transmission data item is selected. As a result, the LAN controller 80 processes the transmission data stored in the transmission queue one block at a time in order of priority. This gate control function conforms to the IEEE 802.1Qbv standard, and the gate control settings are implemented as software.

次に、入力処理、出力処理、演算処理および送信処理について説明する。 Next, we will explain input processing, output processing, arithmetic processing, and transmission processing.

入力処理は、産業機械100からのデータをI/O装置90およびI/Oバスコントローラ40を介してコントローラ11内に取り込む処理である。また、入力処理は、他のコントローラ12~15のデータを、等値化されたコモンメモリ60からメモリ50に入力する処理を含む。また、出力処理は、制御コマンド等をI/Oバスコントローラ40およびI/O装置90を介して産業機械100へ出力する処理である。また、出力処理は、メモリ50からコモンメモリ60へデータを格納する処理を含む。以下、入力処理と出力処理とをまとめて入出力処理ともいう。 The input process involves receiving data from the industrial machine 100 into the controller 11 via the I/O device 90 and the I/O bus controller 40. The input process also includes inputting data from other controllers 12-15 from the equalized common memory 60 into memory 50. The output process involves outputting control commands, etc., to the industrial machine 100 via the I/O bus controller 40 and the I/O device 90. The output process also includes storing data from memory 50 into common memory 60. Hereinafter, the input and output processes will be collectively referred to as input/output processing.

演算処理は、CPU30がメモリ50に入力されたデータを演算し、その演算結果をメモリ50に格納する処理である。演算処理は、高速、中速、低速などのデータの優先度ごとに実行される。入力処理、出力処理および演算処理は、周期的に起動され実行される。以下、入出力処理および演算処理をまとめてタスク処理ともいう。 The arithmetic processing is the process by which the CPU 30 performs calculations on data input to memory 50 and stores the calculation results in memory 50. The arithmetic processing is executed according to data priority, such as high-speed, medium-speed, and low-speed. Input processing, output processing, and arithmetic processing are initiated and executed periodically. Hereinafter, input/output processing and arithmetic processing will be collectively referred to as task processing.

送信処理は、CPU30がコモンメモリ60のデータをLANコントローラ80に対して送信要求し、LANコントローラ80が送信要求に応じて送信キューに蓄積されたデータを、ネットワーク20を介して他のコントローラ12~15へ送信する処理である。このとき、LANコントローラ80は、データを優先度ごとに送信キューに蓄積し、そのデータを優先度に応じて他のコントローラ12~15へ同報送信する。送信処理は、周期的に起動され実行されるが、上記入出力処理および演算処理とは非同期で実行される。 The transmission process involves the CPU 30 requesting the LAN controller 80 to transmit data from the common memory 60. The LAN controller 80 then transmits the data stored in the transmission queue to other controllers 12-15 via the network 20. At this time, the LAN controller 80 stores the data in the transmission queue according to priority and broadcasts that data to the other controllers 12-15 according to priority. The transmission process is initiated and executed periodically, but it is performed asynchronously with the input/output and arithmetic processing described above.

図3は、LANコントローラ80の構成および機能の一例を示す概念図である。LANコントローラ80は、送信データをコモンメモリ60からブロックごとに受け取り、送信キューQ1~Q3のいずれかに優先度ごとに蓄積する。LANコントローラ80は、送信データがブロックごとに選択されるように各送信キューをゲート制御する。このとき、送信キューQ1~Q3からの送信が重複しないように、送信キューQ1~Q3のそれぞれのゲートは、重複しない異なる時間に開放される。例えば、送信キューQ1のゲートの開放時間は、t1~t2であり、送信キューQ2のゲートの開放時間は、t3~t4であり、送信キューQ3のゲートの開放時間は、t5~t6である。これにより、LANコントローラ80は、送信データを重複することなく、優先度の高い順に1ブロックずつネットワーク20を介して他のコントローラ12~15へ送信することができる。尚、優先度は、3つに限定されず、2つ以下または4つ以上であってもよい。 Figure 3 is a conceptual diagram showing an example of the configuration and function of the LAN controller 80. The LAN controller 80 receives transmission data from the common memory 60 in blocks and stores it in one of the transmission queues Q1 to Q3 according to priority. The LAN controller 80 gates each transmission queue so that transmission data is selected block by block. At this time, to prevent overlapping transmissions from transmission queues Q1 to Q3, the gates of each transmission queue Q1 to Q3 are opened at different times without overlap. For example, the gate opening time for transmission queue Q1 is t1 to t2, the gate opening time for transmission queue Q2 is t3 to t4, and the gate opening time for transmission queue Q3 is t5 to t6. This allows the LAN controller 80 to transmit the transmission data one block at a time via the network 20 to other controllers 12 to 15 in order of priority, without overlapping. Note that the priority is not limited to three; it may be two or fewer, or four or more.

尚、送信キューのゲートの開放時間の制御は、有効または無効に切り替えることができる。ゲートの開放時間が無効になっている場合、LANコントローラ80は、開放時間の設定に従うことなく、送信キューQ1~Q4の優先度の高い順にFIFO(First In First Out)で送信する。ゲートの開放時間が有効になっている場合、LANコントローラ80は、ゲートの開放時間の設定に従って、送信する。本実施形態では、ゲートの開放時間は有効に設定されている。 Furthermore, the control of the gate opening time for the transmission queue can be switched between enabled and disabled. When the gate opening time is disabled, the LAN controller 80 transmits in FIFO (First In First Out) order from transmission queues Q1 to Q4 in descending order of priority, without adhering to the opening time setting. When the gate opening time is enabled, the LAN controller 80 transmits according to the gate opening time setting. In this embodiment, the gate opening time is set to enabled.

次に、コントローラ11の動作について説明する。 Next, we will explain the operation of controller 11.

図4および図5は、コントローラ11の入出力処理、演算処理、送信処理のそれぞれの動作の一例を示すタイミング図である。図6は、コントローラ11のタスク処理の動作の一例を示すフロー図である。図7は、コントローラ11の送信処理の動作の一例を示すフロー図である。送信処理は、タスク処理とは非同期で実行されるため、図4および図5では、送信処理は、タスク処理とは別に図示している。 Figures 4 and 5 are timing diagrams showing examples of the operation of the input/output processing, arithmetic processing, and transmission processing of the controller 11. Figure 6 is a flowchart showing an example of the operation of the task processing of the controller 11. Figure 7 is a flowchart showing an example of the operation of the transmission processing of the controller 11. Since the transmission processing is executed asynchronously from the task processing, it is shown separately from the task processing in Figures 4 and 5.

入出力処理は、入力処理および出力処理の両方を意味する。入出力処理および演算処理は、同期しており、一定の周期Bで繰り返し実行される。送信処理は、一定の周期Fで繰り返し実行されるが、入出力処理および演算処理とは非同期で実行される。 Input/output processing refers to both input and output processing. Input/output processing and arithmetic processing are synchronous and executed repeatedly at a fixed period B. Transmission processing is executed repeatedly at a fixed period F, but it is executed asynchronously from input/output processing and arithmetic processing.

また、入力処理の実行期間Dと、或る入力処理から次の入力処理までの第1周期Bと、送信処理の実行期間Hと、或る送信処理から次の送信処理までの第2周期Fは、予め設定されており、メモリ50に格納されている。 Furthermore, the execution period D for input processing, the first cycle B between one input process and the next, the execution period H for transmission processing, and the second cycle F between one transmission process and the next are predetermined and stored in memory 50.

まず、図4に示すように、t11~t12において、入出力処理が実行される(図6のS10)。即ち、産業機械100からのデータは、I/O装置90およびI/Oバスコントローラ40からコントローラ11内に入力され、メモリ50に保持される。また、データは、メモリ50からコモンメモリ60へ転送される。このときコモンメモリ60に格納されているデータも、演算処理の必要に応じてメモリ50に入力される。また、このとき、送信すべき制御コマンドがある場合、制御コマンドはI/Oバスコントローラ40およびI/O装置90から産業機械100へ出力される。 First, as shown in Figure 4, input/output processing is performed at t11-t12 (S10 in Figure 6). That is, data from the industrial machine 100 is input into the controller 11 from the I/O device 90 and the I/O bus controller 40 and held in memory 50. The data is then transferred from memory 50 to common memory 60. At this time, data stored in common memory 60 is also input into memory 50 as needed for calculation processing. Furthermore, if there are control commands to be sent, these control commands are output from the I/O bus controller 40 and the I/O device 90 to the industrial machine 100.

また、t11において、CPU30が、タイマ機能を用いて、入出力処理を開始した時にその時点の開始時刻(第1開始時刻)t11を取得し、メモリ50に格納する(S10)。CPU30は、開始時刻t11および第1周期Bに基づいて、次に実行される予定の入出力処理の開始時刻(第2開始時刻)t17を算出してメモリ50に格納する(図6のS20)。例えば、CPU30は、開始時刻t11に第1周期Bを足し算して、開始時刻t17を算出すればよい。尚、このとき算出された開始時刻t17は、計算により算出された未来の予定時刻であり、次のタスク処理の起動時刻でもある。次のタスク処理の起動時刻t17は、データの優先度に関連付けてメモリ50に格納する。 Furthermore, at time t11, the CPU 30 uses a timer function to obtain the start time (first start time) t11 at that point in time and stores it in memory 50 (S10). Based on the start time t11 and the first cycle B, the CPU 30 calculates the start time (second start time) t17 of the next scheduled input/output process and stores it in memory 50 (S20 in Figure 6). For example, the CPU 30 can calculate the start time t17 by adding the first cycle B to the start time t11. The calculated start time t17 is a future scheduled time calculated by the process, and is also the start time of the next task process. The start time t17 of the next task process is stored in memory 50 in association with the data priority.

t12において、入出力処理が終了すると、CPU30は、入力データ等を用いて演算処理を開始する(S30)。演算処理では、CPU30は、入力データ等を用いて、所定の演算を実行し、演算結果データを得る。演算結果データは、メモリ50およびコモンメモリ60に格納される(S32)。 At time t12, once input/output processing is complete, the CPU 30 starts arithmetic processing using the input data, etc. (S30). In the arithmetic processing, the CPU 30 performs predetermined calculations using the input data, etc., and obtains calculation result data. The calculation result data is stored in memory 50 and common memory 60 (S32).

次のタスク処理がある場合(S34のYES)、CPU30は、ステップS10~S32を繰り返し実行する。一方、次のタスク処理が無い場合(S34のNO)、CPU30は、タスク処理を終了する。 If there is a next task to process (YES in S34), the CPU 30 repeatedly executes steps S10 to S32. On the other hand, if there is no next task to process (NO in S34), the CPU 30 terminates the task process.

一方、図4のt13において、送信処理が開始される。送信処理において、CPU30は、タイマ機能を用いて、送信処理を開始した時にその時点の開始時刻(第3開始時刻)t13を取得し、メモリ50に格納する(S40)。CPU30は、開始時刻t13および第2周期Fに基づいて、次に実行される予定の送信処理の開始時刻t15を算出してメモリ50に格納する(S50)。例えば、CPU30は、開始時刻t13に第2周期Fを足し算して、開始時刻t15を算出すればよい。尚、このとき算出された開始時刻t15は、計算により算出された未来の予定時刻である。 Meanwhile, at time t13 in Figure 4, the transmission process begins. During the transmission process, the CPU 30 uses a timer function to obtain the start time (third start time) t13 at the time the transmission process begins and stores it in memory 50 (S40). Based on the start time t13 and the second period F, the CPU 30 calculates the start time t15 of the next scheduled transmission process and stores it in memory 50 (S50). For example, the CPU 30 can calculate the start time t15 by adding the second period F to the start time t13. Note that the calculated start time t15 is a future scheduled time calculated through this process.

ここで、CPU30は、次の送信処理の開始時刻t15が、次の入出力処理の開始時刻t17から入力処理の期間(即ち、t17~t17+D)内に含まれているか否かを判定する(S60)。t17+Dは、t19である。即ち、CPU30は、次の送信処理の開始時刻t15が、次の入力出力処理の期間t17~t19に重複しているか否かを判定する。 Here, the CPU 30 determines whether the start time t15 of the next transmission process falls within the input processing period (i.e., t17 to t17+D) starting from the start time t17 of the next input/output process (S60). t17+D is t19. That is, the CPU 30 determines whether the start time t15 of the next transmission process overlaps with the input/output processing period t17 to t19.

メモリ50は、次の送信処理の開始時刻が、次の入出力処理の期間に含まれているか否かを示すフラグ情報(1ビットデータ)を有する。次の送信処理の開始時刻が次の入出力処理の期間に含まれている場合には(S60のYES)、CPU30は、フラグ情報を立てる(ビットを反転させる)(S75)。次の送信処理の開始時刻が次の入力出力処理の期間に含まれていない場合には(S60のNO)、CPU30は、フラグ情報を立てない(ビットを反転させない)(S70)。図4の例では、次の送信処理の開始時刻t15が次の入出力処理の期間t17~t19に含まれていないので(S60のNO)、CPU30は、フラグ情報を立てない(S70)。フラグ情報は、送信処理を遅延させるか否かを決定するために用いられる。 Memory 50 holds flag information (1-bit data) indicating whether the start time of the next transmission process is included in the period of the next input/output process. If the start time of the next transmission process is included in the period of the next input/output process (YES in S60), the CPU 30 sets the flag information (inverts the bit) (S75). If the start time of the next transmission process is not included in the period of the next input/output process (NO in S60), the CPU 30 does not set the flag information (does not invert the bit) (S70). In the example in Figure 4, the start time t15 of the next transmission process is not included in the period t17-t19 of the next input/output process (NO in S60), so the CPU 30 does not set the flag information (S70). The flag information is used to determine whether or not to delay the transmission process.

また、CPU30は、t13~t14の今回の送信処理において、フラグ情報が立っているかを確認する(S80)。フラグ情報が立っている場合(S80のYES)、CPU30は、送信処理のタイマを停止し(S82)、t13~t14の今回の送信処理の開始時刻を、入出力処理の実行期間D以上遅延させた時刻に設定する(S84)。例えば、t13~t14の今回の送信処理の開始時刻は入出力処理の期間に重複しないので、t13~t14の送信処理に対応するフラグ情報は立っていない。よって、CPU30は、t13~t14の送信処理を遅延させることなく、t13において予定通り開始する(S100)。送信処理では、CPU30は、コモンメモリ60のデータをLANコントローラ80に転送し、送信要求する。LANコントローラ80は、送信キューに蓄積されたデータを、ネットワーク20を介して他のコントローラ12~15へ送信する。 Furthermore, the CPU 30 checks whether the flag information is set for the current transmission process at t13-t14 (S80). If the flag information is set (YES in S80), the CPU 30 stops the transmission process timer (S82) and sets the start time of the current transmission process at t13-t14 to a time delayed by at least the execution period D of the input/output process (S84). For example, since the start time of the current transmission process at t13-t14 does not overlap with the input/output process period, the flag information corresponding to the transmission process at t13-t14 is not set. Therefore, the CPU 30 starts the transmission process at t13 as scheduled without delay (S100). In the transmission process, the CPU 30 transfers the data from the common memory 60 to the LAN controller 80 and requests transmission. The LAN controller 80 transmits the data accumulated in the transmission queue to the other controllers 12-15 via the network 20.

t13~t14の送信処理が終了すると、CPU30は、次のタスクがあるか確認する。次のタスク処理がある場合(S110のYES)、CPU30は、ステップS40~S100を繰り返し実行する。 Once the transmission process in steps t13-t14 is complete, the CPU 30 checks if there is another task. If there is another task (YES in S110), the CPU 30 repeatedly executes steps S40-S100.

図4の例では、次のタスク処理があるので、例えば、t15~t16における送信処理において、CPU30は、ステップS40~S100を実行する。このとき、ステップS80において、CPU30は、t15~t16の送信処理に対応するメモリ50のフラグ情報を確認する。このとき、t15~t16の送信処理に対応するフラグ情報が立っていないので、CPU30は、t15~t16の送信処理を遅延させることなく、t15~t16において実行する(S100)。 In the example shown in Figure 4, since the following task processing is involved, for example, in the transmission processing at t15 to t16, the CPU 30 executes steps S40 to S100. At this time, in step S80, the CPU 30 checks the flag information in memory 50 corresponding to the transmission processing at t15 to t16. Since the flag information corresponding to the transmission processing at t15 to t16 is not set, the CPU 30 executes the transmission processing at t15 to t16 without delay (S100).

また、t15において、CPU30は、ステップS40~S60を実行し、開始時刻t15および第2周期Fに基づいて、次に実行される予定の送信処理の開始時刻(第4開始時刻)t18を算出してメモリ50に格納する。例えば、CPU30は、開始時刻t15に第2周期Fを足し算して、開始時刻t18を算出すればよい。尚、このとき算出された開始時刻t18は、計算により算出された未来の予定時刻である。 Furthermore, at time t15, the CPU 30 executes steps S40 to S60 and calculates the start time (fourth start time) t18 of the next scheduled transmission process based on the start time t15 and the second period F, and stores it in memory 50. For example, the CPU 30 can calculate the start time t18 by adding the second period F to the start time t15. Note that the calculated start time t18 is a future scheduled time determined by calculation.

ここで、CPU30は、次の送信処理の開始時刻t18が、次の入出力処理の期間t17~t19内に含まれているか否かを判定する(S60)。即ち、CPU30は、次の送信処理の開始時刻t18が、次の入力出力処理の期間t17~t19に重複しているか否かを判定する。 Here, the CPU 30 determines whether the start time t18 of the next transmission process falls within the period t17-t19 of the next input/output process (S60). That is, the CPU 30 determines whether the start time t18 of the next transmission process overlaps with the period t17-t19 of the next input/output process.

次の送信処理の開始時刻t18は、次の入出力処理の期間t17~t19に含まれている(重複している)ので(S60のYES)、CPU30は、フラグ情報を立てる(S75)。 The start time t18 of the next transmission process is included in (overlaps with) the period t17-t19 of the next input/output process (YES in S60), so the CPU 30 sets the flag information (S75).

次に、t17において、タスク処理が終了し、次のタスク処理が開始される(S34のYES)。従って、t17~t19において、図6のステップS10~S32が再度実行される。 Next, at time t17, the task processing ends and the next task processing begins (YES in S34). Therefore, steps S10 to S32 in Figure 6 are executed again from time t17 to t19.

このとき、t17において、CPU30が、タイマ機能を用いて、入出力処理を開始した時にその時点の開始時刻t17を取得し、メモリ50に格納する(S10)。CPU30は、開始時刻t17および第1周期Bに基づいて、次に実行される予定の入出力処理の開始時刻(第2開始時刻)t25を算出してメモリ50に格納する(S20)。例えば、CPU30は、開始時刻t17に第1周期Bを足し算して、開始時刻t25を算出すればよい。尚、このとき算出された開始時刻t25は、計算により算出された未来の予定時刻である。 At this time, at t17, the CPU 30 uses its timer function to obtain the start time t17 when it starts the input/output processing and stores it in the memory 50 (S10). Based on the start time t17 and the first period B, the CPU 30 calculates the start time (second start time) t25 of the next planned input/output processing and stores it in the memory 50 (S20). For example, the CPU 30 can calculate the start time t25 by adding the first period B to the start time t17. Note that the calculated start time t25 is a future planned time calculated through this process.

ここで、t17において、CPU30は、次の送信処理の開始時刻t21が、次の入出力処理の開始時刻t25から入力処理の期間(即ち、t25~t25+D)内に含まれているか否かを判定する(S60)。t25+Dは、t26である。即ち、CPU30は、次の送信処理の開始時刻t21が、次の入力出力処理の期間t25~t26に重複しているか否かを判定する。 Here, at time t17, the CPU 30 determines whether the start time t21 of the next transmission process falls within the input processing period (i.e., t25 to t25+D) starting from the start time t25 of the next input/output process (S60). t25+D is t26. That is, the CPU 30 determines whether the start time t21 of the next transmission process overlaps with the input/output processing period t25 to t26.

CPU30は、次の送信処理の開始時刻t21は、次の入出力処理の期間t25~t26に含まれていないので(S60のNO)、CPU30は、フラグ情報を立てない(S70)。 The CPU 30 determines that the start time t21 of the next transmission process is not included in the period t25-t26 of the next input/output process (NO in S60), therefore the CPU 30 does not set the flag information (S70).

次に、t18~t20における送信処理開始時刻において、CPU30は、ステップS40~S100を再度実行する。このとき、ステップS60~S75にいて、CPU30は、次の送信処理の開始時刻t21が、次の入出力処理の期間t25~t26に含まれるかを判定し、その判定結果に基づいてフラグ情報を立てる(または立てない)。例えば、t18の送信処理の開始予定時刻において、CPU30は、開始時刻t18および第2周期Fに基づいて、次に実行される予定の送信処理の開始時刻(第2開始時刻)t21を算出してメモリ50に格納する。例えば、CPU30は、開始時刻t18に第2周期Fを足し算して、開始時刻t21を算出すればよい。さらに、CPU30は、次の送信処理の開始時刻t21が、次の入出力処理の期間t25~t26内に含まれているか否かを判定する(S60)。即ち、CPU30は、次の送信処理の開始時刻t21が、次の入力出力処理の期間t25~t26に重複しているか否かを判定する。本実施形態では、次の送信処理の開始時刻t21は、次の入出力処理の期間t25~t26に含まれていない(重複していない)ので(S60のNO)、CPU30は、フラグ情報を立てない(S70)。 Next, at the start time of the transmission process between t18 and t20, the CPU 30 executes steps S40 to S100 again. At this time, in steps S60 to S75, the CPU 30 determines whether the start time t21 of the next transmission process is included in the period t25 to t26 of the next input/output process, and sets (or does not set) flag information based on the result of that determination. For example, at the scheduled start time of the transmission process at t18, the CPU 30 calculates the start time (second start time) t21 of the transmission process to be executed next (second start time) based on the start time t18 and the second period F, and stores it in the memory 50. For example, the CPU 30 can calculate the start time t21 by adding the second period F to the start time t18. Furthermore, the CPU 30 determines whether the start time t21 of the next transmission process is included in the period t25 to t26 of the next input/output process (S60). In other words, the CPU 30 determines whether the start time t21 of the next transmission process overlaps with the period t25-t26 of the next input/output process. In this embodiment, the start time t21 of the next transmission process is not included in (does not overlap with) the period t25-t26 of the next input/output process (NO in S60), so the CPU 30 does not set the flag information (S70).

また、ステップS80において、CPU30は、t18~t20の送信処理に対応するメモリ50のフラグ情報を確認する。このとき、CPU30は、t18~t20の送信処理に対応するフラグ情報が立っているので、t18~t20の送信処理を遅延させる。この場合、CPU30は、送信処理のタイマを停止する(S82)。さらに、CPU30は、図4に示す今回の送信処理の開始時刻t18を、入出力処理の開始時刻t17から入出力処理の実行期間D以上遅延させた図5の時刻t18_1に設定する(S84)。即ち、CPU30は、送信処理の開始時刻t18に入出力処理の期間D以上を足し算した時刻t18_1まで送信処理を遅延させる。これにより、送信処理の開始時刻t18は、t17~t19の入出力処理の期間より後のt18_1にずらされる。その結果、t18_1~t20_1の送信処理は、t17~t19の入出力処理に重複しなくなる。CPU30は、今回の送信処理の開始時刻t18を、t18_1に設定した後、タイマを開始する。 Furthermore, in step S80, the CPU 30 checks the flag information in memory 50 corresponding to the transmission processes t18 to t20. At this time, the CPU 30 finds that the flag information corresponding to the transmission processes t18 to t20 is set, so it delays the transmission processes t18 to t20. In this case, the CPU 30 stops the timer for the transmission process (S82). In addition, the CPU 30 sets the start time t18 of the current transmission process shown in Figure 4 to the time t18_1 in Figure 5, which is delayed by the execution period D or more of the input/output process from the start time t17 of the input/output process (S84). That is, the CPU 30 delays the transmission process to the time t18_1, which is obtained by adding the input/output process period D or more to the start time t18 of the transmission process. As a result, the start time t18 of the transmission process is shifted to t18_1, which is after the input/output process period from t17 to t19. As a result, the transmission processes from t18_1 to t20_1 no longer overlap with the input/output processes from t17 to t19. The CPU 30 sets the start time t18 of this transmission process to t18_1, and then starts the timer.

ここで、送信処理の遅延処理について説明する。図4に示すように、t18の送信処理開始時刻が入出力処理の期間t17~t19に重複している場合、t18~t20の送信処理は、t17~t19の入出力処理において演算結果データがコモンメモリ60に格納される前に、開始されてしまう。このため、t17~t19における演算結果データは、t18~t20の送信処理ではまだ送信可能な状態になっておらず、他のコントローラ12~15へ送信することができない。この場合、図4に示すように、t17~t19で入出力処理される演算結果データは、t18~t20の送信処理より後に起動されるt21~t22の送信処理で送信されることになる。従って、送信処理のゲート制御を厳密な時間管理で実施しても、t17~t19における演算結果データの送信処理のリアルタイム性は損なわれてしまう。 Here, we will explain the delay processing for transmission. As shown in Figure 4, if the start time of the transmission process at t18 overlaps with the input/output processing period t17-t19, the transmission process from t18-t20 will start before the calculation result data is stored in the common memory 60 during the input/output processing from t17-t19. Therefore, the calculation result data from t17-t19 is not yet ready for transmission during the transmission process from t18-t20 and cannot be sent to other controllers 12-15. In this case, as shown in Figure 4, the calculation result data processed during input/output at t17-t19 will be transmitted during the transmission process at t21-t22, which is started after the transmission process at t18-t20. Consequently, even with strict time management of the gate control for the transmission process, the real-time nature of the transmission of calculation result data from t17-t19 will be compromised.

そこで、本実施形態では、図5に示すように、CPU30は、t18~t20の送信処理に対応するフラグ情報が立っている場合に、t18~t20の送信処理を、入力処理の実行期間D以上遅延させる(図6のS120)。これにより、t18~t20の送信処理は、t18_1~t20_1へ遅延(補正)され、t17~t19の入出力処理の直後にずらされる。その結果、t18_1~t20_1の送信処理は、t17~t19の入出力処理に重複せず、CPU30は、t17~t19における演算結果データを送信することができる。これにより、演算結果データの送信処理のリアルタイム性が向上する。 Therefore, in this embodiment, as shown in Figure 5, when the flag information corresponding to the transmission processes t18 to t20 is set, the CPU 30 delays the transmission processes t18 to t20 by at least the input processing execution period D (S120 in Figure 6). As a result, the transmission processes t18 to t20 are delayed (corrected) to t18_1 to t20_1, shifting them immediately after the input/output processes t17 to t19. Consequently, the transmission processes t18_1 to t20_1 do not overlap with the input/output processes t17 to t19, allowing the CPU 30 to transmit the calculation result data from t17 to t19. This improves the real-time performance of the calculation result data transmission process.

図5に示すように、CPU30は、t18_1~t20_1において、送信処理を実行する。t18_1~t20_1の送信処理において、CPU30は、コモンメモリ60のデータをLANコントローラ80に転送し、送信要求する。LANコントローラ80は、送信キューに蓄積されたデータを、ネットワーク20を介して他のコントローラ12~15へ送信する。 As shown in Figure 5, the CPU 30 executes transmission processing in t18_1 to t20_1. During the transmission processing in t18_1 to t20_1, the CPU 30 transfers data from the common memory 60 to the LAN controller 80 and sends a transmission request. The LAN controller 80 transmits the data accumulated in the transmission queue to other controllers 12 to 15 via the network 20.

このとき、送信処理のタイミングに合わせて、データの優先度に対応する送信キューのゲート開放時間をリスケジューリングする。例えば、データの優先度が「中」である場合、データは、図3の送信キューQ2に蓄積される。このとき、送信キューQ2のゲート開放時間(t3~t4)は、t18~t20からt18_1~t20_1へリスケジューリング(補正)される。即ち、ゲート開放の開始時刻t3は、遅延された送信処理の開始時刻t18_1に設定され、ゲート開放の終了時刻t4は、遅延された送信処理の開始時刻t20_1に設定される。これにより、送信キューQ2のゲート機能が効果的に機能し、データのリアルタイム性を向上させることができる。 At this time, the gate opening time of the transmission queue corresponding to the data priority is rescheduled to match the timing of the transmission process. For example, if the data priority is "medium," the data is stored in transmission queue Q2 in Figure 3. At this time, the gate opening time of transmission queue Q2 (t3 to t4) is rescheduled (corrected) from t18 to t20 to t18_1 to t20_1. That is, the start time of gate opening t3 is set to the delayed start time of transmission processing t18_1, and the end time of gate opening t4 is set to the delayed start time of transmission processing t20_1. This allows the gate function of transmission queue Q2 to function effectively, improving the real-time nature of the data.

CPU30は、t18_1~t20_1の送信処理の終了時刻を、開始時刻t18_1から演算結果データの送信処理の期間H(例えば、約100μs)だけ経過した時点t20_1に設定する。LANコントローラ80は、演算結果データの送信処理において、開始時刻t18_1から終了時刻t20_1までの間、演算結果データの送信を実行する。また、LANコントローラ80は、優先度の高いデータについて、入出力処理の期間内t17~t19に開始時刻t18が含まれているときに、送信処理を遅延させる。 The CPU 30 sets the end time of the transmission process from t18_1 to t20_1 to t20_1, which is the time t20_1 after the start time t18_1 has elapsed by the duration H (for example, approximately 100 μs) of the calculation result data transmission process. The LAN controller 80 executes the transmission of the calculation result data from the start time t18_1 to the end time t20_1. Furthermore, for high-priority data, the LAN controller 80 delays the transmission process if the start time t18 falls within the input/output processing period t17 to t19.

タスク処理が続いている場合には(S110のNO)、CPU30は、ステップS40~S100を繰り返す。また、ステップS34において、次のタスク処理が開始される場合も、CPU30は、ステップS40~S100を繰り返す。全てのタスク処理が終了すると(S34のNO)、タスク処理が終了する。尚、t21~t22、t23~t24、t27~t28のいずれの送信処理も、入出力処理の期間に重複していない。従って、これらの送信処理は、t21、t23、t27に予定通りに起動される。 If task processing is ongoing (NO in S110), the CPU 30 repeats steps S40 to S100. Similarly, if the next task processing begins in step S34, the CPU 30 repeats steps S40 to S100. When all task processing is completed (NO in S34), the task processing terminates. Note that none of the transmission processes at t21-t22, t23-t24, and t27-t28 overlap with the input/output processing periods. Therefore, these transmission processes are started as scheduled at t21, t23, and t27.

このように、コントローラ11は、送信処理の開始時刻が入出力処理の期間に重複している場合に、送信処理を入出力処理の実行期間D以上、遅延させる。これにより、演算結果データの送信処理がその演算結果データの入出力処理の直後に実行可能となり、その結果、演算結果データの送信処理のリアルタイム性が向上する。 Thus, if the start time of the transmission process overlaps with the period of the input/output process, the controller 11 delays the transmission process by at least the execution period D of the input/output process. This allows the transmission process of the calculation result data to be executed immediately after the input/output process of that calculation result data, thereby improving the real-time performance of the calculation result data transmission process.

(第2実施形態)
図8は、第2実施形態によるコントローラ11~15のタスク処理時間を示す表である。第2実施形態では、コントローラ11~15は、それぞれ第1実施形態による送信処理の起動時刻の補正機能を有することを前提としている。第2実施形態では、複数のコントローラ11~15のデータがネットワーク20上で衝突しないように、コントローラ11~15間において、送信処理の期間およびLANコントローラ80の送信キューのゲート開放期間を調節する。
(Second Embodiment)
Figure 8 is a table showing the task processing times of controllers 11 to 15 according to the second embodiment. In the second embodiment, it is assumed that each of the controllers 11 to 15 has a function to correct the start time of the transmission process according to the first embodiment. In the second embodiment, the transmission processing period and the gate opening period of the transmission queue of the LAN controller 80 are adjusted among the controllers 11 to 15 so that the data of the multiple controllers 11 to 15 do not collide on the network 20.

図8において、次回高速タスク起動時刻は、優先度の高い次のタスク処理の開始時刻を示す。タスク処理の開始時刻は、入出力処理(入力処理および出力処理)の開始時刻と同じであり、例えば、図4および図5では、t11、t17、t25に対応する。また、t11の時点において次のタスク処理の開始時刻はt17であり、t17の時点において次のタスク処理の開始時刻はt25となる。次のタスク処理の開始時刻は、図6のステップS20において算出される。高速タスク処理のデータは、図3に示す送信キューQ1に蓄積され、次回高速タスク起動時刻においてネットワーク20を介して送信される。 In Figure 8, the next high-speed task activation time indicates the start time of the next high-priority task. The task start time is the same as the start time of the input/output processing (input and output processing), corresponding, for example, to t11, t17, and t25 in Figures 4 and 5. Furthermore, at time t11, the start time of the next task processing is t17, and at time t17, the start time of the next task processing is t25. The start time of the next task processing is calculated in step S20 of Figure 6. The data from the high-speed task processing is stored in the transmission queue Q1 shown in Figure 3 and transmitted via the network 20 at the next high-speed task activation time.

また、次回中速タスク起動時刻は、高速タスク処理よりも優先度が低く、中程度の次のタスク処理の開始時刻を示す。中速タスク処理のデータは、図3に示す送信キューQ2に蓄積される。次回低速タスク起動時刻は、高速および中速タスク処理よりも優先度の低い次のタスク処理の開始時刻を示す。低速タスク処理のデータは、図3に示す送信キューQ3に蓄積される。 Furthermore, the next medium-speed task start time indicates a lower priority than the high-speed task processing and represents the start time of the next medium-speed task. Data from the medium-speed task processing is stored in transmission queue Q2, as shown in Figure 3. The next low-speed task start time indicates a lower priority than both the high-speed and medium-speed task processing and represents the start time of the next task. Data from the low-speed task processing is stored in transmission queue Q3, as shown in Figure 3.

コントローラ11~15のそれぞれは、自己の次回高速タスク起動時刻、次回中速タスク起動時刻および次回低速タスク起動時刻を、ネットワーク20を介してマルチキャスト通信によって他のコントローラへ送信する。これにより、コントローラ11~15は、図8に示すような自己および他のコントローラの次回高速タスク起動時刻、次回中速タスク起動時刻および次回低速タスク起動時刻の情報を得ることができる。次回高速タスク起動時刻、次回中速タスク起動時刻および次回低速タスク起動時刻は、各コントローラ11~15のメモリ50またはコモンメモリ60に格納される。 Each of the controllers 11-15 transmits its own next high-speed task start time, next medium-speed task start time, and next low-speed task start time to the other controllers via multicast communication over the network 20. This allows controllers 11-15 to obtain information on their own and the other controllers' next high-speed task start times, next medium-speed task start times, and next low-speed task start times, as shown in Figure 8. These next high-speed task start times, next medium-speed task start times, and next low-speed task start times are stored in the memory 50 or common memory 60 of each controller 11-15.

また、コントローラ11~15は、自己の次回高速タスク起動時刻、次回中速タスク起動時刻、次回低速タスク起動時刻、次回高速送信処理起動時刻、次回中速送信処理起動時刻および次回低速送信処理起動時刻とともに自己の識別子(ノード番号)を送信する。これにより、各コントローラ11~15は、どのコントローラからの情報かを識別することができる。 Furthermore, controllers 11-15 transmit their own identifier (node number) along with their next high-speed task start time, next medium-speed task start time, next low-speed task start time, next high-speed transmission process start time, next medium-speed transmission process start time, and next low-speed transmission process start time. This allows each controller 11-15 to identify which controller the information originated from.

コントローラ11~15は、それぞれ第1実施形態の図7に示す処理によって次回の送信処理起動時刻を算出し、上記次回タスク起動時刻から入出力処理の実行期間Dまでの間に次回の送信処理起動時刻が含まれる場合にフラグ情報を立てる。送信処理起動時刻は、送信処理の開始時刻であり、例えば、図4および図5のt13、t15、t18、t21、t23、t27である。t13の時点において次回の送信処理起動時刻はt15であり、t15の時点において次回の送信処理起動時刻はt18である。同様に、t18、t21、t23において次回の送信処理起動時刻は、それぞれt21、t23、t27となる。次回の送信処理起動時刻は、図7のステップS50において算出される。フラグ情報は、図7のステップS70またはS75において設定される。 Controllers 11 to 15 each calculate the next transmission process start time using the process shown in Figure 7 of the first embodiment, and set flag information if the next transmission process start time falls within the period D of the input/output process execution time, from the next task start time. The transmission process start time is the start time of the transmission process, for example, t13, t15, t18, t21, t23, and t27 in Figures 4 and 5. At time t13, the next transmission process start time is t15, and at time t15, the next transmission process start time is t18. Similarly, at t18, t21, and t23, the next transmission process start times are t21, t23, and t27, respectively. The next transmission process start time is calculated in step S50 of Figure 7. The flag information is set in step S70 or S75 of Figure 7.

このように、コントローラ11~15は、互いに他のコントローラの次回高速タスク起動時刻、次回中速タスク起動時刻および次回低速タスク起動時刻の情報をマルチキャスト通信で得て、互いに共有する。また、コントローラ11~15は、他のコントローラの次回高速送信処理起動時刻、次回中速送信処理起動時刻および次回低速送信処理起動時刻の情報もマルチキャスト通信で得て、互いに共有する。 In this way, controllers 11 to 15 obtain and share information about the next high-speed task start time, the next medium-speed task start time, and the next low-speed task start time of other controllers via multicast communication. Furthermore, controllers 11 to 15 also obtain and share information about the next high-speed transmission process start time, the next medium-speed transmission process start time, and the next low-speed transmission process start time of other controllers via multicast communication.

送信処理期間は、送信処理起動時刻に送信処理の期間Hを足し算した期間となる。 The transmission processing period is calculated by adding the transmission processing start time to the transmission processing duration H.

コントローラ11~15において、LANコントローラ80は、優先度の高い順番でデータの送信期間を割り当てる。異なるコントローラ11~15間においても、LANコントローラ80は、優先度の高い順番でデータの送信期間を割り当てる。従って、コントローラ11~15のいずれかのデータの送信期間が重複する場合には、コントローラ11~15のLANコントローラ80は、優先度の高いデータに送信期間を割り当てる。優先度が同じデータの送信期間が重複する場合には、コントローラ11~15のLANコントローラ80は、コントローラの識別子(ノード番号)の順番で送信期間を割り当てる。このような送信期間の割り当ては、コントローラ11~15のそれぞれにおいて等しく行われ、同じ割り当て情報として共有される。 In controllers 11-15, the LAN controller 80 allocates data transmission periods in order of priority. Even between different controllers 11-15, the LAN controller 80 allocates data transmission periods in order of priority. Therefore, if the data transmission periods of any of the controllers 11-15 overlap, the LAN controller 80 of controllers 11-15 allocates the transmission period to the data with the highest priority. If the transmission periods of data with the same priority overlap, the LAN controller 80 of controllers 11-15 allocates the transmission periods in order of the controller identifiers (node numbers). This assignment of transmission periods is performed equally in each of the controllers 11-15 and is shared as the same assignment information.

コントローラ11~15のCPU30は、送信処理の終了時に、この送信期間の割り当てに従って、それぞれ自己の次回送信処理の起動時刻および送信キューの開放時間を設定する。次回送信処理の起動時刻は、CPU30のタイマ機能を停止することによって調節される。LANコントローラ80は、図3に示す送信キューの開放時間の設定を次回送信処理の起動時刻(例えば、t18_1)と終了時刻(例えば、t18_1+H)に変更する。 The CPUs 30 of controllers 11-15, upon completion of the transmission process, set the start time for their next transmission process and the release time of the transmission queue, according to the assigned transmission period. The start time for the next transmission process is adjusted by disabling the timer function of the CPU 30. The LAN controller 80 changes the transmission queue release time setting shown in Figure 3 to the start time (e.g., t18_1) and end time (e.g., t18_1+H) of the next transmission process.

このように、第2実施形態では、ネットワーク20に接続された複数のコントローラ11~15のタスク処理と送信処理とを考慮して、送信処理時刻および送信キューの開放期間をスケジューリングできる。その結果、通信データのリアルタイム性をさらに向上させることができる。 Thus, in the second embodiment, the transmission processing time and the release period of the transmission queue can be scheduled considering the task processing and transmission processing of multiple controllers 11-15 connected to the network 20. As a result, the real-time nature of the communication data can be further improved.

図9は、第2実施形態によるコントローラ11~15の動作の一例を示すフロー図である。尚、ステップS200~S270の動作は、図7のステップS40~S84の動作と同じでよい。 Figure 9 is a flowchart showing an example of the operation of controllers 11-15 according to the second embodiment. Note that the operation in steps S200-S270 may be the same as the operation in steps S40-S84 in Figure 7.

まず、コントローラ11~15がそれぞれ自ノード(自己のコントローラ)において、図8に示す情報を更新する(S200)。コントローラ11~15の情報の更新は、上述の通り、ネットワーク20を介してマルチキャスト通信で行えばよい。 First, controllers 11 to 15 each update the information shown in Figure 8 at their own node (their own controller) (S200). The information updates for controllers 11 to 15 can be performed via multicast communication over the network 20, as described above.

次に、現在時刻と、タスク処理の周期情報と、タスク処理の開始から現在までの経過時間(タイマ情報)とを取得する(S210)。 Next, the current time, task processing cycle information, and elapsed time from the start of task processing to the present (timer information) are obtained (S210).

次に、タスク処理の周期情報から経過時間を引き算してタスク処理の残り時間を算出する。その残り時間を現在時刻に足し算することによって、次回のタスク処理の起動時間を算出する(S220)。 Next, the remaining time for the task is calculated by subtracting the elapsed time from the task processing cycle information. This remaining time is then added to the current time to calculate the start time for the next task processing (S220).

次に、CPU30は、次回の送信処理の処理起動時刻が自ノードの次回のタスク処理の期間内か判断する(S230)。つまり、次回の送信処理が自ノードの次回のタスク処理と重複するかを判断する。 Next, the CPU 30 determines whether the processing start time for the next transmission process falls within the period of the node's next task processing (S230). In other words, it determines whether the next transmission process overlaps with the node's next task processing.

次回の送信処理の処理起動時刻が次回のタスク処理の期間内の場合(S230のYES)、フラグ情報を立てる(S240)。この場合、CPU30は、自ノードの次回の送信処理起動時刻をタスク起動時刻+タスク処理期間に設定する(S250)。これにより、次回の送信処理を遅延させ、次回の送信処理が次回のタスク処理と重複しないようにする。 If the processing start time for the next transmission process falls within the duration of the next task (YES in S230), the flag information is set (S240). In this case, the CPU 30 sets the start time for the next transmission process of its own node to the task start time + task duration (S250). This delays the next transmission process, preventing it from overlapping with the next task.

一方、次回の送信処理の処理起動時刻が次回のタスク処理の期間内でない場合(S230のNO)、フラグ情報を立てない(S260)。この場合、CPU30は、自ノードの次回の送信処理起動時刻をステップS220で算出した次回の送信処理の起動時刻に設定する。次回の送信処理は、遅延させなくても、次回のタスク処理と重複しない。 On the other hand, if the processing start time for the next transmission process is not within the period of the next task processing (NO in S230), the flag information is not set (S260). In this case, the CPU 30 sets the next transmission process start time for its own node to the next transmission process start time calculated in step S220. The next transmission process does not overlap with the next task processing even without delay.

次に、自ノードにおいて、優先度の高い順から次回の送信処理を選択する(S280)。選択された次回の送信処理は、他ノードまたは自ノードの送信処理期間と重複しないように実行される。例えば、CPU30は、選択された次回の送信処理の起動時刻が他ノードまたは自ノードの送信処理期間内か否かを判断する(S290、S291)。選択された次回の送信処理の起動時刻が他ノードの送信処理期間内である場合(S290のYES)、CPU30は、自ノードの送信処理と他ノードの送信処理の優先度を比較する(S293)。自ノードの送信処理の優先度が他ノードの送信処理の優先度より高い場合(S293のYES)、CPU30は、自ノードの選択された次回の送信処理の起動時刻をそのまま変更せず、次回の送信処理の起動時刻において送信処理を実行する(S294)。一方、自ノードの送信処理の優先度が他ノードの送信処理の優先度より低い場合(S293のNO、S295のYES)、CPU30は、選択された次回の送信処理起動時刻に送信処理の期間Hを加算する(S300)。これにより、次回の送信処理を遅延させて、次回の送信処理が他ノードの送信処理期間に重複しないようにする。 Next, the local node selects the next transmission process in order of priority (S280). The selected next transmission process is executed so as not to overlap with the transmission process periods of other nodes or the local node. For example, the CPU 30 determines whether the start time of the selected next transmission process falls within the transmission process period of other nodes or the local node (S290, S291). If the start time of the selected next transmission process falls within the transmission process period of other nodes (YES in S290), the CPU 30 compares the priority of the local node's transmission process with that of other nodes (S293). If the priority of the local node's transmission process is higher than that of other nodes (YES in S293), the CPU 30 executes the transmission process at the start time of the next transmission process without changing the start time of the selected next transmission process on the local node (S294). On the other hand, if the priority of the local node's transmission process is lower than the priority of the other nodes' transmission processes (NO in S293, YES in S295), the CPU 30 adds the transmission process duration H to the selected next transmission process start time (S300). This delays the next transmission process, preventing it from overlapping with the transmission process duration of other nodes.

さらに、自ノードの送信処理の優先度が他ノードの送信処理の優先度と同じ場合がある(S295のYES)。この場合、CPU30は、自ノードのノード番号と他ノードのノード番号とを比較する(S296)。自ノードのノード番号が他ノードのノード番号より小さい場合(S296のYES)、CPU30は、自ノードの選択された次回の送信処理の起動時刻をそのまま変更せず、次回の送信処理の起動時刻において送信処理を実行する(S294)。一方、自ノードのノード番号が他ノードのノード番号より大きい場合(S296のNO)、CPU30は、自ノードの選択された次回の送信処理起動時刻に送信処理の期間Hを加算しする(S300)さらに、CPU30は、フラグ情報を立てる(S310)。他ノードのCPU30もステップS280~S300を同様に処理する。このように、コントローラ11~15の送信処理期間が互いに重複する場合、優先度の高い順に送信処理を実行し、さらに、優先度が同じである場合、ノード番号の低い順に送信処理を実行する。尚、ノード番号は、コントローラ11~15に固有の番号であるのでノード番号が同じになる(重複する)ことはない。これにより、コントローラ11~15は、それぞれ自ノードの次回の送信処理期間が他ノードの送信処理期間に重複しないように調整することができる。 Furthermore, there are cases where the priority of the local node's transmission process is the same as the priority of the other node's transmission process (YES in S295). In this case, the CPU 30 compares the local node's node number with the other node's node number (S296). If the local node's node number is smaller than the other node's node number (YES in S296), the CPU 30 does not change the selected start time of the next transmission process for the local node and executes the transmission process at the next transmission process start time (S294). On the other hand, if the local node's node number is larger than the other node's node number (NO in S296), the CPU 30 adds the transmission process period H to the selected start time of the next transmission process for the local node (S300). Furthermore, the CPU 30 sets flag information (S310). The CPUs 30 of the other nodes also process steps S280 to S300 in the same way. In this manner, if the transmission processing periods of controllers 11-15 overlap, the transmission processing is executed in order of highest priority. Furthermore, if the priorities are the same, the transmission processing is executed in order of lowest node number. Since each controller (11-15) has a unique node number, the node numbers will never be the same (overlap). This allows controllers 11-15 to adjust their respective node transmission processing periods so that they do not overlap with the transmission processing periods of other nodes.

また、選択された次回の送信処理の起動時刻が自ノードの送信処理期間内である場合(S291のYES)、CPU30は、選択された次回の送信処理とそれに重複する他の送信処理の優先度を比較する(S292)。選択された次回の送信処理の優先度が他の送信処理の優先度より低い場合(S292のNO)、CPU30は、選択された次回の送信処理起動時刻に送信処理の期間Hを加算する(S300)。さらに、CPU30は、フラグ情報を立てる(S310)。これにより、次回の送信処理を遅延させて、次回の送信処理が自ノードの送信処理期間に重複しないようにする。一方、選択された次回の送信処理の優先度が他の送信処理の優先度より高い場合(S292のYES)、CPU30は、選択された次回の送信処理の起動時刻をそのまま変更せず、次回の送信処理の起動時刻において送信処理を実行する(S294)。 Furthermore, if the start time of the selected next transmission process falls within the local node's transmission process period (YES in S291), the CPU 30 compares the priority of the selected next transmission process with other overlapping transmission processes (S292). If the priority of the selected next transmission process is lower than that of the other transmission processes (NO in S292), the CPU 30 adds the transmission process period H to the selected next transmission process start time (S300). The CPU 30 then sets a flag (S310). This delays the next transmission process to prevent it from overlapping with the local node's transmission process period. On the other hand, if the priority of the selected next transmission process is higher than that of the other transmission processes (YES in S292), the CPU 30 does not change the start time of the selected next transmission process and executes the transmission process at the scheduled start time (S294).

選択された次回の送信処理の起動時刻が他ノードおよび自ノードの送信処理期間内でない場合(S290のNO、S291のNO)、次回の送信処理起動時刻は、そのまま維持される。 If the selected start time for the next transmission process is not within the transmission process period of other nodes or the local node (NO in S290, NO in S291), the start time for the next transmission process will remain unchanged.

CPU30は、他の送信処理についても同様に優先度の高い順に選択し、ステップS290~S310を実行する(S320のYES)。 The CPU 30 similarly selects other transmission processes in order of priority and executes steps S290 to S310 (YES in S320).

全ての送信処理に対してステップS290~S310を実行した後(ステップS320のNO)、CPU30は、フラグ情報が立っているか否に応じて送信処理を実行する(S330)。フラグ情報が立っている場合(S330のYES)、自ノードにおいて、元の次回の送信処理時刻が次回のタスク処理期間または他の送信処理期間に重複することを示す。従って、例えば、CPU30は、送信処理を起動させる定周期のタイマを一旦停止し(S340)、ステップS250またはステップS300で設定された(修正された)新しい次回の送信処理起動時刻として設定する(S350)。ここで、ステップS250で設定された(修正された)送信処理起動時刻が、ステップS300でさらに修正されることもある。この場合、次回の送信処理起動時刻は、タスク起動時刻+タスク処理期間+送信処理の期間Hとなる。 After executing steps S290 to S310 for all transmission processes (NO in step S320), the CPU 30 executes a transmission process depending on whether the flag information is set or not (S330). If the flag information is set (YES in S330), it indicates that the original next transmission process time overlaps with the next task processing period or another transmission process period at the local node. Therefore, for example, the CPU 30 temporarily stops the periodic timer that starts the transmission process (S340) and sets it as the new next transmission process start time set (modified) in step S250 or step S300 (S350). Here, the transmission process start time set (modified) in step S250 may be further modified in step S300. In this case, the next transmission process start time will be the task start time + task processing period + transmission process period H.

次に、CPU30は、送信処理の送信処理を起動させる定周期のタイマを開始する(S360)。
一方、フラグ情報が立っているない場合(S330のNO)、自ノードにおいて、元の次回の送信処理時刻が次回のタスク処理期間または他の送信処理期間に重複していないことを示す。従って、CPU30は、タイマを停止したり、次回の送信処理起動時刻を修正することなく、送信処理を実行する。
Next, the CPU 30 starts a fixed-period timer to initiate the transmission process (S360).
On the other hand, if the flag information is not set (NO in S330), it indicates that the original next transmission processing time at the local node does not overlap with the next task processing period or other transmission processing periods. Therefore, the CPU 30 executes the transmission process without stopping the timer or correcting the next transmission processing start time.

送信処理では、CPU30は、各送信処理の優先度に該当する送信キューの開放開始時間に、自ノードの次回の送信処理起動時刻を設定する(S370)。また、CPU30は、各送信処理の優先度に該当する送信キューの開放終了時間に、自ノードの次回の送信処理起動時刻に送信処理の期間Hを加算した時刻を設定する(S380)。 During the transmission process, the CPU 30 sets the next transmission process startup time for its own node at the start time of the release of the transmission queue corresponding to the priority of each transmission process (S370). Furthermore, the CPU 30 sets the next transmission process startup time for its own node plus the transmission process duration H at the end time of the release of the transmission queue corresponding to the priority of each transmission process (S380).

これにより、タスク処理が終了する。 This completes the task processing.

このように、第2実施形態では、ネットワーク20に接続された複数のコントローラ11~15のタスク処理と送信処理とを考慮して、送信処理時刻および送信キューの開放期間をスケジューリングできる。その結果、通信データのコリジョンを抑制しつつ、リアルタイム性をさらに向上させることができる。 Thus, in the second embodiment, the transmission processing time and the release period of the transmission queue can be scheduled considering the task processing and transmission processing of the multiple controllers 11-15 connected to the network 20. As a result, real-time performance can be further improved while suppressing collisions of communication data.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。 While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included within the scope and spirit of the invention, as well as within the scope of the claims and its equivalents.

11~15 コントローラ、20 ネットワーク、30 CPU、40 I/Oバスコントローラ、50 メモリ、60 コモンメモリ、70 インタフェースブリッジ、80 LANコントローラ、90 I/O装置、100 産業機械 11-15 Controllers, 20 Networks, 30 CPUs, 40 I/O Bus Controllers, 50 Memory, 60 Common Memory, 70 Interface Bridges, 80 LAN Controllers, 90 I/O Devices, 100 Industrial Machinery

Claims (8)

制御対象を制御するコントローラであって、
前記制御対象と通信可能に接続され、前記制御対象からデータを周期的に入力する第1インタフェースコントローラと、
前記データを格納する第1記憶部と、
前記データを入力処理して演算処理して前記第1記憶部へ転送する演算部と、
他のコントローラと通信可能に接続され、前記データを前記他のコントローラへ周期的に送信する送信処理を実行する第2インタフェースコントローラとを備え、
前記演算部は、前記送信処理の開始時刻が前記データの入力処理の期間に重複する場合に、前記送信処理の開始時刻を前記入力処理の期間より後に遅延させる、コントローラ。
A controller that controls the object being controlled,
A first interface controller is connected to the controlled object in a communication manner and periodically receives data from the controlled object.
A first storage unit for storing the aforementioned data,
A calculation unit that inputs the aforementioned data, performs calculations on it, and transfers it to the first storage unit,
It comprises a second interface controller that is connected to communicate with other controllers and performs a transmission process that periodically transmits the data to the other controllers,
The calculation unit is a controller that, when the start time of the transmission process overlaps with the period of the data input process, delays the start time of the transmission process to a later time than the period of the input process.
前記データの送信処理は、前記他のコントローラに前記データを送信し、前記他のコントローラからのデータを前記第1記憶部へ格納する等値化処理である、請求項1に記載のコントローラ。 The controller according to claim 1, wherein the data transmission process is an equalization process that transmits the data to the other controller and stores the data from the other controller in the first storage unit. 前記第1インタフェースコントローラから前記データを入力する入力処理の期間と、前記データのうち第1データの入力処理から次の第2データの入力処理までの第1周期と、前記第1データの送信処理から前記第2データの送信処理までの第2周期と、を格納する第2記憶部をさらに備え、
前記演算部は、タイマ機能を有し、前記第1データの入力処理を実際に開始したときにその時点の第1開始時刻と前記第1周期とに基づいて、次に入力される予定の前記第2データの入力処理の第2開始時刻を算出して前記第2記憶部へ格納し、
前記演算部は、前記第1データの前記送信処理を実際に開始したときにその時点の第3開始時刻と前記第2周期とに基づいて、次に送信される予定の前記第2データの送信処理の第4開始時刻を算出して前記第2記憶部へ格納し、
前記演算部は、前記第2開始時刻から前記入力処理の期間内に、前記第4開始時刻が含まれているとき、前記第4開始時刻を前記第2開始時刻から前記入力処理の期間以上後まで遅延させる、請求項1または請求項2に記載のコントローラ。
The system further includes a second storage unit that stores the period of input processing for inputting the data from the first interface controller, a first period from the input processing of the first data to the input processing of the next second data, and a second period from the transmission processing of the first data to the transmission processing of the second data.
The calculation unit has a timer function, and when the input processing of the first data is actually started, it calculates the second start time of the input processing of the second data to be input next, based on the first start time at that time and the first cycle, and stores it in the second storage unit.
The calculation unit, upon actually starting the transmission process of the first data, calculates the fourth start time of the transmission process of the second data to be transmitted next, based on the third start time at that time and the second cycle, and stores it in the second storage unit.
The controller according to claim 1 or 2, wherein the calculation unit delays the fourth start time to a period of time longer than or equal to the period of time
前記演算部は、前記第1開始時刻において、前記第1開始時刻に前記第1周期を足し算することによって前記第2開始時刻を算出し、前記第3開始時刻において、前記第3開始時刻に前記第2周期を足し算することによって前記第4開始時刻を算出する、請求項3に記載のコントローラ。 The controller according to claim 3, wherein the calculation unit calculates the second start time by adding the first period to the first start time at the first start time, and calculates the fourth start time by adding the second period to the third start time at the third start time. 前記演算部は、前記第4開始時刻に前記入力処理の期間以上を足し算した第5開始時刻まで前記第2データの送信処理を遅延させる、請求項3に記載のコントローラ。 The controller according to claim 3, wherein the calculation unit delays the transmission process of the second data until a fifth start time obtained by adding a period equal to or greater than the duration of the input processing to the fourth start time. 前記演算部は、前記入力処理の期間以上の間、前記タイマ機能を停止させる、請求項5に記載のコントローラ。 The controller according to claim 5, wherein the calculation unit stops the timer function for a period longer than the input processing period. 前記第2記憶部は、前記第2開始時刻から前記入力処理の期間内に前記第4開始時刻が含まれているときに反転されるフラグ情報を有し、
前記演算部は、前記フラグ情報に基づいて、前記第2データの送信処理を遅延させる、請求項3に記載のコントローラ。
The second storage unit has flag information that is inverted when the fourth start time is included within the period of the input processing from the second start time,
The controller according to claim 3, wherein the calculation unit delays the transmission process of the second data based on the flag information.
制御対象と通信可能に接続された第1インタフェースコントローラと、他のコントローラと通信可能に接続された第2インタフェースコントローラと、第1記憶部と、演算部とを備え、前記制御対象を制御するコントローラの制御方法であって、
前記第1インタフェースコントローラから前記制御対象からデータを入力し、
前記データを周期的に入力処理して前記第1記憶部に格納し、
前記第2インタフェースコントローラが前記データを前記他のコントローラへ周期的に送信する送信処理を実行する際に、前記送信処理の開始時刻が前記データの入力処理の期間に重複する場合に、前記送信処理の開始時刻を前記入力処理の期間より後に遅延させる、ことを具備するコントローラの制御方法。
A control method for a controller that controls a controlled object, comprising: a first interface controller connected to a controlled object in a communicative manner; a second interface controller connected to another controller in a communicative manner; a first storage unit; and an arithmetic unit, wherein the controller controls the controlled object,
The first interface controller receives data from the controlled object.
The aforementioned data is periodically input and processed and stored in the first storage unit.
A controller control method comprising: when the second interface controller performs a transmission process in which it periodically transmits the data to the other controller, if the start time of the transmission process overlaps with the period of the data input process, delaying the start time of the transmission process to a later period than the period of the input process.
JP2022147318A 2022-09-15 2022-09-15 controller Active JP7844296B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022147318A JP7844296B2 (en) 2022-09-15 2022-09-15 controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022147318A JP7844296B2 (en) 2022-09-15 2022-09-15 controller

Publications (2)

Publication Number Publication Date
JP2024042538A JP2024042538A (en) 2024-03-28
JP7844296B2 true JP7844296B2 (en) 2026-04-13

Family

ID=90417804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022147318A Active JP7844296B2 (en) 2022-09-15 2022-09-15 controller

Country Status (1)

Country Link
JP (1) JP7844296B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401145B1 (en) 1999-02-19 2002-06-04 International Business Machines Corporation Method of transferring data using an interface element and a queued direct input-output device
JP2022136722A (en) 2021-03-08 2022-09-21 オムロン株式会社 Control system, setting method and network controller

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7423920B2 (en) * 2019-07-03 2024-01-30 オムロン株式会社 Control systems, configuration devices and computer programs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401145B1 (en) 1999-02-19 2002-06-04 International Business Machines Corporation Method of transferring data using an interface element and a queued direct input-output device
JP2022136722A (en) 2021-03-08 2022-09-21 オムロン株式会社 Control system, setting method and network controller

Also Published As

Publication number Publication date
JP2024042538A (en) 2024-03-28

Similar Documents

Publication Publication Date Title
US7360002B2 (en) Method of arbitrating access to a data bus
JP5080448B2 (en) Method and apparatus for synchronizing two bus systems and configuration comprising two bus systems
CN103197966B (en) Semiconductors data processing equipment, time triggered communication system and communication system
JP6428805B2 (en) Arithmetic device, control device and control method
CN113508560B (en) Control system, device and control method
JP6265058B2 (en) Network transmission system, its master node, slave node
EP2453613A1 (en) Method and apparatus for allocating and prioritizing data transmission
US10965492B2 (en) Method for transmitting data packets, controller and system having a controller
KR20110009213A (en) Data communication system and data communication device
CN113300946B (en) A multi-core multi-communication protocol gateway and its management and scheduling method
WO2012012961A1 (en) Method and device for scheduling buses
JP3551905B2 (en) Management station, network system, and communication method in network system
JP7844296B2 (en) controller
US11036205B2 (en) Control device and communication device
CN105075155B (en) Automation equipment and method for reducing time jitter
JP4594124B2 (en) Communication system and communication method
US11068423B2 (en) Control device and communication device
CN115499372A (en) Delay control method and device for end-to-end link of vehicle-mounted Ethernet and vehicle
JP3959845B2 (en) Input / output control method for programmable controllers
CN115145188A (en) High-availability cloud-based automation solution with optimized transfer times
JP7170957B2 (en) Distributed processing system, distributed processing method, distributed processing program and scheduling device
US20250344172A1 (en) Time synchronization communication system, relay node, and storage medium storing message transfer control program
EP3971721B1 (en) Information processing device
WO2021181875A1 (en) Communication control device and method for controlling communication control device
JP2024144216A (en) Control device

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20250609

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250704

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20260227

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20260303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260401

R150 Certificate of patent or registration of utility model

Ref document number: 7844296

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150