[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2024093915A - Control system, control method for control system, and network switch - Google Patents

Control system, control method for control system, and network switch Download PDF

Info

Publication number
JP2024093915A
JP2024093915A JP2022210564A JP2022210564A JP2024093915A JP 2024093915 A JP2024093915 A JP 2024093915A JP 2022210564 A JP2022210564 A JP 2022210564A JP 2022210564 A JP2022210564 A JP 2022210564A JP 2024093915 A JP2024093915 A JP 2024093915A
Authority
JP
Japan
Prior art keywords
measurement data
cache server
node
controller
network switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022210564A
Other languages
Japanese (ja)
Other versions
JP7294517B1 (en
Inventor
善貴 吉田
Yoshitaka Yoshida
剛 戸井永
Takeshi Toinaga
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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric 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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2022210564A priority Critical patent/JP7294517B1/en
Application granted granted Critical
Publication of JP7294517B1 publication Critical patent/JP7294517B1/en
Publication of JP2024093915A publication Critical patent/JP2024093915A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Programmable Controllers (AREA)

Abstract

To enable a controller to be redundant with a simpler configuration in a control system of a field device.SOLUTION: The control system includes an IO node to which a field device is connected, a plurality of controllers that perform computation on the basis of measurement data acquired by the field device, a network switch, and a cache server. Each of the plurality of controllers transmits, to the network switch, a request for the measurement data acquired by the field device at each predetermined control timing. The network switch causes the IO node to transmit, to the controller, the measurement data of the field device connected to the IO node if the cache server does not hold the measurement data, and causes the cache server to transmit the measurement data of the field device to the controller if the cache server holds the measurement data. Each of the plurality of controllers performs predetermined computation on the basis of the received measurement data.SELECTED DRAWING: Figure 11

Description

本開示は、制御システム、制御システムの制御方法、及び、ネットワークスイッチに関する。 The present disclosure relates to a control system, a control method for a control system, and a network switch.

特許文献1には、フィールド機器が接続された装置であるIOノードを経由して、コントローラからフィールド機器の動作を制御する制御システムが記載されている。 Patent document 1 describes a control system in which a controller controls the operation of field devices via an IO node, which is a device to which the field devices are connected.

特開2021-157392号公報JP 2021-157392 A

上記のような制御システムにおいて、複数のコントローラを設け、各コントローラがフィールド機器の入出力について同一の処理を行い、各コントローラの処理結果を比較することにより、コントローラの動作の信頼性を向上させることが考えられる。このようなコントローラの冗長化を行う場合において、従来の構成においては、複数のコントローラが高い精度で時間的に同期して動作する必要があり、処理及び構成が複雑になっていた。 In the above-mentioned control system, it is possible to improve the reliability of the controller's operation by providing multiple controllers, each of which performs the same processing on the input and output of the field devices and comparing the processing results of each controller. When making the controllers redundant in this way, in the conventional configuration, multiple controllers must operate in time synchronization with high precision, which makes the processing and configuration complicated.

本開示は、フィールド機器の制御システムにおいて、より簡易な構成でコントローラの冗長化を実現可能とすることを目的とする。 The purpose of this disclosure is to make it possible to achieve controller redundancy with a simpler configuration in a field device control system.

幾つかの実施形態に係る制御システムは、
(1)測定データを取得するフィールド機器が接続されたIOノードと、
前記フィールド機器が取得した前記測定データに基づき演算を行う複数のコントローラと、
ネットワークスイッチと、
キャッシュサーバと、
を備え、
前記複数のコントローラの各々は、予め一定の周期で定められた一定期間である制御タイミングごとに、前記フィールド機器が取得した前記測定データに対する要求を前記ネットワークスイッチへ送信し、
前記ネットワークスイッチは、
前記キャッシュサーバが前記測定データを保持していない場合、前記IOノードに、前記ネットワークスイッチを介して、当該IOノードに接続された前記フィールド機器が取得した前記測定データを前記コントローラへ送信させ、
前記キャッシュサーバが前記測定データを保持している場合、当該キャッシュサーバに、前記ネットワークスイッチを介して、前記フィールド機器が取得した前記測定データを前記コントローラへ送信させ、
前記複数のコントローラの各々は、前記IOノード又は前記キャッシュサーバから受信した前記測定データに基づき、予め定められた演算を行う。
In some embodiments, the control system includes:
(1) an IO node to which a field device for acquiring measurement data is connected;
a plurality of controllers that perform calculations based on the measurement data acquired by the field devices;
A network switch;
A cache server;
Equipped with
each of the plurality of controllers transmits a request for the measurement data acquired by the field device to the network switch at each control timing, which is a fixed period determined in a predetermined cycle;
The network switch includes:
If the cache server does not hold the measurement data, the IO node transmits the measurement data acquired by the field device connected to the IO node to the controller via the network switch;
When the cache server holds the measurement data, the cache server transmits the measurement data acquired by the field device to the controller via the network switch;
Each of the plurality of controllers performs a predetermined calculation based on the measurement data received from the IO node or the cache server.

このように、各コントローラは、非同期に動作する場合であっても、ネットワークスイッチを介して、IOノード又はキャッシュサーバから、制御タイミングにおける同一の測定データを取得することができる。すなわち、コントローラ30から見ると、同一の装置にアクセスしているように見えながら、実際は、キャッシュの有無に応じて、IOノード20、又は、キャッシュサーバ40から、全コントローラ30へ共通の測定データを取得させることができる。したがって、フィールド機器の制御システムにおいて、より簡易な構成でコントローラの冗長化を実現することが可能である。 In this way, even when each controller operates asynchronously, it can obtain the same measurement data at the control timing from the IO node or cache server via the network switch. In other words, from the perspective of the controller 30, it appears as if the same device is being accessed, but in reality, depending on whether or not a cache is present, common measurement data can be obtained from the IO node 20 or the cache server 40 for all controllers 30. Therefore, it is possible to achieve controller redundancy with a simpler configuration in a field device control system.

(2)(1)の制御システムにおいて、
前記ネットワークスイッチは、
前記キャッシュサーバが前記測定データを保持していない場合、前記IOノードに対して前記測定データを要求し、
前記要求に基づき前記IOノードから前記測定データを受信したことに応じて、当該測定データを、前記コントローラへ送信するとともに、前記測定データを前記キャッシュサーバへ送信して前記測定データのキャッシュとして記憶させてもよい。
(2) In the control system of (1),
The network switch includes:
If the cache server does not hold the measurement data, the cache server requests the measurement data from the IO node;
In response to receiving the measurement data from the IO node based on the request, the measurement data may be transmitted to the controller, and the measurement data may also be transmitted to the cache server to be stored as a cache of the measurement data.

このように、ネットワークスイッチは、キャッシュサーバが測定データを保持していない場合に、IOノードから測定データを受信し、コントローラ及びキャッシュサーバへ送信する。このように、最初に測定データを要求したコントローラに対して送信された測定データがキャッシュサーバに記憶されるため、他のコントローラも、キャッシュサーバから同一の測定データを取得して、共通の測定データに基づき演算を行うことが可能である。 In this way, when the cache server does not hold the measurement data, the network switch receives the measurement data from the IO node and transmits it to the controller and cache server. In this way, the measurement data transmitted to the controller that first requested the measurement data is stored in the cache server, so other controllers can also obtain the same measurement data from the cache server and perform calculations based on the common measurement data.

(3)(1)又は(2)の制御システムにおいて、
前記ネットワークスイッチは、
前記キャッシュサーバが前記測定データを保持している場合、前記キャッシュサーバに対して前記測定データのキャッシュを要求し、
前記要求に基づき前記キャッシュサーバから前記測定データのキャッシュを受信したことに応じて、当該測定データのキャッシュを前記コントローラへ送信してもよい。
(3) In the control system according to (1) or (2),
The network switch includes:
If the cache server holds the measurement data, a request is made to the cache server to cache the measurement data;
In response to receiving the cached measurement data from the cache server upon the request, the cached measurement data may be transmitted to the controller.

このように、ネットワークスイッチは、キャッシュサーバが測定データを保持している場合に、キャッシュサーバから測定データのキャッシュを受信して、コントローラへ送信する。したがって、他のコントローラも、ネットワークスイッチを介してキャッシュサーバから測定データを取得して、共通の測定データに基づき演算を行うことが可能である。 In this way, when the cache server holds measurement data, the network switch receives a cache of the measurement data from the cache server and transmits it to the controller. Therefore, other controllers can also obtain measurement data from the cache server via the network switch and perform calculations based on the common measurement data.

(4)(1)から(3)のいずれかの制御システムにおいて、
前記ネットワークスイッチは、
前記制御タイミングごとに前記キャッシュサーバが前記測定データを保持しているか否かを示す情報を含む管理テーブルを保持し、
前記複数のコントローラのいずれかから前記測定データに対する前記要求を受けたことに応じて、前記管理テーブルを参照して、前記キャッシュサーバが前記測定データを保持しているか否かを判定してもよい。
(4) In any one of the control systems (1) to (3),
The network switch includes:
A management table including information indicating whether the cache server holds the measurement data for each of the control timings is held;
In response to receiving the request for the measured data from any one of the plurality of controllers, the management table may be referenced to determine whether or not the cache server holds the measured data.

このように、ネットワークスイッチは、制御タイミングごとにキャッシュサーバが測定データを保持しているか否かを示す情報を含む管理テーブルを保持するため、制御タイミングにキャッシュサーバに問い合わせなくても、キャッシュサーバが測定データを保持しているか否かを判定することができる。 In this way, the network switch holds a management table that contains information indicating whether or not the cache server holds measurement data for each control timing, so it can determine whether or not the cache server holds measurement data without having to query the cache server at the control timing.

(5)(4)の制御システムにおいて、
前記ネットワークスイッチは、前記制御タイミングごとに、前記測定データを受信した前記コントローラの識別情報を含む情報を前記管理テーブルとして保持してもよい。
(5) In the control system of (4),
The network switch may hold, for each of the control timings, information including identification information of the controller that received the measurement data as the management table.

このように、ネットワークスイッチが測定データのキャッシュを送信したコントローラの識別情報を記録することで、記録を参照してキャッシュデータを送信したコントローラを特定することが可能になる。 In this way, the network switch records the identification information of the controller that sent the cached measurement data, making it possible to identify the controller that sent the cached data by referring to the record.

(6)(1)から(5)のいずれかの制御システムにおいて、
前記複数のコントローラの各々は、前記制御タイミングごとに、前記ネットワークスイッチを介して受信した前記測定データに基づき、前記演算を行った結果である演算結果を前記IOノードへ送信し、
前記IOノードは、
前記制御タイミングごとに、前記複数のコントローラの各々から受信した前記演算結果を比較して、前記複数のコントローラの動作が正常であるか否かを判定し、
前記複数のコントローラの動作が正常であるか否かの判定結果を出力してもよい。
(6) In any one of the control systems (1) to (5),
each of the plurality of controllers transmits, at each control timing, a calculation result that is a result of performing the calculation based on the measurement data received via the network switch to the IO node;
The IO node includes:
comparing the calculation results received from each of the plurality of controllers at each of the control timings to determine whether or not the operations of the plurality of controllers are normal;
A result of the determination as to whether the operations of the plurality of controllers are normal or not may be output.

このように、ネットワークスイッチは、制御システムは、複数のコントローラの演算結果を比較することで、コントローラの異常を検出することができる。また、制御タイミング内に受信した演算結果に基づきコントローラの動作が正常であるか否かを判定するため、制御タイミング内に演算結果を送信できなかったコントローラの演算結果については、動作が異常であるか否かの判定に使用しないようにすることができる。 In this way, the network switch and control system can detect controller abnormalities by comparing the calculation results of multiple controllers. In addition, because it determines whether the operation of a controller is normal or not based on the calculation results received within the control timing, it is possible to avoid using the calculation results of a controller that was unable to transmit its calculation results within the control timing when determining whether the operation is abnormal or not.

幾つかの実施形態に係るネットワークスイッチは、
(7)フィールド機器の制御システムに用いられるネットワークスイッチであって、
前記フィールド機器が取得した測定データに対する要求をコントローラから受信したことに応じて、前記測定データをキャッシュサーバが保持しているか否かの情報を前記キャッシュサーバから取得し、
前記キャッシュサーバが前記測定データを保持していない場合、前記フィールド機器が接続されたIOノードへ、前記測定データに対する要求を送信し、
前記キャッシュサーバが前記測定データを保持している場合、当該キャッシュサーバへ、前記測定データ対する要求を送信する。
In some embodiments, the network switch comprises:
(7) A network switch for use in a control system for a field device, comprising:
acquiring, from the cache server, information as to whether or not the cache server holds the measurement data in response to receiving a request for the measurement data acquired by the field device from the controller;
If the cache server does not store the measurement data, a request for the measurement data is sent to an IO node to which the field device is connected;
If the cache server holds the measurement data, a request for the measurement data is sent to the cache server.

このように、ネットワークスイッチは、コントローラから測定データに対する要求を受信したことに応じて、キャッシュサーバが測定データを保持しているか否かに応じて、測定データに対する要求をIOノード又はキャッシュサーバに振り分けて送信する。そのため、各コントローラは、同一のネットワーク装置に問い合わせて、全てのコントローラに共通の測定データを取得することができる。 In this way, when the network switch receives a request for measurement data from a controller, it distributes and sends the request for measurement data to an IO node or a cache server depending on whether the cache server holds the measurement data. Therefore, each controller can query the same network device and obtain measurement data that is common to all controllers.

幾つかの実施形態に係る制御システムの制御方法は、
(8)測定データを取得するフィールド機器が接続されたIOノードと、
前記フィールド機器が取得した前記測定データに基づき演算を行う複数のコントローラと、
ネットワークスイッチと、
キャッシュサーバと、
を備える制御システムの制御方法であって、
前記複数のコントローラの各々が、予め一定の周期で定められた一定期間である制御タイミングごとに、前記フィールド機器が取得した前記測定データに対する要求を前記ネットワークスイッチへ送信する工程と、
前記ネットワークスイッチが、前記キャッシュサーバが前記測定データを保持していない場合、前記IOノードに、前記ネットワークスイッチを介して、当該IOノードに接続された前記フィールド機器が取得した前記測定データを前記コントローラへ送信させ、前記キャッシュサーバが前記測定データを保持している場合、当該キャッシュサーバに、前記ネットワークスイッチを介して、前記フィールド機器が取得した前記測定データを前記コントローラへ送信させる、工程と、
前記複数のコントローラの各々が、前記IOノード又は前記キャッシュサーバから受信した前記測定データに基づき、予め定められた演算を行う工程と、
を含む。
A control method for a control system according to some embodiments includes:
(8) an IO node to which a field device that acquires measurement data is connected;
a plurality of controllers that perform calculations based on the measurement data acquired by the field devices;
A network switch;
A cache server;
A control method for a control system comprising:
each of the plurality of controllers transmitting a request for the measurement data acquired by the field device to the network switch at each control timing, which is a fixed period determined in a predetermined cycle;
a step of causing the IO node to transmit the measurement data acquired by the field device connected to the IO node to the controller via the network switch when the cache server does not hold the measurement data, and causing the cache server to transmit the measurement data acquired by the field device to the controller via the network switch when the cache server holds the measurement data;
Each of the plurality of controllers performs a predetermined calculation based on the measurement data received from the IO node or the cache server;
including.

このように、各コントローラは、非同期に動作する場合であっても、ネットワークスイッチを介して、IOノード又はキャッシュサーバから、制御タイミングにおける同一の測定データを取得することができる。すなわち、コントローラ30から見ると、同一の装置にアクセスしているように見えながら、実際は、キャッシュの有無に応じて、IOノード20、又は、キャッシュサーバ40から、全コントローラ30へ共通の測定データを取得させることができる。したがって、フィールド機器の制御システムにおいて、より簡易な構成でコントローラの冗長化を実現することが可能である。 In this way, even when each controller operates asynchronously, it can obtain the same measurement data at the control timing from the IO node or cache server via the network switch. In other words, from the perspective of the controller 30, it appears as if the same device is being accessed, but in reality, depending on whether or not a cache is present, common measurement data can be obtained from the IO node 20 or the cache server 40 for all controllers 30. Therefore, it is possible to achieve controller redundancy with a simpler configuration in a field device control system.

本開示の一実施形態によれば、フィールド機器の制御システムにおいて、より簡易な構成でコントローラの冗長化を実現することができる。 According to one embodiment of the present disclosure, controller redundancy can be achieved with a simpler configuration in a field device control system.

比較例に係る制御システムの構成を示す図である。FIG. 1 is a diagram showing a configuration of a control system according to a comparative example. 一実施形態に係る制御システムの概略構成例を示す図である。FIG. 1 is a diagram illustrating an example of a schematic configuration of a control system according to an embodiment. 図2の制御システムの機能構成例を示すブロック図である。3 is a block diagram showing an example of a functional configuration of the control system shown in FIG. 2 . 図3の管理テーブルの一例を示す図である。FIG. 4 is a diagram illustrating an example of a management table of FIG. 3 . 図3の管理テーブルの一例を示す図である。FIG. 4 is a diagram illustrating an example of a management table of FIG. 3 . 図2のIOノードのハードウェア構成例を示すブロック図である。3 is a block diagram showing an example of a hardware configuration of the IO node shown in FIG. 2. 図2のコントローラのハードウェア構成例を示すブロック図である。3 is a block diagram showing an example of a hardware configuration of a controller shown in FIG. 2. 図2のキャッシュサーバのハードウェア構成例を示すブロック図である。3 is a block diagram showing an example of a hardware configuration of the cache server shown in FIG. 2. 一実施形態に係る制御システムの動作例を示すシーケンスチャートである。4 is a sequence chart showing an example of an operation of a control system according to an embodiment. 一実施形態に係る制御システムの動作例を示すシーケンスチャートである。4 is a sequence chart showing an example of an operation of a control system according to an embodiment. 一実施形態に係る制御システムの概略構成例を示す図である。FIG. 1 is a diagram illustrating an example of a schematic configuration of a control system according to an embodiment. 図11のネットワークスイッチのハードウェア構成例を示すブロック図である。12 is a block diagram showing an example of a hardware configuration of the network switch of FIG. 11. 一実施形態に係る制御システムの動作例を示すシーケンスチャートである。4 is a sequence chart showing an example of an operation of a control system according to an embodiment. 一実施形態に係る制御システムの動作例を示すシーケンスチャートである。4 is a sequence chart showing an example of an operation of a control system according to an embodiment.

<比較例>
図1は、比較例に係る制御システム9の構成を示す図である。制御システム9は、フィールド機器91(91a,91b)、IO(Input/Output)ノード92、及び、コントローラ93(93a,93b)を備える。IOノード92及びコントローラ93(93a,93b)は、ネットワーク95を介して互いに通信可能に接続される。
Comparative Example
1 is a diagram showing a configuration of a control system 9 according to a comparative example. The control system 9 includes field devices 91 (91a, 91b), an IO (Input/Output) node 92, and controllers 93 (93a, 93b). The IO node 92 and the controllers 93 (93a, 93b) are connected to each other via a network 95 so as to be able to communicate with each other.

フィールド機器91(91a,91b)は、プラントの制御のための測定データの取得、及び、プラントの操作の少なくとも一方を行う装置である。IOノード92は、フィールド機器91(91a,91b)が接続され、コントローラ93(93a,93b)とのインタフェースとして機能する装置である。コントローラ93(93a,93b)は、フィールド機器91(91a,91b)の測定データに対して演算を行い、演算結果に基づきフィールド機器91(91a,91b)を制御する装置である。 The field devices 91 (91a, 91b) are devices that acquire measurement data for controlling the plant and/or operate the plant. The IO node 92 is a device to which the field devices 91 (91a, 91b) are connected and that functions as an interface with the controller 93 (93a, 93b). The controller 93 (93a, 93b) is a device that performs calculations on the measurement data of the field devices 91 (91a, 91b) and controls the field devices 91 (91a, 91b) based on the calculation results.

制御システム9において、IOノード92は、一定周期(例えば、1秒ごと)でフィールド機器91(91a,91b)から測定データを収集する。コントローラ93a,93bの各々は、一定周期(例えば、1秒ごと)でIOノード92からフィールド機器91(91a,91b)の測定データを取得する。コントローラ93(93a,93b)は、取得した測定データに基づき演算を行い、IOノード92へ演算結果を送信する。IOノードは、コントローラ93(93a,93b)から演算結果を受信すると、受信した演算結果をフィールド機器へ出力する。 In the control system 9, the IO node 92 collects measurement data from the field devices 91 (91a, 91b) at regular intervals (e.g., every second). Each of the controllers 93a, 93b acquires the measurement data of the field devices 91 (91a, 91b) from the IO node 92 at regular intervals (e.g., every second). The controllers 93 (93a, 93b) perform calculations based on the acquired measurement data and transmit the calculation results to the IO node 92. When the IO node receives the calculation results from the controllers 93 (93a, 93b), it outputs the received calculation results to the field devices.

図1の例では、コントローラ93(93a,93b)の演算の信頼性向上のため、制御システム9は、複数のコントローラ93a,93bを備え、コントローラ93a,93bの演算結果を比較する。具体的には、コントローラ93a,93bの各々は、フィールド機器91(91a,91b)の同一の測定データに対して同一の演算を行い、演算結果をIOノード92へ出力する。IOノード92は、コントローラ93a,93bから受信した演算結果を比較する。IOノード92は、複数のコントローラ93a,93bから受信した演算結果が一致した場合は正常と判定し、一致しなかった場合はコントローラ93a,93bの故障等により正しく演算できなかったと判定する。このようなコントローラ93(93a,93b)の冗長化により演算の信頼性を向上させるためには、コントローラ93(93a,93b)がIOノード92から同一のタイミングの測定データを取得し、同一の演算を行うことが必要である。 In the example of FIG. 1, in order to improve the reliability of the calculations of the controllers 93 (93a, 93b), the control system 9 includes multiple controllers 93a, 93b, and compares the calculation results of the controllers 93a, 93b. Specifically, each of the controllers 93a, 93b performs the same calculation on the same measurement data of the field devices 91 (91a, 91b) and outputs the calculation results to the IO node 92. The IO node 92 compares the calculation results received from the controllers 93a, 93b. If the calculation results received from the multiple controllers 93a, 93b match, the IO node 92 judges them to be normal, and if they do not match, it judges that the calculation was not performed correctly due to a failure of the controllers 93a, 93b, etc. In order to improve the reliability of the calculations by making the controllers 93 (93a, 93b) redundant in this way, it is necessary for the controllers 93 (93a, 93b) to obtain measurement data at the same timing from the IO node 92 and perform the same calculation.

一般に、IOノード92がフィールド機器91(91a,91b)から測定データを収集するタイミングと、コントローラ93(93a,93b)がIOノード92から測定データを収集するタイミングとは同期していない。そのため、コントローラ93aとコントローラ93bとでIOノード92から測定データを取得するタイミングがずれると、同一の測定データを取得することができない場合がある。しかし、コントローラ93a,93bの演算動作タイミングを一致させるには、高精度な時刻同期が必要となり、処理及び構成が複雑になる。IOノード92と、コントローラ93a,93bのデータ取得タイミングを同期させるためにも、コントローラ93(93a,93b)において、高精度な時刻同期が必要となる。 In general, the timing at which the IO node 92 collects measurement data from the field devices 91 (91a, 91b) is not synchronized with the timing at which the controller 93 (93a, 93b) collects measurement data from the IO node 92. Therefore, if the timing at which the controller 93a and the controller 93b acquire measurement data from the IO node 92 differs, it may not be possible to acquire the same measurement data. However, in order to match the calculation operation timing of the controllers 93a and 93b, highly accurate time synchronization is required, which complicates the processing and configuration. In order to synchronize the data acquisition timing of the IO node 92 and the controllers 93a and 93b, highly accurate time synchronization is also required in the controllers 93 (93a, 93b).

このように、比較例に係る制御システム9においては、複数のコントローラ93(93a,93b)が高い精度で時間的に同期して動作する必要があり、処理及び構成が複雑になる。本開示は、高精度な時刻同期を伴わずに、複数のコントローラが同一のタイミングの測定データを取得可能にすることを目的とする。 As such, in the control system 9 according to the comparative example, multiple controllers 93 (93a, 93b) need to operate in highly accurate time synchronization, which complicates the processing and configuration. The present disclosure aims to enable multiple controllers to acquire measurement data at the same timing without highly accurate time synchronization.

<実施形態1>
以下、本開示の一実施形態について、図面を参照して説明する。各図面中、同一の構成又は機能を有する部分には、同一の符号を付している。本実施形態の説明において、同一の部分については、重複する説明を適宜省略又は簡略化する場合がある。
<Embodiment 1>
Hereinafter, an embodiment of the present disclosure will be described with reference to the drawings. In each drawing, parts having the same configuration or function are denoted by the same reference numerals. In the description of this embodiment, duplicated descriptions of the same parts may be omitted or simplified as appropriate.

(制御システム)
図2は、一実施形態に係る制御システム1aの概略構成例を示す図である。制御システム1aは、フィールド機器10(10a,10b)、IOノード20、コントローラ30(30a,30b)、キャッシュサーバ40、及び、ネットワーク50を備える。
(Control System)
2 is a diagram showing an example of a schematic configuration of a control system 1a according to an embodiment. The control system 1a includes field devices 10 (10a, 10b), an IO node 20, controllers 30 (30a, 30b), a cache server 40, and a network 50.

フィールド機器10(10a,10b)は、プラントの制御のための測定データの取得、及び、プラントの操作の少なくとも一方を行う装置である。フィールド機器10(10a,10b)は、例えば、温度センサ又は流量計等のセンサ10a、及び、バルブ機器、ファン又はモータ等のアクチュエータ10bでもよい。以下、フィールド機器10a,10bをまとめて「フィールド機器10」と称する場合がある。フィールド機器10は、測定データをIOノード20へ出力するとともに、IOノード20から受信した制御信号に基づき動作を制御する。図2の例において、制御システム1aは2つのフィールド機器10a,10bを備えるが、フィールド機器10の個数は任意である。 The field devices 10 (10a, 10b) are devices that acquire measurement data for controlling the plant and/or operate the plant. The field devices 10 (10a, 10b) may be, for example, sensors 10a such as temperature sensors or flow meters, and actuators 10b such as valve devices, fans, or motors. Hereinafter, the field devices 10a and 10b may be collectively referred to as "field devices 10." The field devices 10 output measurement data to the IO node 20 and control operations based on control signals received from the IO node 20. In the example of FIG. 2, the control system 1a includes two field devices 10a and 10b, but the number of field devices 10 is arbitrary.

IOノード20は、フィールド機器10が接続され、フィールド機器10とコントローラ30(30a,30b)とのインタフェースとして機能する装置である。IOノード20はネットワーク50に接続され、ネットワーク50を介して、コントローラ30(30a,30b)と通信可能である。図2の例において、制御システム1aは1つのIOノード20を備えるが、IOノード20の個数は任意である。また、各IOノード20に接続されるフィールド機器10の個数は任意である。 The IO node 20 is a device to which the field device 10 is connected and which functions as an interface between the field device 10 and the controller 30 (30a, 30b). The IO node 20 is connected to a network 50 and can communicate with the controller 30 (30a, 30b) via the network 50. In the example of FIG. 2, the control system 1a includes one IO node 20, but the number of IO nodes 20 is arbitrary. Also, the number of field devices 10 connected to each IO node 20 is arbitrary.

コントローラ30(30a,30b)は、フィールド機器10の測定データに対して演算を行い、演算結果に基づきフィールド機器10を制御する装置である。以下、コントローラ30a,30bをまとめて「コントローラ30」と称する場合がある。コントローラ30は、ネットワーク50を経由して、IOノード20及びキャッシュサーバ40と通信可能に構成される。コントローラ30は、IOノード20を経由して、フィールド機器10にアクセスすることができる。制御システム1aは、2つのコントローラ30a,30bを備えているが、コントローラ30の個数は任意の複数個である。 The controller 30 (30a, 30b) is a device that performs calculations on the measurement data of the field device 10 and controls the field device 10 based on the calculation results. Hereinafter, the controllers 30a, 30b may be collectively referred to as "controller 30". The controller 30 is configured to be able to communicate with the IO node 20 and the cache server 40 via the network 50. The controller 30 can access the field device 10 via the IO node 20. The control system 1a includes two controllers 30a, 30b, but the number of controllers 30 may be any number.

キャッシュサーバ40は、コントローラ30a,30bのうち先にこのキャッシュサーバ40にアクセスした方がIOノード20から取得した測定データをキャッシュとして保持する装置である。制御システム1aは、1つのキャッシュサーバ40を備えているが、キャッシュサーバ40の個数は任意である。 The cache server 40 is a device that caches and stores the measurement data acquired from the IO node 20 by the controller 30a or 30b that first accesses the cache server 40. The control system 1a includes one cache server 40, but the number of cache servers 40 is arbitrary.

ネットワーク50は、プラント内のIOノード20、コントローラ30、及び、キャッシュサーバ40等の情報機器を接続可能な専用の通信ネットワークである。ネットワーク50は、有線又は無線の構内通信網(LAN:Local Area Network)を含んでよい。有線の構内通信網は、例えば、イーサネットを含む。無線の構内通信網は、例えばWi-Fi(登録商標)及びWiMAX(登録商標)等の無線通信規格に準拠した無線ネットワークを含む。さらにOPC UA又はPROFINETのような標準化されたプロトコルを使用する通信ネットワークを用いてもよい。さらには、ネットワークは、ネットワーク50は、例えばインターネット、イントラネット、及び移動体通信網等を含んでもよい。 The network 50 is a dedicated communication network to which information devices such as the IO nodes 20, controllers 30, and cache servers 40 in the plant can be connected. The network 50 may include a wired or wireless local area network (LAN). The wired local area network includes, for example, Ethernet. The wireless local area network includes, for example, a wireless network conforming to wireless communication standards such as Wi-Fi (registered trademark) and WiMAX (registered trademark). Furthermore, a communication network using a standardized protocol such as OPC UA or PROFINET may be used. Furthermore, the network 50 may include, for example, the Internet, an intranet, a mobile communication network, etc.

制御システム1aにおいて、IOノード20は、一定周期(例えば、1秒ごと)でフィールド機器10から測定データを収集する。IOノード20は、収集した測定データを記憶部202(図6参照)に記憶させる。コントローラ30a,30bの各々は、一定周期(例えば、1秒ごと)でキャッシュサーバ40にアクセスし、フィールド機器91(91a,91b)の測定データを取得するための処理を行う。ここで、IOノード20及びコントローラ30a,30bの動作は完全に時間的に同期しているわけではなく、それぞれ別個に一定周期で動作している。 In the control system 1a, the IO node 20 collects measurement data from the field devices 10 at regular intervals (e.g., every second). The IO node 20 stores the collected measurement data in the memory unit 202 (see FIG. 6). Each of the controllers 30a, 30b accesses the cache server 40 at regular intervals (e.g., every second) and performs processing to acquire the measurement data of the field devices 91 (91a, 91b). Here, the operations of the IO node 20 and the controllers 30a, 30b are not completely synchronized in time, and each operates at a regular interval independently.

このような構成において、複数のコントローラ30(30a,30b)の内、最初にキャッシュサーバ40にアクセスした方のみIOノード20にアクセスして測定データを取得する。例えば、コントローラ30aが最初にキャッシュサーバ40にアクセスした場合、コントローラ30aは、IOノード20にアクセスし、IOノード20からフィールド機器10の測定データを取得する。コントローラ30aは、取得した測定データをキャッシュサーバ40に送信し、キャッシュサーバ40に測定データのキャッシュを保持させる。一方、遅れてキャッシュサーバ40にアクセスしたコントローラ30bは、キャッシュサーバ40から、測定データのキャッシュを取得する。このように、制御システム1aにおいては、最初にキャッシュサーバ40にアクセスしたコントローラ30(例えば、コントローラ30a)のみがIOノード20からフィールド機器10の測定データを取得する。それ以外のコントローラ30(例えば、コントローラ30b)は、キャッシュサーバ40から測定データのキャッシュを取得する。したがって、制御システム1aは、各コントローラの動作が高い精度で同期して動作していなくても、複数のコントローラ30(30a,30b)が同一の測定データを取得することを保証することが可能である。 In such a configuration, only the controller 30 (30a, 30b) that first accesses the cache server 40 accesses the IO node 20 to acquire the measurement data. For example, when the controller 30a first accesses the cache server 40, the controller 30a accesses the IO node 20 and acquires the measurement data of the field device 10 from the IO node 20. The controller 30a transmits the acquired measurement data to the cache server 40 and causes the cache server 40 to hold the cache of the measurement data. On the other hand, the controller 30b that accesses the cache server 40 later acquires the cache of the measurement data from the cache server 40. In this way, in the control system 1a, only the controller 30 (e.g., the controller 30a) that first accesses the cache server 40 acquires the measurement data of the field device 10 from the IO node 20. The other controllers 30 (e.g., the controller 30b) acquire the cache of the measurement data from the cache server 40. Therefore, the control system 1a can ensure that multiple controllers 30 (30a, 30b) acquire the same measurement data even if the operations of each controller are not synchronized with high precision.

コントローラ30(30a,30b)の各々は、取得した測定データに基づき演算を行い、IOノード20へ演算結果を送信する。IOノード20は、各コントローラ30(30a,30b)から演算結果を受信すると、受信した演算結果を比較して、各コントローラ30(30a,30b)の動作が正常であるか否かを判定する。IOノード20は、判定結果をログ情報として記憶部302(図5参照)又は表示装置(ディスプレイ)等へ出力する。IOノード20は、判定結果をコントローラ30又はキャッシュサーバ40等の他の装置へ送信してもよい。 Each of the controllers 30 (30a, 30b) performs calculations based on the acquired measurement data and transmits the calculation results to the IO node 20. When the IO node 20 receives the calculation results from each of the controllers 30 (30a, 30b), it compares the received calculation results and determines whether the operation of each of the controllers 30 (30a, 30b) is normal. The IO node 20 outputs the determination results as log information to the memory unit 302 (see FIG. 5) or a display device (display), etc. The IO node 20 may transmit the determination results to another device such as the controller 30 or the cache server 40.

図3は、図2の制御システム1aの機能構成例を示すブロック図である。IOノード20は、制御アプリケーション部21、アクセス経路制御部22、及び、通信制御部23を備える。 Figure 3 is a block diagram showing an example of the functional configuration of the control system 1a in Figure 2. The IO node 20 includes a control application unit 21, an access path control unit 22, and a communication control unit 23.

制御アプリケーション部21は、IOノード20に接続されたフィールド機器10を制御する。制御アプリケーション部21は、オペレーティングシステム上で動作してよい。制御アプリケーション部21は、プロセス制御を行う上で必要なフィールド機器10の制御を行う。例えば、制御アプリケーション部21は、フィールド機器10からの測定データの収集、及び、フィールド機器10に対する制御データの送信等を行う。 The control application unit 21 controls the field devices 10 connected to the IO node 20. The control application unit 21 may run on an operating system. The control application unit 21 controls the field devices 10 as required for process control. For example, the control application unit 21 collects measurement data from the field devices 10 and transmits control data to the field devices 10.

アクセス経路制御部22は、制御アプリケーション部21に対して抽象化されたIOアクセス方法を提供する。アクセス経路制御部22は、アクセス経路制御部22が搭載されたIOノード20とフィールド機器10との物理的な関係に合わせてアクセス方法を適応的に変更する。ハードウェアを抽象化するため、アクセス経路制御部22は、IOノード20内の仮想化部24に含まれてよい。仮想化部24は、IOノード20のハードウェア上でハードウェアの代わりとして仮想的に動作する。仮想化部24は、制御アプリケーション部21を変更することなくIOノード20のハードウェアの交換を可能にするために設けられる。しかし、アクセス経路制御部22の機能を提供するために、仮想化部24は必須ではない。仮想化部24が無くとも、アクセス経路制御部22を実装することは可能である。 The access path control unit 22 provides an abstracted IO access method for the control application unit 21. The access path control unit 22 adaptively changes the access method in accordance with the physical relationship between the IO node 20 on which the access path control unit 22 is mounted and the field device 10. To abstract the hardware, the access path control unit 22 may be included in the virtualization unit 24 in the IO node 20. The virtualization unit 24 operates virtually on the hardware of the IO node 20 as a substitute for the hardware. The virtualization unit 24 is provided to enable replacement of the hardware of the IO node 20 without changing the control application unit 21. However, the virtualization unit 24 is not essential to provide the functions of the access path control unit 22. It is possible to implement the access path control unit 22 without the virtualization unit 24.

通信制御部23は、IOノード20に接続されたフィールド機器10、及び、ネットワーク50に接続されたコントローラ30との間で通信を行う。通信制御部23は、フィールド機器10との接続形態、及び、ネットワーク50の種類等に応じて必要な通信処理を行う。 The communication control unit 23 communicates between the field device 10 connected to the IO node 20 and the controller 30 connected to the network 50. The communication control unit 23 performs the necessary communication processing depending on the connection form with the field device 10 and the type of the network 50, etc.

コントローラ30(30a,30b)は、制御アプリケーション部31(31a,31b)、アクセス経路制御部32(32a,32b)、及び、通信制御部33(33a,33b)を備える。コントローラ30(30a,30b)は、IOノード20と同様に、仮想化部34(34a,34b)を備えてもよい。コントローラ30aの制御アプリケーション部31a、アクセス経路制御部32a、通信制御部33a、及び、仮想化部34aは、コントローラ30bの制御アプリケーション部31b、アクセス経路制御部32b、通信制御部33b、及び、仮想化部34bと同一である。そこで、以下、制御アプリケーション部31a,31b、アクセス経路制御部32a,32b、通信制御部33a,33b、仮想化部34a,34bを、まとめて「制御アプリケーション部31」、「アクセス経路制御部32」、「通信制御部33」、「仮想化部34」と称する場合がある。コントローラ30の制御アプリケーション部31、アクセス経路制御部32、通信制御部33、仮想化部34は、IOノード20の制御アプリケーション部21、アクセス経路制御部22、通信制御部23、仮想化部24と同一又は類似の機能を有するので、詳細な説明を省略する。 The controller 30 (30a, 30b) includes a control application unit 31 (31a, 31b), an access path control unit 32 (32a, 32b), and a communication control unit 33 (33a, 33b). The controller 30 (30a, 30b) may include a virtualization unit 34 (34a, 34b) like the IO node 20. The control application unit 31a, access path control unit 32a, communication control unit 33a, and virtualization unit 34a of the controller 30a are the same as the control application unit 31b, access path control unit 32b, communication control unit 33b, and virtualization unit 34b of the controller 30b. Therefore, hereinafter, the control application units 31a and 31b, the access path control units 32a and 32b, the communication control units 33a and 33b, and the virtualization units 34a and 34b may be collectively referred to as the "control application unit 31," the "access path control unit 32," the "communication control unit 33," and the "virtualization unit 34." The control application unit 31, the access path control unit 32, the communication control unit 33, and the virtualization unit 34 of the controller 30 have the same or similar functions as the control application unit 21, the access path control unit 22, the communication control unit 23, and the virtualization unit 24 of the IO node 20, and therefore detailed description thereof will be omitted.

キャッシュサーバ40は、管理テーブル41、アクセス経路制御部42、通信制御部43、及びキャッシュデータベース45を備える。 The cache server 40 includes a management table 41, an access route control unit 42, a communication control unit 43, and a cache database 45.

管理テーブル41は、コントローラ30のキャッシュサーバ40へのアクセスの状況を管理するためのテーブルである。図4及び図5は、図3の管理テーブルの一例を示す図である。キャッシュサーバ40は、一定周期(例えば、1秒ごと)で、最初にキャッシュサーバ40にアクセスしたコントローラ30の識別情報を保持する。初期状態において、管理テーブル41は、空白、「0」、又は、「-」等の値(図4及び図5の例では「-」)を保持する。図4及び図5の例において、制御タイミングは、コントローラ30が周期的に測定データを取得するための、予め一定の周期で定められた一定期間を示す。制御タイミングT001は、例えば、時刻0時0分0秒~0時0分1秒の期間に対応する。制御タイミングT002は、例えば、時刻0時0分1秒~0時0分2秒の期間に対応する。制御タイミングT003は、例えば、時刻0時0分2秒~0時0分3秒の期間に対応する。これらの例において、制御タイミングT001~T003は、1秒の周期で定められた長さが1秒の期間に相当する。なお、制御タイミングの周期と長さとは異なってもよく、例えば、制御タイミングは、10秒周期で定められた長さ1秒の期間としてもよい。制御タイミングは、キャッシュサーバ40の計時部により測定された時刻に基づき決定されるが、NTP(Network Time Protocol)サーバ等の時刻サーバ又はコントローラ30等の他の装置により測定された時刻に基づき決定されてもよい。制御タイミングを時刻サーバにより測定された時刻に基づき決定する場合、正確な時刻を反映した制御タイミングを取得することができ、制御タイミングの信頼性を保つことができる。制御タイミングを各コントローラ30により測定された時刻に基づき決定する場合、各コントローラ30は、時刻サーバ等の他の装置にアクセスすることなく制御タイミングを決定することができ、可用性を保つことができる。 The management table 41 is a table for managing the status of the controller 30's access to the cache server 40. FIGS. 4 and 5 are diagrams showing an example of the management table in FIG. 3. The cache server 40 holds the identification information of the controller 30 that first accessed the cache server 40 at a fixed period (for example, every second). In the initial state, the management table 41 holds a value such as blank, "0", or "-" ("-" in the examples of FIGS. 4 and 5). In the examples of FIGS. 4 and 5, the control timing indicates a fixed period determined in advance at a fixed period for the controller 30 to periodically acquire measurement data. The control timing T001 corresponds, for example, to the period from 0:00:00 to 0:00:01. The control timing T002 corresponds, for example, to the period from 0:00:01 to 0:00:02. The control timing T003 corresponds, for example, to the period from 0:00:02 to 0:00:03. In these examples, the control timings T001 to T003 correspond to a period of 1 second, with a length determined in a 1-second cycle. The cycle and length of the control timing may be different; for example, the control timing may be a period of 1 second with a length determined in a 10-second cycle. The control timing is determined based on the time measured by the clock unit of the cache server 40, but may also be determined based on the time measured by a time server such as an NTP (Network Time Protocol) server or other device such as the controller 30. When the control timing is determined based on the time measured by the time server, it is possible to obtain control timing that reflects the correct time, and the reliability of the control timing can be maintained. When the control timing is determined based on the time measured by each controller 30, each controller 30 can determine the control timing without accessing other devices such as a time server, and availability can be maintained.

図2の例においてIOノード20の個数は1つだが、図4の管理テーブル41は、3つのIOノード20(IO-1,IO-2,IO-3)を備えた制御システム1aにおいて、最初にキャッシュサーバ40にアクセスしたコントローラ30の識別情報を保持している。図5の管理テーブル41は、2つのIOノード20(IO-5,IO-6)を備えた制御システム1aにおいて、最初にキャッシュサーバ40にアクセスしたコントローラ30の識別情報を保持している。 In the example of FIG. 2, there is one IO node 20, but the management table 41 in FIG. 4 holds the identification information of the controller 30 that first accessed the cache server 40 in a control system 1a that has three IO nodes 20 (IO-1, IO-2, IO-3). The management table 41 in FIG. 5 holds the identification information of the controller 30 that first accessed the cache server 40 in a control system 1a that has two IO nodes 20 (IO-5, IO-6).

例えば、図4において、制御タイミング「T001」では、識別情報「IO-1」「IO-2」のIOノード20については、識別情報「CNT-1」のコントローラ30(例えば、コントローラ30a)が最初にキャッシュサーバ40にアクセスしている。「IO-3」のIOノード20については、識別情報「CNT-2」のコントローラ30(例えば、コントローラ30b)が最初にキャッシュサーバ40にアクセスしている。制御タイミング「T002」では、識別情報「IO-1」「IO-2」「IO-3」の各IOノード20について、識別情報「CNT-1」のコントローラ30(例えば、コントローラ30a)が最初にキャッシュサーバ40にアクセスしている。制御タイミング「T003」では、識別情報「IO-1」「IO-2」のIOノード20について、識別情報「CNT-2」のコントローラ30(例えば、コントローラ30b)が最初にキャッシュサーバ40にアクセスしている。識別情報「IO-3」のIOノード20については、まだいずれのコントローラ30もキャッシュサーバ40にアクセスしていない。図5の例では、いずれの制御タイミングにおいても、いずれのIOノード20についても、まだコントローラ30はキャッシュサーバ40にアクセスしていない。 For example, in FIG. 4, at control timing "T001", for the IO nodes 20 with identification information "IO-1" and "IO-2", the controller 30 with identification information "CNT-1" (e.g., controller 30a) first accesses the cache server 40. For the IO node 20 with identification information "IO-3", the controller 30 with identification information "CNT-2" (e.g., controller 30b) first accesses the cache server 40. At control timing "T002", for each of the IO nodes 20 with identification information "IO-1", "IO-2", and "IO-3", the controller 30 with identification information "CNT-1" (e.g., controller 30a) first accesses the cache server 40. At control timing "T003", for the IO nodes 20 with identification information "IO-1" and "IO-2", the controller 30 with identification information "CNT-2" (e.g., controller 30b) first accesses the cache server 40. For the IO node 20 with the identification information "IO-3", none of the controllers 30 have yet accessed the cache server 40. In the example of FIG. 5, at any control timing, none of the controllers 30 have yet accessed the cache server 40 for any of the IO nodes 20.

キャッシュサーバ40は、複数のコントローラ30の複数のIOノード20に対するアクセスを管理する場合、コントローラ30及びIOノード20を複数の制御グループに分類し、制御グループごとに管理テーブル41を保持してもよい。例えば、冗長化の対象とする複数のコントローラ30に対して、「C001」等の制御グループを設定してもよい。例えば、キャッシュサーバ40は、どのコントローラ30がどのIOノード20に接続されたフィールド機器10の測定データの演算を行うかに応じて、コントローラ30及びIOノード20を複数の制御グループに分類してもよい。例えば、図4の管理テーブル41は、識別情報「CNT-1」「CNT-2」のコントローラ30が識別情報「IO-1」「IO-2」「IO-3」のIOノード20の制御を行う制御グループ1のアクセス管理を示してもよい。例えば、図5の管理テーブル41は、識別情報「CNT-X」「CNT-Y」のコントローラ30が識別情報「IO-5」「IO-6」のIOノード20の制御を行う制御グループ2のアクセス管理を示してもよい。同一の制御グループに含まれるコントローラ30は、同一の制御演算を行う。 When managing access to multiple IO nodes 20 from multiple controllers 30, the cache server 40 may classify the controllers 30 and IO nodes 20 into multiple control groups and hold a management table 41 for each control group. For example, a control group such as "C001" may be set for multiple controllers 30 to be made redundant. For example, the cache server 40 may classify the controllers 30 and IO nodes 20 into multiple control groups depending on which controller 30 performs calculations on the measurement data of the field device 10 connected to which IO node 20. For example, the management table 41 in FIG. 4 may show access management for control group 1 in which the controllers 30 with identification information "CNT-1" and "CNT-2" control the IO nodes 20 with identification information "IO-1", "IO-2", and "IO-3". For example, the management table 41 in FIG. 5 may show access management for control group 2 in which the controllers 30 with identification information "CNT-X" and "CNT-Y" control the IO nodes 20 with identification information "IO-5" and "IO-6". Controllers 30 in the same control group perform the same control calculations.

図3の説明に戻る。キャッシュサーバ40のアクセス経路制御部42、通信制御部43、及び、仮想化部44は、IOノード20のアクセス経路制御部22、通信制御部23、及び、仮想化部24と同一又は類似の機能を有するので、詳細な説明を省略する。 Returning to the explanation of FIG. 3, the access path control unit 42, the communication control unit 43, and the virtualization unit 44 of the cache server 40 have the same or similar functions as the access path control unit 22, the communication control unit 23, and the virtualization unit 24 of the IO node 20, so detailed explanations are omitted.

キャッシュデータベース45は、各制御タイミングにおいて、もっとも早くキャッシュサーバ40にアクセスしたコントローラ30がIOノード20から取得した測定データをキャッシュとして記憶する。図1のように、IOノード20に複数のフィールド機器10a,10bが接続されている場合、キャッシュデータベース45は、各フィールド機器10の測定データを記憶してもよい。前述のように、制御システム1aが複数のIOノード20を含む場合、キャッシュデータベース45は、IOノード20毎に、各IOノード20から取得した測定データを記憶してもよい。前述のように、制御システム1aが複数の制御グループに分類された数のコントローラ30の複数のIOノード20に対するアクセスを管理する場合、キャッシュデータベース45は、制御グループ毎に、各IOノード20から取得した測定データを記憶してもよい。 At each control timing, the cache database 45 stores as a cache the measurement data acquired from the IO node 20 by the controller 30 that accessed the cache server 40 earliest. As shown in FIG. 1, when multiple field devices 10a and 10b are connected to the IO node 20, the cache database 45 may store the measurement data of each field device 10. As described above, when the control system 1a includes multiple IO nodes 20, the cache database 45 may store the measurement data acquired from each IO node 20 for each IO node 20. As described above, when the control system 1a manages access to multiple IO nodes 20 by a number of controllers 30 classified into multiple control groups, the cache database 45 may store the measurement data acquired from each IO node 20 for each control group.

(IOノード)
図6は、図2のIOノード20のハードウェア構成例を示すブロック図である。IOノード20は、1つ又は互いに通信可能な複数のコンピュータ装置である。IOノード20は、例えば、PC(Personal Computer)又はWS(Workstation)等の汎用のコンピュータにより実現されるが、FPGA(Field Programmable Gate Array)又はプラント等の制御用に設計された専用コンピュータ等により実現されてもよい。図6に示すように、IOノード20は、制御部201、記憶部202、及び、通信部203を備える。
(IO node)
Fig. 6 is a block diagram showing an example of a hardware configuration of the IO node 20 in Fig. 2. The IO node 20 is one or a plurality of computer devices capable of communicating with each other. The IO node 20 is realized by a general-purpose computer such as a personal computer (PC) or a workstation (WS), but may also be realized by a field programmable gate array (FPGA) or a dedicated computer designed for controlling a plant or the like. As shown in Fig. 6, the IO node 20 includes a control unit 201, a storage unit 202, and a communication unit 203.

制御部201は、1つ以上のプロセッサを含む。一実施形態において「プロセッサ」は、汎用のプロセッサ、又は特定の処理に特化した専用のプロセッサであるが、これらに限定されない。制御部201は、IOノード20を構成する各構成部と通信可能に接続され、IOノード20全体の動作を制御する。 The control unit 201 includes one or more processors. In one embodiment, the "processor" is, but is not limited to, a general-purpose processor or a dedicated processor specialized for a particular process. The control unit 201 is communicatively connected to each component that constitutes the IO node 20, and controls the operation of the entire IO node 20.

記憶部202は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ROM(Read-Only Memory)、及びRAM(Random Access Memory)等の任意の記憶モジュールを含む。記憶部202は、例えば、主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。記憶部202は、IOノード20の動作に用いられる任意の情報を記憶する。例えば、記憶部202は、システムプログラム(オペレーティングシステム)、アプリケーションプログラム、及び通信部203によって受信された各種情報等を記憶してもよい。記憶部202は、IOノード20に内蔵されているものに限定されず、外付けのデータベース又は外付け型の記憶モジュールであってもよい。 The storage unit 202 includes any storage module, such as a hard disk drive (HDD), a solid state drive (SSD), a read-only memory (ROM), and a random access memory (RAM). The storage unit 202 may function as a main storage device, an auxiliary storage device, or a cache memory, for example. The storage unit 202 stores any information used in the operation of the IO node 20. For example, the storage unit 202 may store a system program (operating system), an application program, and various information received by the communication unit 203. The storage unit 202 is not limited to being built into the IO node 20, and may be an external database or an external storage module.

通信部203は、任意の通信技術によってフィールド機器10及びコントローラ30等の他の装置と通信接続可能な、任意の通信モジュールを含む。通信部203は、さらに、他の装置との通信を制御するための通信制御モジュール、及び他の装置との通信に必要となる識別情報等の通信用データを記憶する記憶モジュールを含んでもよい。 The communication unit 203 includes any communication module that can communicate with other devices such as the field device 10 and the controller 30 using any communication technology. The communication unit 203 may further include a communication control module for controlling communication with other devices, and a storage module for storing communication data such as identification information required for communication with other devices.

IOノード20の機能は、本実施形態に係るコンピュータプログラム(プログラム)を、制御部201に含まれるプロセッサで実行することにより実現されうる。すなわち、IOノード20の機能は、ソフトウェアにより実現されうる。コンピュータプログラムは、IOノード20の動作に含まれるステップの処理をコンピュータに実行させることで、各ステップの処理に対応する機能をコンピュータに実現させる。すなわち、コンピュータプログラムは、コンピュータを本実施形態に係るIOノード20として機能させるためのプログラムである。コンピュータプログラムは、コンピュータで読み取り可能な記録媒体に記録してもよい。プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるものが含まれる。例えば、コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータは、「プログラムに準ずるもの」に該当する。 The functions of the IO node 20 can be realized by executing a computer program (program) according to this embodiment on a processor included in the control unit 201. That is, the functions of the IO node 20 can be realized by software. The computer program causes a computer to execute the processing of steps included in the operation of the IO node 20, thereby causing the computer to realize the functions corresponding to the processing of each step. That is, the computer program is a program for causing a computer to function as the IO node 20 according to this embodiment. The computer program may be recorded on a computer-readable recording medium. Programs include information used for processing by an electronic computer and equivalent to a program. For example, data that is not a direct command to a computer but has properties that dictate computer processing falls under "something equivalent to a program."

IOノード20の一部又は全ての機能が、制御部201に含まれる専用回路により実現されてもよい。すなわち、IOノード20の一部又は全ての機能が、ハードウェアにより実現されてもよい。また、IOノード20は単一のコンピュータ装置により実現されてもよいし、複数のコンピュータ装置の協働により実現されてもよい。 Some or all of the functions of the IO node 20 may be realized by a dedicated circuit included in the control unit 201. In other words, some or all of the functions of the IO node 20 may be realized by hardware. In addition, the IO node 20 may be realized by a single computer device, or may be realized by the cooperation of multiple computer devices.

(コントローラ)
図7は、図2のコントローラ30のハードウェア構成例を示すブロック図である。コントローラ30は、1つ又は互いに通信可能な複数のコンピュータ装置である。コントローラ30は、例えば、PC又はWS等の汎用のコンピュータにより実現されるが、FPGA又はプラント等の制御用に設計された専用コンピュータ等により実現されてもよい。図7に示すように、コントローラ30は、制御部301、記憶部302、及び、通信部303を備える。コントローラ30の制御部301、記憶部302、及び、通信部303は、IOノード20の制御部201、記憶部202、及び、通信部203と同様に実現されるため、詳細な説明を省略する。また、IOノード20と同様に、コントローラ30の機能は、本実施形態に係るプログラムを、制御部301に含まれるプロセッサで実行することにより実現されうる。
(controller)
7 is a block diagram showing an example of a hardware configuration of the controller 30 in FIG. 2. The controller 30 is one or a plurality of computer devices capable of communicating with each other. The controller 30 is realized by a general-purpose computer such as a PC or a WS, but may be realized by a dedicated computer designed for controlling an FPGA or a plant. As shown in FIG. 7, the controller 30 includes a control unit 301, a storage unit 302, and a communication unit 303. The control unit 301, the storage unit 302, and the communication unit 303 of the controller 30 are realized in the same manner as the control unit 201, the storage unit 202, and the communication unit 203 of the IO node 20, so detailed description will be omitted. In addition, like the IO node 20, the function of the controller 30 can be realized by executing the program according to this embodiment in a processor included in the control unit 301.

(キャッシュサーバ)
図8は、図2のキャッシュサーバ40のハードウェア構成例を示すブロック図である。キャッシュサーバ40は、1つ又は互いに通信可能な複数のコンピュータ装置である。キャッシュサーバ40は、例えば、PC又はWS等の汎用のコンピュータにより実現されるが、FPGA又はプラント等の制御用に設計された専用コンピュータ等により実現されてもよい。図8に示すように、キャッシュサーバ40は、制御部401、記憶部402、及び、通信部403を備える。キャッシュサーバ40の制御部401、記憶部402、及び、通信部403は、IOノード20の制御部201、記憶部202、及び、通信部203と同様に実現されるため、詳細な説明を省略する。また、IOノード20と同様に、キャッシュサーバ40の機能は、本実施形態に係るプログラムを、制御部401に含まれるプロセッサで実行することにより実現されうる。
(cache server)
FIG. 8 is a block diagram showing an example of a hardware configuration of the cache server 40 in FIG. 2. The cache server 40 is one or a plurality of computer devices capable of communicating with each other. The cache server 40 is realized by a general-purpose computer such as a PC or a WS, but may be realized by a dedicated computer designed for controlling an FPGA or a plant. As shown in FIG. 8, the cache server 40 includes a control unit 401, a storage unit 402, and a communication unit 403. The control unit 401, the storage unit 402, and the communication unit 403 of the cache server 40 are realized in the same manner as the control unit 201, the storage unit 202, and the communication unit 203 of the IO node 20, so detailed description will be omitted. In addition, like the IO node 20, the function of the cache server 40 can be realized by executing the program according to this embodiment by a processor included in the control unit 401.

(制御システムの動作)
図9及び図10は、一実施形態に係る制御システム1aの動作例を示すシーケンスチャートである。図9及び図10を参照して説明する制御システム1aの動作は、制御システム1aの制御方法の一つに相当してもよい。図9及び図10の各ステップの動作は、IOノード20の制御部201、コントローラ30の制御部301、又は、キャッシュサーバ40の制御部401による制御に基づき実行されてもよい。図9及び図10の処理は、制御タイミングごと、例えば、1秒ごとに実行される。図9及び図10は、ある制御タイミングにおいて、まずコントローラ30aがキャッシュサーバ40にアクセスし、その後、コントローラ30bがキャッシュサーバ40にアクセスしている例を示している。図9は、コントローラ30aが測定データを取得して演算を行う処理を示している。図10は、コントローラ30bが測定データを取得して演算を行う処理を示している。以下、図2のように、制御システム1aは1つのIOノード20を備える例を説明する。
(Control system operation)
9 and 10 are sequence charts showing an example of the operation of the control system 1a according to an embodiment. The operation of the control system 1a described with reference to FIG. 9 and FIG. 10 may correspond to one of the control methods of the control system 1a. The operation of each step in FIG. 9 and FIG. 10 may be executed based on the control by the control unit 201 of the IO node 20, the control unit 301 of the controller 30, or the control unit 401 of the cache server 40. The process in FIG. 9 and FIG. 10 is executed for each control timing, for example, every second. FIG. 9 and FIG. 10 show an example in which the controller 30a first accesses the cache server 40 at a certain control timing, and then the controller 30b accesses the cache server 40. FIG. 9 shows a process in which the controller 30a acquires measurement data and performs calculations. FIG. 10 shows a process in which the controller 30b acquires measurement data and performs calculations. Hereinafter, an example in which the control system 1a includes one IO node 20 as shown in FIG. 2 will be described.

図9のステップS1において、コントローラ30aの制御部301は、キャッシュサーバ40に対し、IOノード20に接続されているフィールド機器10の測定データのキャッシュがキャッシュデータベース45に記憶されているか否かを問い合わせる。例えば、コントローラ30aのアクセス経路制御部32aが問い合わせを行ってもよい。 In step S1 of FIG. 9, the control unit 301 of the controller 30a inquires of the cache server 40 whether or not the cache of the measurement data of the field device 10 connected to the IO node 20 is stored in the cache database 45. For example, the access path control unit 32a of the controller 30a may make the inquiry.

ステップS2において、キャッシュサーバ40の制御部401は、ステップS1で問い合わせを受けた測定データのキャッシュが記憶されているか否かを判定する。例えば、制御部401は、管理テーブル41を参照し、該当する制御タイミング及びIOノード20について、コントローラ30のアクセスが記録されているか否かを判定して、キャッシュの有無を判定してもよい。図9の例は、ある制御タイミングにおいてコントローラ30aが初めてアクセスした場合を示しているため、制御部401は、キャッシュなしと判定する。 In step S2, the control unit 401 of the cache server 40 determines whether or not a cache of the measurement data queried in step S1 is stored. For example, the control unit 401 may refer to the management table 41 and determine whether or not an access by the controller 30 is recorded for the relevant control timing and IO node 20, thereby determining whether or not a cache exists. The example in FIG. 9 shows a case where the controller 30a has accessed for the first time at a certain control timing, so the control unit 401 determines that there is no cache.

ステップS3において、キャッシュサーバ40の制御部401は、コントローラ30aに対し、キャッシュなしを通知する。 In step S3, the control unit 401 of the cache server 40 notifies the controller 30a that there is no cache.

キャッシュサーバ40からキャッシュなしの通知を受けると、ステップS4において、コントローラ30aの制御部301は、IOノード20に対して、フィールド機器10の測定データを要求する。例えば、コントローラ30aの制御アプリケーション部31aがデータ取得を要求してもよい。 When a notification of no cache is received from the cache server 40, in step S4, the control unit 301 of the controller 30a requests the measurement data of the field device 10 from the IO node 20. For example, the control application unit 31a of the controller 30a may request data acquisition.

コントローラ30aから測定データの要求を受信すると、ステップS5において、IOノード20の制御部201は、フィールド機器10の測定データを取得する。前述のように、IOノード20は、一定周期(例えば、1秒ごと)でフィールド機器10から測定データを収集し、収集した測定データを記憶部202に記憶させる。そこで、制御部201は、記憶部202から測定データを読み出して、測定データを取得する。なお、制御部201は、コントローラ30から測定データの要求を受信したことに応じて、フィールド機器10から測定データを取得してもよい。 When a request for measurement data is received from the controller 30a, in step S5, the control unit 201 of the IO node 20 acquires the measurement data of the field device 10. As described above, the IO node 20 collects measurement data from the field device 10 at regular intervals (e.g., every second) and stores the collected measurement data in the memory unit 202. The control unit 201 then reads out the measurement data from the memory unit 202 to acquire the measurement data. Note that the control unit 201 may acquire the measurement data from the field device 10 in response to receiving a request for measurement data from the controller 30.

ステップS6において、IOノード20の制御部201は、ステップS5で取得したフィールド機器10の測定データをコントローラ30aへ送信する。 In step S6, the control unit 201 of the IO node 20 transmits the measurement data of the field device 10 acquired in step S5 to the controller 30a.

フィールド機器10の測定データをIOノード20から受信すると、ステップS7において、コントローラ30aの制御部301は、受信した測定データを記憶部302に記憶させるとともに、キャッシュサーバ40へ測定データを送信する。 When the measurement data of the field device 10 is received from the IO node 20, in step S7, the control unit 301 of the controller 30a stores the received measurement data in the memory unit 302 and transmits the measurement data to the cache server 40.

フィールド機器10の測定データをコントローラ30aから受信すると、ステップS8において、キャッシュサーバ40の制御部401は、受信した測定データをキャッシュデータベース45に記憶させるとともに、管理テーブル41を更新する。例えば、制御部401は、対応する制御グループの管理テーブル41において、該当する制御タイミングのIOノード20に対応する項目を、コントローラ30aの識別情報により更新してもよい。 When the measurement data of the field device 10 is received from the controller 30a, in step S8, the control unit 401 of the cache server 40 stores the received measurement data in the cache database 45 and updates the management table 41. For example, the control unit 401 may update the item corresponding to the IO node 20 of the relevant control timing in the management table 41 of the corresponding control group with the identification information of the controller 30a.

一方、ステップS9において、コントローラ30aの制御部301は、ステップS7で取得した測定データに基づき、予め定められた演算を行う。例えば、コントローラ30aの制御アプリケーション部21aが演算を行ってもよい。演算内容は、フィールド機器10の種類等に応じて、予め設定されている。 Meanwhile, in step S9, the control unit 301 of the controller 30a performs a predetermined calculation based on the measurement data acquired in step S7. For example, the calculation may be performed by the control application unit 21a of the controller 30a. The content of the calculation is preset according to the type of the field device 10, etc.

ステップS10において、コントローラ30aの制御部301は、ステップS9の処理による演算結果をIOノード20へ送信する。なお、制御システム1aは、ステップS7,S8の前に、ステップS9,S10の処理を実行してもよい。 In step S10, the control unit 301 of the controller 30a transmits the calculation result of the process of step S9 to the IO node 20. Note that the control system 1a may execute the processes of steps S9 and S10 before steps S7 and S8.

コントローラ30aから演算結果を受信すると、ステップS11において、IOノード20の制御部201は、コントローラ30aから受信した演算結果を記憶部202に記憶させて保持する。 When the calculation result is received from the controller 30a, in step S11, the control unit 201 of the IO node 20 stores and retains the calculation result received from the controller 30a in the memory unit 202.

次に、図10のステップS21において、コントローラ30bの制御部301は、キャッシュサーバ40に対し、IOノード20に接続されているフィールド機器10の測定データのキャッシュがキャッシュデータベース45に記憶されているか否かを問い合わせる。例えば、コントローラ30bの仮想化部34bが問い合わせを行ってもよい。 Next, in step S21 of FIG. 10, the control unit 301 of the controller 30b inquires of the cache server 40 whether or not the cache of the measurement data of the field device 10 connected to the IO node 20 is stored in the cache database 45. For example, the virtualization unit 34b of the controller 30b may make the inquiry.

ステップS22において、キャッシュサーバ40の制御部401は、キャッシュサーバ40の制御部401は、ステップS21で問い合わせを受けた測定データのキャッシュが記憶されているか否かを判定する。例えば、制御部401は、管理テーブル41を参照し、該当する制御タイミング及びIOノード20について、コントローラ30のアクセスが記録されているか否かを判定して、キャッシュの有無を判定してもよい。図10の例は、該当する制御タイミングにおいて既にコントローラ30aがアクセスした場合を示しているため、制御部401は、キャッシュありと判定する。 In step S22, the control unit 401 of the cache server 40 determines whether or not a cache of the measurement data queried in step S21 is stored. For example, the control unit 401 may refer to the management table 41 and determine whether or not an access by the controller 30 is recorded for the corresponding control timing and IO node 20, thereby determining whether or not a cache exists. The example in FIG. 10 shows a case where the controller 30a has already accessed at the corresponding control timing, so the control unit 401 determines that a cache exists.

そこで、ステップS23において、キャッシュサーバ40の制御部401は、図9のステップS8でキャッシュデータベース45に保持した測定データのキャッシュを読み出して取得する。具体的には、制御部401は、該当する制御グループのIOノード20の識別情報に対応づけて記憶された、該当する制御タイミングの測定データを取得してもよい。 Therefore, in step S23, the control unit 401 of the cache server 40 reads and acquires the cache of the measurement data stored in the cache database 45 in step S8 of FIG. 9. Specifically, the control unit 401 may acquire the measurement data of the corresponding control timing that is stored in association with the identification information of the IO node 20 of the corresponding control group.

ステップS24において、キャッシュサーバ40の制御部401は、ステップS23で取得した測定データのキャッシュをコントローラ30bへ送信する。 In step S24, the control unit 401 of the cache server 40 transmits the cache of the measurement data acquired in step S23 to the controller 30b.

測定データのキャッシュをキャッシュサーバ40から受信すると、ステップS25において、コントローラ30bの制御部301は、取得した測定データのキャッシュに基づき、予め定められた演算を行う。例えば、コントローラ30bの制御アプリケーション部21bが演算を行ってもよい。演算内容は、コントローラ30aが実行する演算と同一である。 When the cache of the measurement data is received from the cache server 40, in step S25, the control unit 301 of the controller 30b performs a predetermined calculation based on the acquired cache of the measurement data. For example, the calculation may be performed by the control application unit 21b of the controller 30b. The content of the calculation is the same as the calculation executed by the controller 30a.

ステップS26において、コントローラ30bの制御部301は、ステップS25の処理による演算結果をIOノード20へ送信する。 In step S26, the control unit 301 of the controller 30b transmits the calculation result obtained by the processing in step S25 to the IO node 20.

コントローラ30bから演算結果を受信すると、ステップS27において、IOノード20の制御部201は、図9のステップS11で保持したコントローラ30aによる演算結果と比較し、コントローラ30a,30bが正常に動作しているか否かを判定する。例えば、制御部201は、コントローラ30a,30bによる演算結果が一致した場合、各コントローラ30a,30bは正常に動作しており、そうでない場合は正常に動作していないと判定してもよい。制御システム1aが3つ以上のコントローラ30を備えている場合も同様に、制御部201は、全てのコントローラ30による演算結果が一致した場合、各コントローラ30は正常に動作しており、そうでない場合は正常に動作していないと判定してもよい。 When the calculation result is received from controller 30b, in step S27, the control unit 201 of the IO node 20 compares it with the calculation result by controller 30a held in step S11 of FIG. 9, and determines whether the controllers 30a, 30b are operating normally. For example, the control unit 201 may determine that each controller 30a, 30b is operating normally if the calculation results by controllers 30a, 30b match, and that each controller is not operating normally if they are not. Similarly, when the control system 1a includes three or more controllers 30, the control unit 201 may determine that each controller 30 is operating normally if the calculation results by all controllers 30 match, and that each controller is not operating normally if they are not.

ステップS28において、IOノード20の制御部201は、ステップS27で判定した結果を出力する。例えば、制御部201は、判定結果をログファイルとして、記憶部202に出力してもよい。あるいは、制御部201は、判定結果を表示装置(ディスプレイ)等に表示させたり、コントローラ30又はキャッシュサーバ40等の他の装置へ送信したりしてもよい。制御部201は、ステップS27において正常でないと判定された場合に、このような出力を行うようにしてもよい。 In step S28, the control unit 201 of the IO node 20 outputs the result of the determination made in step S27. For example, the control unit 201 may output the determination result to the memory unit 202 as a log file. Alternatively, the control unit 201 may display the determination result on a display device or the like, or transmit the determination result to another device such as the controller 30 or cache server 40. The control unit 201 may perform such output if it is determined in step S27 that the state is not normal.

以上のように、制御システム1aは、測定データを取得するフィールド機器10が接続されたIOノード20、フィールド機器10が取得した測定データに基づき演算を行う複数のコントローラ30a,30b、及び、キャッシュサーバ40を備える。複数のコントローラ30a,30bの各々の制御部301は、予め一定の周期で定められた一定期間である制御タイミングごとに、フィールド機器10が取得した測定データを保持しているか否かをキャッシュサーバ40に問い合わせるなどして判定する。制御部301は、キャッシュサーバ40が測定データを保持していない場合、IOノード20から、IOノード20に接続されたフィールド機器10が取得した測定データを取得する。制御部301は、キャッシュサーバ40が測定データを保持している場合、キャッシュサーバ40から、フィールド機器10が取得した測定データを取得する。制御部301は、IOノード20又はキャッシュサーバ40から受信した測定データに基づき、予め定められた演算を行う。したがって、仮にコントローラ30の動作タイミングがずれたとしても、全てのコントローラ30は、制御タイミングにおける同一の測定データに基づき演算を行うことが可能である。 As described above, the control system 1a includes an IO node 20 to which a field device 10 that acquires measurement data is connected, a plurality of controllers 30a, 30b that perform calculations based on the measurement data acquired by the field device 10, and a cache server 40. The control unit 301 of each of the plurality of controllers 30a, 30b determines whether or not the field device 10 holds the measurement data acquired by the field device 10 at each control timing that is a fixed period determined in advance by a fixed cycle, for example, by inquiring of the cache server 40. If the cache server 40 does not hold the measurement data, the control unit 301 acquires the measurement data acquired by the field device 10 connected to the IO node 20 from the IO node 20. If the cache server 40 holds the measurement data, the control unit 301 acquires the measurement data acquired by the field device 10 from the cache server 40. The control unit 301 performs a predetermined calculation based on the measurement data received from the IO node 20 or the cache server 40. Therefore, even if the operation timing of the controllers 30 is shifted, all controllers 30 can perform calculations based on the same measurement data at the control timing.

なお、複数のコントローラ30a,30bの各々の制御部301は、制御タイミングごとに、IOノード20又はキャッシュサーバ40から受信した測定データに基づき、演算を行った結果である演算結果をIOノード20へ送信してもよい。IOノード20の制御部201は、制御タイミングごとに、複数のコントローラ30a,30bの各々から受信した演算結果を比較して、複数のコントローラ30a,30bの動作が正常であるか否かを判定してもよい。制御部201は、複数のコントローラ30a,30bの動作が正常であるか否かの判定結果を出力してもよい。このように、制御システム1aは、複数のコントローラ30a,30bの演算結果を比較することで、コントローラ30の異常を検出することができる。また、制御システム1aは、制御タイミング内に演算結果を送信できなかったコントローラ30a,30bの演算結果については、動作が異常であるか否かの判定に使用しないようにすることができる。 The control unit 301 of each of the multiple controllers 30a, 30b may transmit to the IO node 20 a calculation result, which is a result of performing calculations based on the measurement data received from the IO node 20 or the cache server 40, at each control timing. The control unit 201 of the IO node 20 may compare the calculation results received from each of the multiple controllers 30a, 30b at each control timing to determine whether the operation of the multiple controllers 30a, 30b is normal or not. The control unit 201 may output a determination result of whether the operation of the multiple controllers 30a, 30b is normal or not. In this way, the control system 1a can detect an abnormality in the controller 30 by comparing the calculation results of the multiple controllers 30a, 30b. Furthermore, the control system 1a may not use the calculation results of the controllers 30a, 30b that were not able to transmit the calculation results within the control timing to determine whether the operation is abnormal or not.

また、複数のコントローラ30a,30bの各々の制御部301は、IOノード20から、IOノード20に接続されたフィールド機器10が取得した測定データを取得した場合、取得した測定データをキャッシュサーバ40へ送信してもよい。キャッシュサーバ40の制御部401は、複数のコントローラ30a,30bに含まれるコントローラ30から測定データを受信した場合、その受信した測定データを記憶部402に保持させてもよい。したがって、制御システム1aは、最初にキャッシュサーバ40にアクセスしたコントローラ30の測定データをキャッシュして保持させることで、他のコントローラ30がこの測定データに基づき演算を行うことを可能にする。 In addition, when the control unit 301 of each of the multiple controllers 30a, 30b acquires measurement data acquired by a field device 10 connected to the IO node 20 from the IO node 20, the control unit 301 may transmit the acquired measurement data to the cache server 40. When the control unit 401 of the cache server 40 receives measurement data from a controller 30 included in the multiple controllers 30a, 30b, the control unit 401 may store the received measurement data in the memory unit 402. Therefore, the control system 1a caches and stores the measurement data of the controller 30 that first accessed the cache server 40, thereby enabling the other controllers 30 to perform calculations based on this measurement data.

また、キャッシュサーバ40の制御部401は、制御タイミングごとに、測定データを受信したコントローラ30の識別情報を管理テーブル41に記録してもよい。このように、測定データのキャッシュを送信したコントローラ30の識別情報を記録することで、キャッシュデータを送信したコントローラ30を特定することができる。 The control unit 401 of the cache server 40 may also record, for each control timing, in the management table 41, the identification information of the controller 30 that received the measurement data. In this way, by recording the identification information of the controller 30 that sent the cached measurement data, it is possible to identify the controller 30 that sent the cached data.

また、キャッシュサーバ40の制御部401は、制御タイミングごとに、複数のコントローラ30a,30bに含まれるいずれかのコントローラ30(例えば、コントローラ30a)から、フィールド機器10が取得した測定データを保持しているか否かの問合せを初めて受けてからそのコントローラ30aから測定データを受信するまで、他のコントローラ30(例えば、コントローラ30b)からの問合せに対する回答を保留してもよい。具体的には、例えば、図9のステップS1でコントローラ30aから問い合わせを受けてから、ステップS8で測定データをキャッシュに保持するまで、コントローラ30bから問い合わせを受けても(S21)、すぐに回答しないようにしてもよい。これにより、あるコントローラ30aがIOノード20から測定データを取得している間に他のコントローラ30bから問い合わせがあった場合に、他のコントローラ30bもIOノード20にアクセスすることなく、全てのコントローラが同一の測定データを取得することを保証することができる。 The control unit 401 of the cache server 40 may also withhold responses to inquiries from other controllers 30 (e.g., controller 30b) from the time when it first receives an inquiry from one of the controllers 30 (e.g., controller 30a) included in the multiple controllers 30a, 30b as to whether the field device 10 holds the acquired measurement data, until it receives the measurement data from the controller 30a. Specifically, for example, after receiving an inquiry from the controller 30a in step S1 of FIG. 9, even if it receives an inquiry from the controller 30b (S21), it may not immediately respond until the measurement data is held in the cache in step S8. This makes it possible to guarantee that, when a certain controller 30a receives an inquiry from the other controller 30b while the other controller 30b is acquiring measurement data from the IO node 20, all the controllers acquire the same measurement data without the other controller 30b also accessing the IO node 20.

なお、以上の実施形態例においては、キャッシュサーバ40が管理テーブル41を保持している例を説明したが、コントローラ30の各々も、キャッシュサーバ40の管理テーブル41(第1の管理テーブル)と同期して管理された管理テーブル(第2の管理テーブル)を保持するようにしてもよい。このような構成によれば、コントローラ30は、キャッシュサーバ40に問い合わせることなく、測定データの取得先がIOノード20とキャッシュサーバ40のいずれであるかを判定することができる。また、IOノード20が定期的にフィールド機器10から測定データを取得する例を説明したが、このような処理に限られない。例えば、フィールド機器10a,10bがそれぞれ独立に測定データをIOノード20に送信するようにしてもよい。 In the above embodiment, the cache server 40 holds the management table 41, but each controller 30 may hold a management table (second management table) that is managed in synchronization with the management table 41 (first management table) of the cache server 40. With this configuration, the controller 30 can determine whether the measurement data is obtained from the IO node 20 or the cache server 40 without inquiring of the cache server 40. In addition, the IO node 20 periodically obtains measurement data from the field device 10, but the present invention is not limited to this process. For example, the field devices 10a and 10b may each independently transmit measurement data to the IO node 20.

<実施形態2>
実施形態1では、コントローラ30の仮想化部34において測定データの取得先を制御する例を説明したが、ネットワーク(NW)スイッチ等の他の装置が測定データの取得先を制御するようにしてもよい。
<Embodiment 2>
In the first embodiment, an example has been described in which the virtualization unit 34 of the controller 30 controls the acquisition destination of the measured data. However, other devices such as a network (NW) switch may also control the acquisition destination of the measured data.

(制御システム)
図11は、実施形態2に係る制御システム1bの概略構成例を示す図である。制御システム1bは、フィールド機器10(10a,10b)、IOノード20、コントローラ30(30a,30b)、キャッシュサーバ40、ネットワーク50、及び、ネットワークスイッチ60を備える。フィールド機器10(10a,10b)、IOノード20、コントローラ30(30a,30b)、キャッシュサーバ40、及び、ネットワーク50の機能及び構成は、図2の制御システム1aと同様であるため、実施形態1の構成と相違する内容についてのみ説明する。
(Control System)
Fig. 11 is a diagram showing a schematic configuration example of a control system 1b according to the second embodiment. The control system 1b includes field devices 10 (10a, 10b), an IO node 20, a controller 30 (30a, 30b), a cache server 40, a network 50, and a network switch 60. The functions and configurations of the field devices 10 (10a, 10b), the IO node 20, the controller 30 (30a, 30b), the cache server 40, and the network 50 are similar to those of the control system 1a in Fig. 2, so only the differences from the configuration of the first embodiment will be described.

制御システム1bにおいては、キャッシュサーバ40に代えて、又は、キャッシュサーバ40とともに、ネットワークスイッチ60は管理テーブル61を保持する。ネットワークスイッチ60の管理テーブル61は、キャッシュサーバ40の管理テーブル41と同様であり、例えば、図4及び図5に例示した内容と同一の情報を含んでもよい。制御システム1bにおいて、複数のコントローラ30a,30bは、制御タイミングごとに、フィールド機器10が取得した測定データのIOノード20に対する要求をネットワークスイッチ60へ送信する。ネットワークスイッチ60は、管理テーブル61を参照して、キャッシュサーバ40が測定データを保持しているか否かを判定する。ネットワークスイッチ60は、キャッシュサーバ40が測定データを保持していない場合、IOノード20に、IOノード20に接続されたフィールド機器10が取得した測定データを、ネットワークスイッチ60を介してコントローラ30へ送信させる。ネットワークスイッチ60は、IOノード20から受信した測定データをキャッシュサーバ40に送信して保持させる。一方、ネットワークスイッチ60は、キャッシュサーバ40が測定データを保持している場合、キャッシュサーバ40に、フィールド機器10が取得した測定データをコントローラ30へ送信させる。複数のコントローラ30の各々は、IOノード20又はキャッシュサーバ40から受信した測定データに基づき、予め定められた演算を行う。具体的には、ネットワークスイッチ60は、例えば、コントローラ30、IOノード20、及び、キャッシュサーバ40から受信したパケットのIPアドレス等を書き換えることで通信先を切り替えるようにしてもよい。 In the control system 1b, instead of or together with the cache server 40, the network switch 60 holds a management table 61. The management table 61 of the network switch 60 is similar to the management table 41 of the cache server 40, and may include, for example, the same information as the contents exemplified in FIG. 4 and FIG. 5. In the control system 1b, the multiple controllers 30a, 30b transmit requests to the IO node 20 for measurement data acquired by the field device 10 at each control timing to the network switch 60. The network switch 60 refers to the management table 61 to determine whether the cache server 40 holds the measurement data. If the cache server 40 does not hold the measurement data, the network switch 60 causes the IO node 20 to transmit the measurement data acquired by the field device 10 connected to the IO node 20 to the controller 30 via the network switch 60. The network switch 60 transmits the measurement data received from the IO node 20 to the cache server 40 and causes it to hold. On the other hand, if the cache server 40 holds the measurement data, the network switch 60 causes the cache server 40 to transmit the measurement data acquired by the field device 10 to the controller 30. Each of the multiple controllers 30 performs a predetermined calculation based on the measurement data received from the IO node 20 or the cache server 40. Specifically, the network switch 60 may switch the communication destination by, for example, rewriting the IP addresses of packets received from the controller 30, the IO node 20, and the cache server 40.

このような構成によれば、コントローラ30から見ると、同一の装置にアクセスしているように見えながら、実際は、キャッシュの有無に応じて、IOノード20、又は、キャッシュサーバ40から、全コントローラ30へ共通の測定データを取得させることができる。なお、ネットワークスイッチ60を備えた構成においても、アクセス先の切り替えを、ネットワークスイッチ60ではなく、各コントローラ30のアクセス経路制御部32が実行するようにしてもよい。 With this configuration, from the perspective of the controller 30, it appears as if the same device is being accessed, but in reality, common measurement data can be obtained from the IO node 20 or the cache server 40 to all controllers 30 depending on whether or not a cache is present. Note that even in a configuration with a network switch 60, the access destination may be switched by the access path control unit 32 of each controller 30, rather than by the network switch 60.

(ネットワークスイッチ)
図12は、図11のネットワークスイッチ60のハードウェア構成例を示すブロック図である。ネットワークスイッチ60は、1つ又は互いに通信可能な複数のコンピュータ装置である。ネットワークスイッチ60は、例えば、FPGA又はプラント等の制御用に設計された専用コンピュータ等により実現されるが、PC等の汎用の装置により実現されてもよい。図12に示すように、ネットワークスイッチ60は、制御部601、記憶部602、及び、通信部603を備える。ネットワークスイッチ60の制御部601、記憶部602、及び、通信部603は、IOノード20の制御部201、記憶部202、及び、通信部203と同様に実現されるため、詳細な説明を省略する。また、IOノード20と同様に、ネットワークスイッチ60の機能は、本実施形態に係るプログラムを、制御部601に含まれるプロセッサで実行することにより実現されうる。
(Network Switch)
FIG. 12 is a block diagram showing an example of a hardware configuration of the network switch 60 in FIG. 11. The network switch 60 is one or a plurality of computer devices capable of communicating with each other. The network switch 60 is realized, for example, by a dedicated computer designed for controlling an FPGA or a plant, but may be realized by a general-purpose device such as a PC. As shown in FIG. 12, the network switch 60 includes a control unit 601, a storage unit 602, and a communication unit 603. The control unit 601, the storage unit 602, and the communication unit 603 of the network switch 60 are realized in the same manner as the control unit 201, the storage unit 202, and the communication unit 203 of the IO node 20, and therefore detailed description thereof will be omitted. In addition, similar to the IO node 20, the function of the network switch 60 can be realized by executing a program according to this embodiment in a processor included in the control unit 601.

(制御システムの動作)
図13及び図14は、一実施形態に係る制御システム1bの動作例を示すシーケンスチャートである。図13及び図14を参照して説明する制御システム11bの動作は、制御システム1bの制御方法の一つに相当してもよい。図13及び図14の各ステップの動作は、IOノード20の制御部201、コントローラ30の制御部301、キャッシュサーバ40の制御部401、又は、ネットワークスイッチ60の制御部601による制御に基づき実行されてもよい。図13及び図14の処理は、制御タイミングごと、例えば、1秒ごとに実行される。図13及び図14は、ある制御タイミングにおいて、まずコントローラ30aがネットワークスイッチ60にアクセスし、その後、コントローラ30bがネットワークスイッチ60にアクセスしている例を示している。図13は、コントローラ30aが測定データを取得して演算を行う処理を示している。図14は、コントローラ30bが測定データを取得して演算を行う処理を示している。以下、図11のように、制御システム1bは1つのIOノード20を備える例を説明する。
(Control system operation)
13 and 14 are sequence charts showing an example of the operation of the control system 1b according to an embodiment. The operation of the control system 11b described with reference to FIG. 13 and FIG. 14 may correspond to one of the control methods of the control system 1b. The operation of each step in FIG. 13 and FIG. 14 may be executed based on the control by the control unit 201 of the IO node 20, the control unit 301 of the controller 30, the control unit 401 of the cache server 40, or the control unit 601 of the network switch 60. The processing in FIG. 13 and FIG. 14 is executed for each control timing, for example, every second. FIG. 13 and FIG. 14 show an example in which the controller 30a first accesses the network switch 60 at a certain control timing, and then the controller 30b accesses the network switch 60. FIG. 13 shows a process in which the controller 30a acquires measurement data and performs calculations. FIG. 14 shows a process in which the controller 30b acquires measurement data and performs calculations. Hereinafter, an example in which the control system 1b includes one IO node 20 as shown in FIG. 11 will be described.

図13のステップS31において、コントローラ30aの制御部301は、ネットワークスイッチ60に対し、IOノード20に接続されているフィールド機器10の測定データを要求する。例えば、コントローラ30aのアクセス経路制御部32aが要求を行ってもよい。 In step S31 of FIG. 13, the control unit 301 of the controller 30a requests the network switch 60 for measurement data of the field device 10 connected to the IO node 20. For example, the access path control unit 32a of the controller 30a may make the request.

ステップS32において、ネットワークスイッチ60の制御部601は、ステップS31で要求を受けた測定データのキャッシュがキャッシュサーバ40に記憶されているか否かを判定する。例えば、制御部601は、自装置が保持する管理テーブル61を参照し、該当する制御タイミング及びIOノード20について、コントローラ30のアクセスが記録されているか否かを判定して、キャッシュの有無を判定してもよい。図13の例は、ある制御タイミングにおいてコントローラ30aが初めてアクセスした場合を示しているため、制御部601は、キャッシュなしと判定する(ステップS33)。 In step S32, the control unit 601 of the network switch 60 determines whether or not a cache of the measurement data requested in step S31 is stored in the cache server 40. For example, the control unit 601 may refer to the management table 61 held by the device itself and determine whether or not an access by the controller 30 is recorded for the relevant control timing and IO node 20, thereby determining whether or not there is a cache. The example in FIG. 13 shows a case where the controller 30a has accessed for the first time at a certain control timing, so the control unit 601 determines that there is no cache (step S33).

ステップS34において、ネットワークスイッチ60の制御部601は、IOノード20に対して、フィールド機器10の測定データを要求する。例えば、制御部601は、ステップS31でコントローラ30aから受信したパケットのIPアドレス等を書き換えて、測定データの要求をIOノード20へ送信してもよい。 In step S34, the control unit 601 of the network switch 60 requests the IO node 20 for the measurement data of the field device 10. For example, the control unit 601 may rewrite the IP address, etc. of the packet received from the controller 30a in step S31 and send a request for the measurement data to the IO node 20.

ネットワークスイッチ60から測定データの要求を受信すると、ステップS35において、IOノード20の制御部201は、フィールド機器10の測定データを取得する。前述のように、IOノード20は、一定周期(例えば、1秒ごと)でフィールド機器10から測定データを収集し、収集した測定データを記憶部202に記憶させる。そこで、制御部201は、記憶部202から測定データを読み出して、測定データを取得する。なお、制御部201は、ネットワークスイッチ60から測定データの要求を受信したことに応じて、フィールド機器10から測定データを取得してもよい。 When a request for measurement data is received from the network switch 60, in step S35, the control unit 201 of the IO node 20 acquires the measurement data of the field device 10. As described above, the IO node 20 collects measurement data from the field device 10 at regular intervals (e.g., every second) and stores the collected measurement data in the memory unit 202. The control unit 201 then reads out the measurement data from the memory unit 202 to acquire the measurement data. Note that the control unit 201 may acquire the measurement data from the field device 10 in response to receiving a request for measurement data from the network switch 60.

ステップS36において、IOノード20の制御部201は、ステップS35で取得したフィールド機器10の測定データをネットワークスイッチ60へ送信する。 In step S36, the control unit 201 of the IO node 20 transmits the measurement data of the field device 10 acquired in step S35 to the network switch 60.

ステップS37において、ネットワークスイッチ60の制御部601は、フィールド機器10の測定データをIOノード20から受信して取得する。 In step S37, the control unit 601 of the network switch 60 receives and acquires the measurement data of the field device 10 from the IO node 20.

ステップS38において、ネットワークスイッチ60の制御部601は、ステップS37で取得した測定データをコントローラ30aへ送信する。例えば、制御部601は、ステップS36でIOノード20から受信したパケットのIPアドレス等を書き換えて、測定データをコントローラ30aへ送信してもよい。 In step S38, the control unit 601 of the network switch 60 transmits the measurement data acquired in step S37 to the controller 30a. For example, the control unit 601 may rewrite the IP address, etc. of the packet received from the IO node 20 in step S36 and transmit the measurement data to the controller 30a.

ステップS39において、ネットワークスイッチ60の制御部601は、ステップS37で取得した測定データをキャッシュサーバ40へ送信する。 In step S39, the control unit 601 of the network switch 60 transmits the measurement data acquired in step S37 to the cache server 40.

ステップS40において、ネットワークスイッチ60の制御部601は、管理テーブル61を更新する。例えば、制御部401は、対応する制御グループの管理テーブル61において、該当する制御タイミングのIOノード20に対応する項目を、コントローラ30aの識別情報により更新してもよい。 In step S40, the control unit 601 of the network switch 60 updates the management table 61. For example, the control unit 401 may update the item corresponding to the IO node 20 of the relevant control timing in the management table 61 of the corresponding control group with the identification information of the controller 30a.

一方、ステップS41において、コントローラ30aの制御部301は、ステップS38で取得した測定データに基づき、予め定められた演算を行う。例えば、コントローラ30aの制御アプリケーション部21aが演算を行ってもよい。演算内容は、フィールド機器10の種類等に応じて、予め設定されている。 Meanwhile, in step S41, the control unit 301 of the controller 30a performs a predetermined calculation based on the measurement data acquired in step S38. For example, the calculation may be performed by the control application unit 21a of the controller 30a. The content of the calculation is preset according to the type of the field device 10, etc.

ステップS42において、コントローラ30aの制御部301は、ステップS41の処理による演算結果をIOノード20へ送信する。なお、制御システム1bは、ステップS39,S40の前に、ステップS41,S42の処理を実行してもよい。 In step S42, the control unit 301 of the controller 30a transmits the calculation result of the process of step S41 to the IO node 20. Note that the control system 1b may execute the processes of steps S41 and S42 before steps S39 and S40.

コントローラ30aから演算結果を受信すると、ステップS43において、IOノード20の制御部201は、コントローラ30aから受信した演算結果を記憶部202に記憶させて保持する。 When the calculation result is received from the controller 30a, in step S43, the control unit 201 of the IO node 20 stores and retains the calculation result received from the controller 30a in the memory unit 202.

一方、キャッシュサーバ40の制御部401は、フィールド機器10の測定データをネットワークスイッチ60から受信すると、ステップS44において、受信した測定データをキャッシュデータベース45に記憶させるとともに、管理テーブル41を更新する。例えば、制御部401は、対応する制御グループの管理テーブル41において、該当する制御タイミングのIOノード20に対応する項目を、コントローラ30aの識別情報により更新してもよい。 On the other hand, when the control unit 401 of the cache server 40 receives the measurement data of the field device 10 from the network switch 60, in step S44, it stores the received measurement data in the cache database 45 and updates the management table 41. For example, the control unit 401 may update the item corresponding to the IO node 20 of the relevant control timing in the management table 41 of the corresponding control group with the identification information of the controller 30a.

次に、図14のステップS51において、コントローラ30bの制御部301は、ネットワークスイッチ60に対し、IOノード20に接続されているフィールド機器10の測定データを要求する。例えば、コントローラ30bの仮想化部34bが要求を行ってもよい。 Next, in step S51 of FIG. 14, the control unit 301 of the controller 30b requests the network switch 60 for measurement data of the field device 10 connected to the IO node 20. For example, the virtualization unit 34b of the controller 30b may make the request.

ステップS52において、ネットワークスイッチ60の制御部601は、ステップS51で要求を受けた測定データのキャッシュがキャッシュサーバ40に記憶されているか否かを判定する。例えば、制御部601は、管理テーブル61を参照し、該当する制御タイミング及びIOノード20について、コントローラ30のアクセスが記録されているか否かを判定して、キャッシュの有無を判定してもよい。図14の例は、該当する制御タイミングにおいて既にコントローラ30aがアクセスした場合を示しているため、制御部601は、キャッシュありと判定する(ステップS53)。 In step S52, the control unit 601 of the network switch 60 determines whether a cache of the measurement data requested in step S51 is stored in the cache server 40. For example, the control unit 601 may refer to the management table 61 and determine whether an access by the controller 30 has been recorded for the relevant control timing and IO node 20, thereby determining whether a cache exists. The example in FIG. 14 shows a case where the controller 30a has already accessed at the relevant control timing, so the control unit 601 determines that a cache exists (step S53).

そこで、ステップS54において、ネットワークスイッチ60の制御部601は、キャッシュサーバ40に対し、図13のステップS44でキャッシュデータベース45に保持した測定データのキャッシュを要求する。例えば、制御部601は、ステップS51でコントローラ30bから受信したパケットのIPアドレス等を書き換えて、測定データの要求をキャッシュサーバ40へ送信してもよい。具体的には、制御部601は、該当する制御グループのIOノード20の識別情報に対応づけて記憶された、該当する制御タイミングの測定データのキャッシュを要求してもよい。 Therefore, in step S54, the control unit 601 of the network switch 60 requests the cache server 40 to cache the measurement data stored in the cache database 45 in step S44 of FIG. 13. For example, the control unit 601 may rewrite the IP address, etc. of the packet received from the controller 30b in step S51 and send a request for the measurement data to the cache server 40. Specifically, the control unit 601 may request the caching of the measurement data of the corresponding control timing that is stored in association with the identification information of the IO node 20 of the corresponding control group.

ステップS55において、キャッシュサーバ40の制御部401は、ネットワークスイッチ60により要求された測定データのキャッシュをキャッシュデータベース45から取得する。 In step S55, the control unit 401 of the cache server 40 obtains the cache of the measurement data requested by the network switch 60 from the cache database 45.

ステップS56において、キャッシュサーバ40の制御部401は、ステップS55で取得した測定データのキャッシュをネットワークスイッチ60へ送信する。 In step S56, the control unit 401 of the cache server 40 transmits the cache of the measurement data acquired in step S55 to the network switch 60.

ステップS57において、ネットワークスイッチ60の制御部601は、フィールド機器10の測定データのキャッシュをキャッシュサーバ40から受信して取得する。 In step S57, the control unit 601 of the network switch 60 receives and acquires the cache of the measurement data of the field device 10 from the cache server 40.

ステップS58において、ネットワークスイッチ60の制御部601は、ステップS57で取得した測定データのキャッシュをコントローラ30bへ送信する。例えば、制御部601は、ステップS56でキャッシュサーバ40から受信したパケットのIPアドレス等を書き換えて、測定データのキャッシュをコントローラ30bへ送信してもよい。 In step S58, the control unit 601 of the network switch 60 transmits the cache of the measurement data acquired in step S57 to the controller 30b. For example, the control unit 601 may rewrite the IP address of the packet received from the cache server 40 in step S56 and transmit the cache of the measurement data to the controller 30b.

測定データのキャッシュを取得すると、ステップS59において、コントローラ30bの制御部301は、取得した測定データのキャッシュに基づき、予め定められた演算を行う。例えば、コントローラ30bの制御アプリケーション部21bが演算を行ってもよい。演算内容は、コントローラ30aが実行する演算と同一である。 When the cache of measurement data is acquired, in step S59, the control unit 301 of the controller 30b performs a predetermined calculation based on the acquired cache of measurement data. For example, the calculation may be performed by the control application unit 21b of the controller 30b. The content of the calculation is the same as the calculation executed by the controller 30a.

ステップS60において、コントローラ30bの制御部301は、ステップS59の処理による演算結果をIOノード20へ送信する。 In step S60, the control unit 301 of the controller 30b transmits the calculation result obtained by the processing in step S59 to the IO node 20.

コントローラ30bから演算結果を受信すると、ステップS61において、IOノード20の制御部201は、図13のステップS43で保持したコントローラ30aによる演算結果と比較し、コントローラ30a,30bが正常に動作しているか否かを判定する。例えば、制御部201は、コントローラ30a,30bによる演算結果が一致した場合、各コントローラ30a,30bは正常に動作しており、そうでない場合は正常に動作していないと判定してもよい。制御システム1bが3つ以上のコントローラ30を備えている場合も同様に、制御部201は、全てのコントローラ30による演算結果が一致した場合、各コントローラ30は正常に動作しており、そうでない場合は正常に動作していないと判定してもよい。 When the calculation result is received from controller 30b, in step S61, the control unit 201 of the IO node 20 compares it with the calculation result by controller 30a held in step S43 of FIG. 13, and determines whether the controllers 30a, 30b are operating normally. For example, the control unit 201 may determine that each controller 30a, 30b is operating normally if the calculation results by controllers 30a, 30b match, and that each controller is not operating normally if they are not. Similarly, when the control system 1b includes three or more controllers 30, the control unit 201 may determine that each controller 30 is operating normally if the calculation results by all controllers 30 match, and that each controller is not operating normally if they are not.

ステップS62において、IOノード20の制御部201は、ステップS61で判定した結果を出力する。例えば、制御部201は、判定結果をログファイルとして、記憶部202に出力してもよい。あるいは、制御部201は、判定結果を表示装置(ディスプレイ)等に表示させたり、コントローラ30、キャッシュサーバ40、又は、ネットワークスイッチ60等の他の装置へ送信したりしてもよい。制御部201は、ステップS61において正常でないと判定された場合に、このような出力を行うようにしてもよい。 In step S62, the control unit 201 of the IO node 20 outputs the result of the determination made in step S61. For example, the control unit 201 may output the determination result to the memory unit 202 as a log file. Alternatively, the control unit 201 may display the determination result on a display device or the like, or transmit the determination result to another device such as the controller 30, the cache server 40, or the network switch 60. The control unit 201 may perform such output if it is determined in step S61 that the state is not normal.

以上のように、本開示に係る制御システム1a,1bによれば、非同期に動作する複数のコントローラ30間で同じタイミングのデータを取得することができる。したがって、各コントローラ30の動作が高精度に同期していなくても、各コントローラ30の演算結果を比較して、コントローラ30の異常を検出することが可能である。 As described above, according to the control systems 1a and 1b disclosed herein, data at the same timing can be acquired between multiple controllers 30 that operate asynchronously. Therefore, even if the operation of each controller 30 is not synchronized with high precision, it is possible to detect an abnormality in the controller 30 by comparing the calculation results of each controller 30.

また、制御システム1a,1bの手法は、マルチキャスト又はブロードキャスト等におけるpub/sub通信でのパケットの到達保証に応用してもよい。マルチキャスト又はブロードキャストを利用してpub/sub通信を行う場合、通信プロトコルにはUDP(User Datagram Protocol)を使用する。UDPはTCP(Transmission Control Protocol)と異なり送達確認の仕組みがなく、送信されたデータを確実に受信できる保証がない。そのため受信できなかった場合の処理が必要になる。 The techniques of the control systems 1a and 1b may also be applied to guarantee the arrival of packets in pub/sub communication in multicast or broadcast. When pub/sub communication is performed using multicast or broadcast, UDP (User Datagram Protocol) is used as the communication protocol. Unlike TCP (Transmission Control Protocol), UDP does not have a mechanism for confirming delivery, and there is no guarantee that transmitted data can be reliably received. Therefore, processing is required in the event that data cannot be received.

例えば、図2の制御システム1aにおいて、IOノード20が、任意のタイミングでフィールド機器10から測定データを取得し、コントローラ30及びキャッシュサーバ40を含む各ノードへ制御タイミング情報(T001)及び測定データを配布(publish)する場合を考える。この場合、各ノード(コントローラ30a,30b、及び、キャッシュサーバ40)はIOノード20からのデータを待ち受け、受信(subscribe)する。コントローラ30は、制御タイミングT001で使用するノードの測定データを受信できた場合、そのデータを使用して演算を行う。また、コントローラ30は、受信した測定データをキャッシュサーバ40に保持させる。コントローラ30a,30bは、使用する測定データが受信できなかった場合、キャッシュサーバ40にデータ取得要求を送信し、データを取得する。 For example, in the control system 1a of FIG. 2, consider a case where the IO node 20 acquires measurement data from the field device 10 at any timing and distributes (publishes) the control timing information (T001) and the measurement data to each node including the controller 30 and the cache server 40. In this case, each node (controllers 30a, 30b, and cache server 40) waits for and receives (subscribes) data from the IO node 20. If the controller 30 is able to receive the measurement data of the node to be used at the control timing T001, it uses the data to perform calculations. In addition, the controller 30 causes the cache server 40 to hold the received measurement data. If the controllers 30a and 30b are unable to receive the measurement data to be used, they send a data acquisition request to the cache server 40 and acquire the data.

このように、コントローラ30は、制御タイミングにおける測定データを受信できた場合はその測定データに基づき演算を行うとともに、測定データをキャッシュサーバ40に保持させる。コントローラ30は、制御タイミングにおける測定データを受信できなかった場合は、キャッシュサーバ40にアクセスして必要な測定データを取得し、所定の演算を行う。したがって、コントローラ30からIOノード20へアクセスするのではなく、IOノード20からフィールド機器10の測定データをマルチキャスト又はブロードキャストする場合においても、各コントローラ30は、同一の測定データに基づき演算できる。よって、各コントローラ30の演算結果を比較して、コントローラ30の異常を検知することが可能である。 In this way, if the controller 30 receives measurement data at the control timing, it performs calculations based on the measurement data and stores the measurement data in the cache server 40. If the controller 30 does not receive measurement data at the control timing, it accesses the cache server 40 to obtain the necessary measurement data and performs the specified calculations. Therefore, even if the IO node 20 multicasts or broadcasts the measurement data of the field device 10 rather than accessing the IO node 20 from the controller 30, each controller 30 can perform calculations based on the same measurement data. Therefore, it is possible to detect abnormalities in the controller 30 by comparing the calculation results of each controller 30.

本開示は上述の実施形態に限定されるものではない。例えば、ブロック図に記載の複数のブロックは統合されてもよいし、又は1つのブロックは分割されてもよい。フローチャートに記載の複数のステップは、記述に従って時系列に実行する代わりに、各ステップを実行する装置の処理能力に応じて、又は必要に応じて、並列的に又は異なる順序で実行されてもよい。その他、本開示の趣旨を逸脱しない範囲での変更が可能である。 The present disclosure is not limited to the above-described embodiments. For example, multiple blocks shown in the block diagram may be integrated, or one block may be divided. Multiple steps shown in the flowchart may be executed in parallel or in a different order depending on the processing capacity of the device executing each step, or as needed, instead of being executed chronologically as described. Other modifications are possible without departing from the spirit of the present disclosure.

1,1a 制御システム
10 フィールド機器
20 IOノード
21 制御アプリケーション部
22 仮想化部
23 通信制御部
24 アクセス経路制御部
201 制御部
202 記憶部
203 通信部
30 コントローラ
31 制御アプリケーション部
32 仮想化部
33 通信制御部
34 アクセス経路制御部
301 制御部
302 記憶部
303 通信部
40 キャッシュサーバ
41 管理テーブル
42 仮想化部
43 通信制御部
44 アクセス経路制御部
45 キャッシュデータベース
401 制御部
402 記憶部
403 通信部
50 ネットワーク
60 ネットワークスイッチ
61 管理テーブル
601 制御部
602 記憶部
603 通信部
1, 1a Control system 10 Field device 20 IO node 21 Control application unit 22 Virtualization unit 23 Communication control unit 24 Access path control unit 201 Control unit 202 Storage unit 203 Communication unit 30 Controller 31 Control application unit 32 Virtualization unit 33 Communication control unit 34 Access path control unit 301 Control unit 302 Storage unit 303 Communication unit 40 Cache server 41 Management table 42 Virtualization unit 43 Communication control unit 44 Access path control unit 45 Cache database 401 Control unit 402 Storage unit 403 Communication unit 50 Network 60 Network switch 61 Management table 601 Control unit 602 Storage unit 603 Communication unit

Claims (8)

測定データを取得するフィールド機器が接続されたIOノードと、
前記フィールド機器が取得した前記測定データに基づき演算を行う複数のコントローラと、
ネットワークスイッチと、
キャッシュサーバと、
を備え、
前記複数のコントローラの各々は、予め一定の周期で定められた一定期間である制御タイミングごとに、前記フィールド機器が取得した前記測定データに対する要求を前記ネットワークスイッチへ送信し、
前記ネットワークスイッチは、
前記キャッシュサーバが前記測定データを保持していない場合、前記IOノードに、前記ネットワークスイッチを介して、当該IOノードに接続された前記フィールド機器が取得した前記測定データを前記コントローラへ送信させ、
前記キャッシュサーバが前記測定データを保持している場合、当該キャッシュサーバに、前記ネットワークスイッチを介して、前記フィールド機器が取得した前記測定データを前記コントローラへ送信させ、
前記複数のコントローラの各々は、前記IOノード又は前記キャッシュサーバから受信した前記測定データに基づき、予め定められた演算を行う、
制御システム。
an IO node to which a field device for acquiring measurement data is connected;
a plurality of controllers that perform calculations based on the measurement data acquired by the field devices;
A network switch;
A cache server;
Equipped with
each of the plurality of controllers transmits a request for the measurement data acquired by the field device to the network switch at each control timing, which is a fixed period determined in a predetermined cycle;
The network switch includes:
If the cache server does not hold the measurement data, the IO node transmits the measurement data acquired by the field device connected to the IO node to the controller via the network switch;
When the cache server holds the measurement data, the cache server transmits the measurement data acquired by the field device to the controller via the network switch;
Each of the plurality of controllers performs a predetermined calculation based on the measurement data received from the IO node or the cache server.
Control system.
前記ネットワークスイッチは、
前記キャッシュサーバが前記測定データを保持していない場合、前記IOノードに対して前記測定データを要求し、
前記要求に基づき前記IOノードから前記測定データを受信したことに応じて、当該測定データを、前記コントローラへ送信するとともに、前記測定データを前記キャッシュサーバへ送信して前記測定データのキャッシュとして記憶させる、
請求項1に記載の制御システム。
The network switch includes:
If the cache server does not hold the measurement data, the cache server requests the measurement data from the IO node;
In response to receiving the sensed data from the IO node based on the request, transmit the sensed data to the controller, and also transmit the sensed data to the cache server to store the sensed data as a cache.
The control system of claim 1 .
前記ネットワークスイッチは、
前記キャッシュサーバが前記測定データを保持している場合、前記キャッシュサーバに対して前記測定データのキャッシュを要求し、
前記要求に基づき前記キャッシュサーバから前記測定データのキャッシュを受信したことに応じて、当該測定データのキャッシュを前記コントローラへ送信する、
請求項1に記載の制御システム。
The network switch includes:
If the cache server holds the measurement data, a request is made to the cache server to cache the measurement data;
In response to receiving the cached measurement data from the cache server based on the request, transmitting the cached measurement data to the controller.
The control system of claim 1 .
前記ネットワークスイッチは、
前記制御タイミングごとに前記キャッシュサーバが前記測定データを保持しているか否かを示す情報を含む管理テーブルを保持し、
前記複数のコントローラのいずれかから前記測定データに対する前記要求を受けたことに応じて、前記管理テーブルを参照して、前記キャッシュサーバが前記測定データを保持しているか否かを判定する、
請求項1に記載の制御システム。
The network switch includes:
A management table including information indicating whether the cache server holds the measurement data for each of the control timings is held;
in response to receiving the request for the measured data from any one of the plurality of controllers, referring to the management table to determine whether the cache server holds the measured data;
The control system of claim 1 .
前記ネットワークスイッチは、前記制御タイミングごとに、前記測定データを受信した前記コントローラの識別情報を含む情報を前記管理テーブルとして保持する、請求項4に記載の制御システム。 The control system according to claim 4, wherein the network switch holds information including identification information of the controller that received the measurement data as the management table for each control timing. 前記複数のコントローラの各々は、前記制御タイミングごとに、前記ネットワークスイッチを介して受信した前記測定データに基づき、前記演算を行った結果である演算結果を前記IOノードへ送信し、
前記IOノードは、
前記制御タイミングごとに、前記複数のコントローラの各々から受信した前記演算結果を比較して、前記複数のコントローラの動作が正常であるか否かを判定し、
前記複数のコントローラの動作が正常であるか否かの判定結果を出力する、
請求項1に記載の制御システム。
each of the plurality of controllers transmits, at each control timing, a calculation result that is a result of performing the calculation based on the measurement data received via the network switch to the IO node;
The IO node includes:
comparing the calculation results received from each of the plurality of controllers at each of the control timings to determine whether or not the operations of the plurality of controllers are normal;
outputting a determination result as to whether the operation of the plurality of controllers is normal;
The control system of claim 1 .
フィールド機器の制御システムに用いられるネットワークスイッチであって、
前記フィールド機器が取得した測定データに対する要求をコントローラから受信したことに応じて、前記測定データをキャッシュサーバが保持しているか否かの情報を前記キャッシュサーバから取得し、
前記キャッシュサーバが前記測定データを保持していない場合、前記フィールド機器が接続されたIOノードへ、前記測定データに対する要求を送信し、
前記キャッシュサーバが前記測定データを保持している場合、当該キャッシュサーバへ、前記測定データ対する要求を送信する、
ネットワークスイッチ。
A network switch for use in a control system for a field device, comprising:
acquiring, from the cache server, information as to whether or not the cache server holds the measurement data in response to receiving a request for the measurement data acquired by the field device from the controller;
If the cache server does not store the measurement data, a request for the measurement data is sent to an IO node to which the field device is connected;
If the cache server holds the measurement data, a request for the measurement data is sent to the cache server.
Network switch.
測定データを取得するフィールド機器が接続されたIOノードと、
前記フィールド機器が取得した前記測定データに基づき演算を行う複数のコントローラと、
ネットワークスイッチと、
キャッシュサーバと、
を備える制御システムの制御方法であって、
前記複数のコントローラの各々が、予め一定の周期で定められた一定期間である制御タイミングごとに、前記フィールド機器が取得した前記測定データに対する要求を前記ネットワークスイッチへ送信する工程と、
前記ネットワークスイッチが、前記キャッシュサーバが前記測定データを保持していない場合、前記IOノードに、前記ネットワークスイッチを介して、当該IOノードに接続された前記フィールド機器が取得した前記測定データを前記コントローラへ送信させ、前記キャッシュサーバが前記測定データを保持している場合、当該キャッシュサーバに、前記ネットワークスイッチを介して、前記フィールド機器が取得した前記測定データを前記コントローラへ送信させる、工程と、
前記複数のコントローラの各々が、前記IOノード又は前記キャッシュサーバから受信した前記測定データに基づき、予め定められた演算を行う工程と、
を含む、制御システムの制御方法。

an IO node to which a field device for acquiring measurement data is connected;
a plurality of controllers that perform calculations based on the measurement data acquired by the field devices;
A network switch;
A cache server;
A control method for a control system comprising:
each of the plurality of controllers transmitting a request for the measurement data acquired by the field device to the network switch at each control timing, which is a fixed period determined in a predetermined cycle;
a step of causing the IO node to transmit the measurement data acquired by the field device connected to the IO node to the controller via the network switch when the cache server does not hold the measurement data, and causing the cache server to transmit the measurement data acquired by the field device to the controller via the network switch when the cache server holds the measurement data;
Each of the plurality of controllers performs a predetermined calculation based on the measurement data received from the IO node or the cache server;
A control method for a control system comprising:

JP2022210564A 2022-12-27 2022-12-27 CONTROL SYSTEM, CONTROL METHOD OF CONTROL SYSTEM, AND NETWORK SWITCH Active JP7294517B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022210564A JP7294517B1 (en) 2022-12-27 2022-12-27 CONTROL SYSTEM, CONTROL METHOD OF CONTROL SYSTEM, AND NETWORK SWITCH

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022210564A JP7294517B1 (en) 2022-12-27 2022-12-27 CONTROL SYSTEM, CONTROL METHOD OF CONTROL SYSTEM, AND NETWORK SWITCH

Publications (2)

Publication Number Publication Date
JP7294517B1 JP7294517B1 (en) 2023-06-20
JP2024093915A true JP2024093915A (en) 2024-07-09

Family

ID=86772706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022210564A Active JP7294517B1 (en) 2022-12-27 2022-12-27 CONTROL SYSTEM, CONTROL METHOD OF CONTROL SYSTEM, AND NETWORK SWITCH

Country Status (1)

Country Link
JP (1) JP7294517B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186903A (en) * 2010-03-10 2011-09-22 Fuji Electric Co Ltd Remote monitoring device and data access method in the device
JP2013152557A (en) * 2012-01-24 2013-08-08 Nippon Telegr & Teleph Corp <Ntt> Metadata attachment apparatus, metadata attachment method and metadata attachment program
JP2013167922A (en) * 2012-02-14 2013-08-29 Yokogawa Electric Corp Redundant communication system and redundant communication method
JP2021157392A (en) * 2020-03-26 2021-10-07 横河電機株式会社 Control system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186903A (en) * 2010-03-10 2011-09-22 Fuji Electric Co Ltd Remote monitoring device and data access method in the device
JP2013152557A (en) * 2012-01-24 2013-08-08 Nippon Telegr & Teleph Corp <Ntt> Metadata attachment apparatus, metadata attachment method and metadata attachment program
JP2013167922A (en) * 2012-02-14 2013-08-29 Yokogawa Electric Corp Redundant communication system and redundant communication method
JP2021157392A (en) * 2020-03-26 2021-10-07 横河電機株式会社 Control system

Also Published As

Publication number Publication date
JP7294517B1 (en) 2023-06-20

Similar Documents

Publication Publication Date Title
US9825818B2 (en) Device hierarchy building for a remote terminal unit
US10372095B2 (en) Method for the fail-safe operation of a process control system with redundant control devices
US9367261B2 (en) Computer system, data management method and data management program
US9128902B2 (en) Systems and methods for managing disaster recovery in a storage system
CN104980307A (en) Processing method of data access requests, processing device of data access requests and database server
JP2016512373A (en) Providing local cache coherency in a shared storage environment
JP6233403B2 (en) Storage system, storage device, storage device control method and control program, management device, management device control method and control program
US20190229885A1 (en) Computing device and control system
US11003631B2 (en) Apparatus and method for implementing process control redundancy using operating system (OS) file system support
WO2024142593A1 (en) Control system, control method for control system, and controller
JP2024093915A (en) Control system, control method for control system, and network switch
US10203890B1 (en) Multi-tier mechanism to achieve high availability in a multi-controller system
CN116506404A (en) Domain name resolution method, device, computer equipment and storage medium
KR101696911B1 (en) Distributed Database Apparatus and Method for Processing Stream Data Thereof
JP2016058835A (en) Relay system and switch device
US11609809B1 (en) Method and apparatus for the enhanced diagnostic coverage of a secondary device of a redundant controller pair
US12007991B2 (en) Automation device and method for optimized access to a variable
US11316710B2 (en) Control system and control method
CN112882771A (en) Server switching method and device of application system, storage medium and electronic equipment
US20230058281A1 (en) Control System and Method for Fine-Grained Reconciliation of Local Archives in Master/Master Scenarios of Servers of a Technical Installation
JP4722724B2 (en) Supervisory control system
CN117319276A (en) Equipment monitoring method, device, equipment and storage medium
JP2006155398A (en) Method and device for mediating data
JP2023545095A (en) Failover mechanism for IoT gateways
CN119149341A (en) A monitoring method and device for MongoDB database cluster instance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230105

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230405

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: 20230509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230522

R150 Certificate of patent or registration of utility model

Ref document number: 7294517

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150