JP2010224939A - Control computer and control system - Google Patents
Control computer and control system Download PDFInfo
- Publication number
- JP2010224939A JP2010224939A JP2009072344A JP2009072344A JP2010224939A JP 2010224939 A JP2010224939 A JP 2010224939A JP 2009072344 A JP2009072344 A JP 2009072344A JP 2009072344 A JP2009072344 A JP 2009072344A JP 2010224939 A JP2010224939 A JP 2010224939A
- Authority
- JP
- Japan
- Prior art keywords
- program
- control
- unit
- transmission
- control command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/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], computer integrated manufacturing [CIM]
- G05B19/4185—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], computer integrated manufacturing [CIM] characterised by the network communication
- G05B19/4186—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], computer integrated manufacturing [CIM] characterised by the network communication by protocol, e.g. MAP, TOP
-
- 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/31—From computer integrated manufacturing till monitoring
- G05B2219/31145—Ethernet
-
- 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/31—From computer integrated manufacturing till monitoring
- G05B2219/31218—Scheduling communication on bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
Description
1以上の制御対象装置を制御する制御用計算機が、制御対象装置へ制御指令値を送信するときの送信タイミング制御技術に関する。 The present invention relates to a transmission timing control technique when a control computer that controls one or more control target devices transmits a control command value to the control target device.
制御システムとして、制御用計算機が、ネットワークを介して単一または複数の制御対象装置を制御する制御システムがある(非特許文献1参照)。この制御用計算機は、プログラムの実行処理により各制御対象装置を制御する。この制御用計算機には、必要に応じてオペレーティングシステム(以下、OSと称する)や、処理性能を向上させるための専用のハードウェアが用いられる。このような制御処理に関するプログラムは、一般的に、所定の周期で所定の処理を繰り返す。通常、この周期は、この制御用計算機の制御処理に課せられた時間的制約となる。 As a control system, there is a control system in which a control computer controls a single or a plurality of control target devices via a network (see Non-Patent Document 1). This control computer controls each device to be controlled by executing a program. The control computer uses an operating system (hereinafter referred to as OS) or dedicated hardware for improving processing performance as necessary. A program related to such control processing generally repeats predetermined processing at a predetermined cycle. Usually, this period is a time constraint imposed on the control processing of the control computer.
ここで、制御用計算機が制御対象装置それぞれに対し、制御指令値の送信周期等の異なる制御処理を実行したい場合もある。このような場合、制御用計算機の通信アプリケーションにおいて、前記した制御処理の時間的制約を満たすため、制御処理それぞれの周期を区別する条件分岐を設定せねばならない。このような条件分岐の設定は非常に複雑であり、通信アプリケーションの開発に手間がかかるという問題があった。また、この通信アプリケーションによる制御処理を変更したり、追加、拡張したりする場合にも同様に手間がかかるという問題があった。なお、制御処理ごとにアプリケーションを分割する方法もあるが、送信されるデータをまとめることは困難である。よって、制御処理ごとにアプリケーションを分割する場合は、そのアプリケーションそれぞれがデータを送信することになるが、このとき、データそれぞれのヘッダやフレーム間ギャップ等のためオーバーヘッドが大きくなる。従って、制御処理ごとにアプリケーションを分割する場合、このようなオーバーヘッドのため通信性能が低下するという問題があった。そこで、本発明は、前記した課題を解決し、複数の異なる周期の制御処理を実行する制御用計算機の開発の手間を低減しつつ、通信性能の低下を防ぐことを目的とする。 Here, there is a case where the control computer wants to execute different control processes such as the transmission cycle of the control command value for each control target device. In such a case, in the communication application of the control computer, in order to satisfy the time constraint of the control process described above, a conditional branch that distinguishes the period of each control process must be set. Such setting of conditional branching is very complicated, and there is a problem that it takes time to develop a communication application. Further, there is a problem that it takes time and effort to change, add, or extend the control process by the communication application. Although there is a method of dividing an application for each control process, it is difficult to collect transmitted data. Therefore, when an application is divided for each control process, each application transmits data, but at this time, overhead increases due to a header of each data, a gap between frames, and the like. Therefore, when an application is divided for each control process, there is a problem that communication performance deteriorates due to such overhead. In view of the above, an object of the present invention is to solve the above-described problems and to prevent a reduction in communication performance while reducing the effort of developing a control computer that executes a plurality of control processes with different periods.
前記した課題を解決するため、本発明は、1つまたは複数の制御対象装置を制御するためのプログラムを1つまたは複数備える制御用計算機であって、プログラムに基づき、制御対象装置への制御指令値を通信スケジューラへ出力する処理部と、タイムスロットを用いたスケジュール情報を用いて、処理部から出力された制御指令値を、ネットワーク経由で制御対象装置それぞれへ送信する送信時刻を決定し、この決定した送信時刻に、制御指令値を含む送信データを制御対象装置それぞれへ送信する通信スケジューラとを備え、通信スケジューラは、プログラムのうち、周期的に制御指令値を送信するプログラムについて、そのプログラムによる制御対象の制御対象装置の識別情報と、制御対象装置への制御指令値を送信するときの周期とを示したプログラム管理情報の入力を受け付け、プログラム管理情報記憶部に記憶するプログラム情報管理部と、プログラムにより処理部から、制御対象装置への制御指令値の入力を受け付けたとき、この制御指令値を記憶部に記憶する送信データ管理部と、プログラム管理情報に示される周期で、制御指令値を含む送信データを送信するよう送信時刻を決定し、この送信時刻をスケジュール情報に記録し、当該送信時刻になったとき、当該送信データの送信指示を出力する送信時刻スケジュール部と、送信時刻スケジュール部により出力された送信指示に基づき、制御指令値を記憶部から読み出し、この読み出した制御指令値を含む送信データを送信する送信部とを備える構成とした。 In order to solve the above-described problems, the present invention is a control computer including one or more programs for controlling one or more control target devices, and a control command to the control target devices based on the program. Using the processing unit that outputs the value to the communication scheduler and the schedule information using the time slot, the control command value output from the processing unit is determined to be transmitted to each control target device via the network. A communication scheduler that transmits transmission data including a control command value to each control target device at the determined transmission time, and the communication scheduler uses the program to periodically transmit the control command value among the programs. The identification information of the control target device to be controlled, and the cycle when transmitting the control command value to the control target device When the input of the program management information shown is received, and the program information management unit stored in the program management information storage unit and the input of the control command value to the controlled device are received from the processing unit by the program, the control command value is A transmission time is determined so that transmission data including a control command value is transmitted at a cycle indicated by the transmission data management unit stored in the storage unit and the program management information, and the transmission time is recorded in the schedule information. The transmission time schedule unit that outputs a transmission instruction of the transmission data, and the control command value is read from the storage unit based on the transmission instruction output by the transmission time schedule unit, and includes the read control command value And a transmission unit that transmits transmission data.
このように、制御用計算機の通信スケジューラが、この制御用計算機の備える周期処理プログラム(周期的に制御指令値を出力するためのプログラム)について、そのプログラムにより制御対象装置への制御指令値を送信するときの最長許容周期等をプログラム管理情報に記憶しておく。そして、通信スケジューラは、このプログラム管理情報に示される最長許容周期を守るように、この制御指令値を送信する送信スケジュールを決定する。そして、その送信スケジュールに基づき、当該プログラムの制御指令値を含む送信データを送信する。つまり、制御用計算機は、制御指令値を送信するプログラムの時間的制約(最長許容周期等)を満たすようこの制御指令値を含む送信データを送信する。よって、通信アプリケーションに、周期処理プログラムそれぞれの周期を区別する条件分岐の設定等を行う必要がなくなり、1または複数の異なる周期の制御処理を実行する制御用計算機の開発の手間を低減することができる。また、時間的制約の許容する範囲で、複数の周期処理プログラムの送信データをまとめるように送信スケジュールを決定し、送信することで通信性能の低下を防ぐことができる。 As described above, the communication scheduler of the control computer transmits the control command value to the control target device by the program for the periodic processing program (program for periodically outputting the control command value) provided in the control computer. The longest permissible period and the like when storing are stored in the program management information. Then, the communication scheduler determines a transmission schedule for transmitting the control command value so as to keep the longest allowable period indicated in the program management information. Based on the transmission schedule, transmission data including the control command value of the program is transmitted. In other words, the control computer transmits the transmission data including the control command value so as to satisfy the time constraint (the longest allowable period or the like) of the program that transmits the control command value. Therefore, it is not necessary to set a conditional branch for distinguishing the period of each periodic processing program in the communication application, and it is possible to reduce the effort of developing a control computer that executes control processing of one or a plurality of different periods. it can. Moreover, it is possible to prevent a decrease in communication performance by determining and transmitting a transmission schedule so that transmission data of a plurality of periodic processing programs are collected within a range permitted by time constraints.
本発明によれば、複数の異なる周期の制御処理を実行する制御用計算機の開発の手間を低減することができる。また、新たな制御処理(制御処理プログラム)の追加や既存の制御処理の周期の変更等を容易にすることができる。また、制御用計算機は複数の周期処理プログラムの送信データをまとめて送信するので、通信性能の低下を防止できる。 ADVANTAGE OF THE INVENTION According to this invention, the effort of development of the computer for control which performs the control processing of a several different period can be reduced. Further, it is possible to easily add a new control process (control process program), change the cycle of an existing control process, and the like. In addition, since the control computer transmits transmission data of a plurality of periodic processing programs at a time, it is possible to prevent a decrease in communication performance.
以下、本発明を実施するための形態(以下、実施の形態という)を説明する。図1は、本実施の形態の制御用計算機のハードウェア構成例である。この制御用計算機は、制御対象装置を制御するためのプログラムを1以上備え、この制御用計算機のCPU(Central Processing Unit、処理部)101は、不揮発性記憶媒体109からメモリ108に、このプログラムを転送して実行する。図1において、メモリ108にプログラムが転送された状態を示している。このプログラムとしては、割込みハンドラを含むOS(Operating System)や、このOS上で動作し、制御対象装置121を制御するためのアプリケーションプログラムがある。通信スケジューラ102は、CPU101から通信要求を受け取り、LAN(Local Area Network)コントローラ103を用いて制御用ネットワーク122に対して通信する。通信スケジューラ102の実装例としては、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、ASIC(Application Specific Integrated Circuit)、ゲートアレイ等のIC(Integrated Circuit)がある。
Hereinafter, modes for carrying out the present invention (hereinafter referred to as embodiments) will be described. FIG. 1 is a hardware configuration example of a control computer according to this embodiment. The control computer includes one or more programs for controlling the control target device, and the CPU (Central Processing Unit) 101 of the control computer stores the programs from the
LANコントローラ103は、制御用ネットワーク122(後記)との通信機能を実装した送受信機ICである。LANコントローラ103の提供する通信規格としてEthernet(登録商標)のLANコントローラや、MAC(Media Access Controller)チップとPHYes(物理層)チップの組み合わせ、または特定のネットワーク仕様の物理層あるいは物理層とデータリンク層を処理するIC等である。
The
メモリ108は、CPU101が動作するための一時的な記憶領域であり、不揮発性記憶媒体109から転送したOS、アプリケーションプログラム等が格納される。
The
不揮発性記憶媒体109は、HDD(Hard Disk Drive)や、フラッシュメモリ等の記憶媒体で、CPU101が実行するプログラムの保存、プログラムの実行結果の保存に利用される。
The
バス110は、CPU101、メモリ108、不揮発性記憶媒体109、通信スケジューラ102、LANコントローラ103をそれぞれ接続する。バス110としては、PCI(Peripheral Component Interconnect)バス、ISA(Industrial Standard Architecture)バス、PCI Expressバス、システムバス、メモリバス等である。
The bus 110 connects the
図2は、制御用計算機120を用いたシステム構成例である。制御用計算機120は、制御対象装置121と、制御用ネットワーク122を介して接続し、この制御対象装置121を制御するハードウェア装置である。制御対象装置121は、例えば、サーボアンプやサーボモータである。なお、図2ではネットワークはリングトポロジとなっているが、論理的なリングトポロジやスタートポロジ等のトポロジであってもよい。
FIG. 2 is a system configuration example using the
図3に通信スケジューラ102の機能構成図を示す。通信スケジューラ102は、プログラム管理部130と、スケジュール変更可能性判定部131と、データグラム連結部132と、データグラム分解部133と、計時部134と、送信時刻スケジュール部135と、プログラム起床部136と、送信部137と、受信部138とを含んで構成される。この通信スケジューラ102による通信スケジューリングの具体例は後記する。
FIG. 3 shows a functional configuration diagram of the
プログラム管理部130は、個々の制御処理を実行するプログラムの情報(プログラム管理情報)を作成し、この通信スケジューラ102の備える記憶部(図示省略)に記憶する。プログラム管理部130は、個々のプログラム(図5参照)ごとに必要なため、複数存在しうる。プログラム管理部130の個数は、その上限値はハードウェア等の計算機資源によって制約され、制御システムを構築するに充分なプログラム、制御対象の数だけ必要である。
The
スケジュール変更可能性判定部131は、新規のプログラムの追加、既存プログラムの周期変更、プログラムの登録抹消が可能か否かを、各プログラムの有する時間的制約と通信量等の情報をもとに判定する。例えば、新規のプログラム、変更された既存プログラムを含むすべてのプログラムについて、プログラム管理情報を参照して、プログラムそれぞれから出力される制御指令値のデータサイズの合計値を、通信スケジューラ102の通信処理スループットで除した値を計算する。そして、この値が、プログラムそれぞれの最長許容周期のうち、最も短い最長許容周期よりも小さいとき、このすべてのプログラムの時間的制約を満たすと判定する。一方、この値がプログラムそれぞれの最長許容周期のうち、最も短い最長許容周期よりも大きいとき、このすべてのプログラムの時間的制約を満たさないと判定する。つまり、スケジュール変更可能性判定部131は、この新規なプログラムの追加または既存プログラムの変更は不可能であると判定する。
The schedule change
データグラム連結部132は、送信時刻スケジュール部135が計画した送信予定時刻に送信するデータを集めて連結し、送信部137へと伝送し、状態フラグ管理部145(後記)の状態フラグを更新する。また、このデータグラム連結部132は、必要があれば、制御用ネットワーク122(図2参照)に固有なヘッダ、トレイラを付与する。
The
なお、このデータグラム連結部132が、各プログラムのデータを連結する順番は、各送信データ固有のヘッダに各送信データを区別する情報が付与されていれば、特に制約はない。例えば、データグラム連結部132は、プログラム管理部130において管理上つけられた順番で各プログラムのデータを連結すればよい。ただし、送信データの位置が制御用ネットワーク122上で伝送されるときに固有の意味を持つ場合は、その制御用ネットワーク122の仕様にしたがった位置に送信データを配置する。例えば、送信データの位置する順番と制御対象装置121が受信する順番とが同じであるという制約がある場合は、受信する制御対象装置121の順番に応じて送信データを並べる。
Note that the order in which the
データグラム分解部133は、受信部138から伝送されたデータを各プログラム用のデータに分割し、各プログラムのプログラム管理部130のデータグラム抽出部144(後記)に伝送する。また、データグラム分解部133は、プログラム起床部136に、データを受信したプログラム管理部130の識別子を伝送する。つまり、この制御用計算機120は、プログラムに基づき、制御指令値を示すデータを制御対象装置121へ送信した後、受信部138により、この制御対象装置121からこの制御指令値に対する応答を含むデータを受信する。ここで、受信したデータには複数のプログラムの制御指令値に対する応答が含まれている可能性がある。よって、データグラム分解部133は、受信したデータをそのそれぞれのプログラム用に分割して、当該応答に関する処理を行うプログラムのプログラム管理部130へ伝送(出力)する。また、データグラム分解部133は、プログラム起床部136に、データを受信したプログラム管理部130の識別子を伝送することで、プログラム起床部136に、この受信したデータを処理すべきプログラムはどれかを通知することができる。
The
計時部134は、計時手段を有し、通信スケジューラ102内の各部に時間情報を提供する。この時間情報は、制御アプリケーション実行後の経過時間の計測や各種イベントの発生時刻の記録に用いられる。なお、計時部134は、通信スケジューラ102の外部に置かれたタイマ等のデバイスによって代替されてもよい。
The
送信時刻スケジュール部135は、各プログラムの周期等の時間的制約、設定情報を考慮して、その送信予定時刻、連結するデータを抽出するプログラムを各プログラム管理部130からデータを抽出して連結する。そして、このデータを送信するタイミングを決定する。また、送信時刻スケジュール部135は、各プログラム管理部130のプログラム情報管理部142によりプログラム管理情報から周期を取得し、その送信予定時刻に送信するプログラムをデータグラム連結部132に通知する。
The transmission
プログラム起床部136は、データグラム分解部133から通知されたプログラム管理部130の識別子によって、受信したデータがどのプログラムに関するデータかを識別し、この識別したプログラムを起床する。起床方法は、バス110(図1参照)を介した割込みを用いることが例示される。また、起床は任意のタイミングで実行可能である。
The program wake-up
送信部137は、データグラム連結部132から伝達されたデータをLANコントローラ103へと送信する。
The
受信部138は、LANコントローラ103からデータを受信し、データグラム分解部133に伝送する。
The receiving
図4にプログラム管理部130の構成を示す。このプログラム管理部130は、CPU101(図1参照)から出力されてきた当該プログラムの送信データを送信データ管理部140へ入力する。また、制御対象装置121(図2参照)から受信した受信データを、受信部138(図3参照)、データグラム分解部133、データグラム抽出部144および受信データ管理部141経由で、CPU101へ出力する。このプログラム管理部130は、プログラム情報管理部142と、データグラム生成部143と、データグラム抽出部144と、状態フラグ管理部145とを備える。なお、状態フラグ管理部145は、状態フラグの更新を行う。この状態フラグは、この通信スケジューラ102の備える記憶部の所定領域に記憶される。
FIG. 4 shows the configuration of the
送信データ管理部140は、プログラムに基づきCPU101(図1参照)から出力される制御指令値を含む送信データを受信すると、この送信データをいったん通信スケジューラ102の備える記憶部に記憶する。この送信用データには制御指令値等が含まれる。
When the transmission
受信データ管理部141は、制御対象装置121から受信した受信データをCPU101へ出力する。この受信データは、例えば、送信データに示される制御指令値に対するこの制御対象装置121の応答結果等を含むデータである。
The reception
プログラム情報管理部142は、制御用計算機120(図1参照)の備えるプログラム、そのプログラムによる制御処理、制御対象装置121等を示したプログラム管理情報を管理している。このプログラム管理情報として、プログラムの識別子、制御対象装置121の識別子、このプログラムにより制御指令値を送るときの周期、目標送信時刻、最長許容周期、データ更新が周期内で間に合わなかった場合の対応処理、周期変更時の対応処理、周期プログラムか非周期処理プログラムか、プログラム間での優先度、送信フレーム中でのプログラムのデータ位置等を示した情報である。なお、周期プログラムは、制御対象装置121へ所定周期でデータを送るためのプログラムであり、非周期処理プログラムは、周期的にデータを送信する必要のないプログラムである。
The program
データグラム生成部143は、CPU101(図1参照)から送信要求があった場合に、送信データを送信に適した形式に変換、加工する。例えば、そのような処理として、制御用ネットワーク122の通信プロトコルに固有のヘッダ、トレイラの生成等、制御用ネットワーク122(図2参照)の仕様に適した形式に変換する。
When there is a transmission request from the CPU 101 (see FIG. 1), the
また、データグラム抽出部144は、データグラム分解部133からデータの受信通知があった場合に、受信内容をプログラムへの通知に適した形式に変換する。そのような処理として、データのヘッダ、トレイラの除去が例示される。
In addition, when there is a data reception notification from the
状態フラグ管理部145は、送信データおよび受信データの状態を示す状態フラグの更新を行う。例えば、プログラムに基づきCPU101(図1参照)が送信データ管理部140の送信データを更新済みだが、通信スケジューラ102(図3参照)の外部へは未送信である状態、通信スケジューラ102は送信データ管理部140の送信データを送信済みで、CPU101がまだ更新していない状態、通信スケジューラ102が受信データ管理部141の受信データを更新してCPU101は未取得である状態、CPU101は受信データ管理部141の受信データを取得済みで、通信スケジューラ102はまだ外部からパケットを受信していない状態が例示される。プログラム、あるいは送信時刻スケジュール部135は、状態フラグ管理部145に対して状態フラグの状態を問い合わせる。これにより、例えば、送信時刻スケジュール部135は、所定の周期内でプログラムが送信データを更新できなかった場合を検知でき、また、プログラムが、受信データが更新されているかどうかを確認することができ、受信データを取得するか、取得しないかを判定することができる。
The status
次に、制御用計算機120上で動作するプログラムの構成を図5に示す。この制御用計算機120上で動作するプログラムは、OS150、デバイスドライバ151、周期処理プログラム152、非周期処理プログラム153、API(Application Program Interface)154、プロトコルスタック155、共通設定プログラム156とを備える。図5において、上位に位置するプログラムが下位のプログラムの提供する機能を利用する。なお、この周期処理プログラム155はそれぞれ、異なる処理を行うためのプログラムであるものとする。なお、図5においては説明のため、異なる処理を行うプログラムをそれぞれ別個の周期処理プログラム152として描いているが、1つのプログラムにより複数の異なる周期処理を実行するようにしてもよい。また、この制御用計算機120は非周期処理プログラム153は備えないようにしてもよい。
Next, FIG. 5 shows the configuration of a program that runs on the
OS150は、プログラム管理やハードウェアへのアクセス等の基本機能を提供する。OSは、必ずしも必要ではないが、汎用的なアプリケーションや既存のソフトウェア資産の利用、タスク管理等の基本機能を提供することから、利用されるのが望ましい。また、このOS150は、時間的制約にしたがってタスクスケジューリングを実行可能なリアルタイムOSが望ましい。
The
デバイスドライバ151は、OS150の提供するハードウェアへのアクセス手段を用いて、バス110を介して通信スケジューラ102にアクセスするためのドライバである。デバイスドライバ151は、OS150の一部であっても構わない。
The
周期処理プログラム152は、制御用計算機120上で動作するアプリケーションプログラムで、制御対象装置121を制御、監視、診断するために送信時刻の周期等の時間的制約をもって周期的に実行される。この周期処理プログラム152は、API154、デバイスドライバ151を通じて、通信スケジューラ102へアクセスし、制御対象装置121を制御、監視、診断用のデータを送受信するために用いられる。なお、この制御計算機120は、この周期処理プログラム152を1以上備えるものとする。
The
非周期処理プログラム153は、時間的制約を有さない通信のためのプログラムである。この制御システムを構成する制御用ネットワーク122(図2参照)には、インターネットで利用されるTCP/IP(Transmission Control Protocol/Internet Protocol)通信を許容するものもある。そのような制御用ネットワーク122では、TCP/IP通信で送信するデータを他のデータと連結して送信する。
The
API154は、デバイスドライバ151にアクセスするためのソフトウェアインターフェースであり、ハードウェアの違いを吸収することで、プログラムに対してハードウェアへの共通のアクセス手段を提供するためのプログラムである。API154は、OS150の一部であっても構わない。API154により提供されるアクセス手段には、ハードウェアに対する書き込み、読み込み、送信、受信、設定等がある。API154の具体例として、ライブラリ、ミドルウェア等がある。
The
プロトコルスタック155は、非周期処理プログラム153による送信要求、非周期処理プログラム153への受信内容の転送や、通信データの分割、再構成を実行するためのプログラムである。一般的に制御処理における通信量は少なく、周期処理プログラム152における通信データ量は1指令につき、1回の送受信で伝送可能である。しかし、制御以外のアプリケーションでの通信量は、単一のパケットでは収まらず、分割と再構成が必要な場合がある。また、信頼性を提供するための再送処理や、ネットワーク上の通信量を調節するための輻輳制御がなされる。プロトコルスタック155は、これらの処理を実施するためのプログラムである。
The
共通設定プログラム156は、通信スケジューラ102の全般的な機能を設定するためのプログラムである。
The
次に、図5の周期処理プログラム152の処理手順を図6に示す。ここでは、制御用計算機120の既存の周期処理プログラム152に加えて、新規に周期処理プログラム152を追加しようとした場合に、この制御用計算機120が、自身の制御用計算機120において、この新規な周期処理プログラム120を実行可能か否か判定する場合について説明する。はじめに、周期処理プログラム152に基づきCPU101(図1参照)は、新規にこの周期処理プログラム152を実行可能か否かを通信スケジューラ102のスケジュール変更可能性判定部131(図3参照)に問い合わせる(S001)。ここでのスケジュール変更可能性判定部131による新規に周期処理プログラム152を実行可能か否かの判定処理の詳細は後記する。
Next, FIG. 6 shows a processing procedure of the
スケジュール変更可能性判定部131が、この周期処理プログラム152を実行可能と判定すれば(S001のYes)、周期処理プログラム152は、この周期処理プログラム152の周期処理(および周期通信)に必要な情報をプログラム情報管理部142(図4参照)のプログラム管理情報に設定する(S002)。この周期処理および周期通信に必要な情報は、プログラムの識別子、この周期処理プログラム152が制御指示値を送信する制御対象装置121の識別子、制御指示値を送信する周期、目標送信時刻、最長許容周期、データ更新が周期内で間に合わなかった場合の対応処理、周期変更時の対応処理、周期処理プログラムか非周期処理プログラムか否か、この制御用計算機120の備えるプログラム間での優先度、送信データ中でのプログラムのデータ位置等である。また、周期処理プログラム152により明示的に設定されなかった項目に対しては、プログラム情報管理部142が所定の設定値を設定してもよい。なお、スケジュール変更可能性判定部131が実行不可能と判定すれば(S001のNo)、周期処理を終了する。
If the schedule change
S002の後、周期処理プログラム152に基づきCPU101は、送信する制御指令値を演算し、送信データを決定する(S003)。
After S002, based on the
次に、周期処理プログラム152に基づきCPU101は、通信スケジューラ102(図3参照)に送信データを送信して待機状態に入る(S004)。その後、通信スケジューラ102の受信部138により、制御対象装置121からのデータを受信すると待機状態を解除する(S005)。
Next, based on the
S005の後、CPU101は、周期処理プログラム152を終了するか否かを判断する(S006)。処理を終了しない場合は(S006のNo)、S003からの手順を繰り返し、そうでなければ(S006のYes)、終了する。なお、S006の終了判定は、周期的に実行される処理内であれば、いつ判断してもよく、S003からS005のいずれかの手順の間に実行されればよい。なお、終了と判断する条件は、開発者の判断や制御システムの仕様による。例えば、CPU101は、送信データを所定回数送信した場合や、受信したデータに所定の情報が含まれている場合等に、終了と判断する。
After S005, the
また、図6に示す手順の他に、データの受信処理を周期的な処理と独立して実行するようにしてもよい。この場合、図7に示すように、S002の次に、周期処理プログラム152に基づきCPU101は、受信処理の内容を登録する(S010)。この受信処理の内容は、受信データを受信したときに、この受信データを周期処理に適した形式に変換、加工することや、周期処理から受信内容を取得できるように共通領域に保存することや、受信情報の統計値をとること等である。また、周期処理プログラム152に基づきCPU101は、受信情報を取得する(S011)。つまり、CPU101は、制御指令値を演算する前に受信データをメモリ108等から取得する。また、CPU101は、この受信データがいつ受信したデータであるかを識別するために受信時刻、更新あるいは取得するたびに更新される識別子等を受信データに付記する。また、ここで取得する受信データは、1つ分の受信データである必要はなく、複数分の受信データでも構わない。周期処理においては、複数の時間における受信データを利用することで、より高機能な制御を実行することができる。
In addition to the procedure shown in FIG. 6, the data reception process may be executed independently of the periodic process. In this case, as shown in FIG. 7, after S002, the
また、図7のS003の後、周期処理プログラム152に基づきCPU101は、送信データを送信する(S012)。次に、周期処理プログラム152は待機状態に入る(S013)。待機方法の具体例としては、POSIX(Portable Operating System Interface)のsleepコールや、プロセスを待機状態にするシステムコールがある。これらのシステムコールはOS150によって提供される。
Further, after S003 in FIG. 7, the
その後、周期処理プログラム152に基づきCPU101は、通信スケジューラ102のプログラム起床部136によって待機状態を解除される(S014)。このS014を実行後、CPU101は、周期処理プログラム152終了するか否かを判断する(S006)。処理を終了しない場合は(S006のNo)、S011からの手順を繰り返し、そうでなければ(S006のYes)、終了する。なお、S006の終了判定は、周期的に実行される処理内であれば、いつ判断してもよく、S011からS014のいずれかの手順の間に実行されればよい。
Thereafter, the
図8に、非周期処理プログラム153(図5参照)の処理手順を示す。はじめに、非周期処理プログラム153に基づきCPU101(図1参照)は、新規に非周期処理プログラム153を実行できるか否かを通信スケジューラ102のスケジュール変更可能性判定部131に問い合わせる(S020)。このとき、非周期処理プログラム153に最低保証帯域や最長許容遅延等のなんらかの制約があれば、CPU101は、それをスケジュール変更可能性判定部131に通知する。スケジュール変更可能性判定部131が、非周期処理プログラムを実行可能と判定すれば(S020のYes)、送信または受信する(S021)。一方、スケジュール変更可能性判定部131が、非周期処理プログラム153を実行不可能と判断すれば(S020のNo)、そのまま処理を終了する。
FIG. 8 shows a processing procedure of the aperiodic processing program 153 (see FIG. 5). First, based on the
次に、図6、図7、図8に示す手順における通信スケジューラ102の処理手順について述べる。図6、図7のS001、図8のS020にて、CPU101(図1参照)が、新規な周期処理プログラム152または新規な非周期処理プログラム153を実行可能か否かを通信スケジューラ102のスケジュール変更可能性判定部131に問い合わせる。このときの周期処理プログラム152に対するスケジュール変更可能性判定部131の判定手順を、適宜図10〜図22を参照しながら、図9を用いて説明する。なお、図10〜図22に示すプログラムA〜Kはそれぞれ、周期処理プログラム152を示す。また、データサイズは、その周期処理プログラム152により送信する制御指令値のデータの最大データサイズを示す。各図のデータサイズの単位は「B(バイト)」である。
Next, the processing procedure of the
はじめに、周期処理プログラム152に基づきCPU101は、この周期処理プログラム152の制御指令値の周期と、この制御指令値のデータサイズ(最大データサイズ)をスケジュール変更可能性判定部131(図3参照)に申請する(S040)。
First, based on the
次に、スケジュール変更可能性判定部131は、プログラム管理部130等の新規に割り当て可能な計算機資源があるか否かを判定する(S041)。もし計算機資源がなければ(S041のNo)、スケジュール変更可能性判定部131は、この周期処理プログラム152は実行不可能と判定する(S057)。なお、ここでいう計算機資源とは、例えば、メモリ108の記憶容量等である。一方、計算機資源があれば(S041のYes)、次にスケジュール変更可能性判定部131は、現在実行しているすべてのプログラムのデータサイズの合計値Sum1を算出する(S042)。例えば、各周期処理プログラム152の周期およびデータサイズが、図10に示すような値であった場合、スケジュール変更可能性判定部131は、図11に示すように、全プログラムのデータサイズの合計305B(バイト)を算出する。
Next, the schedule change
S042の後、スケジュール変更可能性判定部131は最も周期が短いプログラムの周期μ1を取得する。つまり、最短周期μ1を取得する(S043)。例えば、スケジュール変更可能性判定部131は、図10に示す周期のうち、最も短い周期(実行周期)20μsをμ1として取得する(図11参照)。
After S042, the schedule change
そして、スケジュール変更可能性判定部131は、S042で算出したSum1を通信スケジューラ102の通信処理スループットで除したT1を算出する(S044)。このようなT1を算出することで、すべての周期処理プログラム152の周期が重なった場合の通信スケジューラ102の通信処理時間を知ることができる。例えば、通信スケジューラの通信処理スループットが100Mbpsであった場合、スケジュール変更可能性判定部131は、T1=305B/100Mbps=24.4μsを算出する。
The schedule change
図9の説明に戻る。次に、スケジュール変更可能性判定部131は、S044で算出したT1と安全係数との和が、μ1より小さいか否かを判定する(S045)。ここで、S044で算出したT1と安全係数との和がμ1よりも小さければ(S045のYes)、この周期処理プログラム152は実行可能と判定する(S056)。一方、S044で算出したT1と安全係数との和が、μ1以上であれば(S045のNo)、周期処理プログラム152は実行可能の余地があるので、S046へ進む。例えば、図11に示すように、T1=24.4、安全係数=0、μ1=20μの場合、T1と安全係数との和が、μ1以上なので、S046へ進む。
Returning to the description of FIG. Next, the schedule change
図9の説明に戻る。そして、スケジュール変更可能性判定部131は、現在実行しているすべての周期処理プログラム152を素数倍の周期でグルーピングする(S046)。つまり、スケジュール変更可能性判定部131は、タイムスロットの素数倍の周期の周期処理プログラム152ごとに同じグループとし、すべての周期処理プログラム152をグルーピングする。
Returning to the description of FIG. Then, the schedule change
例えば、スケジュール変更可能性判定部131は、図12に示すように、20μs周期のプログラムAおよび40μs周期のプログラムCを、20μs周期グループとする。また、30μs周期のプログラムBおよび90μs周期のプログラムIを30μs周期グループとする。70μs周期のプログラムF,G,H,Eはそのまま70μs周期グループとする。なお、60μsは、20μsおよび30μsの公倍数であり、140μsは、20μsおよび70μsの公倍数である。よって、スケジュール変更可能性判定部131は、60μs周期のプログラムDおよび140μs周期のプログラムK,Jを、グルーピングせず、保留としておく。つまり、その周期でしか送信できないプログラムについては、それぞれの周期のデータとしてグルーピングし、いずれの周期のグループに属するか複数の選択可能性があるプログラムについては、所属するグループを決めずに保留としておく。
For example, as shown in FIG. 12, the schedule change
図9の説明に戻る。スケジュール変更可能性判定部131は、このようにグルーピングした後、各グループでプログラム(周期処理プログラム152)の実行タイミングを調整する(S047)。ここでのプログラムの実行タイミングの調整は、スケジュール変更可能性判定部131が、各タイムスロットあたりに送信可能なデータサイズ(以下、Tsとする)を超えず、かつ、データサイズがなるべく大きくなるように、グループ内で各周期処理プログラム152の周期をずらすことにより行われる。具体的には、スケジュール変更可能性判定部131は、データサイズの大きな周期処理プログラム152から同じタイムスロットにまとめていき、Tsを超えたところで、その周期処理プログラム152は別のタイムスロットにずらす。なお、周期処理プログラム152の周期が、異なるタイムスロットの素数倍の周期の公倍数となる場合は、スケジュール変更可能性判定部131は、なるべくデータサイズのまとまりが大きくなるグループに組み入れる(ただし、Tsを超える場合は別のグループに組み入れる)。また、データサイズがTsよりも大きい周期処理プログラム152は、連続するタイムスロットを利用するように割り当てる。
Returning to the description of FIG. After grouping in this way, the schedule change
例えば、タイムスロットあたりの送信可能なデータサイズTs=100Bとすると、図13に示すように、20μs周期グループのプログラムA,Cのデータサイズは合計40Bであるので、60Bの余裕がある。そこで、スケジュール変更可能性判定部131は、保留していた140μs周期のプログラムK,Jをこの20μs周期グループに入れるとちょうど100Bになるので、これらのデータを同じタイムスロットにまとめる。なお、スケジュール変更可能性判定部131は、60μsのプログラムDについては、20μs周期グループの別のタイムスロットにずらす。ここで、20μs周期グループのタイムスロットに組み込むプログラムとしてプログラムK,Jを選択するのは、プログラムDよりもプログラムK,Jのデータサイズが大きいからである。次に、スケジュール変更可能性判定部131は、30μs周期のグループにおいて、プログラムB,Iを同じタイムスロットにまとめる。さらに、70μs周期のプログラムF,G,Eをまとめる。なお、スケジュール変更可能性判定部131は、プログラムHまでまとめるとTs(100B)を超えるので、プログラムHについては、70μ周期の別のタイムスロットにずらす。なお、図14の70μs周期グループのプログラムFのように、単独でそのデータサイズ(120B)がTs(例えば、100B)を超えているプログラムについては、スケジュール変更可能性判定部131は、図15に示すように連続する複数のかたまりとしてタイムスロットを割り当てる。つまり、プログラムFについて、連続する2つのタイムスロットにまたがって割り当てる。
For example, if the transmittable data size per time slot Ts = 100B, as shown in FIG. 13, the data size of the programs A and C in the 20 μs period group is 40B in total, so there is a margin of 60B. Therefore, the schedule change
ここで、スケジュール変更可能性判定部131は、各グループにおける周期を1つのタイムスロットの周期で除した値をμgとする。例えば、1つのタイムスロットの周期が10μsである場合、20μs周期グループのμgの値は「2」である。次に、スケジュール変更可能性判定部131は、新規に追加するプログラムのデータを含むグループにおいて、用いるタイムスロットの種類の数がμg以下になるように各周期処理プログラム152のデータを送信するタイムスロットを調整した結果、データサイズがTsを超えるタイムスロットが存在するか否かを判定する(S048)。
Here, the schedule change
ここで、スケジュール変更可能性判定部131は、データサイズがTsを超えるタイムスロットが存在する場合は(S048のYes)、この周期処理プログラム152を実行不可能と判定する(S057)。一方、データサイズがTsを超えるタイムスロットが存在しない場合は(S048のNo)、プログラムを実行可能の余地があるので、S049へ進む。
Here, if there is a time slot whose data size exceeds Ts (Yes in S048), the schedule change
例えば、図16に示すように、20μs周期グループはμg=2であり、30μ周期グループはμg=3であり、70μs周期グループはμg=7である。ここで、新規に追加するプログラムを含む20μs周期グループにおいて、μg=2の組み合わせにしてもTsを超える組み合わせはない(S048のNo)。よって、S049へ進む。 For example, as shown in FIG. 16, a 20 μs periodic group is μg = 2, a 30 μs periodic group is μg = 3, and a 70 μs periodic group is μg = 7. Here, in the 20 μs periodic group including the program to be newly added, there is no combination exceeding Ts even if the combination is μg = 2 (No in S048). Therefore, the process proceeds to S049.
図9の説明に戻る。スケジュール変更可能性判定部131は、残りのグループ中のそれぞれで、最もデータサイズが大きくなる場合の周期処理プログラム152の組み合わせを選択する。そして、スケジュール変更可能性判定部131は、その組み合わせと新規に追加するプログラムを含むグループ内でデータサイズが大きくなる場合のプログラムのデータの組み合わせとの、データサイズの合計値Sum2を算出する(S049)。
Returning to the description of FIG. The schedule change
例えば、図16に示すように、20μs周期グループ以外のグループ、つまり、30μs周期グループで、最もデータサイズが大きい組み合わせは、プログラムB,Iの組み合わせであり、データサイズは45Bである。また、70μs周期グループで、最もデータサイズが大きい組み合わせは、プログラムE,F,Gの組み合わせであり、データサイズは100Bである。よって、スケジュール変更可能性判定部131は、Sum2=100B+45B+100B=245Bと計算する。
For example, as shown in FIG. 16, the group having the largest data size in the group other than the 20 μs period group, that is, the 30 μs period group, is the combination of programs B and I, and the data size is 45B. The combination having the largest data size in the 70 μs periodic group is a combination of programs E, F, and G, and the data size is 100B. Therefore, the schedule change
図9の説明に戻る。スケジュール変更可能性判定部131は、Sum2が、Tsを超えるか否かを判定する(S050)。ここで、Sum2が、Tsを超えなければ(S050のNo)、スケジュール変更可能性判定部131は、このタイムスロットに基づくプログラムの実行のタイミングの調整を送信時刻スケジュール部135(図3参照)へ通知する(S55)。そして、スケジュール変更可能性判定部131は、当該周期処理プログラム152の実行処理を可能と判定する(S056)。そして、スケジュール変更可能性判定部131は、この周期処理プログラム152に新規にプログラム管理部130を割り当てる(S058)。そして、処理を終了する。
Returning to the description of FIG. The schedule change
一方、Sum2が、Tsを超える場合は(S050のYes)、スケジュール変更可能性判定部131は、各周期グループの各タイムスロットを構成するプログラムの組み合わせを変えることで、そのタイムスロットの最長データの合計Sum2を減少できるか否かを判定する(S051)。
On the other hand, when Sum2 exceeds Ts (Yes in S050), the schedule change
例えば、図17に示すように、S049で計算したSum2=245Bであり、この値はTsを超えているので、S051へ進み、スケジュール変更可能性判定部131は、各周期グループの各タイムスロットを構成するプログラムの組み合わせを変えることで、そのタイムスロットの最長データの合計Sum2を減少できるか否かを判定する(S051)。
For example, as shown in FIG. 17, Sum2 = 245B calculated in S049 and this value exceeds Ts. Therefore, the process proceeds to S051, and the schedule change
図9の説明に戻る。S051で各周期グループの各タイムスロットを構成するプログラムの組み合わせを変えることで、そのタイムスロットの最長データの合計Sum2を減少できると判定したとき(S051のYes)、スケジュール変更可能性判定部131は、各タイムスロットのプログラム構成を変更する(S052)。具体的には、スケジュール変更可能性判定部131は、そのグループにおいて、データサイズが最大となっているタイムスロットを構成する複数のプログラムのうち、データサイズの小さいプログラムを別のタイムスロットにずらし、そのグループにおける最大のデータサイズを小さくする。そして、再びS049の手順をとる。
Returning to the description of FIG. When it is determined in S051 that the total Sum2 of the longest data of the time slot can be reduced by changing the combination of programs constituting each time slot of each cycle group (Yes in S051), the schedule change
例えば、スケジュール変更可能性判定部131は、図17に示すように、最大のデータサイズのタイムスロットが複数のプログラムで構成されている周期グループがある。よって、スケジュール変更可能性判定部131は、その最大のデータサイズのタイムスロットのデータ構成を変更し、最大サイズを減少させる。例えば、スケジュール変更可能性判定部131は、図17において20μs周期グループの最大のデータサイズのスロットはプログラムA,C,K,Jからなるタイムスロットである。よって、例えば、ジュール変更可能性判定部131は、図18に示すように、プログラムJを、プログラムCのタイムスロットに移動させて、プログラムA,D,Kからなるタイムスロットとする。同様に、図17において30μs周期グループの最大のデータサイズのスロットはプログラムB,Iからなるタイムスロットである。よって、スケジュール変更可能性判定部131は、図18に示すように、プログラムB,Iからなるタイムスロットについて、プログラムBを別のタイムスロットへ移動させる。同様に、図17において70μs周期グループの最大のデータサイズのスロットはプログラムF,G,Eからなるタイムスロットである。よって、スケジュール変更可能性判定部131は、図18に示すように、プログラムF,G,Eからなるタイムスロットについても、プログラムG,Eを別のタイムスロットへ移動させて、プログラムFからなるタイムスロットとする。このようにして、スケジュール変更可能性判定部131は、各周期グループのタイムスロットのデータの最大サイズを減少させる。そして、再びS049以降の処理を繰り返す。例えば、図19に示すように、Sum2=60B+30B+40B=130Bを計算する。ここで、Sum2>Ts(100B)であるため(S050のYes)、S051へ進む。
For example, as shown in FIG. 17, the schedule change
図9の説明に戻る。S051にて、各周期グループの各タイムスロットを構成するプログラムの組み合わせを変えたとしても、そのタイムスロットの最大サイズを減少させることはできないと判定したとき(S051のNo)、スケジュール変更可能性判定部131は、周期グループのプログラムのうち、別の周期グループに移動可能なプログラムがあるか否かを判断する。つまり、スケジュール変更可能性判定部131は、各プログラムについて異なるグルーピングが可能か否かを判定する(S053)。ここで、異なるグルーピングが可能であれば、グループを変更し(S054)、S047からの手順を繰り返す。
Returning to the description of FIG. When it is determined in S051 that the maximum size of the time slot cannot be reduced even if the combination of programs constituting each time slot of each cycle group is changed (No in S051), the schedule change possibility determination The
例えば、図18に示すように、20μs周期グループにおいて、サイズが最大のタイムスロットはプログラムA,D,Kのタイムスロットと、プログラムC,Jのタイムスロットである。ここで、この20μs周期グループはμg(各グループにおける周期を1つのタイムスロットの周期で除した値)は「2」である。よって、スケジュール変更可能性判定部131は、既に2つのタイムスロットを作っているので、このプログラムA,D,Kのいずれかのプログラムを別のタイムスロットに移すことによって、このタイムスロットの最大サイズを減少させることはできない。したがって、スケジュール変更可能性判定部131は、各周期グループの各タイムスロットを構成するプログラムの組み合わせを変えたとしても、そのタイムスロットの最大サイズを減少させることはできないと判定し(S051のNo)、各プログラムについて異なるグルーピングが可能か否かを判断する(S053)。ここで、図19に示すように、20μs周期グループには、140μs周期のプログラムK,Jも含まれている。この140μs周期のプログラムK,Jは、他の周期(70μs周期)のグループに移動可能なので、図20に示すように70μs周期グループに移動させる。つまり、スケジュール変更可能性判定部131は、各周期グループの最大サイズのタイムスロットに、公倍数の周期のプログラムのプログラムがあるとき、このプログラムを、このプログラムの周期の公約数の周期のグループへ移動させる。このようにすることで、スケジュール変更可能性判定部131は、各周期グループに決められたμgの値を守りつつ、タイムスロットの最大サイズを減少させることができる。そして、再度、S049へ戻り、Sum2を計算すると、図21に示すように、30B+30B+40B=100Bとなる。この値はTs=100Bを超えない値であるので(S50のNo)、S55へ進み、プログラムの実行タイミングの調整を通知すると(S55)、プログラムを実行可能と判定し(S56)、新規にプログラム管理部130の割り当てを行う(S58)。
For example, as shown in FIG. 18, in the 20 μs period group, the time slots with the largest size are the time slots for programs A, D, and K and the time slots for programs C and J. Here, this 20 μs period group has “2” as μg (a value obtained by dividing the period in each group by the period of one time slot). Therefore, since the schedule change
図9の説明に戻る。一方、S053において、スケジュール変更可能性判定部131が、各データについて異なるグルーピングが可能でなければ(S053のNo)、プログラムの実行は不可能と判定する(S057)。また、この周期処理プログラム152の実行にあたっては実行タイミングの調整が必要であることを送信時刻スケジュール部135に通知する(S055)。そして、スケジュール変更可能性判定部131は、S056以降の処理を実行する。
Returning to the description of FIG. On the other hand, in S053, if the schedule change
以上のような処理を実行することで、スケジュール変更可能性判定部131は、周期処理プログラム152であるプログラムA〜Kに対し、例えば、図22に例示するようなタイムスロットの割り当てを決定する。例えば、図22の符号220に示すタイムスロットはプログラムA(10B)、プログラムD(20B)、プログラムI(30B)、プログラムF(40B)を送信することを示す。すなわち、通信スケジューラ102がイーサネット(登録商標)フレームにおいて、当該タイムスロットの送信時刻になったとき、これらのプログラムの制御指令値を含む送信データを送信することを示す。
By executing the processing as described above, the schedule change
次に、非周期処理プログラム153(図5参照)に対するスケジュール変更可能性判定部131(図3参照)の判定手順を図23に示す。 Next, FIG. 23 shows a determination procedure of the schedule change possibility determination unit 131 (see FIG. 3) for the aperiodic processing program 153 (see FIG. 5).
はじめにスケジュール変更可能性判定部131は、プログラム管理部130等の新規に割り当て可能な計算機資源があるか否かを判定する(S041)。もし、計算機資源がなければ(S041のNo)、そのプログラムは実行不可能と判定する(S057)。
First, the schedule change
もし計算機資源があれば(S041のYes)、スケジュール変更可能性判定部131は、プログラム情報管理部142のプログラム管理情報を読み出し、この非周期処理プログラム153に制約があるか否かを判定する(S060)。もし制約がなければ(S060のNo)、スケジュール変更可能性判定部131は、送信時刻スケジュール部135に、送信時刻スケジュール表(タイムスロット表)160を参照して、スケジュールの空きがあるか否かを確認する(S061)。
If there is a computer resource (Yes in S041), the schedule change
図24は、送信時刻スケジュール部135が管理するタイムスロットの送信時刻スケジュール表(タイムスロット表)160を例示した図である。この送信時刻スケジュール情報は、この通信スケジューラ102の記憶部に記憶される。このタイムスロット表160は、横軸に現在時刻から所定スロット後までのタイムスロットを時系列に表し、縦軸にタイムスロットあたりのデータサイズを示している。送信時刻スケジュール部135は、スケジュール変更可能性判定部131からの問い合わせに応じて、この図24に示すようなタイムスロット表160において、まだデータが埋まりきっていないタイムスロットがあるか否かを確認する。つまり、スケジュール変更可能性判定部131は、このタイムスロット表160に、非周期処理プログラム153のデータを送信するタイムスロットの空きがあると、スケジュールに空きがあると判断する。
FIG. 24 is a diagram illustrating a time slot transmission time schedule table (time slot table) 160 managed by the transmission
図23のS061においてスケジュールに空きがなければ(S061のNo)、スケジュール変更可能性判定部131は非周期処理プログラム153を実行不可能と判定する(S057)。なお、スケジュール変更可能性判定部131において、所定時間待機すれば、この非周期処理プログラム153を利用可能になると判定した場合は、それをログに記録しておき、その所定時間待機していてもよい。
If there is no space in the schedule in S061 of FIG. 23 (No in S061), the schedule change
S061において送信時刻スケジュール部135のスケジュールの空きがあれば(S061のYes)、スケジュール変更可能性判定部131は非周期処理プログラム153を実行可能と判定する(S056)。一方、S060において非周期処理プログラム153に制約があれば(S060のYes)、スケジュール変更可能性判定部131は、その非周期処理プログラム153の制約が最低通信帯域の保証か否かを判定する(S062)。もし、その制約が最低通信帯域の保証であれば(S062のYes)、送信時刻スケジュール部135に、その帯域を保証できるか否かを確認する(S063)。つまり、スケジュール変更可能性判定部131は、送信時刻スケジュール部135に、その最低通信帯域を保証できるほどのスケジュールの空きがあるか否かを確認する。
If there is an empty schedule in the transmission
例えば、この非周期処理プログラム153の最低通信帯域が5B/sであるとき、送信時刻スケジュール部135は、図24に示すスケジュールの現在以降の1秒間分のタイムスロットに5Bの空きがあるか否かを確認し、その確認結果をスケジュール変更可能性判定部131へ返す。
For example, when the minimum communication bandwidth of the
ここで、もし、スケジュールの空きがあれば(S063のYes)、スケジュール変更可能性判定部131は非周期処理プログラム153を実行可能と判定する(S056)。そして、プログラム情報管理部142に、プログラム管理情報の更新を依頼する(S066)。つまり、プログラム情報管理部142に、この非周期処理プログラム153の情報を追加するよう指示する。一方、スケジュールの空きがなければ(S063のNo)、スケジュール変更可能性判定部131は非周期処理プログラム153を実行不可能と判定する(S057)。
Here, if there is an empty schedule (Yes in S063), the schedule change
S062において、非周期処理プログラム153の制約が最低通信帯域の保証でなければ(S062のNo)、スケジュール変更可能性判定部131は、非周期処理プログラム153の制約が最長許容遅延か否かを判定する(S064)。もし制約が最長許容遅延であれば(S064のYes)、非周期処理プログラム153に基づきCPU101は、スケジュール変更可能性判定部131にデータサイズを申請し、送信時刻スケジュール部135に対し、その最長許容遅延の条件を保証できるか否かを確認する(S065)。
In S062, if the restriction of the
例えば、この非周期処理プログラム153の最長許容遅延が、10μsであり、データサイズが10Bであった場合、送信時刻スケジュール部135は、図24のタイムスロット表160において、現在から10μs先までのタイムスロットのうち,10Bの空きがあるタイムスロットがあるか否かを確認する。そして、その確認結果を、スケジュール変更可能性判定部131へ返す。
For example, when the longest allowable delay of the
ここで、その最長許容遅延を保証できると判断されたとき(S065のYes)、スケジュール変更可能性判定部131は、この非周期処理プログラム153を実行可能と判定する(S056)。保証できなければ(S065のNo)、スケジュール変更可能性判定部131は非周期処理プログラム153を実行不可能と判定する(S057)。なお、S064において、非周期処理プログラム153の制約が最長許容遅延でなければ(S064のNo)、スケジュール変更可能性判定部131は、その非周期処理プログラム153を実行不可能と判定する(S066)。ただし、その他の制約の判定方法を用意すれば、順次判定することが可能である。
Here, when it is determined that the longest allowable delay can be guaranteed (Yes in S065), the schedule change
なお、周期処理プログラム152に基づきCPU101は、図6、図7のS002において、プログラム管理部130のプログラム情報管理部142は、周期処理プログラム152や非周期処理プログラム153に関する各種情報をプログラム管理情報に設定する。そして、S004において、送信データを送信データ管理部140に設定する。具体的には、はじめて送信データ管理部140を設定すると、送信時刻スケジュール部135へ、そのことが通知され、送信時刻スケジュール部135は今後の送信スケジュールを更新する。この送信時刻スケジュール部135の送信スケジュールの更新について説明する。
Based on the
送信時刻スケジュール部135では、タイムスロットを基準にデータの送信スケジュールを管理する。送信時刻スケジュール部135は、図24に例示するように、このタイムスロットごとにデータグラム連結部132によりデータを連結した送信データを送信する。このタイムスロットの幅は、適当なサイズのパケットを送信するのに必要な通信スケジューラ102の処理時間と、制御処理の要求周期を考慮して決定される。
The transmission
例えば、100Bのパケットを送信するのに必要な通信スケジューラ102の処理時間が10μsである場合、タイムスロットの幅は10μsとする。なお、このとき、制御処理の要求周期も10μsの倍数とする。また、100B以上のデータサイズのパケットを送信するときは、複数のタイムスロットを占有させる等の処理が必要である。タイムスロットの幅は、例えば、スケジュール変更可能性判定部131のスケジュール判定をしやすい幅でもよいし、500B以上のパケットは送信しない等制御システム上の制約があるならば、その制約に合った幅であってもよい。
For example, when the processing time of the
ここで、再び図24を用いて送信時刻スケジュール部135のタイムスロット管理方法を説明する。図24のタイムスロット表160は、横軸に現在時刻から所定スロット後までのタイムスロットを時系列に表し、縦軸にタイムスロットあたりの通信スケジューラ102が通信処理可能なデータサイズを示している。CPU101は、送信時刻スケジュール表160において、現在時刻を示すポインタをタイムスロット時間の経過とともに横軸上にスライドさせていき、終端に到達すると先頭に戻す処理を繰り返す。
Here, the time slot management method of the transmission
送信時刻スケジュール部135は、スケジュール変更可能性判定部131で判定したプログラムの送信予定時刻とそのデータサイズとをタイムスロット表160に書き込んでいく。このとき、各プログラムに与えられた制約を満足する範囲で可能な限り同じタイムスロットにプログラムのスケジュールを組み込む。ただし、図9のS046からS053で示したようにスケジュール変更可能性判定部131がタイムスロットをずらすことが必要であると判定した場合は、タイムスロットをずらす。
The transmission
また、タイムスロット表160の横軸の幅よりも周期が大きな周期処理プログラム152の場合には、送信までの残りタイムスロット数を個別に管理し、タイムスロットの時間経過とともに、残りのタイムスロット数を1つずつ減じていく。そして、このタイムスロット数が0になったとき、この周期処理プログラム152のデータを送信するようにする。この後、タイムスロット数を周期分の値に初期化する。
Further, in the case of the
また、周期処理プログラム152に基づきCPU101は、図6、図7のS002において、プログラム管理情報に示される当該周期処理プログラム152の周期内で、送信データを送信時刻スケジュール部135に通知することができなかった場合の挙動を設定することができる。そのような設定例として、以前の指令値を同じデータとして送信する、送信を停止する、送信要求時にエラーをユーザに提示する、要求がくるまで送信を遅らせる等である。また、このような周期に対する送信の遅れの回数、時刻等を記録し、ユーザは、この情報を制御用計算機120の診断等に活用することができる。
Further, based on the
また、図7のS014の待機を解除する場合は、プログラム起床部136が、この周期処理プログラム152に基づく送信タイミングにあわせて適切なタイミングで実行するようにしてもよい。
7 may be executed at an appropriate timing in accordance with the transmission timing based on the
また、図6、図7、図8において処理が終了すると、プログラム管理部130は解放され、送信時刻スケジュール部135は、この周期処理プログラム152、非周期処理プログラム153に関するスケジュールを削除する。
6, 7, and 8, the
なお、周期処理プログラム152の実行中に、その処理の周期を変更する場合、周期処理プログラム152に基づきCPU101は、周期が変更可能か否かを通信スケジューラ102のスケジュール変更可能性判定部131に問い合わせる。そして、その周期が変更可能と判定されたとき、図6のS002以降の処理を実行する。なお、この周期処理プログラム152の周期を変更可能か否かは、前記した図9に示す処理と同様の処理により判断される。すなわち、スケジュール変更可能性判定部131が、変更対象の周期処理プログラム152について、変更後の周期と、最大データサイズとの申請を受け付け(S040)、S041以降の処理を実行すればよい。
When the period of the process is changed during the execution of the
このような制御用計算機120によれば、周期処理プログラム152に基づきCPU101は、他の周期処理プログラム152に対して同期をとる必要がなく、任意のタイミングでデータを送受信することができる。また、制御用計算機120は、制御処理や通信処理を、周期処理プログラム152や非周期処理プログラム153と独立して実装することができる。これらの特長により、制御用計算機120における周期処理プログラム152および非周期処理プログラム153の依存性を下げることができ、ソフトウェアとして再利用性、保守性、拡張性、柔軟性を向上させることができる。つまり、この制御用計算機120は、既存のシステムを変更、拡張することが容易であり、また特定の制御対象装置121用の周期処理プログラム152を別の制御システムで用いる場合も容易に再利用可能である。
According to such a
また、制御用計算機120は、周期処理プログラム152、非周期処理プログラム153それぞれの制約を考慮して、データを連結し、まとめて送信することができる。したがって、同じデータ量を送信する場合でも送信パケット数を減らすことができ、ヘッダやトレイラ等の共通部分を処理するオーバーヘッドを減らすことができる。例えば、Ethernet(登録商標)では、8Bのプリアンブル、14Bのヘッダ、FCS(Frame Check Sequence)の4B、96ビット時間のフレーム間ギャップの通信にかかるオーバーヘッドが存在する。これらのオーバーヘッドを減らすことで、最短到達可能周期をより短くすることができ、制御対象の制御性能を向上させることができる。
In addition, the
なお、制御用計算機120の通信スケジューラ102の機能を、この制御用計算機120のプログラムの実行処理により実現してもよい。このような制御用計算機120は、図25に示すように、制御用計算機120の通信スケジューラ102を含まない構成となる。この制御用計算機120上で動作するプログラムの構成を図26に示す。
Note that the function of the
図26の通信スケジューラ170は、CPU101上で動作するプログラムであり、前記した通信スケジューラ102と同様の機能を実現する。この通信スケジューラ170は、周期処理プログラム152、プロトコルスタック155から通信要求を受け取り、デバイスドライバ151を介してLANコントローラ103にアクセスし、制御用ネットワーク122(図2参照)に対して通信する。この通信スケジューラ170は、例えば、ミドルウェア、サーバプログラム、カーネルモジュール等である。
The
なお、制御用計算機120と、制御対象装置121とは、LAN以外のネットワークにより接続されていてもよい。この場合、図27に示すように、制御用計算機120の通信スケジューラ180は、この制御ネットワークに接続するための通信コントローラ181をさらに備える。
The
また、この通信スケジューラ180は、図28に示すように、この制御用計算機120が、この制御用ネットワークを利用するための様々な情報(例えば、この制御用計算機120を利用可能な時間、利用可能な期間、送受信可能なパケット等に関する情報)を記憶するネットワークプロトコル情報管理部190をさらに備える。そして、送信時刻スケジュール部135は、このネットワークプロトコル情報管理部190から制御用ネットワークの利用に関する情報を取得し、この情報を参照して、送信データのスケジューリングを行う。
In addition, as shown in FIG. 28, the
また、制御用計算機120は、図29に示すように、バス型ネットワークにより、制御対象装置121と接続されていてもよい。また、制御システムは、図29に示すように、複数の制御用計算機120により、複数の制御対象装置121を制御するようにしてもよい。なお、このように制御用計算機120を複数含む制御システムの場合、この制御用計算機120が互いに送信データを送信するタイミングについて同期をとるようにスケジューリングするものとする。
Further, as shown in FIG. 29, the
さらに、制御用計算機120の送信部137(図3参照)は、イーサネット(登録商標)フレームを送信する場合を例に説明したが、前記したタイムスロット表(スケジュール情報)160に従い、時分割でデータを送信するようにしてもよい。
Further, the transmission unit 137 (see FIG. 3) of the
102,170,180 通信スケジューラ
103 LANコントローラ
108 メモリ
109 不揮発性記憶媒体
110 バス
120 制御用計算機
121 制御対象装置
122 制御用ネットワーク
130 プログラム管理部
131 スケジュール変更可能性判定部
132 データグラム連結部
133 データグラム分解部
134 計時部
135 送信時刻スケジュール部
136 プログラム起床部
137 送信部
138 受信部
140 送信データ管理部
141 受信データ管理部
142 プログラム情報管理部
143 データグラム生成部
144 データグラム抽出部
145 状態フラグ管理部
151 デバイスドライバ
152 周期処理プログラム
153 非周期処理プログラム
154 API
155 プロトコルスタック
156 共通設定プログラム
181 通信コントローラ
190 ネットワークプロトコル情報管理部
102, 170, 180
155
Claims (8)
前記プログラムに基づき、前記制御対象装置への制御指令値を通信スケジューラへ出力する処理部と、
タイムスロットを用いたスケジュール情報を用いて、前記処理部から出力された制御指令値を、ネットワーク経由で前記制御対象装置それぞれへ送信する送信時刻を決定し、この決定した送信時刻に、前記制御指令値を含む送信データを前記制御対象装置それぞれへ送信する前記通信スケジューラとを備え、
前記通信スケジューラは、
前記プログラムのうち、周期的に制御指令値を送信するプログラムについて、そのプログラムによる制御対象の制御対象装置の識別情報と、前記制御対象装置への制御指令値を送信するときの周期とを示したプログラム管理情報の入力を受け付け、プログラム管理情報記憶部に記憶するプログラム情報管理部と、
前記プログラムにより前記処理部から、前記制御対象装置への制御指令値の入力を受け付けたとき、この制御指令値を前記記憶部に記憶する送信データ管理部と、
前記プログラム管理情報に示される周期で、前記制御指令値を含む送信データを送信するよう送信時刻を決定し、この送信時刻を前記スケジュール情報に記録し、当該送信時刻になったとき、当該送信データの送信指示を出力する送信時刻スケジュール部と、
前記送信時刻スケジュール部により出力された送信指示に基づき、前記制御指令値を前記記憶部から読み出し、この読み出した制御指令値を含む前記送信データを送信する送信部とを備えることを特徴とする制御用計算機。 A control computer comprising one or more programs for controlling one or more controlled devices,
Based on the program, a processing unit that outputs a control command value to the control target device to a communication scheduler;
Using the schedule information using the time slot, the control command value output from the processing unit is determined to be transmitted to each control target device via the network, and the control command value is determined at the determined transmission time. The communication scheduler for transmitting transmission data including a value to each of the control target devices,
The communication scheduler is
Among the programs, for the program that periodically transmits the control command value, the identification information of the control target device to be controlled by the program and the cycle when transmitting the control command value to the control target device are shown. A program information management unit that receives input of program management information and stores it in the program management information storage unit;
A transmission data management unit for storing the control command value in the storage unit when receiving an input of a control command value to the control target device from the processing unit by the program;
The transmission time is determined so as to transmit the transmission data including the control command value in the cycle indicated by the program management information, the transmission time is recorded in the schedule information, and when the transmission time is reached, the transmission data A transmission time schedule part that outputs a transmission instruction of
A control unit comprising: a transmission unit that reads out the control command value from the storage unit based on a transmission instruction output by the transmission time schedule unit, and transmits the transmission data including the read control command value. Calculator.
前記制御対象装置から、前記制御指令値に対する応答である受信データを受信する受信部と、
前記受信データを受信したとき、当該制御指令値を出力したプログラムを起床させるプログラム起床部とを備え、
前記処理部は、
前記起床されたプログラムに基づき、前記受信データに示される応答をもとに次の制御指令値を決定し、前記プログラムの起床指示に基づき、前記決定した制御指令値を前記通信スケジューラへ出力することを特徴とする請求項1に記載の制御用計算機。 The communication scheduler is
A receiving unit that receives reception data that is a response to the control command value from the control target device;
A program wake-up unit that wakes up the program that outputs the control command value when the received data is received;
The processor is
Based on the wake-up program, the next control command value is determined based on the response indicated in the received data, and based on the wake-up instruction of the program, the determined control command value is output to the communication scheduler. The control computer according to claim 1.
前記プログラムそれぞれから出力される制御指令値のデータサイズの最大値をさらに含み、
前記通信スケジューラは、
前記処理部が実行中の各プログラムについて、前記プログラム管理情報を参照して、前記プログラムそれぞれから出力される制御指令値のデータサイズの合計値を、当該通信スケジューラの通信処理スループットで除した値が、前記プログラムそれぞれの周期のうち、最も短い周期よりも小さいとき、前記各プログラムの時間的制約を満たすと判定するスケジュール変更可能性判定部を備え、
前記送信時刻スケジュール部は、
前記スケジュール変更可能性判定部により、前記各プログラムの時間的制約を満たすと判定されたとき、前記制御指令値を含む送信データの送信時刻を決定することを特徴とする請求項1に記載の制御用計算機。 The program management information is
Further including the maximum value of the data size of the control command value output from each of the programs
The communication scheduler is
For each program being executed by the processing unit, referring to the program management information, a value obtained by dividing the total value of the data size of the control command value output from each program by the communication processing throughput of the communication scheduler is A schedule change possibility determination unit that determines that the time constraint of each program is satisfied when the period of each of the programs is smaller than the shortest period,
The transmission time schedule part is
2. The control according to claim 1, wherein when the schedule change possibility determination unit determines that the time constraint of each program is satisfied, a transmission time of transmission data including the control command value is determined. Calculator.
前記スケジュール変更可能性判定部により、前記実行中の各プログラムの時間的制約を満たすと判定されたとき、前記各プログラムのうち、そのプログラムの制御指令値の周期が素数倍となっているプログラムそれぞれの制御指令値を、1つのタイムスロットあたり送信可能な最大データサイズ以下にまとめた前記送信データを作成するデータグラム連結部を備え、
前記送信部は、
前記作成された送信データを、前記出力された送信時刻に送信することを特徴とする請求項1に記載の制御用計算機。 The communication scheduler is
When it is determined by the schedule change possibility determination unit that the time constraint of each program being executed is satisfied, each of the programs in which the cycle of the control command value of the program is a prime number multiple A datagram concatenating unit for creating the transmission data in which the control command values are summarized below the maximum data size that can be transmitted per one time slot,
The transmitter is
The control computer according to claim 1, wherein the created transmission data is transmitted at the output transmission time.
前記プログラムのうち、そのプログラムの制御指令値の周期が素数倍となっているプログラムそれぞれの制御指令値のデータサイズの合計値が、前記1つのタイムスロットあたり送信可能な最大データサイズを超えているとき、
前記送信時刻スケジュール部は、そのプログラムの制御指令値群を、前記最大データサイズ以下の制御指令値のまとまりに分割し、その分割した制御指令値のまとまりをそれぞれ別のタイムスロットに割り当てることを特徴とする請求項4に記載の制御用計算機。 The transmission time schedule part is
Among the programs, the total data size of the control command values of each program whose control command value cycle is a prime number multiple exceeds the maximum data size that can be transmitted per one time slot. When
The transmission time schedule unit divides the control command value group of the program into a group of control command values equal to or less than the maximum data size, and assigns the divided group of control command values to different time slots. The control computer according to claim 4.
前記ネットワーク経由での前記制御対象装置への送信データの送信および前記制御対象装置からの受信データの受信を、イーサネット(登録商標)フレームで行うことを特徴とする請求項2に記載の制御用計算機。 The transmitter is
3. The control computer according to claim 2, wherein transmission of transmission data to the control target device via the network and reception of reception data from the control target device are performed in an Ethernet (registered trademark) frame. .
前記ネットワーク経由での前記制御対象装置への送信データの送信および前記制御対象装置からの受信データの受信を時分割で行うことを特徴とする請求項2に記載の制御用計算機。 The transmitter is
The control computer according to claim 2, wherein transmission data is transmitted to the control target device via the network and reception data is received from the control target device in a time-sharing manner.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009072344A JP4876138B2 (en) | 2009-03-24 | 2009-03-24 | Control computer and control system |
DE102010002327.2A DE102010002327B4 (en) | 2009-03-24 | 2010-02-25 | controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009072344A JP4876138B2 (en) | 2009-03-24 | 2009-03-24 | Control computer and control system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010224939A true JP2010224939A (en) | 2010-10-07 |
JP4876138B2 JP4876138B2 (en) | 2012-02-15 |
Family
ID=42979259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009072344A Expired - Fee Related JP4876138B2 (en) | 2009-03-24 | 2009-03-24 | Control computer and control system |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4876138B2 (en) |
DE (1) | DE102010002327B4 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3076297A2 (en) | 2015-03-31 | 2016-10-05 | Omron Corporation | Controller |
JP2017034307A (en) * | 2015-07-28 | 2017-02-09 | 株式会社東芝 | Information collection management apparatus and method, and information collection system |
JP2017207830A (en) * | 2016-05-16 | 2017-11-24 | ファナック株式会社 | Information processing device which processes processing information between a plurality of manufacturing cells |
WO2018146899A1 (en) | 2017-02-07 | 2018-08-16 | オムロン株式会社 | Control device and communication device |
CN111837103A (en) * | 2018-03-20 | 2020-10-27 | 日立汽车系统株式会社 | Vehicle control device and control method thereof |
CN112639637A (en) * | 2018-10-05 | 2021-04-09 | 欧姆龙株式会社 | Control system, control method, and control program |
CN114072739A (en) * | 2019-07-03 | 2022-02-18 | 欧姆龙株式会社 | Control system, support device, and setting program |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406246B (en) * | 2015-07-31 | 2019-09-20 | 中国联合网络通信集团有限公司 | The method and device of scheduling message transmission |
JP6911791B2 (en) * | 2018-02-14 | 2021-07-28 | オムロン株式会社 | Control devices, control systems, control methods, and control programs |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07312613A (en) * | 1994-05-19 | 1995-11-28 | Hitachi Ltd | Communication system |
JP2000216811A (en) * | 1999-01-22 | 2000-08-04 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | Flow controlling method |
JP2004054622A (en) * | 2002-07-19 | 2004-02-19 | Hitachi Ltd | Controller and information communication service method |
JP2004280195A (en) * | 2003-03-12 | 2004-10-07 | Yaskawa Electric Corp | Robot controller |
WO2008105051A1 (en) * | 2007-02-26 | 2008-09-04 | Toshiba Mitsubishi-Electric Industrial Systems Corporation | Scheduler |
JP2009509432A (en) * | 2005-09-20 | 2009-03-05 | パナソニック株式会社 | Method and apparatus for signaling packet segmentation and concatenation in a communication system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10357824A1 (en) * | 2003-12-09 | 2005-07-14 | Kuka Roboter Gmbh | Method and device for operating cooperating different devices |
EP1870806A1 (en) * | 2006-06-19 | 2007-12-26 | Wolfgang Pree GmbH | System for executing distributed sofware |
-
2009
- 2009-03-24 JP JP2009072344A patent/JP4876138B2/en not_active Expired - Fee Related
-
2010
- 2010-02-25 DE DE102010002327.2A patent/DE102010002327B4/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07312613A (en) * | 1994-05-19 | 1995-11-28 | Hitachi Ltd | Communication system |
JP2000216811A (en) * | 1999-01-22 | 2000-08-04 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | Flow controlling method |
JP2004054622A (en) * | 2002-07-19 | 2004-02-19 | Hitachi Ltd | Controller and information communication service method |
JP2004280195A (en) * | 2003-03-12 | 2004-10-07 | Yaskawa Electric Corp | Robot controller |
JP2009509432A (en) * | 2005-09-20 | 2009-03-05 | パナソニック株式会社 | Method and apparatus for signaling packet segmentation and concatenation in a communication system |
WO2008105051A1 (en) * | 2007-02-26 | 2008-09-04 | Toshiba Mitsubishi-Electric Industrial Systems Corporation | Scheduler |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3076297A2 (en) | 2015-03-31 | 2016-10-05 | Omron Corporation | Controller |
US10162673B2 (en) * | 2015-03-31 | 2018-12-25 | Omron Corporation | Controller preventing communication collisions between parallel control programs |
JP2017034307A (en) * | 2015-07-28 | 2017-02-09 | 株式会社東芝 | Information collection management apparatus and method, and information collection system |
JP2017207830A (en) * | 2016-05-16 | 2017-11-24 | ファナック株式会社 | Information processing device which processes processing information between a plurality of manufacturing cells |
US10423152B2 (en) | 2016-05-16 | 2019-09-24 | Fanuc Corporation | Information processing apparatus for processing machining information between plurality of manufacturing cells |
WO2018146899A1 (en) | 2017-02-07 | 2018-08-16 | オムロン株式会社 | Control device and communication device |
US11036205B2 (en) | 2017-02-07 | 2021-06-15 | Omron Corporation | Control device and communication device |
CN111837103A (en) * | 2018-03-20 | 2020-10-27 | 日立汽车系统株式会社 | Vehicle control device and control method thereof |
CN112639637A (en) * | 2018-10-05 | 2021-04-09 | 欧姆龙株式会社 | Control system, control method, and control program |
CN114072739A (en) * | 2019-07-03 | 2022-02-18 | 欧姆龙株式会社 | Control system, support device, and setting program |
Also Published As
Publication number | Publication date |
---|---|
JP4876138B2 (en) | 2012-02-15 |
DE102010002327A1 (en) | 2010-11-18 |
DE102010002327B4 (en) | 2017-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4876138B2 (en) | Control computer and control system | |
CN107924341B (en) | Real-time local and global datacenter network optimization based on platform telemetry data | |
EP3528448A1 (en) | Communication device, control device, and communication method | |
CN105103524B (en) | For realizing the method and system of the high usage in network | |
JP5136564B2 (en) | Packet processing apparatus and packet processing program | |
US9197566B2 (en) | Information processing method, recording medium, and information processing apparatus | |
JPWO2013046607A1 (en) | Control device | |
Carvajal et al. | Evaluation of communication architectures for switched real-time ethernet | |
US20220321493A1 (en) | Method for transmitting data packet and apparatus for implementing the same | |
KR101103964B1 (en) | Optimizing throughput of data in a communications network | |
US20150263948A1 (en) | Device and method for retransmitting data in a network switch | |
CN1555513A (en) | Method and device for determining time in a bus system and corresponding bus system | |
US7814182B2 (en) | Ethernet virtualization using automatic self-configuration of logic | |
CN115469804B (en) | NVMe multi-queue arbitration method and device | |
Chen et al. | Petri net modeling of the reconfigurable protocol stack for cloud computing control systems | |
JP7337627B2 (en) | Communication controller and system | |
KR101552119B1 (en) | OPTIMAL PHASING OF NODES SEARCH SYSTEM FOR EtherCAT | |
JP6763476B2 (en) | Virtual network function control method, virtual network function management device and virtual network providing system | |
CN105207846B (en) | A kind of statistical method of TCP protocol stack delay, apparatus and system | |
WO2013046321A1 (en) | Periodic transmission control apparatus, periodic transmission control method, and periodic transmission control program | |
JP6620760B2 (en) | Management node, terminal, communication system, communication method, and program | |
KR20160010997A (en) | Server for performing low power communication and operation method thereof and scheduling map generating method for performing low power communication | |
Meyer et al. | Low latency packet processing in software routers | |
US10142676B2 (en) | Residential gateway making at least one private memory space available | |
WO2022190431A1 (en) | Control system, and data transmitting method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110831 |
|
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: 20111101 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111128 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141202 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4876138 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |