JP2022027047A - Control system - Google Patents
Control system Download PDFInfo
- Publication number
- JP2022027047A JP2022027047A JP2020130818A JP2020130818A JP2022027047A JP 2022027047 A JP2022027047 A JP 2022027047A JP 2020130818 A JP2020130818 A JP 2020130818A JP 2020130818 A JP2020130818 A JP 2020130818A JP 2022027047 A JP2022027047 A JP 2022027047A
- Authority
- JP
- Japan
- Prior art keywords
- information
- program
- control
- application
- shared
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 claims abstract description 142
- 238000013507 mapping Methods 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims description 52
- 238000013506 data mapping Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 12
- 230000010365 information processing Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 description 19
- 238000007726 management method Methods 0.000 description 16
- 230000002093 peripheral effect Effects 0.000 description 10
- 102220187652 rs138914132 Human genes 0.000 description 7
- 102220480290 Copper-transporting ATPase 2_F37A_mutation Human genes 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 230000000052 comparative effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
Description
本発明は、概して、コントロールシステムに関する。 The present invention generally relates to a control system.
コントロールシステムに関し、例えば特許文献1に開示のシステムが知られている。特許文献1は、「本分散型監視制御システムは、プラントの監視制御設備における監視用パーソナルコンピュータ(PC)と制御用プログラマブルロジックコントローラ(PLC)をネットワークで接続した分散型監視制御システムにおいて、監視用汎用PC10aに制御用汎用PLC20aの情報管理ファイル13aを設け、汎用PLC20aに、この汎用PLC20aの情報自動掃出ツール29aを設けて、汎用PC10aに入力された情報と汎用PLC20aのプロセス情報を汎用ソフトウェアで統合管理する。」を開示する。
Regarding the control system, for example, the system disclosed in
従来のコントロール装置は、少なくとも一つの制御プログラムが配置された演算装置である。一般に、コントロール装置の役割は、制御プログラムを周期的に実行することで、制御対象装置を遅延無く制御することにある。演算装置は、プロセッサ及びメモリといったハードウェア資源を有するが、役割を担うのに必要なハードウェア資源は、一般的な計算機のハードウェア資源に比べて少なくて済むため、通常、コントロールシステムの構成要素とされる演算装置のハードウェア資源の量は、一般的な計算機に比べて少ない。制御対象装置は、典型的には産業機器であり、産業機器は、一般的な計算機に比べて工場等の製造ラインで長期間動作されることが期待されるため、CPU等の冷却に用いるファン等を搭載できない等の制約があるからである。 The conventional control device is an arithmetic unit in which at least one control program is arranged. Generally, the role of the control device is to control the controlled device without delay by executing the control program periodically. Arithmetic logic units have hardware resources such as processors and memory, but the hardware resources required to play a role are usually less than the hardware resources of general computers, so they are usually components of control systems. The amount of hardware resources of the arithmetic unit, which is said to be, is smaller than that of a general computer. The controlled device is typically an industrial device, and since the industrial device is expected to operate for a long period of time in a production line such as a factory as compared with a general computer, a fan used for cooling a CPU or the like. This is because there are restrictions such as not being able to mount such equipment.
制御対象装置の制御に必要な情報(例えば、センサによる測定値)を取得するための通信を制御プログラムによる制御の一部とすること(すなわち、通信について制御プログラムに記述されていること)が考えられるが、通信のような情報処理は制御プログラムによる制御とは分離しておくことが望ましいと考えられる。そのように考えられる1つの理由は、コントロール装置の制御対象装置は、一般に、工作機械、自動組み立て装置又は自動搬送装置のような自動機械や生産設備であるため、高い安定性、つまりリアルタイム性が求められるためである。 It is conceivable that the communication for acquiring the information necessary for controlling the controlled device (for example, the measured value by the sensor) is a part of the control by the control program (that is, the communication is described in the control program). However, it is desirable to separate information processing such as communication from the control by the control program. One reason for such consideration is that the controlled target device of the control device is generally an automatic machine or a production facility such as a machine tool, an automatic assembly device or an automatic transfer device, so that high stability, that is, real-time performance is achieved. This is because it is required.
そこで、制御プログラムに加えて、通信のような情報処理について記述されたプログラムである情報プログラムを用意しておくことが考えられる。 Therefore, in addition to the control program, it is conceivable to prepare an information program which is a program describing information processing such as communication.
制御プログラムは、予め指定された制御周期毎にスキャン処理を行う。「スキャン処理」は、I/O(Input/Output)ポートに接続された機器の情報を読み込むことと、読み込んだ情報を演算することと、演算した情報を書き込むこととを含んだ処理である。スキャン処理に要する時間であるスキャンタイムと、スキャンタイム以外の時間である待機時間とで構成された時間を、「制御周期」(又は「制御プログラムの処理周期」)という。 The control program performs scanning processing at each control cycle specified in advance. The "scan process" is a process including reading information of a device connected to an I / O (Input / Output) port, calculating the read information, and writing the calculated information. The time composed of the scan time, which is the time required for the scan process, and the standby time, which is the time other than the scan time, is referred to as a "control cycle" (or "control program processing cycle").
情報プログラムは、制御プログラムの処理周期とは異なる処理周期で動作することもできるし、必ずしも周期的に動作しなくてもよい。また、情報プログラムは、制御プログラムの処理周期のうちの待機時間(例えば、制御プログラムがハードウェアリソースを利用していない時間)に、当該情報プログラムの処理を実行することもできる。 The information program may or may not operate in a processing cycle different from that of the control program, and may not necessarily operate periodically. Further, the information program can also execute the processing of the information program during the waiting time (for example, the time when the control program is not using the hardware resource) in the processing cycle of the control program.
リアルタイム性を維持するために制御プログラムを優先するべく、演算装置をコントロールシステムに増設し、増設された演算装置で情報プログラムを実行することが考えられる。この場合、制御プログラムが実行される演算装置とは別の演算装置で情報プログラムが実行されるので、当該情報プログラムは、制御プログラムの待機時間以外の時間、例えば、スキャン処理が行われている時間に、処理を行ってもよい。 In order to give priority to the control program in order to maintain real-time performance, it is conceivable to add an arithmetic unit to the control system and execute the information program with the added arithmetic unit. In this case, since the information program is executed by an arithmetic unit different from the arithmetic unit in which the control program is executed, the information program is used for a time other than the standby time of the control program, for example, the time during which the scan process is performed. In addition, processing may be performed.
制御プログラムが実行される演算装置と別の演算装置で情報プログラムが実行される場合、制御プログラムと情報プログラム間の通信媒体は、演算装置の外部の通信媒体(例えば、外部バスや通信ネットワーク)である。 When the information program is executed by the arithmetic unit on which the control program is executed and another arithmetic unit, the communication medium between the control program and the information program is a communication medium outside the arithmetic unit (for example, an external bus or a communication network). be.
一方、資源節約の観点から、制御プログラムと情報プログラムの両方を一つの演算装置で実行することが考えられる。この場合、制御プログラムと情報プログラム間の通信媒体は、演算装置の内部の通信媒体(例えば、メモリ)である。 On the other hand, from the viewpoint of resource saving, it is conceivable to execute both the control program and the information program in one arithmetic unit. In this case, the communication medium between the control program and the information program is the communication medium (for example, memory) inside the arithmetic unit.
プログラム間の通信媒体の種類が変更されるシステム構成変更(例えば、演算装置の増設又は減設に伴いプログラムの配置先の演算装置を変更すること、及び、演算装置の接続先の通信媒体の種類を変更することの少なくとも一つ)を、柔軟に行えることが望ましい。 The type of communication medium between programs is changed. System configuration changes (for example, changing the arithmetic unit to which the program is placed due to the addition or decrease of arithmetic units, and the type of communication medium to which the arithmetic unit is connected are changed. It is desirable to be able to flexibly perform at least one of the changes).
しかし、プログラム間の通信(データ共有)の実現のためには、プログラム間の通信媒体の種類に依存した種々の要素(例えば、共有メモリ名、IPアドレス、プロトコル種類、バス番号)を考慮した設定を、当該通信を行う各プログラムに行う必要がある。故に、システム構成変更がされると、プログラムの作り直し(例えば、コード修正)が必要である。 However, in order to realize communication (data sharing) between programs, settings that take into consideration various factors (for example, shared memory name, IP address, protocol type, bus number) depending on the type of communication medium between programs. It is necessary to perform this for each program that performs the communication. Therefore, when the system configuration is changed, it is necessary to recreate the program (for example, modify the code).
このため、リアルタイム性を必要とする制御を行うコントロールシステムについて、プログラム間の通信媒体の種類が変更されるシステム構成変更を柔軟に行うことができない。特許文献1は、リアルタイム性を必要とする制御を行うコントロールシステムについてそのようなシステム構成変更を行う方法を開示も示唆もしていない。
For this reason, it is not possible to flexibly change the system configuration in which the type of communication medium between programs is changed for a control system that performs control that requires real-time performance.
一つ又は複数の制御対象装置を制御するコントロールシステムが、それぞれがインターフェース装置、記憶装置及びそれらに接続されたプロセッサを有する一つ又は複数の演算装置を備える。一つ又は複数の演算装置が、一つ又は複数の制御プログラムと、一つ又は複数の情報プログラムと、一つ又は複数の共有インターフェースとを有する。一つ又は複数の制御プログラムの各々について、当該制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムであり、当該制御プログラムについて設定される情報である第1の設定情報は、当該制御プログラムと当該制御プログラムの通信相手としての一つ以上の情報プログラムの各々との間の通信媒体の種類に依存しない情報である。一つ又は複数の情報プログラムの各々について、当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムであり、当該情報プログラムについて設定される情報である第2の設定情報は、当該情報プログラムと当該情報プログラムの通信相手としての一つ以上の制御プログラムの各々との間の通信媒体の種類に依存しない情報である。一つ又は複数の演算装置の各々において、第1のプログラム(制御プログラム又は情報プログラム)が、当該演算装置における共有インターフェースに対して、当該第1のプログラムについての設定情報中の情報を引数としてI/O(Input/Output)指定を行う。当該共有インターフェースが、当該I/O指定に応答して、当該I/O指定の引数に対応した情報を、通信媒体種類に依存した情報を含んだ情報であるマッピング情報から特定し、当該特定された情報を基に、当該第1のプログラムと第2のプログラム(当該第1のプログラムの通信相手としての制御プログラム又は情報プログラム)との間の通信媒体の種類に依存したI/Oを行う。 A control system that controls one or more controlled devices comprises one or more arithmetic units, each having an interface device, a storage device, and a processor connected to them. One or more arithmetic units have one or more control programs, one or more information programs, and one or more shared interfaces. For each of the one or a plurality of control programs, the control program performs a scan process, which is a process of controlling the device to be controlled and has real-time performance, at each control cycle defined for the control program. The first setting information, which is a program performed within the program and is information set about the control program, is a communication medium between each of the control program and one or more information programs as communication partners of the control program. Information that does not depend on the type of. For each of the one or more information programs, the information program is a program that performs information processing defined for the information program, and the second setting information, which is the information set for the information program, is the information. Information that does not depend on the type of communication medium between the program and each of the one or more control programs as communication partners of the information program. In each of the one or more arithmetic units, the first program (control program or information program) takes the information in the setting information about the first program as an argument to the shared interface in the arithmetic apparatus. Specify / O (Input / Output). In response to the I / O designation, the shared interface identifies the information corresponding to the argument of the I / O designation from the mapping information which is the information including the information depending on the communication medium type, and is specified. Based on the information obtained, I / O depending on the type of communication medium between the first program and the second program (control program or information program as a communication partner of the first program) is performed.
本発明によれば、リアルタイム性を必要とする制御を行うコントロールシステムについて、プログラム間の通信媒体の種類が変更されるシステム構成変更を、柔軟に行うことができる。 According to the present invention, it is possible to flexibly change the system configuration in which the type of communication medium between programs is changed for a control system that performs control that requires real-time performance.
本発明の一実施形態に係る産業用のコントロールシステムは、一つ以上の産業用のコントロール装置を備える。当該コントロールシステムは、典型的には、更に、コントロール装置とハードウェアリソース(例えば、コントロール装置のI/Oポート)を共有し制御プログラムまたは情報プログラムを配置する拡張装置を備えることができる。また、本発明の一実施形態に係るコントロール装置は、ハードウェアリソースを共有可能な拡張装置の情報を取得し、コントロール装置及び共有された拡張装置に制御プログラムまたは情報プログラムを配置してよい。拡張装置は、必ずしもコントロール装置のハードウェアリソースを共有可能でなくてもよい。例えば、コントロール装置が接続されているバスに接続された拡張装置は、コントロール装置のハードウェアリソースを共有可能でよく、コントロール装置が接続されている通信ネットワークに接続された拡張装置は、コントロール装置のハードウェアリソースを共有可能でなくてよい。コントロール装置も拡張装置も演算装置の一例である。 The industrial control system according to an embodiment of the present invention includes one or more industrial control devices. The control system can typically further include an expansion device that shares hardware resources (eg, the I / O port of the control device) with the control device and deploys a control program or information program. Further, the control device according to the embodiment of the present invention may acquire information on an expansion device that can share hardware resources, and may arrange a control program or an information program in the control device and the shared expansion device. The expansion device does not necessarily have to be able to share the hardware resources of the control device. For example, an expansion device connected to a bus to which a control device is connected may be able to share the hardware resources of the control device, and an expansion device connected to a communication network to which the control device is connected may be a control device. Hardware resources do not have to be shareable. Both the control device and the expansion device are examples of arithmetic units.
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、一つ以上の同種の通信インターフェースデバイスであってもよいし二つ以上の異種の通信インターフェースデバイスであってもよい。 In the following description, the "interface device" may be one or more interface devices. The one or more interface devices may be one or more similar communication interface devices or two or more different types of communication interface devices.
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。 Further, in the following description, the "memory" is one or more memory devices, and may be typically a main storage device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。 Further, in the following description, the "permanent storage device" is one or more permanent storage devices. The permanent storage device is typically a non-volatile storage device (for example, an auxiliary storage device), and specifically, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。 Further, in the following description, the "storage device" may be at least a memory of a memory and a permanent storage device.
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサモジュールである。少なくとも一つのプロセッサモジュールは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスであるが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサモジュールは、プロセッサコアでもよい。 Also, in the following description, a "processor" is one or more processor modules. The at least one processor module is typically a microprocessor device such as a CPU (Central Processing Unit), but may be another type of processor device such as a GPU (Graphics Processing Unit). At least one processor device may be single-core or multi-core. At least one processor module may be a processor core.
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。 Further, in the following description, the process may be described with "program" as the subject, but the program is executed by the processor to appropriately perform the specified process in the storage device and / or the interface device and the like. The subject of the process may be a processor (or a device such as a controller having the processor) because it is performed while using it. The program may be installed from the program source into a device such as a calculator. The program source may be, for example, a program distribution server or a computer-readable (eg, non-temporary) recording medium. Further, in the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。 Further, in the following description, the function may be described by the expression of "yy part", but the function may be realized by executing one or more computer programs by the processor. When the function is realized by executing the program by the processor, the specified processing is appropriately performed by using the storage device and / or the interface device, so that the function may be at least a part of the processor. good. The process described with the function as the subject may be a process performed by a processor or a device having the processor. The description of each function is an example, and a plurality of functions may be combined into one function, or one function may be divided into a plurality of functions.
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。 Further, in the following description, information that can be output with respect to an input may be described by an expression such as "xxx table", but the information may be data of any structure (for example, structure). It may be structured data or unstructured data), or it may be a learning model such as a neural network that produces an output for an input. Therefore, the "xxx table" can be referred to as "xxx information". Further, in the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or a part of two or more tables may be one table. You may.
また、以下の説明では、識別情報の一例として、ID、名前及び番号のいずれかが採用されるが、識別情報は、ID、名前及び番号のうちの少なくとも一つに代えて又は加えて、他種の要素を含んでもよい。 Further, in the following description, any one of ID, name and number is adopted as an example of the identification information, but the identification information is used in place of or in addition to at least one of the ID, name and number. It may contain seed elements.
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別して説明する場合には、参照符号を使用することがある。 Further, in the following description, the common part of the reference symbols may be used when the same type of elements are not distinguished, and the reference code may be used when the same type of elements are described separately. be.
また、以下の説明では、制御プログラムの一例が、制御アプリであり、情報プログラムの一例が、情報アプリである。「アプリ」は、アプリケーションプログラムの略である。 Further, in the following description, an example of a control program is a control application, and an example of an information program is an information application. "App" is an abbreviation for application program.
図1は、実施形態に係るコントロールシステムを含むシステムの物理構成の一例を示す。 FIG. 1 shows an example of a physical configuration of a system including a control system according to an embodiment.
コントロールシステム109が、制御対象装置12がある工場10に設置される。制御対象装置12は、例えば、産業用モータやコンプレッサのような産業機器である。工場10は、制御対象装置12のある現場の一例である。
The
管理システム101及びコントロールシステム109が、通信ネットワーク108(例えば、インターネット又はWAN(Wide Area Network))に接続されている。コントロールシステム109は、例えば、工場10内の通信ネットワーク19(例えば、LAN(Local Area Network))に接続されている。コントロールシステム109が、通信ネットワーク19及び108経由で管理システム101と通信できる。通信ネットワーク108及び19は、情報アプリが行う情報通信処理(制御アプリがスキャン処理において制御対象装置12に制御データを送信する処理とは異なる通信処理)の際に使用される通信ネットワークである。
The
コントロールシステム109及び一つ以上のI/Oモジュール119(I/Oポートの一例)が通信ネットワーク118(例えば、イーサネット(登録商標))に接続されている。通信ネットワーク118は、制御アプリが行う制御処理において制御データを制御対象装置12に送信するために使用される通信ネットワークである。
A
通信ネットワーク19、108及び118は、それぞれ異なるネットワークでもよいし、通信ネットワーク19、108及び118のうちの二つ以上の通信ネットワークが同一のネットワークでもよい。
The communication networks 19, 108 and 118 may be different networks, or two or more of the
一つ以上のI/Oモジュール119に一つ以上の周辺機器120が接続されている。周辺機器120は、センサやメディアドライブ(例えば、HDDやSSD)のような機器でよい。I/Oモジュール119は、周辺機器120が必要に応じて着脱可能に装着されるバススロットとして機能する。制御対象装置12は、周辺機器120経由又は非経由でI/Oモジュール119に接続される。制御対象装置12とI/Oモジュール119は、1:1、1:多、多:1及び多:多のいずれでもよい。また、一部のI/Oモジュール119は、通信ネットワーク118に加えて通信ネットワーク108に接続されてもよい、すなわち、当該一部のI/Oモジュール119は、制御アプリと情報アプリに共有のデバイスであってもよい。また、少なくとも一つのI/Oモジュール119は、少なくとも一つの演算装置40のネットワークI/F装置及びI/O制御装置の少なくとも一部でもよい。
One or more
管理システム101は、コントロールシステム109の上位システムの一例である。管理システム101は、EPROM201、CPU202、メインメモリ203、周辺制御装置205、不揮発性記憶装置206及びネットワークI/F装置207を備える。管理システム101は、ネットワークI/F装置207を介して通信ネットワーク108に接続されている。
The
コントロールシステム109は、一つ又は複数の演算装置40を備える。各演算装置40が、インターフェース装置、記憶装置及びそれらに接続されたプロセッサを備える。全ての演算装置40は、ハードウェア構成が同じでも異なっていてもよい。いずれの演算装置40も、制御アプリの配置先にも情報アプリの配置先にもなり得てよい。本実施形態では、演算装置40Mは、メインの演算装置であり、制御アプリの配置先であり、且つ、情報アプリの配置先となり得る演算装置である。演算装置40E1及び40E2の各々が、増設された演算装置であり、制御アプリの配置先となり得ず、情報アプリの配置先となり得る演算装置である。演算装置40Eは、減設されてもよい。言い換えれば、演算装置40M単体が、コントロールシステム109になることがあってもよい。以下、演算装置40Mを「コントロール装置40M」と言い、演算装置40Eを「拡張装置40E」と言うことがある。
The
拡張装置40Eが有るか否か、拡張装置40Eがいずれの種類の通信媒体に接続されるか、及び、制御アプリと通信する情報アプリがいずれの演算装置40に配置されるかによって、コントロールシステム109のシステム構成が異なる。つまり、システム構成は、拡張装置40Eの有無、コントロール装置40M及び拡張装置40Eの各々が接続される通信媒体の種類、及び、各アプリの配置先の演算装置40に依存する。図1の例では、拡張装置40E1は、通信ネットワーク118に接続される。拡張装置40E2は、PIOバス28(バスの一例)に接続される(「PIO」は、Programmed I/Oの略である)。PIOバス28は、ベースボードにプリントされたバスでよく、ベースボードにコントロール装置40Mと拡張装置40E2が接続されていることで、コントロール装置40Mで実行される制御アプリと拡張装置40E2で実行される情報アプリがPIOバス28経由でデータを通信(共有)してよい。
The
なお、制御アプリが拡張装置40Eにも配置可能な実施形態、或いは、いずれの演算装置40も拡張又は減設が可能でありいずれの演算装置40も制御アプリの配置先となり得る実施形態では、システム構成は、制御アプリにも依存する。 In the embodiment in which the control application can be arranged in the expansion device 40E, or in the embodiment in which any arithmetic unit 40 can be expanded or reduced and any arithmetic unit 40 can be an arrangement destination of the control application, the system. The configuration also depends on the control app.
コントロール装置40Mを例に取り演算装置40のハードウェア構成を説明すると、例えば次の通りである。すなわち、コントロール装置40Mは、メモリ169(例えば、EPROM208及びメインメモリ210)、周辺制御装置212、I/O制御装置214、不揮発性記憶装置215、ネットワークI/F装置213、及び、それらに接続されたCPU209を備えている。I/O制御装置214及びネットワークI/F装置213が、インターフェース装置の一例である。メモリ169及び不揮発性記憶装置215が、記憶装置の一例である。CPU209がプロセッサの一例である。
Taking the
周辺制御装置212は、ネットワークI/F装置213、I/O制御装置214、不揮発性記憶装置215及びバス211に接続されている。このバス211には、その他にもメモリ169及びCPU209が接続されている。
The
EPROM208には、予め制御アプリ及び情報アプリの少なくとも一つが格納されていてもよいし、プログラム配布サーバ(図示せず)のようなプログラムソースからダウンロードされたプログラムが格納されてもよい。コントロールシステム109に搭載される制御アプリと情報アプリはそれぞれひとつずつだけでなく、コントロールシステム109が使用できるリソースをプログラムごとに設定することにより、複数の制御アプリ及び/又は複数の情報アプリを搭載することができる。
At least one of the control application and the information application may be stored in the
CPU209は、EPROM208に格納されている制御アプリ(及び情報アプリ)をメインメモリ210に読み出して実行し、制御アプリ(及び情報アプリ)の動作を制御する。例えば、CPU209は、制御アプリを実行することで、周辺制御装置212、I/O制御装置214及び複数のI/Oモジュール119を介して複数の周辺機器120を制御する。周辺機器120は、I/Oモジュール119に1:1で対応付けられていてよい。また、CPU209は、シングルコアとマルチコアのいずれでもよい。一つのコアが、一つ以上の制御アプリと一つ以上の情報アプリとのうちの少なくとも一つのアプリを実行してよい。典型的には、一つのコアは、一つの制御アプリ、一つの制御アプリと一つ以上の情報アプリ、又は、一つ以上の情報アプリを実行してよい。
The
設定端末29が、通信ネットワーク19を介して(又は通信ネットワーク19を介さずに)、コントロールシステム109(例えば、コントロール装置40M)に接続されている。設定端末29は、例えば、入力デバイス、表示デバイス、インターフェース装置、記憶装置及びそれらに接続されたプロセッサを有する計算機(例えば、デスクトップ型、ラップトップ型又はタブレット型のパーソナルコンピュータ、或いは、スマートフォン)である。設定端末29は、コントロールシステム109に対する指示や設定を行ってよい。設定端末29は、管理システム101の一部であってもよい。
The setting
図2は、コントロールシステム109の論理構成の一例を示す。
FIG. 2 shows an example of the logical configuration of the
図2が例示するコントロールシステム109は、複数の演算装置40の一例として、コントロール装置40Mと、拡張装置40E1及び40E2とを有する。
The
コントロール装置40Mは、共有メモリ56を有する。共有メモリ56は、メモリ169が有する記憶領域のうちの少なくとも一部である。図示しないが、拡張装置40E1及び40E2の少なくとも一つにおいても、共有メモリが存在してよい。
The
拡張装置40E1は、コントロール装置40Mが接続されているバックボード17に接続されている演算装置である。コントロール装置40Mと拡張装置40E1間の通信媒体は、バックボード17に設けられているPIOバス28である。
The expansion device 40E1 is an arithmetic unit connected to the backboard 17 to which the
拡張装置40E2は、コントロール装置40Mが接続されている通信ネットワーク118に接続されている演算装置である。コントロール装置40Mと拡張装置40E2間の通信媒体は、通信ネットワーク118である。
The expansion device 40E2 is an arithmetic unit connected to the
このように、本実施形態では、コントロールシステム109は、アプリ間のデータ共有に共有メモリ56、PIOバス28及び通信ネットワーク118といった複数種類の通信媒体を利用することができる。
As described above, in the present embodiment, the
PIOバス28を介した通信を行う演算装置40は、PIOバス制御61というPIOバス28用のI/Fを有する。PIOバス制御61は、図3に例示するように、バスI/F301、バスドライバ302及びバスHW303を含む。バスI/F301は、PIOバス28に対するソフトウェアI/Fである。バスドライバ302は、PIOバス28経由のデータ共有(通信)を制御するソフトウェアである。バスHW303は、PIOバス28経由のデータ共有(通信)を制御するハードウェア(例えば、FPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))である。バスHW303は、例えばI/O制御装置214(図1参照)の少なくとも一部でよい。
The arithmetic unit 40 that communicates via the
通信ネットワーク(例えば通信ネットワーク118)を介した通信を行う演算装置40は、ネットワーク制御62という通信ネットワーク用のI/Fを有する。ネットワーク制御62は、図4に例示するように、ネットワークI/F401、ネットワークドライバ402及びネットワークHW403を含む。ネットワークI/F401は、通信ネットワークに対するソフトウェアI/Fである。通信ネットワークの種類毎にネットワークドライバ402及びネットワークHW403が存在する。一つの種類の通信ネットワーク(この段落において「対象ネットワーク」)を例に取る。ネットワークドライバ402は、対象ネットワーク経由のデータ共有(通信)を制御するソフトウェアである。ネットワークHW403は、対象ネットワーク経由のデータ共有(通信)を制御するハードウェアである。ネットワークHW403は、例えばネットワークI/F装置213(図1参照)の少なくとも一部でよい。
The arithmetic unit 40 that performs communication via a communication network (for example, communication network 118) has an I / F for a communication network called a
コントロール装置40Mが、WEBサーバ69を実行する。WEBサーバ69は、WEBサーバとして機能するためのプログラムである。WEBサーバ69が、管理システム101及び設定端末29のうちの少なくとも一つと通信する。例えば、WEBサーバ69が、設定端末29から種々の指示や設定を受け付けるユーザインターフェースプログラムの一例である。WEBサーバ69は、コントロール装置40Mに代えて又は加えて、少なくとも一つの拡張装置40Eで実行されてもよい。
The
管理システム101の不揮発性記憶装置206(記憶装置の一例)が、VCPU管理情報73を記憶する。VCPU管理情報73は、例えば、VCPU毎にVCPUイメージとVCPUのIDとを含む。「VCPU」は、仮想CPUを意味し、アプリの実行環境の一例である。VCPUは、例えば、VM(仮想マシン)又はコンテナでよい。
The non-volatile storage device 206 (an example of the storage device) of the
管理システム101が、配布部72を有する。配布部72は、VCPUイメージを通信ネットワーク108経由で演算装置40に配布する。演算装置40では、当該VCPUイメージを基に、VCPU37が生成される。VCPU37が、一つ以上のアプリ(本実施形態では、制御アプリ41及び情報アプリ42のいずれか)を実行する。VCPU37が実現された後に、当該VCPU37にアプリが配布部72により配布されてもよいし、VCPUイメージが、アプリのイメージを含んでいて、VCPUイメージを基に、アプリを含んだVCPUが実現されてもよい。図2が示す例では、コントロール装置40MにVCPU37A及び37Bが配布され、拡張装置40E1にVCPU37Cが配布され、拡張装置40E2にVCPU37Dが配布される。VCPU37Aが、制御アプリ41を実行する。VCPU37Bが、情報アプリ42Aを実行する。VCPU37Cが、情報アプリ42Bを実行する。VCPU37Dが、情報アプリ42Cを実行する。
The
情報アプリ42は、当該情報アプリ42に定められた情報処理を行うアプリである。
The
制御アプリ41は、当該制御アプリ41について定められた制御周期毎に、制御対象装置12を制御する処理でありリアルタイム性を有する処理であるスキャン処理(I/Oポートに接続された機器の情報を読み込むことと、読み込んだ情報を演算することと、演算した情報を書き込むこととを含んだ処理)を行う。スキャン処理に要する時間を「スキャンタイム」と言う。制御周期は、スキャンタイムと、スキャンタイム以外の時間である待機時間とで構成される。例えば、コントロールシステム109が、コントロール装置40M単体であり、コントロール装置40Mに制御アプリ41と一つ以上の情報アプリ42があり、且つ、CPU209がシングルコアの場合には、制御周期中の待機時間に、一つ以上の情報アプリ42の少なくとも一つが実行される。一方、例えば下記のうちのいずれかのケースでは、スキャンタイム中に(言い換えれば、待機時間でなくても)、少なくとも一つの情報アプリ42が実行されてよい。
・CPU209がマルチコアであり、CPU209が、制御アプリ41が専有していないCPUコアを有する場合。
・コントロール装置40Mが、複数のCPU209を有し、それら複数のCPU209が、制御アプリ41に専有されていないCPU209を含む場合。
・拡張装置40Eがあり、拡張装置40Eに情報アプリ42が配置されている場合。
The
-When the
-When the
-When there is an expansion device 40E and the
さて、VCPU37にてアプリを実行することで、一つの演算装置40(図2が示す例では、コントロール装置40M)にて、制御の信頼性を落とさずに、制御アプリ41と情報アプリ42の両方を実行することができる。
By executing the application on the
しかし、VCPU37にてアプリが実行されるシステムでは、アプリ間のデータ共有が難しい。アプリ間で、お互いのVCPU37の計算リソースを認識することができないためである。
However, in a system in which the application is executed by the
一比較例によれば、異なるVCPU上のアプリ間でのデータ共有を実現するためには、制御アプリと情報アプリのいずれについても、アプリ開発者が、当該アプリがいずれの種類の通信媒体経由でデータ共有を行うかを予め決定し、当該通信媒体の種類に従う情報でありデータ共有に必要な情報を、アプリに設定する必要がある。アプリに設定される情報を、便宜上、「設定情報」と言う。一比較例において、設定情報の具体例は、次の通りである。すなわち、通信媒体の種類が共有メモリの場合、設定情報は、共有メモリの名前を表す情報と、共有データ(共有対象のデータ)のデータ項目の名前を表す情報とを含む。通信媒体の種類がバスの場合、設定情報は、バス番号(例えば、レジスタアドレス)を表す情報と、共有データのデータ項目の名前を表す情報とを含む。通信媒体の種類が通信ネットワークの場合、設定情報は、宛先(例えば、IPアドレス及びポート番号)を表す情報と、プロトコル種類(例えば、HTTP、Modbus/TCP)を表す情報と、共有データのデータ項目の名前を表す情報とを含む。 According to one comparative example, in order to realize data sharing between apps on different VCPUs, the app developer can use any type of communication medium for both the control app and the information app. It is necessary to decide in advance whether to share data, and set the information required for data sharing, which is information according to the type of the communication medium, in the application. The information set in the application is called "setting information" for convenience. In one comparative example, specific examples of setting information are as follows. That is, when the type of the communication medium is shared memory, the setting information includes information representing the name of the shared memory and information representing the name of the data item of the shared data (data to be shared). When the type of the communication medium is a bus, the setting information includes information representing a bus number (for example, a register address) and information representing the name of a data item of shared data. When the type of communication medium is a communication network, the setting information includes information indicating a destination (for example, IP address and port number), information indicating a protocol type (for example, HTTP, Modbus / TCP), and data items of shared data. Contains information that represents the name of.
このように、一比較例では、アプリの設定情報が、当該アプリがいずれの種類の通信媒体経由でデータ共有を行うかに依存するため、アプリ開発が煩雑である。 As described above, in one comparative example, the setting information of the application depends on which type of communication medium the application shares data with, so that the application development is complicated.
また、一比較例では、アプリの配置先は、当該アプリが設定情報に対応した種類の通信媒体経由で通信できる演算装置でなければならない。つまり、アプリの配置先が、当該アプリの設定情報に依存するため、アプリの配置先の自由度が低い。 Further, in one comparative example, the placement destination of the application must be an arithmetic unit capable of communicating with the application via a communication medium of a type corresponding to the setting information. That is, since the placement destination of the application depends on the setting information of the application, the degree of freedom of the placement destination of the application is low.
そこで、本実施形態では、通信媒体が共有メモリ56、PIOバス28及び通信ネットワーク118のいずれであってもデータ共有を実現する共有I/F(共有インターフェース)が設けられる。当該共有I/Fは、OSが一般に提供する共有メモリ用のI/Fよりも上のレイヤのI/Fである。共有I/Fは、アプリからI/O指定(例えば、関数呼出し)を受け付けるが、当該I/O指定において、宛先アプリの名前と共有データのデータ項目の名前とがそれぞれ引数とされていれば、当該アプリと当該宛先アプリとの間の通信媒体の種類に関わらずデータ共有が実現される。言い換えれば、共有I/Fは、いずれの種類の通信媒体経由でデータ共有するかをアプリに意識させない。このため、アプリ開発においてアプリに設定する情報は、アプリ間の通信媒体の種類に依存しない。故に、アプリ開発の煩雑さが低減される。
Therefore, in the present embodiment, a shared I / F (shared interface) that realizes data sharing is provided regardless of whether the communication medium is the shared
また、本実施形態では、各演算装置40に共有I/Fが存在する。共有I/Fの存在により、通信媒体の種類をアプリが意識する必要の無いデータ共有が可能である。このため、アプリの配置先は、当該アプリの設定情報に依存しない。故に、アプリの配置先の自由度が高い。 Further, in the present embodiment, each arithmetic unit 40 has a shared I / F. The existence of the shared I / F enables data sharing without the need for the application to be aware of the type of communication medium. Therefore, the placement destination of the application does not depend on the setting information of the application. Therefore, there is a high degree of freedom in where to place the application.
以上のように、本実施形態によれば、共有メモリ56の他に通信ネットワーク118とPIOバス28の少なくとも一つをアプリ間のデータ共有に利用することが可能なコントロールシステム109のシステム構成変更(例えば、演算装置40の増設又は減設に伴いアプリの配置先の演算装置40を変更すること、及び、演算装置40の接続先の通信媒体の種類を変更することの少なくとも一つ)を、制御のリアルタイム性を維持しつつ柔軟に行うことができる。
As described above, according to the present embodiment, the system configuration change of the control system 109 (which can use at least one of the
以下、本実施形態を詳細に説明する。なお、アプリ間のデータ共有は、制御アプリ41間で行われても情報アプリ42間で行われてもよいが、本実施形態は、一つの制御アプリ41が一つ又は複数の情報アプリ42とデータを共有するケースを例に取る。また、本実施形態において、少なくともコントロール装置40MのOS(Operating System)は、リアルタイム汎用OS(情報処理向けの汎用OSの系統ではあるものの必要とされるリアルタイム性を提供できるリアルタイム機能を持ったOS)でよく、制御アプリ41や情報アプリ42の実行タイミングは、リアルタイム汎用OSにより制御されてよい。或いは、制御アプリ41や情報アプリ42の実行タイミングは、ランタイムソフトウェアにより制御されてよい。
Hereinafter, the present embodiment will be described in detail. Data sharing between the applications may be performed between the
共有I/Fは、制御アプリ41と情報アプリ42に共通でもよいが、本実施形態では、制御アプリ41用の共有I/Fである制御共有I/F36と、情報アプリ42用の共有I/Fである情報共有I/F37とがある。つまり、制御アプリ41と情報アプリ42とで利用される共有I/Fが異なる。これにより、制御アプリ41に利用される共有I/F36の構成を、制御のリアルタイム性を考慮した構成とすることができ、以って、制御のリアルタイム性の維持に貢献することができる。
The shared I / F may be common to the
また、例えば、コントロール装置40Mに複数の制御アプリ41が存在する場合、制御共有I/F36は、複数の制御アプリ41に共通でもよいが、制御アプリ41毎に、制御アプリI/F36が存在してよい。同様に、例えば、コントロール装置40M又は拡張装置40Eに複数の情報アプリ42が存在する場合、情報共有I/F37は、複数の情報アプリ42に共通でもよいが、情報アプリ42毎に、情報共有I/F37が存在してよい。図2が示す例によれば、制御アプリ41と情報アプリ42Aがコントロール装置40Mに存在するため、制御アプリ41に利用される制御共有I/F36と情報アプリ42Aに利用される情報共有I/F37Aとがコントロール装置40Mに存在する。情報アプリ42Bが拡張装置40E1に存在するため、情報アプリ42Bに利用される情報共有I/F37Bが拡張装置40E1に存在する。情報アプリ42Cが拡張装置40E2に存在するため、情報アプリ42Cに利用される情報共有I/F37Cが拡張装置40E2に存在する。
Further, for example, when a plurality of
コントロール装置40M及び各拡張装置40Eに、マッピングテーブル群80が存在する。マッピングテーブル群80は、データ共有のために共有I/Fに参照されるテーブル群である(「テーブル群」は、一つ又は複数のテーブルである)。マッピングテーブル群80は、アプリ用のマッピングテーブル群であるアプリマッピングテーブル群81と、データ用のマッピングテーブル群であるデータマッピングテーブル群82とを含む。図2が示す例によれば、マッピングテーブル群80Xは、アプリマッピングテーブル群81Xと、データマッピングテーブル群82Xとを含み、コントロール装置40Mに存在する。マッピングテーブル群80Yは、アプリマッピングテーブル群81Yと、データマッピングテーブル群82Yとを含み、拡張装置40E1に存在する。マッピングテーブル群80Zは、アプリマッピングテーブル群81Zと、データマッピングテーブル群82Zとを含み、拡張装置40E2に存在する。
The
制御アプリ41は、制御アプリ41の設定情報を基に、制御共有I/F36に対してI/O指定を行う。当該I/O指定に応答して、制御共有I/F36が、マッピングテーブル群80Xを参照し、下記のいずれかを行う。
・共有メモリ56を介して情報アプリ42Aとの間で変数値のデータ共有を行うために、共有メモリ56に対して、当該変数値のI/Oを行う。
・PIOバス28を介して情報アプリ42Bとの間で変数値のデータ共有を行うために、PIOバス制御61Aに対して、当該変数値のI/Oを行う。
・通信ネットワーク118を介して情報アプリ42Cとの間で変数値のデータ共有を行うために、ネットワーク制御62Aに対して、当該変数値のI/Oを行う。
The
-In order to share variable value data with the
-In order to share variable value data with the
-In order to share variable value data with the
情報アプリ42Aは、情報アプリ42Aの設定情報を基に、情報共有I/F37Aに対してI/O指定を行う。当該I/O指定に応答して、情報共有I/F37Aが、マッピングテーブル群80Xを参照し、共有メモリ56を介して制御アプリ41との間で変数値のデータ共有を行うために、共有メモリ56に対して、当該変数値のI/Oを行う。
The
情報アプリ42Bは、情報アプリ42Bの設定情報を基に、情報共有I/F37Bに対してI/O指定を行う。当該I/O指定に応答して、情報共有I/F37Bが、マッピングテーブル群80Yを参照し、PIOバス28を介して制御アプリ41との間で変数値のデータ共有を行うために、PIOバス制御61Bに対して、当該変数値のI/Oを行う。
The
情報アプリ42Cは、情報アプリ42Cの設定情報を基に、情報共有I/F37Cに対してI/O指定を行う。当該I/O指定に応答して、情報共有I/F37Cが、マッピングテーブル群80Zを参照し、通信ネットワーク118を介して制御アプリ41との間で変数値のデータ共有を行うために、ネットワーク制御62Bに対して、当該変数値のI/Oを行う。
The
以下、制御アプリ41の設定情報を、「第1の設定情報」と言い、情報アプリ42の設定情報を、「第2の設定情報」と言う。また、本実施形態では、共有データは、変数値(変数の値)であり、共有データのデータ項目の名前は、変数名(変数の名前)であるとする。
Hereinafter, the setting information of the
第1の設定情報及び第2の設定情報のいずれも、通信媒体の種類に依存しない情報である。 Both the first setting information and the second setting information are information that does not depend on the type of communication medium.
図5に例示の通り、制御アプリ41の第1の設定情報500は、制御アプリ41の共有対象の変数毎に、変数名501、宛先アプリ名502及びアクセス権503といった情報を含む。一つの変数を例に取る(図5の説明において「対象変数」)。変数名501は、対象変数の名前を表す情報である。宛先アプリ名502は、対象変数の変数値を共有する相手のアプリの名前を表す(“ALL”は、制御アプリ41以外の全てのアプリ(本実施形態では全ての情報アプリ42)を意味する)。アクセス権503は、対象変数の変数値の書き込みを行うアプリの名前と、対象変数の変数値の読み出しを行うアプリの名前とを表す(“ALL”は、制御アプリ41以外の全てのアプリを意味する)。図5が示す例によれば、変数1の変数値は、全ての情報アプリ42との間で共有され、制御アプリ41によって書かれ、全ての情報アプリ42によって読まれる。
As illustrated in FIG. 5, the
図6に例示の通り、情報アプリ42の第2の設定情報600は、情報アプリ42の共有対象の変数毎に、変数名601、宛先アプリ名602及びアクセス権603といった情報を含む。一つの変数を例に取る(図6の説明において「対象変数」)。変数名601は、対象変数の名前を表す情報である。宛先アプリ名602は、対象変数の変数値を共有する相手のアプリの名前を表す。アクセス権603は、対象変数の変数値の書き込みを行うアプリの名前と、対象変数の変数値の読み出しを行うアプリの名前とを表す。図6が示す例によれば、変数1の変数値は、制御アプリ41との間で共有され、制御アプリ41によって書かれ、当該情報アプリ42によって読まれる。
As illustrated in FIG. 6, the
図7は、制御共有I/F36の構成を示す。 FIG. 7 shows the configuration of the control sharing I / F36.
制御共有I/F36は、制御I/F部701と、制御共有部702とを有する。制御I/F部701は、制御アプリ41からのI/O指定を受け付ける。制御共有部702は、I/O指定に応答して、マッピングテーブル群80を参照し、変数値のI/O(読み出し又は書き込み)を行う。制御共有部702は、例えば、複数の関数を含んだライブラリを有する。各関数は、読み出し又は書き込みを行うための関数である。
The control sharing I /
図8は、情報共有I/F37の構成を示す。 FIG. 8 shows the configuration of the information sharing I / F37.
情報共有I/F37は、情報I/F部801と、情報共有部802とを有する。情報I/F部801は、情報アプリ42からのI/O指定を受け付ける。情報共有部802は、I/O指定に応答して、マッピングテーブル群80を参照し、変数値のI/Oを行う。情報共有部802は、例えば、複数の関数を含んだライブラリを有する。各関数は、読み出し又は書き込みを行うための関数である。
The information sharing I /
少なくとも一つの共有I/Fの少なくとも一部が、少なくとも一つのアプリに含まれてもよい。例えば、制御共有I/F36の少なくとも一部が制御アプリ41に含まれてもよい。また、例えば、情報共有I/F37の少なくとも一部が情報アプリ42に含まれてもよい。
At least a portion of at least one shared I / F may be included in at least one app. For example, at least a part of the control sharing I /
マッピングテーブル群80は、上述したように、アプリマッピングテーブル群81及びデータマッピングテーブル群82を含む。アプリマッピングテーブル群81は、アプリテーブル900(図9参照)、ネットワークマッピングテーブル1000(図10参照)、バスマッピングテーブル1100(図11参照)、及び、メモリマッピングテーブル1200(図12参照)を含む。データマッピングテーブル群82は、データマッピングテーブル1300(図13参照)を含む。マッピングテーブル群80の少なくとも一部がアプリに含まれてもよい。以下、各テーブルを説明する。
As described above, the
図9は、アプリテーブル900の構成を示す。 FIG. 9 shows the configuration of the application table 900.
アプリテーブル900は、コントロールシステム109に存在するアプリ毎に、アプリ名901及び通信媒体種類902といった情報を保持する。一つのアプリを例に取る(図9の説明において「対象アプリ」)。
The application table 900 holds information such as the
アプリ名901は、対象アプリの名前を表す。通信媒体種類902は、対象アプリがデータ共有のために利用する通信媒体の種類を表す(“ALL”は、全ての種類の通信媒体を利用することを意味する)。
The
アプリ間の通信媒体の種類が変更されるシステム構成変更(例えば、演算装置40の増設又は減設に伴いアプリの配置先の演算装置40を変更すること、及び、演算装置40の接続先の通信媒体の種類を変更することの少なくとも一つ)がされた場合、アプリテーブル900(アプリ名901及び通信媒体種類902の対応関係)は更新される。アプリテーブル900の更新は、例えば、管理システム101によって行われてよい。
A system configuration change in which the type of communication medium between applications is changed (for example, changing the arithmetic unit 40 to which the application is placed due to the addition or decrease of the arithmetic unit 40, and communication of the connection destination of the arithmetic unit 40). When at least one of changing the medium type) is performed, the application table 900 (correspondence between the
本実施形態では、一つの制御アプリ41が複数の情報アプリ42とデータ共有する例が採用されているため、アプリ名901“0000”のアプリが制御アプリ41であり、それ以外のアプリが情報アプリ42である。複数の制御アプリ41が存在したり、情報アプリ42間でデータ共有が行われたりする例では、少なくとも一つのアプリについての通信媒体種類902の値は、複数の通信媒体種類を表す値であり得る。
In this embodiment, since one
図10は、ネットワークマッピングテーブル1000の構成を示す。 FIG. 10 shows the configuration of the network mapping table 1000.
ネットワークマッピングテーブル1000は、通信媒体種類902が“ALL”又は“ネットワーク”であるアプリ毎に、アプリ名1001と、通信ネットワーク118経由でのデータ共有に必要な情報、例えば、プロトコル種類1002、IPアドレス1003、ポート番号1004及びデータパス1005といった情報を保持する。一つのアプリを例に取る(図10の説明において「対象アプリ」)。
The network mapping table 1000 contains an
アプリ名1001は、対象アプリの名前を表す。プロトコル種類1002は、対象アプリとのデータ共有(通信)で使用される通信プロトコル種類を表す。IPアドレス1003は、対象アプリとのデータ共有(通信)で使用されるIPアドレスを表す。ポート番号1004は、対象アプリとのデータ共有(通信)で使用されるポートの番号を表す。データパス1005は、対象アプリとのデータ共有(通信)で使用されるデータパスを表す。対象アプリとのデータ共有のために共有I/Fからネットワーク制御62に対して行われるI/Oでは、対象アプリに対応した情報1002~1005が使用される。
The
図11は、バスマッピングテーブル1100の構成を示す。 FIG. 11 shows the configuration of the bus mapping table 1100.
バスマッピングテーブル1100は、通信媒体種類902が“ALL”又は“バス”であるアプリ毎に、アプリ名1101と、PIOバス28経由でのデータ共有に必要な情報、例えば、バス番号1102といった情報を保持する。一つのアプリを例に取る(図11の説明において「対象アプリ」)。
The bus mapping table 1100 displays the
アプリ名1101は、対象アプリの名前を表す。バス番号1102は、対象アプリとのデータ共有(通信)で使用されるバス番号を表す。対象アプリとのデータ共有のために共有I/FからPIOバス制御61に対して行われるI/Oでは、対象アプリに対応したバス番号1102が使用される。
The
図12は、メモリマッピングテーブル1200の構成を示す。 FIG. 12 shows the configuration of the memory mapping table 1200.
メモリマッピングテーブル1200は、通信媒体種類902が“ALL”又は“共有メモリ”であるアプリ毎に、アプリ名1201と、共有メモリ56経由でのデータ共有に必要な情報、例えば、共有メモリ名1202といった情報を保持する。一つのアプリを例に取る(図12の説明において「対象アプリ」)。
The memory mapping table 1200 includes an
アプリ名1201は、対象アプリの名前を表す。共有メモリ名1202は、対象アプリとのデータ共有(通信)で使用され共有メモリ56の名前を表す。対象アプリとのデータ共有のために共有I/Fから共有メモリ56に対して行われるI/Oでは、対象アプリに対応した共有メモリ名1202が使用される。
The
図13は、データマッピングテーブル1300の構成を示す。 FIG. 13 shows the configuration of the data mapping table 1300.
データマッピングテーブル1300は、変数毎に、変数名1301及び位置1302といった情報を保持する。一つの変数を例に取る(図13の説明において「対象変数」)。
The data mapping table 1300 holds information such as the
変数名1301は、変数の名前を表す。位置1302は、変数値の位置を表す。例えば、共有メモリ56経由でデータ共有される変数値については、位置1302は、共有メモリ56の先頭からの位置と、データ長とを表す。
The
以下、図14~図18を参照して、本実施形態で行われる処理の例を説明する。 Hereinafter, an example of the processing performed in the present embodiment will be described with reference to FIGS. 14 to 18.
図14が示すように、システム構成情報1420が存在する。システム構成情報1420は、コントロールシステム109の構成を表す情報である。システム構成情報1420は、例えば、管理者により入力された情報を含んでもよいし、コントロール装置40M(例えば、制御アプリ41又は他のプログラム)により当該コントロール装置40M及び各演算装置40Eから収集された情報(例えば、アプリ名を含んだ情報)を含んでもよい。システム構成情報1420は、コントロール装置40M、設定端末29及び管理システム101のうちの少なくとも一つに格納されてよい。システム構成情報1420は、例えば、コントロールシステム109に存在する又は配布可能なアプリのアプリ名の一覧と、各アプリの属性(制御アプリと情報アプリのいずれであるか)と、演算装置40毎のアドレスとを表す情報を含んでよい。
As shown in FIG. 14, there is system configuration information 1420. The system configuration information 1420 is information representing the configuration of the
展開部1410が存在する。展開部1410は、例えば、コントロール装置40Mに存在し、WEBサーバ69を含んでもよい。或いは、展開部1410は、管理システム101又は設定端末29に存在してもよい。
There is a
展開部1410は、設定GUI(Graphical User Interface)1400を表示する。設定GUI1400は、例えば設定端末29に表示される。設定GUI1400は、第1の設定情報を設定するためのGUI(ユーザインターフェースの一例)であり、例えば、制御アプリ41のアプリ開発者向けのGUIである。設定GUI1400は、入力テーブル1450と設定ボタン1401とを有する。入力テーブル1450は、変数毎に、共有対象とするか否かのチェックボックス1421と、変数名の入力欄1422と、宛先アプリ名の入力欄1423と、アクセス権の入力欄1424とを有する。展開部1410は、設定GUI1400上に(又は別のユーザインターフェース上に)、システム構成情報1420を基に、コントロールシステム109に存在する又は配布可能な情報アプリ42のアプリ名の一覧を表示してもよい。また、システム構成情報1420は、マッピングテーブル群80に含まれる情報の一部を含んでもよい。
The
汎用コンピュータ分野では、複数のアプリによる変数値の書き込みが競合した場合、競合回避のために一つのアプリによる書き込みが終わることを待つことが行われる。しかし、本実施形態に係るコントロールシステム109において、スキャン処理中又はスキャン処理後の変数値書き込みに待ちが生じると、その待ちの間に次のスキャン処理の開始タイミングが到来するおそれがある。このため、汎用コンピュータ分野の競合回避技術を単純にコントロールシステム109に適用することができない。
In the general-purpose computer field, when the writing of variable values by a plurality of applications conflicts, it is performed to wait for the writing by one application to be completed in order to avoid the conflict. However, in the
制御アプリ41のスキャン処理は情報アプリ42の情報処理に比べて高速である。このため、データ共有の対象でありI/Oポートに接続された産業機器に関する変数値が、繰り返し更新される。故に、情報アプリ42に対してそのような変数値を書き込みできる権限を与えないことが望ましい。
The scanning process of the
言い換えると、情報アプリ42の情報処理(例えば、データ更新処理)の周期よりも制御アプリ41のスキャン処理の周期の方が短いため、情報アプリのアクセス権としてはリードオンリーであることが望ましい。
In other words, since the cycle of the scan process of the
また、情報アプリ42は、I/Oポートに関する変数値についてリードオンリーで読み出し、当該変数値を用いた計算の結果を、別途設定した変数の変数値として書き込むことができる。情報アプリ42が複数ある場合には、所定の変数値について、書き込みできる情報アプリ42は一つに限定されてよい。例として、制御アプリ41と三つの情報アプリ42が配置されたコントロールシステム109において、或る変数の変数値の書き込み権限は、制御アプリ41のみ、又は、三つの情報アプリ42のうちのいずれかのみに与えられてよい。
Further, the
以上のように、本実施形態では、各変数について、変数値を書き込むアプリは一つである。これにより、各変数について、二つ以上のアプリが同時に変数値を書き込むといった競合や、或るアプリが変数値を書き込んでいるため別のアプリが変数値の書き込みを待つといった書込み待ちが生じない。このため、変数値を書き込むアプリが一つであることは、制御アプリ41の制御のリアルタイム性を維持することに貢献する。
As described above, in the present embodiment, there is only one application for writing the variable value for each variable. This eliminates conflicts such as two or more apps writing variable values at the same time for each variable, and no write waits such as one app writing a variable value and another app waiting for the variable value to be written. Therefore, the fact that there is only one application for writing the variable value contributes to maintaining the real-time property of the control of the
さて、展開部1410は、入力テーブル1450に入力された内容に従う設定の指示を受け付けた場合(図14が示す例では、設定ボタン1401が押された場合)、下記(A)~(C)のうちの少なくとも一つを行ってよい。なお、下記の処理において、必要に応じて、システム構成情報1420が展開部1410により参照される。
(A)展開部1410は、入力テーブル1450に入力された内容に従う第1の設定情報500を生成し、第1の設定情報500が設定された制御アプリ41を、コントロール装置40Mに配布する(例えば、コントロール装置40Mの空きのVCPU37に、制御アプリ41を展開する)。第1の設定情報500は、共有対象とされた変数毎に、変数名、宛先アプリ名及びアクセス権を含む。
(B)展開部1410は、入力テーブル1450に入力された内容に従う第2の設定情報600を生成し、第2の設定情報600を、制御アプリ41とデータ共有を行う情報アプリ42(共有対象とされる少なくとも一つの変数について、宛先アプリ名が表す情報アプリ42)に設定する。例えば、変数名“変数2”について、情報アプリ42A(アプリ名“0001”)に対する第2の設定情報600は、変数名“変数2”と、宛先アプリ名“0000”(制御アプリ41のアプリ名)と、アクセス権“WRITE:0000”及び“READ:0001”とを含む。すなわち、制御アプリ41の宛先アプリ名として設定されたアプリ名を持つ情報アプリ42に対する第2の設定情報600は、宛先アプリ名として、制御アプリのアプリ名を含み、アクセス権として、制御アプリ41について設定されたアクセス権と同じアクセス権を含む。
(C)展開部1410は、入力テーブル1450に入力された内容に従うマッピングテーブル群80のうちの少なくともデータマッピングテーブル群82を生成し、マッピングテーブル群80を、各演算装置40に配布する。マッピングテーブル群80中のアプリマッピングテーブル群81は、例えば、コントロール装置40Mの電源投入時に生成されていてよい。アプリマッピングテーブル群81は、各アプリ名について、当該アプリ名の情報アプリ42の配置先の演算装置40と制御アプリ41の配置先のコントロール装置40Mとの間の通信媒体の種類に基づく。ネットワークマッピングテーブル1000、バスマッピングテーブル1100及びメモリマッピングテーブル1200の各々について、アプリ名以外の情報の少なくとも一部は、システム構成情報1420から取得された情報でよい。データマッピングテーブル1300が有する各変数名は、入力テーブル1450において共有対象とされた変数の変数名である。データマッピングテーブル1300において、変数名以外の情報の少なくとも一部は、展開部1410により決定された情報でもよいし、システム構成情報1420から取得された情報でもよい。
When the
(A) The
(B) The
(C) The
設定GUI1400によれば、データ共有対象の変数は、制御側が決めた変数(本実施形態では、設定GUI1400経由で指定された変数)であり、且つ、それらの変数の各々は、制御側が決めたアクセス権でしか、アクセスされない。これにより、リアルタイム性を有する制御を優先することができる。 According to the setting GUI1400, the variables to be shared are the variables determined by the control side (in this embodiment, the variables specified via the setting GUI1400), and each of these variables is the access determined by the control side. It can only be accessed by rights. Thereby, the control having real-time property can be prioritized.
なお、例えば、アプリマッピングテーブル群81における各テーブルは、例えば、図15~図17に例示の方法に従い制御アプリ41により生成されてもよい。制御アプリ41により生成された各テーブルが、制御アプリ41又は展開部1410により、各演算装置40に配布されてよい。
For example, each table in the application mapping table group 81 may be generated by the
図15が示す例によれば、ネットワークマッピングテーブル1000が次のように生成又は更新される(図15において、“0000”は、制御アプリ41のアプリ名であり、“0002”及び“0005”は、それぞれ、制御アプリ41と通信ネットワーク経由でデータ共有を行う情報アプリ42のアプリ名である)。すなわち、制御アプリ“0000”は、通信ネットワーク経由のデータ共有で使用する情報の取得要求を、ネットワーク制御62を介して、定期的に(又は不定期的に)ブロードキャスト送信する。当該取得要求を受けた演算装置40(典型的には拡張装置40E)において、当該演算装置40におけるアプリ(典型的には情報アプリ42)が、当該アプリのアプリ名を含む情報を返す(S1502)。制御アプリ“0000”が、返された情報に、ネットワークマッピングテーブル1000との差分があれば(或いは差分が無くても常に)、当該返された情報(例えば、差分のみ)をネットワークマッピングテーブル1000に反映する(S1503)。このようにして、システム構成変更が行われてもネットワークマッピングテーブル1000の内容を最新の内容に維持することができる。これは、例えば、第1の設定情報500中の宛先アプリ名“ALL”に対応した変数について有用である。通信ネットワーク118に演算装置40(典型的には拡張装置40E)が増設又は減設されたことに伴い情報アプリ42が追加又は削減されることがあるからである。なお、アプリのデータ共有相手として所定の条件に適合する全アプリを設定する方法としては、宛先アプリ名として“ALL”を設定することに代えて又は加えて、データ共有相手としてのアプリに関する所定の条件(例えば、アプリ名の条件、IPアドレスの条件)を設定する方法が採用されてもよい。
According to the example shown in FIG. 15, the network mapping table 1000 is generated or updated as follows (in FIG. 15, "0000" is the application name of the
図16が示す例によれば、バスマッピングテーブル1100が次のように生成又は更新される(図16において、“0000”は、制御アプリ41のアプリ名であり、“0003”及び“0007”は、それぞれ、制御アプリ41とPIOバス28経由でデータ共有を行う情報アプリ42のアプリ名である)。すなわち、制御アプリ“0000”と情報アプリ“0003”及び“0007”の各々が初期化処理を行う(S1600)。制御アプリ41は、制御アプリ41の初期化処理(S1600)において、制御共有I/F36に、制御アプリ41のアプリ名“0000”と、データ共有相手の情報アプリ42のアプリ名“0003”及び“0007”を教える。同様に、情報アプリ42(例えば、情報アプリ“0003”)も、情報アプリ42の初期化処理(S1600)において、情報共有I/F37に、自分のアプリ名“0003”とデータ共有相手の制御アプリのアプリ名“0000”を教える。このような初期化処理において、制御共有I/F36も情報共有I/F37も、PIOバス28経由でデータ共有を行う相手のアプリのアプリ名を知ることができる。初期化処理の後、制御アプリ“0000”は、PIOバス28経由のデータ共有で使用する情報(アプリ名とバス番号を含む情報)を、PIOバス28に接続されている一つ以上の拡張装置40Eの情報アプリ“0003”及び“0007”の各々から、例えば通信ネットワーク経由で受ける(S1601)。制御アプリ“0000”が、受けた情報を、バスマッピングテーブル1100に反映する(S1602)。
According to the example shown in FIG. 16, the bus mapping table 1100 is generated or updated as follows (in FIG. 16, “0000” is the application name of the
図17が示す例によれば、メモリマッピングテーブル1200が次のように生成又は更新される(図17において、“0000”は、制御アプリ41のアプリ名であり、“0001”及び“0008”は、それぞれ、制御アプリ41と共有メモリ56経由でデータ共有を行う情報アプリ42のアプリ名である)。すなわち、制御アプリ“0000”と情報アプリ“0001”及び“0008”の各々が初期化処理(S1600)を行う。この初期化処理において、制御共有I/F36も情報共有I/F37も、共有メモリ56経由でデータ共有を行う相手のアプリのアプリ名を知ることができる。初期化処理の後、制御アプリ“0000”は、共有メモリ56経由のデータ共有で使用する情報(アプリ名と共有メモリ名を含む情報)を、同一のコントロール装置40Mの情報アプリ“0001”及び“0008”の各々から受ける(S1701)。制御アプリ“0000”が、受けた情報を、メモリマッピングテーブル1200に反映する(S1702)。
According to the example shown in FIG. 17, the memory mapping table 1200 is generated or updated as follows (in FIG. 17, “0000” is the application name of the
以上のようして生成又は更新されたテーブルを含むマッピングテーブル群80を基に、共有I/F経由で、アプリ間のデータ共有が行われる。図18を参照して、データ共有の一例を説明する。なお、説明を簡単にするために、制御アプリ41と情報アプリ42Aとの共有対象の変数の変数名は“変数1”とし、変数“変数1”の変数値を「変数値1」と言う。制御アプリ41と情報アプリ42Bとの共有対象の変数の変数名は“変数2”とし、変数“変数2”の変数値を「変数値2」と言う。制御アプリ41と情報アプリ42Cとの共有対象の変数の変数名は“変数3”とし、変数“変数3”の変数値を「変数値3」と言う。また、変数“変数1”~“変数3”の各々について、書き込み権限を有するアプリは、制御アプリ41のみとする。
Data sharing between applications is performed via the shared I / F based on the
制御アプリ41が、制御周期毎に、スキャン処理において、変数値1~3を、ワークメモリ152(メモリ169(図1参照)の一部)に書き込む。制御アプリ41が、制御周期毎に、スキャン処理中又はスキャン処理後、ワークメモリ152に書き込んだ変数値1~3の書き込みを制御共有I/F36に指定する。以下、変数値1~3の各々のデータ共有を説明する。
The
<変数値1のデータ共有>
<Data sharing of
制御アプリ41が、変数名“変数1”と、変数名“変数1”に対応した宛先アプリ名“0001”(情報アプリ42Aのアプリ名)とを第1の設定情報500から特定し、また、自分が書き込み権限を有することを第1の設定情報500から特定する。制御アプリ41が、“変数1”と“0001”とをそれぞれ引数としたI/O指定を、制御共有I/F36に対して行う。当該I/O指定は、変数値1の書き込みの指定である。制御共有I/F36において、制御I/F部701が、当該I/O指定を受ける。制御共有部702が、当該I/O指定の引数“0001”をキーにマッピングテーブル群80X中のアプリマッピングテーブル群81Xを参照することで、変数値1のデータ共有は共有メモリ56経由であることと、共有メモリ56経由のデータ共有に必要な情報を特定する。また、制御共有部702が、当該I/O指定の引数“変数1”をキーにマッピングテーブル群80X中のデータマッピングテーブル群82Xを参照することで、変数値1の書き込み先の位置を特定する。制御共有部702が、共有メモリ56経由のデータ共有に必要な特定された情報を用いて、特定された書き込み先位置に、変数値1を書き込む。
The
その後、情報アプリ42Aが、変数名“変数1”と、変数名“変数1”に対応した宛先アプリ名“0000”(制御アプリ41のアプリ名)とを第2の設定情報600Aから特定し、また、自分が読み出し権限を有することを第2の設定情報600Aから特定する。情報アプリ42Aが、“変数1”と“0000”とをそれぞれ引数としたI/O指定を、情報共有I/F37Aに対して行う。当該I/O指定は、変数値1の読み出し指定である。情報共有I/F37Aにおいて、情報I/F部801Aが、当該I/O指定を受ける。情報共有部802Aが、当該I/O指定の引数“0000”をキーにマッピングテーブル群80X中のアプリマッピングテーブル群81Xを参照することで、変数値1のデータ共有は共有メモリ56経由であることと、共有メモリ56経由のデータ共有に必要な情報を特定する。また、情報共有部802Aが、当該I/O指定の引数“変数1”をキーにマッピングテーブル群80X中のデータマッピングテーブル群82Xを参照することで、変数値1の位置を特定する。情報共有部802Aが、共有メモリ56経由のデータ共有に必要な特定された情報を用いて、特定された位置から、変数値1を読み出す。読み出された変数値1が、I/O指定に対する応答して、情報共有I/F37Aの情報I/F部801Aから情報アプリ42Aに返る。
After that, the
以上のようにして、変数値1が、制御アプリ41と情報アプリ42A間で共有される。
As described above, the
<変数値2のデータ共有> <Data sharing of variable value 2>
制御アプリ41が、変数名“変数2”と、変数名“変数2”に対応した宛先アプリ名“0003”(情報アプリ42Bのアプリ名)とを第1の設定情報500から特定し、また、自分が書き込み権限を有することを第1の設定情報500から特定する。制御アプリ41が、“変数2”と“0003”とをそれぞれ引数としたI/O指定を、制御共有I/F36に対して行う。当該I/O指定は、変数値2の書き込みの指定である。制御共有I/F36において、制御I/F部701が、当該I/O指定を受ける。制御共有部702が、当該I/O指定の引数“0003”をキーにマッピングテーブル群80X中のアプリマッピングテーブル群81Xを参照することで、変数値2のデータ共有はPIOバス28経由であることと、PIOバス28経由のデータ共有に必要な情報を特定する。また、制御共有部702が、当該I/O指定の引数“変数2”をキーにマッピングテーブル群80X中のデータマッピングテーブル群82Xを参照することで、変数値2の書き込み先の位置を特定する。制御共有部702が、PIOバス28経由のデータ共有に必要な特定された情報を用いて、特定された位置に対して変数値2を書き込むためのI/Oを、PIOバス制御61Aに対して行う。PIOバス制御61Aが、当該I/Oに従い、変数値2をPIOバス28に出力する。出力された変数値2は、例えば、拡張装置40E1のPIOバス制御61Bに送られる。
The
その後、情報アプリ42Bが、変数名“変数2”と、変数名“変数2”に対応した宛先アプリ名“0000”(制御アプリ41のアプリ名)とを第2の設定情報600Bから特定し、また、自分が読み出し権限を有することを第2の設定情報600Bから特定する。情報アプリ42Bが、“変数2”と“0000”とをそれぞれ引数としたI/O指定を、情報共有I/F37Bに対して行う。当該I/O指定は、変数値2の読み出し指定である。情報共有I/F37Bにおいて、情報I/F部801Bが、当該I/O指定を受ける。情報共有部802Bが、当該I/O指定の引数“0000”をキーにマッピングテーブル群80Y中のアプリマッピングテーブル群81Yを参照することで、変数値2のデータ共有はPIOバス28経由であることと、PIOバス28経由のデータ共有に必要な情報を特定する。また、情報共有部802Bが、当該I/O指定の引数“変数2”をキーにマッピングテーブル群80Y中のデータマッピングテーブル群82Yを参照することで、変数値2の位置を特定する。情報共有部802Bが、PIOバス28経由のデータ共有に必要な特定された情報を用いて、特定された位置から変数値2を読み出すためのI/Oを、PIOバス制御61Bに対して行う。PIOバス制御61Bが、PIOバス28経由の変数値2を、情報共有I/F37Bに返す。変数値2が、I/O指定に対する応答して、情報共有I/F37Bの情報I/F部801Bから情報アプリ42Bに返る。
After that, the
以上のようにして、変数値2が、制御アプリ41と情報アプリ42B間で共有される。
As described above, the variable value 2 is shared between the
<変数値3のデータ共有>
<Data sharing of
制御アプリ41が、変数名“変数3”と、変数名“変数3”に対応した宛先アプリ名“0002”(情報アプリ42Cのアプリ名)とを第1の設定情報500から特定し、また、自分が書き込み権限を有することを第1の設定情報500から特定する。制御アプリ41が、“変数3”と“0002”とをそれぞれ引数としたI/O指定を、制御共有I/F36に対して行う。当該I/O指定は、変数値3の書き込みの指定である。制御共有I/F36において、制御I/F部701が、当該I/O指定を受ける。制御共有部702が、当該I/O指定の引数“0002”をキーにマッピングテーブル群80X中のアプリマッピングテーブル群81Xを参照することで、変数値3のデータ共有は通信ネットワーク118経由であることと、通信ネットワーク118経由のデータ共有に必要な情報を特定する。また、制御共有部702が、当該I/O指定の引数“変数3”をキーにマッピングテーブル群80X中のデータマッピングテーブル群82Xを参照することで、変数値3の書き込み先の位置を特定する。制御共有部702が、通信ネットワーク118経由のデータ共有に必要な特定された情報を用いて、特定された位置に変数値3を書き込むためのI/Oを、ネットワーク制御62Aに対して行う。ネットワーク制御62Aが、当該I/Oに従い、変数値3を通信ネットワーク118に出力する。出力された変数値3は、例えば、拡張装置40E2のネットワーク制御62Bに送られる。
The
その後、情報アプリ42Cが、変数名“変数3”と、変数名“変数3”に対応した宛先アプリ名“0000”(制御アプリ41のアプリ名)とを第2の設定情報600Cから特定し、また、自分が読み出し権限を有することを第2の設定情報600Cから特定する。情報アプリ42Cが、“変数3”と“0000”とをそれぞれ引数としたI/O指定を、情報共有I/F37Cに対して行う。当該I/O指定は、変数値3の読み出し指定である。情報共有I/F37Cにおいて、情報I/F部801Cが、当該I/O指定を受ける。情報共有部802Cが、当該I/O指定の引数“0000”をキーにマッピングテーブル群80Z中のアプリマッピングテーブル群81Zを参照することで、変数値3のデータ共有は通信ネットワーク118経由であることと、通信ネットワーク118経由のデータ共有に必要な情報を特定する。また、情報共有部802Cが、当該I/O指定の引数“変数3”をキーにマッピングテーブル群80Z中のデータマッピングテーブル群82Zを参照することで、変数値3の位置を特定する。情報共有部802Cが、通信ネットワーク118経由のデータ共有に必要な特定された情報を用いて、特定された位置から変数値3を読み出すためのI/Oを、ネットワーク制御62Bに対して行う。ネットワーク制御62Bが、通信ネットワーク118経由の変数値3を、情報共有I/F37Cに返す。変数値3が、I/O指定に対する応答して、情報共有I/F37Cの情報I/F部801Cから情報アプリ42Cに返る。
After that, the
以上のようにして、変数値3が、制御アプリ41と情報アプリ42C間で共有される。
As described above, the
図18が示す例では、変数値1~3のいずれについても、書き手は制御アプリ41であり読み手は情報アプリ42であるが、書き手と読み手が逆でも、データ共有の方法は実質的に同様である。
In the example shown in FIG. 18, the writer is the
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。 Although one embodiment has been described above, this is an example for explaining the present invention, and the scope of the present invention is not limited to this embodiment. The present invention can also be implemented in various other forms.
109…コントロールシステム 109 ... Control system
Claims (8)
それぞれがインターフェース装置、記憶装置及びそれらに接続されたプロセッサを有する一つ又は複数の演算装置を備え、
前記一つ又は複数の演算装置が、一つ又は複数の制御プログラムと、一つ又は複数の情報プログラムと、一つ又は複数の共有インターフェースとを有し、
前記一つ又は複数の制御プログラムの各々について、
当該制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムであり、
当該制御プログラムについて設定される情報である第1の設定情報は、当該制御プログラムと当該制御プログラムの通信相手としての一つ以上の情報プログラムの各々との間の通信媒体の種類に依存しない情報であり、
前記一つ又は複数の情報プログラムの各々について、
当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムであり、
当該情報プログラムについて設定される情報である第2の設定情報は、当該情報プログラムと当該情報プログラムの通信相手としての一つ以上の制御プログラムの各々との間の通信媒体の種類に依存しない情報であり、
前記一つ又は複数の演算装置の各々において、
制御プログラム又は情報プログラムである第1のプログラムが、当該演算装置における共有インターフェースに対して、当該第1のプログラムについての設定情報中の情報を引数としてI/O(Input/Output)指定を行い、
当該共有インターフェースが、当該I/O指定に応答して、
当該I/O指定の引数に対応した情報を、通信媒体種類に依存した情報を含んだ情報であるマッピング情報から特定し、
当該特定された情報を基に、当該第1のプログラムと当該第1のプログラムの通信相手としての制御プログラム又は情報プログラムである第2のプログラムとの間の通信媒体の種類に依存したI/Oを行う、
コントロールシステム。 A control system that controls one or more controlled devices.
Each comprises an interface device, a storage device and one or more arithmetic units having a processor connected to them.
The one or more arithmetic units have one or more control programs, one or more information programs, and one or more shared interfaces.
For each of the one or more control programs
The control program is a program that performs a scan process, which is a process of controlling a controlled target device and a process having real-time property, within the control cycle at each control cycle defined for the control program.
The first setting information, which is the information set for the control program, is information that does not depend on the type of communication medium between the control program and each of the one or more information programs as communication partners of the control program. can be,
For each of the one or more information programs
The information program is a program that performs information processing specified for the information program.
The second setting information, which is the information set for the information program, is information that does not depend on the type of communication medium between the information program and each of the one or more control programs as communication partners of the information program. can be,
In each of the one or more arithmetic units
The first program, which is a control program or an information program, specifies I / O (Input / Output) for the shared interface in the arithmetic unit by using the information in the setting information for the first program as an argument.
The shared interface responds to the I / O designation and
The information corresponding to the argument specified by the I / O is specified from the mapping information which is the information including the information depending on the communication medium type.
Based on the specified information, I / O depending on the type of communication medium between the first program and the control program as a communication partner of the first program or the second program which is an information program. I do,
Control system.
前記一つ又は複数の情報プログラムの各々について、当該情報プログラムの第2の設定情報は、共有データのデータ項目の識別情報である項目識別情報と共有相手の制御プログラムのプログラム識別情報との関係を表す情報を含み、
前記一つ又は複数の演算装置の各々において、
前記I/O指定の引数として、第1の引数と第2の引数があり、
当該第1の引数は、前記第2のプログラムのプログラム識別情報であり、
当該第2の引数は、前記第1のプログラムと前記第2のプログラムが共有する共有データのデータ項目の項目識別情報であり、
前記マッピング情報は、プログラム識別情報と通信媒体種類に依存したデータ共有方法を表すデータ共有方法情報との関係を表すプログラムマッピング情報と、項目識別情報と共有データの入力元又は出力先の位置を表す共有位置情報との関係を表すデータマッピング情報とを含み、
前記第1の引数に対応した情報は、データ共有方法情報であり、
前記第2の引数に対応した情報は、共有位置情報であり、
前記共有インターフェースにより行われるI/Oは、特定されたデータ共有方法情報及び共有位置情報に従うI/Oであって、前記第2の引数とされた項目識別情報が表すデータ項目に対応した共有データのI/Oである、
請求項1に記載のコントロールシステム。 For each of the one or more control programs, the first setting information of the control program is the item identification information which is the identification information of the data item of the shared data which is the data to be shared and the program of the information program of the sharing partner. Contains information that represents the relationship with the identification information
For each of the one or more information programs, the second setting information of the information program relates to the relationship between the item identification information which is the identification information of the data item of the shared data and the program identification information of the control program of the sharing partner. Including information to represent
In each of the one or more arithmetic units
There are a first argument and a second argument as the argument of the I / O designation.
The first argument is the program identification information of the second program.
The second argument is the item identification information of the data item of the shared data shared by the first program and the second program.
The mapping information represents the program mapping information representing the relationship between the program identification information and the data sharing method information representing the data sharing method depending on the communication medium type, and the position of the input source or output destination of the item identification information and the shared data. Includes data mapping information that represents the relationship with shared location information
The information corresponding to the first argument is data sharing method information.
The information corresponding to the second argument is the shared location information.
The I / O performed by the shared interface is I / O according to the specified data sharing method information and shared position information, and is shared data corresponding to the data item represented by the item identification information as the second argument. I / O,
The control system according to claim 1.
前記一つ又は複数の制御プログラムの各々について、当該制御プログラムの共有インターフェースである制御共有インターフェースと、
前記一つ又は複数の演算装置の各々について、当該演算装置に存在する一つ以上の情報プログラムの共有インターフェースである情報共有インターフェースと
を含む、
請求項1に記載のコントロールシステム。 The one or more shared interfaces mentioned above
For each of the one or more control programs, a control sharing interface, which is a shared interface of the control program,
For each of the one or more arithmetic units, the information sharing interface which is a sharing interface of one or more information programs existing in the arithmetic unit is included.
The control system according to claim 1.
前記データマッピング情報が表す項目識別情報は、前記第1の設定情報に含まれる情報の設定用ユーザインターフェース経由で指定された情報である、
請求項1に記載のコントロールシステム。 The mapping information includes data mapping information representing the relationship between the item identification information and the shared position information representing the position of the input source or output destination of the shared data.
The item identification information represented by the data mapping information is information designated via the setting user interface of the information included in the first setting information.
The control system according to claim 1.
制御プログラムを有する演算装置が、
通信ネットワーク経由で情報の取得要求を定期的に又は不定期的にブロードキャスト送信し、
当該取得要求に対して受けた応答から特定された情報を、前記ネットワークマッピング情報に反映する、
請求項1に記載のコントロールシステム。 The mapping information includes network mapping information representing a relationship between program identification information of a program that shares data via a communication network and data sharing method information representing a data sharing method depending on the communication network.
The arithmetic unit with the control program
Broadcast information acquisition requests regularly or irregularly via a communication network,
The information specified from the response received in response to the acquisition request is reflected in the network mapping information.
The control system according to claim 1.
請求項1に記載のコントロールシステム。 For each data item of shared data, there is one program that outputs the shared data corresponding to the data item.
The control system according to claim 1.
制御プログラムを有する演算装置と、少なくとも一つの演算装置とが、回路基板上のバスに接続されており、
制御プログラムを有する演算装置と、少なくとも一つの演算装置とが、通信ネットワークに接続されており、
前記第1のプログラムは、制御プログラムであり、
前記第2のプログラムは、情報プログラムであり、
前記第1のプログラムと前記第2のプログラムとの間のデータ共有において利用される通信媒体の種類は、共有メモリ、バス及び通信ネットワークのいずれかである、
請求項1に記載のコントロールシステム。 The arithmetic unit having the control program has the shared memory and
An arithmetic unit having a control program and at least one arithmetic unit are connected to a bus on a circuit board.
An arithmetic unit having a control program and at least one arithmetic unit are connected to a communication network.
The first program is a control program.
The second program is an information program and is an information program.
The type of communication medium used in data sharing between the first program and the second program is either shared memory, bus, or communication network.
The control system according to claim 1.
制御プログラム又は情報プログラムである第1のプログラムが、当該第1のプログラムを有する演算装置における共有インターフェースに対して、当該第1のプログラムについての設定情報中の情報を引数としてI/O(Input/Output)指定を行い、
制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムであり、
当該制御プログラムについて設定される情報である第1の設定情報は、当該制御プログラムと当該制御プログラムの通信相手としての一つ以上の情報プログラムの各々との間の通信媒体の種類に依存しない情報であり、
当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムであり、
当該情報プログラムについて設定される情報である第2の設定情報は、当該情報プログラムと当該情報プログラムの通信相手としての一つ以上の制御プログラムの各々との間の通信媒体の種類に依存しない情報であり、
当該共有インターフェースが、当該I/O指定に応答して、
当該I/O指定の引数に対応した情報を、通信媒体種類に依存した情報を含んだ情報であるマッピング情報から特定し、
当該特定された情報を基に、当該第1のプログラムと当該第1のプログラムの通信相手としての制御プログラム又は情報プログラムである第2のプログラムとの間の通信媒体の種類に依存したI/Oを行う、
コントロール方法。 A control method performed by a control system that controls one or more controlled devices and has one or more arithmetic units.
The first program, which is a control program or an information program, makes an I / O (Input /) with the information in the setting information about the first program as an argument to the shared interface in the arithmetic unit having the first program. Output) Specify and
The control program is a program that performs scan processing within the control cycle, which is a process of controlling the controlled target device and a process having real-time property, at each control cycle defined for the control program.
The first setting information, which is the information set for the control program, is information that does not depend on the type of communication medium between the control program and each of the one or more information programs as communication partners of the control program. can be,
The information program is a program that performs information processing specified for the information program.
The second setting information, which is the information set for the information program, is information that does not depend on the type of communication medium between the information program and each of the one or more control programs as communication partners of the information program. can be,
The shared interface responds to the I / O designation and
The information corresponding to the argument specified by the I / O is specified from the mapping information which is the information including the information depending on the communication medium type.
Based on the specified information, I / O depending on the type of communication medium between the first program and the control program as a communication partner of the first program or the second program which is an information program. I do,
Control method.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020130818A JP7413183B2 (en) | 2020-07-31 | 2020-07-31 | control system |
PCT/JP2021/027952 WO2022025134A1 (en) | 2020-07-31 | 2021-07-28 | Control system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020130818A JP7413183B2 (en) | 2020-07-31 | 2020-07-31 | control system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022027047A true JP2022027047A (en) | 2022-02-10 |
JP7413183B2 JP7413183B2 (en) | 2024-01-15 |
Family
ID=80035648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020130818A Active JP7413183B2 (en) | 2020-07-31 | 2020-07-31 | control system |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7413183B2 (en) |
WO (1) | WO2022025134A1 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7141905B2 (en) * | 2018-10-12 | 2022-09-26 | 株式会社日立産機システム | Control device and control method |
JP7141939B2 (en) * | 2018-12-13 | 2022-09-26 | 株式会社日立産機システム | industrial controller |
-
2020
- 2020-07-31 JP JP2020130818A patent/JP7413183B2/en active Active
-
2021
- 2021-07-28 WO PCT/JP2021/027952 patent/WO2022025134A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP7413183B2 (en) | 2024-01-15 |
WO2022025134A1 (en) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7500067B2 (en) | System and method for allocating memory to input-output devices in a multiprocessor computer system | |
EP3229135A1 (en) | Control device, control method and program | |
TW201502801A (en) | Memory sharing over a network | |
US10228970B2 (en) | Domain bounding for symmetric multiprocessing systems | |
US20050240669A1 (en) | BIOS framework for accommodating multiple service processors on a single server to facilitate distributed/scalable server management | |
WO2020189086A1 (en) | Control system, setting device and setting program | |
EP1993038B1 (en) | Data processing system and data processing method | |
US7873498B2 (en) | Remote hardware inspection system and method | |
JP2001290665A (en) | Processor system | |
WO2022025134A1 (en) | Control system | |
JP2008158710A (en) | Computer system | |
WO2020075351A1 (en) | Control device | |
Cai et al. | Deployment and verification of machine learning tool-chain based on kubernetes distributed clusters: This paper is submitted for possible publication in the special issue on high performance distributed computing | |
US20240004688A1 (en) | Control system and control method | |
WO2022050090A1 (en) | Control system | |
Intel | ||
CN107168815A (en) | A kind of method for collecting hardware error message | |
JP6856048B2 (en) | Control system and control method | |
JP2780662B2 (en) | Multiprocessor system | |
CN111919181A (en) | Control device | |
WO2022049885A1 (en) | Control device | |
JP7413169B2 (en) | control device | |
JP7461521B1 (en) | Method for building and installing a target driver on a computer - Patents.com | |
CN113918273B (en) | Method and device for creating container group | |
JP7240282B2 (en) | Industrial control device and activation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230324 |
|
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: 20231205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7413183 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |