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

JP7585972B2 - Information processing device, method, and program - Google Patents

Information processing device, method, and program Download PDF

Info

Publication number
JP7585972B2
JP7585972B2 JP2021091997A JP2021091997A JP7585972B2 JP 7585972 B2 JP7585972 B2 JP 7585972B2 JP 2021091997 A JP2021091997 A JP 2021091997A JP 2021091997 A JP2021091997 A JP 2021091997A JP 7585972 B2 JP7585972 B2 JP 7585972B2
Authority
JP
Japan
Prior art keywords
data
priority
virtual machine
devices
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021091997A
Other languages
Japanese (ja)
Other versions
JP2022184262A (en
Inventor
茂 明石
耕次 浜川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2021091997A priority Critical patent/JP7585972B2/en
Priority to CN202210586940.8A priority patent/CN115437316A/en
Publication of JP2022184262A publication Critical patent/JP2022184262A/en
Application granted granted Critical
Publication of JP7585972B2 publication Critical patent/JP7585972B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32252Scheduling production, machining, job shop

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Description

本開示は、情報処理装置、方法、およびプログラムに関する。 This disclosure relates to an information processing device, method, and program.

特許文献1には、クラウドサーバが、制御機器を構成する複数のユニット(機器)の制御に用いられるパラメータを一括して管理する技術が記載されている。パラメータは、例えば、ネットワークユニットに設定するIPアドレス、電源ユニットに設定する許容電圧である。まず、制御機器のCPUユニットは、パラメータの取得要求をクラウドサーバに送信する。パラメータの取得要求には、ユニットを識別するIDが含まれている。クラウドサーバは、取得要求を受信すると、取得要求に含まれているIDから特定されるユニットについてのパラメータをCPUユニットに送信する。CPUユニットはクラウドサーバから受信したパラメータを設定し、設定したパラメータに従って制御プログラムを実行する。 Patent Document 1 describes a technology in which a cloud server collectively manages parameters used to control multiple units (devices) that make up a control device. The parameters are, for example, an IP address set in a network unit and an allowable voltage set in a power supply unit. First, the CPU unit of the control device sends a parameter acquisition request to the cloud server. The parameter acquisition request includes an ID that identifies the unit. When the cloud server receives the acquisition request, it sends parameters for the unit identified from the ID included in the acquisition request to the CPU unit. The CPU unit sets the parameters received from the cloud server and executes the control program according to the set parameters.

特開2018-77911号公報JP 2018-77911 A

ここで、クラウドサーバは複数の機器から受け付けた要求を処理すると推測される。クラウドサーバが受け付ける要求には、その要求の内容によって、優先して応答を返すべき要求と、そうでない要求とが含まれることが想定される。例えば、制御機器は、生産ラインで制御対象機器を制御している場合、設定された時間内で制御対象機器に対する処理を実行することが要求されている。これは、生産ラインを安定して稼働させるためである。このため、クラウドサーバは、このような制御機器に対する応答を後回しにすべきではない。しかしながら、特許文献1に記載されている構成の場合、要求の優先度を考慮して要求を処理することが想定されていない。このため、即時に応答すべき応答、例えば、制御機器に対する応答、が後回しにされ得る。 Here, it is assumed that the cloud server processes requests received from multiple devices. It is assumed that the requests received by the cloud server include requests for which a response should be given priority and requests for which a response should not be given priority, depending on the content of the request. For example, when a control device controls a controlled device on a production line, the control device is required to execute processing on the controlled device within a set time. This is to ensure stable operation of the production line. For this reason, the cloud server should not postpone responses to such control devices. However, in the case of the configuration described in Patent Document 1, it is not assumed that requests will be processed with consideration of the priority of the requests. For this reason, responses that should be given immediately, such as responses to control devices, may be postponed.

本開示は、以下の形態として実現することが可能である。 This disclosure can be realized in the following forms:

(1)本開示の形態によれば、複数の機器を制御する情報処理装置が提供される。この情報処理装置は、複数の機器のうちの少なくとも1つの機器である制御対象を制御する機器制御部であって、通信処理部を介して制御対象から供給された入力データを受け取り、入力データを使用して制御プログラムを実行し、得られた出力データを制御対象に供給することにより、制御対象を制御する、機器制御部と、複数の機器から収集した収集データにあらかじめ決められたデータ処理を実行するデータ処理部と、複数の機器と機器制御部とデータ処理部との間におけるデータの授受を制御する通信処理部と、データの宛先とデータの送信元と、優先度と、を対応づけた優先度定義データを記憶する優先度データ記憶部と、を含む。通信処理部が複数の機器、機器制御部、データ処理部から受信するデータは、データの優先度を表す情報を含む。通信処理部は、優先度データ記憶部に格納されている優先度定義データを参照して、受信したデータに含まれている、優先度を表す情報である宛先情報が示す宛先と送信元情報が示す送信元とにより、優先度を判別し、優先度が高いことを示すデータを、優先度が低いことを示すデータより優先して送信する。
このような態様によれば、通信処理部が、優先度の高いデータを優先して送信することにより、即時に処理すべき応答が後回しにされない。このような態様によれば、データに含まれている宛先情報と送信元情報から優先度を判別するので、簡易な方法で優先度を判別することができる。
)上記形態の情報処理装置において、データ処理部は、複数の機器から供給された複数の機器の稼働状態を示す情報を含む状態データを受け取り、状態データにデータ処理を実行し、データ処理により生成した結果データを機器制御部に供給してもよい。機器制御部は、データ処理部から供給された結果データを使用して、制御対象の制御内容を変更してもよい。
このような態様によれば、複数の機器の稼働状態を制御対象に対する制御内容にフィードバックすることができる。
)上記形態の情報処理装置において、第1仮想マシンと第2仮想マシンと、第1仮想マシンと第2仮想マシンとを管理するハイパーバイザと、が動作していてもよい。機器制御部の機能は、第1仮想マシンにおけるリアルタイムOS上で動作する第1アプリケーションソフトウェアにより実現されてもよい。データ処理部の機能は、第2仮想マシンにおける非リアルタイムOS上で動作する第2アプリケーションソフトウェアにより実現されてもよい。通信処理部の機能は、ハイパーバイザにより実現されてもよい。
このような態様によれば、機器制御部と、データ処理部と、を別個の仮想マシンで動作させ、さらに、機器制御部をリアルタイムOS上で実行するため、設定された時間内に制御機器に応答することが容易となる。
)本開示の他の形態によれば、本開示は、仮想環境が構築された情報処理装置において、仮想マシンを管理するハイパーバイザが実行する方法の形態で実現することも可能である。この形態における情報処理装置においては、複数の機器のうちの少なくとも1つの機器である制御対象を制御する第1仮想マシンと、複数の機器から収集した収集データにあらかじめ決められたデータ処理を実行する第2仮想マシンと、が動作するように構成されている。ハイパーバイザは、第1仮想マシンと第2仮想マシンと複数の機器との間におけるデータの授受を制御するステップと、データの宛先とデータの送信元と、優先度と、を対応づけた優先度定義データを参照して、複数の機器、第1仮想マシン、第2仮想マシンから受信したデータに含まれている、優先度を表す情報である宛先情報が示す宛先と送信元情報が示す送信元とにより、データの優先度が高い否かを判別するステップと、優先度が高いデータを優先度が低いデータより優先して送信するステップと、を実行する。
このような態様によれば、優先度の高いデータを優先して送信することにより、即時に処理すべき応答が後回しにされない。
)本開示の他の形態によれば、本開示は、コンピュータが実行するプログラムの形態で実現することも可能である。この形態におけるコンピュータにおいては、仮想環境が構築されており、第1仮想マシンと、第2仮想マシンとが動作するよう構成されている。この形態におけるコンピュータにおいては、第1仮想マシンが、複数の機器のうちの少なくとも1つの機器である制御対象を制御し、第2仮想マシンが、複数の機器から収集した収集データにあらかじめ決められたデータ処理を実行する、ように構成されている。このコンピュータが実行するプログラムは、このコンピュータに、第1仮想マシンと第2仮想マシンと複数の機器との間におけるデータの授受を制御する機能と、データの宛先とデータの送信元と、優先度と、を対応づけた優先度定義データを参照して、複数の機器、第1仮想マシン、第2仮想マシンから受信したデータに含まれている優先度を表す情報である宛先情報が示す宛先と送信元情報が示す送信元とにより、データの優先度が高いか否かを判別する機能と、優先度が高いデータを優先度が低いデータより優先して送信する機能と、を実現させる。
このような態様によれば、優先度の高いデータを優先して送信することにより、即時に処理すべき応答が後回しにされない。
(1) According to an embodiment of the present disclosure, an information processing device that controls a plurality of devices is provided. The information processing device includes a device control unit that controls a control target, which is at least one device among the plurality of devices, and receives input data supplied from the control target via a communication processing unit, executes a control program using the input data, and controls the control target by supplying the obtained output data to the control target; a data processing unit that executes predetermined data processing on collected data collected from the plurality of devices; a communication processing unit that controls data transmission and reception between the plurality of devices, the device control unit, and the data processing unit; and a priority data storage unit that stores priority definition data that associates a data destination, a data transmission source, and a priority . The data received by the communication processing unit from the plurality of devices, the device control unit, and the data processing unit includes information that indicates the priority of the data. The communication processing unit refers to the priority definition data stored in the priority data storage unit, and determines the priority based on the destination indicated by the destination information and the transmission source indicated by the transmission source information, which are information that indicates the priority, included in the received data, and transmits data indicating a high priority in preference to data indicating a low priority.
According to this aspect, the communication processing unit gives priority to transmitting data with a high priority, so that responses that should be processed immediately are not postponed . According to this aspect, the priority is determined from the destination information and the sender information included in the data, so that the priority can be determined in a simple manner.
( 2 ) In the information processing device of the above aspect, the data processing unit may receive status data including information indicating the operation status of the plurality of devices supplied from the plurality of devices, execute data processing on the status data, and supply result data generated by the data processing to the device control unit. The device control unit may change the control content of the control target by using the result data supplied from the data processing unit.
According to this aspect, the operating states of a plurality of devices can be fed back into the control content for the control target.
( 3 ) In the information processing device of the above aspect, a first virtual machine, a second virtual machine, and a hypervisor that manages the first virtual machine and the second virtual machine may be operating. The function of the device control unit may be realized by first application software that operates on a real-time OS in the first virtual machine. The function of the data processing unit may be realized by second application software that operates on a non-real-time OS in the second virtual machine. The function of the communication processing unit may be realized by the hypervisor.
According to this aspect, the device control unit and the data processing unit are operated on separate virtual machines, and further, the device control unit is executed on a real-time OS, making it easy to respond to the controlled device within a set time.
( 4 ) According to another embodiment of the present disclosure, the present disclosure may be realized in the form of a method executed by a hypervisor that manages virtual machines in an information processing device in which a virtual environment is constructed. In the information processing device in this embodiment, a first virtual machine that controls a control target that is at least one device among a plurality of devices, and a second virtual machine that executes a predetermined data processing on collected data collected from the plurality of devices are configured to operate. The hypervisor executes the steps of: controlling data transmission and reception between the first virtual machine, the second virtual machine, and the plurality of devices; determining whether the priority of data is high or not based on the destination indicated by destination information and the source indicated by source information, which are information representing the priority , included in the data received from the plurality of devices, the first virtual machine, and the second virtual machine, by referring to priority definition data that associates the destination of the data, the source of the data, and the priority; and transmitting data with a high priority in preference to data with a low priority.
According to this embodiment, by giving priority to transmitting high-priority data, responses that should be processed immediately are not put off.
( 5 ) According to another embodiment of the present disclosure, the present disclosure may be realized in the form of a program executed by a computer. In the computer in this embodiment, a virtual environment is constructed, and a first virtual machine and a second virtual machine are configured to operate. In the computer in this embodiment, the first virtual machine controls a control target that is at least one device among the multiple devices, and the second virtual machine executes a predetermined data processing on collected data collected from the multiple devices. The program executed by the computer causes the computer to realize a function of controlling data transmission and reception between the first virtual machine, the second virtual machine, and the multiple devices, a function of determining whether the priority of data is high or not based on the destination indicated by destination information and the source indicated by source information, which are information indicating the priority included in the data received from the multiple devices, the first virtual machine, and the second virtual machine, by referring to priority definition data that associates the destination of the data, the source of the data, and the priority, and a function of transmitting data with a high priority in preference to data with a low priority.
According to this embodiment, by giving priority to transmitting high-priority data, responses that should be processed immediately are not put off.

実施形態に係る制御サーバの構成の概要を示す図である。FIG. 2 is a diagram illustrating an overview of a configuration of a control server according to the embodiment. 制御サーバのハードウェア構成を示す図である。FIG. 2 is a diagram illustrating a hardware configuration of a control server. 制御サーバの機能構成を示す図である。FIG. 2 is a diagram illustrating a functional configuration of a control server. パラメータ記憶部が記憶するデータの一例を示す図である。FIG. 4 is a diagram illustrating an example of data stored in a parameter storage unit. 優先度データ記憶部が記憶する優先度定義データの一例を示す図である。11 is a diagram illustrating an example of priority definition data stored in a priority data storage unit; FIG. パケットを優先して送信する様子を表した図である。FIG. 13 is a diagram showing a state in which packets are transmitted with priority. 他の実施形態に係る制御サーバの機能構成を示す図である。FIG. 13 is a diagram illustrating a functional configuration of a control server according to another embodiment. 他の実施形態に係る制御サーバの他の機能構成を示す図である。FIG. 13 is a diagram illustrating another functional configuration of the control server according to another embodiment. 他の実施形態に係る優先度データ記憶部が記憶するグループ定義データの一例を示す図である。FIG. 13 is a diagram illustrating an example of group definition data stored in a priority data storage unit according to another embodiment. 他の実施形態に係る優先度データ記憶部が記憶する優先度定義データの一例を示す図である。FIG. 13 is a diagram illustrating an example of priority definition data stored in a priority data storage unit according to another embodiment.

A.実施形態
図1は、実施形態に係る制御サーバ100の構成の概要を示す図である。制御サーバ100は、産業用のコンピュータである。制御サーバ100は、生産現場において制御対象機器91、92を制御する制御機器として機能する。制御対象機器91、92は、生産機械、センサ、駆動機器、リモートIO機器等を含むFA(Factory Automation)機器である。実施形態において、制御対象機器91、92は、例えば、多軸を有する加工機である。より具体的には、制御対象機器91、92は、エンジンブロック、ギヤといった自動車の部品を加工する工作機械である。さらに、制御サーバ100は、制御対象機器91、92から供給されたデータに決められた処理を実行して、制御対象機器91、92の制御に使用するパラメータの最適値を算出する。制御サーバ100を情報処理装置とも呼ぶ。
A. Embodiment FIG. 1 is a diagram showing an outline of the configuration of a control server 100 according to an embodiment. The control server 100 is an industrial computer. The control server 100 functions as a control device that controls controlled devices 91 and 92 at a production site. The controlled devices 91 and 92 are FA (Factory Automation) devices including production machines, sensors, driving devices, remote IO devices, and the like. In the embodiment, the controlled devices 91 and 92 are, for example, processing machines having multiple axes. More specifically, the controlled devices 91 and 92 are machine tools that process automobile parts such as engine blocks and gears. Furthermore, the control server 100 executes processing determined for data supplied from the controlled devices 91 and 92 to calculate optimal values of parameters used to control the controlled devices 91 and 92. The control server 100 is also called an information processing device.

制御サーバ100においては、物理的なコンピュータ上で、複数の仮想的なコンピュータを動作させる仮想化環境が構築されている。制御サーバ100は、ハイパーバイザ10と、仮想マシン20、30、40と、RTOS(Real Time Operating System)50と、非リアルタイムOS(Operating System)60と、第1アプリケーション71、第2アプリケーション72、第3アプリケーション73とを含む。 In the control server 100, a virtualization environment is created on a physical computer in which multiple virtual computers are operated. The control server 100 includes a hypervisor 10, virtual machines 20, 30, and 40, an RTOS (Real Time Operating System) 50, a non-real time OS (Operating System) 60, a first application 71, a second application 72, and a third application 73.

ハイパーバイザ10は、ハードウェア上で動作し、仮想環境を実現するためのソフトウェアである。例えば、ハイパーバイザ10は、制御サーバ100のハードウェア資源を仮想マシン20、30、40それぞれに割り振る。 The hypervisor 10 is software that runs on hardware to realize a virtual environment. For example, the hypervisor 10 allocates the hardware resources of the control server 100 to each of the virtual machines 20, 30, and 40.

仮想マシン20、30、40は、ハイパーバイザ10により構築された仮想的なコンピュータである。仮想マシン20、30、40は、ハイパーバイザ10上で動作し、ハイパーバイザ10により管理される。 The virtual machines 20, 30, and 40 are virtual computers constructed by the hypervisor 10. The virtual machines 20, 30, and 40 run on the hypervisor 10 and are managed by the hypervisor 10.

RTOS50は、あらかじめ定められた時間までに、あらかじめ定められた処理が実行できるようにスケジューリングすることができるOSである。 RTOS 50 is an OS that can schedule predetermined processing to be executed by a predetermined time.

非リアルタイムOS60は、リアルタイム性を保証することができないOSである。非リアルタイムOS60は、例えば、様々なアプリケーションプログラムを搭載した汎用OSである。 The non-real-time OS 60 is an OS for which real-time performance cannot be guaranteed. The non-real-time OS 60 is, for example, a general-purpose OS equipped with various application programs.

第1アプリケーション71、第2アプリケーション72、第3アプリケーション73は、仮想マシン20、30、40に、各種機能を実現させるアプリケーションソフトウェアである。 第1アプリケーション71は、制御対象機器91、92を制御するソフトウェアである。第1アプリケーション71は、例えば、制御プログラムと制御プログラムの実行に使用される各種パラメータとを含む。制御プログラムは、制御対象機器91、92を制御するため、ラダーダイアグラム、ファンクションブロックダイアグラム、シーケンシャルファンクションチャート等で作成されたプログラムである。仮想マシン20は、第1アプリケーション71を実行することにより、制御対象機器91を制御する。仮想マシン30は、第1アプリケーション71を実行するようにより、制御対象機器92を制御する。第2アプリケーション72は、制御対象機器91、92から収集したデータから、制御対象機器91、92の制御に使用するパラメータの最適値を算出するソフトウェアである。第3アプリケーション73は、データベース管理システムに代表されるような、要求に応じてデータを保存し、読み出すソフトウェアである。 The first application 71, the second application 72, and the third application 73 are application software that allows the virtual machines 20, 30, and 40 to realize various functions. The first application 71 is software that controls the controlled devices 91 and 92. The first application 71 includes, for example, a control program and various parameters used to execute the control program. The control program is a program created using a ladder diagram, a function block diagram, a sequential function chart, or the like to control the controlled devices 91 and 92. The virtual machine 20 controls the controlled device 91 by executing the first application 71. The virtual machine 30 controls the controlled device 92 by executing the first application 71. The second application 72 is software that calculates optimal values of parameters used to control the controlled devices 91 and 92 from data collected from the controlled devices 91 and 92. The third application 73 is software that saves and reads data upon request, such as a database management system.

制御サーバ100は、例えば、工場内のサーバルームに配置されている。制御サーバ100は通信ネットワーク80を介して制御対象機器91、92と通信する。通信ネットワーク80は、工場内に設置された通信線によって実現される産業用の制御ネットワークである。 The control server 100 is placed, for example, in a server room in a factory. The control server 100 communicates with the controlled devices 91 and 92 via a communication network 80. The communication network 80 is an industrial control network realized by communication lines installed in the factory.

実施形態において、仮想マシン20、30上では、ゲストOSとしてRTOS50がそれぞれ実行される。RTOS50上では、制御対象機器91、92を制御するための第1アプリケーション71が実行される。このような構成を備えることで、仮想マシン20、30は、PLC(Programable Logic Controller)といった制御機器として機能する。仮想マシン20、30を第1仮想マシンとも呼ぶ。 In the embodiment, an RTOS 50 is executed as a guest OS on each of the virtual machines 20 and 30. A first application 71 for controlling the controlled devices 91 and 92 is executed on the RTOS 50. With this configuration, the virtual machines 20 and 30 function as a control device such as a programmable logic controller (PLC). The virtual machines 20 and 30 are also referred to as first virtual machines.

仮想マシン40上では、ゲストOSとして非リアルタイムOS60が実行される。非リアルタイムOS60上では、パラメータの最適値を算出するための第2アプリケーション72と、データベース管理システムである第3アプリケーション73と、が実行される。このような構成を備えることで、仮想マシン40は、情報処理を実行するコンピュータとして機能する。仮想マシン40を第2仮想マシンとも呼ぶ。 On the virtual machine 40, a non-real-time OS 60 is executed as a guest OS. On the non-real-time OS 60, a second application 72 for calculating optimal values of parameters and a third application 73 which is a database management system are executed. With this configuration, the virtual machine 40 functions as a computer that executes information processing. The virtual machine 40 is also called a second virtual machine.

図2は、制御サーバ100のハードウェア構成を示す図である。制御サーバ100は、プロセッサ1と、主記憶部2と、補助記憶部3と、インタフェース4と、通信部5と、を備える。主記憶部2と、補助記憶部3と、インタフェース4と、通信部5と、は内部バス9を介してプロセッサ1に接続される。 Figure 2 is a diagram showing the hardware configuration of the control server 100. The control server 100 includes a processor 1, a main memory unit 2, an auxiliary memory unit 3, an interface 4, and a communication unit 5. The main memory unit 2, the auxiliary memory unit 3, the interface 4, and the communication unit 5 are connected to the processor 1 via an internal bus 9.

プロセッサ1は、例えばCPU(Central Processing Unit)である。プロセッサ1が、補助記憶部3に記憶されたプログラムを主記憶部2に読み込んで実行することにより、制御サーバ100の各機能が実現される。 The processor 1 is, for example, a CPU (Central Processing Unit). The processor 1 loads a program stored in the auxiliary memory unit 3 into the main memory unit 2 and executes it, thereby realizing each function of the control server 100.

主記憶部2は、例えば、RAM(Random Access Memory)を含む主記憶装置である。主記憶部2には、補助記憶部3からプログラムがロードされる。また、主記憶部2は、プロセッサ1がプログラムを実行する際の作業領域として使用される。 The main memory unit 2 is, for example, a main storage device including a RAM (Random Access Memory). Programs are loaded into the main memory unit 2 from the auxiliary memory unit 3. The main memory unit 2 is also used as a working area when the processor 1 executes a program.

補助記憶部3は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read-Only Memory)である。補助記憶部3は、プロセッサ1が実行するプログラム、プログラムの実行に使用される種々のデータを記憶する。例えば、補助記憶部3には、制御サーバ100に仮想化環境を構築するためのプログラムが格納されている。補助記憶部3は、プロセッサ1の制御により、プロセッサ1が利用するデータをプロセッサ1に供給し、プロセッサ1から供給されたデータを記憶する。 The auxiliary storage unit 3 is, for example, a hard disk drive (HDD), a solid state drive (SSD), a flash memory, or an electrically erasable programmable read-only memory (EEPROM). The auxiliary storage unit 3 stores programs executed by the processor 1 and various data used to execute the programs. For example, the auxiliary storage unit 3 stores a program for constructing a virtualization environment in the control server 100. Under the control of the processor 1, the auxiliary storage unit 3 supplies the processor 1 with data used by the processor 1 and stores the data supplied from the processor 1.

インタフェース4は、例えば、シリアルポート、USB(Universal Serial Bus)ポートなどのI/O(Input/Output)ポートである。インタフェース4には、キーボード、マウス、タッチパネルなどの入力装置が接続される。インタフェース4は、入力装置を介してユーザが入力した情報をプロセッサ1に出力する。また、インタフェース4には、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の表示装置が接続される。インタフェース4は、プロセッサ1から供給された情報が示す画像を表示装置に出力する。 The interface 4 is, for example, an I/O (Input/Output) port such as a serial port or a USB (Universal Serial Bus) port. Input devices such as a keyboard, a mouse, and a touch panel are connected to the interface 4. The interface 4 outputs information input by a user via the input device to the processor 1. In addition, a display device such as a liquid crystal display or an organic EL (Electro Luminescence) display is connected to the interface 4. The interface 4 outputs an image indicated by the information supplied from the processor 1 to the display device.

通信部5は、外部の装置と通信するためのネットワークインタフェース回路を含む。通信部5は、外部から信号を受信して、この信号により示されるデータをプロセッサ1へ出力する。また、通信部5は、プロセッサ1から出力されたデータを示す信号を外部の装置へ送信する。 The communication unit 5 includes a network interface circuit for communicating with an external device. The communication unit 5 receives a signal from the outside and outputs data indicated by this signal to the processor 1. The communication unit 5 also transmits a signal indicating the data output from the processor 1 to the external device.

図3は、制御サーバ100の機能構成を示す図である。制御サーバ100は、機器制御部201と、機器制御部301と、パラメータ算出部401と、パラメータ記憶部402と、通信処理部1001と、優先度データ記憶部1002と、を備える。機器制御部201は、仮想マシン20に含まれている。機器制御部301は、仮想マシン30に含まれている。パラメータ算出部401とパラメータ記憶部402とは、仮想マシン40に含まれている。通信処理部1001と優先度データ記憶部1002とは、ハイパーバイザ10に含まれている。 Figure 3 is a diagram showing the functional configuration of the control server 100. The control server 100 includes a device control unit 201, a device control unit 301, a parameter calculation unit 401, a parameter storage unit 402, a communication processing unit 1001, and a priority data storage unit 1002. The device control unit 201 is included in the virtual machine 20. The device control unit 301 is included in the virtual machine 30. The parameter calculation unit 401 and the parameter storage unit 402 are included in the virtual machine 40. The communication processing unit 1001 and the priority data storage unit 1002 are included in the hypervisor 10.

機器制御部201は、制御対象機器91を制御する制御機器として機能する。機器制御部201の機能は、図1に示す仮想マシン20が第1アプリケーション71を実行することにより実現される。第1アプリケーション71を第1アプリケーションソフトウェアとも呼ぶ。 The device control unit 201 functions as a control device that controls the control target device 91. The function of the device control unit 201 is realized by the virtual machine 20 shown in FIG. 1 executing the first application 71. The first application 71 is also referred to as the first application software.

図3に示す機器制御部301は、制御対象機器92を制御する制御機器として機能する。機器制御部301の機能は、図1に示す仮想マシン30が第1アプリケーション71を実行することにより実現される。 The device control unit 301 shown in FIG. 3 functions as a control device that controls the control target device 92. The function of the device control unit 301 is realized by the virtual machine 30 shown in FIG. 1 executing the first application 71.

図3に示す機器制御部201、301は、例えば、以下のような処理をそれぞれ行って、制御対象機器91、92をそれぞれ制御する。 The device control units 201 and 301 shown in FIG. 3 each perform the following processing to control the control target devices 91 and 92, respectively.

機器制御部201は、制御対象機器91から供給されたデータを入力値として使用して制御プログラム内の命令を順次実行する。機器制御部201は、通信処理部1001を介して制御対象機器91からデータを受信する。機器制御部201は、制御プログラム内の最後の命令を実行すると、制御プログラムを実行して得られた出力値を含むデータを、通信処理部1001を介して、制御対象機器91に送信する。機器制御部201は、通信処理部1001を介して、制御対象機器91から新たにデータを受け取る。機器制御部201は、新たに供給されたデータを入力値として使用して、再び制御プログラム内の命令を順次実行する。機器制御部201は、このサイクルを繰り返すことによって、制御対象機器91を制御する。機器制御部301が制御対象機器92を制御する方法も同様である。制御対象機器91、92が、機器制御部201、301に供給するデータを、入力データとも呼ぶ。機器制御部201、301が、制御対象機器91、92に供給するデータを出力データとも呼ぶ。 The device control unit 201 sequentially executes the commands in the control program using the data supplied from the controlled device 91 as input values. The device control unit 201 receives data from the controlled device 91 via the communication processing unit 1001. When the device control unit 201 executes the last command in the control program, it transmits data including the output value obtained by executing the control program to the controlled device 91 via the communication processing unit 1001. The device control unit 201 receives new data from the controlled device 91 via the communication processing unit 1001. The device control unit 201 sequentially executes the commands in the control program again using the newly supplied data as input values. The device control unit 201 controls the controlled device 91 by repeating this cycle. The method in which the device control unit 301 controls the controlled device 92 is similar. The data supplied by the controlled devices 91 and 92 to the device control units 201 and 301 is also called input data. The data that the device control units 201 and 301 supply to the controlled devices 91 and 92 is also called output data.

以下の説明においては、機器制御部201と制御対象機器91とを例に説明するが、機器制御部301と制御対象機器92も同様の構成を備える。 In the following explanation, the device control unit 201 and the controlled device 91 are used as examples, but the device control unit 301 and the controlled device 92 also have the same configuration.

制御対象機器91が機器制御部201に供給するデータは、例えば、ワークの位置決めの完了の通知、回転軸の回転の完了の通知等を含む。機器制御部201が制御対象機器91に供給するデータは、回転軸、回転数、送り速度等を指定する情報を含む。 The data supplied from the controlled device 91 to the device control unit 201 includes, for example, a notification of the completion of the positioning of the workpiece, a notification of the completion of the rotation of the rotation axis, etc. The data supplied from the device control unit 201 to the controlled device 91 includes information specifying the rotation axis, the number of rotations, the feed rate, etc.

例えば、制御対象機器91からワークの位置決めの完了の通知を受けると、機器制御部201は、制御プログラムを実行して、次に回転させる回転軸、回転数、送り速度を示すデータを制御対象機器91に供給する。制御対象機器91から回転軸の回転の完了の通知を受けると、機器制御部201は、制御プログラムを実行して、次に回転させる回転軸、回転数、送り速度を示すデータを制御対象機器91に供給する。 For example, when the equipment control unit 201 receives a notification from the controlled equipment 91 that the positioning of the workpiece is complete, the equipment control unit 201 executes the control program and supplies the controlled equipment 91 with data indicating the next rotation axis, the rotation speed, and the feed speed. When the equipment control unit 201 receives a notification from the controlled equipment 91 that the rotation of the rotation axis is complete, the equipment control unit 201 executes the control program and supplies the controlled equipment 91 with data indicating the next rotation axis, the rotation speed, and the feed speed.

このように、制御対象機器91、92は、機器制御部201、301が出力した出力値に従って動作する。出力値が設定された時間内に制御対象機器91、92に供給されないと、制御対象機器91、92の動作が遅れる。よって、機器制御部201、301は、設定された時間内に制御プログラムの1サイクルを実行する必要がある。 In this way, the controlled devices 91, 92 operate according to the output values output by the device control units 201, 301. If the output values are not supplied to the controlled devices 91, 92 within the set time, the operation of the controlled devices 91, 92 will be delayed. Therefore, the device control units 201, 301 need to execute one cycle of the control program within the set time.

さらに、機器制御部201、301は、通信処理部1001を介して、パラメータ算出部401から制御対象機器91、92の制御に使用するパラメータの最適値を受け取る。機器制御部201、301は、パラメータの最適値を受け取ると、制御プログラムの実行に使用するパラメータの値を更新する。これにより、機器制御部201、301が実行する制御対象機器91、92の制御内容が変更される。 Furthermore, the device control units 201, 301 receive optimal values of parameters used to control the controlled devices 91, 92 from the parameter calculation unit 401 via the communication processing unit 1001. Upon receiving the optimal parameter values, the device control units 201, 301 update the values of the parameters used to execute the control program. This changes the control content of the controlled devices 91, 92 executed by the device control units 201, 301.

パラメータ算出部401は、通信処理部1001を介して制御対象機器91、92からデータを受信する。このデータを収集データとも呼ぶ。パラメータ算出部401は、制御対象機器91、92から収集したデータを蓄積する。パラメータ算出部401は、蓄積した収集データから、制御対象機器91、92の制御に使用するパラメータの最適値を算出する。パラメータ算出部401をデータ処理部とも呼ぶ。 The parameter calculation unit 401 receives data from the control target devices 91, 92 via the communication processing unit 1001. This data is also called collected data. The parameter calculation unit 401 accumulates the data collected from the control target devices 91, 92. The parameter calculation unit 401 calculates optimal values of parameters to be used for controlling the control target devices 91, 92 from the accumulated collected data. The parameter calculation unit 401 is also called a data processing unit.

制御対象機器91、92がパラメータ算出部401に供給するデータは、制御対象機器の稼働状態を示す情報を含む。このデータを状態データとも呼ぶ。このデータには、例えば、各回転軸について、切削速度、トルク値、回転軸に取り付けられている工具の温度の情報が含まれている。制御対象機器91、92は、例えば、決められた時刻に、パラメータ算出部401に稼働状態を示すデータを送信してもよい。あるいは、制御対象機器91、92は、パラメータ算出部401からの要求に応答して、パラメータ算出部401に稼働状態を示すデータを送信してもよい。 The data supplied by the controlled devices 91, 92 to the parameter calculation unit 401 includes information indicating the operating status of the controlled devices. This data is also called status data. This data includes, for example, for each rotation axis, information on the cutting speed, torque value, and temperature of the tool attached to the rotation axis. The controlled devices 91, 92 may transmit data indicating the operating status to the parameter calculation unit 401, for example, at a predetermined time. Alternatively, the controlled devices 91, 92 may transmit data indicating the operating status to the parameter calculation unit 401 in response to a request from the parameter calculation unit 401.

また、パラメータ算出部401は、制御対象機器91、92の各軸に取り付けられている工具の情報(工具の種類、工具の刃の材質等)を示すデータをあらかじめ有している。パラメータ算出部401は、このデータと、制御対象機器91、92から供給されたデータとに基づいて、工具の発熱量を算出し、温度毎の最適な切削速度を算出する。最適な切削速度とは、工具の摩耗を抑えることができるような切削速度である。ここで、パラメータ算出部401は、加工対象の材料毎に、最適な切削速度を算出する。パラメータ算出部401は、最適な切削速度を含むデータを生成し、生成したデータをパラメータ記憶部402に格納する。このデータを結果データとも呼ぶ。 The parameter calculation unit 401 also has in advance data indicating information on the tools attached to each axis of the controlled devices 91, 92 (such as the type of tool and the material of the tool blade). The parameter calculation unit 401 calculates the amount of heat generated by the tool based on this data and the data supplied from the controlled devices 91, 92, and calculates the optimal cutting speed for each temperature. The optimal cutting speed is a cutting speed that can suppress wear on the tool. Here, the parameter calculation unit 401 calculates the optimal cutting speed for each material to be processed. The parameter calculation unit 401 generates data including the optimal cutting speed, and stores the generated data in the parameter storage unit 402. This data is also called result data.

パラメータ算出部401は、パラメータ記憶部402に格納されているデータを、通信処理部1001を介して機器制御部201、301に送信する。具体的には、パラメータ算出部401は、パラメータ記憶部402に格納されているパラメータのうち、機器制御部201が制御対象機器91の制御のため使用するパラメータを、機器制御部201に送信する。パラメータ算出部401は、パラメータ記憶部402に格納されているパラメータのうち、機器制御部301が制御対象機器92の制御のため使用するパラメータを、機器制御部301に送信する。 The parameter calculation unit 401 transmits data stored in the parameter storage unit 402 to the device control units 201 and 301 via the communication processing unit 1001. Specifically, the parameter calculation unit 401 transmits, from among the parameters stored in the parameter storage unit 402, parameters that the device control unit 201 uses to control the controlled device 91 to the device control unit 201. The parameter calculation unit 401 transmits, from among the parameters stored in the parameter storage unit 402, parameters that the device control unit 301 uses to control the controlled device 92 to the device control unit 301.

パラメータ算出部401は、例えば、通信処理部1001からの要求に応答して、あるいは、決められた時刻になると、パラメータ記憶部402に格納されているパラメータを機器制御部201、301に送信する。機器制御部201、301は、新たに供給されたパラメータを使用して、制御プログラムを実行する。例えば、パラメータ算出部401から切削速度の最適値が供給された場合、機器制御部201、301は、制御プログラムの実行により、切削速度の最適値と、あらかじめ定義されている工具の刃径とから、最適な回転数を算出することができる。パラメータ算出部401の機能は、図1に示す仮想マシン40が第2アプリケーション72を実行することにより実現される。第2アプリケーション72を第2アプリケーションソフトウェアとも呼ぶ。 For example, in response to a request from the communication processing unit 1001 or at a predetermined time, the parameter calculation unit 401 transmits the parameters stored in the parameter storage unit 402 to the equipment control units 201, 301. The equipment control units 201, 301 execute the control program using the newly supplied parameters. For example, when an optimal value of the cutting speed is supplied from the parameter calculation unit 401, the equipment control units 201, 301 can calculate an optimal rotation speed from the optimal value of the cutting speed and a predefined cutting diameter of the tool by executing the control program. The function of the parameter calculation unit 401 is realized by the virtual machine 40 shown in FIG. 1 executing the second application 72. The second application 72 is also called second application software.

図3に示すパラメータ記憶部402は、パラメータ算出部401が算出した各種パラメータを記憶する。 The parameter storage unit 402 shown in FIG. 3 stores various parameters calculated by the parameter calculation unit 401.

図4は、パラメータ記憶部402が記憶するデータの一例を示す図である。図示する例では、パラメータ記憶部402には、回転軸それぞれについて、機器の回転軸それぞれについての切削速度の最適値のデータが格納されている。ここで、工具の温度と加工対象の材料とについて、それぞれ算出された切削速度の最適値のデータが、パラメータ記憶部402に格納されている。パラメータ記憶部402の機能は、図1に示す仮想マシン40が第3アプリケーション73を実行することにより実現される。 FIG. 4 is a diagram showing an example of data stored in the parameter storage unit 402. In the example shown, the parameter storage unit 402 stores data on the optimum cutting speed for each rotation axis of the equipment. Here, data on the optimum cutting speed calculated for each tool temperature and material to be machined is stored in the parameter storage unit 402. The function of the parameter storage unit 402 is realized by the virtual machine 40 shown in FIG. 1 executing the third application 73.

図3に示す通信処理部1001は、産業用の通信プロトコルに則って、制御対象機器91、92と通信する。産業用の通信プロトコルは、例えば、EtherNet/IP(商標)である。通信処理部1001は、仮想マシン20、30、40と通信する。以下の説明においては、通信がパケット単位で行われるものとする。 The communication processing unit 1001 shown in FIG. 3 communicates with the controlled devices 91 and 92 in accordance with an industrial communication protocol. The industrial communication protocol is, for example, EtherNet/IP (trademark). The communication processing unit 1001 communicates with the virtual machines 20, 30, and 40. In the following description, it is assumed that communication is performed in packet units.

通信処理部1001は、パケットを受信すると、受信したパケットに含まれている情報から、パケットの宛先と送信元とを判別する。パケットには、宛先の機器または仮想マシンを示す宛先IP(Internet Protocol)アドレスと、送信元の機器または仮想マシンを示す送信元IPアドレスとが含まれている。制御サーバ100上で動作する仮想マシン20、30、40にはそれぞれ異なるIPアドレスが割り当てられているものとする。 When the communication processing unit 1001 receives a packet, it determines the destination and source of the packet from the information contained in the received packet. The packet contains a destination IP (Internet Protocol) address indicating the destination device or virtual machine, and a source IP address indicating the source device or virtual machine. It is assumed that different IP addresses are assigned to the virtual machines 20, 30, and 40 operating on the control server 100.

さらに、パケットには、宛先のアプリケーションを示す宛先ポートの値と、送信元のアプリケーションを示す送信元ポートの値とが含まれている。宛先ポートの値を宛先情報とも呼ぶ。送信元ポートの値を送信元情報とも呼ぶ。宛先ポートの値は、宛先が、機器制御部201、301、パラメータ算出部401、制御対象機器91、92のいずれであるかを示す値である。送信元ポートの値は、送信元が、機器制御部201、301、パラメータ算出部401、制御対象機器91、92のいずれであるかを示す値である。制御対象機器91、92はアプリケーションではないため、制御対象機器91、92には、あらかじめ決められた値が割り当てられている。 Furthermore, the packet contains a destination port value indicating the destination application and a source port value indicating the source application. The destination port value is also called destination information. The source port value is also called source information. The destination port value is a value indicating whether the destination is the device control unit 201, 301, the parameter calculation unit 401, or the controlled device 91, 92. The source port value is a value indicating whether the source is the device control unit 201, 301, the parameter calculation unit 401, or the controlled device 91, 92. Since the controlled devices 91, 92 are not applications, predetermined values are assigned to the controlled devices 91, 92.

機器制御部201、301、パラメータ算出部401、制御対象機器91、92は、例えば、送信するデータに、宛先IPアドレスと送信元アドレスとを含むIP(Internet Protocol)ヘッダと、宛先ポートと送信元ポートとを含むTCP(Transmission Control Protocol)ヘッダと、を付加したパケットを送信する。 The device control units 201, 301, parameter calculation unit 401, and controlled devices 91, 92 send packets that, for example, include an IP (Internet Protocol) header including a destination IP address and a source address, and a TCP (Transmission Control Protocol) header including a destination port and a source port, to the data to be sent.

通信処理部1001は、例えば、IPヘッダに含まれている宛先IPアドレスと送信元IPアドレスとから、宛先の機器または仮想マシンと、送信元の機器または仮想マシンとを判別する。通信処理部1001は、例えば、TCPヘッダの宛先ポートと送信元ポートとから、宛先と送信元とが、機器制御部201、301、パラメータ算出部401、制御対象機器91、92のいずれであるかを判別する。 The communication processing unit 1001, for example, determines the destination device or virtual machine and the source device or virtual machine from the destination IP address and source IP address included in the IP header. The communication processing unit 1001, for example, determines whether the destination and source are the device control unit 201, 301, the parameter calculation unit 401, or the controlled device 91, 92 from the destination port and source port in the TCP header.

通信処理部1001は、制御対象機器91、92、仮想マシン20の機器制御部201、仮想マシン30の機器制御部301、仮想マシン40のパラメータ算出部401、からパケットを受信し、適切な宛先にパケットを転送する。このように通信処理部1001は、制御対象機器91、92と、機器制御部201、301と、パラメータ算出部401と、の間におけるデータの授受を制御する。また、通信処理部1001は、いわゆる、スイッチとしての役割を果たすとも言える。 The communication processing unit 1001 receives packets from the controlled devices 91, 92, the device control unit 201 of the virtual machine 20, the device control unit 301 of the virtual machine 30, and the parameter calculation unit 401 of the virtual machine 40, and forwards the packets to an appropriate destination. In this way, the communication processing unit 1001 controls the exchange of data between the controlled devices 91, 92, the device control units 201, 301, and the parameter calculation unit 401. The communication processing unit 1001 can also be said to fulfill the role of a so-called switch.

図5は、優先度データ記憶部1002が記憶するデータの一例を示す図である。優先度データ記憶部1002は、データの宛先とデータの送信元と、優先度と、を対応づけた定義データを記憶する。優先度データ記憶部1002に格納されているデータを優先度定義データとも呼ぶ。例えば、制御サーバ100の管理者が、優先度データ記憶部1002にあらかじめデータを格納しているものとする。優先度データ記憶部1002には、宛先ポートの値と送信ポートの値と、優先度と、を対応づけたデータが格納されている。実施形態においては、宛先ポートの値と送信ポートの値とが優先度を表す情報として使用される。実施形態においては、宛先ポートまたは送信元ポートには次のような値がセットされるものとする。「P91」は、制御対象機器91を表す値として、宛先ポートまたは送信元ポートに設定される値である。「P92」は、制御対象機器92を示す値である。「P201」は、機器制御部201を示す値である。「P301」は、機器制御部301を示す値である。「P401」は、パラメータ算出部401を示す値である。 Figure 5 is a diagram showing an example of data stored in the priority data storage unit 1002. The priority data storage unit 1002 stores definition data that associates the destination of data, the source of data, and the priority. The data stored in the priority data storage unit 1002 is also called priority definition data. For example, it is assumed that the administrator of the control server 100 stores data in advance in the priority data storage unit 1002. The priority data storage unit 1002 stores data that associates the value of the destination port, the value of the transmission port, and the priority. In the embodiment, the value of the destination port and the value of the transmission port are used as information representing the priority. In the embodiment, the following values are set in the destination port or the source port. "P91" is a value that is set in the destination port or the source port as a value representing the controlled device 91. "P92" is a value that indicates the controlled device 92. "P201" is a value that indicates the device control unit 201. "P301" is a value that indicates the device control unit 301. "P401" is a value indicating the parameter calculation unit 401.

実施形態においては、通信処理部1001を介したパケット(データ)の流れは4パターンある。 In this embodiment, there are four patterns of packet (data) flow through the communication processing unit 1001.

(a)第1パターン
第1パターンでは、パケットの送信元が制御対象機器91、92であり、パケットの宛先が機器制御部201、301である。制御対象機器91は、仮想マシン20の機器制御部201を宛先としたパケットを送信する。この場合、パケットの宛先IPアドレスは仮想マシン20を指定するものであるので、このパケットは制御サーバ100に送信される。通信処理部1001は、受信したパケットの宛先が仮想マシン20の機器制御部201であると判別すると、パケットを仮想マシン20に送信する。また、制御対象機器92は、仮想マシン30の機器制御部301を宛先としたパケットを送信する。この場合、パケットの宛先IPアドレスは仮想マシン30を指定するものであるので、このパケットは制御サーバ100に送信される。通信処理部1001は、受信したパケットの宛先が仮想マシン30の機器制御部301であると判別すると、パケットを仮想マシン30に送信する。
(a) First Pattern In the first pattern, the source of the packet is the controlled device 91, 92, and the destination of the packet is the device control unit 201, 301. The controlled device 91 transmits a packet addressed to the device control unit 201 of the virtual machine 20. In this case, the destination IP address of the packet specifies the virtual machine 20, so the packet is transmitted to the control server 100. When the communication processing unit 1001 determines that the destination of the received packet is the device control unit 201 of the virtual machine 20, it transmits the packet to the virtual machine 20. In addition, the controlled device 92 transmits a packet addressed to the device control unit 301 of the virtual machine 30. In this case, the destination IP address of the packet specifies the virtual machine 30, so the packet is transmitted to the control server 100. When the communication processing unit 1001 determines that the destination of the received packet is the device control unit 301 of the virtual machine 30, it transmits the packet to the virtual machine 30.

(b)第2パターン
第2パターンでは、パケットの送信元が機器制御部201、301であり、パケットの宛先が制御対象機器91、92である。機器制御部201は、制御対象機器91を宛先としたパケットを送信する。このパケットは、通信処理部1001に渡される。通信処理部1001は、パケットの宛先が制御対象機器91であると判別すると、パケットを制御対象機器91に送信する。また、機器制御部301は、制御対象機器92を宛先としたパケットを送信する。このパケットは、通信処理部1001に渡される。通信処理部1001は、パケットの宛先が制御対象機器92であると判別すると、パケットを制御対象機器92に送信する。
(b) Second Pattern In the second pattern, the source of the packet is the device control unit 201, 301, and the destination of the packet is the controlled device 91, 92. The device control unit 201 transmits a packet addressed to the controlled device 91. This packet is passed to the communication processing unit 1001. When the communication processing unit 1001 determines that the destination of the packet is the controlled device 91, it transmits the packet to the controlled device 91. In addition, the device control unit 301 transmits a packet addressed to the controlled device 92. This packet is passed to the communication processing unit 1001. When the communication processing unit 1001 determines that the destination of the packet is the controlled device 92, it transmits the packet to the controlled device 92.

(c)第3パターン
第3パターンでは、パケットの送信元が制御対象機器91、92であり、パケットの宛先がパラメータ算出部401である。制御対象機器91、92は、パラメータ算出部401を宛先としたパケットを送信する。この場合、パケットの宛先IPアドレスは仮想マシン40を指定するものであるので、このパケットは制御サーバ100に送信される。通信処理部1001は、受信したパケットの宛先が仮想マシン40のパラメータ算出部401であると判別すると、パケットを仮想マシン40に送信する。
(c) Third Pattern In the third pattern, the source of the packet is the controlled devices 91 and 92, and the destination of the packet is the parameter calculation unit 401. The controlled devices 91 and 92 transmit packets addressed to the parameter calculation unit 401. In this case, the destination IP address of the packet specifies the virtual machine 40, so the packet is transmitted to the control server 100. When the communication processing unit 1001 determines that the destination of the received packet is the parameter calculation unit 401 of the virtual machine 40, it transmits the packet to the virtual machine 40.

(d)第4パターン
第4パターンでは、パケットの送信先がパラメータ算出部401であり、パケットの宛先が機器制御部201、301である。パラメータ算出部401は、機器制御部201または機器制御部301を宛先としたパケットを送信する。このパケットは、通信処理部1001に渡される。通信処理部1001は、パケットの宛先が仮想マシン20の機器制御部201であると判別すると、パケットを仮想マシン20に送信する。通信処理部1001は、パケットの宛先が仮想マシン30の機器制御部301であると判別すると、パケットを仮想マシン30に送信する。
(d) Fourth Pattern In the fourth pattern, the destination of the packet is the parameter calculation unit 401, and the destination of the packet is the device control unit 201, 301. The parameter calculation unit 401 transmits a packet addressed to the device control unit 201 or the device control unit 301. This packet is passed to the communication processing unit 1001. When the communication processing unit 1001 determines that the destination of the packet is the device control unit 201 of the virtual machine 20, it transmits the packet to the virtual machine 20. When the communication processing unit 1001 determines that the destination of the packet is the device control unit 301 of the virtual machine 30, it transmits the packet to the virtual machine 30.

これらの4パターンのパケットの流れのうち、制御対象機器91、92と、機器制御部201、301との間でのパケットのやり取り(第1パターン、第2パターン)については、遅延することが望ましくない。上述したように、機器制御部201、301から制御対象機器91、92への出力値の供給の遅れが、制御対象機器91、92の稼働遅延につながるからである。 Of these four patterns of packet flow, delays in packet exchanges (first and second patterns) between the controlled devices 91, 92 and the device control units 201, 301 are undesirable. As described above, delays in the supply of output values from the device control units 201, 301 to the controlled devices 91, 92 lead to delays in the operation of the controlled devices 91, 92.

一方で、制御対象機器91、92から、パラメータ算出部401へのパケットの送信(第3パターン)が遅延しても、生産ラインの稼働に影響はない。パラメータ算出部401から、機器制御部201、301へのパケットの送信(第4パターン)が遅延しても、生産ラインの稼働に影響はない。 On the other hand, even if the transmission of packets from the controlled devices 91, 92 to the parameter calculation unit 401 (third pattern) is delayed, the operation of the production line is not affected. Even if the transmission of packets from the parameter calculation unit 401 to the device control units 201, 301 (fourth pattern) is delayed, the operation of the production line is not affected.

通信処理部1001は以下のような構成を備えることにより、第1パターン、第2パターンのパケットの送受信について、遅延が発生することを防止する。通信処理部1001は、決められた期間に、複数のパケットを受信した場合、パケットに含まれている宛先ポートの値と送信元ポートの値と、優先度記憶部1002に格納されている優先度定義データと、から、パケットの優先度が高いか否かを判別する。通信処理部1001は、受信した複数のパケットのうち、優先度が高いパケットを、優先度が低いパケットより優先して送信する。 The communication processing unit 1001 has the following configuration to prevent delays in sending and receiving packets of the first and second patterns. When the communication processing unit 1001 receives multiple packets within a set period of time, it determines whether the packets have a high priority based on the destination port value and source port value contained in the packets and the priority definition data stored in the priority storage unit 1002. The communication processing unit 1001 transmits packets with a high priority among the multiple received packets in preference to packets with a low priority.

実施形態では、通信処理部1001は、宛先が機器制御部201、301であり、送信元が制御対象機器91、92であるパケットを優先して送信する。加えて、通信処理部1001は、宛先が、制御対象機器91、92であり、送信元が機器制御部201、301であるパケットを優先して送信する。 In the embodiment, the communication processing unit 1001 prioritizes sending packets whose destination is the device control unit 201, 301 and whose sender is the controlled device 91, 92. In addition, the communication processing unit 1001 prioritizes sending packets whose destination is the controlled device 91, 92 and whose sender is the device control unit 201, 301.

具体的には、通信処理部1001は、宛先ポートの値が機器制御部201または機器制御部301を示す値であり、送信元ポートの値が制御対象機器91または制御対象機器92を示す値であるとき、そのパケットの優先度が高いと判別する。通信処理部1001は、宛先ポートの値が制御対象機器91または制御対象機器92を示す値であり、送信元ポートの値が機器制御部201または機器制御部301を示す値であるとき、そのパケットの優先度が高いと判別する。 Specifically, the communication processing unit 1001 determines that the priority of the packet is high when the value of the destination port is a value indicating the device control unit 201 or device control unit 301, and the value of the source port is a value indicating the controlled device 91 or controlled device 92. The communication processing unit 1001 determines that the priority of the packet is high when the value of the destination port is a value indicating the controlled device 91 or controlled device 92, and the value of the source port is a value indicating the device control unit 201 or device control unit 301.

通信処理部1001は、宛先ポートの値が、パラメータ算出部401を示す値であり、送信元ポートの値が制御対象機器91または制御対象機器92を示す値であるとき、そのパケットの優先度が低いと判別する。通信処理部1001は、送信元ポートの値がパラメータ算出部401を示す値であり、宛先ポートの値が機器制御部201または機器制御部301を示す値であるとき、そのパケットの優先度が低いと判別する。通信処理部1001は、決められた期間、複数のパケットを受信した場合、パケットの到着順にかかわらず、優先度が高いパケットを先に送信し、優先度が低いパケットを、優先度が高いパケットの後に送信する。決められた期間は、通信ネットワーク80において設定された通信周期と同じ期間としてもよい。例えば、制御サーバ100と制御対象機器91、92とがEtherNet/IPのプロトコルに則って通信している場合、この期間を、サイクリックな通信のため設定されたRPI(Request Packet Interval)として設定された周期と同じ期間としてもよい。 The communication processing unit 1001 determines that the priority of the packet is low when the value of the destination port is a value indicating the parameter calculation unit 401 and the value of the source port is a value indicating the controlled device 91 or the controlled device 92. The communication processing unit 1001 determines that the priority of the packet is low when the value of the source port is a value indicating the parameter calculation unit 401 and the value of the destination port is a value indicating the device control unit 201 or the device control unit 301. When the communication processing unit 1001 receives multiple packets for a determined period, it transmits a packet with a high priority first, regardless of the order of arrival of the packets, and transmits a packet with a low priority after the packet with a high priority. The determined period may be the same period as the communication cycle set in the communication network 80. For example, when the control server 100 and the controlled devices 91 and 92 communicate in accordance with the EtherNet/IP protocol, this period may be the same period as the cycle set as the RPI (Request Packet Interval) set for cyclic communication.

図6は、通信処理部1001が、パケットを優先して送信する様子を表した図である。通信処理部1001に、決められた期間内に、4つのパケットが通信処理部1001に到着したとする。決められた期間は、時間軸を決められた間隔で区切ったものである。なお、機器制御部201、301は、ミリ秒オーダーで、制御対象機器91、92を制御する。このため、決められた期間はごく短い期間である。図示する例において、パケットP1の宛先はパラメータ算出部401であり、送信元は制御対象機器92である。パケットP2の宛先は機器制御部201であり、送信元は制御対象機器91である。パケットP3の宛先は、機器制御部301であり、送信元はパラメータ算出部401である。パケットP4の宛先は機器制御部301であり、送信元はパラメータ算出部401である。 Figure 6 shows how the communication processing unit 1001 transmits packets with priority. Assume that four packets arrive at the communication processing unit 1001 within a predetermined period. The predetermined period is a time axis divided at predetermined intervals. The device control units 201 and 301 control the controlled devices 91 and 92 on the order of milliseconds. For this reason, the predetermined period is very short. In the illustrated example, the destination of packet P1 is the parameter calculation unit 401 and the source is the controlled device 92. The destination of packet P2 is the device control unit 201 and the source is the controlled device 91. The destination of packet P3 is the device control unit 301 and the source is the parameter calculation unit 401. The destination of packet P4 is the device control unit 301 and the source is the parameter calculation unit 401.

通信処理部1001は、優先度データ記憶部1002に格納されているデータを参照して、パケットの優先度が高いか否かを判別する。図5に示すように、宛先が機器制御部201であり、送信元が制御対象機器91である場合、優先度が高いと定義されている。通信処理部1001は、パケットP2の優先度が高いと判別する。さらに、通信処理部1001は、他のパケットの優先度を判別する。通信処理部1001は、パケットP1、P3、P4の優先度が低いと判別する。通信処理部1001は、パケットP1~P4が到着した順にかかわらず、パケットP2を優先して送信する。図示する例では、通信処理部1001は、パケットP2を最初に送信する。通信処理部1001は、パケットP2の後に、パケットP1、P3、P4を送信する。パケットP1、P3、P4については、パケットが通信処理部1001に到着した順で送信される。続いて、通信処理部1001は、新たに到着した複数のパケットを同様に処理する。 The communication processing unit 1001 refers to the data stored in the priority data storage unit 1002 to determine whether the priority of the packet is high. As shown in FIG. 5, if the destination is the device control unit 201 and the source is the controlled device 91, the priority is defined as high. The communication processing unit 1001 determines that the priority of packet P2 is high. Furthermore, the communication processing unit 1001 determines the priority of other packets. The communication processing unit 1001 determines that the priority of packets P1, P3, and P4 is low. The communication processing unit 1001 transmits packet P2 with priority, regardless of the order in which packets P1 to P4 arrive. In the illustrated example, the communication processing unit 1001 transmits packet P2 first. The communication processing unit 1001 transmits packets P1, P3, and P4 after packet P2. Packets P1, P3, and P4 are transmitted in the order in which they arrive at the communication processing unit 1001. Next, the communication processing unit 1001 processes the newly arrived packets in the same manner.

通信処理部1001が上記の構成を備えることにより、制御対象機器91、92と、機器制御部201、301との間でやり取りされるパケットの遅延を防止することができる。 By providing the communication processing unit 1001 with the above configuration, it is possible to prevent delays in packets exchanged between the controlled devices 91, 92 and the device control units 201, 301.

実施形態においては、制御サーバ100において動作する仮想マシン20、30において、いわゆる、ソフトウェアPLCを動作させるので、次のようなメリットがある。例えば、自動車関連の生産ラインにおいては、生産ラインのレイアウトの変更が頻発する。このような場合であっても、レイアウトの変更に柔軟に対応することができる。 In the embodiment, the virtual machines 20 and 30 running on the control server 100 operate what is known as a software PLC, which has the following advantages. For example, in automobile-related production lines, changes to the layout of the production line occur frequently. Even in such cases, the layout changes can be flexibly accommodated.

例えば、生産ラインにおいて、故障、老朽化等の理由により、制御対象機器91、92を交換することがある。この場合、通信ネットワーク80から古い制御対象機器91、92を外し、新たな制御対象機器91、92を通信ネットワーク80に接続する。例えば、制御機器として個別の装置を使用している場合、生産ラインのレイアウトの変更により、複数の装置の置き換え、複数の装置間の通信線の接続の変更等が必要であり、作業の手間が煩雑である。一方、実施形態に係る構成においては、制御機器として個別の装置を使用する場合に比べ、生産ラインのレイアウトの変更に伴う作業を削減することができる。 For example, in a production line, the controlled devices 91, 92 may need to be replaced due to breakdowns, aging, or other reasons. In this case, the old controlled devices 91, 92 are removed from the communication network 80, and the new controlled devices 91, 92 are connected to the communication network 80. For example, when individual devices are used as control devices, changing the layout of the production line requires replacing multiple devices and changing the connections of the communication lines between the multiple devices, which is a cumbersome task. On the other hand, in the configuration according to the embodiment, the work involved in changing the layout of the production line can be reduced compared to when individual devices are used as control devices.

制御対象機器が増えた場合には、制御サーバ100において動作させる仮想マシンを追加することで、新たな制御対象機器を制御することができる。制御機器として個別の機器を使用する場合には、新たな制御機器を用意する必要があり、費用がかさむ。しかし、実施形態のように、同一サーバ上の複数の仮想マシンを制御機器として動作させる場合には、生産ラインのレイアウトの変更に伴う費用を抑えることができる。 When the number of controlled devices increases, the new controlled devices can be controlled by adding virtual machines to be operated on the control server 100. When using individual devices as control devices, it is necessary to prepare new control devices, which increases costs. However, when multiple virtual machines on the same server are operated as control devices as in the embodiment, costs associated with changing the layout of the production line can be reduced.

また、仮想マシン20、30、40は、互いに独立して動作する。このため、いずれかの仮想マシンで実行するアプリケーションの変更、停止があったとしても、他の仮想マシンは影響を受けにくい。例えば、仮想マシン20の第1アプリケーション71の実行が停止されたとしても、仮想マシン30においては、第1アプリケーション71の実行を停止する必要がない。よって、仮想マシン30においては、制御に係る処理を続行することができる。 In addition, virtual machines 20, 30, and 40 operate independently of each other. Therefore, even if an application running on one of the virtual machines is changed or stopped, the other virtual machines are unlikely to be affected. For example, even if the execution of the first application 71 on virtual machine 20 is stopped, there is no need to stop the execution of the first application 71 on virtual machine 30. Therefore, the control-related processing can continue on virtual machine 30.

B.他の実施形態
(B1)実施形態においては、仮想マシン40のパラメータ算出部401が、制御に使用するパラメータの最適値を算出する例を説明したが、データ処理の例はこれに限られない。
B. Other Embodiment (B1) In the embodiment, an example has been described in which the parameter calculation unit 401 of the virtual machine 40 calculates optimal values of parameters used for control, but the example of data processing is not limited to this.

図7は、他の実施形態B1に係る制御サーバ100aの機能構成を示す図である。以下の説明においては、実施形態と異なる点を中心に説明する。 Figure 7 is a diagram showing the functional configuration of a control server 100a according to another embodiment B1. The following explanation will focus on the differences from the embodiment.

制御サーバ100aにおいては、仮想マシン20、30、40、110の4つの仮想マシンが動作している。仮想マシン110上ではゲストOSとして非リアルタイムOS60が動作しているものとする。制御サーバ100aは、実施形態に係る構成に加え、仮想マシン110に含まれる解析部1101を備える。解析部1101の機能は、仮想マシン110がデータを解析するためのアプリケーションを実行することにより実現される。仮想マシン110は、他の仮想マシンと同様にハイパーバイザ10に管理されている。 Four virtual machines, virtual machines 20, 30, 40, and 110, are running on the control server 100a. It is assumed that a non-real-time OS 60 is running on the virtual machine 110 as a guest OS. In addition to the configuration according to the embodiment, the control server 100a also includes an analysis unit 1101 included in the virtual machine 110. The function of the analysis unit 1101 is realized by the virtual machine 110 executing an application for analyzing data. The virtual machine 110 is managed by the hypervisor 10 in the same way as other virtual machines.

制御サーバ100aは、通信ネットワーク80を介して、測定器93と通信することができる。測定器93は、加工されたワークの寸法を測定する機器である。例えば、作業者が測定器93を使用して、ワークの寸法を測定する。測定器93は、例えば、測定が完了すると、測定値のデータを解析部1101に送信する。このとき、測定器93は、宛先を仮想マシン110の解析部1101とし、送信元を測定器93として、測定値のデータを含むパケットを送信する。このパケットは通信処理部1001を介して解析部1101に送信される。解析部1101は、測定器93から供給されたデータを解析する。解析部1101は、解析結果のデータを含むパケットを、パラメータ算出部401に送信する。このパケットは、通信処理部1001を介してパラメータ算出部401に送信される。パラメータ算出部401は、パラメータの最適値の算出に解析部1101から供給された解析結果を使用することができる。これにより、パラメータの算出の精度を向上させることができる。 The control server 100a can communicate with the measuring device 93 via the communication network 80. The measuring device 93 is an instrument that measures the dimensions of a machined workpiece. For example, an operator uses the measuring device 93 to measure the dimensions of the workpiece. For example, when the measurement is completed, the measuring device 93 transmits data of the measurement value to the analysis unit 1101. At this time, the measuring device 93 transmits a packet including the measurement value data with the destination set to the analysis unit 1101 of the virtual machine 110 and the source set to the measuring device 93. This packet is transmitted to the analysis unit 1101 via the communication processing unit 1001. The analysis unit 1101 analyzes the data supplied from the measuring device 93. The analysis unit 1101 transmits a packet including the data of the analysis result to the parameter calculation unit 401. This packet is transmitted to the parameter calculation unit 401 via the communication processing unit 1001. The parameter calculation unit 401 can use the analysis result supplied from the analysis unit 1101 to calculate the optimal value of the parameter. This can improve the accuracy of the parameter calculation.

通信処理部1001は、宛先ポートと送信元ポートから、パケットの優先度を判別する。機器制御部201、301と、制御対象機器91、92との間で送受信されるパケットの優先度が1番高いものとする。この優先度を「レベル1」とする。宛先がパラメータ算出部401であり、送信元が制御対象機器91、92であるパケットの優先度が2番目に高いものとする。この優先度を「レベル2」とする。宛先が解析部1101であり、送信元が測定器93であるパケットの優先度も「レベル2」とする。宛先がパラメータ算出部401であり、送信元が解析部1101であるパケットの優先度は1番低いものとする。この優先度を「レベル3」とする。宛先が機器制御部201、301であり、送信元がパラメータ算出部401であるパケットの優先度も「レベル3」とする。 The communication processing unit 1001 determines the priority of the packet from the destination port and the source port. The priority of packets transmitted and received between the device control units 201, 301 and the controlled devices 91, 92 is the highest. This priority is set to "Level 1". The priority of packets whose destination is the parameter calculation unit 401 and whose source is the controlled devices 91, 92 is set to the second highest. This priority is set to "Level 2". The priority of packets whose destination is the analysis unit 1101 and whose source is the measuring instrument 93 is also set to "Level 2". The priority of packets whose destination is the parameter calculation unit 401 and whose source is the analysis unit 1101 is set to the lowest. This priority is set to "Level 3". The priority of packets whose destination is the device control units 201, 301 and whose source is the parameter calculation unit 401 is also set to "Level 3".

通信処理部1001は、決められた期間に受信した複数のパケットの優先度を判別し、まず、「レベル1」のパケットを送信する。通信処理部1001は、「レベル1」のパケットを送信した後に「レベル2」のパケットを送信する。通信処理部1001は、「レベル2」のパケットを送信した後に「レベル3」のパケットを送信する。同じレベルのパケットが複数ある場合には、通信処理部1001は、同じレベルの複数のパケットについては、パケットの到着順にパケットを送信してもよい。他の実施形態B1においても、実施形態と同様に、優先して送信されるべきパケットの遅延を防止することができる。 The communication processing unit 1001 determines the priority of multiple packets received during a fixed period, and first transmits "level 1" packets. The communication processing unit 1001 transmits "level 1" packets and then transmits "level 2" packets. The communication processing unit 1001 transmits "level 2" packets and then transmits "level 3" packets. When there are multiple packets of the same level, the communication processing unit 1001 may transmit the packets in the order of arrival of the packets for multiple packets of the same level. In other embodiment B1, as in the embodiment, delays in packets that should be transmitted with priority can be prevented.

(B2)他の実施形態B1においては、解析部1101が出力した解析結果をパラメータの最適値の算出に使用する例を説明したが、解析部1101の解析結果を他の用途に使用してもよい。例えば、解析部1101に、制御対象機器91、92から制御対象機器91、92の稼働状態を表すデータが供給されるものとする。解析部1101は、供給されたデータから、制御対象機器91、92の異常、故障を予測してもよい。 (B2) In another embodiment B1, an example was described in which the analysis results output by the analysis unit 1101 are used to calculate optimal parameter values, but the analysis results of the analysis unit 1101 may be used for other purposes. For example, the analysis unit 1101 may be supplied with data representing the operating status of the control target devices 91 and 92 from the control target devices 91 and 92. The analysis unit 1101 may predict an abnormality or failure of the control target devices 91 and 92 from the supplied data.

(B3)実施形態においては、機器制御部201と制御対象機器91との間で送受信されるデータと、機器制御部301と制御対象機器92との間で送受信されるデータと、のいずれについても優先度が同じである例を説明した。しかし、機器制御部201、301の一方の優先度を、他方の優先度より高く設定してもよい。例えば、機器制御部201と制御対象機器91との間で送受信されるデータの優先度が1番高いものとする。この優先度を「レベル1」とする。機器制御部301と制御対象機器92との間で送受信されるデータの優先度が2番目に高いものとする。この優先度を「レベル2」とする。その他のデータの優先度が1番低いものとする。この優先度を「レベル3」とする。 (B3) In the embodiment, an example has been described in which the priority is the same for both data transmitted and received between the device control unit 201 and the controlled device 91 and data transmitted and received between the device control unit 301 and the controlled device 92. However, the priority of one of the device control units 201, 301 may be set higher than the priority of the other. For example, the priority of data transmitted and received between the device control unit 201 and the controlled device 91 is assumed to be the highest. This priority is assumed to be "Level 1". The priority of data transmitted and received between the device control unit 301 and the controlled device 92 is assumed to be the second highest. This priority is assumed to be "Level 2". The priority of other data is assumed to be the lowest. This priority is assumed to be "Level 3".

通信処理部1001は、決められた期間に受信した複数のパケットの優先度を判別し、「レベル1」のパケットを最初に送信する。通信処理部1001は、「レベル1」のパケットを送信した後に「レベル2」のパケットを送信する。通信処理部1001は、「レベル2」のパケットを送信した後に「レベル3」のパケットを送信する。同じレベルのパケットが複数ある場合には、通信処理部1001は、同じレベルの複数のパケットについては、パケットの到着順にパケットを送信してもよい。他の実施形態B3においても、実施形態と同様に、優先して送信されるべきパケットの遅延を防止することができる。 The communication processing unit 1001 determines the priority of multiple packets received during a fixed period, and transmits "level 1" packets first. The communication processing unit 1001 transmits "level 2" packets after transmitting "level 1" packets. The communication processing unit 1001 transmits "level 2" packets after transmitting "level 3" packets. When there are multiple packets of the same level, the communication processing unit 1001 may transmit the packets in the order of arrival of the packets for multiple packets of the same level. In other embodiment B3, as in the embodiment, delays in packets that should be transmitted with priority can be prevented.

(B4)実施形態等においては、機器単位で優先度を設定する例を説明したが、優先度の設定は、グループ単位でおこなってもよい。実施形態B4においては、複数の機器をいくつかのグループに分け、グループ単位で優先度を設定する例を説明する。 (B4) In the embodiments, an example of setting priority on a device basis has been described, but priority may also be set on a group basis. In embodiment B4, an example of dividing multiple devices into several groups and setting priority on a group basis will be described.

図8は、他の実施形態B4に係る制御サーバ100bの機能構成を示す図である。制御サーバ100bは、図3に示す制御サーバ100に係る構成に、2つの仮想マシンが追加された構成を備える。以下、実施形態と異なる構成を中心に説明する。 Figure 8 is a diagram showing the functional configuration of a control server 100b according to another embodiment B4. The control server 100b has a configuration in which two virtual machines are added to the configuration of the control server 100 shown in Figure 3. The following will focus on the configuration that differs from the embodiment.

図8に示すように、制御サーバ100bには、制御対象機器91、92に加えて、制御対象機器94、95が接続されている。制御サーバ100bにおいては、仮想マシン20、30、40、120、130の5つの仮想マシンが動作している。仮想マシン120、130上ではゲストOSとしてRTOS50が動作しているものとする。仮想マシン120、130も他の仮想マシンと同様にハイパーバイザ10により管理されている。仮想マシン120は機器制御部1201を含む。仮想マシン130は機器制御部1301を含む。機器制御部1201、1301は、実施形態に係る機器制御部201、301と同様の構成を備える。機器制御部1201は、制御対象機器94を制御する。機器制御部1301は、制御対象機器95を制御する。 As shown in FIG. 8, in addition to the control target devices 91 and 92, the control target devices 94 and 95 are connected to the control server 100b. Five virtual machines, virtual machines 20, 30, 40, 120, and 130, are running on the control server 100b. Assume that an RTOS 50 runs on the virtual machines 120 and 130 as a guest OS. The virtual machines 120 and 130 are also managed by the hypervisor 10 like the other virtual machines. The virtual machine 120 includes a device control unit 1201. The virtual machine 130 includes a device control unit 1301. The device control units 1201 and 1301 have the same configuration as the device control units 201 and 301 according to the embodiment. The device control unit 1201 controls the control target device 94. The device control unit 1301 controls the control target device 95.

図9は、優先度データ記憶部1002が記憶するグループ定義データ1002aの一例を示す図である。図10は、優先度データ記憶部1002が記憶する優先度定義データ1002bの一例を示す図である。例えば、制御サーバ100の管理者が、これらのデータをあらかじめ優先度データ記憶部1002に格納しているものとする。 Figure 9 is a diagram showing an example of group definition data 1002a stored in the priority data storage unit 1002. Figure 10 is a diagram showing an example of priority definition data 1002b stored in the priority data storage unit 1002. For example, it is assumed that the administrator of the control server 100 has stored this data in the priority data storage unit 1002 in advance.

グループ定義データ1002aには、宛先ポートの値と送信ポートの値との組み合わせで決められたグループを定義したデータが格納されている。優先度定義データ1002bには、グループと、優先度と、を対応づけたデータが格納されている。 Group definition data 1002a stores data that defines groups determined by combinations of destination port values and sending port values. Priority definition data 1002b stores data that associates groups with priorities.

以下の説明においては、宛先ポートまたは送信元ポートには次のような値がセットされるものとする。「P91」は、制御対象機器91を示す値として、宛先ポートまたは送信元ポートに設定される値である。「P92」は、制御対象機器92を示す値である。「P94」は、制御対象機器94を示す値である。「P95」は、制御対象機器95を示す値である。「P201」は、機器制御部201を示す値である。「P301」は、機器制御部301を示す値である。「P401」は、パラメータ算出部401を示す値である。「P1201」は、機器制御部1201を示す値である。「P1301」は、機器制御部1301を示す値である。 In the following explanation, the following values are set for the destination port or source port. "P91" is a value set for the destination port or source port as a value indicating the controlled device 91. "P92" is a value indicating the controlled device 92. "P94" is a value indicating the controlled device 94. "P95" is a value indicating the controlled device 95. "P201" is a value indicating the device control unit 201. "P301" is a value indicating the device control unit 301. "P401" is a value indicating the parameter calculation unit 401. "P1201" is a value indicating the device control unit 1201. "P1301" is a value indicating the device control unit 1301.

図9に示す例では、制御対象機器91が宛先あるいは送信元であり、機器制御部201が送信元あるいは宛先であるデータが、グループ「G1」であると定義されている。制御対象機器92が宛先あるいは送信元であり、機器制御部301が送信元あるいは宛先であるデータも、グループ「G1」であると定義されている。制御対象機器94が宛先あるいは送信元であり、機器制御部1201が送信元あるいは宛先であるデータが、グループ「G2」であると定義されている。制御対象機器95が宛先あるいは送信元であり、機器制御部1301が送信元あるいは宛先であるデータも、グループ「G2」であると定義されている。さらに、制御対象機器91、92とパラメータ算出部401との間で送受信されるデータは、グループ「G3」と定義されている。 In the example shown in FIG. 9, data for which the controlled device 91 is the destination or source and the device control unit 201 is the source or destination is defined as group "G1". Data for which the controlled device 92 is the destination or source and the device control unit 301 is the source or destination is also defined as group "G1". Data for which the controlled device 94 is the destination or source and the device control unit 1201 is the source or destination is defined as group "G2". Data for which the controlled device 95 is the destination or source and the device control unit 1301 is the source or destination is also defined as group "G2". Furthermore, data transmitted and received between the controlled devices 91, 92 and the parameter calculation unit 401 is defined as group "G3".

図10に示すように、グループの優先度として、グループ「G1」には「レベル1」、グループ「G2」には「レベル2」、グループ「G3」には「レベル3」が設定されている。 As shown in FIG. 10, the group priorities are set as follows: "Level 1" for group "G1", "Level 2" for group "G2", and "Level 3" for group "G3".

通信処理部1001は、優先度定義データ記憶部1002に格納されたデータを参照して、決められた期間に受信した複数のパケットの優先度を判別し、「レベル1」のパケットを最初に送信する。通信処理部1001は、「レベル1」のパケットを送信した後に「レベル2」のパケットを送信する。通信処理部1001は、「レベル2」のパケットを送信した後に「レベル3」のパケットを送信する。このようにグループ単位で優先度を設定することで、宛先と送信元の組み合わせ毎に優先度を設定する必要がなく、優先度の設定にかかる作業を簡易化することができる。 The communication processing unit 1001 refers to the data stored in the priority definition data storage unit 1002, determines the priority of multiple packets received during a fixed period, and transmits "level 1" packets first. After transmitting the "level 1" packets, the communication processing unit 1001 transmits "level 2" packets. After transmitting the "level 2" packets, the communication processing unit 1001 transmits "level 3" packets. By setting priorities on a group basis in this way, it is not necessary to set a priority for each combination of destination and source, and the work involved in setting priorities can be simplified.

(B5)実施形態においては、通信処理部1001が、パケットの宛先ポートの値と送信元ポートの値とから、パケットの優先度を判別したが、通信処理部1001は、他の方法でパケットの優先度を判別してもよい。例えば、パケットのTCPデータの最初の決められた範囲に、優先度を示す値をセットしてもよい。通信処理部1001は、パケットのTCPデータの最初の決められた範囲にセットされた値により、パケットの優先度を判別する。 (B5) In the embodiment, the communication processing unit 1001 determines the priority of a packet from the destination port value and the source port value of the packet, but the communication processing unit 1001 may determine the priority of a packet using other methods. For example, a value indicating the priority may be set in the first determined range of the TCP data of the packet. The communication processing unit 1001 determines the priority of a packet based on the value set in the first determined range of the TCP data of the packet.

実施形態においては、制御対象機器91、92の例として、生産機械、センサ、駆動機器を挙げたが、制御サーバ100には、FA機器を制御するPLCが、通信ネットワーク80を介して接続されてもよい。 In the embodiment, examples of the controlled devices 91 and 92 include production machines, sensors, and driving devices, but a PLC that controls FA devices may also be connected to the control server 100 via the communication network 80.

実施形態においては、制御サーバ100に機器の制御のため、2つの仮想マシンを備える例を説明したが、制御サーバ100は機器の制御のための仮想マシンを1つだけ備えていてもよい。あるいは、制御サーバ100は、機器の制御のための仮想マシンを3つ以上備えていてもよい。 In the embodiment, an example has been described in which the control server 100 has two virtual machines for controlling the devices, but the control server 100 may have only one virtual machine for controlling the devices. Alternatively, the control server 100 may have three or more virtual machines for controlling the devices.

実施形態においては、機器制御部201、301が、それぞれ制御対象機器91、92を制御する例を説明したが、機器制御部201、301それぞれは、2つ以上の機器を制御してもよい。 In the embodiment, an example has been described in which the device control units 201 and 301 control the control target devices 91 and 92, respectively, but each of the device control units 201 and 301 may control two or more devices.

本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。 The present disclosure is not limited to the above-described embodiments, and can be realized in various configurations without departing from the spirit of the present disclosure. For example, the technical features in the embodiments corresponding to the technical features in each form described in the Summary of the Invention column can be replaced or combined as appropriate to solve some or all of the above-described problems or to achieve some or all of the above-described effects. Furthermore, if a technical feature is not described as essential in this specification, it can be deleted as appropriate.

1…プロセッサ、2…主記憶部、3…補助記憶部、4…インタフェース、5…通信部、9…内部バス、10…ハイパーバイザ、20,30,40,110,120、130…仮想マシン、50…RTOS、60…非リアルタイムOS、71…第1アプリケーション、72…第2アプリケーション、73…第3アプリケーション、80…通信ネットワーク、91,92…制御対象機器、100…制御サーバ、201,301,1201,1301…機器制御部、401…パラメータ算出部、402…パラメータ記憶部、501…解析部、1001…通信処理部、1002…優先度データ記憶部、1002a…グループ定義データ、1002b…優先度定義データ、1101…解析部、P1,P2,P3,P4…パケット 1...processor, 2...main memory unit, 3...auxiliary memory unit, 4...interface, 5...communication unit, 9...internal bus, 10...hypervisor, 20, 30, 40, 110, 120, 130...virtual machine, 50...RTOS, 60...non-real-time OS, 71...first application, 72...second application, 73...third application, 80...communication network, 91, 92...control target device, 100...control server, 201, 301, 1201, 1301...device control unit, 401...parameter calculation unit, 402...parameter storage unit, 501...analysis unit, 1001...communication processing unit, 1002...priority data storage unit, 1002a...group definition data, 1002b...priority definition data, 1101...analysis unit, P1, P2, P3, P4...packet

Claims (5)

複数の機器を制御する情報処理装置であって、
前記複数の機器のうちの少なくとも1つの機器である制御対象を制御する機器制御部であって、前記制御対象から供給された入力データを受け取り、前記入力データを使用して制御プログラムを実行し、得られた出力データを前記制御対象に供給することにより、前記制御対象を制御する、機器制御部と、
前記複数の機器から収集した収集データにあらかじめ決められたデータ処理を実行するデータ処理部と、
前記複数の機器と前記機器制御部と前記データ処理部との間におけるデータの授受を制御する通信処理部と、
前記データの宛先と前記データの送信元と、優先度と、を対応づけた優先度定義データを記憶する優先度データ記憶部と、
を含み、
前記通信処理部が前記複数の機器、前記機器制御部、前記データ処理部から受信する前記データは、前記データの前記優先度を表す情報を含み、
前記通信処理部は、
前記優先度データ記憶部に格納されている前記優先度定義データを参照して、受信した前記データに含まれている、前記優先度を表す情報である宛先情報が示す前記宛先と送信元情報が示す前記送信元とにより、前記優先度を判別し、
記優先度が高いことを示す前記データを、前記優先度が低いことを示す前記データより優先して送信する、
情報処理装置。
An information processing device for controlling a plurality of devices,
a device control unit that controls a control target that is at least one device among the plurality of devices, the device control unit receiving input data provided from the control target, executing a control program using the input data, and providing the control target with obtained output data, thereby controlling the control target;
a data processing unit that performs predetermined data processing on the collected data collected from the plurality of devices;
a communication processing unit that controls data transmission and reception between the plurality of devices, the device control unit, and the data processing unit;
a priority data storage unit that stores priority definition data that associates a destination of the data, a source of the data, and a priority;
Including,
the data received by the communication processing unit from the plurality of devices, the device control unit, and the data processing unit includes information indicating the priority of the data;
The communication processing unit:
referring to the priority definition data stored in the priority data storage unit, determining the priority based on the destination indicated by destination information and the source indicated by source information, which are information representing the priority included in the received data;
transmitting the data indicating a high priority in preference to the data indicating a low priority;
Information processing device.
請求項に記載の情報処理装置であって、
前記データ処理部は、前記複数の機器から供給された前記複数の機器の稼働状態を示す状態データを受け取り、前記状態データに前記データ処理を実行し、前記データ処理により生成した結果データを前記機器制御部に供給し、
前記機器制御部は、前記データ処理部から供給された前記結果データを使用して、前記制御対象の制御内容を変更する、
情報処理装置。
2. The information processing device according to claim 1 ,
the data processing unit receives status data indicating operation statuses of the plurality of devices supplied from the plurality of devices, executes the data processing on the status data, and supplies result data generated by the data processing to the device control unit;
the device control unit changes the control content of the control target by using the result data supplied from the data processing unit.
Information processing device.
請求項1または2に記載の情報処理装置であって、
第1仮想マシンと第2仮想マシンと、前記第1仮想マシンと前記第2仮想マシンとを管理するハイパーバイザと、が動作しており、
前記機器制御部の機能は、前記第1仮想マシンにおけるリアルタイムOS上で動作する第1アプリケーションソフトウェアにより実現され、
前記データ処理部の機能は、前記第2仮想マシンにおける非リアルタイムOS上で動作する第2アプリケーションソフトウェアにより実現され、
前記通信処理部の機能は、前記ハイパーバイザにより実現される、
情報処理装置。
3. The information processing device according to claim 1 ,
a first virtual machine, a second virtual machine, and a hypervisor that manages the first virtual machine and the second virtual machine are operating;
a function of the device control unit is realized by a first application software that runs on a real-time OS in the first virtual machine;
a function of the data processing unit is realized by second application software that runs on a non-real-time OS in the second virtual machine;
The function of the communication processing unit is realized by the hypervisor.
Information processing device.
仮想環境が構築された情報処理装置において、仮想マシンを管理するハイパーバイザが実行する方法であって、
前記情報処理装置においては、複数の機器のうちの少なくとも1つの機器である制御対象を制御する第1仮想マシンと、前記複数の機器から収集した収集データにあらかじめ決められたデータ処理を実行する第2仮想マシンと、が動作しており、
前記ハイパーバイザが、
前記第1仮想マシンと前記第2仮想マシンと前記複数の機器との間におけるデータの授受を制御するステップと、
前記データの宛先と前記データの送信元と、優先度と、を対応づけた優先度定義データを参照して、前記複数の機器、前記第1仮想マシン、前記第2仮想マシンから受信した前記データに含まれている、前記優先度を表す情報である宛先情報が示す前記宛先と送信元情報が示す前記送信元とにより、前記データの前記優先度が高い否かを判別するステップと、
前記優先度が高い前記データを前記優先度が低い前記データより優先して送信するステップと、
を実行する方法。
A method executed by a hypervisor that manages a virtual machine in an information processing device in which a virtual environment is built, comprising:
In the information processing device, a first virtual machine that controls a control target which is at least one device among a plurality of devices, and a second virtual machine that executes predetermined data processing on collected data collected from the plurality of devices are operating;
The hypervisor,
controlling data transmission and reception between the first virtual machine, the second virtual machine, and the plurality of devices;
a step of referring to priority definition data that associates a destination of the data, a source of the data, and a priority, and determining whether the priority of the data is high or not based on the destination indicated by destination information and the source indicated by source information, which are information representing the priority , included in the data received from the plurality of devices , the first virtual machine, and the second virtual machine;
transmitting the data with higher priority in preference to the data with lower priority;
How to do it.
コンピュータが実行するプログラムであって、
前記コンピュータにおいては、
仮想環境が構築されており、
第1仮想マシンと、第2仮想マシンとが動作しており、
前記第1仮想マシンが、複数の機器のうちの少なくとも1つの機器である制御対象を制御し、
前記第2仮想マシンが、前記複数の機器から収集した収集データにあらかじめ決められたデータ処理を実行する、
ように構成されており、
前記コンピュータに、
前記第1仮想マシンと前記第2仮想マシンと前記複数の機器との間におけるデータの授受を制御する機能と、
前記データの宛先と前記データの送信元と、優先度と、を対応づけた優先度定義データを参照して、前記複数の機器、前記第1仮想マシン、前記第2仮想マシンから受信した前記データに含まれている、前記優先度を表す情報である宛先情報が示す前記宛先と送信元情報が示す前記送信元とにより、前記データの前記優先度が高いか否かを判別する機能と、
前記優先度が高い前記データを前記優先度が低い前記データより優先して送信する機能と、
を実現させるためのプログラム。
A program executed by a computer,
In the computer,
A virtual environment has been created,
A first virtual machine and a second virtual machine are operating,
The first virtual machine controls a control target which is at least one device among a plurality of devices;
The second virtual machine executes a predetermined data processing on the collected data collected from the plurality of devices.
It is structured as follows:
The computer includes:
a function of controlling data transmission and reception between the first virtual machine, the second virtual machine, and the plurality of devices;
a function of referring to priority definition data that associates a destination of the data, a source of the data, and a priority level, and determining whether the priority level of the data is high or not based on the destination indicated by destination information and the source indicated by source information, which are information representing the priority level and are included in the data received from the multiple devices, the first virtual machine, and the second virtual machine;
a function of transmitting the data with a higher priority in preference to the data with a lower priority;
A program to achieve this.
JP2021091997A 2021-06-01 2021-06-01 Information processing device, method, and program Active JP7585972B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021091997A JP7585972B2 (en) 2021-06-01 2021-06-01 Information processing device, method, and program
CN202210586940.8A CN115437316A (en) 2021-06-01 2022-05-27 Information processing device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021091997A JP7585972B2 (en) 2021-06-01 2021-06-01 Information processing device, method, and program

Publications (2)

Publication Number Publication Date
JP2022184262A JP2022184262A (en) 2022-12-13
JP7585972B2 true JP7585972B2 (en) 2024-11-19

Family

ID=84240700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021091997A Active JP7585972B2 (en) 2021-06-01 2021-06-01 Information processing device, method, and program

Country Status (2)

Country Link
JP (1) JP7585972B2 (en)
CN (1) CN115437316A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN121420286A (en) * 2023-08-28 2026-01-27 三菱重工业株式会社 Control system and control method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012194710A (en) 2011-03-15 2012-10-11 Fujitsu Ltd Scheduling program and information processor
JP2018185624A (en) 2017-04-25 2018-11-22 富士通株式会社 Switch program, switching method, and information processing apparatus
WO2020217345A1 (en) 2019-04-24 2020-10-29 三菱電機株式会社 Data processing device, data processing method, and program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3595143B2 (en) * 1997-12-22 2004-12-02 三菱電機株式会社 Communication attribute setting and communication volume processing
JP5888025B2 (en) * 2012-03-14 2016-03-16 ヤマハ株式会社 Communication control device
CN105991367B (en) * 2015-03-06 2019-10-18 清华大学 A method and system for measuring communication dependencies between virtual machines
CN111868687B (en) * 2018-03-20 2021-09-17 三菱电机株式会社 Information processing apparatus, method, and program
CN111954866A (en) * 2018-04-13 2020-11-17 三菱电机株式会社 Data processing device, data processing method and program
JP2020154697A (en) * 2019-03-20 2020-09-24 キオクシア株式会社 Memory system and memory system control method
KR102863383B1 (en) * 2019-09-11 2025-09-22 에스케이하이닉스 주식회사 Data Processing Apparatus and Operation Method Thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012194710A (en) 2011-03-15 2012-10-11 Fujitsu Ltd Scheduling program and information processor
JP2018185624A (en) 2017-04-25 2018-11-22 富士通株式会社 Switch program, switching method, and information processing apparatus
WO2020217345A1 (en) 2019-04-24 2020-10-29 三菱電機株式会社 Data processing device, data processing method, and program

Also Published As

Publication number Publication date
JP2022184262A (en) 2022-12-13
CN115437316A (en) 2022-12-06

Similar Documents

Publication Publication Date Title
Martinov et al. From classic CNC systems to cloud-based technology and back
US10795341B2 (en) Control system for controlling operation of a numerically controlled machine tool, and back-end and front-end control devices for use in such system
US20100274385A1 (en) Control system for controlling an industrial robot
JP6626240B2 (en) controller
JP2019053459A (en) Control device and control method
JP2019061467A (en) Support system and support program
JP7585972B2 (en) Information processing device, method, and program
JP2020013388A (en) Process management device and method
WO2021199519A1 (en) Control device, program, and control method
JP2019166603A (en) Thermal displacement correction system and computer
EP3779622B1 (en) Control device
TWI534569B (en) Control device, development device, and development program
CN100452749C (en) Network address setting method of production system
JP2017199154A (en) Equipment system
JP2015215669A (en) Numerical control device and control system
EP3933584A1 (en) Application modelling and resource management in fog networks
JP7455239B2 (en) Numerical control system, task assignment change device and numerical control method
CN109388102B (en) Control system and upper server
WO2020100548A1 (en) Control system and control device
JP7085305B2 (en) Control system and control method
US10708117B2 (en) Network system, control method, and control device
CN213634179U (en) Automation device
JP2022020837A (en) Controllers, control methods and programs
WO2012124145A1 (en) Computation unit, assistance unit, assistance program, recording medium storing assistance program, and operation method in assistance device
JP6645223B2 (en) Control system and control device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240709

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241021

R150 Certificate of patent or registration of utility model

Ref document number: 7585972

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150