JP2021005205A - Computer system and method for generating program for controlling system - Google Patents

Computer system and method for generating program for controlling system Download PDF

Info

Publication number
JP2021005205A
JP2021005205A JP2019118365A JP2019118365A JP2021005205A JP 2021005205 A JP2021005205 A JP 2021005205A JP 2019118365 A JP2019118365 A JP 2019118365A JP 2019118365 A JP2019118365 A JP 2019118365A JP 2021005205 A JP2021005205 A JP 2021005205A
Authority
JP
Japan
Prior art keywords
program
management information
flow
processor
component
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.)
Pending
Application number
JP2019118365A
Other languages
Japanese (ja)
Inventor
和規 原
Kazuki Hara
和規 原
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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Priority to JP2019118365A priority Critical patent/JP2021005205A/en
Publication of JP2021005205A publication Critical patent/JP2021005205A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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]

Landscapes

  • General Factory Administration (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

To provide a computer system capable of securing design flexibility, and inexpensively and easily designing a program of a system whose specifications are frequently changed.SOLUTION: A computer system for generating a program for controlling a system can access a database which stores flow management information for managing base program structure and specification management information for managing specifications of a system executing the base program. Data of a concatenation flow in which a plurality of flows containing components are concatenated is stored in the flow management information as data representing a structure of one base program. When it receives new specifications, the computer system selects reference specifications from the specification management information, and generates a design pattern serving as a new program candidate by adjusting a component contained in a base program corresponding to the reference specifications on the basis of the flow management information.SELECTED DRAWING: Figure 1

Description

本発明は、製造業プラント、又はインフラサービス系プラント等のシステムを制御するためのプログラムの生成方法に関する。 The present invention relates to a method of generating a program for controlling a system such as a manufacturing plant or an infrastructure service plant.

様々な装置が協同して稼働するプラントでは、すべての装置の動作等を制御するためのプログラムにより管理される。前述のようなプログラムを生成する方法として特許文献1及び特許文献2に記載の技術が知られている。 In a plant where various devices operate in cooperation, it is managed by a program for controlling the operation of all the devices. The techniques described in Patent Document 1 and Patent Document 2 are known as methods for generating the above-mentioned programs.

特許文献1には、「プログラム作成装置は、作業ブロック定義部41と、工程フロー編集部42と、制御プログラム生成部43とを備える。工程フロー編集部42は、複数の作業ブロック情報を所望の順序で並べて得られる工程フローにおいて、処理対象作業ブロック情報よりも後続の設定対象ブロック情報の内部状態情報を、当該処理対象ブロック情報の事後条件を用いて設定する。制御プログラム生成部43は、工程フロー編集部43により内部状態情報が設定された複数の作業ブロック情報に基づいて制御プログラムを生成する。」ことが記載されている。 In Patent Document 1, "The program creation device includes a work block definition unit 41, a process flow editing unit 42, and a control program generation unit 43. The process flow editing unit 42 desires a plurality of work block information. In the process flow obtained by arranging them in order, the internal state information of the setting target block information following the processing target work block information is set by using the post-condition of the processing target block information. The control program generation unit 43 sets the process. A control program is generated based on a plurality of work block information for which internal state information is set by the flow editing unit 43. "

特許文献2には、「自動シーケンス制御の制御内容を一連の自動運転ごとにブロック化した複数の自動ブロックと各自動ブロックの動作順序とが記述されたマクロフローを作成するとともに、各自動ブロックにおける機械の自動制御のうち最低限実施される自動制御の内容が予め記述されたミクロフローのひな形を作成し、それらの電子ファイル21,22を記憶媒体4,6に保管しておく。自動制御仕様書の作成時には、ミクロフローのひな形の電子ファイル22を記憶媒体6から読み出し、必要な制御内容を書き加えてミクロフローを完成させる。そして、予め用意されたマクロフロー31にミクロフロー32を関連付けることによって自動制御仕様書30を完成させる。」ことが記載されている。 In Patent Document 2, "a macro flow is created in which a plurality of automatic blocks in which the control contents of automatic sequence control are blocked for each series of automatic operations and the operation order of each automatic block are described, and in each automatic block. A microflow template in which the contents of the minimum automatic control to be performed among the automatic controls of the machine are described in advance is created, and the electronic files 21 and 22 are stored in the storage media 4 and 6. At the time of creating the specification, the electronic file 22 of the microflow model is read from the storage medium 6, and the necessary control contents are added to complete the microflow. Then, the microflow 32 is added to the macroflow 31 prepared in advance. By associating, the automatic control specification 30 is completed. "

特開2011−238041号公報Japanese Unexamined Patent Publication No. 2011-238041 特開2012−48651号公報Japanese Unexamined Patent Publication No. 2012-48651

特許文献1には、後続のブロックの設定情報が、前段のブロックの内部状態情報と事後条件とを用いて設定されることが記載されている。前段ブロックの情報から後続のブロックの設定情報を設定するためのアルゴリズムを予め用意する必要がある。しかし、前述のアルゴリズムを生成するためには、開発者が、ベンダが提供する装置ドライバ及び制御プログラムに基づいて、各装置の仕様、並びに、装置間の依存関係及びメカニズムを把握する必要がある。したがって、このようなアルゴリズムを生成するためのコストが非常に大きい。 Patent Document 1 describes that the setting information of the subsequent block is set by using the internal state information of the block in the previous stage and the post-condition. It is necessary to prepare an algorithm for setting the setting information of the subsequent block from the information of the previous block in advance. However, in order to generate the above-mentioned algorithm, it is necessary for the developer to understand the specifications of each device and the dependency relationship and mechanism between the devices based on the device driver and control program provided by the vendor. Therefore, the cost of generating such an algorithm is very high.

特に、装置の入れ替えが頻繁に発生する場合、装置の入れ替えのたびにアルゴリズムを生成する必要がある。したがってコスト及び工数の点で現実的でない。 In particular, when the devices are frequently replaced, it is necessary to generate an algorithm for each device replacement. Therefore, it is not realistic in terms of cost and man-hours.

特許文献2では、プログラム開発の部品を予め用意する必要がある。しかし、システムの様々な仕様変更及び要求に対応するためには、設計の自由度を確保する必要がある。そのため、予め用意された部品を組み合わせてプログラムを作成する場合、設計の自由度が制限される。 In Patent Document 2, it is necessary to prepare parts for program development in advance. However, it is necessary to secure the degree of freedom in design in order to respond to various specification changes and requirements of the system. Therefore, when a program is created by combining parts prepared in advance, the degree of freedom in design is limited.

本発明は、設計の自由度を確保しつつ、頻繁にシステム仕様が変更されるシステムを制御するためのプログラムを低コストかつ容易に設計するためのシステム及び方法を提供することを目的とする。 An object of the present invention is to provide a system and a method for designing a program for controlling a system whose system specifications are frequently changed at low cost and easily while ensuring a degree of freedom in design.

本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、システムを制御するためのプログラムを生成する計算機システムであって、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、新規プログラムを生成するために使用するベースプログラムを管理するためのソースコード管理情報、前記ベースプログラムの構造を管理するためのフロー管理情報、及び前記ベースプログラムを実行するシステムの仕様書を管理するための仕様書管理情報を格納するデータベースにアクセス可能であって、前記フロー情報には、最小の処理単位であるコンポーネントを少なくとも一つ含む複数のフローを連結した連結フローのデータが一つの前記ベースプログラムの構造を表すデータとして格納され、前記プロセッサは、前記新規プログラムを生成するための新規仕様書を受け付けた場合、前記新規仕様書と前記仕様書管理情報に格納される前記仕様書との比較結果に基づいて、前記仕様書管理情報に格納される仕様書の中から参考仕様書を選択し、前記ソースコード管理情報及び前記フロー管理情報に基づいて、前記参考仕様書に対応する前記ベースプログラムに含まれる複数の前記コンポーネントを調整することによって前記新規プログラムの候補となる設計パターンを生成する。 A typical example of the invention disclosed in the present application is as follows. That is, a computer system that generates a program for controlling a system, comprising at least one computer having a processor, a memory connected to the processor, and a network interface connected to the processor, and generating a new program. Source code management information for managing the base program used for the operation, flow management information for managing the structure of the base program, and specification management for managing the specifications of the system that executes the base program. A database for storing information is accessible, and in the flow information, data of a concatenated flow in which a plurality of flows including at least one component, which is the smallest processing unit, are concatenated represents the structure of one base program. When the processor accepts a new specification for generating the new program, it is stored as data, and based on the comparison result between the new specification and the specification stored in the specification management information. A plurality of reference specifications are selected from the specifications stored in the specification management information, and a plurality of reference specifications are included in the base program corresponding to the reference specifications based on the source code management information and the flow management information. By adjusting the components, a design pattern that is a candidate for the new program is generated.

本発明によれば、設計の自由度を確保しつつ、頻繁にシステム仕様が変更されるシステムを制御するためのプログラムを低コストかつ容易に設計できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。 According to the present invention, it is possible to easily design a program for controlling a system whose system specifications are frequently changed at low cost while ensuring a degree of freedom in design. Issues, configurations and effects other than those mentioned above will be clarified by the description of the following examples.

実施例1に係る計算機システムの装置構成及びプログラム構成の一例を示す図である。It is a figure which shows an example of the apparatus structure and the program structure of the computer system which concerns on Example 1. FIG. 実施例1に係る制御システムプログラム及び装置制御プログラム間のコール及びレスポンスの一例を示す図である。It is a figure which shows an example of the call and response between the control system program and the device control program which concerns on Example 1. FIG. 実施例1に係る制御システムプログラムの構造を説明する図である。It is a figure explaining the structure of the control system program which concerns on Example 1. FIG. 実施例1に係るコンポーネントの構造の一例を示す図である。It is a figure which shows an example of the structure of the component which concerns on Example 1. FIG. 実施例1に係るデータ管理サーバが管理する情報の一例を示す図である。It is a figure which shows an example of the information managed by the data management server which concerns on Example 1. FIG. 実施例1に係るパラメータ管理情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the parameter management information which concerns on Example 1. FIG. 実施例1に係るコード管理情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the code management information which concerns on Example 1. FIG. 実施例1に係る仕様書管理情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the specification management information which concerns on Example 1. FIG. 実施例1に係る制約条件管理のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the constraint condition management which concerns on Example 1. FIG. 実施例1に係るフロー管理情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the flow management information which concerns on Example 1. FIG. 実施例1に係るフロー管理情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the flow management information which concerns on Example 1. FIG. 実施例1に係るフロー管理情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the flow management information which concerns on Example 1. FIG. 実施例1に係るフロー管理情報により定義される連結フローの構造の一例を示す図である。It is a figure which shows an example of the structure of the connected flow defined by the flow management information which concerns on Example 1. FIG. 実施例1に係る制御システムプログラム設計装置が実行する処理を説明するフローチャートである。It is a flowchart explaining the process executed by the control system program design apparatus which concerns on Example 1. FIG. 実施例1に係る制御システムプログラム設計装置が提示する画面の一例を示す図である。It is a figure which shows an example of the screen which the control system program design apparatus which concerns on Example 1 presents. 実施例1に係る制御システムプログラム設計装置が提示する連結フローの一例を示す図である。It is a figure which shows an example of the connection flow which the control system program design apparatus which concerns on Example 1 presents. 実施例1に係る制御システムプログラム設計装置が提示する連結フローの一例を示す図である。It is a figure which shows an example of the connection flow which the control system program design apparatus which concerns on Example 1 presents. 実施例1に係る制御システムプログラム設計装置が提示する連結フローの一例を示す図である。It is a figure which shows an example of the connection flow which the control system program design apparatus which concerns on Example 1 presents.

以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。 Hereinafter, examples of the present invention will be described with reference to the drawings. However, the present invention is not construed as being limited to the contents of the examples shown below. It is easily understood by those skilled in the art that a specific configuration thereof can be changed without departing from the idea or purpose of the present invention.

以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。 In the configurations of the invention described below, the same or similar configurations or functions are designated by the same reference numerals, and duplicate description will be omitted.

本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。 The notations such as "first", "second", and "third" in the present specification and the like are attached to identify the components, and do not necessarily limit the number or order.

図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。 The position, size, shape, range, etc. of each configuration shown in the drawings and the like may not represent the actual position, size, shape, range, etc., in order to facilitate understanding of the invention. Therefore, the present invention is not limited to the position, size, shape, range, etc. disclosed in the drawings and the like.

図1は、実施例1に係る計算機システムの装置構成及びプログラム構成の一例を示す図である。 FIG. 1 is a diagram showing an example of a device configuration and a program configuration of the computer system according to the first embodiment.

計算機システムは、制御システムプログラム設計装置100及びプラント10から構成される。 The computer system is composed of a control system program design device 100 and a plant 10.

制御システムプログラム設計装置100は、制御システム10と直接又はネットワークを介して接続される。ネットワークは、例えば、WAN(Wide Area Network)及びLAN(Local Area Network)等である。ネットワークの接続方式は無線及び有線のいずれでもよい。 The control system program design device 100 is connected to the control system 10 directly or via a network. The network is, for example, WAN (Wide Area Network) and LAN (Local Area Network). The network connection method may be either wireless or wired.

図1では、制御システムプログラム設計装置100は、一つのプラント10と接続しているが、二つ以上のプラント10と接続してもよい。 In FIG. 1, the control system program design device 100 is connected to one plant 10, but may be connected to two or more plants 10.

プラント10は、データ管理サーバ103、制御システムサーバ104、ゲートウェイ105、記憶装置106、複数の制御装置107、及び複数の記憶装置108を含む。 The plant 10 includes a data management server 103, a control system server 104, a gateway 105, a storage device 106, a plurality of control devices 107, and a plurality of storage devices 108.

データ管理サーバ103及び制御システムサーバ104はネットワーク110を介して互いに接続され、ゲートウェイ105及び複数の制御装置107はネットワーク111を介して互いに接続される。制御システムサーバ104及びゲートウェイ105は直接又はネットワークを介して互いに接続され、制御システムサーバ104及び記憶装置106は直接又はネットワークを介して互いに接続される。制御装置107及び記憶装置108は直接又はネットワークを介して互いに接続される。 The data management server 103 and the control system server 104 are connected to each other via the network 110, and the gateway 105 and the plurality of control devices 107 are connected to each other via the network 111. The control system server 104 and the gateway 105 are connected to each other directly or via a network, and the control system server 104 and the storage device 106 are connected to each other directly or via a network. The control device 107 and the storage device 108 are connected to each other directly or via a network.

サーバ間、サーバ及び装置間、及び装置間では、ソケット通信にてデータ及びメッセージの送受信が行われる。 Data and messages are transmitted and received by socket communication between servers, between servers and devices, and between devices.

データ管理サーバ103は、図示しないプロセッサ、メモリ、ネットワークインタフェース、及び記憶装置を備え、各種データを管理する。データ管理サーバ103が管理するデータの詳細は図3を用いて説明する。なお、データ管理サーバ103の代わりに、ネットワークアタッチドストレージ(NAS)を設けてもよい。データの保存及び共有に機能限定してシステムの価格を廉価にしたい場合には、NASを採用すればよい。 The data management server 103 includes a processor, a memory, a network interface, and a storage device (not shown), and manages various types of data. Details of the data managed by the data management server 103 will be described with reference to FIG. A network attached storage (NAS) may be provided instead of the data management server 103. If you want to reduce the price of the system by limiting the functions to data storage and sharing, NAS may be adopted.

制御装置107は、記憶装置108に格納される装置制御プログラム150に基づいて、プラント10内で稼働するロボット等の装置を制御する。記憶装置108には、少なくとも一つの装置を制御するための装置制御プログラム150が格納される。一つ装置制御プログラム150には、少なくとも一つ以上の制御APIを実現するコードが含まれる。 The control device 107 controls a device such as a robot operating in the plant 10 based on the device control program 150 stored in the storage device 108. The storage device 108 stores a device control program 150 for controlling at least one device. One device control program 150 includes code that implements at least one or more control APIs.

ゲートウェイ105は、図示しないプロセッサ、メモリ、及びネットワークインタフェースを備え、制御システムサーバ104及び制御装置107の間の通信を制御する。 The gateway 105 includes a processor, memory, and network interface (not shown) to control communication between the control system server 104 and the control device 107.

制御システムサーバ104は、図示しないプロセッサ、メモリ、及びネットワークインタフェースを備え、記憶装置106に格納される制御システムプログラム140に基づいて、プラント10内の業務、すなわち、制御装置107を制御する。記憶装置106には、少なくとも一つの制御システムプログラム140が格納される。一つの制御システムプログラム140には、少なくとも一つのサブルーチンを実行するためのコードが含まれる。なお、プラント10には複数の制御システムサーバ104が含まれてもよい。 The control system server 104 has a processor, a memory, and a network interface (not shown), and controls the business in the plant 10, that is, the control device 107, based on the control system program 140 stored in the storage device 106. At least one control system program 140 is stored in the storage device 106. One control system program 140 contains code for executing at least one subroutine. The plant 10 may include a plurality of control system servers 104.

制御システムサーバ104は、メッセージを受信した場合、メッセージの種別及び内容に基づいて、起動する制御システムプログラム140を選択し、選択された制御システムプログラム140を実行する。制御システムサーバ104は、プログラムの実行結果をデータ管理サーバ103に送信する。制御システムサーバ104は、メッセージの順番及び分岐の制御、データ形式の変換、データのアクセス等も行う。 When the control system server 104 receives the message, the control system server 104 selects the control system program 140 to be started based on the type and content of the message, and executes the selected control system program 140. The control system server 104 transmits the execution result of the program to the data management server 103. The control system server 104 also controls the order and branching of messages, converts the data format, accesses data, and the like.

制御システムプログラム設計装置100は、図示しないプロセッサ、メモリ、及びネットワークインタフェースを備え、制御システムプログラム140の設計を行う。なお、複数の計算機を用いて、制御システムプログラム設計装置100と同様の機能を実現するシステムを構築してもよい。 The control system program design device 100 includes a processor, a memory, and a network interface (not shown), and designs the control system program 140. A system that realizes the same functions as the control system program design device 100 may be constructed by using a plurality of computers.

制御システムプログラム設計装置100は、ビューワ120及び設計支援モジュール121を実現するプログラムを実行する。 The control system program design device 100 executes a program that realizes the viewer 120 and the design support module 121.

ビューワ120は、制御システムプログラム設計装置100の処理結果及びその他の情報を表示する。 The viewer 120 displays the processing result and other information of the control system program design device 100.

設計支援モジュール121は、制御システムプログラム140を設計する。マッチングモジュール130及び選択モジュール131を含む。 The design support module 121 designs the control system program 140. Includes matching module 130 and selection module 131.

マッチングモジュール130は、プラントにおける業務の内容(システム仕様)等に合致するように制御システムプログラム140の候補となる設計パターンを生成する。選択モジュール131はマッチングモジュール130によって生成された設計パターンの中から条件に合致する設計パターンを選択する。 The matching module 130 generates a design pattern that is a candidate for the control system program 140 so as to match the contents of work (system specifications) in the plant. The selection module 131 selects a design pattern that matches the conditions from the design patterns generated by the matching module 130.

図2は、実施例1に係る制御システムプログラム140及び装置制御プログラム150間のコール及びレスポンスの一例を示す図である。 FIG. 2 is a diagram showing an example of a call and a response between the control system program 140 and the device control program 150 according to the first embodiment.

制御システムプログラム140は、少なくとも一つのサブルーチン200から構成される。サブルーチン200は、少なくとも一つのサブタスク210から構成される。装置制御プログラム150は、少なくとも一つのAPI220から構成される。 The control system program 140 is composed of at least one subroutine 200. The subroutine 200 is composed of at least one subtask 210. The device control program 150 is composed of at least one API 220.

サブタスク210は、制御対象の装置に対応する装置制御プログラム150のAPI220を呼び出し、装置の制御を行う。 The subtask 210 calls the API 220 of the device control program 150 corresponding to the device to be controlled and controls the device.

図2に示す制御システムプログラム140は、二つのサブルーチン200−1、200−2から構成される。サブルーチン200−1は、サブタスク210−1、210−2から構成され、サブルーチン200−2はサブタスク210−3から構成される。装置制御プログラム150−1は、API A−1(220−1)、API A−2(220−2)から構成され、装置制御プログラム150−2は、API B−1(220−3)、API B−2(220−4)から構成され、装置制御プログラム150−3は、API C−1(220−5)、API C−2(220−6)から構成される。 The control system program 140 shown in FIG. 2 is composed of two subroutines 200-1 and 200-2. Subroutine 200-1 is composed of subtasks 210-1 and 210-2, and subroutine 200-2 is composed of subtasks 210-3. The device control program 150-1 is composed of API A-1 (220-1) and API A-2 (220-2), and the device control program 150-2 is composed of API B-1 (220-3) and API. It is composed of B-2 (220-4), and the device control program 150-3 is composed of API C-1 (220-5) and API C-2 (220-6).

サブタスク210−1は、API A−1(220−2)を呼び出し、サブタスク210−2は、API B−2(220−2)を呼び出し、サブタスク210−1は、API C−1(220−5)を呼び出す。 Subtask 210-1 calls API A-1 (220-2), subtask 210-2 calls API B-2 (220-2), and subtask 210-1 calls API C-1 (220-5). ) Is called.

制御システムプログラム140は、最小単位の処理をコンポーネントとする構造のデータとして扱うことができる。ここで、制御システムプログラム140の構造について説明する。 The control system program 140 can handle the data of the structure whose component is the processing of the smallest unit. Here, the structure of the control system program 140 will be described.

図3は、実施例1に係る制御システムプログラム140の構造を説明する図である。図4は、実施例1に係るコンポーネント300の構造の一例を示す図である。 FIG. 3 is a diagram illustrating the structure of the control system program 140 according to the first embodiment. FIG. 4 is a diagram showing an example of the structure of the component 300 according to the first embodiment.

制御システムプログラム140は、複数のコンポーネント300から構成される。図3に示す制御システムプログラム140は、七つのコンポーネント300−1、300−2、300−3、300−4、300−5、300−6、300−7から構成される。 The control system program 140 is composed of a plurality of components 300. The control system program 140 shown in FIG. 3 is composed of seven components 300-1, 300-2, 300-3, 300-4, 300-5, 300-6, and 300-7.

コンポーネント300は、図4に示すように、関数及びAPI等を表すコード及びパラメータの集合であり、最小単位の処理(作業及びタスク等)を表す。 As shown in FIG. 4, the component 300 is a set of codes and parameters representing functions, APIs, etc., and represents the smallest unit of processing (work, tasks, etc.).

一つの機能を実現するコンポーネント300の集合をフロー310として扱う。フロー310には少なくとも一つのコンポーネント300が含まれる。一つのフロー310が一つのトランザクションに対応する。ここで、トランザクションは、システム内で実行される、不可分な一連の処理の単位を表し、相互依存のある複数の処理が全て完了するか、全てキャンセルされる単位である。 A set of components 300 that realize one function is treated as a flow 310. The flow 310 includes at least one component 300. One flow 310 corresponds to one transaction. Here, a transaction represents a unit of an indivisible series of processes executed in a system, and is a unit in which a plurality of interdependent processes are all completed or all canceled.

図3に示す制御システムプログラム140は、三つのフロー310−1、310−2、310−3を含む。 The control system program 140 shown in FIG. 3 includes three flows 310-1, 310-2, and 310-3.

複数のフロー310を連結することによって構成される連結フロー320は、制御システムプログラム140そのものを表す。連結フロー320は、複数の機能を組み合わせることによって実現されるサービス等に相当する。 The connection flow 320, which is formed by connecting a plurality of flows 310, represents the control system program 140 itself. The concatenated flow 320 corresponds to a service or the like realized by combining a plurality of functions.

図5は、実施例1に係るデータ管理サーバ103が管理する情報の一例を示す図である。 FIG. 5 is a diagram showing an example of information managed by the data management server 103 according to the first embodiment.

データ管理サーバ103は、パラメータ管理情報500、コード管理情報501、仕様書管理情報502、制約条件管理503、ソースコード管理情報504、及びフロー管理情報505を管理する。 The data management server 103 manages parameter management information 500, code management information 501, specification management information 502, constraint condition management 503, source code management information 504, and flow management information 505.

パラメータ管理情報500は、パラメータの調整方法を管理するための情報である。パラメータ管理情報500のデータ構造の詳細は図6を用いて説明する。 The parameter management information 500 is information for managing the parameter adjustment method. The details of the data structure of the parameter management information 500 will be described with reference to FIG.

コード管理情報501は、コードの調整方法を管理するための情報である。コード管理情報501のデータ構造の詳細は図7を用いて説明する。 The code management information 501 is information for managing the code adjustment method. The details of the data structure of the code management information 501 will be described with reference to FIG.

仕様書管理情報502は、プラント10の制御の要件等、システム仕様を定義した仕様書を管理するための情報である。仕様書管理情報502のデータ構造の詳細は図8を用いて説明する。 The specification management information 502 is information for managing the specifications that define the system specifications, such as the requirements for controlling the plant 10. The details of the data structure of the specification management information 502 will be described with reference to FIG.

制約条件管理503は、制御システムプログラム140が満たす条件等を管理するための情報である。制約条件管理503のデータ構造の詳細は図9を用いて説明する。 The constraint condition management 503 is information for managing the conditions and the like satisfied by the control system program 140. The details of the data structure of the constraint condition management 503 will be described with reference to FIG.

ソースコード管理情報504は、制御システムプログラム140の実体であるコード群(ソースコード)を管理するための情報である。なお、ソースコードは連結フロー320の識別情報と紐付けて管理される。 The source code management information 504 is information for managing a code group (source code) which is an entity of the control system program 140. The source code is managed in association with the identification information of the connection flow 320.

フロー管理情報505は、制御システムプログラム140の構造、すなわち、連結フロー320を管理するための情報である。フロー管理情報505のデータ構造の詳細は図10、図11A、及び図11Bを用いて説明する。 The flow management information 505 is information for managing the structure of the control system program 140, that is, the connected flow 320. Details of the data structure of the flow management information 505 will be described with reference to FIGS. 10, 11A, and 11B.

図6は、実施例1に係るパラメータ管理情報500のデータ構造の一例を示す図である。 FIG. 6 is a diagram showing an example of a data structure of the parameter management information 500 according to the first embodiment.

パラメータ管理情報500は、No601、分類ID602、分類603、名称604、及び設定値605から構成されるレコードを格納する。一つのパラメータに対して一つのレコードが存在する。なお、一つのパラメータの調整方法に対して一つのレコードを設定してもよい。 The parameter management information 500 stores a record composed of No601, classification ID 602, classification 603, name 604, and set value 605. There is one record for one parameter. In addition, one record may be set for one parameter adjustment method.

No601は、パラメータの識別番号を格納するフィールドである。分類ID602は、パラメータの分類に関する識別情報を格納するフィールドである。分類603は、パラメータの分類を格納するフィールドである。名称604は、パラメータの名称を格納するフィールドである。設定値605は、レコードに対応するパラメータに設定する値を格納するフィールドである。 No. 601 is a field for storing the identification number of the parameter. The classification ID 602 is a field for storing identification information regarding the classification of parameters. Classification 603 is a field that stores the classification of parameters. The name 604 is a field for storing the name of the parameter. The setting value 605 is a field for storing the value to be set in the parameter corresponding to the record.

本実施例では、過去の制御システムプログラム140の設計で行われたパラメータの調整結果がパラメータ管理情報500に格納されるものとする。なお、ユーザが予め設定してもよい。なお、パラメータ管理情報500に格納されるレコードが少ない場合、又は、ユーザが予め設定することができない場合、ユーザは、テスト環境にてプログラムの挙動テストを実行し、その結果をパラメータ管理情報500に登録すればよい。 In this embodiment, it is assumed that the parameter adjustment result performed in the design of the control system program 140 in the past is stored in the parameter management information 500. The user may set in advance. If the number of records stored in the parameter management information 500 is small, or if the user cannot set in advance, the user executes a behavior test of the program in the test environment, and the result is stored in the parameter management information 500. All you have to do is register.

図7は、実施例1に係るコード管理情報501のデータ構造の一例を示す図である。 FIG. 7 is a diagram showing an example of the data structure of the code management information 501 according to the first embodiment.

コード管理情報501は、No701、コンポーネントID702、処理種別703、及び設定コード704から構成されるレコードを格納する。一つのコードに対して一つのレコードが存在する。なお、一つのコードの調整方法に対して一つのレコードを設定してもよい。 The code management information 501 stores a record composed of No. 701, component ID 702, processing type 703, and setting code 704. There is one record for one code. In addition, one record may be set for one code adjustment method.

No701は、コードの識別番号を格納するフィールドである。コンポーネントID702は、コードを含むコンポーネントの識別情報を格納するフィールドである。処理種別703は、コードにより実現される処理の種別を格納するフィールドである。設定コード704は、設定されたコードに関する情報を格納するフィールドである。設定コード704には、コードそのものが格納されてもよいし、条件及びコードから構成される情報が格納されてもよい。 No. 701 is a field for storing the identification number of the code. The component ID 702 is a field for storing the identification information of the component including the code. The processing type 703 is a field for storing the type of processing realized by the code. The setting code 704 is a field for storing information about the set code. The setting code 704 may store the code itself, or may store information composed of conditions and codes.

本実施例では、過去の制御システムプログラム140の設計で行われたコードの調整結果がコード管理情報501に格納されるものとする。なお、ユーザが予め設定してもよい。なお、コード管理情報501に格納されるレコードが少ない場合、又は、ユーザが予め設定することができない場合、ユーザは、テスト環境にてプログラムの挙動テストを実行し、その結果をコード管理情報501に登録すればよい。 In this embodiment, it is assumed that the code adjustment result performed in the design of the control system program 140 in the past is stored in the code management information 501. The user may set in advance. If the number of records stored in the code management information 501 is small, or if the user cannot set in advance, the user executes a program behavior test in the test environment and converts the result into the code management information 501. All you have to do is register.

図8は、実施例1に係る仕様書管理情報502のデータ構造の一例を示す図である。 FIG. 8 is a diagram showing an example of the data structure of the specification management information 502 according to the first embodiment.

仕様書管理情報502は、No801、連結フローID802、項目ID803、項目分類804、名称805、設定値806、及び単位807から構成されるレコードを格納する。一つの仕様書に対してレコードが存在する。また、一つのレコードには項目の数だけ行が含まれる。 The specification management information 502 stores a record composed of No801, connection flow ID802, item ID803, item classification 804, name 805, set value 806, and unit 807. There is a record for one specification. Also, one record contains as many rows as there are items.

No801は、仕様書の識別番号を格納するフィールドである。連結フローID802は、仕様書に対応するベストスコアの連結フロー320の識別情報を格納するフィールドである。項目ID803は、項目の識別情報を格納するフィールドである。項目分類804は、項目の分類を格納するフィールドである。名称805は、項目の名称を格納するフィールドである。設定値806は、項目に対して設定する値の定義情報を格納するフィールドである。単位807は、設定値806に対応する値の単位を格納するフィールドである。 No. 801 is a field for storing the identification number of the specification. The concatenation flow ID 802 is a field for storing the identification information of the concatenation flow 320 having the best score corresponding to the specification. Item ID 803 is a field for storing item identification information. Item classification 804 is a field for storing the item classification. The name 805 is a field for storing the name of the item. The setting value 806 is a field for storing definition information of the value to be set for the item. The unit 807 is a field for storing the unit of the value corresponding to the set value 806.

図9は、実施例1に係る制約条件管理503のデータ構造の一例を示す図である。 FIG. 9 is a diagram showing an example of the data structure of the constraint condition management 503 according to the first embodiment.

制約条件管理503は、No901、条件分類902、項目名称903、優先度904、及び内容905から構成されるレコードを格納する。一つの制約条件に対して一つのレコードが存在する。 The constraint condition management 503 stores a record composed of No. 901, condition classification 902, item name 903, priority 904, and content 905. There is one record for one constraint.

No901は、制約条件の識別番号を格納するフィールドである。条件分類902は、制約条件の分類を格納するフィールドである。項目名称903は、制約の対象(項目)の名称を格納するフィールドである。優先度904は、制約条件の優先度を格納するフィールドである。内容905は、制約条件の具体的な内容を格納するフィールドである。 No. 901 is a field for storing the identification number of the constraint condition. The condition classification 902 is a field for storing the classification of the constraint condition. The item name 903 is a field for storing the name of the object (item) of the constraint. The priority 904 is a field for storing the priority of the constraint condition. The content 905 is a field for storing the specific content of the constraint condition.

本実施例では、「単体制約」の制約条件、「横断制約」の制約条件、及び「システム制約」の制約条件の三種類の制約条件が制約条件管理503に設定される。 In this embodiment, three types of constraints, a "single constraint" constraint, a "crossing constraint" constraint, and a "system constraint" constraint, are set in the constraint management 503.

「単体制約」の制約条件は、プラント10で稼働する装置に関する制約条件である。「単体制約」の制約条件は、装置の仕様及び動作条件等に基づいて生成される。 The constraint condition of "single constraint" is a constraint condition relating to the apparatus operating in the plant 10. The constraint condition of "single constraint" is generated based on the specifications and operating conditions of the device.

「横断制約」の制約条件は、プラント10で稼働する複数の装置間のやりとりに関する制約条件である。「横断制約」の制約条件は、装置間の依存関係及びインタフェースの仕様の差異等に基づいて生成される。 The constraint condition of the "crossing constraint" is a constraint condition relating to the exchange between a plurality of devices operating in the plant 10. The constraint condition of "crossing constraint" is generated based on the dependency between devices and the difference in interface specifications.

「システム制約」の制約条件は、プラント10に関する制約条件である。「システム制約」の制約条件は、プラント10を運営する会社の休日に伴う停止、プラント10の更新及びテスト運用等、装置の動作とは異なる観点のユーザ要求に基づいて生成される。 The constraint condition of "system constraint" is a constraint condition related to the plant 10. The constraint condition of "system constraint" is generated based on a user request from a viewpoint different from the operation of the device, such as a stoppage due to a holiday of the company operating the plant 10, an update of the plant 10, and a test operation.

同一種類の制約条件には優先度が設定される。優先度に基づいて制約条件を適用することによって、プログラムの設計パターン数の絞り込みの強度を調節し、また、より好ましいプログラムを出力するように誘導できる。 Priority is set for the same type of constraint. By applying the constraint condition based on the priority, the strength of narrowing down the number of design patterns of the program can be adjusted, and a more preferable program can be output.

なお、製造業、並びに、電力、ガス、及び水道等のインフラサービス等のプラント10における業務の内容に応じて、制約条件の内容及び数を調整することができる。 It should be noted that the content and number of constraints can be adjusted according to the content of operations in the manufacturing industry and the plant 10 such as infrastructure services such as electric power, gas, and water supply.

図10、図11A及び図11Bは、実施例1に係るフロー管理情報505のデータ構造の一例を示す図である。図12は、実施例1に係るフロー管理情報505により定義される連結フロー320の構造の一例を示す図である。 10, 11A and 11B are diagrams showing an example of the data structure of the flow management information 505 according to the first embodiment. FIG. 12 is a diagram showing an example of the structure of the connected flow 320 defined by the flow management information 505 according to the first embodiment.

フロー管理情報505は、連結フロー構造情報1000及びフロー/コンポーネント構造情報1100を含む。 The flow management information 505 includes the concatenated flow structure information 1000 and the flow / component structure information 1100.

連結フロー構造情報1000は、連結フローID1001、開始コンポーネントID1002、終了コンポーネントID1003、及び連結フロー機能1004から構成されるレコードを格納する。一つの連結フロー320に対して一つのレコードが存在する。 The concatenated flow structure information 1000 stores a record composed of a concatenated flow ID 1001, a start component ID 1002, an end component ID 1003, and a concatenated flow function 1004. There is one record for one concatenated flow 320.

連結フローID1001は、連結フロー320の識別情報を格納するフィールドである。開始コンポーネントID1002は、連結フロー320の始点となるコンポーネント300の識別情報を格納するフィールドである。終了コンポーネントID1003は、連結フロー320の終点となるコンポーネント300の識別情報を格納するフィールドである。連結フロー機能1004は、連結フロー320により実現される機能に関する情報を格納するフィールドである。 The concatenation flow ID 1001 is a field for storing the identification information of the concatenation flow 320. The start component ID 1002 is a field that stores the identification information of the component 300 that is the starting point of the connection flow 320. The end component ID 1003 is a field that stores the identification information of the component 300 that is the end point of the connection flow 320. The concatenated flow function 1004 is a field for storing information about the function realized by the concatenated flow 320.

フロー/コンポーネント構造情報1100は、フローID1101、コンポーネントID1102、前コンポーネントID1103、後コンポーネントID1104、遷移条件1105、及びフロー機能1106から構成されるレコードを格納する。一つのフロー310に対して一つのレコードが存在する。また、一つのレコードには、フロー310を構成するコンポーネント300の数だけ行が含まれる。 The flow / component structure information 1100 stores a record composed of a flow ID 1101, a component ID 1102, a front component ID 1103, a rear component ID 1104, a transition condition 1105, and a flow function 1106. There is one record for one flow 310. In addition, one record contains as many rows as the number of components 300 constituting the flow 310.

フローID1101は、フロー310の識別情報を格納するフィールドである。コンポーネントID1102は、フロー310を構成するコンポーネント300の識別情報を格納するフィールドである。 The flow ID 1101 is a field for storing the identification information of the flow 310. The component ID 1102 is a field that stores identification information of the component 300 that constitutes the flow 310.

前コンポーネントID1103は、コンポーネントID1102に対応するコンポーネント300の前に接続されるコンポーネント300の識別情報を格納するフィールドである。後コンポーネントID1104は、コンポーネントID1102に対応するコンポーネント300の後に接続されるコンポーネント300の識別情報を格納するフィールドである。 The front component ID 1103 is a field for storing the identification information of the component 300 connected before the component 300 corresponding to the component ID 1102. The rear component ID 1104 is a field for storing the identification information of the component 300 connected after the component 300 corresponding to the component ID 1102.

遷移条件1105は、コンポーネント300間の遷移に関する情報を格納するフィールド群であり、ID1111、関連ID1112、及び条件1113を含む。 The transition condition 1105 is a group of fields that stores information about the transition between the components 300, and includes an ID 1111, a related ID 1112, and a condition 1113.

ID1111は、遷移元のコンポーネント300、すなわち、コンポーネントID1102に対応するコンポーネント300の識別情報を格納するフィールドである。関連ID1112は、遷移先のコンポーネント300、すなわち、後コンポーネントID1104に対応するコンポーネント300の識別情報を格納するフィールドである。条件1113は、コンポーネント300間の遷移の条件及び処理に関する情報を格納するフィールドである。 ID 1111 is a field for storing the identification information of the transition source component 300, that is, the component 300 corresponding to the component ID 1102. The related ID 1112 is a field for storing the identification information of the transition destination component 300, that is, the component 300 corresponding to the post-component ID 1104. The condition 1113 is a field for storing information regarding the condition and processing of the transition between the components 300.

フロー機能1106は、フロー310により実現される機能に関する情報を格納するフィールドである。 The flow function 1106 is a field for storing information about the function realized by the flow 310.

連結フローID1001が「001C」である連結フロー320は、図12に示すような構造となる。実線のボックス内の数字はコンポーネント300の識別情報を表し、点線のボックス内の数字はフロー310の識別情報を表す。 The connection flow 320 having the connection flow ID 1001 of "001C" has a structure as shown in FIG. The numbers in the solid box represent the identification information of the component 300, and the numbers in the dotted box represent the identification information of the flow 310.

次に、制御システムプログラム設計装置100が実行する処理について説明する。 Next, the process executed by the control system program design device 100 will be described.

制御システムプログラム設計装置100は、過去の設計された制御システムプログラム140を設計資産として利用して、新たな制御システムプログラム140を設計する。本発明では、システム仕様の一部又は全部の変更に伴って行われるプログラム開発を想定し、また、以下の条件のいずれかを満たすことを前提とする。 The control system program design device 100 uses the previously designed control system program 140 as a design asset to design a new control system program 140. In the present invention, it is assumed that the program development is carried out with the change of a part or all of the system specifications, and it is assumed that any of the following conditions is satisfied.

(1)既存プログラムの対象コンポーネント300のパラメータの調整、又は、対象コンポーネント300及び対象コンポーネント300と依存関係を持つコンポーネント300のパラメータの調整によりシステム仕様を満足できる。 (1) The system specifications can be satisfied by adjusting the parameters of the target component 300 of the existing program or adjusting the parameters of the target component 300 and the component 300 having a dependency relationship with the target component 300.

(2)対象コンポーネント300のパラメータ及びコードの調整によりシステム仕様を満足できる。 (2) The system specifications can be satisfied by adjusting the parameters and codes of the target component 300.

(3)対象コンポーネント300のパラメータの及びコードの調整、並びに、対象コンポーネント300と依存関係を持つコンポーネント300のパラメータ及びコードの調整によりシステム仕様を満足できる。 (3) The system specifications can be satisfied by adjusting the parameters and codes of the target component 300 and adjusting the parameters and codes of the component 300 having a dependency relationship with the target component 300.

ここで、パラメータの調整は、任意の変数(パラメータ)に代入する数値又は文字列の変更等を含む。また、コードの調整とは、足し算処理から引き算処理への変更又は掛け算処理から割り算処理への変更等の簡易な変更だけではなく、複雑な計算処理、データ変換処理、装置を制御するコマンドの送信処理等の複雑な処理の変更も含む。 Here, the adjustment of the parameter includes a change of a numerical value or a character string assigned to an arbitrary variable (parameter). In addition, code adjustment is not only a simple change such as a change from addition processing to subtraction processing or a change from multiplication processing to division processing, but also complicated calculation processing, data conversion processing, and transmission of commands for controlling the device. Includes complicated processing changes such as processing.

コードの調整については、エンジニアが、システム仕様の変更内容を読んで、予めどのコードを調整すればよいか理解している場合をベストケースと考え、その場合は予めユーザがコードを調整し、制御システムプログラム設計装置100は、パラメータだけを調整する。一方、エンジニアが、どのコードを調整すればよいのか理解していないワーストケースもある。この場合は、高度なパラメータ及びコードの調整を実現する機械学習及び人工知能等のアルゴリズムを制御システムプログラム設計装置100に導入すればよい。制御システムプログラム設計装置100は、最適値、最適解、又は最適コードを探索して、システム仕様を満足するプログラムを設計する。 For a reconciliation of the code, engineers, read the changes in the system specification, considered if the best case that understand what may be adjusted to any code in advance, to adjust the pre-user code is case, control The system program design device 100 adjusts only the parameters. On the other hand, there are some worst cases where engineers don't understand which code to adjust. In this case, algorithms such as machine learning and artificial intelligence that realize advanced parameter and code adjustment may be introduced into the control system program design device 100. The control system program design device 100 searches for an optimum value, an optimum solution, or an optimum code, and designs a program that satisfies the system specifications.

以下の説明では、パラメータの調整及びコードの調整をコンポーネント300の調整と記載する。 In the following description, parameter adjustment and code adjustment will be referred to as component 300 adjustment.

コンポーネント300の調整には、自動的な処理のほかに、最小自乗法、尤度推定、パターンマッチング、機械学習、及び人工知能等を利用し、ユーザと協力して行う処理も含む。 In addition to the automatic processing, the adjustment of the component 300 includes processing performed in cooperation with the user by using the least squares method, likelihood estimation, pattern matching, machine learning, artificial intelligence, and the like.

図13は、実施例1に係る制御システムプログラム設計装置100が実行する処理を説明するフローチャートである。図14は、実施例1に係る制御システムプログラム設計装置100が提示する画面の一例を示す図である。図15A、図15B、及び図15Cは、実施例1に係る制御システムプログラム設計装置100が提示する連結フローの一例を示す図である。 FIG. 13 is a flowchart illustrating a process executed by the control system program design device 100 according to the first embodiment. FIG. 14 is a diagram showing an example of a screen presented by the control system program design device 100 according to the first embodiment. 15A, 15B, and 15C are diagrams showing an example of a connection flow presented by the control system program design device 100 according to the first embodiment.

制御システムプログラム設計装置100の設計支援モジュール121は、新規仕様書を含む制御システムプログラム140の生成要求を受け付けた場合、以下で説明する処理を開始する。 When the design support module 121 of the control system program design device 100 receives the generation request of the control system program 140 including the new specifications, the design support module 121 starts the process described below.

設計支援モジュール121は、新規仕様書と仕様書管理情報502に格納される仕様書とを比較し、比較結果に基づいて使用する仕様書を選択する(ステップS101)。例えば、以下のような処理が考えられる。 The design support module 121 compares the new specifications with the specifications stored in the specification management information 502, and selects the specifications to be used based on the comparison result (step S101). For example, the following processing can be considered.

設計支援モジュール121は、仕様書の各項目の設定を比較して、各項目の設定の類似度を算出し、すべての項目の類似度の平均値又は合計値を評価値として算出する。設計支援モジュール121は、評価値が最も大きい仕様書を選択する。設計支援モジュール121は、選択された仕様書に対応するレコードの連結フローID802に基づいてフロー管理情報505を参照し、選択された仕様書に対応する連結フロー320の情報を取得する。設計支援モジュール121は、取得した連結フロー320をベースプログラム(ベース連結フロー320)として設定する。 The design support module 121 compares the settings of each item in the specifications, calculates the similarity of the settings of each item, and calculates the average value or the total value of the similarity of all the items as the evaluation value. The design support module 121 selects the specification having the highest evaluation value. The design support module 121 refers to the flow management information 505 based on the connection flow ID 802 of the record corresponding to the selected specification, and acquires the information of the connection flow 320 corresponding to the selected specification. The design support module 121 sets the acquired connection flow 320 as a base program (base connection flow 320).

なお、前述した仕様書の選択方法は一例であってこれに限定されない。例えば、仕様書の種別、ユーザの種別等に基づいて仕様書を選択してもよい。 The above-mentioned specification selection method is an example and is not limited to this. For example, the specifications may be selected based on the type of specifications, the type of user, and the like.

設計支援モジュール121は、コンポーネントマッチング処理を実行する(ステップS102)。具体的には、以下のような処理が実行される。 The design support module 121 executes the component matching process (step S102). Specifically, the following processing is executed.

(S102−1)マッチングモジュール130は、対象コンポーネント300を選択する。対象コンポーネント300は、連結フロー320の流れに沿うように選択されるものとする。なお、対象コンポーネント300を第1層コンポーネント300とも記載する。 (S102-1) The matching module 130 selects the target component 300. It is assumed that the target component 300 is selected so as to follow the flow of the connection flow 320. The target component 300 is also described as the first layer component 300.

(S102−2)マッチングモジュール130は、パラメータ管理情報500及びコード管理情報501を参照して、新規仕様書に定義された装置の仕様又は動作条件等を満たすように、第1層コンポーネント300を調整する。なお、コンポーネント300の調整では、パラメータ及びコードの変更の少なくともいずれかが調整される。このとき、マッチングモジュール130は、第1層コンポーネント300から出力される値が出力目標値とどの程度近似しているかを評価する。 (S102-2) The matching module 130 adjusts the first layer component 300 so as to satisfy the device specifications or operating conditions defined in the new specifications with reference to the parameter management information 500 and the code management information 501. To do. In the adjustment of the component 300, at least one of the parameter and code changes is adjusted. At this time, the matching module 130 evaluates how close the value output from the first layer component 300 is to the output target value.

ここでは、マッチングモジュール130は、式(1)で定義される出力類似度を評価値として算出する。なお、出力目標値は新規仕様書に含まれるものとする。 Here, the matching module 130 calculates the output similarity defined by the equation (1) as an evaluation value. The output target value shall be included in the new specifications.

Figure 2021005205
Figure 2021005205

(S102−3)マッチングモジュール130は、第1層コンポーネント300に接続されるコンポーネント300を特定し、当該コンポーネント300について(S102−3)と同一の処理を実行する。特定されたコンポーネント300を第2層コンポーネント300と記載する。なお、第2層コンポーネント300だけではなく、第1層コンポーネントについて調整を行ってもよい。 (S102-3) The matching module 130 identifies the component 300 connected to the first layer component 300, and executes the same processing as in (S102-3) for the component 300. The identified component 300 is referred to as a second layer component 300. It should be noted that not only the second layer component 300 but also the first layer component may be adjusted.

(S102−4)マッチングモジュール130は、第2層コンポーネント300に接続されるコンポーネント300を特定し、当該コンポーネント300について(S102−3)と同一の処理を実行する。特定されたコンポーネント300を第3層コンポーネント300と記載する。なお、第3層コンポーネントだけではなく、第1層コンポーネント300及び第2層コンポーネント300について調整を行ってもよい。 (S102-4) The matching module 130 identifies the component 300 connected to the second layer component 300, and executes the same processing as in (S102-3) for the component 300. The identified component 300 is referred to as a third layer component 300. In addition to the third layer component, adjustments may be made to the first layer component 300 and the second layer component 300.

(S102−5)マッチングモジュール130は、第1層コンポーネント300、第2層コンポーネント300、及び第3層コンポーネント300の出力類似度の統計値(例えば、平均値又は合計値)が閾値より大きいか否かを判定する。出力類似度の統計値が閾値より大きい場合、マッチングモジュール130は、(S102−2)から(S102−4)により生成された連結フロー320を候補設計パターンとしてリストに登録する。 (S102-5) In the matching module 130, whether or not the statistical value (for example, average value or total value) of the output similarity of the first layer component 300, the second layer component 300, and the third layer component 300 is larger than the threshold value. Is determined. When the statistical value of the output similarity is larger than the threshold value, the matching module 130 registers the connection flow 320 generated by (S102-2) to (S102-4) in the list as a candidate design pattern.

(S102−6)マッチングモジュール130は、リストに登録された候補設計パターンの数が閾値以上になった場合、又は、(S102−2)から(S102−5)までのループ処理の実行回数が閾値以上となった場合、(S102−7)に進む。 (S102-6) In the matching module 130, when the number of candidate design patterns registered in the list exceeds the threshold value, or the number of times of loop processing from (S102-2) to (S102-5) is executed is the threshold value. When the above is obtained, the process proceeds to (S102-7).

(S102−7)マッチングモジュール130は、すべてのコンポーネント300に対して処理が完了したか否かを判定する。すべてのコンポーネント300に対して処理が完了していないと判定された場合、マッチングモジュール130は(S102−1)に戻る。すべてのコンポーネント300に対して処理が完了したと判定された場合、マッチングモジュール130はステップS102の処理を終了する。 (S102-7) The matching module 130 determines whether or not the processing is completed for all the components 300. If it is determined that the processing has not been completed for all the components 300, the matching module 130 returns to (S102-1). When it is determined that the processing is completed for all the components 300, the matching module 130 ends the processing in step S102.

一つのコンポーネント300の調整を行った結果、他のコンポーネント300へのインタフェースが整合しない、依存関係のあるコンポーネント300の挙動がシステム仕様を満たさない等の事象が発生する場合ある。そこで、マッチングモジュール130は、階層的にコンポーネント300の調整を行う。 As a result of adjusting one component 300, an event such as an inconsistent interface to another component 300 or the behavior of the dependent component 300 may not satisfy the system specifications may occur. Therefore, the matching module 130 adjusts the component 300 hierarchically.

また、階層的なコンポーネント300の調整を行うことによって、設計資産をなるべく多く流用して、調整に要する工数を削減する効果がある。また、システム仕様の適合が保証された設計資産をなるべく多く流用することによって、同様にシステム仕様に適合する可能性が高い、すなわち、信頼性が高いプログラムを設計できる。 Further, by adjusting the hierarchical component 300, it is possible to divert as much design assets as possible and reduce the man-hours required for the adjustment. In addition, by diverting as many design assets as possible that are guaranteed to conform to the system specifications, it is possible to design a program that is likely to conform to the system specifications, that is, has high reliability.

なお、評価するコンポーネント300の階層の数は任意に設定できる。以上がステップS102の処理の説明である。 The number of layers of the component 300 to be evaluated can be arbitrarily set. The above is the description of the process of step S102.

次に、設計支援モジュール121の選択モジュール131は、「単体制約」の制約条件に基づいて、設計パターンを絞り込む(ステップS103)。具体的には、選択モジュール131は、設計パターンに含まれる各コンポーネント300に対して「単体制約」の制約条件を満たすか否かを判定する。 Next, the selection module 131 of the design support module 121 narrows down the design pattern based on the constraint condition of the “single constraint” (step S103). Specifically, the selection module 131 determines whether or not the constraint condition of the "single constraint" is satisfied for each component 300 included in the design pattern.

次に、設計支援モジュール121は、フローマッチング処理を実行する(ステップS104)。具体的には、以下のような処理が実行される。 Next, the design support module 121 executes the flow matching process (step S104). Specifically, the following processing is executed.

(S104−1)マッチングモジュール130は設計パターンを選択する。 (S104-1) The matching module 130 selects a design pattern.

(S104−2)マッチングモジュール130は、設計パターンの中から対象フロー310を選択する。対象フロー310は、連結フロー320の流れに沿うように選択されるものとする。 (S104-2) The matching module 130 selects the target flow 310 from the design patterns. The target flow 310 shall be selected so as to follow the flow of the connected flow 320.

(S104−3)マッチングモジュール130は、対象フロー310に含まれるコンポーネントの出力類似度を算出し、さらに、各出力類似度の総和、平均値、分散、標準偏差などの統計値を算出する。これは、フロー310の出力を評価する値となる。また、マッチングモジュール130は、式(2)で定義されるフロー310の構造類似度を算出する。なお、フロー類似指標は式(3)で与えられ、コンポーネント類似指標は式(4)で与えられる。構造類似度は、ベースプログラムと類似するプログラムを設計するための指標として用いられる。 (S104-3) The matching module 130 calculates the output similarity of the components included in the target flow 310, and further calculates statistical values such as the sum, mean, variance, and standard deviation of each output similarity. This is a value for evaluating the output of the flow 310. Further, the matching module 130 calculates the structural similarity of the flow 310 defined by the equation (2). The flow similarity index is given by the equation (3), and the component similarity index is given by the equation (4). Structural similarity is used as an index for designing a program similar to the base program.

Figure 2021005205
Figure 2021005205

Figure 2021005205
Figure 2021005205

Figure 2021005205
Figure 2021005205

(S104−4)マッチングモジュール130は、出力類似度の統計値及び構造類似指標の各々が閾値より大きい場合、連結フロー320を候補設計パターンとしてリストに登録する。出力類似度の統計値及び構造類似指標の少なくともいずれかが閾値以下である場合、マッチングモジュール130は、フロー310に含まれるコンポーネント300を調整する。例えば、マッチングモジュール130は、出力類似度が最も低い順にコンポーネント300を調整する。マッチングモジュール130は、調整後のコンポーネント300を含むフロー310について(S104−3)の処理を実行する。 (S104-4) When each of the output similarity statistical value and the structural similarity index is larger than the threshold value, the matching module 130 registers the connection flow 320 as a candidate design pattern in the list. If at least one of the output similarity statistics and the structural similarity index is below the threshold, the matching module 130 adjusts the component 300 included in the flow 310. For example, the matching module 130 adjusts the components 300 in ascending order of output similarity. The matching module 130 executes the process (S104-3) for the flow 310 including the adjusted component 300.

なお、(S104−3)の処理の実行回数が閾値より大きい場合、マッチングモジュール130は(S104−5)に進む。 When the number of executions of the process of (S104-3) is larger than the threshold value, the matching module 130 proceeds to (S104-5).

(S104−5)マッチングモジュール130は、選択された設計パターンに含まれるすべてのフロー310について処理が完了したか否かを判定する。選択された設計パターンに含まれるすべてのフロー310について処理が完了していないと判定された場合、マッチングモジュール130は(S104−2)に戻る。 (S104-5) The matching module 130 determines whether or not the processing is completed for all the flows 310 included in the selected design pattern. When it is determined that the processing is not completed for all the flows 310 included in the selected design pattern, the matching module 130 returns to (S104-2).

(S104−6)選択された設計パターンに含まれるすべてのフロー310について処理が完了したと判定された場合、マッチングモジュール130は、すべての設計パターンについて処理が完了したか否かを判定する。すべての設計パターンについて処理が完了していないと判定された場合、マッチングモジュール130は(S104−1)に戻る。すべての設計パターンについて処理が完了したと判定された場合、マッチングモジュール130はステップS104の処理を終了する。 (S104-6) When it is determined that the processing is completed for all the flows 310 included in the selected design pattern, the matching module 130 determines whether or not the processing is completed for all the design patterns. When it is determined that the processing is not completed for all the design patterns, the matching module 130 returns to (S104-1). When it is determined that the processing is completed for all the design patterns, the matching module 130 ends the processing in step S104.

なお、マッチングモジュール130は、構造類似度を用いなくてもよい。以上がステップS104の処理の説明である。 The matching module 130 does not have to use the structural similarity. The above is the description of the process of step S104.

次に、設計支援モジュール121の選択モジュール131は、「横断制約」の制約条件に基づいて、設計パターンを絞り込む(ステップS105)。具体的には、選択モジュール131は、設計パターンに含まれる各フロー310に対して「横断制約」の制約条件を満たすか否かを判定する。 Next, the selection module 131 of the design support module 121 narrows down the design pattern based on the constraint condition of the “crossing constraint” (step S105). Specifically, the selection module 131 determines whether or not the constraint condition of the "crossing constraint" is satisfied for each flow 310 included in the design pattern.

次に、設計支援モジュール121は、連結フローマッチング処理を実行する(ステップS106)。具体的には、以下のような処理が実行される。 Next, the design support module 121 executes the connection flow matching process (step S106). Specifically, the following processing is executed.

(S106−1)マッチングモジュール130は設計パターンを選択する。 (S106-1) The matching module 130 selects a design pattern.

(S106−2)マッチングモジュール130は、各フロー310に含まれるコンポーネント300の出力類似度を算出し、また、各フロー310の構造類似度を算出する。マッチングモジュール130は、コンポーネントの出力類似度の統計値及び構造類似度の統計値を算出する。 (S106-2) The matching module 130 calculates the output similarity of the components 300 included in each flow 310, and also calculates the structural similarity of each flow 310. The matching module 130 calculates the output similarity statistical value and the structural similarity statistical value of the component.

(S106−3)マッチングモジュール130は、出力類似度の統計値及び構造類似度の統計値の各々が閾値より大きい場合、連結フロー320を候補設計パターンとしてリストに登録する。出力類似度の統計値及び構造類似指標の統計値の少なくともいずれかが閾値以下である場合、マッチングモジュール130は、少なくともいずれかのコンポーネント300を調整する。例えば、マッチングモジュール130は、出力類似度が最も低い順にコンポーネント300を調整する。マッチングモジュール130は、調整後のコンポーネント300を含む連結フロー320について(S106−2)の処理を実行する。 (S106-3) When each of the output similarity statistical value and the structural similarity statistical value is larger than the threshold value, the matching module 130 registers the connection flow 320 as a candidate design pattern in the list. If at least one of the output similarity statistics and the structure similarity index statistics is less than or equal to the threshold, the matching module 130 adjusts at least one of the components 300. For example, the matching module 130 adjusts the components 300 in ascending order of output similarity. The matching module 130 executes the process (S106-2) for the connection flow 320 including the adjusted component 300.

なお、(S106−3)の処理の実行回数が閾値より大きい場合、マッチングモジュール130は(S106−4)に進む。 When the number of executions of the process of (S106-3) is larger than the threshold value, the matching module 130 proceeds to (S106-4).

(S106−4)マッチングモジュール130は、すべての設計パターンについて処理が完了したか否かを判定する。すべての設計パターンについて処理が完了していないと判定された場合、マッチングモジュール130は(S106−1)に戻る。すべての設計パターンについて処理が完了したと判定された場合、マッチングモジュール130はステップS106の処理を終了する。 (S106-4) The matching module 130 determines whether or not the processing is completed for all the design patterns. When it is determined that the processing is not completed for all the design patterns, the matching module 130 returns to (S106-1). When it is determined that the processing is completed for all the design patterns, the matching module 130 ends the processing in step S106.

なお、マッチングモジュール130は、構造類似度を用いなくてもよい。以上がステップS106の処理の説明である。 The matching module 130 does not have to use the structural similarity. The above is the description of the process of step S106.

次に、設計支援モジュール121の選択モジュール131は、「システム制約」の制約条件に基づいて、設計パターンを絞り込む(ステップS107)。具体的には、選択モジュール131は、設計パターンに対応する連結フロー320に対して「システム制約」の制約条件を満たすか否かを判定する。 Next, the selection module 131 of the design support module 121 narrows down the design pattern based on the constraint condition of the “system constraint” (step S107). Specifically, the selection module 131 determines whether or not the constraint condition of the "system constraint" is satisfied for the connection flow 320 corresponding to the design pattern.

次に、設計支援モジュール121は、設計パターンに関する情報をデータ管理サーバ103に登録する(ステップS108)。 Next, the design support module 121 registers information about the design pattern in the data management server 103 (step S108).

調整されたパラメータに関する情報はパラメータ管理情報500に登録され、調整されたコードに関する情報はコード管理情報501に登録され、新規仕様書は仕様書管理情報502に登録され、設計パターンに対応するソースコードはソースコード管理情報504に登録され、設計パターンに対応する連結フロー320はフロー管理情報505に格納される。 Information about the adjusted parameters is registered in the parameter management information 500, information about the adjusted code is registered in the code management information 501, new specifications are registered in the specification management information 502, and the source code corresponding to the design pattern is registered. Is registered in the source code management information 504, and the connection flow 320 corresponding to the design pattern is stored in the flow management information 505.

次に、ビューワ120は、設計パターンに関する情報を提示し(ステップS109)、その後、処理を終了する。ビューワ120は、例えば、図14のような画面1400を表示する。 Next, the viewer 120 presents information about the design pattern (step S109), and then ends the process. The viewer 120 displays, for example, the screen 1400 as shown in FIG.

画面1400は、設計パターン選択欄1401、ベースプログラム表示ボタン1402、設計パターン表示ボタン1403、及び詳細情報欄1404を含む。 The screen 1400 includes a design pattern selection field 1401, a base program display button 1402, a design pattern display button 1403, and a detailed information field 1404.

設計パターン選択欄1401は、評価又は閲覧する設計パターンを選択するための欄である。図14ではプルダウン形式で選択可能な設計パターンが提示される。 The design pattern selection column 1401 is a column for selecting a design pattern to be evaluated or browsed. In FIG. 14, a design pattern that can be selected in a pull-down format is presented.

ベースプログラム表示ボタン1402は、設計パターンの生成時に使用したベースプログラムを表示するためのボタンである。ユーザがベースプログラム表示ボタン1402を操作した場合、ビューワ120は、例えば、図15Aに示すようなベースプログラムに対応する連結フロー320を提示する。連結フロー320は、フロー310−1、310−2を含む。なお、コの字型のコンポーネント300は分岐を示し、DBの文字列を含むコンポーネント300はデータベースを示す。 The base program display button 1402 is a button for displaying the base program used when generating the design pattern. When the user operates the base program display button 1402, the viewer 120 presents, for example, a connection flow 320 corresponding to the base program as shown in FIG. 15A. The connected flow 320 includes flows 310-1 and 310-2. The U-shaped component 300 indicates a branch, and the component 300 including the DB character string indicates a database.

設計パターン表示ボタン1403は、設計パターン選択欄1401で選択した設計パターンを表示するためのボタンである。ユーザが設計パターン表示ボタン1403を操作した場合、ビューワ120は、例えば、図15B又は図15Cに示すような設計パターンに対応する連結フロー320を提示する。 The design pattern display button 1403 is a button for displaying the design pattern selected in the design pattern selection field 1401. When the user operates the design pattern display button 1403, the viewer 120 presents, for example, a connection flow 320 corresponding to the design pattern as shown in FIG. 15B or FIG. 15C.

システム仕様の変更に伴って新規パラメータを追加する場合、新規パラメータを含む新規コンポーネント300を作成する必要がある。さらに、新規コンポーネント300を追加するためには、ベースプログラムのコンポーネント300の仲介役となるインタフェースとして機能する依存関係コンポーネント300を追加する必要がある。 When a new parameter is added due to a change in the system specifications, it is necessary to create a new component 300 including the new parameter. Further, in order to add the new component 300, it is necessary to add the dependency component 300 that functions as an interface that acts as an intermediary for the component 300 of the base program.

図15Bに示す連結フロー320において、黒のボックスは新規パラメータを含む新規コンポーネント300を表し、斜線のボックスは依存関係コンポーネント300を表す。また、ドットのボックスは依存関係コンポーネント300の追加に伴ってパラメータが調整されたコンポーネント300を表す。 In the concatenation flow 320 shown in FIG. 15B, the black box represents the new component 300 containing the new parameters and the shaded box represents the dependency component 300. Also, the dot box represents the component 300 whose parameters have been adjusted with the addition of the dependency component 300.

図15Cに示す連結フロー320では、フロー310−1のコンポーネント300が調整されている。具体的には、システム仕様の変更に伴ってパラメータが調整されたコンポーネント300と、当該コンポーネント300の調整に伴ってパラメータが調整された二つの依存関係コンポーネント300を含む。 In the connected flow 320 shown in FIG. 15C, the component 300 of the flow 310-1 is adjusted. Specifically, it includes a component 300 whose parameters are adjusted according to a change in system specifications, and two dependency components 300 whose parameters are adjusted according to the adjustment of the component 300.

詳細情報欄1404は、選択された設計パターンの構造、出力類似度及び構造類似度等の指標、並びにベースプログラムからの変更箇所等を表示する欄である。 The detailed information column 1404 is a column for displaying the structure of the selected design pattern, indexes such as output similarity and structural similarity, and changes from the base program.

ビューワ120は、出力類似度の統計値及び構造類似度の統計値等に基づいてソートされた設計パターンのリストを提示してもよい。このとき、ビューワ120は、上位の設計パターンのみを提示してもよい。 The viewer 120 may present a list of design patterns sorted based on output similarity statistics, structural similarity statistics, and the like. At this time, the viewer 120 may present only the upper design pattern.

なお、ビューワ120は、ソースコード、パラメータ、及びコード等を、数値、テキスト、グラフ、及び図等の情報として提示してもよい。 The viewer 120 may present the source code, parameters, codes, and the like as information such as numerical values, texts, graphs, and figures.

マッチング処理の実行後、制約条件に基づく設計パターンの絞り込みを行っているのは、サンプルデータ数が多い方が、マッチング精度及び計算収束性が向上するためである。 After the matching process is executed, the design pattern is narrowed down based on the constraint conditions because the larger the number of sample data, the better the matching accuracy and the calculation convergence.

また、装置の変更及び入れ替えを想定して、新たなシステムにおいて装置を確実に動作できるように、コンポーネント300、フロー310、及び連結フロー320の順番でボトムアップ的にマッチング処理を実行している。 Further, assuming a change or replacement of the device, the matching process is executed bottom-up in the order of the component 300, the flow 310, and the connected flow 320 so that the device can be operated reliably in the new system.

なお、各マッチング処理が実行された後に、制約条件に基づく設計パターンの絞り込みが行われてもよい。ただし、「単体制約」、「横断制約」、及び「システム制約」の順に制約条件は適用される。 After each matching process is executed, the design pattern may be narrowed down based on the constraint conditions. However, the constraints are applied in the order of "single constraint", "crossing constraint", and "system constraint".

なお、過去の制御システムプログラム140を利用せずに、新たに、制御システムプログラム140を生成する場合、制御システムプログラム設計装置100は以下のような処理を実行する。 When the control system program 140 is newly generated without using the past control system program 140, the control system program design device 100 executes the following processing.

設計支援モジュール121は、仕様書、パラメータ管理情報500、及びコード管理情報501に基づいて、コンポーネント300を生成し、コンポーネント300を連結してフロー310を生成し、さらに、フロー310を連結して連結フロー320を生成する。設計支援モジュール121は、制約条件を満たす連結フロー320を選択する。 The design support module 121 generates the component 300 based on the specifications, the parameter management information 500, and the code management information 501, connects the components 300 to generate the flow 310, and further connects and connects the flow 310. Generate flow 320. The design support module 121 selects the connection flow 320 that satisfies the constraint condition.

以上で説明したように、制御システムプログラム設計装置100は、以前設計された制御システムプログラム140を流用することによって、頻繁にシステム仕様が変更されるシステムを制御するためのプログラムを容易に設計できる。また、制御システムプログラム設計装置100は、パラメータ管理情報500及びコード管理情報501に基づいてコンポーネント300を調整することによって制御システムプログラム140を設計できるため、プログラムの設計に要するコストを削減できる。 As described above, the control system program design device 100 can easily design a program for controlling a system whose system specifications are frequently changed by diverting the previously designed control system program 140. Further, since the control system program design device 100 can design the control system program 140 by adjusting the component 300 based on the parameter management information 500 and the code management information 501, the cost required for designing the program can be reduced.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。 The present invention is not limited to the above-mentioned examples, and includes various modifications. Further, for example, the above-described embodiment describes the configuration in detail in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to the one including all the described configurations. Further, it is possible to add, delete, or replace a part of the configuration of each embodiment with other configurations.

また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。 Further, each of the above configurations, functions, processing units, processing means and the like may be realized by hardware by designing a part or all of them by, for example, an integrated circuit. The present invention can also be realized by a program code of software that realizes the functions of the examples. In this case, a storage medium in which the program code is recorded is provided to the computer, and the processor included in the computer reads the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiment, and the program code itself and the storage medium storing the program code itself constitute the present invention. Examples of the storage medium for supplying such a program code include a flexible disk, a CD-ROM, a DVD-ROM, a hard disk, an SSD (Solid State Drive), an optical disk, a magneto-optical disk, a CD-R, and a magnetic tape. Non-volatile memory cards, ROMs, etc. are used.

また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。 Further, the program code that realizes the functions described in the present embodiment can be implemented in a wide range of programs or script languages such as assembler, C / C ++, perl, Shell, PHP, Python, and Java (registered trademark).

さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。 Further, by distributing the program code of the software that realizes the functions of the examples via the network, it is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or a CD-R. , The processor provided in the computer may read and execute the program code stored in the storage means or the storage medium.

上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。 In the above-described embodiment, the control lines and information lines show what is considered necessary for explanation, and do not necessarily indicate all the control lines and information lines in the product. All configurations may be interconnected.

10 制御システム(プラント)
100 制御システムプログラム設計装置
103 データ管理サーバ
104 制御システムサーバ
105 ゲートウェイ
106 記憶装置
107 制御装置
108 記憶装置
110、111 ネットワーク
120 ビューワ
121 設計支援モジュール
130 マッチングモジュール
131 選択モジュール
140 制御システムプログラム
150 装置制御プログラム
200 サブルーチン
210 サブタスク
220 API
300 コンポーネント
310 フロー
320 連結フロー
500 パラメータ管理情報
501 コード管理情報
502 仕様書管理情報
503 制約条件管理
504 ソースコード管理情報
505 フロー管理情報
10 Control system (plant)
100 Control system program design device 103 Data management server 104 Control system server 105 Gateway 106 Storage device 107 Control device 108 Storage device 110, 111 Network 120 Viewer 121 Design support module 130 Matching module 131 Selection module 140 Control system program 150 Device control program 200 Subtask 210 Subtask 220 API
300 Component 310 Flow 320 Concatenated flow 500 Parameter management information 501 Code management information 502 Specification management information 503 Constraint management 504 Source code management information 505 Flow management information

Claims (8)

システムを制御するためのプログラムを生成する計算機システムであって、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
新規プログラムを生成するために使用するベースプログラムを管理するためのソースコード管理情報、前記ベースプログラムの構造を管理するためのフロー管理情報、及び前記ベースプログラムを実行するシステムの仕様書を管理するための仕様書管理情報を格納するデータベースにアクセス可能であって、
前記フロー管理情報には、最小の処理単位であるコンポーネントを少なくとも一つ含む複数のフローを連結した連結フローのデータが一つの前記ベースプログラムの構造を表すデータとして格納され、
前記プロセッサは、
前記新規プログラムを生成するための新規仕様書を受け付けた場合、前記新規仕様書と前記仕様書管理情報に格納される前記仕様書との比較結果に基づいて、前記仕様書管理情報に格納される仕様書の中から参考仕様書を選択し、
前記ソースコード管理情報及び前記フロー管理情報に基づいて、前記参考仕様書に対応する前記ベースプログラムに含まれる複数の前記コンポーネントを調整することによって前記新規プログラムの候補となる設計パターンを生成し、
前記設計パターンを出力することを特徴とする計算機システム。
A computer system that generates programs to control the system.
It comprises at least one computer having a processor, a memory connected to the processor, and a network interface connected to the processor.
To manage source code control information for managing the base program used to generate a new program, flow management information for managing the structure of the base program, and specifications of the system that executes the base program. You can access the database that stores the specification management information of
In the flow management information, data of a concatenated flow in which a plurality of flows including at least one component which is the smallest processing unit are concatenated is stored as data representing the structure of one base program.
The processor
When a new specification for generating the new program is accepted, it is stored in the specification management information based on the comparison result between the new specification and the specification stored in the specification management information. Select the reference specification from the specifications and select
Based on the source code management information and the flow management information, a design pattern that is a candidate for the new program is generated by adjusting a plurality of the components included in the base program corresponding to the reference specifications.
A computer system characterized by outputting the design pattern.
請求項1に記載の計算機システムであって、
前記コンポーネントは、少なくとも一つのコード及び少なくとも一つのパラメータから構成され、
前記データベースは、前記コードの変更方法を管理するためのコード管理情報及び前記パラメータの変更方法を管理するためのパラメータ管理情報を格納し、
前記プロセッサは、前記コード管理情報及び前記パラメータ管理情報に基づいて、前記参考仕様書に対応するベースプログラムに含まれるコンポーネントの前記少なくとも一つのコード及び前記少なくとも一つのパラメータを変更することによって、前記コンポーネントを調整することを特徴とする計算機システム。
The computer system according to claim 1.
The component consists of at least one code and at least one parameter.
The database stores code management information for managing the code change method and parameter management information for managing the parameter change method.
The processor modifies the at least one code and the at least one parameter of the component included in the base program corresponding to the reference specification based on the code management information and the parameter management information. A computer system characterized by adjusting.
請求項2に記載の計算機システムであって、
前記システムでは複数の装置が稼働し、
前記データベースは、前記装置に関する制約を定義する第1制約条件、前記複数の装置間のやりとりに関する制約を定義する第2制約条件、及び前記システムに関する制約を定義する第3制約条件を管理するための制約条件管理情報を格納し、
前記プロセッサは、
前記ベースプログラムに含まれる前記複数のコンポーネントの各々を、前記コンポーネントの出力と目標出力との差が小さくなるように調整することによって、複数の第1設計パターンを生成し、
前記複数の第1設計パターンの中から前記第1制約条件を満たす前記第1設計パターンを選択し、
前記選択された第1設計パターンに含まれる前記複数のフローに含まれる前記少なくとも一つのコンポーネントを、前記フローの出力と目標出力との差が小さくなるように調整することによって、複数の第2設計パターンを生成し、
前記複数の第2設計パターンの中から前記第2制約条件を満たす前記第2設計パターンを選択し、
前記選択された第2設計パターンに含まれる前記複数のコンポーネントの各々を、前記連結フローの出力と目標出力との差が小さくなるように調整することによって、複数の第3設計パターンを生成し、
前記複数の第3設計パターンの中から前記第3制約条件を満たす前記第3設計パターンを選択し、
前記選択された第3設計パターンを出力することを特徴とする計算機システム。
The computer system according to claim 2.
Multiple devices are operating in the system
The database manages a first constraint that defines a constraint on the device, a second constraint that defines a constraint on interaction between the plurality of devices, and a third constraint that defines a constraint on the system. Stores constraint condition management information
The processor
A plurality of first design patterns are generated by adjusting each of the plurality of components included in the base program so that the difference between the output of the component and the target output becomes small.
The first design pattern satisfying the first constraint condition is selected from the plurality of first design patterns.
A plurality of second designs by adjusting the at least one component included in the plurality of flows included in the selected first design pattern so that the difference between the output of the flow and the target output becomes small. Generate a pattern and
The second design pattern satisfying the second constraint condition is selected from the plurality of second design patterns.
A plurality of third design patterns are generated by adjusting each of the plurality of components included in the selected second design pattern so that the difference between the output of the connection flow and the target output becomes small.
The third design pattern satisfying the third constraint condition is selected from the plurality of third design patterns.
A computer system characterized by outputting the selected third design pattern.
請求項3に記載の計算機システムであって、
前記プロセッサは、
前記第1設計パターンに含まれる前記複数のフローに含まれる前記少なくとも一つのコンポーネントを、前記フローの出力と目標出力との差が小さく、かつ、変更前の前記フローの構造と変更後の前記フローの構造とが類似するように調整し、
前記第3設計パターンに含まれる前記複数のコンポーネントの各々を、前記連結フローの出力と目標出力との差が小さく、かつ、変更前の前記連結フローの構造と変更後の前記連結フローの構造とが類似するように調整することを特徴とする計算機システム。
The computer system according to claim 3.
The processor
The at least one component included in the plurality of flows included in the first design pattern has a small difference between the output of the flow and the target output, and the structure of the flow before the change and the flow after the change. Adjusted to be similar to the structure of
Each of the plurality of components included in the third design pattern has a small difference between the output of the connection flow and the target output, and has a structure of the connection flow before the change and a structure of the connection flow after the change. A computer system characterized by adjusting so that they are similar.
計算機システムが実行する、システムを制御するためのプログラムの生成方法であって、
前記計算機システムは、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を含み、
新規プログラムを生成するために使用するベースプログラムを管理するためのソースコード管理情報、前記ベースプログラムの構造を管理するためのフロー管理情報、及び前記ベースプログラムを実行するシステムの仕様書を管理するための仕様書管理情報を格納するデータベースにアクセス可能であって、
前記フロー管理情報には、最小の処理単位であるコンポーネントを少なくとも一つ含む複数のフローを連結した連結フローのデータが一つの前記ベースプログラムの構造を表すデータとして格納され、
前記プログラムの生成方法は、
前記プロセッサが、前記新規プログラムを生成するための新規仕様書を受け付けた場合、前記新規仕様書と前記仕様書管理情報に格納される前記仕様書との比較結果に基づいて、前記仕様書管理情報に格納される仕様書の中から参考仕様書を選択する第1のステップと、
前記プロセッサが、前記ソースコード管理情報及び前記フロー管理情報に基づいて、前記参考仕様書に対応する前記ベースプログラムに含まれる複数の前記コンポーネントを調整することによって前記新規プログラムの候補となる設計パターンを生成する第2のステップと、
前記プロセッサが、前記設計パターンを出力する第3のステップと、を含むことを特徴とするプログラムの生成方法。
A method of generating a program to control a computer system, which is executed by a computer system.
The computer system
Includes a processor, memory connected to the processor, and at least one computer having a network interface connected to the processor.
To manage source code control information for managing the base program used to generate a new program, flow management information for managing the structure of the base program, and specifications of the system that executes the base program. You can access the database that stores the specification management information of
In the flow management information, data of a concatenated flow in which a plurality of flows including at least one component which is the smallest processing unit are concatenated is stored as data representing the structure of one base program.
The method of generating the program is
When the processor accepts a new specification for generating the new program, the specification management information is based on a comparison result between the new specification and the specification stored in the specification management information. The first step to select a reference specification from the specifications stored in
Based on the source code control information and the flow management information, the processor adjusts a plurality of the components included in the base program corresponding to the reference specifications to obtain a design pattern that is a candidate for the new program. The second step to generate and
A method of generating a program, wherein the processor includes a third step of outputting the design pattern.
請求項5に記載のプログラムの生成方法であって、
前記コンポーネントは、少なくとも一つのコード及び少なくとも一つのパラメータから構成され、
前記データベースは、前記コードの変更方法を管理するためのコード管理情報及び前記パラメータの変更方法を管理するためのパラメータ管理情報を格納し、
前記第2のステップは、前記プロセッサが、前記コード管理情報及び前記パラメータ管理情報に基づいて、前記参考仕様書に対応するベースプログラムに含まれるコンポーネントの前記少なくとも一つのコード及び前記少なくとも一つのパラメータを変更することによって、前記コンポーネントを調整するステップを含むことを特徴とするプログラムの生成方法。
The method for generating a program according to claim 5.
The component consists of at least one code and at least one parameter.
The database stores code management information for managing the code change method and parameter management information for managing the parameter change method.
In the second step, the processor uses the code management information and the parameter management information to obtain the at least one code and the at least one parameter of the components included in the base program corresponding to the reference specifications. A method of generating a program, comprising the step of adjusting the component by modifying it.
請求項6に記載のプログラムの生成方法であって、
前記システムでは複数の装置が稼働し、
前記データベースは、前記装置に関する制約を定義する第1制約条件、前記複数の装置間のやりとりに関する制約を定義する第2制約条件、及び前記システムに関する制約を定義する第3制約条件を管理するための制約条件管理情報を格納し、
前記第2のステップは、
前記プロセッサが、前記ベースプログラムに含まれる前記複数のコンポーネントの各々を、前記コンポーネントの出力と目標出力との差が小さくなるように調整することによって、複数の第1設計パターンを生成する第4のステップと、
前記プロセッサが、前記複数の第1設計パターンの中から前記第1制約条件を満たす前記第1設計パターンを選択する第5のステップと、
前記プロセッサが、前記選択された第1設計パターンに含まれる前記複数のフローに含まれる前記少なくとも一つのコンポーネントを、前記フローの出力と目標出力との差が小さくなるように調整することによって、複数の第2設計パターンを生成する第6のステップと、
前記プロセッサが、前記複数の第2設計パターンの中から前記第2制約条件を満たす前記第2設計パターンを選択する第7のステップと、
前記プロセッサが、前記選択された第2設計パターンに含まれる前記複数のコンポーネントの各々を、前記連結フローの出力と目標出力との差が小さくなるように調整することによって、複数の第3設計パターンを生成する第8のステップと、
前記プロセッサが、前記複数の第3設計パターンの中から前記第3制約条件を満たす前記第3設計パターンを選択する第9のステップと、
前記プロセッサが、前記選択された第3設計パターンを出力する第10のステップと、を含むことを特徴とするプログラムの生成方法。
The method for generating a program according to claim 6.
Multiple devices are operating in the system
The database manages a first constraint that defines a constraint on the device, a second constraint that defines a constraint on interaction between the plurality of devices, and a third constraint that defines a constraint on the system. Stores constraint condition management information
The second step is
A fourth, in which the processor adjusts each of the plurality of components included in the base program so that the difference between the output of the component and the target output becomes small, thereby generating a plurality of first design patterns. Steps and
A fifth step in which the processor selects the first design pattern satisfying the first constraint condition from the plurality of first design patterns.
The processor adjusts the at least one component included in the plurality of flows included in the selected first design pattern so that the difference between the output of the flow and the target output becomes small. The sixth step of generating the second design pattern of
A seventh step in which the processor selects the second design pattern satisfying the second constraint condition from the plurality of second design patterns.
The processor adjusts each of the plurality of components included in the selected second design pattern so that the difference between the output of the connection flow and the target output becomes small, so that the plurality of third design patterns Eighth step to generate
A ninth step in which the processor selects the third design pattern satisfying the third constraint condition from the plurality of third design patterns.
A method of generating a program, wherein the processor comprises a tenth step of outputting the selected third design pattern.
請求項7に記載のプログラムの生成方法であって、
前記第6のステップは、前記プロセッサが、前記第1設計パターンに含まれる前記複数のフローに含まれる前記少なくとも一つのコンポーネントを、前記フローの出力と目標出力との差が小さく、かつ、変更前の前記フローの構造と変更後の前記フローの構造とが類似するように調整するステップを含み、
前記第8のステップは、前記プロセッサが、前記第3設計パターンに含まれる前記複数のコンポーネントの各々を、前記連結フローの出力と目標出力との差が小さく、かつ、変更前の前記連結フローの構造と変更後の前記連結フローの構造とが類似するように調整するステップを含むことを特徴とするプログラムの生成方法。
The method for generating a program according to claim 7.
In the sixth step, the processor changes the at least one component included in the plurality of flows included in the first design pattern so that the difference between the output of the flow and the target output is small and before the change. Including the step of adjusting the structure of the flow and the structure of the modified flow so as to be similar to each other.
In the eighth step, the processor makes each of the plurality of components included in the third design pattern have a small difference between the output of the connection flow and the target output, and the connection flow before the change. A method of generating a program, which comprises a step of adjusting the structure and the structure of the connected flow after the change so as to be similar.
JP2019118365A 2019-06-26 2019-06-26 Computer system and method for generating program for controlling system Pending JP2021005205A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019118365A JP2021005205A (en) 2019-06-26 2019-06-26 Computer system and method for generating program for controlling system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019118365A JP2021005205A (en) 2019-06-26 2019-06-26 Computer system and method for generating program for controlling system

Publications (1)

Publication Number Publication Date
JP2021005205A true JP2021005205A (en) 2021-01-14

Family

ID=74097340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019118365A Pending JP2021005205A (en) 2019-06-26 2019-06-26 Computer system and method for generating program for controlling system

Country Status (1)

Country Link
JP (1) JP2021005205A (en)

Similar Documents

Publication Publication Date Title
US20180349134A1 (en) User interface that integrates plural client portals in plural user interface portions through sharing of one or more log records
Măruşter et al. Redesigning business processes: a methodology based on simulation and process mining techniques
US9390375B2 (en) Reuse of on-demand enterprise system customization knowledge utilizing collective experience
US7580871B2 (en) Method to generate a customizable product configurator
US10845962B2 (en) Specifying user interface elements
US8127269B2 (en) Transforming a flow graph model to a structured flow language model
CN109766075B (en) Enterprise-level software construction method and system based on microservice
KR20090120481A (en) A consistent method system and computer program for developing software asset based solutions
JP2007184914A (en) Method, system and program for comparing topologies (topology comparison)
US10379826B1 (en) Determining inputs to an integration flow component
US11556733B2 (en) System and method for auto-completion of ICS flow using artificial intelligence/machine learning
US20150120479A1 (en) Catalog driven order management for rule definition
Jamous et al. Towards an IT service lifecycle management (ITSLM) concept
Cui et al. Analysis of service-oriented architecture and scrum software development approach for IIoT
US20120330699A1 (en) Case-based retrieval framework
US9058188B2 (en) Transformative user interfaces
CN112000343B (en) Method and system for deploying multi-version services in Kubernetes by using Devops
US8539496B1 (en) Method and apparatus for configuring network systems implementing diverse platforms to perform business tasks
CN111191180A (en) Method and device for constructing micro-service system in invoice field and storage medium
KR100967442B1 (en) Total Product Development and Management System
JP2021005205A (en) Computer system and method for generating program for controlling system
Xiao et al. ChoroWare: a software toolkit for choropleth map classification
Matejaš et al. Building a BPM application in an SOA-based legacy environment
US20080183537A1 (en) Approach to comprehensive requirements specifications for complex workflows
Veitaite et al. Knowledge-based transformation algorithms of UML dynamic models generation from enterprise model