JP7241988B1 - プログラム生成装置、プログラム生成方法及びプログラム生成プログラム - Google Patents

プログラム生成装置、プログラム生成方法及びプログラム生成プログラム Download PDF

Info

Publication number
JP7241988B1
JP7241988B1 JP2022566428A JP2022566428A JP7241988B1 JP 7241988 B1 JP7241988 B1 JP 7241988B1 JP 2022566428 A JP2022566428 A JP 2022566428A JP 2022566428 A JP2022566428 A JP 2022566428A JP 7241988 B1 JP7241988 B1 JP 7241988B1
Authority
JP
Japan
Prior art keywords
program
change
information
data
design
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.)
Active
Application number
JP2022566428A
Other languages
English (en)
Other versions
JPWO2023248364A5 (ja
JPWO2023248364A1 (ja
Inventor
貴成 阿部
智史 野口
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
Application granted granted Critical
Publication of JP7241988B1 publication Critical patent/JP7241988B1/ja
Publication of JPWO2023248364A1 publication Critical patent/JPWO2023248364A1/ja
Publication of JPWO2023248364A5 publication Critical patent/JPWO2023248364A5/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

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

Abstract

変更箇所特定部(27)は、変更前の設計データ(41)である変更前データと、変更後の設計データ(41)である変更後データとの間で、変更前データ及び変更後データを構成する各設計情報を比較する。変更箇所特定部(27)は、これにより、変更前データから生成された制御プログラム(51)に対する変更箇所を特定する。変更反映部(28)は、変更箇所特定部(27)によって特定された変更箇所について、変更後データから生成された新たなプログラム部品を設定して、制御プログラム(51)を更新する。

Description

本開示は、設計データからプログラムを自動生成する技術に関する。
製造業等では様々な装置が用いられている。装置メーカは、制御プログラムを開発して装置の制御を実現している。制御プログラムの開発には多くの工数がかかる。そのため、開発を効率化するために、設計データから制御プログラムを生成する技術が開発されている。
特許文献1には、制御対象の装置の設計データであるタイムチャートを元に制御プログラムの1つであるラダープログラムを生成する技術が記載されている。ラダープログラムは、入力デバイスと出力デバイスと内部デバイスと等を組み合わせたリレー回路形式のプログラムである。入力デバイスは、入力信号の値を格納するメモリアドレスを示す。出力デバイスは、出力信号を格納するメモリアドレスを示す。内部デバイスは、プログラムの処理結果等を格納するメモリアドレスを示す。
特開2021-149853号公報
制御プログラムを設計データから生成する技術では、全てのプログラムを生成することは難しい。そのため、生成された制御プログラムに対してユーザが処理を追記する場合が多い。追記される処理としては、外部機器との連携処理と異常処理と原点復帰処理等である。
ユーザが処理を制御プログラムに追記した後、装置の設計変更等で手戻りが発生することがある。この場合には、変更後の設計データから制御プログラムが再生成され、再生成された制御プログラムにユーザが処理を追記し直す。あるいは、制御プログラムの再生成はされず、ユーザが制御プログラム上の設計変更による影響範囲を特定して制御プログラムを修正する。いずれにしても、多くの手間がかかっている。
変更後の設計データから制御プログラムが再生成されると、設計が変更されていない箇所に対応するプログラム部品についても、設計変更箇所の影響により、割り振られる内部デバイスの番号等が変更される可能性がある。内部デバイスの番号が変更されること等により、設計が変更されていない箇所のプログラムと連動する、ユーザによって追記された処理にも影響が出る。そのため、再生成された制御プログラムにユーザが処理を追記し直す際には、影響の有無を精査する必要がある。
本開示は、処理を制御プログラムに追記した後に変更された設計データから制御プログラムを生成する作業を簡便化可能にすることを目的とする。
本開示に係るプログラム生成装置は、
変更前の設計データである変更前データと、変更後の設計データである変更後データとの間で、前記変更前データ及び前記変更後データを構成する各設計情報を比較することにより、前記変更前データから生成された制御プログラムに対する変更箇所を特定する変更箇所特定部と、
前記変更箇所特定部によって特定された前記変更箇所について、前記変更後データから生成された新たなプログラム部品を設定して、前記制御プログラムを更新する変更反映部と
を備える。
本開示では、変更前データと変更後データとの間で設計情報について比較して制御プログラムに対する変更箇所が特定される。そして、変更箇所について変更後データから生成された新たなプログラム部品が設定されて制御プログラムが更新される。
これにより、設計データにおける変更されていない箇所に対応するプログラム部品への影響を抑えて、制御プログラムを更新することができる。その結果、処理を制御プログラムに追記した後に変更された設計データから制御プログラムを生成する作業を簡便化可能である。
実施の形態1に係るプログラム生成装置10の構成図。 実施の形態1に係る設計データ41の説明図。 実施の形態1に係る初生成処理のフローチャート。 実施の形態1に係る追跡情報53の一覧の説明図。 実施の形態1に係るプログラム部品52の説明図。 実施の形態1に係る制御プログラム51の説明図。 実施の形態1に係る再生成処理のフローチャート。 実施の形態1に係るユーザ追記のある制御プログラム51の説明図。 実施の形態1に係る変更前データ42及び変更後データ43の説明図。 実施の形態1に係る変更箇所特定処理の説明図。 実施の形態1に係る更新された制御プログラム51の説明図。 変形例2に係るプログラム生成装置10の構成図。 実施の形態2に係るプログラム生成装置10の構成図。 実施の形態2に係る3Dシミュレータの説明図。 実施の形態2に係る高級言語で作成した動作条件の設定の説明図。 実施の形態2に係る初生成処理のフローチャート。 実施の形態2に係る連携データ45の説明図。 実施の形態2に係る再生成処理のフローチャート。
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係るプログラム生成装置10の構成を説明する。
プログラム生成装置10は、コンピュータである。
プログラム生成装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ11は、プロセッシングを行うICである。ICはIntegrated Circuitの略である。プロセッサ11は、具体例としては、CPU、DSP、GPUである。CPUは、Central Processing Unitの略である。DSPは、Digital Signal Processorの略である。GPUは、Graphics Processing Unitの略である。
メモリ12は、データを一時的に記憶する記憶装置である。メモリ12は、具体例としては、SRAM、DRAMである。SRAMは、Static Random Access Memoryの略である。DRAMは、Dynamic Random Access Memoryの略である。
ストレージ13は、データを保管する記憶装置である。ストレージ13は、具体例としては、HDDである。HDDは、Hard Disk Driveの略である。また、ストレージ13は、SD(登録商標)メモリカード、CompactFlash(登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、Blu-ray(登録商標)ディスク、DVDといった可搬記録媒体であってもよい。SDは、Secure Digitalの略である。DVDは、Digital Versatile Diskの略である。
通信インタフェース14は、外部の装置と通信するためのインタフェースである。通信インタフェース14は、具体例としては、Ethernet(登録商標)、USB、HDMI(登録商標)のポートである。USBは、Universal Serial Busの略である。HDMIは、High-Definition Multimedia Interfaceの略である。
プログラム生成装置10は、機能構成要素として、情報取得部21と、プログラム生成部22と、追跡情報設定部23と、プログラム統合部24と、生成元情報設定部25と、設計データ特定部26と、変更箇所特定部27と、変更反映部28とを備える。プログラム生成装置10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、プログラム生成装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、プログラム生成装置10の各機能構成要素の機能が実現される。
ストレージ13には、プログラム部品の雛形31が記憶されている。
図1では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。
***動作の説明***
図2から図11を参照して、実施の形態1に係るプログラム生成装置10の動作を説明する。
実施の形態1に係るプログラム生成装置10の動作手順は、実施の形態1に係るプログラム生成方法に相当する。また、実施の形態1に係るプログラム生成装置10の動作を実現するプログラムは、実施の形態1に係るプログラム生成プログラムに相当する。
プログラム生成装置10の動作は、初生成処理と、再生成処理とを含む。初生成処理は、設計データ41を入力として、制御プログラム51を生成する処理である。再生成処理は、変更前の設計データ41である変更前データ42と、変更後の設計データ41である変更後データ43と、変更前データ42に対応する制御プログラム51とを入力として、制御プログラム51を更新する処理である。
例えば、プログラム生成装置10は、表示装置に初生成処理を示すボタンと再生成処理を示すボタンとを表示する。そして、プログラム生成装置10は、初生成処理を示すボタンが押下されると、初生成処理を実行する。また、プログラム生成装置10は、再生成処理を示すボタンが押下されると、再生成処理を実行する。
図2を参照して、実施の形態1に係る設計データ41の例を説明する。
図2に示す設計データ41は、次の処理を表す。X0がONになることで、Y10がONされる。X1がONになることで、Y10がOFFされる。そして、X2がONになると処理が終了する。Xで始まる変数は、制御機器への入力信号を表している。Yで始まる変数は、制御機器からの出力信号を表している。
設計データ41の要素である設計情報44毎に、001から005のIDが設定されている。IDは、IDentifierの略である。IDは、変更前後の設計データ41を比較する際に利用される。つまり、IDは、変更前データ42と変更後データ43とを比較する際に利用される。例えば、同じIDを持つ設計情報44どうしを比較することで、その設計情報44が変更されたか否かが特定される。また、変更前データ42に存在せず変更後データ43に存在する設計情報44は、新たに追加された設計情報44であると特定される。逆に、変更後データ43には存在せず変更前データ42に存在する設計情報44は、削除された設計情報44であると特定される。
設計データ41の形式は、変更前後で設計情報44毎に比較可能な形式であれば、図2に示す形式でなくてもよい。
図3を参照して、実施の形態1に係る初生成処理を説明する。
(ステップS11:情報取得処理)
情報取得部21は、制御プログラム51を生成するために必要な情報を設計データ41から抽出する。
具体的には、情報取得部21は、初生成処理ボタンが押下されると、ユーザに入力とする設計データ41を指定させる。情報取得部21は、指定された設計データ41を取得する。情報取得部21は、設計データ41に含まれる各設計情報44を取得する。
(ステップS12:部品特定処理)
プログラム生成部22は、ステップS11で取得された各設計情報44を対象の設計情報44に設定する。プログラム生成部22は、対象の設計情報44を分類して、対応するプログラム部品の雛形31を特定する。例えば、プログラム生成部22は、対象の設計情報44が、条件分岐構造であるか、繰り返し構造であるかといった構造等により分類する。プログラム生成部22は、対象の設計情報44の内容に基づき分類してもよい。プログラム部品の雛形31は、設計情報44に対応するプログラム部品52の元になる。
この際、追跡情報設定部23は、設計情報44とプログラム部品52とを対応付けするための追跡情報53を設定する。追跡情報設定部23は、プログラム部品52毎に一意な値を追跡情報53として設定する。
図4に示すように、追跡情報設定部23は、追跡情報53の一覧を生成する。追跡情報53の一覧には、識別番号毎に、IDと、プログラム部品の雛形31の名称と、追跡情報53とが含まれる。
1つの設計情報44に対して1つのプログラム部品52が生成される場合がある。この場合には、識別番号“1”のレコードのように、追跡情報53には、IDの値がそのまま設定される。複数の設計情報44を一纏めにして1つのプログラム部品52が生成される場合もある。この場合には、識別番号“4”のレコードのように、追跡情報53には、複数の設計情報44に共通する情報が設定される。識別番号“4”のレコードでは、変数“Y10”がID“002”及びID“003”の設計情報44に共通するため、追跡情報53にY10が設定されている。どのような場合に、複数の設計情報44を一纏めにして1つのプログラム部品52が生成されかるは事前に設定される。例えば、複数の設計情報44が特定の構造であり、かつ、同一の変数が用いられている場合には、一纏めにして1つのプログラム部品52が生成されるといったことが考えられる。
追跡情報53に設定される情報は、これに限らない。例えば、追跡情報53に設定される情報は、設計情報44に含まれる情報とプログラム部品の雛形31の名称とを組み合わせる等した情報でもよい。
(ステップS13:プログラム生成処理)
プログラム生成部22は、ステップS12で生成された追跡情報53の一覧のレコードのうち未処理のレコードを対象のレコードに設定する。プログラム生成部22は、対象のレコードについてのプログラム部品の雛形31に対して、対象のレコードに対応する設計情報44の情報を設定する。具体的には、プログラム生成部22は、プログラム部品の雛形31における変数名に対して、対象の設計情報44における変数名を設定する。これにより、図5に示すように、プログラム生成部22は、対象の設計情報44に対応するプログラム部品52を生成する。図5では、プログラム部品52がラダープログラムの場合と、プログラム部品52がST言語の場合とが示されている。STは、Structured Textの略である。
この際、追跡情報設定部23は、プログラム部品52に対して、対応する追跡情報53を付加する。例えば、追跡情報設定部23は、プログラム言語におけるコメント機能を利用して、プログラム部品52中に追跡情報53を追記する。また、追跡情報設定部23は、プログラム部品52に対して、プログラム生成装置10によって生成されたことを示す情報を付加してもよい。図5では、“auto”の文字列が、プログラム生成装置10によって生成されたことを示す情報として付加されている。
(ステップS14:終了判定処理)
プログラム生成部22は、全てのプログラム部品52が生成されたか否かを判定する。具体的には、プログラム生成部22は、追跡情報53の一覧における全てのレコードについて処理がされたか否かを判定する。プログラム生成部22は、全てのレコードについて処理がされた場合には、全てのプログラム部品52が生成されたと判定する。
プログラム生成部22は、全てのプログラム部品52が生成された場合には、処理をステップS15に進める。一方、プログラム生成部22は、生成されていないプログラム部品52がある場合には、処理をステップS13に戻す。
(ステップS15:プログラム統合処理)
図6に示すように、プログラム統合部24は、ステップS13で生成されたプログラム部品52を設計データ41が示す順に並べることにより、制御プログラム51を生成する。
(ステップS16:生成元情報設定処理)
生成元情報設定部25は、ステップS15で生成された制御プログラム51に、生成元になった設計データ41を示す生成元情報54を付加する。例えば、生成元情報設定部25は、プログラム言語におけるコメント機能を利用して、制御プログラム51中に生成元情報54を追記する。生成元情報54は、例えば、設計データ41のファイルパスである。図6では、“source,C:¥A¥B¥設計データ”の文字列が、生成元情報54である。
図7を参照して、実施の形態1に係る再生成処理を説明する。
ここでは、図8に示すように、初生成処理で生成された制御プログラム51に対して、点線で囲われた部分のように、ユーザによって処理が追記されていることを想定する。
また、図9に示すように、変更前データ42が変更後データ43のように変更されていることを想定する。変更前データ42は、図2に示す設計データ41と同じである。
(ステップS21:設計データ特定処理)
設計データ特定部26は、制御プログラム51から生成元の設計データ41を特定する。
具体的には、設計データ特定部26は、再生成処理ボタンが押下されると、ユーザに入力とする制御プログラム51及び変更後データ43を指定させる。設計データ特定部26は、指定された制御プログラム51及び変更後データ43を取得する。設計データ特定部26は、制御プログラム51に含まれる生成元情報54により、生成元の設計データ41である変更前データ42を特定する。
ここで、変更前データ42は、制御プログラム51が生成された時点の設計データ41である。変更後データ43は、変更前データ42に対して変更が加えられた設計データ41である。変更後データ43は、再生成する制御プログラム51の元になる設計データ41である。
(ステップS22:情報取得処理)
情報取得部21は、変更前データ42及び変更後データ43を対象の設計データ41として、図3のステップS11と同じ処理を行う。
(ステップS23:部品特定処理)
プログラム生成部22は、変更前データ42及び変更後データ43を対象の設計データ41として、図3のステップS12と同じ処理を行う。
(ステップS24:変更箇所特定処理)
変更箇所特定部27は、変更前データ42と変更後データ43とに含まれる各設計情報44を対象の設計情報44に設定する。変更箇所特定部27は、対象の設計情報44について、変更前データ42と変更後データ43との間で比較する。これにより、変更箇所特定部27は、制御プログラム51に対する変更箇所を特定する。
ここでは、変更箇所特定部27は、各設計情報44について、更新有情報と、更新無情報と、削除情報と、追加情報とのいずれであるかを特定する。更新有情報は、変更前データ42と変更後データ43との間で差異がある設計情報44である。更新無情報は、変更前データ42と変更後データ43との間で差異がない設計情報44である。削除情報は、変更後データ43に存在せず変更前データ42に存在する設計情報44である。追加情報は、変更前データ42に存在せず変更後データ43に存在する設計情報44である。
そして、変更箇所特定部27は、更新有情報と削除情報と追加情報とを変更箇所として特定する。
具体的には、変更箇所特定部27は、ステップS23で生成された変更前データ42及び変更後データ43についての追跡情報53の一覧の各レコードを対象のレコードに設定する。なお、変更箇所特定部27は、変更前データ42についての追跡情報53の一覧と、変更後データ43についての追跡情報53の一覧とで、同じIDが設定されたレコードはいずれか一方だけを対象のレコードに設定する。
変更箇所特定部27は、対象のレコードについての設計情報44と、対応する設計情報44とを比較する。対応する設計情報44は、対象のレコードが変更前データ42についての追跡情報53の一覧のレコードである場合には、対象のレコードについての設計情報44と同じ追跡情報53が設定された変更後データ43における設計情報44である。対応する設計情報44は、対象のレコードが変更後データ43についての追跡情報53の一覧のレコードである場合には、対象のレコードについての設計情報44と同じ追跡情報53が設定された変更前データ42における設計情報44である。そして、変更箇所特定部27は、対象のレコードについての設計情報44が、更新有情報と、更新無情報と、削除情報と、追加情報とのいずれであるかを特定する。
対象のレコードが変更前データ42についての追跡情報53の一覧のレコードであるとする。この場合に、対象のレコードにおける追跡情報53を有するレコードが変更後データ43について生成された追跡情報53の一覧にあり、かつ、設計情報44に変更があれば更新有情報になる。この場合に、対象のレコードにおける追跡情報53を有するレコードが変更後データ43について生成された追跡情報53の一覧にあり、かつ、設計情報44に変更がなければ更新無情報になる。この場合に、対象のレコードにおける追跡情報53を有するレコードが変更後データ43について生成された追跡情報53の一覧になければ削除情報になる。対象のレコードが変更後データ43についての追跡情報53の一覧のレコードであるとする。この場合に、対象のレコードにおける追跡情報53を有するレコードが変更前データ42について生成された追跡情報53の一覧になければ追加情報になる。
図9に示す変更前データ42及び変更後データ43について変更箇所特定処理を実行すると、図10のようになる。ID“003”の設計情報44は更新有情報である。ID“001”とID“005”との設計情報44は更新無情報である。ID“002”とID“003”との設計情報44は削除情報である。ID“004”とID“006”との設計情報44は追加情報である。
(ステップS25:プログラム生成処理)
プログラム生成部22は、ステップS24で更新有情報又は追加情報と判定された設計情報44について新たなプログラム部品52を生成する。
具体的には、プログラム生成部22は、変更後データ43について生成された追跡情報53の一覧におけるレコードのうち、更新有情報又は追加情報と判定された未処理のレコードを対象のレコードに設定する。プログラム生成部22は、図3のステップS13と同様に、対象のレコードについてのプログラム部品の雛形31に対して、対象のレコードに対応する設計情報44の情報を設定する。これにより、プログラム生成部22は、対象の設計情報44に対応するプログラム部品52を生成する。この際、更新有情報と判定されたレコードが対象のレコードの場合には、プログラム生成部22は、既存の制御プログラム51が生成された際の内部デバイスを流用して、新たなプログラム部品52を生成してもよい。これにより、内部デバイスの番号が変更されず、プログラム生成装置10によって生成される他のプログラムと、ユーザによって追記されるプログラムとへの影響を抑えることができる。
図3のステップS13と同様に、追跡情報設定部23は、プログラム部品52に対して、対応する追跡情報53を付加する。また、追跡情報設定部23は、プログラム部品52に対して、プログラム生成装置10によって生成されたことを示す情報を付加してもよい。
(ステップS26:終了判定処理)
プログラム生成部22は、更新有情報又は追加情報と判定された全ての設計情報44についてプログラム部品52が生成されたか否かを判定する。
プログラム生成部22は、全てのプログラム部品52が生成された場合には、処理をステップS27に進める。一方、プログラム生成部22は、生成されていないプログラム部品52がある場合には、処理をステップS25に戻す。
(ステップS27:変更反映処理)
変更反映部28は、ステップS23で生成された変更前データ42及び変更後データ43についての生成された追跡情報53の一覧の各レコードを対象のレコードに設定する。なお、変更反映部28は、変更前データ42についての追跡情報53の一覧と、変更後データ43についての追跡情報53の一覧とで、同じIDが設定されたレコードはいずれか一方だけを対象のレコードに設定する。
変更反映部28は、対象のレコードについてステップS24で判定された結果に応じて、以下の処理を行い、制御プログラム51を更新する。
<更新有情報の場合>
変更反映部28は、対象のレコードにおける追跡情報53を用いて、制御プログラム51における更新有情報に対応するプログラム部品52を特定する。変更反映部28は、特定されたプログラム部品52を、新たなプログラム部品52に置き換える。新たなプログラム部品52は、ステップS25で対象のレコードについて生成されたプログラム部品52である。
<追加情報の場合>
変更反映部28は、変更後データ43に基づき追加情報が追加された位置を特定する。変更反映部28は、対象のレコードにおける追跡情報53を用いて、特定された位置に対応する制御プログラム51における位置を特定する。変更反映部28は、新たなプログラム部品52を、制御プログラム51における特定された位置に挿入する。新たなプログラム部品52は、ステップS25で対象のレコードについて生成されたプログラム部品52である。
<削除情報の場合>
変更反映部28は、対象のレコードにおける追跡情報53を用いて、制御プログラム51における削除情報に対応するプログラム部品52を特定する。変更反映部28は、特定されたプログラム部品52を、制御プログラム51から削除する。
<更新無情報の場合>
変更反映部28は、制御プログラム51における更新無情報に対応するプログラム部品52については、変更せずそのままにする。
(ステップS28:生成元情報設定処理)
生成元情報設定部25は、ステップS15で生成された制御プログラム51に、生成元になった変更後データ43を示す生成元情報54を付加する。例えば、生成元情報設定部25は、変更前データ42を示すパスを、変更後データ43を示すパスに更新する。
これにより、図11に示すように、制御プログラム51が更新される。更新された制御プログラム51では、図8に示すユーザによって追記された処理が残っている。また、更新有情報であるID“003”の処理が更新されている。また、追加情報であるID“006”及びID“007”の処理(追跡情報53がY11の処理)が追加されている。また、削除情報であるID“002”及びID“004”の処理(追跡情報53がY10の処理)が削除されている。
***実施の形態1の効果***
以上のように、実施の形態1に係るプログラム生成装置10は、変更前データ42と変更後データ43との間で設計情報44について比較して制御プログラム51に対する変更箇所が特定される。そして、変更箇所について変更後データから生成された新たなプログラム部品52が設定されて制御プログラム51が更新される。
これにより、設計データ41が変更された箇所に対応するプログラム部品52だけが更新される。そのため、設計データ41における変更されていない箇所に対応するプログラム部品52への影響を抑えて、制御プログラム51を更新することができる。その結果、処理を制御プログラム51に追記した後に変更された設計データ41から制御プログラム51を生成する作業を簡便化可能である。
より具体的には、実施の形態1に係るプログラム生成装置10は、再生成処理において、変更前データ42及び変更後データ43における設計情報44について、更新有情報と更新無情報と削除情報と追加情報とに分類する。そして、プログラム生成装置10は、分類に従った処理を行い制御プログラム51を更新する。その結果、設計情報44に対応していない、ユーザによって追記された処理については、変更がされずそのまま残される。
これにより、処理を制御プログラムに追記した後に変更された設計データから制御プログラムを生成した場合に、追記された処理を残すことが可能である。
また、実施の形態1に係るプログラム生成装置10は、更新無情報に分類された設計情報44に対応するプログラム部品52については変更しない。そのため、設計データが変更されていないプログラム部品52は変更されない。
また、実施の形態1に係るプログラム生成装置10は、更新有情報に分類された設計情報44に対応するプログラム部品52を生成する際、既存の制御プログラム51が生成された際の内部デバイスを流用する。これにより、内部デバイスの番号が変更されず、他のプログラム部品52への影響を抑えることができる。
***他の構成***
<変形例1>
実施の形態1では、再生成処理において初生成処理で生成された制御プログラム51が更新された。しかし、初生成処理で生成された制御プログラム51と同様の構成の制御プログラム51であれば、別システムによって生成された制御プログラム51であっても再生成処理で更新可能である。
<変形例2>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例2として、各機能構成要素はハードウェアで実現されてもよい。この変形例2について、実施の形態1と異なる点を説明する。
図12を参照して、変形例2に係るプログラム生成装置10の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、プログラム生成装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
電子回路15としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、FPGAが想定される。GAは、Gate Arrayの略である。ASICは、Application Specific Integrated Circuitの略である。FPGAは、Field-Programmable Gate Arrayの略である。
各機能構成要素を1つの電子回路15で実現してもよいし、各機能構成要素を複数の電子回路15に分散させて実現してもよい。
<変形例3>
変形例3として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
プロセッサ11とメモリ12とストレージ13と電子回路15とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
実施の形態2.
実施の形態2は、装置開発で用いられる3Dシミュレータに制御プログラム51を適用する場合について説明する。3Dは、three-Dimensionalの略である。実施の形態2では、実施の形態1と異なる点を説明し、同一の点については説明を省略する。
近年では、装置メーカは、装置開発の手戻りを削減するために3Dシミュレータを活用した開発を実施している。3Dシミュレータは、実機を使用して行う様々な検証を実機なしに検証できるようにするソフトウェアである。
装置の検証を3Dシミュレータで実施するためは、3Dシミュレータ上の機器を制御する必要がある。装置メーカは、開発した制御プログラムを用いて3Dシミュレータ上の機器を制御する。装置メーカは、3Dシミュレータ上の機器を制御するのに特化した制御プログラムを、汎用的なPC等で扱える高級言語により作成して、3Dシミュレータ上の機器を制御する場合もある。PCは、Personal Computerの略である。
***構成の説明***
図13を参照して、実施の形態2に係るプログラム生成装置10の構成を説明する。
プログラム生成装置10は、機能構成要素として、連携部品生成部29と、シミュレーション部30とを備える点が図1に示すプログラム生成装置10と異なる。連携部品生成部29の機能は、他の機能構成要素と同様にソフトウェア又はハードウェアによって実現される。
図13では、プログラム生成装置10がシミュレーション部30を備え、3Dシミュレータを実現している。しかし、シミュレーション部30の機能は別の装置が備えていてもよい。この場合には、プログラム生成装置10によって生成された制御プログラム51がシミュレーション部30を備える装置に提供される。
***動作の説明***
図14から図18を参照して、実施の形態2に係るプログラム生成装置10の動作を説明する。
実施の形態2に係るプログラム生成装置10の動作手順は、実施の形態2に係るプログラム生成方法に相当する。また、実施の形態2に係るプログラム生成装置10の動作を実現するプログラムは、実施の形態2に係るプログラム生成プログラムに相当する。
図14を参照して、実施の形態2に係る3Dシミュレータの例を説明する。
実機を使用して行っていた様々な検証を、3Dシミュレータ上に検証対象の装置を用意して実機なしで検証する。このためには、3Dシミュレータ上の検証対象の装置に対して少なくとも“形状の設定”、“動作の設定”、“動作条件の設定”の3つの設定をする必要がある。図14では、検証対象の装置としてプッシャーが示されている。
形状の設定は、3Dシミュレータ上に装置の形状又は位置を定める設定である。例えば、3D-CAD等で設計したプッシャーの3Dデータが3Dシミュレータにインポートされる。CADは、Computer Aided Designの略である。そして、3Dシミュレータ上の座標が指定される。これにより形状の設定がされる。
動作の設定は、形状の設定で設定された3Dデータの動きの設定である。例えば、動作を実行するためのトリガーと、移動方向と、加速度と、最大速度といった情報が設定される。具体例としては、プッシャーに設定されている変数Y10がTRUEになるとプッシャーの先端がポイントAからポイントB方向へ加速度a及び最大速度bで移動するという設定がされる。
動作条件の設定は、動作の設定で設定された動きを実行するための条件の設定である。例えば、動作のトリガーとなる変数の値を書き換える動作ロジックが設定される。具体例としては、X0がTRUEになったらY10をTRUEにし、X1がTRUEになったらY10をFALSEにするという設定がされる。
つまり、動作条件の設定は制御プログラム51と同等のものである。この動作条件の設定として実施の形態1で示した制御プログラム51を組み込んだ制御機器と3Dシミュレータとを連携させて検証する場合がある。また、制御プログラム51と同等なプログラムを一般的なPCで扱える高級言語又は3Dシミュレータ独自の言語で作成して検証する場合もある。
後者の場合、3DシミュレータのAPI等を用いてプログラムを作成することで3Dシミュレータとの連係動作が可能になる。APIは、Application Programming Interfaceの略である。後者のプログラムであっても制御プログラム51と同等のプログラムであるため実施の形態1で示した方法と同等の方法で生成可能である。後者のプログラムでは3DシミュレータのAPIを使うことで3Dシミュレータでの計算結果又はシミュレーション時間等を得ることができる。
そのため、得られた情報を出力して検証に利用するために制御を担う部分の他に処理を追記する場合がある。実施の形態1で示した方法では、このようなユーザによって追記された処理が含まれる制御プログラム51であっても、追記された処理を残しながら設計の変更に従った“動作条件の設定”を再生成できる。
図15を参照して、実施の形態1に係る高級言語で作成した動作条件の設定の例を説明する。
動作条件の設定では、図15の点線で囲われている部分で3DシミュレータのAPI等を利用して3Dシミュレータ上のモデル等に設定されている変数を読み書きできるようにする。この点線で囲われている部分を連携部品55と呼ぶ。
例えば、3Dモデル名“プッシャー”と、その3Dモデルに設定されている変数名“Y10”を引数としてAPIが利用される。これにより、動作条件の設定から3Dモデルに設定している変数の値を読み書きできるようになる。図15の制御プログラムの部分でこの変数を読み書きすることで3Dシミュレータ上の装置が制御される。この制御プログラムの部分は、例えば図6のST言語の場合のプログラムと同等なものでもよい。
図16を参照して、実施の形態2に係る初生成処理を説明する。
ステップS33からステップS37の処理は、図3のステップS12からステップS16の処理と同じである。
(ステップS31:情報取得処理)
図3のステップS11と同様に、情報取得部21は、設計データ41から制御プログラム51を生成するために必要な情報を抽出する。
この際、情報取得部21は、制御プログラム51が実装されるシミュレータにおける3Dモデルの変数と、設計データ41における信号との対応関係を示す連携データ45を取得する。具体的には、情報取得部21は、設計データ41と合わせて連携データ45をユーザに指定させる。
連携データ45は、例えば、図17のような3Dモデルの変数名と信号名との対応関係が示されたデータである。3Dモデルの変数名と設計データ41で使用する信号名とを同一にするなどの作成ルールを設けて対応付けてもよい。この場合は、設計データ41で使用している信号名を元に3Dモデル名及び変数名等の必要なデータを3Dシミュレータから特定できる。そのため、連携データ45は取得されなくてもよい。
(ステップS32:連携部品生成処理)
連携部品生成部29は、連携データ45に基づき、制御プログラム51と3Dシミュレータとを連携させる連携部品55を生成する。この際、連携部品生成部29は、連携部品55に対してプログラム言語のコメント機能等を利用して、連携部品55であることを示す情報を付加してもよい。例えば、“link”等の文字列が連携部品55であることを示す情報として付加される。
図18を参照して、実施の形態2に係る再生成処理を説明する。
ステップS43からステップS49の処理は、図7のステップS22からステップS28の処理と同じである。
(ステップS41:設計データ特定処理)
図7のステップS21と同様に、設計データ特定部26は、制御プログラム51から生成元の設計データ41を特定する。
この際、図16のステップS31と同様に、設計データ特定部26は、連携データ45を取得する。具体的には、設計データ特定部26は、制御プログラム51等と合わせて連携データ45をユーザに指定させる。
(ステップS42:連携部品生成処理)
図7のステップS22と同様に、連携部品生成部29は、連携データ45に基づき、連携部品55を生成する。
***実施の形態2の効果***
以上のように、実施の形態2に係るプログラム生成装置10は、装置開発で用いられる3Dシミュレータに制御プログラム51を適用する場合に、動作条件の設定を実現するプログラムを再生成する。この際、実施の形態1で説明した通り、ユーザに追記された処理については、変更がされずそのまま残される。
これにより、処理を制御プログラム51に追記した後に変更された設計データ41から動作条件の設定を実現するプログラムを生成した場合に、追記された処理を残すことが可能である。
なお、以上の説明における「部」を、「回路」、「工程」、「手順」、「処理」又は「処理回路」に読み替えてもよい。
以上、本開示の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか1つ又はいくつかを部分的に実施してもよい。なお、本開示は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。
10 プログラム生成装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、15 電子回路、21 情報取得部、22 プログラム生成部、23 追跡情報設定部、24 プログラム統合部、25 生成元情報設定部、26 設計データ特定部、27 変更箇所特定部、28 変更反映部、29 連携部品生成部、30 シミュレーション部、31 プログラム部品の雛形、41 設計データ、42 変更前データ、43 変更後データ、44 設計情報、45 連携データ、51 制御プログラム、52 プログラム部品、53 追跡情報、54 生成元情報、55 連携部品。

Claims (11)

  1. 変更前の設計データである変更前データと、変更後の設計データである変更後データとの間で、1つのプログラム部品の生成元になる設計情報毎に、前記変更前データ及び前記変更後データを構成する設計情報を比較することにより、前記変更前データから生成された制御プログラムに対する変更箇所を特定する変更箇所特定部と、
    前記変更箇所特定部によって特定された前記変更箇所について、前記変更後データから生成された新たなプログラム部品を設定して、前記制御プログラムを更新する変更反映部と
    を備えるプログラム生成装置。
  2. 前記変更箇所特定部は、前記変更前データと前記変更後データとの間で差異がある設計情報である更新有情報と、前記変更後データに存在せず前記変更前データに存在する設計情報である削除情報と、前記変更前データに存在せず前記変更後データに存在する設計情報である追加情報とを前記変更箇所として特定し、
    前記変更反映部は、前記変更後データにおける前記更新有情報から生成された新たなプログラム部品と、前記変更後データにおける前記追加情報から生成された新たなプログラム部品とを設定して、前記制御プログラムを更新する
    請求項1に記載のプログラム生成装置。
  3. 前記変更反映部は、前記制御プログラムにおける前記更新有情報に対応するプログラム部品を、前記変更後データにおける前記更新有情報から生成された新たなプログラム部品に置き換えて、前記制御プログラムを更新する
    請求項2に記載のプログラム生成装置。
  4. 前記変更反映部は、前記変更後データにおける前記追加情報から生成された新たなプログラム部品を、前記制御プログラムに挿入して、前記制御プログラムを更新する
    請求項2に記載のプログラム生成装置。
  5. 前記変更反映部は、前記削除情報に対応するプログラム部品を、前記制御プログラムから削除して、前記制御プログラムを更新する
    請求項に記載のプログラム生成装置。
  6. 前記プログラム生成装置は、さらに、
    前記設計情報からプログラム部品を生成するプログラム生成部と、
    前記プログラム生成部によって生成されたプログラム部品に対して、生成元になった設計情報を示す追跡情報を設定する追跡情報設定部と
    を備え、
    前記追跡情報設定部によって設定された前記追跡情報により、プログラム部品に対応する設計情報が特定される
    請求項に記載のプログラム生成装置。
  7. 前記制御プログラムには、生成元になった設計データを示す生成元情報が設定されており、
    前記プログラム生成装置は、さらに、
    前記制御プログラムに設定された前記生成元情報に基づき、前記変更前データを特定する設計データ特定部
    を備える請求項に記載のプログラム生成装置。
  8. 前記プログラム生成装置は、さらに、
    前記制御プログラムが実装されるシミュレータにおける変数と、前記設計データにおける信号との対応関係を示す連携データに基づき、前記制御プログラムと前記シミュレータとを連携させる連携部品を生成する連携部品生成部
    を備える請求項に記載のプログラム生成装置。
  9. 前記プログラム生成装置は、さらに、
    初生成処理が指定された場合には、入力とする設計データを取得し、再生成処理が指定された場合には、前記変更前データ及び前記変更後データとを取得する情報取得部と、
    前記初生成処理が指定された場合に、前記情報取得部によって取得された前記設計データを構成する設計情報から生成されたプログラム部品により新規に制御プログラムを生成するプログラム統合部と
    を備え、
    前記変更箇所特定部は、前記再生成処理が指定された場合に、前記変更箇所を特定し、
    前記変更反映部は、前記再生成処理が指定された場合に、制御プログラムを更新する
    請求項に記載のプログラム生成装置。
  10. コンピュータが、変更前の設計データである変更前データと、変更後の設計データである変更後データとの間で、1つのプログラム部品の生成元になる設計情報毎に、前記変更前データ及び前記変更後データを構成する設計情報を比較することにより、前記変更前データから生成された制御プログラムに対する変更箇所を特定し、
    コンピュータが、前記変更箇所について、前記変更後データから生成された新たなプログラム部品を設定して、前記制御プログラムを更新するプログラム生成方法。
  11. 変更前の設計データである変更前データと、変更後の設計データである変更後データとの間で、1つのプログラム部品の生成元になる設計情報毎に、前記変更前データ及び前記変更後データを構成する設計情報を比較することにより、前記変更前データから生成された制御プログラムに対する変更箇所を特定する変更箇所特定処理と、
    前記変更箇所特定処理によって特定された前記変更箇所について、前記変更後データから生成された新たなプログラム部品を設定して、前記制御プログラムを更新する変更反映処理と
    を行うプログラム生成装置としてコンピュータを機能させるプログラム生成プログラム。
JP2022566428A 2022-06-21 2022-06-21 プログラム生成装置、プログラム生成方法及びプログラム生成プログラム Active JP7241988B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/024781 WO2023248364A1 (ja) 2022-06-21 2022-06-21 プログラム生成装置、プログラム生成方法及びプログラム生成プログラム

Publications (3)

Publication Number Publication Date
JP7241988B1 true JP7241988B1 (ja) 2023-03-17
JPWO2023248364A1 JPWO2023248364A1 (ja) 2023-12-28
JPWO2023248364A5 JPWO2023248364A5 (ja) 2024-05-28

Family

ID=85600314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022566428A Active JP7241988B1 (ja) 2022-06-21 2022-06-21 プログラム生成装置、プログラム生成方法及びプログラム生成プログラム

Country Status (3)

Country Link
JP (1) JP7241988B1 (ja)
TW (1) TW202401181A (ja)
WO (1) WO2023248364A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152549A (ja) * 1993-11-29 1995-06-16 Fuji Electric Co Ltd プラント用ソフトウエアの開発方法
JP2000222195A (ja) * 1999-01-28 2000-08-11 Fujitsu Ltd 修正プログラムを継承したプログラムの自動生成方法、プログラム自動生成装置及び修正プログラムを継承したプログラムを自動生成するプログラムを記録した記録媒体
JP2001147832A (ja) * 1999-11-19 2001-05-29 Nec Corp ソースプログラム対応表示方式
JP2014106557A (ja) * 2012-11-22 2014-06-09 Canon Marketing Japan Inc 情報処理装置、情報処理方法、及びコンピュータプログラム
JP7152549B2 (ja) 2015-09-16 2022-10-12 ディーエフビー ソリア リミテッド ライアビリティ カンパニー 薬物ナノ粒子の送達およびその使用法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152549A (ja) * 1993-11-29 1995-06-16 Fuji Electric Co Ltd プラント用ソフトウエアの開発方法
JP2000222195A (ja) * 1999-01-28 2000-08-11 Fujitsu Ltd 修正プログラムを継承したプログラムの自動生成方法、プログラム自動生成装置及び修正プログラムを継承したプログラムを自動生成するプログラムを記録した記録媒体
JP2001147832A (ja) * 1999-11-19 2001-05-29 Nec Corp ソースプログラム対応表示方式
JP2014106557A (ja) * 2012-11-22 2014-06-09 Canon Marketing Japan Inc 情報処理装置、情報処理方法、及びコンピュータプログラム
JP7152549B2 (ja) 2015-09-16 2022-10-12 ディーエフビー ソリア リミテッド ライアビリティ カンパニー 薬物ナノ粒子の送達およびその使用法

Also Published As

Publication number Publication date
TW202401181A (zh) 2024-01-01
JPWO2023248364A1 (ja) 2023-12-28
WO2023248364A1 (ja) 2023-12-28

Similar Documents

Publication Publication Date Title
JP3027009B2 (ja) 設計取り込みシステム
US10146672B2 (en) Method and system for automated user interface (UI) testing through model driven techniques
JP6289751B2 (ja) プログラム生成装置、プログラム生成方法及びプログラム生成プログラム
KR20070000732A (ko) 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템
JP2009169828A (ja) テストケース生成装置及びテストケース生成プログラム
JP7241988B1 (ja) プログラム生成装置、プログラム生成方法及びプログラム生成プログラム
US20110167047A1 (en) Editing apparatus, method, and storage medium
US10990505B2 (en) Stipulated overrides with violation resolution
CN112988880A (zh) 数据同步方法、装置、电子设备及计算机存储介质
JP6649731B2 (ja) Fpgaからリードバックするための信号の特定
US20230229638A1 (en) Delta clone-based database upgrades
JP2007264814A (ja) レプリケーションデータ作成プログラム、レプリケーションデータ反映プログラムおよびデータベース装置
CN114185530A (zh) 一种通用组件库开发的方法、装置、产品及存储介质
CN106528946A (zh) 一种批量***AutoCAD图块的方法
JP5120103B2 (ja) デバッグ方法およびデバッグプログラム
JP7008780B2 (ja) 状態遷移編集装置および状態遷移編集プログラム
JP6888336B2 (ja) スタブ生成装置、方法、及びプログラム
WO2024077485A1 (en) Method for implementing derivative nft, apparatus therefor and computer-readable storage medium
JP2005222371A (ja) 論理回路の機能検証システムおよび方法
CN110851141B (zh) 一种基于Coq的C++编译器变量作用域形式化方法
JP6807721B2 (ja) 状態遷移編集装置および状態遷移編集プログラム
WO2024023936A1 (ja) 仮想機械生成装置及び仮想機械生成プログラム
KR101636455B1 (ko) 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치 및 방법
KR20240077347A (ko) 노드 플로우 방식의 비주얼 코딩 창작 도구가 적용된 메타버스 플랫폼 시스템
JP2014142745A (ja) アプリケーション・テストシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221031

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221031

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20221031

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: 20230207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230307

R150 Certificate of patent or registration of utility model

Ref document number: 7241988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150