JP2012003473A - Program development support device and plant monitoring control system - Google Patents

Program development support device and plant monitoring control system Download PDF

Info

Publication number
JP2012003473A
JP2012003473A JP2010137245A JP2010137245A JP2012003473A JP 2012003473 A JP2012003473 A JP 2012003473A JP 2010137245 A JP2010137245 A JP 2010137245A JP 2010137245 A JP2010137245 A JP 2010137245A JP 2012003473 A JP2012003473 A JP 2012003473A
Authority
JP
Japan
Prior art keywords
candidate block
block
program development
candidate
functional
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
JP2010137245A
Other languages
Japanese (ja)
Inventor
Katsuya Kawai
克哉 河合
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010137245A priority Critical patent/JP2012003473A/en
Publication of JP2012003473A publication Critical patent/JP2012003473A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a program development support device in which a program capable of performing proper calculation processing in compliance with regulations is easily organized.SOLUTION: A program development support device 10 in which plural function blocks are combined to organize a program comprises: a function block database 1 for managing the function blocks and basis information related to definition bases of the function blocks; interface creation means 3 for creating an interface for defining a program flow by combining the retained function blocks; insertion position extraction means 4 for extracting an insertion position of the function blocks based on variable dependence between the function blocks incorporated in the flow that is being defined; candidate block line creation means 5 for creating a candidate block line to be inserted into the extracted insertion position; and appropriateness determination means 6 for determining appropriateness of the created candidate block line based on the basis information and pre-set standards.

Description

本発明は、原子力発電プラント等のプラントを監視制御するためのプログラム開発を支援するためのプログラム開発支援装置および当該プログラム開発支援装置を備えたプラント監視制御システムに関する。   The present invention relates to a program development support device for supporting program development for monitoring and controlling a plant such as a nuclear power plant and a plant monitoring control system including the program development support device.

工場や発電設備といったプラントでは、プラント全体を集中して監視するプラント監視制御システムを介してプラントの運転制御を行っている。そして、電流、電圧、温度、圧力、流量等のプロセス値や、プロセス値を制御するための、各機器の制御値といった運転制御情報等は、プラント監視制御システムに集約され、プラントの運転状況を確認しながら操作できるようになっている。そのため、プラントを監視制御するためのプログラムは、プラントの高度化に伴い複雑化するとともに、法令や仕様書といった規定の変更に応じて迅速に変更する必要があり、効率的にプログラムを構築する方法が望まれている。   In plants such as factories and power generation facilities, plant operation control is performed through a plant monitoring control system that centrally monitors the entire plant. Then, process values such as current, voltage, temperature, pressure, flow rate, etc. and operation control information such as control values of each device for controlling the process values are collected in the plant monitoring control system, and the operation status of the plant is It can be operated while checking. Therefore, the program for monitoring and controlling the plant becomes more complicated as the plant becomes more sophisticated, and it is necessary to change the program quickly according to changes in regulations such as laws and specifications. Is desired.

計算機能が適切に発揮できるプログラムを効率よく構築するためのアプローチとして、計算機能に含まれる個々の計算処理を部品化し、それらを組み合わせることが考えられる。一般に、計算処理を部品化する場合、部品化する計算処理の計算内容のみを機能部品(機能ブロック)として定義し、入力された値に対して所望の計算を実行した結果を返す方法が取られる。しかしながら、プラントの監視制御等に用いられるプログラムでは、各機能部品が用いる変数に依存関係があり、実行順序に制約が生じる。つまり、ある変数の値を参照する機能部品を実行する前には、その変数に値を代入する機能部品を実行する必要がある。この制約に反する順序で機能部品を組み合わせると、代入されていない変数値を参照してしまうことになる。そのため、構築したプログラムを繰り返し修正する必要があり、効率的なプログラム構築ができなかった。そこで、各機能部品に対して、それぞれの機能部品中で使用されている変数の参照関係の情報を関連付け、各機能部品で使用されている変数の参照関係に基づいて、各機能部品の組合せ順序を適切に並べるプログラム結合支援装置が提案されている(例えば、特許文献1参照。)。   As an approach for efficiently building a program that can appropriately perform the calculation function, it is conceivable to make individual calculation processes included in the calculation function into parts and combine them. Generally, when a calculation process is converted into a part, only the calculation content of the calculation process to be converted into a part is defined as a functional part (functional block), and a method of executing a desired calculation for an input value is returned. . However, in a program used for plant monitoring control or the like, variables used by each functional component are dependent on each other, and the execution order is restricted. That is, before executing a functional component that refers to the value of a certain variable, it is necessary to execute a functional component that assigns a value to that variable. Combining functional components in an order that violates this restriction will refer to variable values that are not assigned. Therefore, it is necessary to repeatedly modify the constructed program, and an efficient program construction cannot be performed. Therefore, each functional component is associated with information on the reference relationship of variables used in each functional component, and the combination order of each functional component is based on the reference relationship of variables used in each functional component. There has been proposed a program combination support apparatus that appropriately arranges (see, for example, Patent Document 1).

特開2004−348667号公報(段落0049〜0052、0090〜0102、図2〜図4、図8〜図10)JP 2004-348667 A (paragraphs 0049 to 0052, 0090 to 0102, FIGS. 2 to 4 and FIGS. 8 to 10)

しかしながら、上記のように変数の参照関係でプログラムを構築した場合、計算処理としては実行可能なプログラムを構築することができるが、用いられた機能ブロックがどのような基準で定義されたかが考慮されていない。そのため、プラントの監視制御システムのように、法令や仕様書等の規制に基づいて運転制御を行う必要があるシステムでは、構築したプログラムが法令や仕様書に適合しているか点検し、適合していない場合にはプログラムを修正する必要があった。   However, when a program is constructed with reference relationships of variables as described above, an executable program can be constructed as a calculation process, but it is taken into consideration what criteria the used functional blocks are defined. Absent. For this reason, in systems that require operational control based on regulations such as laws and specifications, such as plant monitoring and control systems, it is necessary to check whether the built program conforms to laws and specifications. If not, the program had to be modified.

本発明は、上記のような課題を解決するためになされたもので、法令や仕様書といった規制がある場合にも、規制に準拠して適切な計算処理が可能なプログラムを容易に構築するプログラム開発支援装置を得ることを目的としている。   The present invention has been made to solve the above-described problems, and even when there is a regulation such as a law or a specification, a program for easily constructing a program capable of appropriate calculation processing in accordance with the regulation The purpose is to obtain a development support device.

本発明のプログラム開発支援装置は、変数を用いた計算処理を定義した複数の機能ブロックを組み合わせてプログラムを構築するプログラム開発支援装置であって、前記複数の機能ブロック、および前記複数の機能ブロックのそれぞれの計算処理を定義した際の根拠に関する根拠情報を管理する機能ブロックデータベースと、前記機能ブロックデータベースに保持された機能ブロックを組み合わせてプログラムのフローを定義していくためのインタフェースを生成するインタフェース生成手段と、生成したインタフェースに基づいて定義中のフローに対し、当該フローに組み込まれた機能ブロック間の変数依存関係に基づいて、機能ブロックを挿入する必要がある箇所を抽出する挿入箇所抽出手段と、前記機能ブロックデータベースに保持された機能ブロックを用いて、前記挿入箇所抽出手段が抽出した挿入箇所に挿入すべきひとつまたは複数の機能ブロックからなる候補ブロック列を生成する候補ブロック列生成手段と、前記候補ブロック列生成手段が生成した候補ブロック列に対し、当該候補ブロック列中の各機能ブロックの根拠情報と、あらかじめ定めた基準とに基づいて、当該候補ブロック列の妥当性を判定する妥当性判定手段と、を備え、前記インタフェース生成手段は、前記挿入箇所抽出手段が挿入箇所を抽出した場合に、前記候補ブロック列生成手段が生成した候補ブロック列を前記妥当性とともに提示するためのインタフェースを生成することを特徴とする。   A program development support apparatus according to the present invention is a program development support apparatus that constructs a program by combining a plurality of functional blocks that define calculation processing using variables, and includes the plurality of functional blocks and the plurality of functional blocks. Interface generation that generates the interface for defining the program flow by combining the function block database that manages the basis information on the basis when each calculation process is defined, and the function blocks held in the function block database And an insertion location extraction means for extracting a location where a functional block needs to be inserted based on a variable dependency relationship between the functional blocks incorporated in the flow for the flow being defined based on the generated interface Retained in the functional block database The candidate block sequence generating means for generating a candidate block sequence consisting of one or a plurality of functional blocks to be inserted into the insertion location extracted by the insertion location extraction means, and the candidate block sequence generation means The candidate block sequence is provided with validity determination means for determining the validity of the candidate block sequence based on the basis information of each functional block in the candidate block sequence and a predetermined criterion, The interface generation unit generates an interface for presenting the candidate block sequence generated by the candidate block sequence generation unit together with the validity when the insertion location extraction unit extracts an insertion location.

本発明のプログラム開発支援装置によれば、機能ブロックの計算処理を定義するための法令、規則あるいは仕様書等のような根拠情報を管理し、フロー中に挿入すべき候補ブロック列を生成した時に、根拠情報に基づいて生成した候補ブロックの妥当性を評価するようにしたので、法令や仕様書といった規制がある場合にも、規制に準拠して適切な計算処理が可能なプログラムを容易に構築するプログラム開発支援装置を得ることができる。   According to the program development support apparatus of the present invention, when the basis information such as laws, rules or specifications for defining the functional block calculation process is managed and a candidate block sequence to be inserted into the flow is generated, Since the validity of candidate blocks generated based on the basis information is evaluated, even if there are regulations such as laws and specifications, it is easy to build a program that can perform appropriate calculation processing according to the regulations A program development support device can be obtained.

本発明の実施の形態1にかかるプログラム開発支援装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置を備えたプラント監視制御システムの構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the plant monitoring control system provided with the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置で扱うプログラムを構成する機能ブロックの内容を説明するための図である。It is a figure for demonstrating the content of the functional block which comprises the program handled with the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置で扱うプログラムのフローの内容を説明するための図である。It is a figure for demonstrating the content of the flow of the program handled with the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置を用いてプログラムを構築する際の操作者とのインタフェースとなる画面表示例を示す図である。It is a figure which shows the example of a screen display used as an interface with the operator at the time of constructing | assembling a program using the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の挿入箇所抽出手段の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the insertion location extraction means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の挿入箇所抽出手段でのデータ処理動作を説明するための具体例である。It is a specific example for demonstrating the data processing operation | movement in the insertion location extraction means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の挿入箇所抽出手段でのデータ処理動作を説明するための具体例である。It is a specific example for demonstrating the data processing operation | movement in the insertion location extraction means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の挿入候補抽出手段の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the insertion candidate extraction means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の挿入候補抽出手段の動作を説明するための具体例である。It is a specific example for demonstrating operation | movement of the insertion candidate extraction means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の挿入候補抽出手段の動作を説明するための具体例である。It is a specific example for demonstrating operation | movement of the insertion candidate extraction means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の挿入候補抽出手段の動作を説明するための具体例である。It is a specific example for demonstrating operation | movement of the insertion candidate extraction means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の妥当性判定手段の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the validity determination means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の妥当性判定手段の動作を説明するための具体例である。It is a specific example for demonstrating operation | movement of the validity determination means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置を用いてプログラムを構築する際の操作者とのインタフェースとなる画面表示例を示す図である。It is a figure which shows the example of a screen display used as an interface with the operator at the time of constructing | assembling a program using the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置を用いてプログラムを構築する際の操作者とのインタフェースとなる画面表示例を示す図である。It is a figure which shows the example of a screen display used as an interface with the operator at the time of constructing | assembling a program using the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の全体動作を示すフローチャートである。It is a flowchart which shows the whole operation | movement of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態1の変形例にかかるプログラム開発支援装置の全体動作を示すフローチャートである。It is a flowchart which shows the whole operation | movement of the program development assistance apparatus concerning the modification of Embodiment 1 of this invention. 本発明の実施の形態2にかかるプログラム開発支援装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the program development assistance apparatus concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかるプログラム開発支援装置の全体動作を示すフローチャートである。It is a flowchart which shows the whole operation | movement of the program development assistance apparatus concerning Embodiment 2 of this invention. 本発明の実施の形態2にかかるプログラム開発支援装置の冗長ブロック抽出手段の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the redundant block extraction means of the program development assistance apparatus concerning Embodiment 2 of this invention. 本発明の実施の形態1にかかるプログラム開発支援装置の冗長ブロック抽出手段の動作を説明するための具体例である。It is a specific example for demonstrating operation | movement of the redundant block extraction means of the program development assistance apparatus concerning Embodiment 1 of this invention. 本発明の実施の形態2にかかるプログラム開発支援装置を用いてプログラムを構築する際の操作者とのインタフェースとなる画面表示例を示す図である。It is a figure which shows the example of a screen display used as an interface with the operator at the time of building a program using the program development assistance apparatus concerning Embodiment 2 of this invention. 本発明の実施の形態3にかかるプログラム開発支援装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the program development assistance apparatus concerning Embodiment 3 of this invention. 本発明の実施の形態3にかかるプログラム開発支援装置の全体動作を示すフローチャートである。It is a flowchart which shows the whole operation | movement of the program development assistance apparatus concerning Embodiment 3 of this invention. 本発明の実施の形態3にかかるプログラム開発支援装置の候補ブロック列生成手段の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the candidate block sequence production | generation means of the program development assistance apparatus concerning Embodiment 3 of this invention. 本発明の実施の形態3にかかるプログラム開発支援装置の変数抽出手段の動作を説明するための具体例である。It is a specific example for demonstrating operation | movement of the variable extraction means of the program development assistance apparatus concerning Embodiment 3 of this invention. 本発明の実施の形態3にかかるプログラム開発支援装置を用いてプログラムを構築する際の操作者とのインタフェースとなる画面表示例を示す図である。It is a figure which shows the example of a screen display used as an interface with the operator at the time of constructing | assembling a program using the program development assistance apparatus concerning Embodiment 3 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置の全体動作を示すフローチャートである。It is a flowchart which shows the whole operation | movement of the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置の表示順序判定手段の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the display order determination means of the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置の表示順序判定手段の部分動作を示すフローチャートである。It is a flowchart which shows the partial operation | movement of the display order determination means of the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置の冗長ブロック抽出手段の動作を説明するための具体例である。It is a specific example for demonstrating operation | movement of the redundant block extraction means of the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置の表示順序判定手段の部分動作を示すフローチャートである。It is a flowchart which shows the partial operation | movement of the display order determination means of the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置の冗長ブロック抽出手段の動作を説明するための具体例である。It is a specific example for demonstrating operation | movement of the redundant block extraction means of the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置の表示順序判定手段の部分動作を示すフローチャートである。It is a flowchart which shows the partial operation | movement of the display order determination means of the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置の冗長ブロック抽出手段の動作を説明するための具体例である。It is a specific example for demonstrating operation | movement of the redundant block extraction means of the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態4にかかるプログラム開発支援装置を用いてプログラムを構築する際の操作者とのインタフェースとなる画面表示例を示す図である。It is a figure which shows the example of a screen display used as an interface with the operator at the time of constructing | assembling a program using the program development assistance apparatus concerning Embodiment 4 of this invention. 本発明の実施の形態5にかかるプログラム開発支援装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the program development assistance apparatus concerning Embodiment 5 of this invention. 本発明の実施の形態5にかかるプログラム開発支援装置の全体動作を示すフローチャートである。It is a flowchart which shows the whole operation | movement of the program development assistance apparatus concerning Embodiment 5 of this invention. 本発明の実施の形態5にかかるプログラム開発支援装置の計算構造パターンDBで管理するデータの具体例を示す図である。It is a figure which shows the specific example of the data managed by the calculation structure pattern DB of the program development assistance apparatus concerning Embodiment 5 of this invention. 本発明の実施の形態5にかかるプログラム開発支援装置の分類化手段の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the classification means of the program development assistance apparatus concerning Embodiment 5 of this invention. 本発明の実施の形態5にかかるプログラム開発支援装置を用いてプログラムを構築する際の操作者とのインタフェースとなる画面表示例を示す図である。It is a figure which shows the example of a screen display used as an interface with the operator at the time of building a program using the program development assistance apparatus concerning Embodiment 5 of this invention. 本発明の実施の形態5にかかるプログラム開発支援装置を用いてプログラムを構築する際の操作者とのインタフェースとなる画面表示例を示す図である。It is a figure which shows the example of a screen display used as an interface with the operator at the time of building a program using the program development assistance apparatus concerning Embodiment 5 of this invention.

実施の形態1.
本発明の実施の形態1にかかるプログラム開発支援装置およびプログラム開発支援装置を備えたプラント監視制御システムについて図を用いて説明する。図1〜図18は本実施の形態1にかかるプログラム開発支援装置およびプログラム開発支援装置を備えたプラント監視制御システムについて説明するためのもので、図1はプログラム開発支援装置の構成を示すブロック図、図2はプログラム開発支援装置を備えたプラント監視制御システムの構成を示すブロック図、そして、図3〜図16はプログラム開発支援装置の各手段における動作を説明するための図で、各手段において扱うデータ構造、表示画面あるいは動作手順を示すフローチャートである。そして、図17はプログラム開発支援装置の全体動作を説明するためのフローチャート、図18は変形例にかかる全体動作を説明するためのフローチャートである。
Embodiment 1 FIG.
A program development support apparatus and a plant monitoring control system including a program development support apparatus according to a first embodiment of the present invention will be described with reference to the drawings. 1 to 18 are diagrams for explaining a program development support apparatus and a plant monitoring control system including the program development support apparatus according to the first embodiment. FIG. 1 is a block diagram showing a configuration of the program development support apparatus. FIG. 2 is a block diagram showing a configuration of a plant monitoring control system provided with a program development support device, and FIGS. 3 to 16 are diagrams for explaining the operation of each means of the program development support device. It is a flowchart which shows the data structure handled, a display screen, or an operation | movement procedure. FIG. 17 is a flowchart for explaining the overall operation of the program development support apparatus, and FIG. 18 is a flowchart for explaining the overall operation of the modification.

図1は本発明の実施の形態1によるプログラム開発支援装置を示すシステム構成図である。図において、プログラム開発支援装置10は、プラント監視用プログラムを構築するための計算機能が定義された複数の機能ブロック、および後述する各機能ブロックの根拠情報を保持する機能ブロックDB(Data Base)1と、機能ブロックDB1に保持された機能ブロックの処理順序および制御構造を定義していくためのインタフェースを生成する入出力インタフェース生成手段3と、入出力インタフェース生成手段3でフローを定義する過程で、機能ブロック間の変数依存関係から新たに機能ブロックを挿入する必要がある位置、つまりフロー中の機能ブロック挿入箇所を抽出する挿入箇所抽出手段4と、機能ブロックDB1に保持された機能ブロックの中から、挿入箇所抽出手段が抽出した挿入箇所に挿入すべきひとつまたは複数の機能ブロックからなる候補ブロック列を生成する候補ブロック列生成手段5と、入出力インタフェース生成手段3で機能ブロックを表示する際に、機能ブロック毎に対応した根拠情報を基に、当該機能ブロックの妥当性を判定する妥当性判定手段6と、入出力インタフェース生成手段3で定義した機能ブロックの処理順序および制御構造についての情報を保持するフローDB(Data Base)2と、を備えている。そして、入出力インタフェース生成手段3で生成したインタフェースは、タッチパネルやマウス、ディスプレイ等の入出力手段20を介して表示したり入力を受け付けたりするように構成している。   FIG. 1 is a system configuration diagram showing a program development support apparatus according to Embodiment 1 of the present invention. In the figure, a program development support apparatus 10 includes a plurality of functional blocks in which a calculation function for constructing a plant monitoring program is defined, and a functional block DB (Data Base) 1 that holds basis information of each functional block described later. In the process of defining the flow by the input / output interface generating means 3 and the input / output interface generating means 3 for generating an interface for defining the processing order and control structure of the functional blocks held in the functional block DB1, From the variable dependency relationship between the functional blocks, the position where the functional block needs to be newly inserted, that is, the insertion location extracting means 4 for extracting the functional block insertion location in the flow, and the functional block held in the functional block DB1 One or more functions to be inserted into the insertion location extracted by the insertion location extraction means When displaying a functional block with the candidate block sequence generating means 5 for generating a candidate block sequence consisting of locks and the input / output interface generating means 3, the validity of the functional block is based on the basis information corresponding to each functional block. And a flow DB (Data Base) 2 that holds information about the processing order of the functional blocks defined by the input / output interface generation means 3 and the control structure. The interface generated by the input / output interface generation unit 3 is configured to display or accept input via the input / output unit 20 such as a touch panel, a mouse, or a display.

また、本実施の形態1にかかるプログラム開発支援装置10は、図2に示すように原子力発電プラント200の監視制御を行うプラント監視制御システム100の主制御部101内に設置されており、さらに、入出力手段20はプラント監視制御システム100の入出力部120内に、機能ブロックDB1とフローDB2は、プラント監視制御システム100のデータベース102内に設けられ、構築したプログラムをプラント監視制御システム100ですぐに使用できるようになっている。なお、プログラム開発支援装置10は、必ずしもプラント監視制御システム内に設置する必要はなく、独立して形成するようにしてもよい。   Further, the program development support apparatus 10 according to the first embodiment is installed in the main control unit 101 of the plant monitoring control system 100 that performs monitoring control of the nuclear power plant 200 as shown in FIG. The input / output means 20 is provided in the input / output unit 120 of the plant monitoring control system 100, and the function blocks DB1 and flow DB2 are provided in the database 102 of the plant monitoring control system 100. It can be used for. The program development support device 10 does not necessarily have to be installed in the plant monitoring control system, and may be formed independently.

つぎに、プラント監視システムを構成する各手段について詳細に説明する。
<機能ブロックデータベース>
機能ブロックDB1は、あらかじめ定義された機能ブロックおよび各機能ブロックに対応する根拠情報を保持する。ここで機能ブロックは、計算処理と変数を定義したものであり、外部システムからの入力値を変数に代入する入力処理、変数の値を参照して外部システムへ出力する出力処理、変数値を参照する計算結果を別の変数に代入する計算処理に分類される。そして、根拠情報は、計算機能の実行においては直接関わらない情報であるが、同様の計算機能を実現する機能ブロックが複数ある場合に、適切な機能ブロックを選択するための情報である。具体的には、機能ブロック定義時の状態を表す情報、機能ブロックを定義するにあたり、制約を受けた法令、規則、または仕様書といった根拠となった文書についての情報、定義後に手動で付加される情報などがある。定義状態を表す情報として、定義日時などがある。入力文書についての情報として、文書名称、文書バージョン番号、文書の作成日時、文書が参照する法令名、開発方針などがある。これらの情報は、機能ブロック定義時に自動的に読み込まれるか、操作者が手動で入力する。定義後に付加される情報として、プログラム構築を行う操作者の嗜好、法令の廃止などがある。
Next, each means constituting the plant monitoring system will be described in detail.
<Functional block database>
The function block DB1 holds function information defined in advance and basis information corresponding to each function block. Here, the function block defines calculation processing and variables. Input processing that assigns input values from external systems to variables, output processing that refers to variable values and outputs to external systems, and references variable values It is classified into the calculation processing that substitutes the calculation result to another variable. The ground information is information that is not directly related to the execution of the calculation function, but is information for selecting an appropriate function block when there are a plurality of function blocks that realize the same calculation function. Specifically, information indicating the state at the time of functional block definition, information on the document that became the basis such as restricted laws, regulations, or specifications when defining the functional block, manually added after the definition There is information. Information indicating the definition state includes definition date and time. As information about an input document, there are a document name, a document version number, a document creation date, a law name referred to by the document, a development policy, and the like. These pieces of information are automatically read when the functional block is defined, or are manually input by the operator. Information added after definition includes preferences of operators who construct programs and abolition of laws and regulations.

図3に機能ブロックの例を示す。図3において、機能ブロックB031は外部システムからの入力値を変数in1に代入する入力処理が定義され、機能ブロックB032は変数outの値を参照して外部システムに出力する出力処理が定義され、機能ブロックB033は変数in1と変数in2の値を参照して加算した結果を変数outに代入する計算処理が定義されたものである。   FIG. 3 shows an example of functional blocks. In FIG. 3, the function block B031 defines an input process for assigning an input value from an external system to a variable in1, and the function block B032 defines an output process for outputting to the external system with reference to the value of the variable out. A block B033 defines a calculation process in which a result obtained by referring to the values of the variables in1 and in2 is substituted into a variable out.

<フローデータベース>
フローDB2は、入出力インタフェース生成手段3で定義した機能ブロックの処理順序および、条件分岐、繰り返しといった制御構造についての情報を保持する。図4に保持したフローの例を示す。図において、フローF041およびF042では、外部システムからの入力値をin1とin2に代入する機能ブロックB041、B042をそれぞれ実行する。F043では、in1の値がin2の値より大きければin1からin2を減算した値をoutに代入する機能ブロックB043を、in1の値がin2の値以下であればin2からin1を減算した値をoutに代入する機能ブロックB044を実行する。そして、F044では、outの値を外部システムに出力する機能ブロックB045を実行する事を示す。
<Flow database>
The flow DB 2 holds information about the control structure such as the processing order of the functional blocks defined by the input / output interface generation unit 3 and conditional branching and repetition. An example of the flow held in FIG. 4 is shown. In the figure, in the flows F041 and F042, function blocks B041 and B042 for substituting input values from the external system into in1 and in2, respectively, are executed. In F043, if the value of in1 is larger than the value of in2, the function block B043 that substitutes the value obtained by subtracting in2 from in1 into out is set to out. If the value of in1 is less than the value of in2, The function block B044 to be assigned to is executed. F044 indicates that the function block B045 that outputs the value of out to the external system is executed.

<入出力インタフェース生成手段>
入出力インタフェース生成手段3は、機能ブロックDB1に保持された機能ブロックの処理順序および制御構造を定義していくためのインタフェースを生成するものである。生成したインタフェースは、入出力手段8を介してプログラム開発者(操作者)に提示され、必要な情報を入力させることで、容易にプログラムを構築できるようになる。
<Input / output interface generation means>
The input / output interface generation means 3 generates an interface for defining the processing order and control structure of the functional blocks held in the functional block DB1. The generated interface is presented to the program developer (operator) via the input / output means 8, and the program can be easily constructed by inputting necessary information.

フローを定義する際のインタフェースは、例えば入出力手段20において、図5のような定義画面によって表示される。図5における定義画面はフローを構成するための機能ブロックの一覧を示す部品領域AP051と、フローを定義する作業領域AW051とで構成する。部品領域AP051には、機能ブロックDBが管理する機能ブロックの一覧を表示する。作業領域AW051はフローの定義開始時は空白となっており、部品領域AP051から機能ブロックを選んで作業領域AW051の任意の位置にドラッグ&ドロップすることで、機能ブロックの実行順序を定義することができる。また作業領域AW051では、任意の位置で制御構造を指定し、構造内で実行する機能ブロックおよび実行条件などを指定できる。   The interface for defining the flow is displayed on the input / output means 20, for example, on the definition screen as shown in FIG. The definition screen in FIG. 5 includes a component area AP051 indicating a list of functional blocks for configuring a flow, and a work area AW051 for defining a flow. A list of functional blocks managed by the functional block DB is displayed in the component area AP051. The work area AW051 is blank at the start of flow definition, and the function block execution order can be defined by selecting a function block from the parts area AP051 and dragging and dropping it to an arbitrary position in the work area AW051. it can. In the work area AW051, a control structure can be designated at an arbitrary position, and function blocks to be executed in the structure, execution conditions, and the like can be designated.

入出力インタフェース生成手段3において生成したインタフェースを用いて、フローを定義している途中で、挿入可能な候補ブロック列の生成についての要求コマンドが入力されると、挿入箇所抽出手段4および候補ブロック列生成手段5に対して、その時点でのフロー内で機能ブロックを挿入するべき箇所およびその箇所に対応した候補ブロック列を出力させるようにする。要求コマンドの入力は、例えば、定義画面横に候補ブロック列生成を意味するアイコンを表示しておき、アイコンがクリックされることにより、要求コマンドが入力されるようにしてもよい。また、作成中のフローのフローDB2への登録を要求した時や、フローからのソースコード生成を要求した時に自動的に挿入箇所の抽出や候補ブロック列生成を開始するようにしてもよい。挿入箇所の抽出と候補ブロック列生成の開始時には、その時点でのフロー定義内容を挿入箇所抽出手段4に出力する。   When a request command for generating an insertable candidate block sequence is input during the flow definition using the interface generated by the input / output interface generating unit 3, the insertion location extracting unit 4 and the candidate block sequence The generation means 5 is made to output a position where a functional block is to be inserted and a candidate block string corresponding to the position in the flow at that time. For example, the request command may be input by displaying an icon indicating generation of a candidate block string on the side of the definition screen and clicking the icon. Alternatively, when the registration of the flow being created is requested to be registered in the flow DB 2 or when the source code generation from the flow is requested, the extraction of the insertion portion and the generation of the candidate block sequence may be automatically started. At the start of extraction of an insertion location and generation of a candidate block sequence, the flow definition contents at that time are output to the insertion location extraction means 4.

<挿入箇所抽出手段>
挿入箇所抽出手段4は、入出力インタフェース生成手段3で定義中のフローを構成する機能ブロック間の変数依存関係から、値を定義されずに参照されている変数を検出し、候補ブロック列を挿入するべき箇所を抽出する。挿入箇所抽出手段4における処理の流れの一例を、図6のフローチャートを用いて説明する。
<Insertion extraction means>
The insertion location extraction unit 4 detects a variable that is referenced without defining a value from the variable dependency relationship between the functional blocks constituting the flow being defined by the input / output interface generation unit 3, and inserts a candidate block string Extract the places to do. An example of the flow of processing in the insertion location extraction means 4 will be described using the flowchart of FIG.

はじめに、入出力インタフェース生成手段3から入力されたフロー定義内容に基づいて、分岐毎機能ブロック列を生成する(Step1−1)。ここで分岐毎機能ブロック列は、フロー中に定義された条件分岐の条件毎に、実行される機能ブロック列である。Step1−2では、Step1−1で生成された分岐毎機能ブロック列を順に処理対象として、Step1−3へ進む。分岐毎機能ブロック列が全て処理済みであればStep1−8へ進む。   First, a function block sequence for each branch is generated based on the flow definition contents input from the input / output interface generating means 3 (Step 1-1). Here, the function block sequence for each branch is a function block sequence to be executed for each condition branch condition defined in the flow. In Step 1-2, the process proceeds to Step 1-3 with the function block sequence for each branch generated in Step 1-1 as a processing target in order. If all the functional block sequences for each branch have been processed, the process proceeds to Step 1-8.

Step1−3では、処理対象である分岐毎機能ブロック列における代入済み変数リスト、計算対象変数リスト、使用可能変数リストを空で初期化する。ここで、代入済み変数リストは、機能ブロック列を実行する際の各時点において、既に値を代入されており、参照することができる変数のリストである。また、計算対象変数リストは、生成する候補ブロック列中で最終的に代入されている必要がある変数のリストであり、使用可能変数リストは、候補ブロック列中で最初から参照できる変数のリストである。   In Step 1-3, the assigned variable list, the calculation target variable list, and the usable variable list in the functional block sequence for each branch to be processed are initialized to be empty. Here, the assigned variable list is a list of variables that have been assigned values and can be referred to at each time point when the function block sequence is executed. The calculation target variable list is a list of variables that need to be finally substituted in the candidate block sequence to be generated, and the usable variable list is a list of variables that can be referred to from the beginning in the candidate block sequence. is there.

Step1−4では、当該分岐毎機能ブロック列中の機能ブロックを前から順に処理対象としてStep1−5に進む。機能ブロックが全て処理済みであればStep1−9に進む。Step1−5では、当該機能ブロックで参照される変数および代入される変数を抽出する。Step1−6では、当該機能ブロックで参照される変数が代入済み変数リストに存在しない場合(「N」)、当該変数をエラー変数としてStep1−7に進む。存在する場合(「Y」)、Step1−8に進む。   In Step 1-4, the process proceeds to Step 1-5 with the functional blocks in the functional block sequence for each branch as processing targets in order from the front. If all the functional blocks have been processed, the process proceeds to Step 1-9. In Step 1-5, a variable referred to in the function block and a variable to be substituted are extracted. In Step 1-6, when the variable referred to in the functional block does not exist in the assigned variable list (“N”), the process proceeds to Step 1-7 using the variable as an error variable. If it exists (“Y”), go to Step 1-8.

Step1−7では、Step1−6でエラー変数とされた変数を計算対象変数リストに追加する。また、この時点で挿入箇所が決定されていなかった場合、当該機能ブロックの直前を挿入箇所とし、この時点での代入済み変数リストを使用可能変数とする。Step1−8では、当該機能ブロックで代入される変数を代入済み変数リストに追加する。   In Step 1-7, the variable determined as the error variable in Step 1-6 is added to the calculation target variable list. If the insertion location has not been determined at this point, the portion immediately before the functional block is set as the insertion portion, and the assigned variable list at this point is set as a usable variable. In Step 1-8, the variable substituted in the functional block is added to the assigned variable list.

Step1−9では、候補ブロック列生成要求を生成する。候補ブロック列生成要求は、当該分岐機能ブロック列における挿入箇所、計算対象変数リストおよび使用可能変数リストで構成される。ここで計算対象変数リストが空である場合は候補ブロック列生成要求を生成しない。以上の処理が終了した時点で、分岐毎機能ブロック列毎に生成された挿入候補ブロック列生成要求を候補ブロック列生成手段5に出力する。   In Step 1-9, a candidate block string generation request is generated. The candidate block string generation request includes an insertion location, a calculation target variable list, and an available variable list in the branch function block string. If the calculation target variable list is empty, no candidate block string generation request is generated. When the above processing is completed, an insertion candidate block sequence generation request generated for each functional block sequence for each branch is output to the candidate block sequence generation means 5.

図7を用いて、出力処理のみを定義したフローIF07を入力として挿入箇所を抽出する例で説明する。この例では、入力されたフローIF07に条件分岐がないため、定義された2つの機能ブロックB071、B072の組がそのまま分岐毎機能ブロック列BC071となる。1番目の機能ブロックB071の実行時点では代入済み変数が存在しないが、変数out1を参照しようとしている(参照する変数としてout1がある)。このため、この機能ブロックB071の直前が挿入箇所となり、使用可能変数リストLVA07は空となる。また、計算対象変数リストLVC07にout1が追加される。2つ目の機能ブロックの実行時点では代入済み変数リストにout1が追加されているが、ここでは変数out2を参照しようとしている。このため、out2も計算対象変数リストLVC07に追加される。以上のようにして、「挿入箇所LI07:1番目」、「計算対象変数LVC07:out1およびout2」、「使用可能変数LVA07:なし」、とする挿入候補ブロック列生成要求SR07が出力される。   With reference to FIG. 7, a description will be given of an example in which the insertion location is extracted using the flow IF07 defining only the output process as an input. In this example, since there is no conditional branch in the input flow IF07, a set of two defined functional blocks B071 and B072 becomes the functional block sequence BC071 for each branch as it is. There is no assigned variable at the time of execution of the first function block B071, but it is going to refer to the variable out1 (the variable to be referred to is out1). For this reason, immediately before this functional block B071 is an insertion location, the usable variable list LVA07 is empty. In addition, out1 is added to the calculation target variable list LVC07. At the time of execution of the second function block, out1 is added to the assigned variable list, but here, the variable out2 is to be referred to. For this reason, out2 is also added to the calculation target variable list LVC07. As described above, the insertion candidate block string generation request SR07, “insertion location LI07: first”, “calculation target variable LVC07: out1 and out2”, and “usable variable LVA07: none”, is output.

図8を用いて、入力処理、計算処理、出力処理および制御構造を定義したフローIF08を入力として挿入箇所を抽出する例について説明する。この例では、変数in1およびin2を外部システムから入力し、in1の値に応じて変数out1および変数out2の計算方法を切り替え、ここで計算されたout1およびout2の値を外部システムへ出力する機能ブロックを指定している。ただし、この例では、in1が0以下であった場合の処理内容にout2の計算が含まれていないため、正しく計算できない。この例ではまず、in1が0より大きかった場合とin1が0以下であった場合について、分岐毎機能ブロック列BC081とBC082を生成する。in1が0より大きかった場合の分岐毎機能ブロック列BC081では処理が不足していないため、挿入候補ブロック列生成要求を生成しない。   With reference to FIG. 8, an example of extracting an insertion location using a flow IF08 defining an input process, a calculation process, an output process, and a control structure as an input will be described. In this example, a function block that inputs variables in1 and in2 from an external system, switches the calculation method of variables out1 and variable out2 according to the value of in1, and outputs the values of out1 and out2 calculated here to the external system. Is specified. However, in this example, since the calculation of out2 is not included in the processing content when in1 is 0 or less, the calculation cannot be performed correctly. In this example, first, for each case where in1 is greater than 0 and in1 is 0 or less, functional block sequences BC081 and BC082 for each branch are generated. Since the function block sequence per branch BC081 when in1 is greater than 0 does not have insufficient processing, an insertion candidate block sequence generation request is not generated.

in1が0以下であった場合の分岐毎機能ブロック列BC082では、5番目の機能ブロックB0825の実行時点における代入済み変数はin1、in2およびout1であるが、out2を参照しようとしている。このため、この機能ブロックB0825の直前が挿入箇所となり、使用可能変数LVA08はin1、in2およびout1である。また、計算対象変数リストにout2が追加される。以上のようにして、「挿入箇所LI08:5番目」、「計算対象変数LVC08:out2」、「使用可能変数LVA08:in1、in2およびout1」として、挿入候補ブロック列生成要求SR08が出力される。   In the branch-by-branch function block sequence BC082 when in1 is 0 or less, the assigned variables at the time of execution of the fifth function block B0825 are in1, in2, and out1, but it is going to refer to out2. For this reason, immediately before this functional block B0825 becomes the insertion location, and the usable variable LVA08 is in1, in2, and out1. In addition, out2 is added to the calculation target variable list. As described above, the insertion candidate block sequence generation request SR08 is output as “insertion location LI08: fifth”, “calculation target variable LVC08: out2”, and “usable variable LVA08: in1, in2, and out1”.

<候補ブロック列生成手段>
候補ブロック列生成手段5は、挿入箇所抽出手段4で抽出された箇所に挿入する候補となるひとつまたは複数の機能ブロックからなる候補ブロック列を生成し、出力する。候補ブロック列生成手段5における処理の流れの一例を、図9のフローチャートに示す。この処理は再帰的に呼び出され、候補ブロック列になりうるブロック列を可能な限り生成していく。最初の呼び出し時の候補ブロック列は空であり、計算対象変数および使用可能変数は挿入候補ブロック列生成要求として与えられる。再帰呼び出し時は、呼び出し側の機能ブロック、計算対象変数および使用可能変数を使って処理を進める。
<Candidate block string generation means>
The candidate block sequence generation means 5 generates and outputs a candidate block sequence consisting of one or a plurality of functional blocks that are candidates for insertion at the location extracted by the insertion location extraction means 4. An example of the processing flow in the candidate block string generation means 5 is shown in the flowchart of FIG. This process is recursively called to generate as many block sequences as possible as candidate block sequences. The candidate block string at the time of the first call is empty, and the calculation target variable and the usable variable are given as an insertion candidate block string generation request. At the time of recursive call, the process proceeds using the function block, calculation target variable and usable variable on the call side.

Step2―1では、追加候補機能ブロックを機能ブロックDB1から探索する。ここで追加候補機能ブロックは、その時点での計算対象変数に値を代入する機能ブロックである。Step2−2では、Step2−1で探索された追加候補機能ブロックを順に処理対象としてStep2−3へ進む。追加候補機能ブロックが全て処理済みであれば生成処理を終了する。Step2―3では、処理対象である機能ブロックを候補ブロック列に追加する。Step2−4では、当該機能ブロックで代入される変数および参照される変数を抽出する。Step2―5では、当該機能ブロックで代入される変数を計算対象変数から削除し、使用可能変数に追加する。Step2―6では、当該機能ブロックで参照される変数が使用可能変数になければ、計算対象変数に追加する。Step2―7では、計算対象変数がなければStep2−8に進み、あればStep2−9に進む。Step2−8では、その時点での機能ブロックのひとまとまりを候補ブロック列として登録する。Step2−9では、再帰的にStep2−1からの処理を繰り返す。再帰処理終了後はStep2−10に進む。Step2―10では、ここで追加した機能ブロックを候補ブロック列から削除し、Step2−5およびStep2−6で変更した使用可能変数および計算対象変数を元に戻す。そして、Step2―2からの処理を繰り返す。以上の処理が終了した時点で候補ブロック列として登録されている全ての候補ブロック列を、入出力インタフェース生成手段3に出力する。   In Step 2-1, an additional candidate functional block is searched from the functional block DB1. Here, the additional candidate functional block is a functional block that substitutes a value for the calculation target variable at that time. In Step 2-2, the process proceeds to Step 2-3 with the additional candidate functional blocks searched in Step 2-1 as processing targets in order. If all the additional candidate function blocks have been processed, the generation process ends. In Step 2-3, the functional block to be processed is added to the candidate block string. In Step 2-4, a variable to be substituted in the function block and a variable to be referenced are extracted. In Step 2-5, the variable substituted in the functional block is deleted from the calculation target variable and added to the usable variable. In Step 2-6, if the variable referenced in the functional block is not an available variable, it is added to the calculation target variable. In Step 2-7, if there is no variable to be calculated, the process proceeds to Step 2-8, and if there is, the process proceeds to Step 2-9. In Step 2-8, a group of functional blocks at that time is registered as a candidate block string. In Step 2-9, the processing from Step 2-1 is recursively repeated. After the recursive process is completed, the process proceeds to Step 2-10. In Step 2-10, the function block added here is deleted from the candidate block string, and the usable variable and the calculation target variable changed in Step 2-5 and Step 2-6 are restored. Then, the processing from Step 2-2 is repeated. All candidate block sequences registered as candidate block sequences when the above processing is completed are output to the input / output interface generating means 3.

機能ブロックDB1に図10に示すような機能ブロックが保存されている場合について、上記の動作を具体的に説明する。
図11は、図7で説明した条件分岐がない場合の挿入候補ブロック列生成要求SR07を入力として候補を生成し、候補ブロック列を生成する例を説明するものである。この例では、使用可能変数LVA07がなく、out1およびout2を計算対象変数LVC07として生成処理を開始する。開始時点での追加候補機能ブロックのうち機能ブロック22を追加すると、out2が計算対象変数リストから使用可能変数リストに移動し、in2およびtmpが計算対象変数リストに追加される。この時点で計算対象変数が存在するため、再帰的に生成処理を繰り返す(AB1101)。次に機能ブロック21を追加することで、out1が計算対象変数リストから使用可能変数リストに移動し、in1が計算対象変数に追加される(AB1102)。さらに、機能ブロック31、機能ブロック02、機能ブロック01を追加することで、tmp、in2、in1が計算対象変数リストから使用可能変数リストに移動する(AB1103〜AB1104)。ここで計算対象変数がなくなるため、この時点の機能ブロック列PB1101を候補ブロック列として登録する。
The above operation will be specifically described in the case where the functional block as shown in FIG. 10 is stored in the functional block DB1.
FIG. 11 illustrates an example in which a candidate is generated by using the insertion candidate block sequence generation request SR07 when there is no conditional branch described in FIG. 7 and a candidate block sequence is generated. In this example, there is no usable variable LVA07, and generation processing is started with out1 and out2 as calculation target variables LVC07. When the functional block 22 is added among the additional candidate functional blocks at the start time, out2 moves from the calculation target variable list to the usable variable list, and in2 and tmp are added to the calculation target variable list. Since the calculation target variable exists at this time, the generation process is recursively repeated (AB1101). Next, by adding the function block 21, out1 moves from the calculation target variable list to the usable variable list, and in1 is added to the calculation target variable (AB1102). Furthermore, by adding the function block 31, the function block 02, and the function block 01, tmp, in2, and in1 move from the calculation target variable list to the usable variable list (AB1103 to AB1104). Here, since there are no calculation target variables, the functional block sequence PB1101 at this time is registered as a candidate block sequence.

次に、最後に追加した機能ブロック01を削除する。この時、別の追加候補機能ブロックが存在しないため再帰処理を抜け、その前に追加した機能ブロック02を削除する。この時、追加候補機能ブロックとして機能ブロック01が見つかるが、候補ブロック列に登録した機能ブロック列と重複するので、ここでは追加しない。さらに再帰処理を抜け、機能ブロック31を削除して機能ブロック32を追加する。ここでまた、機能ブロック02および機能ブロック01を追加し、候補ブロック列PB1102として登録する。同様の処理を繰り返し、最終的に7つの候補ブロック列PB1101〜PB1107を出力する。   Next, the last added function block 01 is deleted. At this time, since another additional candidate functional block does not exist, the recursive process is exited, and the functional block 02 added before that is deleted. At this time, the functional block 01 is found as an additional candidate functional block, but it is not added here because it overlaps with the functional block sequence registered in the candidate block sequence. Further, the recursion process is exited, the function block 31 is deleted, and the function block 32 is added. Here, the function block 02 and the function block 01 are added and registered as a candidate block string PB1102. Similar processing is repeated, and finally seven candidate block sequences PB1101 to PB1107 are output.

図12は、図8で説明した条件分岐がある場合の挿入候補ブロック列生成要求SR08を入力として候補を生成し、候補ブロック列を生成する例を説明するものである。この例では、in1、in2およびout1を使用可能変数LVA08とし、out2を計算対象変数LVC08として生成処理を開始する。開始時点での追加候補機能ブロックのうち機能ブロック22を追加すると、out2が計算対象変数リストから使用可能変数リストに移動し、tmpが計算対象変数リストに追加される。in2は使用可能変数であるため、計算対象変数には追加しない。この時点で計算対象変数が存在するため、再帰的に生成処理を繰り返す(AB1201)。次に機能ブロック31を追加することで、tmpが計算対象変数リストから使用可能変数リストに移動する。ここで計算対象変数がなくなるため、この時点の機能ブロック列を候補ブロック列PB1201として登録する(AB1202)。次に、最後に追加した機能ブロック31を削除して機能ブロック32を追加し、候補ブロック列PB1202として登録する(AB1203)。同様の処理を繰り返し、最終的に3つの候補ブロック列PB1201〜PB1203を出力する。   FIG. 12 illustrates an example in which a candidate is generated by using the insertion candidate block string generation request SR08 as an input when there is a conditional branch described in FIG. 8, and a candidate block string is generated. In this example, in1, in2, and out1 are set as usable variables LVA08, and out2 is set as a calculation target variable LVC08. When the functional block 22 is added among the additional candidate functional blocks at the start time, out2 moves from the calculation target variable list to the usable variable list, and tmp is added to the calculation target variable list. Since in2 is a usable variable, it is not added to the calculation target variable. Since the calculation target variable exists at this time, the generation process is recursively repeated (AB1201). Next, by adding a function block 31, tmp moves from the calculation target variable list to the usable variable list. Since there are no more variables to be calculated here, the functional block sequence at this time is registered as a candidate block sequence PB1201 (AB1202). Next, the last added functional block 31 is deleted and a functional block 32 is added, and registered as a candidate block string PB1202 (AB1203). Similar processing is repeated, and finally three candidate block sequences PB1201 to PB1203 are output.

<妥当性判定手段>
妥当性判定手段6は、各機能ブロックの根拠情報から、当該機能ブロックをフローに使用する妥当性を判定する。妥当性判定手段6における処理の流れの一例を、図13のフローチャートに示す。本例では、文書名称と文書バージョン番号を参照して機能ブロックの妥当性を判定する。Step6―1では、機能ブロックDB1内に保存された各機能ブロックを順に処理対象としてStep6−2へ進む。機能ブロックが全て処理済みであればStep6−3へ進む。Step6―2では、処理対象である機能ブロックの文書バージョン番号を、当該機能ブロックの文書名称に対応する最新バージョン番号として記録する。当該文書名称で既に最新バージョン番号が記録されている場合、新しい方を最新バージョン番号とする。Step6−3では、機能ブロックDB1内の各機能ブロックを順に処理対象としてStep6−4へ進む。機能ブロックが全て処理済みであれば判定処理を終了する。Step6―4では、処理対象である機能ブロックの文書名称について、対応する最新バージョン番号と当該機能ブロックの文書バージョン番号とを比較し、当該機能ブロックの文書バージョン番号が古ければ、当該機能ブロックは妥当でないと判定し、判定結果を入出力インタフェース生成手段3に出力する。
<Validity judging means>
The validity determination means 6 determines the validity of using the functional block in the flow from the basis information of each functional block. An example of the flow of processing in the validity determination means 6 is shown in the flowchart of FIG. In this example, the validity of the functional block is determined with reference to the document name and the document version number. In Step 6-1, each functional block stored in the functional block DB 1 is sequentially processed, and the process proceeds to Step 6-2. If all the functional blocks have been processed, the process proceeds to Step 6-3. In Step 6-2, the document version number of the functional block to be processed is recorded as the latest version number corresponding to the document name of the functional block. If the latest version number is already recorded with the document name, the newer version is the latest version number. In Step 6-3, each functional block in the functional block DB1 is sequentially processed, and the process proceeds to Step 6-4. If all functional blocks have been processed, the determination process ends. In Step 6-4, for the document name of the functional block to be processed, the corresponding latest version number is compared with the document version number of the functional block. If the document version number of the functional block is old, the functional block is It is determined that it is not valid, and the determination result is output to the input / output interface generation means 3.

つぎに、機能ブロックに対する妥当性判定の具体的な例を示す。図14は、妥当性判定手段6における機能ブロックの妥当性を判定した例である。図において、妥当性判定手段6は、各機能ブロックに文書名称と文書バージョンからなる根拠情報を対応つけた表CTAIに対して、各文書の最新バージョン番号を対応させたアップデートデータUPDとを比較し、各機能ブロックの妥当性を判定する。ここでは、文書「係数定義書」について、最新バージョンがVer0.2であるのに対し、機能ブロック31の文書バージョンがVer.01と最新でないことから妥当性RDを「×」と判定している。他の機能ブロックについてはそれぞれ文書名に対するバージョン番号が最新のものであることから妥当性RDを「○」としている。   Next, a specific example of validity determination for a functional block will be shown. FIG. 14 shows an example of determining the validity of the functional block in the validity determining means 6. In the figure, the validity determination means 6 compares the update data UPD in which the latest version number of each document is associated with the table CTAI in which the basis information including the document name and the document version is associated with each functional block. The validity of each functional block is determined. Here, for the document “coefficient definition document”, the latest version is Ver0.2, whereas the document version of the functional block 31 is Ver. The validity RD is determined to be “x” because it is not 01 and the latest. For the other functional blocks, the version number for the document name is the latest, so the validity RD is “◯”.

上記の例では、関連する複数の根拠情報から妥当性を判定する例を示したが、最新の定義日時の機能ブロックのみ妥当とするなど、単一の情報から判定してもよい。また、廃止となった法令名称のリストなどを別のデータとして保持しておき、当該リストに含まれる法令名称を付加属性に持つ機能ブロックは妥当でないと判定するなどとしてもよい。また、図1の構成では、妥当性判定手段6の判定結果を入出力インタフェース生成手段3に出力するように構成しているが、機能ブロックDB1の更新時に妥当性判定手段6の判定結果を機能ブロックDB1に反映(保存)しておき、入出力インタフェース生成手段3は機能ブロックDB1から判定結果を取得するようにしてもよい。   In the above example, the validity is determined from a plurality of related ground information. However, the validity may be determined from a single piece of information, for example, only the function block having the latest definition date is valid. Alternatively, a list of legal names that have been abolished may be stored as separate data, and a functional block having the legal name included in the list as an additional attribute may be determined to be invalid. Further, in the configuration of FIG. 1, the determination result of the validity determination unit 6 is configured to be output to the input / output interface generation unit 3, but the determination result of the validity determination unit 6 is used when the function block DB1 is updated. The result may be reflected (saved) in the block DB 1 and the input / output interface generation unit 3 may acquire the determination result from the functional block DB 1.

入出力インタフェース生成手段3は、挿入箇所抽出手段4から出力された挿入箇所に関する情報、候補ブロック列生成手段5から出力された挿入箇所毎の挿入候補となる候補ブロック列に基づいて、定義中のフローに対して、挿入箇所とともに、挿入候補となる候補ブロック列を提示するとともに、提示した中から1つを選択できるようなインタフェースを生成し、入出力装置20を介して表示する。これにより、プログラムの開発者(操作者)は、表示された候補ブロック列の中から一つの候補ブロック列を選択(例えば、表示画面中の対象となる候補ブロック列をクリック操作)すると、定義途中のフローにおける挿入箇所に、選択された候補ブロック列が挿入される。このとき、妥当性判定手段6で妥当でないと判定された機能ブロックまたは、妥当でないと判定された機能ブロックを含む候補ブロック列は、妥当でないことが分かるように表示する。さらに、要求コマンド(妥当でないことを示す表示部分をクリック操作)や事前の設定に基づいて妥当でない理由などを表示してもよい。   The input / output interface generation means 3 is based on the information regarding the insertion location output from the insertion location extraction means 4 and the candidate block sequence that is the insertion candidate for each insertion location output from the candidate block sequence generation means 5. For the flow, a candidate block sequence that is an insertion candidate is presented together with the insertion location, and an interface that allows one to be selected from the presented is generated and displayed via the input / output device 20. As a result, when the program developer (operator) selects one candidate block sequence from the displayed candidate block sequences (for example, clicks on the target candidate block sequence on the display screen), the program is in the process of being defined. The selected candidate block string is inserted at the insertion location in the flow of. At this time, the function block determined to be invalid by the validity determination means 6 or the candidate block string including the function block determined to be invalid is displayed so that it can be seen that it is not valid. Further, a request command (clicking operation on a display portion indicating that it is not valid) or a reason for being invalid based on a prior setting may be displayed.

図15は、図7に示すフローを定義中に、候補生成要求(候補ブロック列生成要求SR07)に基づいて図11に示す7つの候補ブロック列が出力された場合に挿入する候補ブロック列を選択させるために、入出力装置20に表示させた画面の例である。また、図16は、図8に示すフローを定義中に、候補生成要求(候補ブロック列生成要求SR08)に基づいて図12に示す3つの候補ブロック列が出力された場合に、挿入する候補ブロック列を選択させるために、入出力装置20に表示させた画面の例である。   15 selects candidate block sequences to be inserted when the seven candidate block sequences shown in FIG. 11 are output based on the candidate generation request (candidate block sequence generation request SR07) while defining the flow shown in FIG. This is an example of a screen displayed on the input / output device 20 in order to perform the operation. FIG. 16 shows candidate blocks to be inserted when the three candidate block sequences shown in FIG. 12 are output based on the candidate generation request (candidate block sequence generation request SR08) while defining the flow shown in FIG. It is an example of a screen displayed on the input / output device 20 in order to select a column.

図15の例では、フロー定義中の作業領域に候補ブロック列を挿入すべき位置を表示(星印)するとともに、その位置に挿入すべき候補ブロック列を一覧表示している。このとき、図14の例で妥当でないと判定された機能ブロック(31)を含む候補ブロック列には、禁止または注意を喚起するための禁止マークを付している。したがって、プログラムを構築する際には、禁止マークを付されていないものから候補ブロック列を選択すれば、法令や仕様書等の要求から外れた機能ブロックを含む候補ブロック列用いてしまうことを避けることが容易にできる。また、禁止マーク部分をクリックすれば、禁止マークを付けた理由(バージョンが最新でない、または更新日が古い)を表示させるようにしたり、絶対使用してはならないのか、使用する際に考慮すべきかなど、禁止の度合いによってマークの色や形式等を変えたりしておけば、容易に最適な候補ブロックを選択することができる。   In the example of FIG. 15, the position where a candidate block string is to be inserted is displayed (star) in the work area in the flow definition, and a list of candidate block strings to be inserted at that position is displayed. At this time, the prohibition mark for prohibiting or calling attention is attached to the candidate block string including the functional block (31) determined to be invalid in the example of FIG. Therefore, when building a program, if candidate block sequences are selected from those not marked with a prohibition mark, it is possible to avoid using candidate block sequences including functional blocks that are out of compliance with laws and specifications. Can be easily done. Also, if you click the prohibition mark part, the reason why the prohibition mark was added (version is not the latest or the update date is old) is displayed, should it be used absolutely or should be considered when using it If the color or format of the mark is changed depending on the degree of prohibition, the optimum candidate block can be easily selected.

図16の例でもフロー定義中の作業領域に候補ブロック列を挿入すべき位置を表示(星印)するとともに、その位置に挿入すべき候補ブロック列を一覧表示している。そして、図14の例で妥当でないと判定された機能ブロック(31)を含む候補ブロック列を網掛けで表示し、ポインタを置かれた候補ブロック列については妥当でない理由を表示するようにしている。   In the example of FIG. 16 as well, positions at which candidate block strings are to be inserted are displayed (stars) in the work area in the flow definition, and candidate block strings to be inserted at the positions are displayed as a list. Then, the candidate block sequence including the functional block (31) determined to be invalid in the example of FIG. 14 is displayed by shading, and the reason why the candidate block sequence on which the pointer is placed is not displayed is displayed. .

これら一連の流れをまとめたのが、図17に示すフローチャートである。
プログラム構築を始めたい場合、本実施の形態1にかかるプログラム開発支援装置10を起動する。すると、はじめに、機能ブロックDB1に保存されたブロック情報を呼び出す(ステップMS10)。つぎに、呼び出したブロック情報を基に、図5に示すようなフロー定義ができるインタフェースを生成する(ステップMS20)。生成したインタフェースに基づき、入出力手段20を介して機能ブロックの選択とフローへの挿入、制御構造の指定を受け付け(ステップMS30)、挿入候補を要求するコマンドが発生したら(MS40で「Y」)、定義中のフローに対して挿入箇所抽出手段4に変数の依存性に基づいて挿入箇所を抽出(ステップMS200)させる。そして、抽出した箇所に適する候補ブロック列を候補ブロック列生成手段5に生成(ステップMS210)させる。さらに、生成した候補ブロック列中の各機能ブロックに対し妥当性判定手段6に根拠情報に基づいた妥当性を判定(ステップMS220)させる。すると、ステップMS20に移行し、図15、図16に示したように、根拠情報の妥当性を考慮して挿入する候補ブロック列を選択するためのインタフェースを生成する。
A series of these flows is summarized in the flowchart shown in FIG.
When it is desired to start program construction, the program development support apparatus 10 according to the first embodiment is activated. Then, first, the block information stored in the functional block DB1 is called (step MS10). Next, an interface capable of defining a flow as shown in FIG. 5 is generated based on the called block information (step MS20). Based on the generated interface, selection of a functional block, insertion into a flow, and designation of a control structure are accepted via the input / output means 20 (step MS30), and when a command requesting an insertion candidate is generated ("Y" in MS40) The insertion location extraction means 4 is made to extract the insertion location based on the dependency of the variable for the flow being defined (step MS200). Then, the candidate block sequence suitable for the extracted location is generated by the candidate block sequence generation means 5 (step MS210). Further, the validity determination means 6 determines the validity based on the basis information for each functional block in the generated candidate block string (step MS220). Then, the process proceeds to step MS20, and as shown in FIGS. 15 and 16, an interface for selecting a candidate block sequence to be inserted in consideration of the validity of the basis information is generated.

一方、挿入候補を要求するコマンドが発生することがなく(MS40で「N」)ても、フロー定義を継続する動作があれば(MS100で「Y」)、ステップMS30に移行して候補ブロック列の挿入や制御構造の指定を継続して行う。あるいは、挿入候補生成を要求するコマンドが発生することがなく(MS40で「N」)、フロー定義を継続する動作がなければ(MS100で「N」)、プログラム構築動作を終了する。   On the other hand, even if a command requesting an insertion candidate does not occur (“N” in MS 40), if there is an operation to continue the flow definition (“Y” in MS 100), the process proceeds to step MS 30 and a candidate block string Continue to insert and specify control structure. Alternatively, if a command for requesting insertion candidate generation does not occur (“N” in MS40) and there is no operation for continuing the flow definition (“N” in MS100), the program construction operation is terminated.

以上のようにして、定義途中のフローに挿入する候補ブロック列を提示し、操作者は候補ブロック列を選択するだけで、フローを完成させることができる。図7、図11および図15で示した例では、外部システムに出力する変数を定義するだけで、これらの変数を計算する候補を提示し、挿入することができる。図8、図12および図16で示した例では、操作者がフローを誤って定義し、不足部分を把握できていない場合でも、それを補完するための候補を提示し、挿入することができる。   As described above, the candidate block sequence to be inserted into the flow in the middle of the definition is presented, and the operator can complete the flow only by selecting the candidate block sequence. In the examples shown in FIGS. 7, 11, and 15, candidates for calculating these variables can be presented and inserted simply by defining the variables to be output to the external system. In the example shown in FIG. 8, FIG. 12, and FIG. 16, even if the operator defines the flow incorrectly and does not grasp the shortage portion, the candidate for complementing it can be presented and inserted. .

なお、上記操作例では、生成した候補ブロック列中の機能ブロックに対して根拠情報を判定する例について説明したが、例えば、図5における部品領域中内に表示された全ブロックに対して、あるいは部品領域内でカーソルを合わせた機能ブロック、あるいは部品領域から作業領域にドラッグ&ドロップを行うときに、その機能ブロックが根拠情報に基づいて妥当か否か表示するようにしてもよい。   In the above operation example, the example in which the basis information is determined for the functional block in the generated candidate block sequence has been described. For example, for all the blocks displayed in the component area in FIG. When dragging and dropping a functional block with the cursor in the component area or from the component area to the work area, whether or not the functional block is valid may be displayed based on the ground information.

また、上記操作例では、新規にプログラムを構築する場合について説明したが、既存のプログラムを修正する場合に適用してもよい。その場合、例えば、図18に示すように、修正したいプログラムを呼び出すステップMS5をステップMS10の手前に挿入する。そして、妥当性判定手段6による判定ステップMS220をステップMS10とMS20の間に挿入する。これにより、呼び出したプログラム中の機能ブロックやフロー定義に使用する全ての機能ブロックの法令や仕様書等への適合性を判定することができるようになる。つまり、本実施の形態にかかるプログラム開発支援装置を利用して、プログラムの新規構築だけでなく、既存のプログラムの修正も法令や仕様等への適合性を損なうことなく容易に行うことができる。   In the above operation example, the case where a new program is constructed has been described. However, the present invention may be applied to the case where an existing program is modified. In this case, for example, as shown in FIG. 18, step MS5 for calling the program to be corrected is inserted before step MS10. And determination step MS220 by the validity determination means 6 is inserted between steps MS10 and MS20. This makes it possible to determine the suitability of the functional blocks in the called program and all the functional blocks used for the flow definition to the laws and specifications. That is, by using the program development support apparatus according to the present embodiment, not only new construction of a program but also modification of an existing program can be easily performed without impairing conformity to laws and specifications.

以上のように、本発明の実施の形態1にかかるプログラム開発支援装置によれば、変数を用いた計算処理を定義した複数の機能ブロックを組み合わせてプログラムを構築するプログラム開発支援装置10であって、複数の機能ブロック、および複数の機能ブロックのそれぞれの計算処理を定義した際の根拠に関する根拠情報を管理する機能ブロックデータベース1と、機能ブロックデータベース1に保持された機能ブロックを組み合わせてプログラムのフローを定義していくためのインタフェースを生成する(入出力)インタフェース生成手段3と、生成したインタフェースに基づいて定義中のフローに対し、当該フローに組み込まれた機能ブロック間の変数依存関係に基づいて、機能ブロックを挿入する必要がある箇所を抽出する挿入箇所抽出手段4と、機能ブロックデータベース1に保持された機能ブロックを用いて、挿入箇所抽出手段4が抽出した挿入箇所に挿入すべきひとつまたは複数の機能ブロックからなる候補ブロック列を生成する候補ブロック列生成手段5と、候補ブロック列生成手段5が生成した候補ブロック列に対し、当該候補ブロック列中の各機能ブロックの根拠情報と、あらかじめ定めた基準とに基づいて、当該候補ブロック列の妥当性を判定する妥当性判定手段6と、を備え、インタフェース生成手段3は、挿入箇所抽出手段4が挿入箇所を抽出した場合に、候補ブロック列生成手段5が生成した候補ブロック列を妥当性とともに提示するためのインタフェースを生成するように構成したので、法令や仕様書といった規制がある場合にも、規制に準拠して適切な計算処理が可能なプログラムを容易に構築するプログラム開発支援装置を得ることができる。   As described above, according to the program development support device according to the first exemplary embodiment of the present invention, the program development support device 10 is configured to construct a program by combining a plurality of functional blocks defining calculation processing using variables. , A functional flow database 1 for managing the basis information on the basis when the calculation processing of each of the plurality of functional blocks and the plurality of functional blocks is defined, and the functional block held in the functional block database 1 are combined and the program flow Interface generating means 3 for generating an interface for defining the interface, and for the flow being defined based on the generated interface, based on the variable dependency relationship between the functional blocks incorporated in the flow , Where to insert the functional block A candidate block sequence for generating a candidate block sequence consisting of one or a plurality of functional blocks to be inserted into the insertion location extracted by the insertion location extraction means 4 using the output means 4 and the functional blocks held in the functional block database 1 For the candidate block sequence generated by the generation unit 5 and the candidate block sequence generation unit 5, the validity of the candidate block sequence based on the basis information of each functional block in the candidate block sequence and a predetermined criterion The interface generation unit 3 presents the candidate block sequence generated by the candidate block sequence generation unit 5 together with the validity when the insertion location extraction unit 4 extracts the insertion location. In order to comply with the regulations, there are regulations such as laws and specifications. A switching calculation processing that is programmable it is possible to obtain an aid device for easily constructed.

とくに、挿入箇所抽出手段4は、インタフェースにおいて挿入候補要求(挿入候補ブロック列生成要求)を受け付けたときに、挿入箇所の抽出を行うように構成したので、操作者が必要と感じた時に、必要な候補ブロック列を提示できるので、操作性が良くなる。   In particular, since the insertion location extraction means 4 is configured to extract the insertion location when an insertion candidate request (insertion candidate block string generation request) is received at the interface, it is necessary when the operator feels necessary. Therefore, the operability is improved.

そして、本発明の実施の形態1にかかるプラント監視制御システム100によれば、プラント200の監視制御を行うための主制御部101と、主制御部101を動作させるためのプログラムを構築するための上述したプログラム開発支援装置10を備えるようにしたので、当該プラントの運転において遵守すべき法令や仕様書といった規制に準拠して適切な計算処理が可能なプログラムを容易に構築し、安全に運転管理が出来るようになる。   And according to the plant monitoring control system 100 concerning Embodiment 1 of this invention, the main control part 101 for performing monitoring control of the plant 200, and the program for operating the main control part 101 are built. Since the program development support device 10 described above is provided, a program capable of appropriate calculation processing can be easily constructed in accordance with regulations such as laws and specifications to be observed in operation of the plant, and operation management can be performed safely. Will be able to.

実施の形態2.
本実施の形態2にかかるプログラム開発支援装置は、実施の形態1にかかるプログラム開発支援装置に対して、フローにおいて冗長となる機能ブロックを抽出する冗長ブロック抽出手段をさらに備えたものである。図19〜図23は本実施の形態2にかかるプログラム開発支援装置について説明するためのもので、図19はプログラム開発支援装置の構成を示す機能ブロック図、図20はプログラム開発支援装置の全体動作を示すフローチャートである。そして、図21は冗長ブロック抽出手段の動作を説明するためのフローチャート、図22は冗長ブロック抽出手段で冗長ブロックを抽出する際のデータ処理方法を示す図、図23は冗長ブロックの抽出結果を反映して生成したインタフェースに基づく画面表示例を示す。
Embodiment 2. FIG.
The program development support apparatus according to the second embodiment further includes a redundant block extraction unit that extracts functional blocks that are redundant in the flow with respect to the program development support apparatus according to the first embodiment. 19 to 23 are diagrams for explaining the program development support apparatus according to the second embodiment. FIG. 19 is a functional block diagram showing a configuration of the program development support apparatus. FIG. 20 is an overall operation of the program development support apparatus. It is a flowchart which shows. FIG. 21 is a flowchart for explaining the operation of the redundant block extracting means, FIG. 22 is a diagram showing a data processing method when the redundant block extracting means extracts a redundant block, and FIG. 23 reflects the redundant block extraction result. A screen display example based on the generated interface will be shown.

本発明の実施の形態2にかかるプログラム開発支援装置10Bの構成は、図19に示すように、実施の形態1にかかるプログラム開発支援装置に対して冗長ブロック抽出手段71を追加したものである。そのため、全体動作としては、図20に示すように根拠情報の判定動作(ステップMS220)の後に、冗長ブロックの抽出動作(ステップMS310)が加わった。冗長ブロック抽出手段71を備えたことにより、データ入出力関係の変化が生じるが、機能ブロックDB1、フローDB2、挿入箇所抽出手段4、候補ブロック列生成手段5といった他の構成の機能については、基本的に実施の形態1におけるものと同様である。また、入出力インタフェース生成手段3については、冗長ブロック抽出手段71から出力されたデータを反映してインタフェースを生成する機能が追加されるが、その他の機能については実施の形態1と同様である。   The configuration of the program development support apparatus 10B according to the second exemplary embodiment of the present invention is obtained by adding redundant block extraction means 71 to the program development support apparatus according to the first exemplary embodiment, as shown in FIG. Therefore, as an overall operation, a redundant block extraction operation (step MS310) is added after the ground information determination operation (step MS220) as shown in FIG. Although the data input / output relationship changes due to the provision of the redundant block extraction means 71, the functions of other configurations such as the functional block DB1, the flow DB2, the insertion location extraction means 4, and the candidate block string generation means 5 are basically In particular, this is the same as in the first embodiment. In addition, the input / output interface generation unit 3 has a function of generating an interface reflecting the data output from the redundant block extraction unit 71, but the other functions are the same as those in the first embodiment.

<冗長ブロック抽出手段>
冗長ブロック抽出手段71では、生成された候補ブロック列中の機能ブロックのそれぞれについて、当該機能ブロックまたは候補ブロック列を挿入した場合のフローにおいて冗長になる機能ブロックを抽出する。冗長ブロック抽出手段71における処理の流れの一例を、図21のフローチャートを用いて説明する。
<Redundant block extraction means>
The redundant block extracting means 71 extracts, for each functional block in the generated candidate block string, a functional block that becomes redundant in the flow when the functional block or candidate block string is inserted. An example of the processing flow in the redundant block extraction means 71 will be described with reference to the flowchart of FIG.

Step3−1では、候補ブロック列生成手段5で生成された候補ブロック列を順に処理対象としてStep3−2へ進む。候補ブロック列が全て処理済みであれば抽出処理を終了する。Step3―2では、ユーザが指定したフローに当該候補ブロック列を挿入した機能ブロック列を生成し、挿入後機能ブロック列とする。Step3−3では、挿入後機能ブロック列における挿入箇所より前の機能ブロックを順に判定対象としてStep3−4へ進む。挿入箇所より前の機能ブロックが全て判定済みであれば、処理対象である候補ブロック列の処理を終了する。Step3−4では、判定対象である機能ブロックで代入される変数を判定対象変数として抽出する。   In Step 3-1, the candidate block sequence generated by the candidate block sequence generating means 5 is sequentially processed, and the process proceeds to Step 3-2. If all candidate block sequences have been processed, the extraction process ends. In Step 3-2, a function block sequence in which the candidate block sequence is inserted into the flow designated by the user is generated and is set as the post-insertion function block sequence. In Step 3-3, the process advances to Step 3-4 with the function blocks before the insertion location in the post-insertion functional block sequence being sequentially determined. If all the functional blocks before the insertion location have been determined, the processing of the candidate block sequence that is the processing target ends. In Step 3-4, the variable substituted in the functional block that is the determination target is extracted as the determination target variable.

Step3―5では、挿入後機能ブロック列における判定対象機能ブロックより後の機能ブロックを順に比較対象としてStep3−6へ進む。判定対象機能ブロックより後の機能ブロックがすべて比較済みであれば、Step3−8へ進む。Step3−6では、比較対象である機能ブロックで参照している変数を抽出する。   In Step 3-5, the process proceeds to Step 3-6 with the functional blocks after the determination target functional block in the post-insertion functional block sequence being sequentially compared. If all the functional blocks after the determination target functional block have been compared, the process proceeds to Step 3-8. In Step 3-6, a variable referred to in the functional block to be compared is extracted.

Step3―7では、比較対象である機能ブロックで判定対象変数を参照していたら(「Y」)、Step3−9へ進む。そうでなければ(「N」)、比較対象である機能ブロックに対する比較処理を終了する。Step3−8では、判定対象である機能ブロックは冗長ではないと判定し、当該機能ブロックに対する判定処理を終了する。Step3―9では、判定対象である機能ブロックは冗長機能ブロックであると判定し、当該機能ブロックに対する判定処理を終了する。最終的に、各候補ブロック列に対する判定結果を出力する。   In Step 3-7, if the determination target variable is referenced in the functional block to be compared (“Y”), the process proceeds to Step 3-9. Otherwise (“N”), the comparison process for the functional block to be compared is terminated. In Step 3-8, it is determined that the functional block to be determined is not redundant, and the determination process for the functional block is terminated. In Step 3-9, it is determined that the functional block to be determined is a redundant functional block, and the determination process for the functional block is terminated. Finally, the determination result for each candidate block sequence is output.

冗長ブロック抽出手段71での抽出動作の具体的な例について、図22を用いて説明する。図22に示すような機能ブロックが機能ブロックDB1に登録されている状態で、フローIF021を定義し、候補の生成を要求すると、機能ブロックB0213を挿入箇所として、7つの候補ブロック列PB211〜PB217が生成される。この7つの候補ブロック列に対して、5つの冗長ブロックRB213〜RB217が抽出される。図中候補ブロックPB213、PB214あるいはPB217を操作者が選択した場合、当該候補ブロック列をフローIF021に挿入すると、機能ブロック01で代入される変数in1の値を参照する機能ブロックが含まれないため、挿入後のフローでは機能ブロック01が冗長となる。同様に、候補ブロック列PB215、PB216あるいはPB217をフローIF021に挿入すると、挿入後のフローで機能ブロック02が冗長となる。これらの冗長な機能ブロックは、操作者が誤って定義したものである可能性がある。   A specific example of the extraction operation by the redundant block extraction means 71 will be described with reference to FIG. When the function IF as shown in FIG. 22 is registered in the function block DB1 and the flow IF 021 is defined and a candidate is requested to be generated, seven candidate block strings PB211 to PB217 are obtained with the function block B0213 as an insertion location. Generated. Five redundant blocks RB213 to RB217 are extracted for the seven candidate block strings. When the operator selects candidate blocks PB213, PB214, or PB217 in the figure, when the candidate block sequence is inserted into the flow IF021, a function block that refers to the value of the variable in1 substituted in the function block 01 is not included. In the flow after insertion, the functional block 01 becomes redundant. Similarly, when candidate block sequence PB215, PB216, or PB217 is inserted into flow IF021, functional block 02 becomes redundant in the flow after insertion. These redundant functional blocks may have been incorrectly defined by the operator.

そして、入出力インタフェース生成手段3では、図23に示すように、実施の形態1におけるものと同様に、候補ブロック列のリストを表示するとともに、挿入箇所(星印)に当該候補ブロック列を挿入した場合に、フローにおいて冗長となる冗長ブロックを表示する。ここで、冗長ブロックがある候補ブロック列をユーザが選択した場合、定義途中のフローに選択された候補ブロック列を挿入するとともに、フローから冗長ブロックを削除する。なお、図23は、機能ブロック(31)の根拠情報が妥当でないと判定されている場合の例である。   Then, as shown in FIG. 23, the input / output interface generation means 3 displays a list of candidate block strings and inserts the candidate block string at the insertion location (star), as in the first embodiment. In this case, redundant blocks that are redundant in the flow are displayed. Here, when the user selects a candidate block string having a redundant block, the selected candidate block string is inserted into the flow in the middle of definition and the redundant block is deleted from the flow. FIG. 23 is an example of a case where it is determined that the basis information of the functional block (31) is not valid.

冗長ブロックを削除するかどうかは、ユーザに確認(確認用インタフェース生成)してもよい。また、冗長ブロックが存在する候補ブロック列を表示しないようにしてもよいし、冗長ブロックがない候補ブロック列がある場合は冗長ブロックがある候補ブロック列を表示せず、冗長ブロックがない候補ブロック列がない場合は冗長ブロックがある候補ブロック列を表示するようにしてもよい。   Whether to delete the redundant block may be confirmed with the user (generation of a confirmation interface). In addition, a candidate block string having redundant blocks may not be displayed. If there is a candidate block string having no redundant block, a candidate block string having no redundant block is not displayed and a candidate block string having no redundant block is displayed. If there is no candidate block, a candidate block row with redundant blocks may be displayed.

なお、この例では候補ブロック列生成と冗長ブロック抽出の処理を分けて記述したが、各候補ブロック列を生成する都度に冗長ブロックを抽出するようにしてもよい。また、実施の形態1で説明したように、候補ブロック列の生成要求がない場合でも、例えば、ある機能ブロックを部品領域から作業領域にドラッグ&ドロップした際に、フロー中に冗長ブロックが生じるかどうかを判定したり、最終的にフローを登録する際に冗長となるブロックが有るか否かを判定したりするようにしてもよい。   In this example, the candidate block string generation and redundant block extraction processes are described separately, but redundant blocks may be extracted each time each candidate block string is generated. Further, as described in the first embodiment, even when there is no request for generation of a candidate block sequence, for example, when a certain functional block is dragged and dropped from the component area to the work area, redundant blocks are generated in the flow. It may be determined whether or not there is a redundant block when the flow is finally registered.

以上のように、本実施の形態2にかかるプログラム開発支援装置10Bによれば、挿入候補抽出手段5が抽出した候補ブロック列の中から、当該候補ブロック列をフローに挿入した場合に冗長になる機能ブロックを抽出する冗長ブロック抽出手段71を備え、(入出力)インタフェース生成手段3は、冗長ブロック抽出手段71による抽出結果を反映してインタフェースを生成する、ようにしたので、冗長ブロックのないフローを容易に定義することができる。   As described above, according to the program development support device 10B according to the second exemplary embodiment, the candidate block sequence is redundant when the candidate block sequence is inserted into the flow from the candidate block sequences extracted by the insertion candidate extraction unit 5. Since the redundant block extracting means 71 for extracting the functional block is provided, and the (input / output) interface generating means 3 generates the interface reflecting the extraction result by the redundant block extracting means 71, the flow without redundant blocks. Can be easily defined.

実施の形態3.
本実施の形態3にかかるプログラム開発支援装置は、実施の形態1にかかるプログラム開発支援装置に対して、フローにおいて参照する変数を導き出せない失敗候補ブロック列を抽出し、失敗候補ブロック列に対して計算対象変数および使用可能変数を抽出できるように、候補ブロック列生成手段に追加機能を設け、変数抽出手段をさらに備えたものである。図24〜図28は本実施の形態3にかかるプログラム開発支援装置について説明するためのもので、図24はプログラム開発支援装置の構成を示す機能ブロック図、図25はプログラム開発支援装置の全体動作を示すフローチャートである。そして、図26は機能を追加した候補ブロック列生成手段の動作を説明するためのフローチャート、図27は候補ブロック列生成手段における失敗候補ブロック列を抽出し、変数抽出手段での計算対象変数および使用可能変数を抽出する際のデータ処理方法を示す図、図28は失敗候補列および変数の抽出結果を反映して生成したインタフェースに基づく画面表示例を示す。
Embodiment 3 FIG.
The program development support apparatus according to the third embodiment extracts a failure candidate block sequence from which a variable referred to in the flow cannot be derived with respect to the program development support apparatus according to the first embodiment. In order to extract the calculation target variable and the usable variable, an additional function is provided in the candidate block string generation unit, and a variable extraction unit is further provided. 24 to 28 are diagrams for explaining the program development support apparatus according to the third embodiment. FIG. 24 is a functional block diagram showing a configuration of the program development support apparatus. FIG. 25 is an overall operation of the program development support apparatus. It is a flowchart which shows. FIG. 26 is a flowchart for explaining the operation of the candidate block string generation unit to which the function is added. FIG. 27 is a flowchart for extracting failure candidate block strings in the candidate block string generation unit. FIG. 28 is a diagram showing a data processing method when extracting a possible variable, and FIG. 28 shows a screen display example based on an interface generated by reflecting a failure candidate string and a variable extraction result.

本発明の実施の形態3にかかるプログラム開発支援装置10Cの構成は、図24に示すように、実施の形態1にかかるプログラム開発支援装置に対して候補ブロック列生成手段52が追加機能を有し、変数抽出手段72を追加したものである。そのため、全体動作としては、図25に示すように、候補ブロック生成動作の内容が一部変更になり(ステップMS212)、根拠情報の判定動作(ステップMS220)の後に、計算対象変数および使用可能変数の抽出動作(ステップMS320)が加わった。候補ブロック列生成手段72を備えたことにより、データ入出力関係の変化が生じるが、機能ブロックDB1、フローDB2、挿入箇所抽出手段4、といった他の構成の機能については、基本的に実施の形態1におけるものと同様である。また、入出力インタフェース生成手段3については、候補ブロック列生成手段52から出力されるデータの相違、および変数抽出手段72から出力されたデータを反映してインタフェースを生成する機能が追加されるが、その他の機能については実施の形態1と同様である。   As shown in FIG. 24, the configuration of the program development support apparatus 10C according to the third embodiment of the present invention is such that the candidate block string generation unit 52 has an additional function compared to the program development support apparatus according to the first embodiment. The variable extraction means 72 is added. Therefore, as the entire operation, as shown in FIG. 25, the contents of the candidate block generation operation are partially changed (step MS212), and after the basis information determination operation (step MS220), the calculation target variable and the usable variable Extraction operation (step MS320) was added. Although the data input / output relationship changes due to the provision of the candidate block string generation means 72, the functions of other configurations such as the function block DB1, the flow DB2, and the insertion location extraction means 4 are basically described in the embodiment. 1 is the same as in FIG. In addition, the input / output interface generation unit 3 has a function of generating an interface reflecting the difference in data output from the candidate block string generation unit 52 and the data output from the variable extraction unit 72. Other functions are the same as those in the first embodiment.

候補ブロック列生成手段52では、候補ブロック列の生成中に、追加すべき機能ブロックが見当たらなくなった場合に、その候補ブロック列を失敗候補列として登録する。候補ブロック列生成手段52における処理の流れの一例を、図26のフローチャートを用いて説明する。図26におけるStep2−1〜Step2−10は、実施の形態1における候補ブロック列生成手段5の説明で用いた図9におけるStep2−1〜Step2−10と同様の動作をする。Step2―11では、追加する機能ブロックが1つも存在しなかった場合は、失敗候補ブロック列として登録する。最終的に、全ての候補ブロック列および失敗候補ブロック列を出力する。   The candidate block string generation unit 52 registers the candidate block string as a failure candidate string when no function block to be added is found during generation of the candidate block string. An example of the processing flow in the candidate block string generation means 52 will be described with reference to the flowchart of FIG. Steps 2-1 to 2-10 in FIG. 26 operate in the same manner as Steps 2-1 to 2-10 in FIG. 9 used in the description of the candidate block string generation unit 5 in the first embodiment. In Step 2-11, when there is no function block to be added, it is registered as a failure candidate block sequence. Finally, all candidate block sequences and failure candidate block sequences are output.

<変数抽出手段>
変数抽出手段72では、候補ブロック列生成手段52が出力した失敗候補ブロック列について、当該失敗候補ブロック列をフローに挿入した場合の計算対象変数および使用可能変数を抽出し、それらの情報を入出力インタフェース生成手段3に出力する。変数抽出手段72における変数抽出の具体例について、図27を用いて説明する。図27において、フローIF027を定義中に、out1およびout2を計算対象変数とする候補ブロック列生成要求が出力されたとする。この要求に対する候補ブロック列としてin2の値を参照する機能ブロック(22)が抽出されるが、in2に値を代入する機能ブロックが機能ブロックDB1に登録されていないため、候補ブロック列を完成させることができない。
<Variable extraction means>
The variable extraction unit 72 extracts the calculation target variable and the usable variable when the failure candidate block sequence is inserted into the flow for the failure candidate block sequence output by the candidate block sequence generation unit 52, and inputs / outputs the information thereof Output to the interface generation means 3. A specific example of variable extraction by the variable extraction means 72 will be described with reference to FIG. In FIG. 27, it is assumed that a candidate block string generation request having out1 and out2 as calculation target variables is output while defining the flow IF027. A functional block (22) that refers to the value of in2 is extracted as a candidate block sequence for this request, but since the functional block that assigns a value to in2 is not registered in the functional block DB1, the candidate block sequence is completed. I can't.

そこで、候補ブロック列生成手段52は、in2の値を参照する機能ブロックを追加した4つの機能ブロック列が、失敗候補ブロック列FB271〜FB274として抽出する。変数抽出手段72では、さらに、これらの失敗候補ブロック列を挿入した場合の計算対象変数および使用可能変数が、失敗候補ブロック列に対応して、計算対象変数FVC27および使用可能変数FVA27として抽出される。   Therefore, the candidate block string generation unit 52 extracts four function block strings to which a function block that refers to the value of in2 is added as failure candidate block strings FB271 to FB274. In the variable extraction means 72, the calculation target variable and the usable variable when these failure candidate block sequences are inserted are further extracted as the calculation target variable FVC27 and the usable variable FVA27 corresponding to the failure candidate block sequence. .

この例では、失敗候補ブロック列の生成と変数抽出の処理を分けて記述したが、各失敗候補ブロック列を生成する都度に計算対象変数および使用可能変数を抽出してもよい。   In this example, the generation of failure candidate block strings and the process of variable extraction are described separately. However, the calculation target variables and the usable variables may be extracted each time each failure candidate block string is generated.

入出力インタフェース生成手段3では、図28に示すように、実施の形態1におけるものと同様に、候補ブロック列のリストを表示するとともに、失敗候補ブロック列のリストおよび各失敗候補ブロック列を挿入した場合の計算対象変数および使用可能変数を表示する。なお、図28では、説明を簡略にするため根拠情報判定等の他の要素の表示については記載を省略している。図28のような表示画面において、失敗候補ブロック列をユーザが選択(クリック)した場合、対応する不足変数を外部から入力する機能ブロックを機能ブロックDB1に登録し、再度候補ブロック列生成要求を出力する。   As shown in FIG. 28, the input / output interface generation means 3 displays a list of candidate block strings and inserts a list of failure candidate block strings and each failure candidate block string as in the first embodiment. Displays the variables to be calculated and available variables. In FIG. 28, the description of other elements such as the basis information determination is omitted for the sake of simplicity. When the user selects (clicks) the failure candidate block sequence on the display screen as shown in FIG. 28, the functional block for inputting the corresponding insufficient variable from the outside is registered in the functional block DB1, and the candidate block sequence generation request is output again. To do.

生成するインタフェース(画面表示)は、計算対象変数および使用可能変数を提示し、使用可能変数を参照して計算対象変数を代入する機能ブロックを操作者が編集・登録する環境を提供するようにしてもよい。また、使用可能変数を参照して計算対象変数を代入する機能ブロックを例示するようにしてもよい。この時、計算内容は、使用可能変数を加算するものとしてもよいし、機能ブロックDBに登録されている機能ブロック中で多く使用されている計算内容に基づいて構成してもよい。また、候補ブロック列がある場合は失敗候補ブロック列の表示を省略して候補ブロック列のみを表示し、候補ブロック列がない場合のみ失敗候補ブロック列を表示するようにしてもよい。   The interface to be generated (screen display) presents the variables to be calculated and available variables, and provides an environment for the operator to edit and register a functional block that substitutes the variables to be calculated with reference to the variables that can be calculated. Also good. Further, a functional block that substitutes a calculation target variable with reference to an available variable may be exemplified. At this time, the calculation contents may be obtained by adding usable variables, or may be configured based on calculation contents frequently used in the function blocks registered in the function block DB. Further, when there is a candidate block string, the display of the failure candidate block string may be omitted, and only the candidate block string may be displayed, and the failure candidate block string may be displayed only when there is no candidate block string.

以上のように、本実施の形態3にかかるプログラム開発支援装置10Cによれば、候補ブロック列生成手段52は、候補ブロック列の生成途中に、当該候補ブロック列に追加すべき機能ブロックが見つからなかったときに、当該生成途中の候補ブロック列を失敗候補ブロック列として抽出し、候補ブロック列生成手段52が失敗候補ブロック列を抽出したときに、当該失敗候補ブロック列がフローに挿入されたときに計算対象となるあるいは使用可能となる変数を抽出する変数抽出手段72を備え、(入出力)インタフェース生成手段3は、失敗候補ブロック列と変数の抽出結果とを反映してインタフェースを生成する、ように構成したので、挿入すべき機能ブロックが保存されていなかった場合でも、必要な機能ブロックを追加したり修正したりすることが出来る。   As described above, according to the program development support device 10C according to the third embodiment, the candidate block sequence generation unit 52 cannot find a functional block to be added to the candidate block sequence during generation of the candidate block sequence. When the candidate block sequence being generated is extracted as a failure candidate block sequence, and when the candidate block sequence generating means 52 extracts the failure candidate block sequence, the failure candidate block sequence is inserted into the flow. Variable extraction means 72 for extracting a variable to be calculated or usable is provided, and the (input / output) interface generation means 3 generates an interface reflecting the failure candidate block sequence and the variable extraction result. Even if the functional block to be inserted has not been saved, the necessary functional blocks can be added or modified. It can be or.

実施の形態4.
本実施の形態4にかかるプログラム開発支援装置は、実施の形態1にかかるプログラム開発支援装置に対して、候補ブロック列生成手段が生成した候補ブロック列の表示順序を判定するための表示順序判定手段をさらに備えたものである。図29〜図38は本実施の形態4にかかるプログラム開発支援装置について説明するためのもので、図29はプログラム開発支援装置の構成を示す機能ブロック図、図30はプログラム開発支援装置の全体動作を示すフローチャートである。そして、図31は表示順序判定手段の動作を説明するためのフローチャート、図32〜図38は表示順序判定手段における動作を説明するための図で、表示順序判定手段において扱うデータ構造、動作手順を示すフローチャート、表示順序判定手段の判定結果を反映して生成したインタフェースに基づく画面表示例を示す。
Embodiment 4 FIG.
The program development support apparatus according to the fourth embodiment is a display order determination unit for determining the display order of the candidate block sequence generated by the candidate block sequence generation unit with respect to the program development support apparatus according to the first embodiment. Is further provided. 29 to 38 are diagrams for explaining the program development support apparatus according to the fourth embodiment. FIG. 29 is a functional block diagram showing the configuration of the program development support apparatus. FIG. 30 is the overall operation of the program development support apparatus. It is a flowchart which shows. FIG. 31 is a flowchart for explaining the operation of the display order determining means, and FIGS. 32 to 38 are diagrams for explaining the operation of the display order determining means. The flowchart to show, The example of a screen display based on the interface produced | generated reflecting the determination result of the display order determination means is shown.

本発明の実施の形態4にかかるプログラム開発支援装置10Dの構成は、図29に示すように、実施の形態1にかかるプログラム開発支援装置に対して表示順序判定手段73を追加したものである。そのため、全体動作としては、図30に示すように根拠情報の判定動作(ステップMS220)の後に、表示順序の判定動作(ステップMS330)が加わった。表示順序判定手段73を備えたことにより、データ入出力関係の変化が生じるが、機能ブロックDB1、フローDB2、挿入箇所抽出手段4、候補ブロック列生成手段5といった他の構成の機能については、基本的に実施の形態1におけるものと同様である。また、入出力インタフェース生成手段3については、表示順序判定手段73から出力された判定結果についてのデータを反映してインタフェースを生成する機能が追加されるが、その他の機能については実施の形態1と同様である。   As shown in FIG. 29, the configuration of the program development support apparatus 10D according to the fourth embodiment of the present invention is obtained by adding a display order determination unit 73 to the program development support apparatus according to the first embodiment. Therefore, as an overall operation, as shown in FIG. 30, a display order determining operation (step MS330) is added after the ground information determining operation (step MS220). By providing the display order determination means 73, the data input / output relationship changes, but the functions of other configurations such as the function block DB1, the flow DB2, the insertion location extraction means 4, and the candidate block string generation means 5 are basically In particular, this is the same as in the first embodiment. In addition, the input / output interface generation unit 3 has a function of generating an interface reflecting data on the determination result output from the display order determination unit 73. Other functions are the same as those in the first embodiment. It is the same.

<表示順序判定手段>
表示順序判定手段73では、生成された候補ブロック列について、あらかじめ定められた評価方法に従って、表示順序を決定するための評価値を計算する。表示順序判定手段73における処理の流れの一例を、図31のフローチャートを用いて説明する。Step4―1では、各候補ブロック列について、候補ブロック列が持つ機能ブロック情報について辞書式順序に並べる評価値を計算する。Step4―2では、各候補ブロック列について、登録済みのフローにおける機能ブロックの使用頻度による評価値を計算する。Step4―3では、各候補ブロック列について、定義したフローと類似するフローとの重複度による評価値を計算する。
<Display order determination means>
The display order determining unit 73 calculates an evaluation value for determining the display order for the generated candidate block sequence according to a predetermined evaluation method. An example of the flow of processing in the display order determination unit 73 will be described with reference to the flowchart of FIG. In Step 4-1, for each candidate block string, an evaluation value for arranging the functional block information of the candidate block string in a lexicographic order is calculated. In Step 4-2, for each candidate block string, an evaluation value based on the usage frequency of the function block in the registered flow is calculated. In Step 4-3, for each candidate block string, an evaluation value is calculated based on the degree of overlap between the defined flow and a similar flow.

Step4―1内の詳細な処理の流れの一例を、図32のフローチャートを用いて説明する。Step4―1―1では、機能ブロックDB1内の各機能ブロックに正の整数値を割り振る。値の割り振り方は、機能ブロックを機能ブロックDB1内で管理するIDを用いてもよいし、機能ブロックの名称に基づいて割り振ってもよい。また、機能ブロックの登録日時、更新日時など、機能ブロックDB1を操作した時の情報でもよい。Step4―1―2では、各候補ブロック列中の機能ブロックについて、評価値計算のための順序に並べ替える。この時の順序は、候補ブロック列生成時に機能ブロックを追加した順でもよいし、Step4−1−1にて割り当てられた値が小さい順に整列してもよい。Step4―1―3では、候補ブロック列中の機能ブロックの値に基づいて、候補ブロック列の評価値を計算する。候補ブロック列の値は、各桁に候補ブロック列中の各機能ブロックの値を持つn進数(nは機能ブロックIDの最大値より大きい数)として計算する。ここで桁数は、最も長い候補ブロック列中の機能ブロックの数とし、これより短いものは、不足部分に0を割り当てる。   An example of the detailed processing flow in Step 4-1 will be described with reference to the flowchart of FIG. In Step 4-1-1, a positive integer value is assigned to each functional block in the functional block DB 1. As a method of assigning values, an ID for managing the functional block in the functional block DB 1 may be used, or the value may be assigned based on the name of the functional block. Further, information when the function block DB 1 is operated, such as the function block registration date and the update date, may be used. In Step 4-1-2, the functional blocks in each candidate block sequence are rearranged in the order for evaluation value calculation. The order at this time may be the order in which the functional blocks are added at the time of generating the candidate block sequence, or may be arranged in ascending order of the values assigned in Step 4-1-1. In Step 4-1-3, the evaluation value of the candidate block sequence is calculated based on the value of the functional block in the candidate block sequence. The value of the candidate block string is calculated as an n-ary number (n is a number larger than the maximum value of the function block ID) having the value of each function block in the candidate block string in each digit. Here, the number of digits is the number of functional blocks in the longest candidate block row, and 0 shorter than this is assigned to the shortage portion.

候補ブロック列が持つ機能ブロックIDについて辞書式順序に並べる評価値を算出する例について図33を用いて説明する。この例では、機能ブロックDB1の内容、操作者が定義するフロー、生成される候補ブロック列は実施の形態2の具体例で示した図22と同一とする。操作者が定義したフローIF033(IF021と同じ)から生成された各候補ブロック列PB331〜PB337(PB211〜PB217と同じ)中の機能ブロックを機能ブロックIDで整列し、整列した候補ブロック列PB331a〜PB337aを生成する。そして、整列した各候補ブロック列PB331a〜PB337aについて、n=100(100進数)として評価値EV331a〜EV337aを計算している。   An example of calculating evaluation values arranged in lexicographic order for the functional block IDs of the candidate block sequence will be described with reference to FIG. In this example, the contents of the functional block DB1, the flow defined by the operator, and the generated candidate block string are the same as those in FIG. 22 shown in the specific example of the second embodiment. Function blocks in each candidate block sequence PB331 to PB337 (same as PB211 to PB217) generated from the flow IF033 (same as IF021) defined by the operator are aligned by function block ID, and the aligned candidate block sequences PB331a to PB337a Is generated. Then, evaluation values EV331a to EV337a are calculated with n = 100 (100 decimal) for each of the aligned candidate block strings PB331a to PB337a.

Step4―2内の詳細な処理の流れの一例を、図34のフローチャートを用いて説明する。Step4−2−1では、機能ブロックDB中の全ての機能ブロックの使用回数を0に初期化しておく。Step4―2―2では、フローDB中のフローを順に処理対象としてStep4−2−3に進む。全てのフローが処理済みであった場合、Step4−2−5に進む。Step4―2―3では、処理対象であるフロー中の機能ブロックを順に処理対象としてStep4−2−4に進む。全ての機能ブロックが処理済みであった場合、当該フローの処理を終了し、Step4−2−2に進む。Step4―2―4では、処理対象である機能ブロックの使用回数を加算し、当該機能ブロックの処理を終了する。Step4−2−5では、生成された候補ブロック列を順に処理対象としてStep4−2−6に進む。全ての候補ブロック列が処理済みであった場合、生成処理を終了する。   An example of the detailed processing flow in Step 4-2 will be described with reference to the flowchart of FIG. In Step 4-2-1, the number of times of use of all the functional blocks in the functional block DB is initialized to zero. In Step 4-2-2, the flow in the flow DB is sequentially processed, and the process proceeds to Step 4-2-2. If all the flows have been processed, the process proceeds to Step 4-2-5. In Step 4-2-3, the process proceeds to Step 4-2-4 with the functional blocks in the flow that is the processing target being sequentially processed. When all the functional blocks have been processed, the process of the flow is terminated and the process proceeds to Step 4-2-2. In Step 4-2-4, the number of times of use of the functional block to be processed is added, and the processing of the functional block is terminated. In Step 4-2-5, the process proceeds to Step 4-2-6 with the generated candidate block sequences as processing targets in order. If all candidate block strings have been processed, the generation process ends.

Step4−2−6では、候補ブロック列の評価値を0に初期化しておく。Step4−2−7では、処理対象である候補ブロック列中の機能ブロックを順に処理対象としてStep4−2−8に進む。全ての機能ブロックが処理済みであった場合、当該候補ブロック列の処理を終了し、Step4−2−5に進む。Step4−2−8では、当該機能ブロックの使用回数を候補ブロック列の評価値に加算する。最終的な候補ブロック列の評価値を、機能ブロックの使用頻度による評価値として出力する。   In Step 4-2-6, the evaluation value of the candidate block sequence is initialized to 0. In Step 4-2-7, the process proceeds to Step 4-2-8 with the functional blocks in the candidate block sequence to be processed being sequentially processed. If all the functional blocks have been processed, the processing of the candidate block sequence is terminated, and the process proceeds to Step 4-2-5. In Step 4-2-8, the number of times the function block is used is added to the evaluation value of the candidate block sequence. The final evaluation value of the candidate block sequence is output as an evaluation value based on the frequency of use of the functional block.

登録済みフローにおける機能ブロックの使用頻度から評価値を算出する例を図35に示す。この例では、機能ブロックDB1の内容、操作者が定義するフロー、生成される候補ブロック列は図22の例と同一である。フローDB2中の全てのフローで使われる機能ブロックの使用回数を加算し、機能ブロック21の使用回数を2、機能ブロック22の使用回数を2、機能ブロック31の使用回数を4、機能ブロック32の使用回数を1としている。操作者が定義したフローIF033から生成された各候補ブロック列PB331〜PB337に対し、機能ブロックの使用回数を加算し、評価値FV331f〜EV337fを算出している。   An example in which the evaluation value is calculated from the usage frequency of the functional block in the registered flow is shown in FIG. In this example, the contents of the functional block DB1, the flow defined by the operator, and the generated candidate block string are the same as in the example of FIG. The number of use of the function block used in all the flows in the flow DB 2 is added, the number of use of the function block 21 is 2, the number of use of the function block 22 is 2, the number of use of the function block 31 is 4, and the function block 32 The number of uses is 1. The number of use of the functional block is added to each candidate block sequence PB331 to PB337 generated from the flow IF033 defined by the operator to calculate the evaluation values FV331f to EV337f.

Step4―3内の詳細な処理の流れの一例を、図36のフローチャートを用いて説明する。Step4―3―1では、操作者が指定した機能ブロックを全て使うフローをフローDB1から探索し、類似フローとする。ここで、条件分岐の中に入れる候補ブロック列を生成する場合には、別の分岐から作った分岐毎機能ブロック列を類似フローとみなしてもよい。Step4−3−2では、機能ブロックDB1中の全ての機能ブロックの使用回数を0に初期化しておく。Step4―3―3では、探索された類似フローを順に選んで処理対象とし、Step4−3−4に進む。全ての類似フローの処理が終了していた場合、Step4−3−6に進む。Step4−3−4では、処理対象である類似フロー中の機能ブロックを順に選んで処理対象とし、Step4−3−5に進む。全ての機能ブロックの処理が終了していた場合、当該類似フローの処理を終了し、Step4−3−3に進む。Step4−3−5では、処理対象である機能ブロックの使用回数を加算し、当該機能ブロックの処理を終了する。   An example of the detailed processing flow in Step 4-3 will be described with reference to the flowchart of FIG. In Step 4-3-1, a flow that uses all the functional blocks specified by the operator is searched from the flow DB 1, and is set as a similar flow. Here, when a candidate block sequence to be included in a conditional branch is generated, a functional block sequence for each branch created from another branch may be regarded as a similar flow. In Step 4-3-2, the number of uses of all the functional blocks in the functional block DB1 is initialized to zero. In Step 4-3-3, the searched similar flows are selected in order and set as a processing target, and the process proceeds to Step 4-3-4. If all similar flows have been processed, the process proceeds to Step 4-3-6. In Step 4-3-4, functional blocks in the similar flow that are the processing targets are sequentially selected as processing targets, and the process proceeds to Step 4-3-5. If all the functional blocks have been processed, the similar flow processing ends, and the process proceeds to Step 4-3-3. In Step 4-3-5, the number of times of use of the functional block to be processed is added, and the processing of the functional block is terminated.

Step4―3―6〜Step4−3−9では、Step4−2−5〜Step4−2−8と同様の動作をし、類似フローでの使用回数を元に評価値を計算する。最終的な候補ブロック列の評価値を、類似フローとの重複度による評価値として出力する。   In Step 4-3-6 to Step 4-3-9, the same operation as in Step 4-2-5 to Step 4-2-8 is performed, and the evaluation value is calculated based on the number of times of use in the similar flow. The evaluation value of the final candidate block sequence is output as an evaluation value based on the degree of overlap with the similar flow.

定義したフローと類似するフローとの重複度から評価値を算出する例を図37に示す。この例では、機能ブロックDB1の内容、操作者が定義するフロー、生成される候補ブロック列は図22の例と同一である。操作者が定義したフローIF033に対して、フローDB1から1つの類似フローSF033を見つけ、当該類似フロー中で使われる機能ブロック21および機能ブロック22の使用回数を1としている。生成された各候補ブロック列PB331〜PB337に対し、機能ブロックの使用回数を加算し、評価値EV331s〜EV337sを算出する。   An example in which the evaluation value is calculated from the degree of overlap between the defined flow and a similar flow is shown in FIG. In this example, the contents of the functional block DB1, the flow defined by the operator, and the generated candidate block string are the same as in the example of FIG. For the flow IF 033 defined by the operator, one similar flow SF 033 is found from the flow DB 1, and the usage count of the function block 21 and the function block 22 used in the similar flow is set to 1. The function block usage count is added to each of the generated candidate block sequences PB331 to PB337 to calculate evaluation values EV331s to EV337s.

ここで、上記に示した方針のうち一部のみを用いて評価値を計算してもよいし、上記に示した各方針で計算した値を組み合わせて評価値(表示の優先度)を生成してもよい。また、別の方針に基づく評価値を計算してもよい。   Here, the evaluation value may be calculated by using only a part of the policies shown above, or an evaluation value (display priority) is generated by combining the values calculated by the policies shown above. May be. Moreover, you may calculate the evaluation value based on another policy.

本実施の形態4にかかるプログラム開発支援装置における入出力インタフェース生成手段3は、各候補ブロック列に対して表示順序決定手段73が表示順序の判定基準として生成した評価値の順に、候補ブロック列を表示する。この時、表示順序決定手段73が複数の方針で評価値を決定する場合、いずれの方針の評価値に基づいて並べるかをユーザが決定してもよい。また、評価値の昇順に並べてもよいし、降順に並べてもよい。昇順に並べるか降順に並べるかをユーザが決定してもよい。   The input / output interface generation means 3 in the program development support apparatus according to the fourth embodiment generates candidate block strings in the order of evaluation values generated by the display order determination means 73 as display order determination criteria for each candidate block string. indicate. At this time, when the display order determining unit 73 determines the evaluation values with a plurality of policies, the user may determine which policy is to be arranged based on the evaluation values. Also, the evaluation values may be arranged in ascending order or descending order. The user may determine whether to arrange in ascending order or descending order.

図38には、方針および昇順/降順の決定方法をユーザに提供し、ユーザの決定を受けて、重複度の昇順に並べる画面表示例を示している。これにより、重複度が低い候補ブロック列を上位に表示し、選択が容易となっている。なお、本実施の形態4の説明では、定量的に説明しやすい重複度やIDを基にして表示順序を判定するための評価値生成について説明しているが、根拠情報に基づいて表示順序を判定するための評価値を生成するようにすれば、とくに、法令や仕様書等、遵守しなければならない規定を反映した機能ブロックが選択されているか否かを容易に判定し、規定に即したプログラムを構築する事が可能となる。   FIG. 38 shows a screen display example in which a policy and an ascending / descending order determination method are provided to the user, and are arranged in ascending order of duplication according to the user's determination. Thereby, a candidate block row having a low degree of overlap is displayed at the top, and selection is easy. In the description of the fourth embodiment, the evaluation value generation for determining the display order based on the degree of duplication and ID that are easy to explain quantitatively has been described. However, the display order is determined based on the basis information. By generating an evaluation value for determination, it is easy to determine whether or not a functional block that reflects regulations that must be observed, such as laws and specifications, is selected. It is possible to build a program.

以上のように、本実施の形態4にかかるプログラム開発支援装置10Dによれば、挿入候補抽出手段5が抽出した候補ブロック列に対して、表示順序を判定する表示順序判定手段73を備え、(入出力)インタフェース生成手段3は、表示順序判定手段73による判定結果を反映してインタフェースを生成する、ように構成したので、候補ブロック列の選択が容易になり、スムーズにプログラムを構築する事が出来る。   As described above, the program development support apparatus 10D according to the fourth embodiment includes the display order determination unit 73 that determines the display order for the candidate block sequence extracted by the insertion candidate extraction unit 5 ( Since the input / output) interface generation unit 3 is configured to generate an interface reflecting the determination result by the display order determination unit 73, it is easy to select a candidate block sequence, and a program can be constructed smoothly. I can do it.

実施の形態5.
本実施の形態5にかかるプログラム開発支援装置は、実施の形態1にかかるプログラム開発支援装置に対して、機能ブロックにおける計算内容をパターン照合するためのテンプレートを管理する計算構造パターンDBと、生成された候補ブロック列を計算構造パターンDBが管理するテンプレートに基づいて分類化する分類化手段とをさらに備えたものである。図39〜図44は本実施の形態5にかかるプログラム開発支援装置について説明するためのもので、図39はプログラム開発支援装置の構成を示す機能ブロック図、図40はプログラム開発支援装置の全体動作を示すフローチャートである。そして、図41は計算構造パターンDBが管理する計算構造のテンプレート(データ構造)を説明するための図、図42は分類化手段の動作を説明するためのフローチャート、図43と図44は生成した分類パターンの情報を反映して生成したインタフェースに基づく画面表示例を示す。
Embodiment 5 FIG.
The program development support apparatus according to the fifth embodiment is generated with respect to the program development support apparatus according to the first embodiment, and a calculation structure pattern DB that manages a template for pattern matching of calculation contents in functional blocks. The candidate block sequence is further provided with classification means for classifying the candidate block sequence based on a template managed by the calculation structure pattern DB. 39 to 44 are diagrams for explaining the program development support apparatus according to the fifth embodiment. FIG. 39 is a functional block diagram showing the configuration of the program development support apparatus. FIG. 40 is the overall operation of the program development support apparatus. It is a flowchart which shows. 41 is a diagram for explaining a template (data structure) of the calculation structure managed by the calculation structure pattern DB, FIG. 42 is a flowchart for explaining the operation of the classification means, and FIGS. 43 and 44 are generated. The example of a screen display based on the interface produced | generated reflecting the information of a classification pattern is shown.

本発明の実施の形態5にかかるプログラム開発支援装置10Eの構成は、図39に示すように、実施の形態1にかかるプログラム開発支援装置に対して計算構造パターンDB8と、分類化手段74とを追加したものである。そのため、全体動作としては、図40に示すように根拠情報の判定動作(ステップMS220)の後に、分類パターンの生成動作(ステップMS340)が加わった。分類化手段74を備えたことにより、データ入出力関係の変化が生じるが、機能ブロックDB1、フローDB2、挿入箇所抽出手段4、候補ブロック列生成手段5といった他の構成の機能については、基本的に実施の形態1におけるものと同様である。また、入出力インタフェース生成手段3については、分類化手段74から出力されたデータを反映してインタフェースを生成する機能が追加されるが、その他の機能については実施の形態1と同様である。   As shown in FIG. 39, the configuration of the program development support apparatus 10E according to the fifth embodiment of the present invention includes a calculation structure pattern DB 8 and classification means 74 for the program development support apparatus according to the first embodiment. It is added. Therefore, as an overall operation, a classification pattern generation operation (step MS340) is added after the ground information determination operation (step MS220) as shown in FIG. Although the data input / output relationship changes due to the provision of the classification means 74, the functions of other components such as the function block DB1, the flow DB2, the insertion location extraction means 4, and the candidate block string generation means 5 are basically the same. The same as in the first embodiment. In addition, the input / output interface generation unit 3 is added with a function of generating an interface reflecting the data output from the classification unit 74. Other functions are the same as those in the first embodiment.

<計算構造パターンDB>
計算構造パターンDB(Data Base)8では、機能ブロックの計算内容と照合するための関数の組合せである演算構造についてのテンプレートを管理する。図41に、あらかじめ計算構造パターンDB8に登録しておく計算構造と、その計算構造に合致する機能ブロックの例を示す。この例では、総和、2乗和、相加平均、重み付き加算について、ISO−14977で定義されたEBNF(Extended Backus-Naur Form)形式でテンプレートを管理している。
<Calculation structure pattern DB>
The calculation structure pattern DB (Data Base) 8 manages a template for an operation structure that is a combination of functions for collating with the calculation contents of the functional block. FIG. 41 shows an example of a calculation structure registered in advance in the calculation structure pattern DB 8 and functional blocks that match the calculation structure. In this example, templates are managed in an EBNF (Extended Backus-Naur Form) format defined by ISO-14777 for summation, sum of squares, arithmetic mean, and weighted addition.

<分類化手段>
分類化手段74は、候補ブロック列生成手段5が生成した候補ブロック列のリストに対して、計算構造パターンDB8に記録されたテンプレートと比較して、分類パターンを生成するものである。生成する分類パターンは、分類方式とパラメータの組で表され、分類方式の数だけ生成される。分類方式は、変数リスト、計算構造がある。変数リストは、候補ブロック列に出現する変数のリストをパラメータに持ち、候補ブロック列中の出現位置に応じて入力/出力/先頭/末尾/途中のバリエーションがある。計算構造は、候補ブロック列中の各機能ブロックが持つ計算処理が合致するテンプレートのリストをパラメータに持ち、計算処理の位置に応じて先頭/末尾/途中のバリエーションがある。
<Classification means>
The classification unit 74 generates a classification pattern by comparing the list of candidate block sequences generated by the candidate block sequence generation unit 5 with a template recorded in the calculation structure pattern DB 8. The classification patterns to be generated are represented by a combination of a classification scheme and parameters, and are generated by the number of classification schemes. Classification methods include a variable list and a calculation structure. The variable list has a list of variables appearing in the candidate block sequence as parameters, and there are variations of input / output / leading / ending / intermediate depending on the appearance position in the candidate block sequence. The calculation structure has a list of templates that match the calculation process of each functional block in the candidate block sequence as a parameter, and there are variations at the beginning / end / intermediate depending on the position of the calculation process.

分類化手段74における処理の流れの一例を、図42のフローチャートを用いて説明する。Step5―1では、生成された候補ブロック列を順に選んで処理対象とし、Step5−2に進む。全ての候補ブロック列の処理が終了していた場合、Step5−6に進む。Step5−2では、処理対象である候補ブロック列中の機能ブロックを順に選んで処理対象とし、Step5−3に進む。全ての機能ブロックの処理が終了していた場合、Step5−1に進む。Step5−3では、処理対象である機能ブロックを入力機能ブロック/出力機能ブロック/先頭機能ブロック/末尾機能ブロック/途中機能ブロックに分類する。入力機能ブロックは外部システムから入力変数に値を代入する機能ブロックであり、出力機能ブロックは出力変数の値を外部システムへ出力する機能ブロックである。また、先頭機能ブロックは入力変数のみを参照する機能ブロックであり、末尾機能ブロックは出力変数に値を代入する機能ブロックである。また途中機能ブロックは、上記のいずれにも分類されない機能ブロックである。   An example of the flow of processing in the classification means 74 will be described with reference to the flowchart of FIG. In Step 5-1, the generated candidate block sequence is selected in order to be processed, and the process proceeds to Step 5-2. If all candidate block sequences have been processed, the process proceeds to Step 5-6. In Step 5-2, the functional blocks in the candidate block sequence to be processed are selected in order to be processed, and the process proceeds to Step 5-3. If all the functional blocks have been processed, the process proceeds to Step 5-1. In Step 5-3, the function blocks to be processed are classified into input function block / output function block / head function block / tail function block / intermediate function block. The input function block is a function block that assigns a value to an input variable from the external system, and the output function block is a function block that outputs the value of the output variable to the external system. The first functional block is a functional block that refers only to the input variable, and the last functional block is a functional block that assigns a value to the output variable. The intermediate function block is a function block that is not classified as any of the above.

Step5―4では、処理対象である機能ブロックで代入・参照される変数を抽出し、当該候補ブロック列の適切な変数リストに登録する。登録する変数リストは、入力機能ブロックで代入される変数は入力変数リスト、出力機能ブロックで参照される変数は出力変数リスト、先頭機能ブロックで代入される変数は先頭変数リスト、末尾機能ブロックで参照される変数は末尾変数リスト、途中機能ブロックのみに出現する変数は途中変数リストである。Step5―5では、処理対象である機能ブロックを計算構造パターンDB8の各計算構造と照合し、一致した場合、その一致したテンプレートを当該候補ブロック列の適切な計算構造リストに登録する。登録する計算構造リストは、当該機能ブロックが先頭機能ブロックであれば先頭計算構造リスト、末尾機能ブロックであれば末尾計算構造リスト、途中機能ブロックであれば途中計算構造リストである。ここまでの処理で、各候補ブロック列に対する5種類の変数リストおよび3種類の計算構造リストが構築される。以降では、これらのリストが共通する候補ブロック列をグループ化する。   In Step 5-4, variables to be substituted / referenced in the function block to be processed are extracted and registered in an appropriate variable list of the candidate block sequence. The variable list to be registered is the input variable list for variables assigned in the input function block, the output variable list for variables referenced in the output function block, and the first variable list and the last function block for variables assigned in the first function block. The variable to be processed is the tail variable list, and the variable that appears only in the function block is the intermediate variable list. In Step 5-5, the functional block to be processed is checked against each calculation structure of the calculation structure pattern DB 8, and if they match, the matched template is registered in the appropriate calculation structure list of the candidate block sequence. The calculation structure list to be registered is a head calculation structure list if the function block is the head function block, a tail calculation structure list if the function block is the tail function block, and an intermediate calculation structure list if the function block is an intermediate function block. Through the processing so far, five types of variable lists and three types of calculation structure lists are constructed for each candidate block sequence. Thereafter, candidate block strings having a common list are grouped.

Step5―6では、分類パターンを順に処理対象とし、Step5−7に進む。全ての分類パターンが処理済みであれば、処理を終了する。Step5−7では、生成された候補ブロック列を順に選んで処理対象とし、Step5−8へ進む。当該分類パターンで全ての候補ブロック列が処理済みであれば、Step5−6へ進む。Step5−8では、処理対象である候補ブロック列で構築された分類パターン毎のリストが、分類パターンのパラメータとして登録されていない場合は登録する。   In Step 5-6, the classification pattern is sequentially processed, and the process proceeds to Step 5-7. If all the classification patterns have been processed, the process ends. In Step 5-7, the generated candidate block strings are selected in order and set as processing targets, and the process proceeds to Step 5-8. If all candidate block sequences have been processed with the classification pattern, the process proceeds to Step 5-6. In Step 5-8, if the list for each classification pattern constructed with the candidate block sequence to be processed is not registered as a parameter of the classification pattern, it is registered.

本実施の形態5における入出力インタフェース生成手段3は、全ての分類パターンを表示し、操作者が選択した分類パターン中の全てのパラメータを表示し、操作者が選択したパラメータに分類される全ての候補ブロック列を表示する。図43に示す画面表示例では、操作者が分類パターンの方針として「先頭変数」を選択し、パラメータから「変数sum2」と「変数ave」の組を選択している。変数名が意味を持ち、所望の計算において入力変数から直接計算する変数名を操作者が把握している場合に、この例のような操作を進めるようなインタフェースを生成することで、条件に合う候補ブロック列を選択しやすくなる。   The input / output interface generation means 3 in the fifth embodiment displays all the classification patterns, displays all the parameters in the classification pattern selected by the operator, and displays all the parameters classified into the parameters selected by the operator. Display candidate block sequence. In the screen display example shown in FIG. 43, the operator selects “first variable” as the policy of the classification pattern, and selects the combination of “variable sum2” and “variable ave” from the parameters. If the variable name is meaningful and the operator knows the variable name to be calculated directly from the input variable in the desired calculation, the interface that allows the operation to proceed like this example can be met to meet the conditions It becomes easier to select candidate block sequences.

また、図44に示す画面表示例では、分類パターンの方針として「末尾計算構造」を選択し、パラメータから「重み付き加算」を選択している。変数名が意味を持たず、所望の計算において出力変数の計算方法を操作者が把握している場合に、この例のような操作を進めるようなインタフェースを生成することで、条件に合う候補ブロック列を選択しやすくなる。なお、ここで、実施の形態4のように評価値を計算し、計算結果を区分に分けて分類する分類パターンを計算してもよい。   Also, in the screen display example shown in FIG. 44, “tail calculation structure” is selected as the classification pattern policy, and “weighted addition” is selected from the parameters. If the variable name has no meaning and the operator knows how to calculate the output variable in the desired calculation, the candidate block that meets the condition can be created by generating an interface that allows the operation to proceed like this example This makes it easier to select columns. Here, as in the fourth embodiment, an evaluation value may be calculated, and a classification pattern for dividing the calculation result into categories may be calculated.

以上のように、本実施の形態5にかかるプログラム開発支援装置10Eによれば、計算処理内容をパターン照合するためのテンプレートを管理する計算構造パターンデータベース8と、生成された候補ブロック列中の機能ブロックを計算構造パターンデータベース8が管理するテンプレートに基づいて分類する分類化手段74と、を備え、(入出力)インタフェース生成手段3は、分類化手段74による分類化結果を反映してインタフェースを生成する、ように構成したので、複雑な計算処理を行う機能ブロックを体系化することで、候補ブロック列の選択が容易になり、よりスムーズにプログラムを構築する事が出来る。   As described above, according to the program development support apparatus 10E according to the fifth embodiment, the calculation structure pattern database 8 that manages the template for pattern matching of the calculation processing contents, and the functions in the generated candidate block sequence Classification means 74 for classifying blocks based on a template managed by the calculation structure pattern database 8, and the (input / output) interface generation means 3 generates an interface reflecting the classification result by the classification means 74 Thus, by organizing the functional blocks that perform complex calculation processing, the selection of candidate block strings is facilitated, and the program can be constructed more smoothly.

なお、上記実施の形態2〜5においては、実施の形態1に対してそれぞれ、冗長ブロック抽出手段71、変数抽出手段72、表示順序判定手段73、分類化手段74等を追加した例を示したが、これら追加分を適宜組み合わせるようにしてもよい。また、プラント監視制御システムに、これらのプログラム開発支援装置を備えるようにすることにより、法令や規則または仕様書等が頻繁に変更されても、これらの規制に準拠したプログラムによりプラント操作を実行できるようになる。   In the second to fifth embodiments, examples in which redundant block extracting means 71, variable extracting means 72, display order determining means 73, classification means 74, etc. are added to the first embodiment are shown. However, you may make it combine these additional parts suitably. Also, by providing these program development support devices in the plant monitoring and control system, even if laws, regulations, specifications, etc. are frequently changed, plant operations can be executed with programs that comply with these regulations. It becomes like this.

1 フローDB、2 機能ブロックDB、3 (入出力)インタフェース生成手段、 4 挿入箇所抽出手段、 5 候補ブロック列生成手段、 6 妥当性判定手段、
71 冗長機能ブロック抽出手段、 72 変数抽出手段、 73 表示順序判定手段、 74 分類化手段、 8 計算構造パターンDB。
10 ソフトウェア開発支援装置(10B〜10E)、 20 入出力手段。
100 プラント監視制御システム、 200 原子力発電プラント。
1 flow DB, 2 function block DB, 3 (input / output) interface generation means, 4 insertion location extraction means, 5 candidate block string generation means, 6 validity determination means,
71 redundant function block extraction means, 72 variable extraction means, 73 display order determination means, 74 classification means, 8 calculation structure pattern DB.
10 Software development support devices (10B to 10E), 20 Input / output means.
100 plant monitoring and control system, 200 nuclear power plant.

Claims (6)

変数を用いた計算処理を定義した複数の機能ブロックを組み合わせてプログラムを構築するプログラム開発支援装置であって、
前記複数の機能ブロック、および前記複数の機能ブロックのそれぞれの計算処理を定義した際の根拠に関する根拠情報を管理する機能ブロックデータベースと、
前記機能ブロックデータベースに保持された機能ブロックを組み合わせてプログラムのフローを定義していくためのインタフェースを生成するインタフェース生成手段と、
生成したインタフェースに基づいて定義中のフローに対し、当該フローに組み込まれた機能ブロック間の変数依存関係に基づいて、機能ブロックを挿入する必要がある箇所を抽出する挿入箇所抽出手段と、
前記機能ブロックデータベースに保持された機能ブロックを用いて、前記挿入箇所抽出手段が抽出した挿入箇所に挿入すべきひとつまたは複数の機能ブロックからなる候補ブロック列を生成する候補ブロック列生成手段と、
前記候補ブロック列生成手段が生成した候補ブロック列に対し、当該候補ブロック列中の各機能ブロックの根拠情報と、あらかじめ定めた基準とに基づいて、当該候補ブロック列の妥当性を判定する妥当性判定手段と、を備え、
前記インタフェース生成手段は、前記挿入箇所抽出手段が挿入箇所を抽出した場合に、前記候補ブロック列生成手段が生成した候補ブロック列を前記妥当性とともに提示できるように前記インタフェースを生成する、
ことを特徴とするプログラム開発支援装置。
A program development support device that constructs a program by combining a plurality of functional blocks that define calculation processing using variables,
A functional block database for managing the basis information regarding the basis when the calculation functions of the plurality of functional blocks and the plurality of functional blocks are defined;
Interface generating means for generating an interface for defining a program flow by combining the functional blocks held in the functional block database;
An insertion location extraction means for extracting a location where a functional block needs to be inserted based on a variable dependency relationship between the functional blocks incorporated in the flow for the flow being defined based on the generated interface;
Candidate block sequence generation means for generating a candidate block sequence consisting of one or a plurality of functional blocks to be inserted into the insertion location extracted by the insertion location extraction means, using the functional blocks held in the functional block database;
Validity for determining the validity of the candidate block sequence based on the basis information of each functional block in the candidate block sequence and a predetermined criterion for the candidate block sequence generated by the candidate block sequence generation means Determination means,
The interface generation unit generates the interface so that the candidate block sequence generated by the candidate block sequence generation unit can be presented together with the validity when the insertion location extraction unit extracts an insertion location.
A program development support apparatus characterized by that.
前記挿入候補抽出手段が抽出した候補ブロック列の中から、当該候補ブロック列を前記フローに挿入した場合に冗長になる機能ブロックを抽出する冗長ブロック抽出手段を備え、
前記インタフェース生成手段は、前記冗長ブロック抽出手段による抽出結果を反映して前記インタフェースを生成する、
ことを特徴とする請求項1に記載のプログラム開発支援装置。
From the candidate block sequence extracted by the insertion candidate extraction means, comprising redundant block extraction means for extracting functional blocks that become redundant when the candidate block sequence is inserted into the flow,
The interface generation means generates the interface reflecting the extraction result of the redundant block extraction means;
The program development support apparatus according to claim 1.
前記候補ブロック列生成手段は、候補ブロック列の生成途中に、当該候補ブロック列に追加すべき機能ブロックが見つからなかったときに、当該生成途中の候補ブロック列を失敗候補ブロック列として抽出し、
前記候補ブロック列生成手段が前記失敗候補ブロック列を抽出したときに、当該失敗候補ブロック列がフローに挿入されたときに計算対象となるあるいは使用可能となる変数を抽出する変数抽出手段を備え、
前記インタフェース生成手段は、失敗候補ブロック列と変数の抽出結果とを反映して前記インタフェースを生成する、
ことを特徴とする請求項1または2に記載のプログラム開発支援装置。
The candidate block sequence generation means extracts the candidate block sequence being generated as a failure candidate block sequence when a functional block to be added to the candidate block sequence is not found during generation of the candidate block sequence,
When the candidate block string generation unit extracts the failure candidate block string, the variable block extraction unit extracts a variable that is a calculation target or usable when the failure candidate block string is inserted into the flow,
The interface generation means generates the interface reflecting a failure candidate block string and a variable extraction result.
The program development support apparatus according to claim 1, wherein the program development support apparatus is a program development support apparatus.
前記挿入候補抽出手段が抽出した候補ブロック列に対して、表示順序を判定する表示順序判定手段を備え、
前記インタフェース生成手段は、前記表示順序判定手段による判定結果を反映して前記インタフェースを生成する、
ことを特徴とする請求項1ないし3のいずれか1項に記載のプログラム開発支援装置。
Display order determining means for determining the display order for the candidate block sequence extracted by the insertion candidate extracting means,
The interface generation unit generates the interface reflecting the determination result of the display order determination unit;
The program development support apparatus according to claim 1, wherein the program development support apparatus is a program development support apparatus.
計算処理内容をパターン照合するためのテンプレートを管理する計算構造パターンデータベースと、
生成された候補ブロック列中の機能ブロックを前記計算構造パターンデータベースが管理するテンプレートに基づいて分類する分類化手段と、を備え、
前記インタフェース生成手段は、前記分類化手段による分類化結果を反映して前記インタフェースを生成する、
ことを特徴とする請求項1ないし4のいずれか1項に記載のプログラム開発支援装置。
A calculation structure pattern database for managing templates for pattern matching of calculation processing contents;
Classification means for classifying the functional blocks in the generated candidate block sequence based on a template managed by the calculation structure pattern database;
The interface generation means generates the interface reflecting the classification result by the classification means;
The program development support apparatus according to claim 1, wherein the program development support apparatus is a program development support apparatus.
プラントの運転操作を制御するプラント監視制御システムであって、
前記プラントの監視制御を行うための主制御部と、
前記主制御部を動作させるためのプログラムを構築する請求項1ないし5のいずれか1項に記載のプログラム開発支援装置と、
を備えたことを特徴とするプラント監視制御システム。
A plant monitoring and control system for controlling operation of a plant,
A main control unit for performing supervisory control of the plant;
The program development support apparatus according to any one of claims 1 to 5, wherein a program for operating the main control unit is constructed;
A plant monitoring control system characterized by comprising:
JP2010137245A 2010-06-16 2010-06-16 Program development support device and plant monitoring control system Pending JP2012003473A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010137245A JP2012003473A (en) 2010-06-16 2010-06-16 Program development support device and plant monitoring control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010137245A JP2012003473A (en) 2010-06-16 2010-06-16 Program development support device and plant monitoring control system

Publications (1)

Publication Number Publication Date
JP2012003473A true JP2012003473A (en) 2012-01-05

Family

ID=45535384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010137245A Pending JP2012003473A (en) 2010-06-16 2010-06-16 Program development support device and plant monitoring control system

Country Status (1)

Country Link
JP (1) JP2012003473A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3751366A1 (en) 2019-06-11 2020-12-16 Hitachi Industry & Control Solutions, Ltd. Work system and program thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3751366A1 (en) 2019-06-11 2020-12-16 Hitachi Industry & Control Solutions, Ltd. Work system and program thereof
US11281193B2 (en) 2019-06-11 2022-03-22 Hitachi Industry & Control Solutions, Ltd. Work system and program thereof

Similar Documents

Publication Publication Date Title
CN108021363B (en) Visual game logic editing method and system
CN110232162B (en) HTML 5-based flow definition method and system
JP5651121B2 (en) Data object management and automatic linking
EP2388692A1 (en) In-place user interface and dataflow modeling
EP2555109B1 (en) Search utility program for software developers
US20060271908A1 (en) Method of componentisation of a graphically defined formula
US7734628B2 (en) Method and apparatus for displaying and interacting with hierarchical information and time varying rule priority
CN105745647A (en) Callpath finder
US20150301806A1 (en) Tentative program code in an editor
JP5267732B2 (en) Web page control method, computer system, and program
US20230086854A1 (en) Dynamically controlling case model structure using case fragments
Rosiak et al. Custom-tailored clone detection for IEC 61131-3 programming languages
CN103984554B (en) The generation method and device of Software for Design document
US9483852B2 (en) Method for displaying and manipulating genealogical data using a full family graph
KR20190113446A (en) Method and Apparatus for visualizing an integrated process between medical software development standards for medical software licensing
AU2019344461B2 (en) Analyzing natural language expressions in a data visualization user interface
JP2012003473A (en) Program development support device and plant monitoring control system
CN108228161A (en) A kind of system and method for expansion structure order line
JP5076290B2 (en) Operation management rule diversion device, operation management rule diversion method, and program
JP2005222221A (en) Integrated controller development tool, integrated controller and integrated controller development process
US9405514B1 (en) Process fragment management
JP2019133534A (en) Merging method, merging device, and merging program
JP2006277282A (en) Model evaluation analysis system and model evaluation analysis program
Fatolahi et al. Model-driven web development for multiple platforms
KR101765324B1 (en) Sources code generating apparatus using structured query language and diagram, and method for processing thereof