WO2018096717A1 - コントロールシステム及びコントロール方法 - Google Patents

コントロールシステム及びコントロール方法 Download PDF

Info

Publication number
WO2018096717A1
WO2018096717A1 PCT/JP2017/021224 JP2017021224W WO2018096717A1 WO 2018096717 A1 WO2018096717 A1 WO 2018096717A1 JP 2017021224 W JP2017021224 W JP 2017021224W WO 2018096717 A1 WO2018096717 A1 WO 2018096717A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
control
information
management information
execution
Prior art date
Application number
PCT/JP2017/021224
Other languages
English (en)
French (fr)
Inventor
光洋 今井
義則 望月
史之 田村
Original Assignee
株式会社日立産機システム
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 株式会社日立産機システム filed Critical 株式会社日立産機システム
Publication of WO2018096717A1 publication Critical patent/WO2018096717A1/ja

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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • the present invention relates to a control system and a control method, and is particularly suitable for application to a control system including a control device and a program distribution device.
  • the control device is also called a sequence control device, a motion control device, or a programmable logic controller (PLC).
  • the control device is a control device such as ladder logic (LD language), sequential function chart (SFC language), function block (FBD language), structured text (ST language), or instruction list (IL language).
  • Control contents are described using a specific programming language.
  • a program that executes such control contents is called a “control program”.
  • Such information communication processing may be difficult to program in a language unique to the above-described control device, and is described using a programming language used in the information communication field such as C language or Java (registered trademark) language. Sometimes. A program for executing such information communication processing is called an “information program”.
  • Patent Document 1 discloses a method for allowing a control program and an information program to coexist in a single control device.
  • the control device in Patent Document 1 manages a POU (Program Organization Unit) extended main module for performing inter-process communication and a C language POU created by a user, and executes an SLC (PLC program such as ladder logic).
  • Software Logic Controller includes a POU extension submodule that executes communication with the runtime, a function block for calling the C language POU, and a C language POU created by the user.
  • the C language POU and the SLC runtime are separate processes, and even if the C language POU is changed, there is no need to change the SLC runtime, so that recompilation is unnecessary.
  • the present invention has been made in consideration of the above points, and is intended to propose a control system and a control method that enable flexible function change in a control device in which a control program and an information program coexist on the same platform. is there.
  • a control program that is described in a controller-specific language and does not require compilation before execution, and a program that is written using a general-purpose programming language and requires compilation before execution
  • a control system comprising: a program distribution device that manages an information program; and a control device that operates on the same platform while the control program and the information program provided from the program distribution device coexist.
  • the distribution device includes: a program management unit that manages the control program and the information program; and an execution that represents a parameter that is used when at least one of the control program and the information program is executed in the control device An execution management information generation unit that generates physical information; and a program distribution unit that provides the execution management information corresponding to the at least one program when the at least one program is provided in response to a request.
  • the control device includes: an execution management information table for storing the execution management information provided from the program distribution device; and the execution management stored in the execution management information table when the at least one program is executed.
  • a task management unit that controls execution of the at least one program based on information.
  • a control program that is written in a controller-specific language and does not require compilation before execution, and an information program that is written using a general-purpose programming language and requires compilation before execution In the program distribution method in a control system, comprising: a program distribution device to be managed; and a control device that operates on the same platform while the control program and the information program provided from the program distribution device coexist.
  • a task management step for controlling execution of the at least one program based on the execution management information stored in the execution management information table is executed.
  • the function can be flexibly changed in the control device in which the control program and the information program coexist on the same platform.
  • FIG. 3 is a diagram showing a table configuration example of an execution management information table shown in FIG. 2. It is a flowchart which shows an example of the program download process in which a control apparatus downloads a desired program from a program distribution apparatus. It is a flowchart which shows an example of a program execution process.
  • FIG. 1 shows the hardware structural example of the control system by 1st Embodiment.
  • a program distribution device 101 a control device 109, an I / O module 119 and a peripheral device 120 are connected to a network 108.
  • Peripheral device 120 is at least one device such as a sensor and a drive.
  • the I / O module 119 functions as a bus slot into which the peripheral device 120 is detachably mounted as necessary.
  • the program distribution apparatus 101 manages control programs and information programs.
  • the program distribution device 101 includes an EPROM 201, a CPU 202, a main memory 203, a peripheral control device 205, a nonvolatile storage device 206, and a network interface (corresponding to the network I / F shown in the figure) 207.
  • the program distribution apparatus 101 is connected to the network 108 via the network interface 207.
  • the program distribution apparatus 101 provides a control program or an information program to the control apparatus 109 via the network 108 under the control of the peripheral control apparatus 205.
  • the program distribution apparatus 101 provides a control program and an information program stored in advance in the nonvolatile storage device 206 in response to a request under the control of the CPU 202.
  • Peripheral control device 205 is connected to EPROM 201, CPU 202 and main memory 203 via bus 204.
  • the CPU 202 reads out and executes a management program stored in advance in the EPROM 201 on the main memory 203, and manages the control program and the information program by this management program.
  • This management program provides at least one of the above-described control program and information program sequentially in response to a request.
  • This management program corresponds to a program distribution unit 102 and an execution management information generation unit 103 described later.
  • control device 109 includes an EPROM 208, a CPU 209, a main memory 210, a peripheral control device 212, an I / O control device 214, a nonvolatile storage device 215, and a network interface (corresponding to the network I / F shown in the figure) 213.
  • control program and the information program provided from the program distribution device 101 operate on the same platform such as Linux (registered trademark).
  • Peripheral control device 212 is connected to network I / F 213, I / O control device 214, nonvolatile storage device 215, and bus 211.
  • an EPROM 208, a CPU 209, and a main memory 210 are connected to the bus 211.
  • the EPROM 208 stores a control program and an information program prepared in advance in the control device 108 in an initial state.
  • the CPU 209 includes a plurality of cores, and each core can be operated independently.
  • the CPU 209 reads the control program and information program stored in advance in the EPROM 208 into the main memory 210 and executes them, and controls the operation of these control program and information program. That is, when these control program and information program are read and executed, the control program 114 and the information program 115 are obtained.
  • the CPU 209 controls the peripheral control device 212 to control downloading of the control program and the information program from the program distribution device 101 via the network I / F 213.
  • CPU 209 controls peripheral control device 212 to control a plurality of peripheral devices 120 via I / O control device 214 and a plurality of I / O modules 119.
  • Each of these peripheral devices 120 is associated with each I / O module 119, and is managed one-to-one with, for example, a digital I / O register, and can be operated step by step by register operation.
  • FIG. 2 shows a functional schematic configuration example of the control system according to the first embodiment.
  • the program distribution apparatus 101 includes a program management database (corresponding to the illustrated program management DB) 104, a program distribution unit 102, and an execution management information generation unit 103.
  • the program distribution unit 102 and the execution management information generation unit 103 correspond to a description management program.
  • the program management database 104 manages the control program 105 and the information program 106.
  • the execution management information generation unit 103 generates execution management information representing parameters when at least one of the control program 105 and the information program 106 is executed by the control device 109.
  • This execution management information is a parameter such as the priority of each task of the control program 105 and the information program 106 and the upper limit storage capacity that can be used for each control program 105 and the information program 106, for example.
  • the program distribution unit 102 provides execution management information indicating parameter values corresponding to the at least one program when providing the at least one program in response to the request.
  • the control device 109 is also called a sequence control device, a motion control device, or a programmable logic controller (PLC), and includes ladder logic (LD language), sequential function chart (SFC language), and function block (FBD language). ), Structured text (ST language) and instruction list (IL language), the control contents are described in a programming language specific to the control device.
  • PLC programmable logic controller
  • LD language ladder logic
  • SFC language sequential function chart
  • BBD language function block
  • ST language Structured text
  • IL language instruction list
  • control contents are described in a programming language specific to the control device.
  • a program that executes such control content is referred to as a “control program”.
  • control device 109 may require information communication processing such as complicated arithmetic operations, transmission / reception of information with SCADA, MES, and cloud systems.
  • information communication processing may be difficult to program in a language unique to the control device 109, and is described using a programming language used in the information communication field such as so-called C language or Java (registered trademark) language. There is a case.
  • a program that executes such information communication processing is called an “information program”.
  • the program management database 104 manages a control program 105 having a function of executing the above-described control contents and an information program 106 having a function of executing the above-described information communication process.
  • the control device 109 includes a task management unit 110, a control program execution unit 111, an information program execution unit 112, an execution management information table 113, and an I / O control unit 117.
  • the control program execution unit 111 is, for example, a runtime library, and operates with the control program 114 in response to a call from the control program 114.
  • the information program execution unit 112 is a so-called library, for example, and operates together with the information program 115 in response to a call from the information program 115.
  • the control program 114 indicates the control program 105 that has been distributed from the program distribution apparatus 101 to the control apparatus 109
  • the information program 115 indicates the information program 106 that has been distributed from the program distribution apparatus 101 to the control apparatus 109.
  • the execution management information table 113 stores the execution management information received together with the at least one program provided from the program distribution apparatus 101.
  • the task management unit 110 mainly has two functions, and has a program reception function and a program execution management function.
  • the program reception function is a function for receiving at least one of the programs provided from the program distribution apparatus 101 in response to a request.
  • the program execution management function is a function for controlling execution of the at least one program based on the execution management information stored in the execution management information table 113 when the at least one program is executed.
  • control device 109 includes the main memory 210 having a storage area having a predetermined storage capacity used by each task of the control program 114 and the information program 115.
  • the execution management information generation unit 103 performs at least the priority of each task of the control program 105 and the information program 106 as the execution management information, and each task of the control program 105 and the information program 106.
  • Execution management information indicating at least one parameter value of the upper limit storage capacity of the usable main memory 210 is generated.
  • FIG. 3 shows a table configuration example of the execution management information table 113 shown in FIG.
  • the execution management information table 113 includes, for example, a program name 301, a program type 302, a task priority 303, an execution cycle 304, a memory upper limit 305, a CPU core number 306, and a use device 307 as columns.
  • the program name 301 represents the name of each program.
  • the program type 302 represents the type of program whether each program is the control program 114 or the information program 115. Note that the first three characters of the program name 301 described above can identify whether the program is the control program 114 or the information program 115, “CTL” represents the control program 114, and “ICT” represents the information program. 115.
  • the task priority 303 represents the priority of the task corresponding to the control program 114 and the information program 115 being executed.
  • a priority can be set between “0 (priority: high)” and “20 (priority: low)”.
  • the execution cycle 304 represents a cycle in which steady processing in the control program 114 and the information program 115 is executed.
  • the memory upper limit 305 represents the storage capacity that each program can use in the storage area of the main memory 203.
  • the CPU core number 306 represents which core among the plurality of cores mounted on the CPU 209 of the control device 109 is assigned to each program.
  • the used device 307 represents the type of the peripheral device 120 as a device used by the control device 109 via the I / O module 119.
  • FIG. 4 shows an example of a program download process in which the control device 109 downloads a desired program from the program distribution device 101.
  • a program to be downloaded is selected in response to a user operation using an operation screen (not shown) (step S401).
  • the program distribution unit 102 specifies the corresponding specific program in the program management database 104.
  • execution management information is set for the specific program in accordance with a user operation on the operation screen (step S402).
  • the execution management information includes a task priority 303 as shown in FIG. 3, for example.
  • the execution management information generation unit 103 determines, for example, the priority when each task of each program is executed as the parameter related to the operation mode of the specific program according to the input content of the user, At least one parameter of the upper limit storage capacity in the usable main memory 210 can be set.
  • priority will be mainly described as an example.
  • the processing up to this point represents the processing in the program distribution apparatus 101, and the processing thereafter represents the processing in the control device 109.
  • the program distribution apparatus 101 downloads the specific program and the execution management information associated therewith to the control apparatus 109 in response to a request from the control apparatus 109 (step S403).
  • the task management unit 110 receives the downloaded specific program (corresponding to the program reception function described above).
  • the task management unit 110 stores the control program 114 in the main memory 210 when the specific program is a control program (step S404).
  • the task management unit 110 adds the execution management information downloaded together with the specific program to the execution management information table 113 (corresponding to the program execution management function described above) (step S405).
  • FIG. 5 shows an example of the program execution process. This program execution process represents the process content when the specific program is executed in the control device 109.
  • the task management unit 110 When the task management unit 110 newly tries to execute a certain predetermined program, the task management unit 110 reads out the execution management information corresponding to the predetermined program from the execution management information table 113 (step S501).
  • the execution management information corresponding to the predetermined program includes the priority when each task of the predetermined program managed in the priority 303 in the execution management information table 113 is executed.
  • the task management unit 110 uses, for example, each task of the predetermined program (at least one of the control program 105 and the information program 104) as a parameter of the predetermined program based on the read execution management information.
  • the upper limit storage capacity of the main memory 210 that can be used by each task is set to the Linux (registered trademark) chrt command (step S502).
  • the task management unit 110 sets such priority using a Linux (registered trademark) chrt command.
  • the task management unit 110 sets the above-described upper limit storage capacity using the cgroups function.
  • the operation is performed only at (step S503). That is, the control program 114 and the information program 115 do not need to be accompanied by the stop of other programs when function changes such as addition, update, or deletion of tasks are performed, and the information program 115 can be recompiled. do not need. For this reason, since it becomes easy to perform any functional change of addition, update, and deletion of each task of the control program 114 and the information program 115, the control device 109 enables flexible function change.
  • control system according to the second embodiment has substantially the same configuration as the control system according to the first embodiment described above. The description will be omitted, and different points will be mainly described below.
  • the remaining resources derived according to the storage capacity, that is, the remaining capacity of the main memory 210 that can be used by each task is displayed.
  • the execution management information indicating the parameter value including the remaining resource is displayed together with the selected program on the control apparatus 109. Download to.
  • the task management unit 110 receives the execution management information together with the selected program, and registers the execution management information in the execution management information table 113.
  • the control program executing unit 111 sets the control program 114, which is the selected program, using the remaining resources based on the execution management information as parameter values. Execute. On the other hand, if the selected program is the information program 115, the information program execution unit 112 executes the information program 115, which is the selected program, using the remaining resources based on the execution management information as parameter values.
  • the same effect as that of the first embodiment can be obtained, and further, a user who is in contact with the remaining resources of the main memory 210 that can be used by each of such tasks can receive appropriate information.
  • the download setting can be made based on the above, and the selected program described above can be prevented from affecting the existing program.
  • a hypervisor may be used to separate from the OS layer.
  • the present invention can be widely applied to a control system and a control method including a control device in which a control program and an information program coexist.
  • DESCRIPTION OF SYMBOLS 101 Program distribution apparatus, 102 ... Program distribution part, 103 ... Execution management information generation part, 104 ... Program management database, 105 ... Control program, 106 ... Information program, 109 ... Control apparatus, 110 ... ... task management unit, 113 ... execution management information table, 114 ... control program, 115 ... information program.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

コントロール装置が、プログラム配布装置から提供された実行管理情報を保存する実行管理情報テーブルと、少なくとも一方のプログラムを実行する際に、この実行管理情報テーブルに保存された実行管理情報に基づいて少なくとも一方のプログラムの実行を制御するタスク管理部と、を備える。

Description

コントロールシステム及びコントロール方法
 本発明は、コントロールシステム及びコントロール方法に関し、特に、コントロール装置及びプログラム配布装置を備えるコントロールシステムに適用して好適なものである。
 コントロール装置は、シーケンス制御装置、モーション制御装置又はプログラマブル・ロジック・コントローラ(PLC)とも呼ばれている。コントロール装置は、ラダー・ロジック(LD言語)、シーケンシャル・ファンクション・チャート(SFC言語)、ファンクション・ブロック(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト(IL言語)のような制御装置特有のプログラミング言語を用いて制御内容が記述される。このような制御内容を実行するプログラムを「制御プログラム」と呼ぶ。
 このようなコントロール装置において、複雑な算術演算やSCADA、MES、クラウドシステムとの情報の送受信のような情報通信処理が必要な場合がある。このような情報通信処理は、上述の制御装置特有の言語でプログラミングすることが困難な場合があり、C言語またはJava(登録商標)言語などの情報通信分野で使われるプログラミング言語を用いて記述することがある。このような情報通信処理を実行するプログラムを「情報プログラム」と呼ぶ。
 単一のコントロール装置における制御プログラムと情報プログラムを共存させる方法については、例えば、特許文献1に開示されている。この特許文献1におけるコントロール装置は、プロセス間通信を行うためのPOU(Program Organization Unit)拡張メインモジュールと、ユーザが作成したC言語POUを管理し、ラダー・ロジック等のPLCプログラムを実行するSLC(Software Logic Controller)ランタイムとの通信を実行するPOU拡張サブモジュールと、C言語POUを呼び出すためのファンクション・ブロックと、ユーザが作成したC言語POUを備える。このコントロール装置は、C言語POUとSLCランタイムが別プロセスとなっておりC言語POUを変更してもSLCランタイムを変更する必要がないため、再コンパイルが不要な構成となっている。
特開2002-189507号公報
 しかしながら、特許文献1におけるコントローラは、C言語POU(情報プログラムに相当)とSLCランタイム(制御プログラムに相当)が別プロセスとなっており、C言語POUの変更時にSLCランタイムの再コンパイルが不要な構成となっているが、新たな機能を有するC言語POUの追加については考慮されていない。
 本発明は以上の点を考慮してなされたもので、制御プログラム及び情報プログラムが同一プラットフォーム上に共存するコントロール装置において柔軟な機能変更を可能とするコントロールシステム及びコントロール方法を提案しようとするものである。
 かかる課題を解決するため、本発明においては、制御装置専用言語で記述され実行の前にコンパイル処理を必要としない制御プログラム、及び、汎用プログラミング言語を用いて記述され実行の前にコンパイル処理を必要とする情報プログラムを管理するプログラム配布装置と、前記プログラム配布装置から提供される前記制御プログラム及び前記情報プログラムが共存しつつ同一のプラットフォーム上で動作するコントロール装置と、を備えるコントロールシステムにおいて、前記プログラム配布装置は、前記制御プログラム及び前記情報プログラムを管理するプログラム管理部と、前記制御プログラム及び前記情報プログラムのうち少なくとも一方のプログラムが前記コントロール装置における実行の際に用いるパラメータを表す実行管理情報を生成する実行管理情報生成部と、要求に応じて前記少なくとも一方のプログラムを提供する際に併せて前記少なくとも一方のプログラムに対応する前記実行管理情報を提供するプログラム配布部と、を備え、前記コントロール装置は、前記プログラム配布装置から提供された前記実行管理情報を保存する実行管理情報テーブルと、前記少なくとも一方のプログラムを実行する際に、前記実行管理情報テーブルに保存された前記実行管理情報に基づいて前記少なくとも一方のプログラムの実行を制御するタスク管理部と、を備えることを特徴とする。
 また、本発明においては、制御装置専用言語で記述され実行の前にコンパイル処理を必要としない制御プログラム、及び、汎用プログラミング言語を用いて記述され実行の前にコンパイル処理を必要とする情報プログラムを管理するプログラム配布装置と、前記プログラム配布装置から提供される前記制御プログラム及び前記情報プログラムが共存しつつ同一のプラットフォーム上で動作するコントロール装置と、を備えるコントロールシステムにおけるプログラム配布方法において、前記プログラム配布装置が、前記制御プログラム及び前記情報プログラムを管理するプログラム管理ステップと、前記プログラム配布装置が、前記制御プログラム及び前記情報プログラムのうち少なくとも一方のプログラムが前記コントロール装置における実行の際に用いるパラメータを表す実行管理情報を生成する実行管理情報生成ステップと、前記プログラム配布装置が、要求に応じて前記少なくとも一方のプログラムを提供する際に併せて前記少なくとも一方のプログラムに対応する前記実行管理情報を提供するプログラム配布ステップと、を実行し、前記コントロール装置が、前記プログラム配布装置から提供された前記実行管理情報を保存する実行管理情報保存ステップと、前記コントロール装置が、前記少なくとも一方のプログラムを実行する際に、前記実行管理情報テーブルに保存された前記実行管理情報に基づいて前記少なくとも一方のプログラムの実行を制御するタスク管理ステップと、を実行することを特徴とする。
 本発明によれば、制御プログラム及び情報プログラムが同一プラットフォーム上に共存するコントロール装置において柔軟に機能変更を行うことができる。
第1の実施の形態によるコントロールシステムのハードウェア構成例を示すブロック図である。 第1の実施の形態によるコントロールシステムの機能的な概略構成を示すブロック図である。 図2に示す実行管理情報テーブルのテーブル構成例を示す図である。 コントロール装置がプログラム配布装置から所望のプログラムをダウンロードするプログラムダウンロード処理の一例を示すフローチャートである。 プログラム実行処理の一例を示すフローチャートである。
 以下、図面について、本発明の一実施の形態について詳述する。
 (1)第1の実施の形態
 図1は、第1の実施の形態によるコントロールシステムのハードウェア構成例を示す。このコントロールシステムでは、プログラム配布装置101、コントロール装置109、I/Oモジュール119及び周辺機器120がネットワーク108に接続されている。
 周辺機器120は、センサ及びドライブなどの少なくとも1つの機器である。I/Oモジュール119は、周辺機器120が必要に応じて着脱可能に装着されるバススロットとして機能する。
 プログラム配布装置101は、制御プログラム及び情報プログラムを管理している。プログラム配布装置101は、EPROM201、CPU202、メインメモリ203、周辺制御装置205、不揮発性記憶装置206及びネットワークインターフェース(図示のネットワークI/Fに相当)207を備える。プログラム配布装置101は、ネットワークインターフェース207を介してネットワーク108に接続されている。
 プログラム配布装置101は、周辺制御装置205の制御によってネットワーク108を経由してコントロール装置109に対して制御プログラムを提供したり情報プログラムを提供する。このプログラム配布装置101では、CPU202の制御によって、不揮発性記憶装置206に予め格納されている制御プログラム及び情報プログラムを要求に応じて提供する。
 周辺制御装置205は、バス204を介してEPROM201、CPU202及びメインメモリ203に接続されている。CPU202は、EPROM201に予め格納されている管理プログラムをメインメモリ203上に読み出して実行し、この管理プログラムによって上記制御プログラム及び情報プログラムを管理している。
 この管理プログラムは、要求に応じて逐次、上述した制御プログラム及び情報プログラムのうち少なくとも一方のプログラムを提供する。この管理プログラムは、後述するプログラム配布部102及び実行管理情報生成部103に相当する。
 一方、コントロール装置109は、EPROM208、CPU209、メインメモリ210、周辺制御装置212、I/O制御装置214、不揮発性記憶装置215及びネットワークインターフェース(図示のネットワークI/Fに相当)213を備えている。コントロール装置109では、プログラム配布装置101から提供される制御プログラム及び情報プログラムが例えばLinux(登録商標)のような同一のプラットフォーム上で共存しつつ動作する。
 周辺制御装置212は、ネットワークI/F213、I/O制御装置214、不揮発性記憶装置215及びバス211に接続されている。このバス211には、その他にもEPROM208、CPU209及びメインメモリ210が接続されている。
 EPROM208には、初期状態で予めコントロール装置108に用意されている制御プログラム及び情報プログラムが格納されている。CPU209は、複数のコアを備えており、各コアを独立させて動作させることができる。CPU209は、EPROM208に予め格納されている制御プログラム及び情報プログラムをメインメモリ210に読み出して実行し、これら制御プログラム及び情報プログラムの動作を制御する。すなわち、これらの制御プログラム及び情報プログラムが読み出されて実行されると、制御プログラム114及び情報プログラム115となる。
 CPU209は、周辺制御装置212を制御してネットワークI/F213を介してプログラム配布装置101からの制御プログラム及び情報プログラムのダウンロードを制御する。
 CPU209は、周辺制御装置212を制御してI/O制御装置214及び複数のI/Oモジュール119を介して複数の周辺機器120を制御する。これら各周辺機器120は、各I/Oモジュール119に対応付けられており、例えばデジタルI/Oレジスタと一対一に管理されレジスタ操作で逐一操作が可能となっている。
 図2は、第1の実施の形態によるコントロールシステムの機能的な概略構成例を示す。プログラム配布装置101は、プログラム管理データベース(図示のプログラム管理DBに相当)104、プログラム配布部102及び実行管理情報生成部103を備えている。これらプログラム配布部102及び実行管理情報生成部103は記述の管理プログラムに相当する。
 プログラム管理データベース104は、制御プログラム105及び情報プログラム106を管理する。実行管理情報生成部103は、制御プログラム105及び情報プログラム106のうち少なくとも一方のプログラムがコントロール装置109において実行される際のパラメータを表す実行管理情報を生成する。この実行管理情報は、例えば制御プログラム105及び情報プログラム106の各タスクの優先度、及び、制御プログラム105及び情報プログラム106ごとに使用可能な上限記憶容量のようなパラメータである。
 プログラム配布部102は、要求に応じて上記少なくとも一方のプログラムを提供する際に併せて上記少なくとも一方のプログラムに対応するパラメータ値を示す実行管理情報を提供する。
 コントロール装置109は、シーケンス制御装置、モーション制御装置、又はプログラマブル・ロジック・コントローラ(PLC)とも呼ばれ、ラダー・ロジック(LD言語)、シーケンシャル・ファンクション・チャート(SFC言語)、ファンクション・ブロック(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト(IL言語)のような制御装置特有のプログラミング言語で制御内容が記述される。第1の実施の形態では、このような制御内容を実行するプログラムを「制御プログラム」と呼ぶ。
 一方、このようなコントロール装置109では、複雑な算術演算、SCADA、MES、クラウドシステムとの情報の送受信のような情報通信処理が必要な場合がある。このような情報通信処理は、コントロール装置109特有の言語でプログラミングすることが困難な場合があり、いわゆるC言語またはJava(登録商標)言語などの情報通信分野で使われるプログラミング言語を用いて記述する場合がある。第1の実施の形態では、このような情報通信処理を実行するプログラムを「情報プログラム」と呼ぶ。
 プログラム管理データベース104は、上述した制御内容を実行する機能を有する制御プログラム105、及び、上述した情報通信処理を実行する機能を有する情報プログラム106を管理している。
 コントロール装置109は、タスク管理部110、制御プログラム実行部111、情報プログラム実行部112、実行管理情報テーブル113及びI/O制御部117を備えている。
 制御プログラム実行部111は、例えばランタイムライブラリであり、制御プログラム114からの呼び出しに応じて制御プログラム114とともに動作する。情報プログラム実行部112は、例えばいわゆるライブラリであり、情報プログラム115からの呼び出しに応じて情報プログラム115とともに動作する。
 なお、制御プログラム114は、プログラム配布装置101からコントロール装置109に配布済みの制御プログラム105を示し、情報プログラム115は、プログラム配布装置101からコントロール装置109に配布済みの情報プログラム106を示している。
 実行管理情報テーブル113は、プログラム配布装置101から提供された上記少なくとも一方のプログラムとともに受け取った上記実行管理情報が保存される。
 一方、タスク管理部110は、主として2つの機能を備えており、プログラム受信機能及びプログラム実行管理機能を有する。プログラム受信機能は、要求に応じてプログラム配布装置101から提供される上記少なくとも一方のプログラムを受信する機能である。一方、プログラム実行管理機能は、上記少なくとも一方のプログラムを実行する際に、実行管理情報テーブル113に保存された前記実行管理情報に基づいて前記少なくとも一方のプログラムの実行を制御する機能である。
 上述したようにコントロール装置109は、制御プログラム114及び情報プログラム115の各タスクが使用する所定の記憶容量の記憶領域を有するメインメモリ210を備える。
 ここで、プログラム配布装置101では、実行管理情報生成部103が、実行管理情報として少なくとも、制御プログラム105及び情報プログラム106の各タスクの優先度、及び、制御プログラム105及び情報プログラム106の各タスクによって使用可能なメインメモリ210の上限記憶容量の少なくとも一方のパラメータ値を示す実行管理情報を生成する。
 図3は、図2に示す実行管理情報テーブル113のテーブル構成例を示す。実行管理情報テーブル113は、そのカラムとして、例えばプログラム名301、プログラム種別302、タスク優先度303、実行周期304、メモリ上限305、CPUコア番号306及び利用デバイス307を有する。
 プログラム名301は、各プログラムの名称を表している。プログラム種別302は、各プログラムが制御プログラム114であるか情報プログラム115であるかというプログラムの種別を表している。なお、上述したプログラム名301の先頭3文字においても、制御プログラム114であるか情報プログラム115であるかを識別可能であり、「CTL」は制御プログラム114を表しており、「ICT」は情報プログラム115であることを表している。
 タスク優先度303は、実行中の制御プログラム114及び情報プログラム115に対応するタスクの優先度を表している。タスク優先度303では、例えば「0(優先度:高)」から「20(優先度:低)」までの間で優先度が設定可能である。
 実行周期304は、制御プログラム114及び情報プログラム115における定常処理が実行される周期を表している。メモリ上限305は、各プログラムがメインメモリ203の記憶領域において使用可能な記憶容量を表している。
 CPUコア番号306は、コントロール装置109のCPU209に搭載されている複数のコアのうちどちらのコアを各プログラムに割り当てるかを表している。
 利用デバイス307は、コントロール装置109がI/Oモジュール119を介して利用するデバイスとしての周辺機器120の種類を表している。
 図4は、コントロール装置109がプログラム配布装置101から所望のプログラムをダウンロードするプログラムダウンロード処理の一例を示す。まず、プログラム配布装置101では、図示しない操作画面を用いたユーザの操作に応じて、ダウンロードすべきプログラムが選択される(ステップS401)。これにより、プログラム配布部102は、対応する特定のプログラムをプログラム管理データベース104において特定する。
 次にプログラム配布装置101では、操作画面においてユーザの操作に応じて上記特定のプログラムについて実行管理情報が設定される(ステップS402)。この実行管理情報には、例えば図3に示すようにタスク優先度303が含められている。これにより、実行管理情報生成部103は、ユーザの入力内容に応じて上記特定のプログラムの動作態様に関するパラメータとして、例えば、各プログラムの各タスクが実行される際の優先度、及び、各タスクが使用可能なメインメモリ210内の上限記憶容量の少なくとも一方のパラメータを設定することができる。以下、一例として主として優先度を取り上げて説明する。以上までが、プログラム配布装置101における処理を表しており、これ以降はコントロール装置109における処理を表している。
 プログラム配布装置101は、コントロール装置109の要求に応じて、上記特定のプログラム及びこれに対応付けられた実行管理情報をコントロール装置109にダウンロードする(ステップS403)。
 次にコントロール装置109では、タスク管理部110が、上記ダウンロードされた上記特定のプログラムを受信する(既述のプログラム受信機能に相当)。タスク管理部110は、受信が完了すると、上記特定のプログラムが制御プログラムである場合には制御プログラム114としてメインメモリ210に保存する(ステップS404)。
 次にコントロール装置109では、タスク管理部110が上記特定のプログラムとともにダウンロードした実行管理情報を実行管理情報テーブル113に追記する(既述のプログラム実行管理機能に相当)(ステップS405)。
 図5は、プログラム実行処理の一例を示す。このプログラム実行処理は、コントロール装置109において上記特定のプログラムが実行される場合の処理内容を表している。
 タスク管理部110は、ある所定のプログラムを新たに実行しようとした際、実行管理情報テーブル113から、当該所定のプログラムに対応する実行管理情報を読み出す(ステップS501)。当該所定のプログラムに対応する実行管理情報としては、実行管理情報テーブル113における優先度303において管理している、当該所定のプログラムの各タスクが実行される際における優先度を含む。
 次にタスク管理部110は、当該読み出された実行管理情報に基づいて当該所定のプログラムのパラメータとして、例えば、当該所定のプログラム(制御プログラム105及び情報プログラム104の少なくとも一方のプログラム)の各タスクの優先度を設定したり、各タスクが使用可能なメインメモリ210の上限記憶容量をLinux(登録商標)のchrtコマンド(ステップS502)。タスク管理部110は、このような優先度をLinux(登録商標)のchrtコマンドを用いて設定する。一方、タスク管理部110は、上述した上限記憶容量をcgroups機能を用いて設定する。
 以上のような実施の形態によれば、制御プログラム114及び情報プログラム115が同一プラットフォーム上に共存するコントロール装置109において制御プログラム114及び情報プログラム115がそれぞれ対応するパラメータに応じて互いに影響を与えない範囲でのみ動作するようになる(ステップS503)。即ち、制御プログラム114及び情報プログラム115は、互いに、例えばタスクの追加、更新又は削除のような機能変更に際し、他のプログラムの停止を伴う必要がないばかりでなく、情報プログラム115は、再コンパイルを必要としない。このため、制御プログラム114及び情報プログラム115の各タスクの追加、更新及び削除のいずれの機能的な変更も行い易くなるため、コントロール装置109は柔軟な機能変更を可能とする。
 (2)第2の実施の形態
 第2の実施の形態によるコントロールシステムは、既述の第1の実施の形態によるコントロールシステムとほぼ同様な構成であるため、同様な構成については同一の符号を用いて説明を省略し、以下、異なる点を中心として説明する。
 第2の実施の形態によるコントロールシステムでは、上述した操作画面(図示せず)に、図3に示す実行管理情報テーブル113に基づいて、上述したプログラムの各タスクが使用可能なメインメモリ210の上限記憶容量に応じて導き出される残りリソース、すなわち、各タスクが使用可能なメインメモリ210の残容量を表示している。
 プログラム配布装置101では、上述した操作画面において所定の操作に応じて、例えば残りリソースなどが選択されると、当該残りリソースを含むパラメータ値を示す実行管理情報を、選択されたプログラムとともにコントロール装置109にダウンロードする。既述のようにコントロール装置109では、タスク管理部110が当該選択されたプログラムとともに上記実行管理情報を受け取り、この実行管理情報を実行管理情報テーブル113に登録する。
 既述のように、当該選択されたプログラムが制御プログラム114であれば、制御プログラム実行部111が、上記実行管理情報に基づく残りリソースをパラメータ値として、当該選択されたプログラムである制御プログラム114を実行する。一方、当該選択されたプログラムが情報プログラム115であれば、情報プログラム実行部112が、上記実行管理情報に基づく残りリソースをパラメータ値として、当該選択されたプログラムである情報プログラム115を実行する。
 以上のような構成とすると、第1の実施の形態と同様な効果を得ることができるとともに、さらに、そのような各タスクが使用可能なメインメモリ210の残りリソースに接したユーザが適切な情報に基づいてダウンロード設定を行うことができるとともに、上述した選択されたプログラムが既存のプログラムに影響を与えないようにすることができる。
 (3)変型例
 上述した実施の形態では、次のような変型例を採用することができる。第1の変型例としては、例えばハイパバイザ等を利用してOS層から分けるようにしても良い。
 (4)その他の実施形態
 上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。
 本発明は、制御プログラム及び情報プログラムとが共存するコントロール装置を備えるコントロールシステム及びコントロール方法に広く適用することができる。
 101……プログラム配布装置、102……プログラム配布部、103……実行管理情報生成部、104……プログラム管理データベース、105……制御プログラム、106……情報プログラム、109……コントロール装置、110……タスク管理部、113……実行管理情報テーブル、114……制御プログラム、115……情報プログラム。

Claims (4)

  1.  制御装置専用言語で記述され実行の前にコンパイル処理を必要としない制御プログラム、及び、汎用プログラミング言語を用いて記述され実行の前にコンパイル処理を必要とする情報プログラムを管理するプログラム配布装置と、前記プログラム配布装置から提供される前記制御プログラム及び前記情報プログラムが共存しつつ同一のプラットフォーム上で動作するコントロール装置と、を備えるコントロールシステムにおいて、
     前記プログラム配布装置は、
     前記制御プログラム及び前記情報プログラムを管理するプログラム管理部と、
     前記制御プログラム及び前記情報プログラムのうち少なくとも一方のプログラムが前記コントロール装置における実行の際に用いるパラメータを表す実行管理情報を生成する実行管理情報生成部と、
     要求に応じて前記少なくとも一方のプログラムを提供する際に併せて前記少なくとも一方のプログラムに対応する前記実行管理情報を提供するプログラム配布部と、
     を備え、
     前記コントロール装置は、
     前記プログラム配布装置から提供された前記実行管理情報を保存する実行管理情報テーブルと、
     前記少なくとも一方のプログラムを実行する際に、前記実行管理情報テーブルに保存された前記実行管理情報に基づいて前記少なくとも一方のプログラムの実行を制御するタスク管理部と、
     を備えることを特徴とするコントロールシステム。
  2.  前記コントロール装置は、
     前記制御プログラム及び前記情報プログラムの各タスクが使用する所定の記憶容量の記憶領域を有するメモリを備え、
     前記実行管理情報生成部は、
     前記実行管理情報として少なくとも、前記制御プログラム及び前記情報プログラムの各タスクの優先度、及び、前記制御プログラム及び前記情報プログラムの各タスクが使用可能な前記メモリ内の上限記憶容量の少なくとも一方のパラメータを生成することを特徴とする請求項1に記載のコントロールシステム。
  3.  前記同一のプラットフォームはLinux(登録商標)であり、
     前記タスク管理部は、
     前記優先度をchrtコマンドを用いて設定する一方、前記制御プログラム及び前記情報プログラムの各タスクが使用可能な前記メモリの上限記憶容量をcgroups機能を用いて設定することを特徴とする請求項2に記載のコントロールシステム。
  4.  制御装置専用言語で記述され実行の前にコンパイル処理を必要としない制御プログラム、及び、汎用プログラミング言語を用いて記述され実行の前にコンパイル処理を必要とする情報プログラムを管理するプログラム配布装置と、前記プログラム配布装置から提供される前記制御プログラム及び前記情報プログラムが共存しつつ同一のプラットフォーム上で動作するコントロール装置と、を備えるコントロールシステムにおけるプログラム配布方法において、
     前記プログラム配布装置が、前記制御プログラム及び前記情報プログラムを管理するプログラム管理ステップと、
     前記プログラム配布装置が、前記制御プログラム及び前記情報プログラムのうち少なくとも一方のプログラムが前記コントロール装置における実行の際に用いるパラメータを表す実行管理情報を生成する実行管理情報生成ステップと、
     前記プログラム配布装置が、要求に応じて前記少なくとも一方のプログラムを提供する際に併せて前記少なくとも一方のプログラムに対応する前記実行管理情報を提供するプログラム配布ステップと、
     を実行し、
     前記コントロール装置が、前記プログラム配布装置から提供された前記実行管理情報を保存する実行管理情報保存ステップと、
     前記コントロール装置が、前記少なくとも一方のプログラムを実行する際に、前記実行管理情報テーブルに保存された前記実行管理情報に基づいて前記少なくとも一方のプログラムの実行を制御するタスク管理ステップと、
     を実行することを特徴とするコントロールシステムにおけるプログラム配布方法。
PCT/JP2017/021224 2016-11-24 2017-06-07 コントロールシステム及びコントロール方法 WO2018096717A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-228234 2016-11-24
JP2016228234A JP7085305B2 (ja) 2016-11-24 2016-11-24 コントロールシステム及びコントロール方法

Publications (1)

Publication Number Publication Date
WO2018096717A1 true WO2018096717A1 (ja) 2018-05-31

Family

ID=62195448

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/021224 WO2018096717A1 (ja) 2016-11-24 2017-06-07 コントロールシステム及びコントロール方法

Country Status (2)

Country Link
JP (1) JP7085305B2 (ja)
WO (1) WO2018096717A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020075351A1 (ja) * 2018-10-12 2020-04-16 株式会社日立産機システム コントロール装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7141939B2 (ja) * 2018-12-13 2022-09-26 株式会社日立産機システム 産業用コントローラ
JP2024018790A (ja) * 2022-07-29 2024-02-08 株式会社日立産機システム コントロールシステム及び方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280299A (ja) * 2003-03-13 2004-10-07 Omron Corp コントローラ、開発装置及びシステム
JP2006178818A (ja) * 2004-12-24 2006-07-06 Yaskawa Electric Corp モーションコントローラとエンジニアリングツール並びにc言語実行システム
WO2010050335A1 (ja) * 2008-10-27 2010-05-06 株式会社 日立製作所 リソース管理方法と組込み装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6626240B2 (ja) 2014-03-13 2019-12-25 オムロン株式会社 コントローラ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280299A (ja) * 2003-03-13 2004-10-07 Omron Corp コントローラ、開発装置及びシステム
JP2006178818A (ja) * 2004-12-24 2006-07-06 Yaskawa Electric Corp モーションコントローラとエンジニアリングツール並びにc言語実行システム
WO2010050335A1 (ja) * 2008-10-27 2010-05-06 株式会社 日立製作所 リソース管理方法と組込み装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020075351A1 (ja) * 2018-10-12 2020-04-16 株式会社日立産機システム コントロール装置
JP2020061104A (ja) * 2018-10-12 2020-04-16 株式会社日立産機システム コントロール装置
JP7141905B2 (ja) 2018-10-12 2022-09-26 株式会社日立産機システム コントロール装置及びコントロール方法

Also Published As

Publication number Publication date
JP7085305B2 (ja) 2022-06-16
JP2018084994A (ja) 2018-05-31

Similar Documents

Publication Publication Date Title
US11194739B2 (en) Control apparatus
WO2018096717A1 (ja) コントロールシステム及びコントロール方法
EP3647942B1 (en) Engineering apparatus, control method of engineering apparatus, and program
JP6874706B2 (ja) アプリケーションプログラムを生成する方法、装置、プログラム
CN112470088B (zh) 控制装置
US20210064275A1 (en) Control System, Development Assistance Device, and Development Assistance Program
JP2004280299A (ja) コントローラ、開発装置及びシステム
US11402815B2 (en) Control apparatus
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP2019057212A (ja) プログラマブルコントローラ及びコントロールシステム
US10768597B2 (en) Method and controller for flexible process control
CN117472509A (zh) 基于Kubernetes集群设备的非容器化应用管理方法
JP6596073B2 (ja) 非オブジェクト指向言語プログラム連携装置、方法およびプログラム
CN116846943A (zh) 可编程人机界面与控制器间远程过程调用方法及系统
CN118012846A (zh) 数据迁移方法、装置、终端设备及计算机可读存储介质
CN111209107A (zh) 多集群操作方法
CN113848815A (zh) 多通道数控系统plc程序共用的方法及系统
Valkonen Deploying a modular application into a running automation system
JP2018180592A (ja) 監視システム、デバイス及びエンジニアリングツール
JP2003271207A (ja) プログラムの実行方式及びプログラム開発支援装置
JP2010009325A (ja) 生産システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17874510

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17874510

Country of ref document: EP

Kind code of ref document: A1