JP2010224939A - Control computer and control system - Google Patents

Control computer and control system Download PDF

Info

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
Application number
JP2009072344A
Other languages
Japanese (ja)
Other versions
JP4876138B2 (en
Inventor
Tatsuya Maruyama
龍也 丸山
Tsutomu Yamada
山田  勉
Norihisa Yanagihara
徳久 柳原
Shinji Yonemoto
伸治 米本
Takashi Iwaki
隆志 岩城
Hiroshi Fujii
洋 藤井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Industrial Equipment Systems Co Ltd
Original Assignee
Hitachi Industrial Equipment Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Industrial Equipment Systems Co Ltd filed Critical Hitachi Industrial Equipment Systems Co Ltd
Priority to JP2009072344A priority Critical patent/JP4876138B2/en
Priority to DE102010002327.2A priority patent/DE102010002327B4/en
Publication of JP2010224939A publication Critical patent/JP2010224939A/en
Application granted granted Critical
Publication of JP4876138B2 publication Critical patent/JP4876138B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4185Total 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/4186Total 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31145Ethernet
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31218Scheduling communication on bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

<P>PROBLEM TO BE SOLVED: To reduce labor in developing a control computer for performing control processing in a plurality of different periods with respect to one or more device to be controlled in a control system and to prevent deterioration in communication performance. <P>SOLUTION: The control computer 120 sets a time limit, such as a transmission period of a program for periodically transmitting a control command value to the device to be controlled, to a communication scheduler 102 with respect to the same. When the communication scheduler 102 receives the control command value output by each program, it brings one or more control command value together in one transmission data and determines transmission timing of the transmission data so as to observe the time limit of each program. The transmission data are transmitted with the determined transmission timing. When a response from the device to be controlled is received after the transmission data are transmitted, a program to process the response is started. <P>COPYRIGHT: (C)2011,JPO&INPIT

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.

EtherCAT(登録商標)、[online]、[平成20年12月3日検索]、インターネット、<URL: http://www.anybus.jp/technologies/ethercat.shtml>EtherCAT (registered trademark), [online], [Search on December 3, 2008], Internet, <URL: http://www.anybus.jp/technologies/ethercat.shtml>

ここで、制御用計算機が制御対象装置それぞれに対し、制御指令値の送信周期等の異なる制御処理を実行したい場合もある。このような場合、制御用計算機の通信アプリケーションにおいて、前記した制御処理の時間的制約を満たすため、制御処理それぞれの周期を区別する条件分岐を設定せねばならない。このような条件分岐の設定は非常に複雑であり、通信アプリケーションの開発に手間がかかるという問題があった。また、この通信アプリケーションによる制御処理を変更したり、追加、拡張したりする場合にも同様に手間がかかるという問題があった。なお、制御処理ごとにアプリケーションを分割する方法もあるが、送信されるデータをまとめることは困難である。よって、制御処理ごとにアプリケーションを分割する場合は、そのアプリケーションそれぞれがデータを送信することになるが、このとき、データそれぞれのヘッダやフレーム間ギャップ等のためオーバーヘッドが大きくなる。従って、制御処理ごとにアプリケーションを分割する場合、このようなオーバーヘッドのため通信性能が低下するという問題があった。そこで、本発明は、前記した課題を解決し、複数の異なる周期の制御処理を実行する制御用計算機の開発の手間を低減しつつ、通信性能の低下を防ぐことを目的とする。   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.

本実施の形態の制御用計算機のハードウェア構成例を示した図である。It is the figure which showed the hardware structural example of the computer for control of this Embodiment. 図1の制御用計算機を用いたシステム構成例を示した図である。It is the figure which showed the system configuration example using the computer for control of FIG. 図1の通信スケジューラの構成を示した図である。It is the figure which showed the structure of the communication scheduler of FIG. 図3のプログラム管理部の構成を示した図である。It is the figure which showed the structure of the program management part of FIG. 図1の制御用計算機上で動作するプログラムの構成例を示した図である。It is the figure which showed the structural example of the program which operate | moves on the computer for control of FIG. 図5の周期処理プログラムの処理手順を示した図である。It is the figure which showed the process sequence of the periodic process program of FIG. 図5の周期処理プログラムの処理手順を示した図である。It is the figure which showed the process sequence of the periodic process program of FIG. 図5の非周期処理プログラムの処理手順を示した図である。It is the figure which showed the process sequence of the aperiodic processing program of FIG. 図3の通信スケジューラの処理手順を示した図である。It is the figure which showed the process sequence of the communication scheduler of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図である。It is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図である。It is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図である。It is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図である。It is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図である。It is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図である。It is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図であるIt is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図であるIt is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図であるIt is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図であるIt is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図であるIt is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 図3のスケジュール変更可能性判定部の処理手順例を説明した図であるIt is the figure explaining the example of a process sequence of the schedule change possibility determination part of FIG. 本実施の形態におけるタイムスロットの割り当てを例示した図である。It is the figure which illustrated allocation of the time slot in this Embodiment. 本実施の形態の非周期処理プログラムに対するスケジュール変更可能性判定部の判定手順を示したフローチャートである。It is the flowchart which showed the determination procedure of the schedule change possibility determination part with respect to the aperiodic processing program of this Embodiment. 本実施の形態の送信時刻スケジュール部が管理するタイムスロットの送信時刻スケジュール表(スケジュール情報)を例示した図である。It is the figure which illustrated the transmission time schedule table (schedule information) of the time slot which the transmission time schedule part of this Embodiment manages. 本実施の形態の制御用計算機のハードウェア構成例を示した図である。It is the figure which showed the hardware structural example of the computer for control of this Embodiment. 図25の制御用計算機上で動作するプログラムの構成例を示した図である。FIG. 26 is a diagram illustrating a configuration example of a program operating on the control computer in FIG. 25. 本実施の形態の制御用計算機のハードウェア構成例を示した図である。It is the figure which showed the hardware structural example of the computer for control of this Embodiment. 図27の通信スケジューラの構成を示した図である。It is the figure which showed the structure of the communication scheduler of FIG. 図1、図25、図27の制御用計算機を用いたシステム構成例を示した図である。It is the figure which showed the system configuration example using the computer for control of FIG.1, FIG.25, FIG.27.

以下、本発明を実施するための形態(以下、実施の形態という)を説明する。図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 nonvolatile storage medium 109 to the memory 108. Transfer and execute. FIG. 1 shows a state where a program has been transferred to the memory 108. As this program, there are an OS (Operating System) including an interrupt handler and an application program that operates on the OS and controls the control target device 121. The communication scheduler 102 receives a communication request from the CPU 101 and communicates with the control network 122 using a LAN (Local Area Network) controller 103. As an implementation example of the communication scheduler 102, there are an IC (Integrated Circuit) such as an FPGA (Field Programmable Gate Array), a CPLD (Complex Programmable Logic Device), an ASIC (Application Specific Integrated Circuit), and a gate array.

LANコントローラ103は、制御用ネットワーク122(後記)との通信機能を実装した送受信機ICである。LANコントローラ103の提供する通信規格としてEthernet(登録商標)のLANコントローラや、MAC(Media Access Controller)チップとPHYes(物理層)チップの組み合わせ、または特定のネットワーク仕様の物理層あるいは物理層とデータリンク層を処理するIC等である。   The LAN controller 103 is a transceiver IC that implements a communication function with the control network 122 (described later). As a communication standard provided by the LAN controller 103, an Ethernet (registered trademark) LAN controller, a combination of a MAC (Media Access Controller) chip and a PHYs (physical layer) chip, or a physical layer or a physical layer of a specific network specification and a data link IC etc. to process the layer.

メモリ108は、CPU101が動作するための一時的な記憶領域であり、不揮発性記憶媒体109から転送したOS、アプリケーションプログラム等が格納される。   The memory 108 is a temporary storage area for the CPU 101 to operate, and stores an OS, application programs, and the like transferred from the nonvolatile storage medium 109.

不揮発性記憶媒体109は、HDD(Hard Disk Drive)や、フラッシュメモリ等の記憶媒体で、CPU101が実行するプログラムの保存、プログラムの実行結果の保存に利用される。   The non-volatile storage medium 109 is a storage medium such as a hard disk drive (HDD) or a flash memory, and is used for storing a program executed by the CPU 101 and storing a program execution result.

バス110は、CPU101、メモリ108、不揮発性記憶媒体109、通信スケジューラ102、LANコントローラ103をそれぞれ接続する。バス110としては、PCI(Peripheral Component Interconnect)バス、ISA(Industrial Standard Architecture)バス、PCI Expressバス、システムバス、メモリバス等である。   The bus 110 connects the CPU 101, the memory 108, the nonvolatile storage medium 109, the communication scheduler 102, and the LAN controller 103, respectively. The bus 110 is a PCI (Peripheral Component Interconnect) bus, an ISA (Industrial Standard Architecture) bus, a PCI Express bus, a system bus, a memory bus, or the like.

図2は、制御用計算機120を用いたシステム構成例である。制御用計算機120は、制御対象装置121と、制御用ネットワーク122を介して接続し、この制御対象装置121を制御するハードウェア装置である。制御対象装置121は、例えば、サーボアンプやサーボモータである。なお、図2ではネットワークはリングトポロジとなっているが、論理的なリングトポロジやスタートポロジ等のトポロジであってもよい。   FIG. 2 is a system configuration example using the control computer 120. The control computer 120 is a hardware device that is connected to the control target device 121 via the control network 122 and controls the control target device 121. The control target device 121 is, for example, a servo amplifier or a servo motor. In FIG. 2, the network has a ring topology, but may be a topology such as a logical ring topology or a star topology.

図3に通信スケジューラ102の機能構成図を示す。通信スケジューラ102は、プログラム管理部130と、スケジュール変更可能性判定部131と、データグラム連結部132と、データグラム分解部133と、計時部134と、送信時刻スケジュール部135と、プログラム起床部136と、送信部137と、受信部138とを含んで構成される。この通信スケジューラ102による通信スケジューリングの具体例は後記する。   FIG. 3 shows a functional configuration diagram of the communication scheduler 102. The communication scheduler 102 includes a program management unit 130, a schedule change possibility determination unit 131, a datagram connection unit 132, a datagram decomposition unit 133, a time measurement unit 134, a transmission time scheduling unit 135, and a program wakeup unit 136. And a transmission unit 137 and a reception unit 138. A specific example of communication scheduling by the communication scheduler 102 will be described later.

プログラム管理部130は、個々の制御処理を実行するプログラムの情報(プログラム管理情報)を作成し、この通信スケジューラ102の備える記憶部(図示省略)に記憶する。プログラム管理部130は、個々のプログラム(図5参照)ごとに必要なため、複数存在しうる。プログラム管理部130の個数は、その上限値はハードウェア等の計算機資源によって制約され、制御システムを構築するに充分なプログラム、制御対象の数だけ必要である。   The program management unit 130 creates program information (program management information) for executing individual control processes, and stores the information in a storage unit (not shown) included in the communication scheduler 102. Since the program management unit 130 is necessary for each individual program (see FIG. 5), a plurality of program management units 130 may exist. The upper limit of the number of program management units 130 is limited by computer resources such as hardware, and it is necessary for the number of programs and control targets sufficient to construct a control system.

スケジュール変更可能性判定部131は、新規のプログラムの追加、既存プログラムの周期変更、プログラムの登録抹消が可能か否かを、各プログラムの有する時間的制約と通信量等の情報をもとに判定する。例えば、新規のプログラム、変更された既存プログラムを含むすべてのプログラムについて、プログラム管理情報を参照して、プログラムそれぞれから出力される制御指令値のデータサイズの合計値を、通信スケジューラ102の通信処理スループットで除した値を計算する。そして、この値が、プログラムそれぞれの最長許容周期のうち、最も短い最長許容周期よりも小さいとき、このすべてのプログラムの時間的制約を満たすと判定する。一方、この値がプログラムそれぞれの最長許容周期のうち、最も短い最長許容周期よりも大きいとき、このすべてのプログラムの時間的制約を満たさないと判定する。つまり、スケジュール変更可能性判定部131は、この新規なプログラムの追加または既存プログラムの変更は不可能であると判定する。   The schedule change possibility determination unit 131 determines whether it is possible to add a new program, change the period of an existing program, or delete the registration of a program based on information such as time constraints and communication amount of each program. To do. For example, for all programs including a new program and a changed existing program, the program management information is referred to, and the total value of the data size of the control command value output from each program is determined as the communication processing throughput of the communication scheduler 102. Calculate the value divided by. Then, when this value is smaller than the shortest longest permissible period among the longest permissible periods of each program, it is determined that the time constraints of all the programs are satisfied. On the other hand, when this value is larger than the shortest longest permissible period among the longest permissible periods of each program, it is determined that the time constraints of all the programs are not satisfied. That is, the schedule change possibility determination unit 131 determines that this new program cannot be added or the existing program cannot be changed.

データグラム連結部132は、送信時刻スケジュール部135が計画した送信予定時刻に送信するデータを集めて連結し、送信部137へと伝送し、状態フラグ管理部145(後記)の状態フラグを更新する。また、このデータグラム連結部132は、必要があれば、制御用ネットワーク122(図2参照)に固有なヘッダ、トレイラを付与する。   The datagram concatenation unit 132 collects and concatenates data to be transmitted at the scheduled transmission time planned by the transmission time scheduling unit 135, transmits the data to the transmission unit 137, and updates the status flag of the status flag management unit 145 (described later). . In addition, the datagram concatenation unit 132 adds a header and trailer specific to the control network 122 (see FIG. 2), if necessary.

なお、このデータグラム連結部132が、各プログラムのデータを連結する順番は、各送信データ固有のヘッダに各送信データを区別する情報が付与されていれば、特に制約はない。例えば、データグラム連結部132は、プログラム管理部130において管理上つけられた順番で各プログラムのデータを連結すればよい。ただし、送信データの位置が制御用ネットワーク122上で伝送されるときに固有の意味を持つ場合は、その制御用ネットワーク122の仕様にしたがった位置に送信データを配置する。例えば、送信データの位置する順番と制御対象装置121が受信する順番とが同じであるという制約がある場合は、受信する制御対象装置121の順番に応じて送信データを並べる。   Note that the order in which the datagram concatenation unit 132 concatenates the data of each program is not particularly limited as long as information for distinguishing each transmission data is added to the header unique to each transmission data. For example, the datagram concatenation unit 132 may concatenate the data of each program in the order of management in the program management unit 130. However, when the position of the transmission data has a unique meaning when transmitted on the control network 122, the transmission data is arranged at a position according to the specification of the control network 122. For example, when there is a restriction that the order in which the transmission data is located and the order in which the control target device 121 receives are the same, the transmission data is arranged according to the order of the control target device 121 to be received.

データグラム分解部133は、受信部138から伝送されたデータを各プログラム用のデータに分割し、各プログラムのプログラム管理部130のデータグラム抽出部144(後記)に伝送する。また、データグラム分解部133は、プログラム起床部136に、データを受信したプログラム管理部130の識別子を伝送する。つまり、この制御用計算機120は、プログラムに基づき、制御指令値を示すデータを制御対象装置121へ送信した後、受信部138により、この制御対象装置121からこの制御指令値に対する応答を含むデータを受信する。ここで、受信したデータには複数のプログラムの制御指令値に対する応答が含まれている可能性がある。よって、データグラム分解部133は、受信したデータをそのそれぞれのプログラム用に分割して、当該応答に関する処理を行うプログラムのプログラム管理部130へ伝送(出力)する。また、データグラム分解部133は、プログラム起床部136に、データを受信したプログラム管理部130の識別子を伝送することで、プログラム起床部136に、この受信したデータを処理すべきプログラムはどれかを通知することができる。   The datagram decomposition unit 133 divides the data transmitted from the reception unit 138 into data for each program, and transmits the data to the datagram extraction unit 144 (described later) of the program management unit 130 of each program. In addition, the datagram decomposition unit 133 transmits the identifier of the program management unit 130 that has received the data to the program wake-up unit 136. That is, the control computer 120 transmits data indicating a control command value to the control target device 121 based on the program, and then receives data including a response to the control command value from the control target device 121 by the receiving unit 138. Receive. Here, there is a possibility that the received data includes responses to control command values of a plurality of programs. Therefore, the datagram decomposition unit 133 divides the received data for each program, and transmits (outputs) the data to the program management unit 130 of the program that performs processing related to the response. Further, the datagram decomposition unit 133 transmits the identifier of the program management unit 130 that has received the data to the program wakeup unit 136, so that the program wakeup unit 136 can determine which program should process the received data. You can be notified.

計時部134は、計時手段を有し、通信スケジューラ102内の各部に時間情報を提供する。この時間情報は、制御アプリケーション実行後の経過時間の計測や各種イベントの発生時刻の記録に用いられる。なお、計時部134は、通信スケジューラ102の外部に置かれたタイマ等のデバイスによって代替されてもよい。   The time measuring unit 134 has time measuring means and provides time information to each unit in the communication scheduler 102. This time information is used for measuring the elapsed time after execution of the control application and recording the occurrence time of various events. Note that the timer 134 may be replaced by a device such as a timer placed outside the communication scheduler 102.

送信時刻スケジュール部135は、各プログラムの周期等の時間的制約、設定情報を考慮して、その送信予定時刻、連結するデータを抽出するプログラムを各プログラム管理部130からデータを抽出して連結する。そして、このデータを送信するタイミングを決定する。また、送信時刻スケジュール部135は、各プログラム管理部130のプログラム情報管理部142によりプログラム管理情報から周期を取得し、その送信予定時刻に送信するプログラムをデータグラム連結部132に通知する。   The transmission time schedule unit 135 extracts a program for extracting the scheduled transmission time and data to be linked from each program management unit 130 in consideration of time constraints such as the period of each program and setting information, and links the programs. . And the timing which transmits this data is determined. In addition, the transmission time schedule unit 135 obtains a period from the program management information by the program information management unit 142 of each program management unit 130 and notifies the datagram connection unit 132 of a program to be transmitted at the scheduled transmission time.

プログラム起床部136は、データグラム分解部133から通知されたプログラム管理部130の識別子によって、受信したデータがどのプログラムに関するデータかを識別し、この識別したプログラムを起床する。起床方法は、バス110(図1参照)を介した割込みを用いることが例示される。また、起床は任意のタイミングで実行可能である。   The program wake-up unit 136 identifies which program the received data is based on the identifier of the program management unit 130 notified from the datagram decomposition unit 133, and wakes up the identified program. The wake-up method is exemplified by using an interrupt via the bus 110 (see FIG. 1). Wake-up can be performed at an arbitrary timing.

送信部137は、データグラム連結部132から伝達されたデータをLANコントローラ103へと送信する。   The transmission unit 137 transmits the data transmitted from the datagram connection unit 132 to the LAN controller 103.

受信部138は、LANコントローラ103からデータを受信し、データグラム分解部133に伝送する。   The receiving unit 138 receives data from the LAN controller 103 and transmits the data to the datagram decomposition unit 133.

図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 program management unit 130. The program management unit 130 inputs the transmission data of the program output from the CPU 101 (see FIG. 1) to the transmission data management unit 140. Also, the received data received from the control target device 121 (see FIG. 2) is output to the CPU 101 via the receiving unit 138 (see FIG. 3), the datagram decomposing unit 133, the datagram extracting unit 144, and the received data managing unit 141. To do. The program management unit 130 includes a program information management unit 142, a datagram generation unit 143, a datagram extraction unit 144, and a status flag management unit 145. The state flag management unit 145 updates the state flag. This status flag is stored in a predetermined area of the storage unit included in the communication scheduler 102.

送信データ管理部140は、プログラムに基づきCPU101(図1参照)から出力される制御指令値を含む送信データを受信すると、この送信データをいったん通信スケジューラ102の備える記憶部に記憶する。この送信用データには制御指令値等が含まれる。   When the transmission data management unit 140 receives transmission data including a control command value output from the CPU 101 (see FIG. 1) based on the program, the transmission data management unit 140 temporarily stores the transmission data in a storage unit included in the communication scheduler 102. This transmission data includes a control command value and the like.

受信データ管理部141は、制御対象装置121から受信した受信データをCPU101へ出力する。この受信データは、例えば、送信データに示される制御指令値に対するこの制御対象装置121の応答結果等を含むデータである。   The reception data management unit 141 outputs the reception data received from the control target device 121 to the CPU 101. The received data is data including a response result of the control target device 121 to the control command value indicated in the transmission data, for example.

プログラム情報管理部142は、制御用計算機120(図1参照)の備えるプログラム、そのプログラムによる制御処理、制御対象装置121等を示したプログラム管理情報を管理している。このプログラム管理情報として、プログラムの識別子、制御対象装置121の識別子、このプログラムにより制御指令値を送るときの周期、目標送信時刻、最長許容周期、データ更新が周期内で間に合わなかった場合の対応処理、周期変更時の対応処理、周期プログラムか非周期処理プログラムか、プログラム間での優先度、送信フレーム中でのプログラムのデータ位置等を示した情報である。なお、周期プログラムは、制御対象装置121へ所定周期でデータを送るためのプログラムであり、非周期処理プログラムは、周期的にデータを送信する必要のないプログラムである。   The program information management unit 142 manages the program included in the control computer 120 (see FIG. 1), control processing by the program, and program management information indicating the control target device 121 and the like. As this program management information, the identifier of the program, the identifier of the device to be controlled 121, the cycle when the control command value is sent by this program, the target transmission time, the longest allowable cycle, and the response processing when the data update is not in time within the cycle This is information indicating the corresponding processing at the time of changing the cycle, whether it is a cyclic program or a non-cyclic processing program, the priority between programs, the data position of the program in the transmission frame, and the like. The periodic program is a program for sending data to the control target device 121 at a predetermined period, and the aperiodic processing program is a program that does not need to periodically transmit data.

データグラム生成部143は、CPU101(図1参照)から送信要求があった場合に、送信データを送信に適した形式に変換、加工する。例えば、そのような処理として、制御用ネットワーク122の通信プロトコルに固有のヘッダ、トレイラの生成等、制御用ネットワーク122(図2参照)の仕様に適した形式に変換する。   When there is a transmission request from the CPU 101 (see FIG. 1), the datagram generation unit 143 converts and processes the transmission data into a format suitable for transmission. For example, as such processing, conversion to a format suitable for the specifications of the control network 122 (see FIG. 2) such as generation of a header and trailer specific to the communication protocol of the control network 122 is performed.

また、データグラム抽出部144は、データグラム分解部133からデータの受信通知があった場合に、受信内容をプログラムへの通知に適した形式に変換する。そのような処理として、データのヘッダ、トレイラの除去が例示される。   In addition, when there is a data reception notification from the datagram decomposition unit 133, the datagram extraction unit 144 converts the received content into a format suitable for notification to the program. An example of such processing is removal of data headers and trailers.

状態フラグ管理部145は、送信データおよび受信データの状態を示す状態フラグの更新を行う。例えば、プログラムに基づきCPU101(図1参照)が送信データ管理部140の送信データを更新済みだが、通信スケジューラ102(図3参照)の外部へは未送信である状態、通信スケジューラ102は送信データ管理部140の送信データを送信済みで、CPU101がまだ更新していない状態、通信スケジューラ102が受信データ管理部141の受信データを更新してCPU101は未取得である状態、CPU101は受信データ管理部141の受信データを取得済みで、通信スケジューラ102はまだ外部からパケットを受信していない状態が例示される。プログラム、あるいは送信時刻スケジュール部135は、状態フラグ管理部145に対して状態フラグの状態を問い合わせる。これにより、例えば、送信時刻スケジュール部135は、所定の周期内でプログラムが送信データを更新できなかった場合を検知でき、また、プログラムが、受信データが更新されているかどうかを確認することができ、受信データを取得するか、取得しないかを判定することができる。   The status flag management unit 145 updates a status flag indicating the status of transmission data and reception data. For example, based on the program, the CPU 101 (see FIG. 1) has updated the transmission data of the transmission data management unit 140 but has not yet transmitted to the outside of the communication scheduler 102 (see FIG. 3). The transmission data of the unit 140 has been transmitted and the CPU 101 has not yet updated, the communication scheduler 102 has updated the reception data of the reception data management unit 141 and the CPU 101 has not yet acquired, and the CPU 101 has received the data management unit 141. The received data is already acquired, and the communication scheduler 102 has not yet received a packet from the outside. The program or transmission time schedule unit 135 inquires of the status flag management unit 145 about the status flag status. Thereby, for example, the transmission time schedule unit 135 can detect a case where the program could not update the transmission data within a predetermined period, and the program can check whether the reception data has been updated. It is possible to determine whether the received data is acquired or not.

次に、制御用計算機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 control computer 120. The programs operating on the control computer 120 include an OS 150, a device driver 151, a periodic processing program 152, an aperiodic processing program 153, an API (Application Program Interface) 154, a protocol stack 155, and a common setting program 156. In FIG. 5, the program located at the upper level uses the function provided by the lower level program. Note that each of the periodic processing programs 155 is a program for performing different processing. In FIG. 5, for the sake of explanation, programs for performing different processes are depicted as separate periodic process programs 152, but a plurality of different periodic processes may be executed by one program. The control computer 120 may not include the aperiodic processing program 153.

OS150は、プログラム管理やハードウェアへのアクセス等の基本機能を提供する。OSは、必ずしも必要ではないが、汎用的なアプリケーションや既存のソフトウェア資産の利用、タスク管理等の基本機能を提供することから、利用されるのが望ましい。また、このOS150は、時間的制約にしたがってタスクスケジューリングを実行可能なリアルタイムOSが望ましい。   The OS 150 provides basic functions such as program management and access to hardware. The OS is not necessarily required, but is preferably used because it provides basic functions such as general-purpose applications, use of existing software assets, and task management. The OS 150 is preferably a real-time OS that can execute task scheduling according to time constraints.

デバイスドライバ151は、OS150の提供するハードウェアへのアクセス手段を用いて、バス110を介して通信スケジューラ102にアクセスするためのドライバである。デバイスドライバ151は、OS150の一部であっても構わない。   The device driver 151 is a driver for accessing the communication scheduler 102 via the bus 110 using access means to the hardware provided by the OS 150. The device driver 151 may be a part of the OS 150.

周期処理プログラム152は、制御用計算機120上で動作するアプリケーションプログラムで、制御対象装置121を制御、監視、診断するために送信時刻の周期等の時間的制約をもって周期的に実行される。この周期処理プログラム152は、API154、デバイスドライバ151を通じて、通信スケジューラ102へアクセスし、制御対象装置121を制御、監視、診断用のデータを送受信するために用いられる。なお、この制御計算機120は、この周期処理プログラム152を1以上備えるものとする。   The periodic processing program 152 is an application program that runs on the control computer 120 and is periodically executed with time restrictions such as a period of transmission time in order to control, monitor, and diagnose the control target device 121. The periodic processing program 152 is used to access the communication scheduler 102 through the API 154 and the device driver 151, and to transmit / receive data for controlling, monitoring, and diagnosing the control target device 121. The control computer 120 is provided with one or more periodic processing programs 152.

非周期処理プログラム153は、時間的制約を有さない通信のためのプログラムである。この制御システムを構成する制御用ネットワーク122(図2参照)には、インターネットで利用されるTCP/IP(Transmission Control Protocol/Internet Protocol)通信を許容するものもある。そのような制御用ネットワーク122では、TCP/IP通信で送信するデータを他のデータと連結して送信する。   The aperiodic processing program 153 is a program for communication that does not have time constraints. Some control networks 122 (see FIG. 2) constituting this control system allow TCP / IP (Transmission Control Protocol / Internet Protocol) communication used on the Internet. In such a control network 122, data to be transmitted by TCP / IP communication is transmitted in conjunction with other data.

API154は、デバイスドライバ151にアクセスするためのソフトウェアインターフェースであり、ハードウェアの違いを吸収することで、プログラムに対してハードウェアへの共通のアクセス手段を提供するためのプログラムである。API154は、OS150の一部であっても構わない。API154により提供されるアクセス手段には、ハードウェアに対する書き込み、読み込み、送信、受信、設定等がある。API154の具体例として、ライブラリ、ミドルウェア等がある。   The API 154 is a software interface for accessing the device driver 151, and is a program for providing a common access means to hardware by absorbing differences in hardware. The API 154 may be a part of the OS 150. The access means provided by the API 154 includes writing, reading, transmission, reception, setting, and the like for hardware. Specific examples of the API 154 include a library and middleware.

プロトコルスタック155は、非周期処理プログラム153による送信要求、非周期処理プログラム153への受信内容の転送や、通信データの分割、再構成を実行するためのプログラムである。一般的に制御処理における通信量は少なく、周期処理プログラム152における通信データ量は1指令につき、1回の送受信で伝送可能である。しかし、制御以外のアプリケーションでの通信量は、単一のパケットでは収まらず、分割と再構成が必要な場合がある。また、信頼性を提供するための再送処理や、ネットワーク上の通信量を調節するための輻輳制御がなされる。プロトコルスタック155は、これらの処理を実施するためのプログラムである。   The protocol stack 155 is a program for executing a transmission request by the aperiodic processing program 153, transfer of received contents to the aperiodic processing program 153, division of communication data, and reconfiguration. In general, the amount of communication in the control processing is small, and the amount of communication data in the periodic processing program 152 can be transmitted by one transmission / reception per command. However, the amount of communication in an application other than control does not fit in a single packet, and division and reconfiguration may be necessary. Also, retransmission processing for providing reliability and congestion control for adjusting the amount of communication on the network are performed. The protocol stack 155 is a program for performing these processes.

共通設定プログラム156は、通信スケジューラ102の全般的な機能を設定するためのプログラムである。 The common setting program 156 is a program for setting general functions of the communication scheduler 102.

次に、図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 periodic processing program 152 in FIG. Here, when a new periodic processing program 152 is added in addition to the existing periodic processing program 152 of the control computer 120, the control computer 120 uses the new periodic processing program 152 in its own control computer 120. A case where it is determined whether or not the periodic processing program 120 can be executed will be described. First, based on the periodic processing program 152, the CPU 101 (see FIG. 1) inquires of the schedule change possibility determining unit 131 (see FIG. 3) of the communication scheduler 102 whether or not this periodic processing program 152 can be newly executed (S001). ). The details of the process for determining whether or not the periodic processing program 152 can be newly executed by the schedule change possibility determination unit 131 will be described later.

スケジュール変更可能性判定部131が、この周期処理プログラム152を実行可能と判定すれば(S001のYes)、周期処理プログラム152は、この周期処理プログラム152の周期処理(および周期通信)に必要な情報をプログラム情報管理部142(図4参照)のプログラム管理情報に設定する(S002)。この周期処理および周期通信に必要な情報は、プログラムの識別子、この周期処理プログラム152が制御指示値を送信する制御対象装置121の識別子、制御指示値を送信する周期、目標送信時刻、最長許容周期、データ更新が周期内で間に合わなかった場合の対応処理、周期変更時の対応処理、周期処理プログラムか非周期処理プログラムか否か、この制御用計算機120の備えるプログラム間での優先度、送信データ中でのプログラムのデータ位置等である。また、周期処理プログラム152により明示的に設定されなかった項目に対しては、プログラム情報管理部142が所定の設定値を設定してもよい。なお、スケジュール変更可能性判定部131が実行不可能と判定すれば(S001のNo)、周期処理を終了する。   If the schedule change possibility determination unit 131 determines that the periodic processing program 152 can be executed (Yes in S001), the periodic processing program 152 is information necessary for the periodic processing (and periodic communication) of the periodic processing program 152. Is set in the program management information of the program information management unit 142 (see FIG. 4) (S002). Information necessary for this periodic processing and periodic communication includes a program identifier, an identifier of the control target device 121 to which the periodic processing program 152 transmits a control instruction value, a period at which the control instruction value is transmitted, a target transmission time, and a longest allowable period. Corresponding process when data update is not completed within the period, corresponding process when changing the period, whether or not it is a periodic processing program or a non-periodic processing program, priority between programs included in the control computer 120, transmission data The data position of the program inside. In addition, the program information management unit 142 may set predetermined setting values for items that are not explicitly set by the periodic processing program 152. Note that if the schedule change possibility determination unit 131 determines that execution is not possible (No in S001), the periodic process ends.

S002の後、周期処理プログラム152に基づきCPU101は、送信する制御指令値を演算し、送信データを決定する(S003)。   After S002, based on the periodic processing program 152, the CPU 101 calculates a control command value to be transmitted and determines transmission data (S003).

次に、周期処理プログラム152に基づきCPU101は、通信スケジューラ102(図3参照)に送信データを送信して待機状態に入る(S004)。その後、通信スケジューラ102の受信部138により、制御対象装置121からのデータを受信すると待機状態を解除する(S005)。   Next, based on the periodic processing program 152, the CPU 101 transmits transmission data to the communication scheduler 102 (see FIG. 3) and enters a standby state (S004). Thereafter, when the receiving unit 138 of the communication scheduler 102 receives data from the control target device 121, the standby state is canceled (S005).

S005の後、CPU101は、周期処理プログラム152を終了するか否かを判断する(S006)。処理を終了しない場合は(S006のNo)、S003からの手順を繰り返し、そうでなければ(S006のYes)、終了する。なお、S006の終了判定は、周期的に実行される処理内であれば、いつ判断してもよく、S003からS005のいずれかの手順の間に実行されればよい。なお、終了と判断する条件は、開発者の判断や制御システムの仕様による。例えば、CPU101は、送信データを所定回数送信した場合や、受信したデータに所定の情報が含まれている場合等に、終了と判断する。   After S005, the CPU 101 determines whether or not to end the periodic process program 152 (S006). If the process is not to be ended (No in S006), the procedure from S003 is repeated. If not (Yes in S006), the process is ended. Note that the end determination of S006 may be determined any time as long as it is within the periodically executed process, and may be executed during any of the steps from S003 to S005. The condition for determining the end depends on the determination of the developer and the specifications of the control system. For example, the CPU 101 determines that the transmission data has been terminated when the transmission data is transmitted a predetermined number of times or when the received data includes predetermined information.

また、図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 CPU 101 registers the content of the reception process based on the periodic process program 152 (S010). The content of this reception process is converted into a format suitable for periodic processing when received data is received, stored in a common area so that the received content can be acquired from periodic processing, And taking statistical values of received information. Further, based on the periodic processing program 152, the CPU 101 acquires reception information (S011). That is, the CPU 101 acquires received data from the memory 108 or the like before calculating the control command value. In addition, the CPU 101 appends to the received data a reception time, an identifier that is updated every time it is updated or acquired, etc. in order to identify when this received data is received data. Further, the reception data acquired here need not be one reception data, and may be a plurality of reception data. In the periodic process, more sophisticated control can be executed by using the received data at a plurality of times.

また、図7のS003の後、周期処理プログラム152に基づきCPU101は、送信データを送信する(S012)。次に、周期処理プログラム152は待機状態に入る(S013)。待機方法の具体例としては、POSIX(Portable Operating System Interface)のsleepコールや、プロセスを待機状態にするシステムコールがある。これらのシステムコールはOS150によって提供される。   Further, after S003 in FIG. 7, the CPU 101 transmits transmission data based on the periodic processing program 152 (S012). Next, the periodic processing program 152 enters a standby state (S013). Specific examples of the standby method include a POSIX (Portable Operating System Interface) sleep call and a system call that puts a process in a standby state. These system calls are provided by the OS 150.

その後、周期処理プログラム152に基づきCPU101は、通信スケジューラ102のプログラム起床部136によって待機状態を解除される(S014)。このS014を実行後、CPU101は、周期処理プログラム152終了するか否かを判断する(S006)。処理を終了しない場合は(S006のNo)、S011からの手順を繰り返し、そうでなければ(S006のYes)、終了する。なお、S006の終了判定は、周期的に実行される処理内であれば、いつ判断してもよく、S011からS014のいずれかの手順の間に実行されればよい。   Thereafter, the CPU 101 is released from the standby state by the program wake-up unit 136 of the communication scheduler 102 based on the periodic processing program 152 (S014). After executing S014, the CPU 101 determines whether or not to end the periodic processing program 152 (S006). If the process is not to be ended (No in S006), the procedure from S011 is repeated. If not (Yes in S006), the process is ended. Note that the end determination of S006 may be determined any time as long as it is within a periodically executed process, and may be executed during any of the procedures from S011 to S014.

図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 aperiodic processing program 153, the CPU 101 (see FIG. 1) inquires of the schedule change possibility determination unit 131 of the communication scheduler 102 whether or not the aperiodic processing program 153 can be newly executed (S020). At this time, if the aperiodic processing program 153 has any restrictions such as the minimum guaranteed bandwidth and the longest allowable delay, the CPU 101 notifies the schedule change possibility determination unit 131 of this. If the schedule change possibility determination unit 131 determines that the non-periodic processing program can be executed (Yes in S020), the schedule change possibility determination unit 131 transmits or receives (S021). On the other hand, if the schedule change possibility determination unit 131 determines that the non-periodic processing program 153 cannot be executed (No in S020), the process ends.

次に、図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 communication scheduler 102 in the procedure shown in FIGS. 6, 7, and 8 will be described. In S001 of FIG. 6 and FIG. 7, and S020 of FIG. 8, the schedule of the communication scheduler 102 is changed to determine whether the CPU 101 (see FIG. 1) can execute the new periodic processing program 152 or the new aperiodic processing program 153. An inquiry is made to the possibility determination unit 131. The determination procedure of the schedule change possibility determination unit 131 for the periodic processing program 152 at this time will be described with reference to FIGS. Note that the programs A to K shown in FIGS. The data size indicates the maximum data size of control command value data transmitted by the periodic processing program 152. The unit of the data size in each figure is “B (byte)”.

はじめに、周期処理プログラム152に基づきCPU101は、この周期処理プログラム152の制御指令値の周期と、この制御指令値のデータサイズ(最大データサイズ)をスケジュール変更可能性判定部131(図3参照)に申請する(S040)。   First, based on the periodic processing program 152, the CPU 101 sets the period of the control command value of the periodic processing program 152 and the data size (maximum data size) of the control command value to the schedule change possibility determination unit 131 (see FIG. 3). Apply (S040).

次に、スケジュール変更可能性判定部131は、プログラム管理部130等の新規に割り当て可能な計算機資源があるか否かを判定する(S041)。もし計算機資源がなければ(S041のNo)、スケジュール変更可能性判定部131は、この周期処理プログラム152は実行不可能と判定する(S057)。なお、ここでいう計算機資源とは、例えば、メモリ108の記憶容量等である。一方、計算機資源があれば(S041のYes)、次にスケジュール変更可能性判定部131は、現在実行しているすべてのプログラムのデータサイズの合計値Sum1を算出する(S042)。例えば、各周期処理プログラム152の周期およびデータサイズが、図10に示すような値であった場合、スケジュール変更可能性判定部131は、図11に示すように、全プログラムのデータサイズの合計305B(バイト)を算出する。   Next, the schedule change possibility determination unit 131 determines whether there is a newly assignable computer resource such as the program management unit 130 (S041). If there is no computer resource (No in S041), the schedule change possibility determination unit 131 determines that the periodic processing program 152 cannot be executed (S057). The computer resource here is, for example, the storage capacity of the memory 108. On the other hand, if there is a computer resource (Yes in S041), the schedule change possibility determination unit 131 calculates a total value Sum1 of the data sizes of all currently executed programs (S042). For example, when the period and data size of each periodic processing program 152 are values as shown in FIG. 10, the schedule change possibility determination unit 131, as shown in FIG. (Byte) is calculated.

S042の後、スケジュール変更可能性判定部131は最も周期が短いプログラムの周期μ1を取得する。つまり、最短周期μ1を取得する(S043)。例えば、スケジュール変更可能性判定部131は、図10に示す周期のうち、最も短い周期(実行周期)20μsをμ1として取得する(図11参照)。   After S042, the schedule change possibility determination unit 131 acquires the cycle μ1 of the program having the shortest cycle. That is, the shortest period μ1 is acquired (S043). For example, the schedule change possibility determination unit 131 acquires the shortest cycle (execution cycle) 20 μs among the cycles illustrated in FIG. 10 as μ1 (see FIG. 11).

そして、スケジュール変更可能性判定部131は、S042で算出したSum1を通信スケジューラ102の通信処理スループットで除したT1を算出する(S044)。このようなT1を算出することで、すべての周期処理プログラム152の周期が重なった場合の通信スケジューラ102の通信処理時間を知ることができる。例えば、通信スケジューラの通信処理スループットが100Mbpsであった場合、スケジュール変更可能性判定部131は、T1=305B/100Mbps=24.4μsを算出する。   The schedule change possibility determination unit 131 calculates T1 obtained by dividing Sum1 calculated in S042 by the communication processing throughput of the communication scheduler 102 (S044). By calculating T1 like this, it is possible to know the communication processing time of the communication scheduler 102 when the cycles of all the periodic processing programs 152 overlap. For example, when the communication processing throughput of the communication scheduler is 100 Mbps, the schedule change possibility determination unit 131 calculates T1 = 305B / 100 Mbps = 24.4 μs.

図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 possibility determination unit 131 determines whether the sum of T1 calculated in S044 and the safety factor is smaller than μ1 (S045). Here, if the sum of T1 calculated in S044 and the safety coefficient is smaller than μ1 (Yes in S045), it is determined that the periodic processing program 152 is executable (S056). On the other hand, if the sum of T1 calculated in S044 and the safety factor is μ1 or more (No in S045), there is room for execution of the periodic processing program 152, and the process proceeds to S046. For example, as shown in FIG. 11, when T1 = 24.4, safety factor = 0, and μ1 = 20μ, the sum of T1 and the safety factor is greater than or equal to μ1, so the process proceeds to S046.

図9の説明に戻る。そして、スケジュール変更可能性判定部131は、現在実行しているすべての周期処理プログラム152を素数倍の周期でグルーピングする(S046)。つまり、スケジュール変更可能性判定部131は、タイムスロットの素数倍の周期の周期処理プログラム152ごとに同じグループとし、すべての周期処理プログラム152をグルーピングする。   Returning to the description of FIG. Then, the schedule change possibility determination unit 131 groups all the periodic processing programs 152 currently being executed at a prime multiple cycle (S046). In other words, the schedule change possibility determination unit 131 groups all the periodic processing programs 152 in the same group for each periodic processing program 152 having a period that is a prime number times the time slot.

例えば、スケジュール変更可能性判定部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 possibility determination unit 131 sets a program A having a 20 μs period and a program C having a 40 μs period as a 20 μs period group. Further, a program B having a cycle of 30 μs and a program I having a cycle of 90 μs are set as a 30 μs cycle group. Programs F, G, H, and E having a period of 70 μs are directly used as a 70 μs period group. Note that 60 μs is a common multiple of 20 μs and 30 μs, and 140 μs is a common multiple of 20 μs and 70 μs. Therefore, the schedule change possibility determination unit 131 keeps the program D having a period of 60 μs and the programs K and J having a period of 140 μs without being grouped. In other words, programs that can only be transmitted in that cycle are grouped as data for each cycle, and programs that have a plurality of selectable groups belonging to which cycle are put on hold without determining the group to which they belong. .

図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 possibility determination unit 131 adjusts the execution timing of the program (periodic processing program 152) in each group (S047). The adjustment of the program execution timing here does not exceed the data size (hereinafter referred to as Ts) that the schedule change possibility determination unit 131 can transmit per time slot, and the data size becomes as large as possible. In addition, it is performed by shifting the period of each period processing program 152 within the group. Specifically, the schedule change possibility determination unit 131 collects the same time slot from the periodic processing program 152 having a large data size, and shifts the periodic processing program 152 to another time slot when Ts is exceeded. When the cycle of the cycle processing program 152 is a common multiple of a prime multiple of different time slots, the schedule change possibility determination unit 131 incorporates Ts into a group in which the data size is as large as possible (however, Ts If so, join another group). In addition, the periodic processing program 152 whose data size is larger than Ts is assigned so as to use continuous time slots.

例えば、タイムスロットあたりの送信可能なデータサイズ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 possibility determination unit 131 puts the held programs K and J having a period of 140 μs in this 20 μs period group, so that it becomes 100 B, and collects these data in the same time slot. The schedule change possibility determination unit 131 shifts the program D of 60 μs to another time slot of the 20 μs cycle group. Here, the reason why the programs K and J are selected as programs to be incorporated into the time slot of the 20 μs cycle group is that the data sizes of the programs K and J are larger than those of the program D. Next, the schedule change possibility determination unit 131 groups the programs B and I in the same time slot in a group with a period of 30 μs. Furthermore, programs F, G, and E having a period of 70 μs are collected. Note that the schedule change possibility determination unit 131 exceeds Ts (100 B) when the program H is collected, so the program H is shifted to another time slot of 70 μ cycles. Note that for a program whose data size (120B) alone exceeds Ts (for example, 100B), such as the program F of the 70 μs periodic group in FIG. 14, the schedule change possibility determination unit 131 in FIG. As shown, time slots are allocated as a plurality of consecutive chunks. That is, the program F is allocated across two consecutive time slots.

ここで、スケジュール変更可能性判定部131は、各グループにおける周期を1つのタイムスロットの周期で除した値をμgとする。例えば、1つのタイムスロットの周期が10μsである場合、20μs周期グループのμgの値は「2」である。次に、スケジュール変更可能性判定部131は、新規に追加するプログラムのデータを含むグループにおいて、用いるタイムスロットの種類の数がμg以下になるように各周期処理プログラム152のデータを送信するタイムスロットを調整した結果、データサイズがTsを超えるタイムスロットが存在するか否かを判定する(S048)。   Here, the schedule change possibility determination unit 131 sets μg as a value obtained by dividing the period in each group by the period of one time slot. For example, when the period of one time slot is 10 μs, the value of μg in the 20 μs period group is “2”. Next, the schedule change possibility determination unit 131 transmits the data of each periodic processing program 152 so that the number of types of time slots to be used is not more than μg in the group including the data of the program to be newly added. As a result of the adjustment, it is determined whether there is a time slot whose data size exceeds Ts (S048).

ここで、スケジュール変更可能性判定部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 possibility determination unit 131 determines that this periodic processing program 152 cannot be executed (S057). On the other hand, if there is no time slot whose data size exceeds Ts (No in S048), there is room for executing the program, and the process proceeds to S049.

例えば、図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 possibility determination unit 131 selects a combination of the periodic processing programs 152 when the data size is the largest in each of the remaining groups. Then, the schedule change possibility determination unit 131 calculates the sum value Sum2 of the data sizes of the combination and the combination of the program data when the data size is increased in the group including the newly added program (S049). ).

例えば、図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 possibility determination unit 131 calculates Sum2 = 100B + 45B + 100B = 245B.

図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 possibility determination unit 131 determines whether Sum2 exceeds Ts (S050). If Sum2 does not exceed Ts (No in S050), schedule change possibility determination unit 131 adjusts the program execution timing based on this time slot to transmission time schedule unit 135 (see FIG. 3). Notification is made (S55). Then, the schedule change possibility determination unit 131 determines that the execution process of the periodic processing program 152 is possible (S056). Then, the schedule change possibility determination unit 131 newly assigns the program management unit 130 to the periodic processing program 152 (S058). Then, the process ends.

一方、Sum2が、Tsを超える場合は(S050のYes)、スケジュール変更可能性判定部131は、各周期グループの各タイムスロットを構成するプログラムの組み合わせを変えることで、そのタイムスロットの最長データの合計Sum2を減少できるか否かを判定する(S051)。   On the other hand, when Sum2 exceeds Ts (Yes in S050), the schedule change possibility determination unit 131 changes the combination of programs constituting each time slot of each periodic group, thereby changing the longest data of the time slot. It is determined whether or not the total Sum2 can be reduced (S051).

例えば、図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 possibility determination unit 131 sets each time slot of each cycle group. It is determined whether or not the sum Sum2 of the longest data of the time slot can be reduced by changing the combination of the constituting programs (S051).

図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 possibility determination unit 131 Then, the program configuration of each time slot is changed (S052). Specifically, the schedule change possibility determination unit 131 shifts a program having a small data size to another time slot among a plurality of programs constituting a time slot having the maximum data size in the group, Reduce the maximum data size in the group. Then, the procedure of S049 is taken again.

例えば、スケジュール変更可能性判定部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 possibility determination unit 131 has a periodic group in which a time slot having the maximum data size is composed of a plurality of programs. Therefore, the schedule change possibility determination unit 131 changes the data structure of the time slot having the maximum data size and decreases the maximum size. For example, in the schedule change possibility determination unit 131, the slot with the maximum data size in the 20 μs period group in FIG. 17 is a time slot composed of programs A, C, K, and J. Therefore, for example, the joule change possibility determination unit 131 moves the program J to the time slot of the program C as shown in FIG. Similarly, in FIG. 17, the slot with the maximum data size in the 30 μs period group is a time slot consisting of programs B and I. Therefore, as shown in FIG. 18, the schedule change possibility determination unit 131 moves the program B to another time slot for the time slots composed of the programs B and I. Similarly, in FIG. 17, the slot with the maximum data size in the 70 μs period group is a time slot composed of programs F, G, and E. Therefore, as shown in FIG. 18, the schedule change possibility determination unit 131 also moves the programs G and E to another time slot for the time slot composed of the programs F, G, and E, and A slot. In this way, the schedule change possibility determination unit 131 decreases the maximum size of the data in the time slot of each cycle group. And the process after S049 is repeated again. For example, as shown in FIG. 19, Sum2 = 60B + 30B + 40B = 130B is calculated. Here, since Sum2> Ts (100B) (Yes in S050), the process proceeds to S051.

図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 unit 131 determines whether there is a program that can move to another cycle group among the programs of the cycle group. That is, the schedule change possibility determination unit 131 determines whether or not different grouping is possible for each program (S053). If different grouping is possible, the group is changed (S054), and the procedure from S047 is repeated.

例えば、図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 possibility determination unit 131 has already created two time slots, the maximum size of this time slot can be determined by moving one of the programs A, D, and K to another time slot. Can not be reduced. Therefore, the schedule change possibility determination unit 131 determines that the maximum size of the time slot cannot be reduced even if the combination of programs constituting each time slot of each periodic group is changed (No in S051). Then, it is determined whether different grouping is possible for each program (S053). Here, as shown in FIG. 19, the 20 μs period group also includes programs K and J having a period of 140 μs. Since the programs K and J having a period of 140 μs can be moved to a group having another period (70 μs period), the programs K and J are moved to the 70 μs period group as shown in FIG. In other words, when there is a program with a common multiple cycle in the maximum size time slot of each cycle group, the schedule change possibility determination unit 131 moves this program to a group with a common divisor cycle of this program cycle. Let By doing in this way, the schedule change possibility determination part 131 can reduce the maximum size of a time slot, protecting the microgram value determined for each period group. Then, returning again to S049 and calculating Sum2, as shown in FIG. 21, 30B + 30B + 40B = 100B. Since this value does not exceed Ts = 100B (No in S50), the process proceeds to S55. When the adjustment of the program execution timing is notified (S55), it is determined that the program can be executed (S56), and a new program is executed. The management unit 130 is assigned (S58).

図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 possibility determination unit 131 cannot perform different grouping for each data (No in S053), it determines that the program cannot be executed (S057). In addition, the transmission time schedule unit 135 is notified that the execution timing needs to be adjusted in executing the periodic processing program 152 (S055). Then, the schedule change possibility determination unit 131 executes the processes after S056.

以上のような処理を実行することで、スケジュール変更可能性判定部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 possibility determination unit 131 determines time slot allocation as illustrated in FIG. 22 for the programs A to K that are the periodic processing program 152, for example. For example, the time slot indicated by reference numeral 220 in FIG. 22 indicates that program A (10B), program D (20B), program I (30B), and program F (40B) are transmitted. That is, when the communication scheduler 102 reaches the transmission time of the time slot in the Ethernet (registered trademark) frame, transmission data including control command values of these programs is transmitted.

次に、非周期処理プログラム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 possibility determination unit 131 determines whether there is a newly assignable computer resource such as the program management unit 130 (S041). If there is no computer resource (No in S041), it is determined that the program cannot be executed (S057).

もし計算機資源があれば(S041のYes)、スケジュール変更可能性判定部131は、プログラム情報管理部142のプログラム管理情報を読み出し、この非周期処理プログラム153に制約があるか否かを判定する(S060)。もし制約がなければ(S060のNo)、スケジュール変更可能性判定部131は、送信時刻スケジュール部135に、送信時刻スケジュール表(タイムスロット表)160を参照して、スケジュールの空きがあるか否かを確認する(S061)。   If there is a computer resource (Yes in S041), the schedule change possibility determination unit 131 reads the program management information of the program information management unit 142 and determines whether or not the aperiodic processing program 153 has a restriction (see FIG. S060). If there is no restriction (No in S060), the schedule change possibility determination unit 131 refers to the transmission time schedule table (time slot table) 160 in the transmission time schedule unit 135 to determine whether there is a schedule available. Is confirmed (S061).

図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 time schedule unit 135. The transmission time schedule information is stored in the storage unit of the communication scheduler 102. In the time slot table 160, the horizontal axis represents time slots from the current time to a predetermined slot later in time series, and the vertical axis represents the data size per time slot. In response to the inquiry from the schedule change possibility determination unit 131, the transmission time schedule unit 135 checks whether there is a time slot in which data is not yet filled in the time slot table 160 as shown in FIG. To do. That is, the schedule change possibility determination unit 131 determines that there is an empty schedule if there is an empty time slot for transmitting data of the non-periodic processing program 153 in the time slot table 160.

図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 possibility determination unit 131 determines that the aperiodic processing program 153 cannot be executed (S057). If the schedule change possibility determination unit 131 determines that the aperiodic processing program 153 can be used if it waits for a predetermined time, it is recorded in a log, and even if it waits for the predetermined time. Good.

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 time schedule unit 135 in S061 (Yes in S061), the schedule change possibility determination unit 131 determines that the non-periodic processing program 153 can be executed (S056). On the other hand, if there is a restriction on the aperiodic processing program 153 in S060 (Yes in S060), the schedule change possibility determination unit 131 determines whether or not the restriction on the aperiodic processing program 153 is a guarantee of the minimum communication bandwidth ( S062). If the restriction is the guarantee of the minimum communication band (Yes in S062), the transmission time schedule unit 135 is checked whether the band can be guaranteed (S063). That is, the schedule change possibility determination unit 131 checks whether or not the transmission time schedule unit 135 has a schedule vacancy that can guarantee the minimum communication bandwidth.

例えば、この非周期処理プログラム153の最低通信帯域が5B/sであるとき、送信時刻スケジュール部135は、図24に示すスケジュールの現在以降の1秒間分のタイムスロットに5Bの空きがあるか否かを確認し、その確認結果をスケジュール変更可能性判定部131へ返す。   For example, when the minimum communication bandwidth of the non-periodic processing program 153 is 5 B / s, the transmission time schedule unit 135 determines whether or not there is a 5 B space in the time slot for one second after the current schedule in FIG. And the confirmation result is returned to the schedule change possibility determination unit 131.

ここで、もし、スケジュールの空きがあれば(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 possibility determination unit 131 determines that the aperiodic processing program 153 can be executed (S056). Then, the program information management unit 142 is requested to update the program management information (S066). That is, the program information management unit 142 is instructed to add information on the aperiodic processing program 153. On the other hand, if there is no available schedule (No in S063), the schedule change possibility determination unit 131 determines that the non-periodic processing program 153 cannot be executed (S057).

S062において、非周期処理プログラム153の制約が最低通信帯域の保証でなければ(S062のNo)、スケジュール変更可能性判定部131は、非周期処理プログラム153の制約が最長許容遅延か否かを判定する(S064)。もし制約が最長許容遅延であれば(S064のYes)、非周期処理プログラム153に基づきCPU101は、スケジュール変更可能性判定部131にデータサイズを申請し、送信時刻スケジュール部135に対し、その最長許容遅延の条件を保証できるか否かを確認する(S065)。   In S062, if the restriction of the non-periodic processing program 153 is not the guarantee of the minimum communication bandwidth (No in S062), the schedule change possibility determination unit 131 determines whether or not the restriction of the non-periodic processing program 153 is the longest allowable delay. (S064). If the constraint is the longest allowable delay (Yes in S064), the CPU 101 applies the data size to the schedule change possibility determination unit 131 based on the non-periodic processing program 153, and sends the longest allowable delay to the transmission time schedule unit 135. It is confirmed whether or not the delay condition can be guaranteed (S065).

例えば、この非周期処理プログラム153の最長許容遅延が、10μsであり、データサイズが10Bであった場合、送信時刻スケジュール部135は、図24のタイムスロット表160において、現在から10μs先までのタイムスロットのうち,10Bの空きがあるタイムスロットがあるか否かを確認する。そして、その確認結果を、スケジュール変更可能性判定部131へ返す。   For example, when the longest allowable delay of the non-periodic processing program 153 is 10 μs and the data size is 10 B, the transmission time schedule unit 135 sets the time from the present to 10 μs ahead in the time slot table 160 of FIG. It is checked whether or not there is a time slot with 10B of free slots. Then, the confirmation result is returned to the schedule change possibility determination unit 131.

ここで、その最長許容遅延を保証できると判断されたとき(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 possibility determination unit 131 determines that the aperiodic processing program 153 can be executed (S056). If it cannot be guaranteed (No in S065), the schedule change possibility determination unit 131 determines that the aperiodic processing program 153 cannot be executed (S057). In S064, if the constraint of the aperiodic processing program 153 is not the longest allowable delay (No in S064), the schedule change possibility determination unit 131 determines that the aperiodic processing program 153 cannot be executed (S066). . However, if other constraint determination methods are prepared, the determination can be made sequentially.

なお、周期処理プログラム152に基づきCPU101は、図6、図7のS002において、プログラム管理部130のプログラム情報管理部142は、周期処理プログラム152や非周期処理プログラム153に関する各種情報をプログラム管理情報に設定する。そして、S004において、送信データを送信データ管理部140に設定する。具体的には、はじめて送信データ管理部140を設定すると、送信時刻スケジュール部135へ、そのことが通知され、送信時刻スケジュール部135は今後の送信スケジュールを更新する。この送信時刻スケジュール部135の送信スケジュールの更新について説明する。   Based on the periodic processing program 152, the CPU 101 uses the program information management unit 142 of the program management unit 130 as the program management information in step S <b> 002 of FIG. 6 and FIG. 7. Set. In step S004, transmission data is set in the transmission data management unit 140. Specifically, when the transmission data management unit 140 is set for the first time, this is notified to the transmission time scheduling unit 135, and the transmission time scheduling unit 135 updates the future transmission schedule. The update of the transmission schedule of the transmission time schedule unit 135 will be described.

送信時刻スケジュール部135では、タイムスロットを基準にデータの送信スケジュールを管理する。送信時刻スケジュール部135は、図24に例示するように、このタイムスロットごとにデータグラム連結部132によりデータを連結した送信データを送信する。このタイムスロットの幅は、適当なサイズのパケットを送信するのに必要な通信スケジューラ102の処理時間と、制御処理の要求周期を考慮して決定される。   The transmission time schedule unit 135 manages the data transmission schedule based on the time slot. As illustrated in FIG. 24, the transmission time schedule unit 135 transmits transmission data in which data is concatenated by the datagram concatenation unit 132 for each time slot. The width of this time slot is determined in consideration of the processing time of the communication scheduler 102 required to transmit a packet of an appropriate size and the control processing request cycle.

例えば、100Bのパケットを送信するのに必要な通信スケジューラ102の処理時間が10μsである場合、タイムスロットの幅は10μsとする。なお、このとき、制御処理の要求周期も10μsの倍数とする。また、100B以上のデータサイズのパケットを送信するときは、複数のタイムスロットを占有させる等の処理が必要である。タイムスロットの幅は、例えば、スケジュール変更可能性判定部131のスケジュール判定をしやすい幅でもよいし、500B以上のパケットは送信しない等制御システム上の制約があるならば、その制約に合った幅であってもよい。   For example, when the processing time of the communication scheduler 102 necessary for transmitting a 100B packet is 10 μs, the width of the time slot is 10 μs. At this time, the request period of the control process is also a multiple of 10 μs. Further, when transmitting a packet having a data size of 100 B or more, it is necessary to perform processing such as occupying a plurality of time slots. The width of the time slot may be, for example, a width that allows the schedule change possibility determination unit 131 to easily determine the schedule, or if there is a restriction on the control system such as not transmitting a packet of 500 B or more, a width that meets the restriction It may be.

ここで、再び図24を用いて送信時刻スケジュール部135のタイムスロット管理方法を説明する。図24のタイムスロット表160は、横軸に現在時刻から所定スロット後までのタイムスロットを時系列に表し、縦軸にタイムスロットあたりの通信スケジューラ102が通信処理可能なデータサイズを示している。CPU101は、送信時刻スケジュール表160において、現在時刻を示すポインタをタイムスロット時間の経過とともに横軸上にスライドさせていき、終端に到達すると先頭に戻す処理を繰り返す。   Here, the time slot management method of the transmission time schedule unit 135 will be described using FIG. 24 again. In the time slot table 160 of FIG. 24, the horizontal axis represents time slots from the current time to a predetermined slot later in time series, and the vertical axis represents the data size that can be processed by the communication scheduler 102 per time slot. In the transmission time schedule table 160, the CPU 101 slides the pointer indicating the current time on the horizontal axis as the time slot time elapses, and repeats the process of returning to the head when reaching the end.

送信時刻スケジュール部135は、スケジュール変更可能性判定部131で判定したプログラムの送信予定時刻とそのデータサイズとをタイムスロット表160に書き込んでいく。このとき、各プログラムに与えられた制約を満足する範囲で可能な限り同じタイムスロットにプログラムのスケジュールを組み込む。ただし、図9のS046からS053で示したようにスケジュール変更可能性判定部131がタイムスロットをずらすことが必要であると判定した場合は、タイムスロットをずらす。   The transmission time schedule unit 135 writes the scheduled transmission time of the program determined by the schedule change possibility determination unit 131 and its data size in the time slot table 160. At this time, the program schedule is incorporated into the same time slot as much as possible within the range satisfying the restrictions given to each program. However, when the schedule change possibility determination unit 131 determines that it is necessary to shift the time slot as shown in S046 to S053 in FIG. 9, the time slot is shifted.

また、タイムスロット表160の横軸の幅よりも周期が大きな周期処理プログラム152の場合には、送信までの残りタイムスロット数を個別に管理し、タイムスロットの時間経過とともに、残りのタイムスロット数を1つずつ減じていく。そして、このタイムスロット数が0になったとき、この周期処理プログラム152のデータを送信するようにする。この後、タイムスロット数を周期分の値に初期化する。   Further, in the case of the periodic processing program 152 having a period larger than the width of the horizontal axis of the time slot table 160, the number of remaining time slots until transmission is individually managed, and the number of remaining time slots as time passes. Decrease by one. Then, when the number of time slots becomes 0, the data of this periodic processing program 152 is transmitted. Thereafter, the number of time slots is initialized to a value for the period.

また、周期処理プログラム152に基づきCPU101は、図6、図7のS002において、プログラム管理情報に示される当該周期処理プログラム152の周期内で、送信データを送信時刻スケジュール部135に通知することができなかった場合の挙動を設定することができる。そのような設定例として、以前の指令値を同じデータとして送信する、送信を停止する、送信要求時にエラーをユーザに提示する、要求がくるまで送信を遅らせる等である。また、このような周期に対する送信の遅れの回数、時刻等を記録し、ユーザは、この情報を制御用計算機120の診断等に活用することができる。   Further, based on the periodic processing program 152, the CPU 101 can notify the transmission time scheduling unit 135 of transmission data within the period of the periodic processing program 152 indicated in the program management information in S002 of FIGS. You can set the behavior when there is no. Examples of such settings include transmitting previous command values as the same data, stopping transmission, presenting an error to the user at the time of a transmission request, delaying transmission until a request comes. In addition, the number of transmission delays for such a period, the time, and the like are recorded, and the user can use this information for diagnosis of the control computer 120 and the like.

また、図7のS014の待機を解除する場合は、プログラム起床部136が、この周期処理プログラム152に基づく送信タイミングにあわせて適切なタイミングで実行するようにしてもよい。   7 may be executed at an appropriate timing in accordance with the transmission timing based on the periodic processing program 152.

また、図6、図7、図8において処理が終了すると、プログラム管理部130は解放され、送信時刻スケジュール部135は、この周期処理プログラム152、非周期処理プログラム153に関するスケジュールを削除する。   6, 7, and 8, the program management unit 130 is released, and the transmission time schedule unit 135 deletes the schedules related to the periodic processing program 152 and the aperiodic processing program 153.

なお、周期処理プログラム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 period processing program 152, the CPU 101 inquires of the schedule change possibility determination unit 131 of the communication scheduler 102 based on the period processing program 152 whether or not the period can be changed. . Then, when it is determined that the cycle can be changed, the processing after S002 in FIG. 6 is executed. Whether or not the cycle of the cycle processing program 152 can be changed is determined by the same processing as the processing shown in FIG. In other words, the schedule change possibility determination unit 131 may receive an application for the changed cycle and the maximum data size for the cycle processing program 152 to be changed (S040), and execute the processing after S041.

このような制御用計算機120によれば、周期処理プログラム152に基づきCPU101は、他の周期処理プログラム152に対して同期をとる必要がなく、任意のタイミングでデータを送受信することができる。また、制御用計算機120は、制御処理や通信処理を、周期処理プログラム152や非周期処理プログラム153と独立して実装することができる。これらの特長により、制御用計算機120における周期処理プログラム152および非周期処理プログラム153の依存性を下げることができ、ソフトウェアとして再利用性、保守性、拡張性、柔軟性を向上させることができる。つまり、この制御用計算機120は、既存のシステムを変更、拡張することが容易であり、また特定の制御対象装置121用の周期処理プログラム152を別の制御システムで用いる場合も容易に再利用可能である。   According to such a control computer 120, the CPU 101 does not need to synchronize with other periodic processing programs 152 based on the periodic processing program 152, and can transmit and receive data at an arbitrary timing. Further, the control computer 120 can implement control processing and communication processing independently of the periodic processing program 152 and the non-periodic processing program 153. With these features, the dependency of the periodic processing program 152 and the non-periodic processing program 153 in the control computer 120 can be lowered, and reusability, maintainability, expandability, and flexibility can be improved as software. In other words, the control computer 120 can easily change or expand an existing system, and can be easily reused even when the periodic processing program 152 for a specific control target device 121 is used in another control system. It is.

また、制御用計算機120は、周期処理プログラム152、非周期処理プログラム153それぞれの制約を考慮して、データを連結し、まとめて送信することができる。したがって、同じデータ量を送信する場合でも送信パケット数を減らすことができ、ヘッダやトレイラ等の共通部分を処理するオーバーヘッドを減らすことができる。例えば、Ethernet(登録商標)では、8Bのプリアンブル、14Bのヘッダ、FCS(Frame Check Sequence)の4B、96ビット時間のフレーム間ギャップの通信にかかるオーバーヘッドが存在する。これらのオーバーヘッドを減らすことで、最短到達可能周期をより短くすることができ、制御対象の制御性能を向上させることができる。   In addition, the control computer 120 can concatenate data and transmit them collectively in consideration of the restrictions of the periodic processing program 152 and the non-periodic processing program 153. Therefore, even when the same amount of data is transmitted, the number of transmission packets can be reduced, and overhead for processing common parts such as headers and trailers can be reduced. For example, in Ethernet (registered trademark), there is an overhead associated with communication of an 8B preamble, a 14B header, a 4B FCS (Frame Check Sequence), and a 96-bit time interframe gap. By reducing these overheads, the shortest reachable cycle can be shortened, and the control performance of the controlled object can be improved.

なお、制御用計算機120の通信スケジューラ102の機能を、この制御用計算機120のプログラムの実行処理により実現してもよい。このような制御用計算機120は、図25に示すように、制御用計算機120の通信スケジューラ102を含まない構成となる。この制御用計算機120上で動作するプログラムの構成を図26に示す。   Note that the function of the communication scheduler 102 of the control computer 120 may be realized by executing the program of the control computer 120. As shown in FIG. 25, such a control computer 120 does not include the communication scheduler 102 of the control computer 120. The configuration of a program that runs on this control computer 120 is shown in FIG.

図26の通信スケジューラ170は、CPU101上で動作するプログラムであり、前記した通信スケジューラ102と同様の機能を実現する。この通信スケジューラ170は、周期処理プログラム152、プロトコルスタック155から通信要求を受け取り、デバイスドライバ151を介してLANコントローラ103にアクセスし、制御用ネットワーク122(図2参照)に対して通信する。この通信スケジューラ170は、例えば、ミドルウェア、サーバプログラム、カーネルモジュール等である。   The communication scheduler 170 in FIG. 26 is a program that runs on the CPU 101 and realizes the same functions as the communication scheduler 102 described above. The communication scheduler 170 receives a communication request from the periodic processing program 152 and the protocol stack 155, accesses the LAN controller 103 via the device driver 151, and communicates with the control network 122 (see FIG. 2). The communication scheduler 170 is, for example, middleware, a server program, a kernel module, or the like.

なお、制御用計算機120と、制御対象装置121とは、LAN以外のネットワークにより接続されていてもよい。この場合、図27に示すように、制御用計算機120の通信スケジューラ180は、この制御ネットワークに接続するための通信コントローラ181をさらに備える。   The control computer 120 and the control target device 121 may be connected by a network other than the LAN. In this case, as shown in FIG. 27, the communication scheduler 180 of the control computer 120 further includes a communication controller 181 for connecting to this control network.

また、この通信スケジューラ180は、図28に示すように、この制御用計算機120が、この制御用ネットワークを利用するための様々な情報(例えば、この制御用計算機120を利用可能な時間、利用可能な期間、送受信可能なパケット等に関する情報)を記憶するネットワークプロトコル情報管理部190をさらに備える。そして、送信時刻スケジュール部135は、このネットワークプロトコル情報管理部190から制御用ネットワークの利用に関する情報を取得し、この情報を参照して、送信データのスケジューリングを行う。   In addition, as shown in FIG. 28, the communication scheduler 180 can use various information for the control computer 120 to use the control network (for example, the time that the control computer 120 can be used). A network protocol information management unit 190 that stores information regarding packets that can be transmitted and received during a long period of time. Then, the transmission time schedule unit 135 acquires information on the use of the control network from the network protocol information management unit 190, and refers to this information to perform transmission data scheduling.

また、制御用計算機120は、図29に示すように、バス型ネットワークにより、制御対象装置121と接続されていてもよい。また、制御システムは、図29に示すように、複数の制御用計算機120により、複数の制御対象装置121を制御するようにしてもよい。なお、このように制御用計算機120を複数含む制御システムの場合、この制御用計算機120が互いに送信データを送信するタイミングについて同期をとるようにスケジューリングするものとする。   Further, as shown in FIG. 29, the control computer 120 may be connected to the control target device 121 by a bus network. In addition, as shown in FIG. 29, the control system may control a plurality of control target devices 121 by a plurality of control computers 120. In the case of a control system including a plurality of control computers 120 as described above, scheduling is performed such that the control computers 120 synchronize with respect to the timing at which transmission data is transmitted to each other.

さらに、制御用計算機120の送信部137(図3参照)は、イーサネット(登録商標)フレームを送信する場合を例に説明したが、前記したタイムスロット表(スケジュール情報)160に従い、時分割でデータを送信するようにしてもよい。   Further, the transmission unit 137 (see FIG. 3) of the control computer 120 has been described as an example of transmitting an Ethernet (registered trademark) frame. May be transmitted.

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 Communication scheduler 103 LAN controller 108 Memory 109 Non-volatile storage medium 110 Bus 120 Control computer 121 Control target device 122 Control network 130 Program management unit 131 Schedule change possibility determination unit 132 Datagram concatenation unit 133 Datagram Decomposition unit 134 Timing unit 135 Transmission time schedule unit 136 Program wake-up unit 137 Transmission unit 138 Reception unit 140 Transmission data management unit 141 Reception data management unit 142 Program information management unit 143 Datagram generation unit 144 Datagram extraction unit 145 Status flag management unit 151 Device Driver 152 Periodic Processing Program 153 Aperiodic Processing Program 154 API
155 Protocol stack 156 Common setting program 181 Communication controller 190 Network protocol information management unit

Claims (8)

1つまたは複数の制御対象装置を制御するためのプログラムを1つまたは複数備える制御用計算機であって、
前記プログラムに基づき、前記制御対象装置への制御指令値を通信スケジューラへ出力する処理部と、
タイムスロットを用いたスケジュール情報を用いて、前記処理部から出力された制御指令値を、ネットワーク経由で前記制御対象装置それぞれへ送信する送信時刻を決定し、この決定した送信時刻に、前記制御指令値を含む送信データを前記制御対象装置それぞれへ送信する前記通信スケジューラとを備え、
前記通信スケジューラは、
前記プログラムのうち、周期的に制御指令値を送信するプログラムについて、そのプログラムによる制御対象の制御対象装置の識別情報と、前記制御対象装置への制御指令値を送信するときの周期とを示したプログラム管理情報の入力を受け付け、プログラム管理情報記憶部に記憶するプログラム情報管理部と、
前記プログラムにより前記処理部から、前記制御対象装置への制御指令値の入力を受け付けたとき、この制御指令値を前記記憶部に記憶する送信データ管理部と、
前記プログラム管理情報に示される周期で、前記制御指令値を含む送信データを送信するよう送信時刻を決定し、この送信時刻を前記スケジュール情報に記録し、当該送信時刻になったとき、当該送信データの送信指示を出力する送信時刻スケジュール部と、
前記送信時刻スケジュール部により出力された送信指示に基づき、前記制御指令値を前記記憶部から読み出し、この読み出した制御指令値を含む前記送信データを送信する送信部とを備えることを特徴とする制御用計算機。
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.
請求項1に記載の制御用計算機および制御対象装置を接続するネットワークのトポロジがリングトポロジであることを特徴とする制御システム。   The control system according to claim 1, wherein a topology of a network connecting the control computer and the control target device is a ring topology.
JP2009072344A 2009-03-24 2009-03-24 Control computer and control system Expired - Fee Related JP4876138B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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