JP7585972B2 - Information processing device, method, and program - Google Patents
Information processing device, method, and program Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/418—Total 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/41865—Total 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32252—Scheduling 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ユニットはクラウドサーバから受信したパラメータを設定し、設定したパラメータに従って制御プログラムを実行する。
ここで、クラウドサーバは複数の機器から受け付けた要求を処理すると推測される。クラウドサーバが受け付ける要求には、その要求の内容によって、優先して応答を返すべき要求と、そうでない要求とが含まれることが想定される。例えば、制御機器は、生産ラインで制御対象機器を制御している場合、設定された時間内で制御対象機器に対する処理を実行することが要求されている。これは、生産ラインを安定して稼働させるためである。このため、クラウドサーバは、このような制御機器に対する応答を後回しにすべきではない。しかしながら、特許文献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
本開示は、以下の形態として実現することが可能である。 This disclosure can be realized in the following forms:
(1)本開示の形態によれば、複数の機器を制御する情報処理装置が提供される。この情報処理装置は、複数の機器のうちの少なくとも1つの機器である制御対象を制御する機器制御部であって、通信処理部を介して制御対象から供給された入力データを受け取り、入力データを使用して制御プログラムを実行し、得られた出力データを制御対象に供給することにより、制御対象を制御する、機器制御部と、複数の機器から収集した収集データにあらかじめ決められたデータ処理を実行するデータ処理部と、複数の機器と機器制御部とデータ処理部との間におけるデータの授受を制御する通信処理部と、データの宛先とデータの送信元と、優先度と、を対応づけた優先度定義データを記憶する優先度データ記憶部と、を含む。通信処理部が複数の機器、機器制御部、データ処理部から受信するデータは、データの優先度を表す情報を含む。通信処理部は、優先度データ記憶部に格納されている優先度定義データを参照して、受信したデータに含まれている、優先度を表す情報である宛先情報が示す宛先と送信元情報が示す送信元とにより、優先度を判別し、優先度が高いことを示すデータを、優先度が低いことを示すデータより優先して送信する。
このような態様によれば、通信処理部が、優先度の高いデータを優先して送信することにより、即時に処理すべき応答が後回しにされない。このような態様によれば、データに含まれている宛先情報と送信元情報から優先度を判別するので、簡易な方法で優先度を判別することができる。
(2)上記形態の情報処理装置において、データ処理部は、複数の機器から供給された複数の機器の稼働状態を示す情報を含む状態データを受け取り、状態データにデータ処理を実行し、データ処理により生成した結果データを機器制御部に供給してもよい。機器制御部は、データ処理部から供給された結果データを使用して、制御対象の制御内容を変更してもよい。
このような態様によれば、複数の機器の稼働状態を制御対象に対する制御内容にフィードバックすることができる。
(3)上記形態の情報処理装置において、第1仮想マシンと第2仮想マシンと、第1仮想マシンと第2仮想マシンとを管理するハイパーバイザと、が動作していてもよい。機器制御部の機能は、第1仮想マシンにおけるリアルタイムOS上で動作する第1アプリケーションソフトウェアにより実現されてもよい。データ処理部の機能は、第2仮想マシンにおける非リアルタイムOS上で動作する第2アプリケーションソフトウェアにより実現されてもよい。通信処理部の機能は、ハイパーバイザにより実現されてもよい。
このような態様によれば、機器制御部と、データ処理部と、を別個の仮想マシンで動作させ、さらに、機器制御部をリアルタイムOS上で実行するため、設定された時間内に制御機器に応答することが容易となる。
(4)本開示の他の形態によれば、本開示は、仮想環境が構築された情報処理装置において、仮想マシンを管理するハイパーバイザが実行する方法の形態で実現することも可能である。この形態における情報処理装置においては、複数の機器のうちの少なくとも1つの機器である制御対象を制御する第1仮想マシンと、複数の機器から収集した収集データにあらかじめ決められたデータ処理を実行する第2仮想マシンと、が動作するように構成されている。ハイパーバイザは、第1仮想マシンと第2仮想マシンと複数の機器との間におけるデータの授受を制御するステップと、データの宛先とデータの送信元と、優先度と、を対応づけた優先度定義データを参照して、複数の機器、第1仮想マシン、第2仮想マシンから受信したデータに含まれている、優先度を表す情報である宛先情報が示す宛先と送信元情報が示す送信元とにより、データの優先度が高いか否かを判別するステップと、優先度が高いデータを優先度が低いデータより優先して送信するステップと、を実行する。
このような態様によれば、優先度の高いデータを優先して送信することにより、即時に処理すべき応答が後回しにされない。
(5)本開示の他の形態によれば、本開示は、コンピュータが実行するプログラムの形態で実現することも可能である。この形態におけるコンピュータにおいては、仮想環境が構築されており、第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.
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
制御サーバ100においては、物理的なコンピュータ上で、複数の仮想的なコンピュータを動作させる仮想化環境が構築されている。制御サーバ100は、ハイパーバイザ10と、仮想マシン20、30、40と、RTOS(Real Time Operating System)50と、非リアルタイムOS(Operating System)60と、第1アプリケーション71、第2アプリケーション72、第3アプリケーション73とを含む。
In the
ハイパーバイザ10は、ハードウェア上で動作し、仮想環境を実現するためのソフトウェアである。例えば、ハイパーバイザ10は、制御サーバ100のハードウェア資源を仮想マシン20、30、40それぞれに割り振る。
The
仮想マシン20、30、40は、ハイパーバイザ10により構築された仮想的なコンピュータである。仮想マシン20、30、40は、ハイパーバイザ10上で動作し、ハイパーバイザ10により管理される。
The
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-
第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
制御サーバ100は、例えば、工場内のサーバルームに配置されている。制御サーバ100は通信ネットワーク80を介して制御対象機器91、92と通信する。通信ネットワーク80は、工場内に設置された通信線によって実現される産業用の制御ネットワークである。
The
実施形態において、仮想マシン20、30上では、ゲストOSとしてRTOS50がそれぞれ実行される。RTOS50上では、制御対象機器91、92を制御するための第1アプリケーション71が実行される。このような構成を備えることで、仮想マシン20、30は、PLC(Programable Logic Controller)といった制御機器として機能する。仮想マシン20、30を第1仮想マシンとも呼ぶ。
In the embodiment, an
仮想マシン40上では、ゲストOSとして非リアルタイムOS60が実行される。非リアルタイムOS60上では、パラメータの最適値を算出するための第2アプリケーション72と、データベース管理システムである第3アプリケーション73と、が実行される。このような構成を備えることで、仮想マシン40は、情報処理を実行するコンピュータとして機能する。仮想マシン40を第2仮想マシンとも呼ぶ。
On the
図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
プロセッサ1は、例えばCPU(Central Processing Unit)である。プロセッサ1が、補助記憶部3に記憶されたプログラムを主記憶部2に読み込んで実行することにより、制御サーバ100の各機能が実現される。
The
主記憶部2は、例えば、RAM(Random Access Memory)を含む主記憶装置である。主記憶部2には、補助記憶部3からプログラムがロードされる。また、主記憶部2は、プロセッサ1がプログラムを実行する際の作業領域として使用される。
The
補助記憶部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
インタフェース4は、例えば、シリアルポート、USB(Universal Serial Bus)ポートなどのI/O(Input/Output)ポートである。インタフェース4には、キーボード、マウス、タッチパネルなどの入力装置が接続される。インタフェース4は、入力装置を介してユーザが入力した情報をプロセッサ1に出力する。また、インタフェース4には、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の表示装置が接続される。インタフェース4は、プロセッサ1から供給された情報が示す画像を表示装置に出力する。
The
通信部5は、外部の装置と通信するためのネットワークインタフェース回路を含む。通信部5は、外部から信号を受信して、この信号により示されるデータをプロセッサ1へ出力する。また、通信部5は、プロセッサ1から出力されたデータを示す信号を外部の装置へ送信する。
The
図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
機器制御部201は、制御対象機器91を制御する制御機器として機能する。機器制御部201の機能は、図1に示す仮想マシン20が第1アプリケーション71を実行することにより実現される。第1アプリケーション71を第1アプリケーションソフトウェアとも呼ぶ。
The
図3に示す機器制御部301は、制御対象機器92を制御する制御機器として機能する。機器制御部301の機能は、図1に示す仮想マシン30が第1アプリケーション71を実行することにより実現される。
The
図3に示す機器制御部201、301は、例えば、以下のような処理をそれぞれ行って、制御対象機器91、92をそれぞれ制御する。
The
機器制御部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
以下の説明においては、機器制御部201と制御対象機器91とを例に説明するが、機器制御部301と制御対象機器92も同様の構成を備える。
In the following explanation, the
制御対象機器91が機器制御部201に供給するデータは、例えば、ワークの位置決めの完了の通知、回転軸の回転の完了の通知等を含む。機器制御部201が制御対象機器91に供給するデータは、回転軸、回転数、送り速度等を指定する情報を含む。
The data supplied from the controlled
例えば、制御対象機器91からワークの位置決めの完了の通知を受けると、機器制御部201は、制御プログラムを実行して、次に回転させる回転軸、回転数、送り速度を示すデータを制御対象機器91に供給する。制御対象機器91から回転軸の回転の完了の通知を受けると、機器制御部201は、制御プログラムを実行して、次に回転させる回転軸、回転数、送り速度を示すデータを制御対象機器91に供給する。
For example, when the
このように、制御対象機器91、92は、機器制御部201、301が出力した出力値に従って動作する。出力値が設定された時間内に制御対象機器91、92に供給されないと、制御対象機器91、92の動作が遅れる。よって、機器制御部201、301は、設定された時間内に制御プログラムの1サイクルを実行する必要がある。
In this way, the controlled
さらに、機器制御部201、301は、通信処理部1001を介して、パラメータ算出部401から制御対象機器91、92の制御に使用するパラメータの最適値を受け取る。機器制御部201、301は、パラメータの最適値を受け取ると、制御プログラムの実行に使用するパラメータの値を更新する。これにより、機器制御部201、301が実行する制御対象機器91、92の制御内容が変更される。
Furthermore, the
パラメータ算出部401は、通信処理部1001を介して制御対象機器91、92からデータを受信する。このデータを収集データとも呼ぶ。パラメータ算出部401は、制御対象機器91、92から収集したデータを蓄積する。パラメータ算出部401は、蓄積した収集データから、制御対象機器91、92の制御に使用するパラメータの最適値を算出する。パラメータ算出部401をデータ処理部とも呼ぶ。
The
制御対象機器91、92がパラメータ算出部401に供給するデータは、制御対象機器の稼働状態を示す情報を含む。このデータを状態データとも呼ぶ。このデータには、例えば、各回転軸について、切削速度、トルク値、回転軸に取り付けられている工具の温度の情報が含まれている。制御対象機器91、92は、例えば、決められた時刻に、パラメータ算出部401に稼働状態を示すデータを送信してもよい。あるいは、制御対象機器91、92は、パラメータ算出部401からの要求に応答して、パラメータ算出部401に稼働状態を示すデータを送信してもよい。
The data supplied by the controlled
また、パラメータ算出部401は、制御対象機器91、92の各軸に取り付けられている工具の情報(工具の種類、工具の刃の材質等)を示すデータをあらかじめ有している。パラメータ算出部401は、このデータと、制御対象機器91、92から供給されたデータとに基づいて、工具の発熱量を算出し、温度毎の最適な切削速度を算出する。最適な切削速度とは、工具の摩耗を抑えることができるような切削速度である。ここで、パラメータ算出部401は、加工対象の材料毎に、最適な切削速度を算出する。パラメータ算出部401は、最適な切削速度を含むデータを生成し、生成したデータをパラメータ記憶部402に格納する。このデータを結果データとも呼ぶ。
The
パラメータ算出部401は、パラメータ記憶部402に格納されているデータを、通信処理部1001を介して機器制御部201、301に送信する。具体的には、パラメータ算出部401は、パラメータ記憶部402に格納されているパラメータのうち、機器制御部201が制御対象機器91の制御のため使用するパラメータを、機器制御部201に送信する。パラメータ算出部401は、パラメータ記憶部402に格納されているパラメータのうち、機器制御部301が制御対象機器92の制御のため使用するパラメータを、機器制御部301に送信する。
The
パラメータ算出部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
図3に示すパラメータ記憶部402は、パラメータ算出部401が算出した各種パラメータを記憶する。
The
図4は、パラメータ記憶部402が記憶するデータの一例を示す図である。図示する例では、パラメータ記憶部402には、回転軸それぞれについて、機器の回転軸それぞれについての切削速度の最適値のデータが格納されている。ここで、工具の温度と加工対象の材料とについて、それぞれ算出された切削速度の最適値のデータが、パラメータ記憶部402に格納されている。パラメータ記憶部402の機能は、図1に示す仮想マシン40が第3アプリケーション73を実行することにより実現される。
FIG. 4 is a diagram showing an example of data stored in the
図3に示す通信処理部1001は、産業用の通信プロトコルに則って、制御対象機器91、92と通信する。産業用の通信プロトコルは、例えば、EtherNet/IP(商標)である。通信処理部1001は、仮想マシン20、30、40と通信する。以下の説明においては、通信がパケット単位で行われるものとする。
The
通信処理部1001は、パケットを受信すると、受信したパケットに含まれている情報から、パケットの宛先と送信元とを判別する。パケットには、宛先の機器または仮想マシンを示す宛先IP(Internet Protocol)アドレスと、送信元の機器または仮想マシンを示す送信元IPアドレスとが含まれている。制御サーバ100上で動作する仮想マシン20、30、40にはそれぞれ異なるIPアドレスが割り当てられているものとする。
When the
さらに、パケットには、宛先のアプリケーションを示す宛先ポートの値と、送信元のアプリケーションを示す送信元ポートの値とが含まれている。宛先ポートの値を宛先情報とも呼ぶ。送信元ポートの値を送信元情報とも呼ぶ。宛先ポートの値は、宛先が、機器制御部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
機器制御部201、301、パラメータ算出部401、制御対象機器91、92は、例えば、送信するデータに、宛先IPアドレスと送信元アドレスとを含むIP(Internet Protocol)ヘッダと、宛先ポートと送信元ポートとを含むTCP(Transmission Control Protocol)ヘッダと、を付加したパケットを送信する。
The
通信処理部1001は、例えば、IPヘッダに含まれている宛先IPアドレスと送信元IPアドレスとから、宛先の機器または仮想マシンと、送信元の機器または仮想マシンとを判別する。通信処理部1001は、例えば、TCPヘッダの宛先ポートと送信元ポートとから、宛先と送信元とが、機器制御部201、301、パラメータ算出部401、制御対象機器91、92のいずれであるかを判別する。
The
通信処理部1001は、制御対象機器91、92、仮想マシン20の機器制御部201、仮想マシン30の機器制御部301、仮想マシン40のパラメータ算出部401、からパケットを受信し、適切な宛先にパケットを転送する。このように通信処理部1001は、制御対象機器91、92と、機器制御部201、301と、パラメータ算出部401と、の間におけるデータの授受を制御する。また、通信処理部1001は、いわゆる、スイッチとしての役割を果たすとも言える。
The
図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
実施形態においては、通信処理部1001を介したパケット(データ)の流れは4パターンある。
In this embodiment, there are four patterns of packet (data) flow through the
(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
(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
(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
(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
これらの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
一方で、制御対象機器91、92から、パラメータ算出部401へのパケットの送信(第3パターン)が遅延しても、生産ラインの稼働に影響はない。パラメータ算出部401から、機器制御部201、301へのパケットの送信(第4パターン)が遅延しても、生産ラインの稼働に影響はない。
On the other hand, even if the transmission of packets from the controlled
通信処理部1001は以下のような構成を備えることにより、第1パターン、第2パターンのパケットの送受信について、遅延が発生することを防止する。通信処理部1001は、決められた期間に、複数のパケットを受信した場合、パケットに含まれている宛先ポートの値と送信元ポートの値と、優先度記憶部1002に格納されている優先度定義データと、から、パケットの優先度が高いか否かを判別する。通信処理部1001は、受信した複数のパケットのうち、優先度が高いパケットを、優先度が低いパケットより優先して送信する。
The
実施形態では、通信処理部1001は、宛先が機器制御部201、301であり、送信元が制御対象機器91、92であるパケットを優先して送信する。加えて、通信処理部1001は、宛先が、制御対象機器91、92であり、送信元が機器制御部201、301であるパケットを優先して送信する。
In the embodiment, the
具体的には、通信処理部1001は、宛先ポートの値が機器制御部201または機器制御部301を示す値であり、送信元ポートの値が制御対象機器91または制御対象機器92を示す値であるとき、そのパケットの優先度が高いと判別する。通信処理部1001は、宛先ポートの値が制御対象機器91または制御対象機器92を示す値であり、送信元ポートの値が機器制御部201または機器制御部301を示す値であるとき、そのパケットの優先度が高いと判別する。
Specifically, the
通信処理部1001は、宛先ポートの値が、パラメータ算出部401を示す値であり、送信元ポートの値が制御対象機器91または制御対象機器92を示す値であるとき、そのパケットの優先度が低いと判別する。通信処理部1001は、送信元ポートの値がパラメータ算出部401を示す値であり、宛先ポートの値が機器制御部201または機器制御部301を示す値であるとき、そのパケットの優先度が低いと判別する。通信処理部1001は、決められた期間、複数のパケットを受信した場合、パケットの到着順にかかわらず、優先度が高いパケットを先に送信し、優先度が低いパケットを、優先度が高いパケットの後に送信する。決められた期間は、通信ネットワーク80において設定された通信周期と同じ期間としてもよい。例えば、制御サーバ100と制御対象機器91、92とがEtherNet/IPのプロトコルに則って通信している場合、この期間を、サイクリックな通信のため設定されたRPI(Request Packet Interval)として設定された周期と同じ期間としてもよい。
The
図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
通信処理部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
通信処理部1001が上記の構成を備えることにより、制御対象機器91、92と、機器制御部201、301との間でやり取りされるパケットの遅延を防止することができる。
By providing the
実施形態においては、制御サーバ100において動作する仮想マシン20、30において、いわゆる、ソフトウェアPLCを動作させるので、次のようなメリットがある。例えば、自動車関連の生産ラインにおいては、生産ラインのレイアウトの変更が頻発する。このような場合であっても、レイアウトの変更に柔軟に対応することができる。
In the embodiment, the
例えば、生産ラインにおいて、故障、老朽化等の理由により、制御対象機器91、92を交換することがある。この場合、通信ネットワーク80から古い制御対象機器91、92を外し、新たな制御対象機器91、92を通信ネットワーク80に接続する。例えば、制御機器として個別の装置を使用している場合、生産ラインのレイアウトの変更により、複数の装置の置き換え、複数の装置間の通信線の接続の変更等が必要であり、作業の手間が煩雑である。一方、実施形態に係る構成においては、制御機器として個別の装置を使用する場合に比べ、生産ラインのレイアウトの変更に伴う作業を削減することができる。
For example, in a production line, the controlled
制御対象機器が増えた場合には、制御サーバ100において動作させる仮想マシンを追加することで、新たな制御対象機器を制御することができる。制御機器として個別の機器を使用する場合には、新たな制御機器を用意する必要があり、費用がかさむ。しかし、実施形態のように、同一サーバ上の複数の仮想マシンを制御機器として動作させる場合には、生産ラインのレイアウトの変更に伴う費用を抑えることができる。
When the number of controlled devices increases, the new controlled devices can be controlled by adding virtual machines to be operated on the
また、仮想マシン20、30、40は、互いに独立して動作する。このため、いずれかの仮想マシンで実行するアプリケーションの変更、停止があったとしても、他の仮想マシンは影響を受けにくい。例えば、仮想マシン20の第1アプリケーション71の実行が停止されたとしても、仮想マシン30においては、第1アプリケーション71の実行を停止する必要がない。よって、仮想マシン30においては、制御に係る処理を続行することができる。
In addition,
B.他の実施形態
(B1)実施形態においては、仮想マシン40のパラメータ算出部401が、制御に使用するパラメータの最適値を算出する例を説明したが、データ処理の例はこれに限られない。
B. Other Embodiment (B1) In the embodiment, an example has been described in which the
図7は、他の実施形態B1に係る制御サーバ100aの機能構成を示す図である。以下の説明においては、実施形態と異なる点を中心に説明する。
Figure 7 is a diagram showing the functional configuration of a
制御サーバ100aにおいては、仮想マシン20、30、40、110の4つの仮想マシンが動作している。仮想マシン110上ではゲストOSとして非リアルタイムOS60が動作しているものとする。制御サーバ100aは、実施形態に係る構成に加え、仮想マシン110に含まれる解析部1101を備える。解析部1101の機能は、仮想マシン110がデータを解析するためのアプリケーションを実行することにより実現される。仮想マシン110は、他の仮想マシンと同様にハイパーバイザ10に管理されている。
Four virtual machines,
制御サーバ100aは、通信ネットワーク80を介して、測定器93と通信することができる。測定器93は、加工されたワークの寸法を測定する機器である。例えば、作業者が測定器93を使用して、ワークの寸法を測定する。測定器93は、例えば、測定が完了すると、測定値のデータを解析部1101に送信する。このとき、測定器93は、宛先を仮想マシン110の解析部1101とし、送信元を測定器93として、測定値のデータを含むパケットを送信する。このパケットは通信処理部1001を介して解析部1101に送信される。解析部1101は、測定器93から供給されたデータを解析する。解析部1101は、解析結果のデータを含むパケットを、パラメータ算出部401に送信する。このパケットは、通信処理部1001を介してパラメータ算出部401に送信される。パラメータ算出部401は、パラメータの最適値の算出に解析部1101から供給された解析結果を使用することができる。これにより、パラメータの算出の精度を向上させることができる。
The
通信処理部1001は、宛先ポートと送信元ポートから、パケットの優先度を判別する。機器制御部201、301と、制御対象機器91、92との間で送受信されるパケットの優先度が1番高いものとする。この優先度を「レベル1」とする。宛先がパラメータ算出部401であり、送信元が制御対象機器91、92であるパケットの優先度が2番目に高いものとする。この優先度を「レベル2」とする。宛先が解析部1101であり、送信元が測定器93であるパケットの優先度も「レベル2」とする。宛先がパラメータ算出部401であり、送信元が解析部1101であるパケットの優先度は1番低いものとする。この優先度を「レベル3」とする。宛先が機器制御部201、301であり、送信元がパラメータ算出部401であるパケットの優先度も「レベル3」とする。
The
通信処理部1001は、決められた期間に受信した複数のパケットの優先度を判別し、まず、「レベル1」のパケットを送信する。通信処理部1001は、「レベル1」のパケットを送信した後に「レベル2」のパケットを送信する。通信処理部1001は、「レベル2」のパケットを送信した後に「レベル3」のパケットを送信する。同じレベルのパケットが複数ある場合には、通信処理部1001は、同じレベルの複数のパケットについては、パケットの到着順にパケットを送信してもよい。他の実施形態B1においても、実施形態と同様に、優先して送信されるべきパケットの遅延を防止することができる。
The
(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
(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
通信処理部1001は、決められた期間に受信した複数のパケットの優先度を判別し、「レベル1」のパケットを最初に送信する。通信処理部1001は、「レベル1」のパケットを送信した後に「レベル2」のパケットを送信する。通信処理部1001は、「レベル2」のパケットを送信した後に「レベル3」のパケットを送信する。同じレベルのパケットが複数ある場合には、通信処理部1001は、同じレベルの複数のパケットについては、パケットの到着順にパケットを送信してもよい。他の実施形態B3においても、実施形態と同様に、優先して送信されるべきパケットの遅延を防止することができる。
The
(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
図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
図9は、優先度データ記憶部1002が記憶するグループ定義データ1002aの一例を示す図である。図10は、優先度データ記憶部1002が記憶する優先度定義データ1002bの一例を示す図である。例えば、制御サーバ100の管理者が、これらのデータをあらかじめ優先度データ記憶部1002に格納しているものとする。
Figure 9 is a diagram showing an example of
グループ定義データ1002aには、宛先ポートの値と送信ポートの値との組み合わせで決められたグループを定義したデータが格納されている。優先度定義データ1002bには、グループと、優先度と、を対応づけたデータが格納されている。
以下の説明においては、宛先ポートまたは送信元ポートには次のような値がセットされるものとする。「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
図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
図10に示すように、グループの優先度として、グループ「G1」には「レベル1」、グループ「G2」には「レベル2」、グループ「G3」には「レベル3」が設定されている。
As shown in FIG. 10, the group priorities are set as follows: "
通信処理部1001は、優先度定義データ記憶部1002に格納されたデータを参照して、決められた期間に受信した複数のパケットの優先度を判別し、「レベル1」のパケットを最初に送信する。通信処理部1001は、「レベル1」のパケットを送信した後に「レベル2」のパケットを送信する。通信処理部1001は、「レベル2」のパケットを送信した後に「レベル3」のパケットを送信する。このようにグループ単位で優先度を設定することで、宛先と送信元の組み合わせ毎に優先度を設定する必要がなく、優先度の設定にかかる作業を簡易化することができる。
The
(B5)実施形態においては、通信処理部1001が、パケットの宛先ポートの値と送信元ポートの値とから、パケットの優先度を判別したが、通信処理部1001は、他の方法でパケットの優先度を判別してもよい。例えば、パケットのTCPデータの最初の決められた範囲に、優先度を示す値をセットしてもよい。通信処理部1001は、パケットのTCPデータの最初の決められた範囲にセットされた値により、パケットの優先度を判別する。
(B5) In the embodiment, the
実施形態においては、制御対象機器91、92の例として、生産機械、センサ、駆動機器を挙げたが、制御サーバ100には、FA機器を制御するPLCが、通信ネットワーク80を介して接続されてもよい。
In the embodiment, examples of the controlled
実施形態においては、制御サーバ100に機器の制御のため、2つの仮想マシンを備える例を説明したが、制御サーバ100は機器の制御のための仮想マシンを1つだけ備えていてもよい。あるいは、制御サーバ100は、機器の制御のための仮想マシンを3つ以上備えていてもよい。
In the embodiment, an example has been described in which the
実施形態においては、機器制御部201、301が、それぞれ制御対象機器91、92を制御する例を説明したが、機器制御部201、301それぞれは、2つ以上の機器を制御してもよい。
In the embodiment, an example has been described in which the
本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。 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仮想マシンにおけるリアルタイム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.
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN121420286A (en) * | 2023-08-28 | 2026-01-27 | 三菱重工业株式会社 | Control system and control method |
Citations (3)
| 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)
| 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 |
-
2021
- 2021-06-01 JP JP2021091997A patent/JP7585972B2/en active Active
-
2022
- 2022-05-27 CN CN202210586940.8A patent/CN115437316A/en active Pending
Patent Citations (3)
| 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 |