JP2018151936A - プログラム作成装置およびプログラム - Google Patents
プログラム作成装置およびプログラム Download PDFInfo
- Publication number
- JP2018151936A JP2018151936A JP2017048515A JP2017048515A JP2018151936A JP 2018151936 A JP2018151936 A JP 2018151936A JP 2017048515 A JP2017048515 A JP 2017048515A JP 2017048515 A JP2017048515 A JP 2017048515A JP 2018151936 A JP2018151936 A JP 2018151936A
- Authority
- JP
- Japan
- Prior art keywords
- program
- components
- dependency
- compiled
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000008859 change Effects 0.000 claims abstract description 63
- 238000001514 detection method Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 31
- 239000000470 constituent Substances 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 23
- 239000000284 extract Substances 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000011161 development Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004904 shortening Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Programmable Controllers (AREA)
Abstract
Description
各実施の形態で用いる用語について説明する。
(概要)
実施の形態1では、FA(ファクトリオートメーション)のためのHMI(ヒューマンマシンインタフェース)プログラムを処理するプログラム作成装置は、コンパイル後のプログラムの1つ以上の構成要素が変更された場合に、当該1つ以上の構成要素の変更内容と複数の構成要素の依存関係とに基づき、次のコンパイルの対象となる構成要素を検出する。
図1は、実施の形態1にかかるプログラマブルシステムの構成を概略的に示す図である。図1を参照して、プログラマブルシステムは、FAに適用される複数のPLC(Programmable Logic Controller)1,PLC2,PLC3、プログラマブルターミナル4およびPC(Personal Computer)100を備える。PLC1〜3のそれぞれは同様の構成を有する。PLCは、典型的には、プログラムを実行する主体であるCPU(Central Processing Unit)を有したCPUユニット10、CPUユニット10などへ電力を供給する電源ユニット12、フィールド機器と信号をやり取りするIO(Input Output)ユニット14とを含む。IOユニット14は、CPUユニット10とシステムバス11を介して接続されている。IOユニット14は、CPUユニット10とシステムバス11を介して接続される。典型的には、IOユニット14は、フィールド機器である検出センサ15からの信号を取得し、またはCPUユニット10でのプログラムの実行結果に応じてフィールド機器であるリレー16を駆動する。なお、フィールド機器は、検出センサ15およびリレー16に限定されない。
図2は、実施の形態1にかかるPC100の構成を概略的に示す図である。図2を参照して、PC100は、CPU110、記憶部としてのメモリ112およびハードディスク114、計時し計時データをCPU110に出力するタイマ113、入力インタフェース118、表示コントローラ120、通信インタフェース124、データリーダ/ライタ126を含む。これらの各部は、バス128を介して互いにデータ通信が可能なように接続されている。
図3は、実施の形態1にかかるプログラマブルターミナル4の構成を概略的に示す図である。図3を参照して、プログラマブルターミナル4は、各種の演算を行なうCPU411、ROM(Read Only Memory)412、RAM(Random Access Memory)413、各種のプログラムおよびデータを不揮発的に格納するためのフラッシュROM414、時計415、オペレータの操作を受付けるための操作キー416、データリーダ/ライタ417、タッチスクリーン418および通信インタフェース419を備える。なお、これらの各部は、内部バスを介して互いに接続される。
図4は、実施の形態1にかかるHMIプログラムの開発環境を概略的に示す図である。図4では、PC100における開発環境に関連付けて、プログラマブルターミナル4におけるHMIプログラムの実行環境が示されている。
転送部216は、キーボード104を介して受付けるユーザの操作内容に従い、記憶部224から実行可能HMIプログラムEPを読出し、読出された実行可能HMIプログラムEPをプログラマブルターミナル4に送信する。
図5は、実施の形態1にかかるHMIプログラムのコンパイル処理の概要を説明するための図である。ここでは、ユーザはコンパイル後のソースコードSCを、プログラム編集部211を介して編集(変更)ときに、編集後のソースコードSCNをコンパイルする(再コンパイルともいう)場合を説明する。
図6は、実施の形態1にかかる依存関係を決定するためのテーブルTBの構成を概略的に示す図である。テーブルTBは、PC100の記憶部224に予め格納される。実施の形態1では、依存関係処理部214は、テーブルTBの情報に基づき、依存関係を決定する。テーブルTBは、各構成要素に対応して、当該構成要素の変更の内容と、当該変更の影響が及ぶ他の構成要素を関連付けた関連付け情報に相当する。
図7は、実施の形態1にかかる依存関係を例示する図である。各構成要素の間の依存関係は、たとえば有向グラフで示される。ここで、構成要素は当該有向グラフのノードとなり、依存関係は当該有向グラフの辺となる。辺には、依存関係の発生条件および伝搬先に要求される操作の情報が付加される。発生条件および操作は、それぞれ、図6の変更の種類TB2および伝搬形態TB4に対応する。
図8は、実施の形態1にかかる依存関係グラフSGの一例を模式的に示す図である。依存関係処理部214は、実行可能HMIプログラムEPを解析し、解析結果に基づき、構成要素(変数、関数、ページなど)とそれらの呼び出し関係を抽出し、抽出された各構成要素に基づきテーブルTBを検索する。検索により、依存関係処理部214は、各構成要素について、その種類に一致した構成要素の種類TB1に対応した変更の種類TB2、伝搬先TB3および伝搬形態TB4を、テーブルTBから抽出し、抽出された情報に基づき、上記の有向グラフである依存関係グラフSGを生成する(図8参照)。生成された依存関係グラフSGを示すリスト構造のデータは、記憶部に格納される。
実施の形態1では、HMIプログラムの「構成要素」の粒度に関して、プログラム構成要素は、コンパイル単位を小さくできる見込みがなくなるまで分割される。粒度に従う分割によれば、たとえば、ページ定義においては個々のページがそれぞれ「構成要素」であり、アラーム定義は全アラーム定義が1つの「構成要素」であり、変数定義は個々の変数が「構成要素」である。なお、実施の形態1では、「構成要素」の粒度は、予め決定しておくが、ユーザが作成したHMIプログラム等の構成に最適となるよう、動的に決定するとしてもよい。
実施の形態1において、コンパイル対象検出部213は、ソースコードSCNを、依存関係グラフSGおよびソースコード変更情報SVに従い走査し、走査の結果に基づき、再コンパイルが必要とされる構成要素を検出(抽出)する。図9は再コンパイル対象検出処理のフローチャートである。図10は、依存関係グラフSGにおいて変更がなされた構成要素を特定した示した状態を示す図である。
実施の形態1では、並列対象検出部215は、コンパイル対象検出部213から出力された再コンパイル対象情報に基づき、再コンパイル対象の構成要素のうち並列にコンパイルすることが可能な構成要素を検出する。
図14は、実施の形態1にかかる高速コンパイルの処理フローチャートである。図15は、高速コンパイルにおける依存関係に基づいたコンパイルの所要時間を説明する図である。図14と図15を参照して、コンパイラ部212がグラフSG2に基づき、ソースコードSCNをコンパイルする処理を説明する。
図16は、実施の形態1にかかる並列コンパイルによるコンパイル所要時間の短縮化を説明する図である。図16(A)は、再コンパイル対象として検出された構成要素のソースコード(コンパイル単位)を、グラフSG2の依存関係を参照せずに、コンパイルする場合に要する時間T2を示し、図16(B)は、再コンパイル対象として検出された構成要素のコンパイル単位を、グラフSG2の依存関係に基づき並列コンパイルを含んでコンパイルする場合の要する時間T1を示す。
実施の形態2は、実施の形態1の変形例を示す。実施の形態2では、HMIプログラムは、他のアプリケーションプログラムの変数,関数等の情報を共有する。たとえば、他のアプリケーションプログラムは、プログラマブルターミナル4(他のプログラム作成装置に相当)が実行するプログラムを含み得る。この場合には、テーブルTBにおいて、上記の共有される構成要素について、種類TB1、変更の種類TB2、依存関係の伝搬先TB3および伝搬形態TB4を有する。
実施の形態3では、上述のHMIプログラムをコンパイルし作成する方法を、PC100のCPU110またはプログラマブルターミナル4のCPU411に実行させるためのプログラムが提供される。
実施の形態の背景として、プログラムをコンパイルして実行可能コードを生成する方法は、「インタプリタ型」に比べると、コンパイル時間を要することから一般的に実行可能となるまで時間を要する。具体的には、コンパイルにより実行可能コードを生成する場合、「コンパイル→プログラムの修正→プログラムの実行」のサイクルが繰返される。
Claims (9)
- FA(ファクトリオートメーション)のためのHMI(ヒューマンマシンインタフェース)プログラムを作成するプログラム作成装置であって、
前記プログラムは、複数の構成要素を含み、
前記プログラムをコンパイルするコンパイラ部を、備え、
前記コンパイラ部は、
前記複数の構成要素のうちから、コンパイルされるべき対象となる1つ以上の構成要素を検出する対象検出部と、
各構成要素に、当該構成要素の変更内容と、当該変更の影響が及ぶ依存関係を有した他の構成要素とを関連付けた関連付け情報を格納するための記憶部と、を含み、
前記対象検出部は、
1つ以上の構成要素の変更がなされたとき、前記複数の構成要素のうちから当該変更内容に関連付けられた1つ以上の構成要素を、コンパイルされるべき対象として検出する、プログラム作成装置。 - 前記対象検出部は、
前記対象として検出された複数の構成要素のうち、相互の間で前記依存関係を有しない構成要素の組を、並列にコンパイルされるべき対象として検出する、請求項1に記載のプログラム作成装置。 - 前記コンパイルが実施される場合に、前記関連付け情報から、前記対象として検出された複数の構成要素の相互の前記依存関係を抽出する依存関係処理部を、さらに備える、請求項2に記載のプログラム作成装置。
- 前記対象検出部は、抽出された前記依存関係に基づき、前記並列にコンパイルされるべき対象となる構成要素を検出する、請求項3に記載のプログラム作成装置。
- 前記コンパイラ部は、抽出された前記依存関係に基づき、前記対象として検出された複数の構成要素のそれぞれについて、コンパイルする順序を決定する、請求項3または4に記載のプログラム作成装置。
- 前記対象検出部は、
コンパイルがなされた前記プログラムの複数の構成要素のうちから、コンパイルされるべき対象となる1つ以上の構成要素を検出する、請求項1から5のいずれか1項に記載のプログラム作成装置。 - 前記プログラムの複数の構成要素は、他のプログラムと共有される構成要素を含み、
前記共有される構成要素の変更がなされたとき、当該変更の内容の通知を前記他のプログラムに出力する、請求項1から6のいずれか1項に記載のプログラム作成装置。 - 前記プログラムの各構成要素について、変更される頻度に応じてコンパイルする時期を変更する、請求項1から7のいずれか1項に記載のプログラム作成装置。
- FA(ファクトリオートメーション)のためのHMI(ヒューマンマシンインタフェース)プログラムを作成する方法をコンピュータに実行させるためのプログラムであって、
前記HMIプログラムは、複数の構成要素を含み、
前記方法は、
前記複数の構成要素のうちから、コンパイルされるべき対象となる1つ以上の構成要素を検出するステップと、
各構成要素に、当該構成要素の変更内容と、当該変更の影響が及ぶ依存関係を有した他の構成要素とを関連付けた関連付け情報を検索するステップと、を含み、
前記検出するステップでは、
1つ以上の構成要素の変更がなされたとき、前記複数の構成要素のうちから当該変更内容に関連付けられた1つ以上の構成要素を、コンパイルされるべき対象として検出する、プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017048515A JP6812861B2 (ja) | 2017-03-14 | 2017-03-14 | プログラム作成装置およびプログラム |
EP17192151.3A EP3376370B1 (en) | 2017-03-14 | 2017-09-20 | Program producing device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017048515A JP6812861B2 (ja) | 2017-03-14 | 2017-03-14 | プログラム作成装置およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018151936A true JP2018151936A (ja) | 2018-09-27 |
JP6812861B2 JP6812861B2 (ja) | 2021-01-13 |
Family
ID=60051314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017048515A Expired - Fee Related JP6812861B2 (ja) | 2017-03-14 | 2017-03-14 | プログラム作成装置およびプログラム |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP3376370B1 (ja) |
JP (1) | JP6812861B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7450565B2 (ja) | 2021-02-02 | 2024-03-15 | 三菱電機株式会社 | コンパイル方法、開発支援装置および制御システム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009157533A (ja) | 2007-12-25 | 2009-07-16 | Fuji Electric Systems Co Ltd | プログラマブルコントローラシステム |
-
2017
- 2017-03-14 JP JP2017048515A patent/JP6812861B2/ja not_active Expired - Fee Related
- 2017-09-20 EP EP17192151.3A patent/EP3376370B1/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7450565B2 (ja) | 2021-02-02 | 2024-03-15 | 三菱電機株式会社 | コンパイル方法、開発支援装置および制御システム |
Also Published As
Publication number | Publication date |
---|---|
EP3376370A1 (en) | 2018-09-19 |
EP3376370B1 (en) | 2020-04-15 |
JP6812861B2 (ja) | 2021-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4195479B2 (ja) | インクリメンタル生成システム | |
US11579856B2 (en) | Multi-chip compatible compiling method and device | |
US20060075305A1 (en) | Method and system for source-code model-based testing | |
JP2002099312A (ja) | プログラマブルコントローラおよび制御プログラム開発支援装置 | |
JP2007141173A (ja) | コンパイルシステム、デバッグシステムおよびプログラム開発システム | |
EP3244306A1 (en) | A computer-implemented method for allowing modification of a region of original code | |
CN110554861B (zh) | 具有编译和读取-评估-打印-循环操作的软件开发环境 | |
Bouraqadi et al. | Test-driven development for generated portable Javascript apps | |
JP5849592B2 (ja) | プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法 | |
JP6812861B2 (ja) | プログラム作成装置およびプログラム | |
US11221828B2 (en) | Support device and support program | |
JP2012027639A (ja) | プログラマブルコントローラ、およびプログラマブルコントローラのデバッグ方法 | |
US11714609B2 (en) | Automatic generation of source code implementing a regular expression | |
KR100417655B1 (ko) | 최적화과정을참조하면서동작검증을행하도록디버그정보를생성하는디버그정보생성장치및프로그래머가최적화과정을의식하면서동작검증을할수있는디버그장치로이루어지는프로그램개발시스템 | |
JP5257898B2 (ja) | 情報処理装置及びその制御方法、並びに、プログラム | |
JP2007122187A (ja) | プログラム・コード生成装置 | |
Obster et al. | Development and execution of PLC programs on real-time capable mobile devices | |
CN112272820B (zh) | 支持装置以及支持程序的记录介质 | |
Mészáros et al. | Visual debugging support for graph rewriting-based model transformations | |
de Carvalho | Programming and mapping strategies for embedded computing runtime adaptability | |
JPH11110256A (ja) | プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体 | |
McRitchie et al. | Managing component variability within embedded software product lines via transformational code generation | |
Mazanek et al. | Generating correctness-preserving editing operations for diagram editors | |
JP2007114934A (ja) | コンパイラシステム | |
Pasala et al. | An approach based on modeling dynamic behavior of the system to assess the impact of COTS upgrades |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200109 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201111 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6812861 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |