JP2023018178A - プログラミングツール及びプログラム作成支援方法 - Google Patents

プログラミングツール及びプログラム作成支援方法 Download PDF

Info

Publication number
JP2023018178A
JP2023018178A JP2021122077A JP2021122077A JP2023018178A JP 2023018178 A JP2023018178 A JP 2023018178A JP 2021122077 A JP2021122077 A JP 2021122077A JP 2021122077 A JP2021122077 A JP 2021122077A JP 2023018178 A JP2023018178 A JP 2023018178A
Authority
JP
Japan
Prior art keywords
adjustment
fbd
component
appearance
program
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
JP2021122077A
Other languages
English (en)
Inventor
雄太 松尾
Yuta Matsuo
智章 平根
Tomoaki Hirane
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2021122077A priority Critical patent/JP2023018178A/ja
Publication of JP2023018178A publication Critical patent/JP2023018178A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ドキュメントとしても利用可能なFBDプログラムに対して、ユーザの作業負担を軽減しながら、プログラムの視認性を向上させる。【解決手段】プログラミングツール100は、プログラムを編集するプログラム編集部101と、プログラムの編集で配置された各処理部品の位置情報と接続情報とを管理する部品情報管理部102と、プログラムにおける処理部品の実行順序を決定する実行順序決定部104と、処理部品の配置を変更してもプログラムにおける処理部品の実行順序が変化しない再コンパイル不要範囲を抽出する再コンパイル不要範囲抽出部103と、各処理部品を順次、調整対象部品として選択し、調整対象部品と他の処理部品との位置比較に基づいて、再コンパイル不要範囲内において、調整対象部品の配置を第1軸に沿って調整する第1方向の体裁調整と第2軸に沿って調整する第2方向の体裁調整とを順次実行する体裁調整部105と、を備える。【選択図】図1

Description

本発明は、プログラミングツール及びプログラム作成支援方法に関し、ファンクションブロックダイアグラム(FBD)言語によって記述されるFBDプログラムの作成を支援するプログラミングツール及びプログラム作成支援方法に適用して好適なものである。
従来、発電プラント、化学プラント、または圧延プラント等において、被制御機器をシーケンシャルに制御するために、プログラマブルロジックコントローラ(PLC)が用いられている。PLCに格納されているプログラムは、コンピュータ上に専用のソフトウェアをインストールしたプログラム作成支援装置(プログラミングツール)によって編集される。
ファンクションブロックダイアグラム(FBD)言語は、PLCが使用するループ制御プログラム等のプログラミングに用いられるプログラム言語であり、国際電機標準会議(IEC)が発行した標準規格IEC61131-3によると、FBD言語は、PLC用のプログラム言語の一つとして定義されている。FBD言語を用いるプログラミングツールは、それぞれ所定の処理に対応するFBD部品(ファンクションブロック)を配置する。プログラミングツールは、データや信号の流れに沿ってFBD部品を結線することで、一連の処理を記述する。
FBD言語を用いて作成されたソフトウェアは、コンパイルによって、FBD部品の位置情報および接続情報を基に処理の実行順序が決定される。プログラミングツールは、一連の処理の実行順序を決定することにより、FBDプログラムをPLCで実行するために必要なデータ(実行データ)を生成する。また、プログラミングツールは、FBDプログラムの図形描画に関するデータ(図形データ)を、FBDプログラムのプログラミングや保守に利用している。
FBD言語は、視覚的に分かりやすく制御プログラムを表現しているため、制御プログラムを示すドキュメントとしても用いられる。ドキュメントとする場合には、PLCのプログラム以上に視認性を向上する必要があり、しばしば体裁の調整が行われる。体裁の調整は、多くの場合、人の手によって行われるため、図らずもプログラムの実行順序に影響する変更を施してしまうことがあり、その場合には、プログラムの再コンパイルが必要となる。
例えば、特許文献1には、FBDプログラムの体裁の調整である図形データの編集にあたり、プログラミングツールを用いて移動したFBD部品が再コンパイル不要な範囲内であるかを判定する技術が開示されている。特許文献1に開示されたプログラミングツールは、実行順序が同一となる範囲を算出し、位置変更後のFBD部品がその範囲内である場合、再コンパイルを不要と判定する。
国際公開第2014/170992号
特許文献1に開示された再コンパイルの要否を判定する方法では、体裁の調整にあたってプログラミングツールを用いた人(ユーザ)の手による編集が必要となる。この場合、全てのプログラムについて体裁の調整を実施するために多くの時間が掛かってしまうという問題があった。具体的には例えば、ユーザはFBDプログラムをドキュメントとして発行する前に、制御プログラムを作成し、コンパイル及びPLC書き込みを行った後、動作確認を行うことが想定される。このとき、従来のプログラミングツールでは、再コンパイル不要の範囲内であるか否かを検討しながら、1部品ずつFBD部品の再配置を行うため、膨大な時間が必要となり、ユーザの作業負担が大きくなってしまう。
本発明は以上の点を考慮してなされたもので、ドキュメントとしても利用可能なFBDプログラムに対して、再コンパイルが不要な範囲内で処理部品(FBD部品)の体裁を自動的に調整することにより、ユーザの作業負担を軽減しながら、プログラムの視認性を向上させることが可能なプログラミングツール及びプログラム作成支援方法を提案しようとするものである。
かかる課題を解決するため本発明においては、ファンクションブロックダイアグラム言語によって記述されるプログラムの作成を支援するプログラミングツールであって、前記プログラムで実行する種々の処理に対応する複数の処理部品を配置し、前記配置した処理部品の間を当該プログラムの構成に応じて接続することにより前記プログラムを編集するプログラム編集部と、前記プログラム編集部による前記プログラムの編集で配置された各処理部品について、処理部品の配置場所を示す位置情報と処理部品間の接続関係を示す接続情報とを管理する部品情報管理部と、前記部品情報管理部で管理された各処理部品の位置情報及び接続情報に基づいて、前記プログラムにおける処理部品の実行順序を決定する実行順序決定部と、前記処理部品の配置を変更しても前記プログラムにおける前記処理部品の実行順序が変化しない再コンパイル不要範囲を抽出する再コンパイル不要範囲抽出部と、前記プログラムに含まれる各処理部品を順次、調整対象部品として選択し、当該調整対象部品と他の処理部品との位置比較に基づいて、前記再コンパイル不要範囲内において、当該調整対象部品の配置を所定の第1軸に沿って調整する第1方向の体裁調整と、当該調整対象部品の配置を前記第1軸と直交する第2軸に沿って調整する第2方向の体裁調整とを順次実行する体裁調整部と、を備えるプログラミングツールが提供される。
また、かかる課題を解決するため本発明においては、ファンクションブロックダイアグラム言語によって記述されるプログラムの作成を支援するプログラミングツールによるプログラム作成支援方法であって、前記プログラムで実行する種々の処理に対応する複数の処理部品を配置し、前記配置した処理部品の間を当該プログラムの構成に応じて接続することにより前記プログラムを編集するプログラム編集ステップと、前記プログラム編集ステップによる前記プログラムの編集で配置された各処理部品について、処理部品の配置場所を示す位置情報と処理部品間の接続関係を示す接続情報とを管理する部品情報管理ステップと、前記部品情報管理ステップで管理された各処理部品の位置情報及び接続情報に基づいて、前記プログラムにおける処理部品の実行順序を決定する実行順序決定ステップと、前記処理部品の配置を変更しても前記プログラムにおける前記処理部品の実行順序が変化しない再コンパイル不要範囲を抽出する再コンパイル不要範囲抽出ステップと、前記プログラムに含まれる各処理部品を順次、調整対象部品として選択し、当該調整対象部品と他の処理部品との位置比較に基づいて、前記再コンパイル不要範囲内において、当該調整対象部品の配置を所定の第1軸に沿って調整する第1方向の体裁調整と、当該調整対象部品の配置を前記第1軸と直交する第2軸に沿って調整する第2方向の体裁調整とを順次実行する体裁調整ステップと、を備えるプログラム作成支援方法が提供される。
本発明によれば、ドキュメントとしても利用可能なFBDプログラムに対して、ユーザの作業負担を軽減しながら、プログラムの視認性を向上させることができる。
本発明の第1の実施形態に係るプログラミングツール100の構成例を示すブロック図である。 第1の実施形態におけるドキュメント体裁調整処理の処理手順例を示すフローチャートである。 FBD部品の実行順序を決定する規則の一例を説明するための図である。 FBD部品の配置におけるx方向基準値の設定を説明するための図である。 FBD部品が占有する固有スペースの一例を示す図である。 x軸方向の第1調整規則の適用例を示す図である。 x軸方向の第2調整規則の適用例を示す図である。 FBD部品nにおける入出力接続点のy座標の表記を説明するための図である。 y軸方向の第1調整規則の適用例を示す図である。 y軸方向の第2調整規則の適用例を示す図である。 y軸方向の第3調整規則の適用例(その1)を示す図である。 y軸方向の第3調整規則の適用例(その2)を示す図である。 FBD部品の衝突判定の一例を説明するための図である。 本発明の第2の実施形態に係るプログラミングツール1400の構成例を示すブロック図である。 第2の実施形態におけるドキュメント体裁調整処理の処理手順例を示すフローチャートである。 特定部品を特定配置エリアまで移動する具体例を示す図である。
以下、図面を参照して、本発明の実施形態を詳述する。なお、以下の説明では、同種の要素を区別せずに説明する場合には、添字や枝番を含む参照符号のうちの共通部分(添字や枝番を除く部分)を使用し、同種の要素を区別して説明する場合には、添字や枝番を含む参照符号を使用することがある。
(1)第1の実施形態
(1-1)構成
図1は、本発明の第1の実施形態に係るプログラミングツール100の構成例を示すブロック図である。プログラミングツール100は、プログラマブルロジックコントローラ(PLC)で動作させるループ制御プログラム等に用いられるファンクションブロックダイアグラム(FBD)プログラムを編集するツールであって、プログラミングツールソフトウェアがインストールされたコンピュータで実現される。
図1に示すように、プログラミングツール100は、プログラム編集部101、部品情報管理部102、再コンパイル不要範囲抽出部103、実行順序決定部104、体裁調整部105、及び固有スペース情報格納部107を備えて構成される。これらの各構成のうち、固有スペース情報格納部107は、コンピュータが有する記憶装置によって実現され、その他の処理部は、コンピュータが有するプロセッサ(例えばCPU)が所定のプログラムを実行することによって実現される。なお、プロセッサが実行する所定のプログラム及び当該プログラムを実行する際に必要なデータの一部または全ては、必ずしも当該コンピュータ内に記憶されていなくてもよく、例えば当該コンピュータと接続された外部装置やクラウドサービス等から提供される形態であってもよい。
プログラム編集部101は、外部から入力されたFBDプログラムを編集する機能を有する。プログラム編集部101は、具体的には例えば、データ入力用インターフェイス111から入力されたFBDプログラム(以下、単にプログラムと称することがある)に対して、手入力装置112からの入力に従ってドキュメントにFBD部品を配置し、配置されたFBD部品同士を接続することによってプログラムを編集する。FBD部品は、FBDプログラムが実行する一連の処理に含まれる種々の所定の処理に対応する処理部品(ファンクションブロック)であって、FBDプログラムでは、データや信号の流れに沿ってFBD部品が結線されることで、上記一連の処理が記述される。
部品情報管理部102は、プログラム編集部101によって配置された各FBD部品について、FBD部品の配置場所を示す位置情報と、FBD部品間の接続関係を示す接続情報とを管理する。
再コンパイル不要範囲抽出部103は、FBD部品の配置を変更した場合に再コンパイルが不要な範囲(再コンパイル不要範囲)を抽出する。再コンパイル不要とは、例えば、FBDプログラムにおける処理の実行順序(言い換えればFBD部品の実行順序)に変化が生じないことを意味する。したがって、再コンパイル不要範囲内でFBD部品を移動(配置)する場合、配置変更後のFBDプログラムは再コンパイルを実行することなく利用可能である。再コンパイル不要範囲抽出部103が再コンパイル不要範囲を抽出する具体的な方法については、例えば特許文献1に開示された従来技術を利用可能であるため、詳細な説明を省略する。
実行順序決定部104は、プログラム編集部101で編集されたFBDプログラムについて、部品情報管理部102で管理されるFBD部品の位置情報と接続情報を基に、FBD部品の実行順序を決定する。
体裁調整部105は、プログラム編集部101で編集されたFBDプログラムのドキュメントとしての視認性を向上させるため、FBDプログラムの体裁の調整としてFBD部品を再配置する。詳しくは、体裁調整部105は、プログラム編集部101で編集されたFBDプログラムに対して、再コンパイル不要範囲抽出部103によって抽出された再コンパイル不要範囲の範囲内で、後述する体裁調整のアルゴリズムに従ってFBD部品を再配置し、再配置後のFBDプログラムをデータ出力用インターフェイス121及び出力装置122に出力する。また、体裁調整部105は、FBD部品同士が衝突しないかを判定する衝突判定部106を有する。
固有スペース情報格納部107は、各FBD部品が占有する固有スペースを示す情報(固有スペース情報)を格納するデータベースである。固有スペース情報格納部107に格納された固有スペース情報は、体裁調整部105によるFBD部品の体裁調整の際に参照される。
また、図1に示したように、プログラミングツール100を実現するコンピュータには、入力用の装置として、データ入力用インターフェイス111及び手入力装置112が接続され、出力用の装置として、データ出力用インターフェイス121及び出力装置122が接続される。
データ入力用インターフェイス111は、プログラミングツール100に入力されるデータ(編集前のFBDプログラム)を提供するインターフェイスであって、例えばUSB(Universal Serial Bus)メモリ等の外部記憶媒体で実現される。データ入力用インターフェイス111から入力されたFBDプログラムは、プログラミングツール100を実現するコンピュータにおいて保持され(不図示)、プログラミングツール100によって編集される。
手入力装置112は、ユーザの操作に応じた入力が行われる装置であって、例えばコンピュータに接続されたキーボード等である。具体的には例えば、ユーザは、手入力装置112を操作することにより、FBDプログラムに含まれるFBD部品の配置を指示する。
データ出力用インターフェイス121は、プログラミングツール100から出力されるデータ(編集後のFBDプログラム)を受け取るインターフェイスであって、例えばUSB(Universal Serial Bus)メモリ等の外部記憶媒体で実現される。
出力装置122は、プログラミングツール100で編集されたFBDプログラムの全てまたは一部を、ユーザ等が認識し易い形態で出力する装置であって、出力形式に応じた装置で実現される。具体的に例えば、表示による出力が行われる場合、出力装置122はディスプレイで実現され、印刷による出力が行われる場合、出力装置122はプリンタで実現される。
(1-2)ドキュメント体裁調整処理
図2は、第1の実施形態におけるドキュメント体裁調整処理の処理手順例を示すフローチャートである。図2に示したドキュメント体裁調整処理は、プログラミングツール100が実行する処理であって、より詳しくは、プログラム編集部101によって編集されたFBDプログラムのある1シートを対象として、体裁の調整を行ってFBD部品の配置を変更する処理である。一般に、FBDプログラムは複数のシート(ページ)で構成されることから、図2のドキュメント体裁調整処理は、FBDプログラムの各シートに対して繰り返し実行される。
(1-2-1)実行順序の決定
図2のドキュメント体裁調整処理では、まず、ステップS201の前処理として、プログラム編集部101が、FBDプログラムを構成するFBD部品のうち、当該処理の対象シートに存在するFBD部品をドキュメントのxy座標に配置する座標定義を行う。座標定義は、xy座標のグリッドに合うようにFBDプログラムのファンクション(FBD部品)を配置する処理に相当し、その具体例は後述する図3に示される。そして、実行順序決定部104が、所定の規則に従って、座標定義されたFBD部品の実行順序を決定する(ステップS201)。以降の説明では、実行順序がn番目のFBD部品をFBD部品nと称する。また、ドキュメント体裁処理の対象シート内のFBD部品の合計数をN個とする。
図3は、FBD部品の実行順序を決定する規則の一例を説明するための図である。図3には、座標定義されたFBD部品の一例として、ドキュメントのxy座標平面300に、矩形で示される7個のFBD部品(部品A~G)が示されている。図3に示したxy座標平面300では、x座標は左から右への方向を正とし、y座標は上から下への方向を正とする。そして、各FBD部品における4頂点のうち、x座標及びy座標がそれぞれ最も小さい頂点(すなわち、図3においては左上の頂点)を代表座標PPと定義し、具体的には、部品Aの代表座標をPPA、部品Bの代表座標をPPBのように記述する。なお、本実施形態の説明では、FBD部品を「部品」と略称することがある。
また、図3には、4つの処理グループ301~304が示されている。処理グループ301~304は、互いに接続されたFBD部品から構成される一連のFBD部品群であり、言い換えれば、入力または出力の接続関係を有するFBD部品のグループである。接続されたFBD部品が存在しない場合は、1つのFBD部品が1つの処理グループとなる。具体的には図3の場合、処理グループ301は部品A,Bから構成され、処理グループ302は部品C,E,Gから構成され、処理グループ303は部品Dから構成され、処理グループ304は部品Fから構成される。処理グループの構成は、FBDプログラムから判断することができる。なお、処理グループの概念は、後述する実行順序の第2規則で利用されるが、1つの部品だけで構成される処理グループ303,304は、処理グループとして扱わなくてもよい。
上記のように図3において部品A~Gが座標定義されたとき、実行順序決定部104は、図2のステップS201において、以下に説明する実行順序の第1規則及び第2規則に従って、実行順序を決定する。
実行順序の第1規則は、個々のFBD部品の座標に基づいて実行順序を決定する規則であって、PPのy座標が小さいものから順に実行し、PPのy座標が同一である場合は、x座標が小さい方から順に実行する。具体的には、図3の部品A~Gに第1規則のみを適用した場合、実行順序は部品A,B,C,D,E,F,Gの順となる。
実行順序の第2規則は、処理グループ内のFBD部品の接続関係に基づいて実行順序を決定する規則であって、複数のFBD部品を含む処理グループにおいて、あるFBD部品へ入力を行う他のFBD部品が存在する場合には、入力の接続における上流(すなわち入力元側)のFBD部品から順に実行する。FBD部品間の接続関係は、該当するファンクションに記述されている。具体的には、図3の場合、複数のFBD部品を含む処理グループ301,302が存在し、各処理グループに第2規則を適用すると、処理グループ301における実行順序は部品B,Aの順となり、処理グループ302における実行順序は部品E,C,Gの順となる。
そして、実行順序決定部104は、第1規則よりも第2規則を優先して適用し、かつ同一の処理グループ内のFBD部品は連続して実行するように、FBD部品の実行順序を決定する。この結果、図3に示すFBD部品の実行順序は、部品B,A,E,C,G,D,Fの順で決定される。
(1-2-2)x方向基準値の設定
図2の説明に戻る。ステップS201でFBD部品の実行順序を決定した後、実行順序決定部104は、FBD部品配置におけるx軸方向の基準値(x方向基準値)を設定する(ステップS202)。ステップS202の処理について、図4を参照しながら詳しく説明する。
図4は、FBD部品の配置におけるx方向基準値の設定を説明するための図である。図4には、配置イメージ410には、x方向基準値の設定前のFBD部品の配置例が示され、配置イメージ420には、x方向基準値の設定後のFBD部品の配置例が示されている。
図2のステップS201におけるFBD部品の実行順序の決定により、実行順序決定部104は、接続関係を有するFBD部品群(処理グループ)において、最も多くのFBD部品を経由する信号の経路を決定することができる。図4の配置イメージ410の場合、FBD部品1,2,4,5,6を経由する経路が、最も多くのFBD部品を経由する信号の経路である。このような経路上に存在するFBD部品の最大数をKで表すとき、実行順序決定部104は、K個のFBD部品をx軸方向に均等配置するための基準位置を決定する。この基準位置は、標準的な大きさの仮想的なFBD部品422をドキュメントの中央にK個均等に並べることによって定められる。
具体的には、図4の配置イメージ420の場合、経路上のFBD部品の最大数Kが5であることから、ドキュメントの中央線421を基準として、マージン423に重複しない範囲に、5つの仮想的なFBD部品422をy座標が負の位置に配置する(配置イメージ420を参照)。y座標が負の位置はドキュメントとして無効な領域であり、仮想的なFBD部品422は、FBDプログラムの最終的なドキュメントには出力されない。なお、FBDプログラムのドキュメントにおいて左右の端に設けられるマージン423は、ユーザが事前に設定可能とする。また、図4の例ではx軸両端にマージン423が設定されているが、y軸左端だけ、あるいはx軸右端だけにマージン423が設定されてもよい。
さらに、実行順序決定部104は、x方向基準値の設定に用いられる仮想的なFBD部品422に対して、後述するFBD部品のx軸方向への体裁調整の際にその実行順序を使用するため、正の整数とならないように実行順序を定める。具体的には例えば、x座標が小さいFBD部品422から順に、各FBD部品422の実行順序を1-K,2-K,・・・,0とする。図4の配置イメージ420の場合、K=5であるから、x座標が小さいFBD部品422から順に、その実行順序は-4,-3,-2,-1,0となる。
以上のように、ステップS202において実行順序決定部104がFBD部品配置におけるx軸方向の基準値(x方向基準値)を設定することにより、ドキュメントの記入対象外領域であるy座標の負領域に5つの仮想的なFBD部品422がx軸方向に均等配置され、後述する体裁調整部105による体裁の調整(x方向の体裁調整)が、これらの仮想的なFBD部品422を比較対象に含めて実行されることで、実在の各FBD部品の配置がFBD部品422のx座標を基準とした位置に調整される。この結果、x軸方向にFBD部品を配列する際に一貫性を持たせることができるため、FBDプログラムのドキュメントとして整然とした体裁に調整することが可能となる。
(1-2-3)体裁の調整
図2の説明に戻る。ステップS202で実行順序決定部104がx方向基準値を設定した後は、FBD部品nから1つが順次選択されて(ステップS203)、ステップS204~S208の処理が繰り返し実行される(図2において破線で囲んだステップS210)。ステップS204~S208の処理は、ユーザからの操作を必要とせずに、体裁調整部105による全体的な制御のもとで実行される自動処理であって、ステップS203で選択したFBD部品nの体裁を調整する処理である。
ステップS204では、再コンパイル不要範囲抽出部103が、ステップS203で選択されたFBD部品nについて、特許文献1に開示された技術やその他の既知の技術を利用して、再コンパイル不要範囲を決定する。
次に、体裁調整部105が、ステップS203で選択されたFBD部品nに対して、x軸方向の体裁調整(ステップS205)と、y軸方向の体裁調整(ステップS206)とを行う。以下では、適宜図面を参照しながら、FBD部品nのx軸方向の体裁調整及びy軸方向の体裁調整について詳しく説明する。なお、以下の説明では、FBD部品nの代表座標PPを(Xn,Yn)とし、FBD部品nのx軸方向の長さ(幅)をWn、y軸方向の長さ(高さ)をHnと定義する。
各軸方向の体裁調整にあたり、それぞれのFBD部品が占有する範囲は矩形の組み合わせで表現される。固有スペース情報格納部107には、それぞれのFBD部品がどのように矩形で表現されるかを示す情報として、各FBD部品が占有する固有スペースを示す固有スペース情報が予め格納されている。
図5は、FBD部品が占有する固有スペースの一例を示す図である。図5には、FBDプログラムのドキュメントにおいてあるFBD部品501が占有する範囲(固有スペース)を、矩形で表した例が示されている。
図5に示したFBD部品501は、FBD部品501の本体部分であるFBD部品本体部502、FBD部品501の信号名称等の属性情報を表示する信号名称表示部503、及びFBD部品501の取り合い先の情報を表示する信号取り合い情報表示部504に分けることができる。信号名称表示部503及び信号取り合い情報表示部504は、FBD部品501の属性を示す情報を対人向けに表示する要素である。
上記の各部502,503,504で構成されるFBD部品501について、本実施形態では、各部502,503,504をそれぞれ矩形で囲み、組み合わせたものを、FBD部品501の占有範囲(固有スペース)とすることができる。また、本実施形態では、ユーザの指定または選択により、各部502,503,504の全てを包括する矩形505を、FBD部品501の固有スペースとしてもよい。なお、この場合、矩形505には、ユーザの指定または選択により、x軸方向、y軸方向、またはxy軸両方向に、それぞれ一定のマージン506を持たせるようにしてもよい。
そして、固有スペース情報格納部107には、データ出力用インターフェイス121から入力されたFBDプログラムに含まれる全てのFBD部品nについて、上記の規定に基づいて定められる各FBD部品の占有範囲(固有スペース)を示す固有スペース情報が格納される。
(1-2-3-1)x方向の体裁調整
FBD部品nのx軸方向(x方向と略称することがある)の体裁調整について詳しく説明する。図2のステップS205において、体裁調整部105は、以下に説明するx軸方向の第1調整規則及び第2調整規則等に従って、FBD部品nの体裁をx軸方向に調整する。
FBD部品nに対するx軸方向の体裁の調整において、FBD部品nの代表座標(Xn,Yn)のx座標「Xn」は、ステップS204で再コンパイル不要範囲抽出部103によって抽出されたFBD部品nの再コンパイル不要範囲の範囲内で調整されるとする。さらに、FBD部品nの入力側に接続するFBD部品pが存在する場合には、体裁調整部105は、「Xp+Wp+Xoffset≦Xn」の関係が成立するようにFBD部品nを調整するものとする。この調整を行うことで、FBD部品nはx軸の正方向に移動される。この結果、上記範囲をXnの調整範囲としてx軸方向の体裁の調整が行われる。なお、Xoffsetは、FBD部品間でx軸方向に設けられるマージンの値(オフセット値)であり、ユーザが定義可能とする。
図6は、x軸方向の第1調整規則の適用例を示す図である。図6において、ドキュメント610には、FBD部品nが含まれる対象シートにおいて、FBD部品nにx軸方向の第1調整規則を適用する前の各FBD部品の配置例が示されており、ドキュメント620には、FBD部品nにx軸方向の第1調整規則を適用した後の各FBD部品の配置例が示されている。
x軸方向の第1調整規則は、FBD部品nのx軸方向の調整範囲(Xnの調整範囲)内に、FBD部品nと同じ部品に接続するFBD部品m(m<n)が存在する場合に適用が試行される。上記の条件を満たすFBD部品mが存在する場合、体裁調整部105は、x軸方向の第1調整規則を適用することにより、Xnの調整範囲内で、FBD部品nをx軸方向でFBD部品mに揃えるように調整する。なお、本説明において、FBD部品の添字を用いた上記の「m<n」のような不等式は、実行順序の関係を表している。例えば、「m<n」の場合、FBD部品mの実行順序がFBD部品nよりも先である(小さい)ことを意味する。
ここで、図6に示したFBD部品nの配置を確認すると、x軸方向の第1調整規則の適用により、x軸方向でFBD部品mと「左揃え」になるようにFBD部品nの位置が調整されている。このように左揃えとする場合、体裁調整部105は、Xn=XmとなるようにXnを決定すればよい。なお、揃え方は左揃えに限定されるものではなく、既定の設定やユーザの選択により、中央揃えや右揃えを採用してもよい。中央揃えにする場合は、「Xn=Xm+Wm/2-Wn/2」の算出式を用いてXnを決定すればよく、右揃えにする場合は、「Xn=Xm+Wm-Wn」の算出式を用いてXnを決定すればよい。
但し、体裁調整部105がFBD部品nの調整を行う際は、衝突判定部106が他のFBD部品に衝突しないかを判定しており、x軸方向の第1調整規則を適用してFBD部品nをFBD部品mに揃えようとした際に、FBD部品nがFBD部品l(l<n)と衝突すると衝突判定部106が判定した場合には、体裁調整部105は当該調整を取り止める。衝突判定部106による衝突判定については、図13を参照しながら後述する。
また、FBD部品nのx軸方向の調整範囲(Xnの調整範囲)内に、FBD部品nと同じ部品に接続するFBD部品m(m<n)が複数存在する場合には、体裁調整部105は、実行順序が最小(最も早い)のものから順にFBD部品mを1つ選択し、選択したFBD部品mを用いて、FBD部品nに対してx軸方向の第1調整規則の適用を試みる。このとき、他のFBD部品lに衝突することなく、選択したFBD部品mを用いてFBD部品nをx軸方向に揃えることができた場合には、体裁調整部105は、当該調整による配置をもって、FBD部品nのx軸方向の体裁調整を終了する。一方、選択したFBD部品mを用いてFBD部品nをx軸方向に揃えようとしたときに他のFBD部品lに衝突すると判定された場合は、体裁調整部105は、順次、次の実行順序のFBD部品mを選択し、試行を繰り返す。最終的に全てのFBD部品mに対してFBD部品nをx軸方向に揃えることができなかった場合、体裁調整部105は、x軸方向の第1調整規則の適用を諦め、x軸方向の第2調整規則の適用に移行する。
以上のようにx軸方向の第1調整規則が適用された場合には、同じFBD部品に接続するFBD部品nとFBD部品mとを、縦方向に(同一のx座標上に)揃えることができるため、ドキュメント620に示されるように、同一のFBD部品と接続することに対する視認性を向上させる効果が得られる。
図7は、x軸方向の第2調整規則の適用例を示す図である。図7において、ドキュメント710には、FBD部品nが含まれる対象シートにおいて、FBD部品nにx軸方向の第2調整規則を適用する前の各FBD部品の配置例が示されており、ドキュメント720には、FBD部品nにx軸方向の第2調整規則を適用した後の各FBD部品の配置例が示されている。
x軸方向の第2調整規則は、x軸方向の第1調整規則によってFBD部品nをx軸方向に調整できない場合に適用が試行される。具体的には、FBD部品nのx軸方向の調整範囲(Xnの調整範囲)内にFBD部品nと同じ部品に接続するFBD部品m(m<n)が存在しない場合、あるいは、FBD部品nのx軸方向の調整範囲(Xnの調整範囲)内にFBD部品nと同じ部品に接続するFBD部品m(m<n)が1以上存在するものの、その全てのFBD部品mについて部品の衝突により第1調整規則による調整が実施できない場合に、x軸方向の第2調整規則の適用が試行される。
上記の試行条件が成立するとき、体裁調整部105は、Xnの調整範囲内にx方向基準値設定用のFBD部品(図4で説明した仮想的なFBD部品422)が含まれ、Xnの調整範囲内にFBD部品m(m<n)が存在する場合に、体裁調整部105は、x軸方向の第2調整規則を適用することにより、x軸方向でFBD部品mに揃えるようにFBD部品nのXnを調整する。
ここで、図7に示したFBD部品nの配置を確認すると、x軸方向の第2調整規則の適用により、x軸方向でFBD部品mと「左揃え」になるようにFBD部品nの位置が調整されている。このように左揃えとする場合、体裁調整部105は、Xn=XmとなるようにXnを決定すればよい。なお、揃え方は左揃えに限定されるものではなく、既定の設定やユーザの選択により、中央揃えや右揃えを採用してもよい。中央揃えにする場合は、「Xn=Xm+Wm/2-Wn/2」の算出式を用いてXnを決定すればよく、右揃えにする場合は、「Xn=Xm+Wm-Wn」の算出式を用いてXnを決定すればよい。
但し、x軸方向の第1調整規則のときと同じく、体裁調整部105がFBD部品nの調整を行う際は、衝突判定部106が他のFBD部品に衝突しないかを判定しており、x軸方向の第2調整規則を適用してFBD部品nをFBD部品mに揃えようとした際に、FBD部品nがFBD部品l(l<n)と衝突すると衝突判定部106が判定した場合には、体裁調整部105は当該調整を取り止める。
また、Xnの調整範囲内にFBD部品m(m<n)が複数存在する場合には、x軸方向の第1調整規則のときと同様に、体裁調整部105は、実行順序が最小(最も早い)のものから順にFBD部品mを1つ選択し、FBD部品nに対してx軸方向の第2調整規則の適用を試みる。このとき、他のFBD部品lに衝突することなく、選択したFBD部品mを用いてFBD部品nをx軸方向に揃えることができた場合には、体裁調整部105は、当該調整による配置をもって、FBD部品nのx軸方向の体裁の調整を終了する。一方、選択したFBD部品mを用いてFBD部品nをx軸方向に揃えようとしたときに他のFBD部品lに衝突すると判定された場合は、体裁調整部105は、順次、次の実行順序のFBD部品mを選択し、試行を繰り返す。最終的に全てのFBD部品mに対してFBD部品nをx軸方向に揃えることができなかった場合、体裁調整部105は、x軸方向の第2調整規則の適用を諦める。
以上のようにx軸方向の第2調整規則が適用された場合には、同じ部品には接続しないがXnの調整範囲内に存在するFBD部品mと、FBD部品nとを縦方向に(同一のx座標上に)揃えることができるため、ドキュメント720に示されるように、整然としたFBDプログラムのドキュメントを生成する効果が得られる。
なお、ステップS205におけるx軸方向の体裁調整において第1調整規則及び第2調整規則の何れも適用できなかった場合、具体的には、Xnの調整範囲に比較対象に該当するFBD部品mが存在しない場合、あるいは該当するFBD部品mが存在してもその全てについてFBD部品nの移動に伴ってFBD部品の衝突が発生する場合には、体裁調整部105は、前述したようにFBD部品nを「Xp+Wp+Xoffset≦Xn」の範囲内まで移動させる(Xnの調整範囲までFBD部品nをx軸の正方向に移動させる)ことを除いて、FBD部品nのx座標方向の体裁調整を実施しない。このような状況は、例えば、FBD部品nが、最も多くのFBD部品を経由する信号経路上のFBD部品である場合に該当する可能性がある。
(1-2-3-2)y方向の体裁調整
FBD部品nのy軸方向(y方向と略称することがある)の体裁調整について詳しく説明する。図2のステップS206において、体裁調整部105は、以下に説明するy軸方向の第1調整規則~第3調整規則等に従って、FBD部品nの体裁をy軸方向に調整する。
FBD部品nに対するy軸方向の体裁の調整において、FBD部品nの代表座標(Xn,Yn)のy座標「Yn」は、ステップS204で再コンパイル不要範囲抽出部103によって抽出されたFBD部品nの再コンパイル不要範囲の範囲内で調整されるとする。以下、この調整範囲をYnの調整範囲と定義する。なお、本実施形態では、矩形のFBD部品は、y方向に延びる2辺のうちx軸の負側の辺に入力用の接続点が設けられx軸の正側の辺に出力用の接続点が設けられるように、FBDプログラムのドキュメントに配置されるとしており、各接続点の座標は、図8のように表記される。
図8は、FBD部品nにおける入出力接続点のy座標の表記を説明するための図である。図8に示すように、FBD部品nにおいて、入力側のp番目の接続点(入力p)のy座標は「Yn_inp」と表記し、出力側のq番目の接続点(出力q)のy座標は「Yn_outq」と表記する。
図9は、y軸方向の第1調整規則の適用例を示す図である。図9において、ドキュメント910には、FBD部品nが含まれる対象シートにおいて、FBD部品nにy軸方向の第1調整規則を適用する前の各FBD部品の配置例が示されており、ドキュメント920には、FBD部品nにy軸方向の第1調整規則を適用した後の各FBD部品の配置例が示されている。
y軸方向の第1調整規則は、y軸方向の調整範囲(Ynの調整範囲)内に、FBD部品nの入力側の接続点に接続するFBD部品m(m<n)が存在する場合に適用が試行される。上記の条件を満たすFBD部品mが存在する場合、体裁調整部105は、y軸方向の第1調整規則を適用することにより、Ynの調整範囲内で、FBD部品nの入力側の接続点が当該接続点に接続するFBD部品mの出力側の接続点とy軸方向で揃うようにFBD部品nを調整する。
より具体的な調整内容を図9を参照しながら確認する。ドキュメント910には、FBD部品nの入力側の1番目の接続点(Xn,Yn_in1)が、FBD部品mの出力側の1番目の接続点(Xm+Wm,Ym_out1)から接続されている例が示されている。このとき、体裁調整部105は、FBD部品nに対してy軸方向の第1規則を適用することにより、Yn_in1=Ym_out1となるようにYn_in1を決定する。このような調整を行うことにより、体裁調整部105は、ドキュメント920に示すように、FBD部品mとFBD部品nの両接続点のy座標を同じに揃えることができ、このときFBD部品mとFBD部品nとを接続する接続線はx軸に平行な直線となる。
但し、体裁調整部105がFBD部品nの調整を行う際は、衝突判定部106が他のFBD部品に衝突しないかを判定しており(詳細は後述する図13を参照)、y軸方向の第1調整規則を適用してFBD部品nをFBD部品mに揃えようとした際に、FBD部品nがFBD部品l(l<n)と衝突すると衝突判定部106が判定した場合には、体裁調整部105は当該調整を取り止める。
体裁調整部105は、上述したy軸方向の第1調整規則によってFBD部品nを調整できた場合は、当該調整をもってFBD部品nに対するy方向の体裁調整を終了する。一方、y軸方向の第1調整規則によるFBD部品nの調整ができなかった場合は、後述するy軸方向の第2調整規則の適用に移行する。
以上のようにy軸方向の第1調整規則が適用された場合には、FBD部品nに対して直接的な入力の接続関係を有するFBD部品mの出力側の接続点の高さに、対向するFBD部品nの入力側の接続点の高さを揃えることができるため、FBD部品mからFBD部品nに入力される接続線を折れ線から直線に修正することができ、ドキュメントにおいてFBD部品mとFBD部品nとの接続関係に対する視認性を向上させる効果が得られる。
なお、y軸方向の第1調整規則が適用できないFBD部品nは、具体的には次のようなFBD部品である。第1に、FBD部品nが入力側の接続点に接続関係を持たない場合であり、より具体的には、FBD部品nが複数部品から構成される処理グループに属していないか、複数部品から構成される処理グループで最初に実行される部品である場合に該当する。第2に、衝突によりFBD部品nの調整ができない場合であり、これは、1つの部品の出力から複数の部品の入力に接続されるときに発生し得る。
図10は、y軸方向の第2調整規則の適用例を示す図である。図10において、ドキュメント1010には、FBD部品nが含まれる対象シートにおいて、FBD部品nにy軸方向の第2調整規則を適用する前の各FBD部品の配置例が示されており、ドキュメント1020には、FBD部品nにy軸方向の第2調整規則を適用した後の各FBD部品の配置例が示されている。
y軸方向の第2調整規則は、y軸方向の第1調整規則によってFBD部品nをy軸方向に調整できない場合に適用が試行される。y軸方向の第2調整規則では、体裁調整部105は、FBD部品nのYnの調整範囲内にFBD部品m(0<m<n)が存在する場合に、FBD部品nをy軸方向でFBD部品mに揃えるように調整する。揃え方は、上揃え、中央揃え、または下揃えの何れであってもよく、既定の設定またはユーザの選択により任意の揃え方を採用する。図10の場合は、上揃えが採用されており、このとき体裁調整部105は、Yn=YmとなるようにYnを決定すればよい。また、体裁調整部105は、中央揃えを採用する場合には、「Yn=Ym+Hm/2-Hn/2」の算出式を用いてYnを決定すればよく、下揃えを採用する場合には、「Yn=Ym+Hm-Hn」の算出式を用いてYnを決定すればよい。
但し、y軸方向の第1調整規則のときと同じく、体裁調整部105がFBD部品nの調整を行う際は、衝突判定部106が他のFBD部品に衝突しないかを判定しており、y軸方向の第2調整規則を適用してFBD部品nをFBD部品mに揃えようとした際に、FBD部品nがFBD部品l(l<n)と衝突すると衝突判定部106が判定した場合には、体裁調整部105は当該調整を取り止める。
また、FBD部品nのYnの調整範囲内に複数のFBD部品m(0<m<n)が存在する場合には、体裁調整部105は、実行順序が最小である(最も早い)ものから順にFBD部品mを1つ選択し、選択したFBD部品mを用いて、FBD部品nに対してy軸方向の第2調整規則の適用を試みる。このとき、他のFBD部品lに衝突することなく、選択したFBD部品mを用いてFBD部品nをy軸方向に揃えることができた場合には、体裁調整部105は、当該調整をもってFBD部品nに対するy方向の体裁調整を終了する。一方、選択したFBD部品mを用いてFBD部品nをy軸方向に揃えようとしたときに他のFBD部品lに衝突すると判定された場合は、体裁調整部105は、順次、次の実行順序のFBD部品mを選択し、試行を繰り返す。最終的に全てのFBD部品mに対してFBD部品nをy軸方向に揃えることができなかった場合、体裁調整部105は、y軸方向の第2調整規則の適用を諦め、y軸方向の第3調整規則の適用に移行する。
以上のようにy軸方向の第2調整規則が適用された場合には、FBD部品nに対して間接的な入力の接続関係を有するFBD部品mの高さに、FBD部品nの高さを揃えることができるため、ドキュメント1020に示されるように、整然としたFBDプログラムのドキュメントを生成する効果が得られる。
次に、y軸方向の第3調整規則について説明する。
y軸方向の第3調整規則は、y軸方向の第1調整規則及び第2調整規則の何れも適用できなかった場合に適用が試行される。y軸方向の第3調整規則は、FBD部品nに対して直接的または間接的に入力の接続関係を有しないFBD部品m(m<n)がy軸方向の調整範囲内に存在する場合に、FBD部品mを目標として、FBD部品nの高さを、FBD部品m、またはFBD部品nにy軸方向で最も近い位置でFBD部品mに後続されたFBD部品(後述するFBD部品s)に対して所定のオフセットを開けて揃えるものである。以下により詳しく説明する。
前述したx軸方向の第1調整規則または第2調整規則の適用により、FBD部品nが、FBD部品r(r<n)に対して左揃え、中央揃え、または右揃えの何れかでx方向に体裁調整されたとする。このとき、r≦m<nを満たす自然数mが存在し、FBD部品mがFBD部品nと左揃え、中央揃え、または右揃えの何れかで整列されている。
このようなmのうち最大のmにおいて、FBD部品mとFBD部品nとが同じFBD部品群(処理グループ)に属する場合、体裁調整部105は、y軸方向の第3調整規則の適用により、「Yn=Ym+Hm+Yoffset」の算出式を用いてYnを決定する。このような体裁調整の具体例は図11に示される。なお、Yoffsetは、FBD部品間でy軸方向に設けられるマージンの値(オフセット値)であり、ユーザが定義可能とする。
図11は、y軸方向の第3調整規則の適用例(その1)を示す図である。前述したように、図11は、FBD部品mとFBD部品nとが同じFBD部品群(処理グループ)に属する場合にFBD部品nに対してy軸方向の第3調整規則を適用したときの具体例を示したものである。
図11において、ドキュメント1110には、FBD部品nが含まれる対象シートにおいて、FBD部品nにy軸方向の第3調整規則を適用する前の各FBD部品の配置例が示されている。ドキュメント1110に示されたFBD部品mは、FBD部品nと同じ処理グループに属しており、かつ、Ynの調整範囲内で、FBD部品nとx方向に揃えられている。各部品が上記のように配置されているとき、体裁調整部105は、y軸方向の第3調整規則により、「Yn=Ym+Hm+Yoffset」を満たすようにYnを決定し、ドキュメント1120に示すように、決定後のYnに従ってFBD部品nをy軸の負方向に移動させる。この結果、FBD部品nは、FBD部品mの下端からYoffsetの間隔をあけた位置に配置される。
一方、上記「最大のm」によるFBD部品mにおいて、FBD部品mとFBD部品nとが異なるFBD部品群(処理グループ)に属する場合、体裁調整部105は、y軸方向の第3調整規則の適用により、FBD部品nが属さないFBD部品群においてm≦s<nかつ代表座標PPのy座標が最大となるFBD部品sを考慮に入れて、「Yn=Ys+Hs+Yoffset」の算出式を用いてYnを決定する。このような体裁調整の具体例は図12に示される。なお、記載をまとめると、上記した「最大のmによるFBD部品m」とは、FBD部品nに対して直接的または間接的に入力の接続関係を有することなく、かつ、x方向の体裁調整によりFBD部品nとx方向に揃えられたFBD部品のうち、最も実行順序がFBD部品nに近いFBD部品m、を意味する。
図12は、y軸方向の第3調整規則の適用例(その2)を示す図である。前述したように、図12は、FBD部品mとFBD部品nとが異なるFBD部品群(処理グループ)に属する場合にFBD部品nに対してy軸方向の第3調整規則を適用したときの具体例を示したものである。
図12において、ドキュメント1210には、FBD部品nが含まれる対象シートにおいて、FBD部品nにy軸方向の第3調整規則を適用する前の各FBD部品の配置例が示されている。ドキュメント1210に示されたFBD部品mは、FBD部品nとは異なる処理グループに属しており、かつ、Ynの調整範囲内で、FBD部品nとx方向に揃えられている。また、ドキュメント1210に示されたFBD部品sは、FBD部品nが属さない処理グループにおいて、FBD部品nよりも実行順序が早く(m≦s<n)、かつ、代表座標PPのy座標「Ys」が最大となる(すなわち、y座標で最もFBD部品nに近い)FBD部品である。各部品が上記のように配置されているとき、体裁調整部105は、y軸方向の第3調整規則により、「Yn=Ys+Hs+Yoffset」を満たすようにYnを決定し、ドキュメント1220に示すように、決定後のYnに従ってFBD部品nをy軸の負方向に移動させる。この結果、FBD部品nは、FBD部品sの下端からYoffsetの間隔をあけた位置に配置される。
以上のようにy軸方向の第3調整規則が適用されることにより、FBD部品nとFBD部品mとが同じFBD部品群(処理グループ)に属する場合は、同じFBD部品に接続されるFBD部品の縦方向の間隔を一定とし、FBDプログラムを整然とする効果が得られる(図11のドキュメント1120参照)。また、FBD部品nとFBD部品mとが同じFBD部品群(処理グループ)に属しない場合は、縦方向(y軸方向)に直近の処理グループとの間に、縦方向に一定の間隔をあけて整然と整列させる効果が得られる(図12のドキュメント1220参照)。
なお、体裁調整部105は、上記のy軸方向の第3調整規則の適用においても、FBD部品nがFBD部品l(l<n)と衝突すると衝突判定部106が判定した場合には、体裁調整部105は当該調整を取り止め、y方向の体裁調整を終了する。また、y軸方向の第3調整規則の適用を試行可能なFBD部品nが存在しない場合も、FBD部品nをy軸方向に移動させることなく、y方向の体裁調整を終了する。
(1-2-3-3)FBD部品の衝突判定
図13は、FBD部品の衝突判定の一例を説明するための図である。前述したように、図2のステップS205,S206において体裁調整部105がFBD部品nの調整を行う際は、衝突判定部106が他のFBD部品に衝突しないかを判定する。図13では、部品同士の衝突を判定する方法の一例としてヒットボックス方式を説明するが、本実施形態で衝突判定部106が衝突を判定する方法はこれに限定されるものではなく、既知の他の方法を採用してもよい。
図13には、矩形のFBD部品の一例として、FBD部品m及びFBD部品が示されている。ヒットボックス方式を採用する場合、衝突判定部106は、「Xn≦Xm+Wm」、「Xm≦Xn+Wn」、「Yn≦Ym+Hm」、及び「Ym≦Yn+Hn」の4つの関係式が全て成立する場合に、FBD部品mとFBD部品nが衝突していると判定する。
以上のようにして、図2のステップS205(FBD部品nのx方向の体裁調整)及びステップS206(FBD部品nのy方向の体裁調整)の処理が終了すると、体裁調整部105は、nの値を1加算し(ステップS207)、加算後のnの値が対象シート内のFBD部品の合計数をNを超えているか否かを判定する(ステップS208)。加算後のnの値がNを超えている場合は(ステップS208のNO)、対象シート内に体裁調整が実施されていないFBD部品nが存在することを意味するため、ステップS204に戻り、処理を繰り返す。そして、全N個の全てのFBD部品に対して体裁処理が完了すると、ステップS208において加算後のnの値がNを超える。このとき(ステップS208のYES)、プログラミングツール100は、対象シートに対するドキュメント体裁調整処理を終了する。
なお、図2には図示していないが、プログラミングツール100は、ドキュメント体裁調整処理において適宜、任意の情報を出力することができる。
具体的には例えば、体裁調整部105は、ステップS208でYESと判定した後に、シート単位でFBD部品の体裁を自動調整したFBDプログラム(ドキュメント)をデータ出力用インターフェイス121に出力する。あるいは体裁調整部105は、FBDプログラムの全シートに対するドキュメント体裁調整処理が完了した後に、調整結果を出力するようにしてもよい。また、体裁調整部105は、体裁の調整結果(例えばドキュメント)を出力装置122に送って出力(表示、印刷、データ化など)させることにより、ユーザから確認できるようにしてもよい。このとき、出力装置122で出力された体裁の調整結果を確認したユーザが手動で修正を加えたい場合には、手入力装置112を操作して修正を指示できるようにし、当該指示に応じてプログラム編集部101(体裁調整部105でもよい)がFBDプログラムにおけるFBD部品の配置を修正するようにしてもよい。
また、図2に示したドキュメント体裁調整処理による体裁調整の結果、FBD部品がFBDプログラムドキュメントとして表示される範囲外まで移動してしまう場合があり得るが、そのような場合には、体裁調整部105が出力装置122に警告を表示させる等して、適切な体裁調整ができなかった旨をユーザに報知するようにしてもよい。
また例えば、FBD部品nのx方向またはy方向の体裁調整(ステップS205,S206)において、FBD部品nに対して何れの調整規則も適用できなかった場合にも、適宜、出力装置122に警告を表示させる等してもよい。但し、x方向の体裁調整が実施できない場合でも、y方向の体裁調整に移行してもよいとする。
以上に説明したように、本実施形態に係るプログラミングツール100は、ドキュメント体裁調整処理により、ドキュメントとしても利用可能なFBDプログラムの1シートごとに、当該シートに含まれる各FBD部品nに対してx方向の体裁調整及びy方向の体裁調整を実行することで、ドキュメントにおけるFBD部品の配置を自動的に整えることができる。またこのとき、x方向及びy方向の体裁調整は、再コンパイル不要範囲内(具体的には、Xnの調整範囲内かつYnの調整範囲内)でFBD部品nを移動させるものであるから、体裁調整によってFBD部品が再配置された後のFBDプログラムは、再コンパイルを実行することなく使用可能である。すなわち、本実施形態に係るプログラミングツール100によれば、ドキュメントとしても利用可能なFBDプログラムに対して、再コンパイルが不要な範囲内で処理部品(FBD部品)の体裁を自動的に調整することにより、ユーザの作業負担を軽減しながら、プログラムの視認性を向上させることができる。
(2)第2の実施形態
図14は、本発明の第2の実施形態に係るプログラミングツール1400の構成例を示すブロック図である。なお、図1に示した第1の実施形態に係るプログラミングツール100と共通する構成については、同一の符号を付し、その説明を省略する。
第2の実施形態に係るプログラミングツール1400は、FBDプログラムに含まれる複数のFBD部品の体裁を自動的に調整する点で、第1の実施形態に係るプログラミングツール100と同様であるが、予め指定された特定のFBD部品(以後、特定部品)については、事前に定義された特定の領域(特定配置エリア)に配置できるようにする点で、第1の実施形態に係るプログラミングツール100と異なる。
図14に示したように、プログラミングツール1400の構成は、図1に示したプログラミングツール100の構成に特定配置エリア情報格納部1401が追加され、体裁調整部105が体裁調整部1402に変更されている。
特定配置エリア情報格納部1401は、特定部品を配置する領域(特定配置エリア)を示す特定配置エリア情報を格納するデータベースである。特定部品は、ユーザから指定される特定のFBD部品であり、特定配置エリア情報には、特定部品ごとにその特定配置エリアが定義される。特定配置エリア情報は、体裁調整部1402がFBD部品の体裁を調整する際に参照される。
体裁調整部1402は、第1の実施形態における体裁調整部105と同様に、プログラム編集部101で編集されたFBDプログラムのドキュメントとしての視認性を向上させるため、FBDプログラムの体裁の調整としてFBD部品を再配置する機能を有し、さらに、特定部品については、特定配置エリア情報格納部1401に格納された特定エリア情報に基づいて配置先を決定するという追加機能を有する。
図15は、第2の実施形態におけるドキュメント体裁調整処理の処理手順例を示すフローチャートである。図15に示したドキュメント体裁調整処理は、プログラミングツール1400が実行する処理である。図15では、図2に示したドキュメント体裁調整処理と共通する処理には、図2と同一のステップ番号を付している。なお、図2において体裁調整部105によって実行されるとした処理は、図15では体裁調整部1402によって実行される。
図15に示したように、第2の実施形態におけるドキュメント体裁調整処理では、第1の実施形態で図2に示したドキュメント体裁調整処理の各処理(ステップS201~S208)に加えて、体裁調整部1402による全体的な制御のもとで実行される体裁処理の自動処理(ステップS1510)のなかで、FBD部品nが特定部品である場合には特定配置エリアに当該部品を配置する処理が実行される。
詳しくは、ステップS204においてFBD部品nの再コンパイル不要範囲が決定された後、体裁調整部1402が、特定配置エリア情報格納部1401に格納された特定配置エリア情報を参照して、FBD部品nが特定部品であるか否かを判定し(ステップS1501)、FBD部品nが特定部品である場合には(ステップS1501のYES)、FBD部品nを特定配置エリア情報に定義された特定配置エリアまでx軸方向に移動する(ステップS1502)。ステップS1502の具体的な処理内容については、図16を参照しながら後述する。ステップS1502の実行後は、ステップS205の処理を行うことなくステップS206の処理に進む。一方、FBD部品nが特定部品ではない場合には(ステップS1501のNO)、ステップS205に進み、第1の実施形態と同様のx方向の体裁調整を行い、その後、ステップS206の処理に進む。
図16は、特定部品を特定配置エリアまで移動する具体例を示す図である。図16には、FBDプログラムのドキュメントにおいてFBD部品を記載可能な記載領域1600のなかで、特定部品を特定配置エリアに移動する様子を模式的に示している。
図16において、FBD部品1601,1603は、特定部品として指定されたFBD部品の一例である。本例では、FBDプログラムにおいて信号の入出力を行うFBD部品を特定部品としているが、本実施形態における特定部品はこれに限定されるものではない。FBD部品1601は信号の入力を行うFBD部品であり、FBD部品1603は信号の出力を行うFBD部品である。また、それぞれのFBD部品を囲む実線の矩形は、FBD部品の占有スペースを表す。
また、図16において、特定配置エリア1605は、FBD部品1601について特定配置エリア情報で定義された特定配置エリアであり、特定配置エリア1606は、FBD部品1603について特定配置エリア情報で定義された特定配置エリアである。なお、特定配置エリア1605,1606については、ユーザがプリセットを定義することも可能とする。
図16の具体例を用いて、図15のステップS1502における処理を説明する。
FBD部品nがFBD部品1601であるとき、図15のステップS1502において体裁調整部1402は、FBD部品1601を特定配置エリア1605までx軸の負方向に移動させ、特定配置エリア1605の境界とFBD部品1601の占有スペースを示す矩形とを右揃えとすることで、FBD部品1602で表す位置に配置する。なお、本例では、右揃えとしたが、中央揃えや左揃えとしてもよく、これらはユーザが選択可能とする。
FBD部品nがFBD部品1603であるときは、図15のステップS1502において体裁調整部1402は、FBD部品1603を特定配置エリア1606までx軸の正方向に移動させ、特定配置エリア1606の境界とFBD部品1603の占有スペースを示す矩形とを左揃えとすることで、FBD部品1604で表す位置に配置する。なお、本例では、左揃えとしたが、中央揃えや右揃えとしてもよく、これらはユーザが選択可能とする。
以上、図16の具体例でも説明したように、第2の実施形態では、特定配置エリア情報格納部1401に格納された特定配置エリア情報に基づいて、特定のFBD部品を特定配置エリアに配置することができる。この結果、信号の入出力を行うFBD部品等のように特殊な役割を有するFBD部品を特定の位置に配置することができるため、FBDプログラムをドキュメントとして視認性の高いものとする効果が得られる。
また、第2の実施形態に係るプログラミングツール1400は、特定部品以外のFBD部品に対しては、第1の実施形態に係るプログラミングツール100と同様に、再コンパイル不要範囲内でx方向及びy方向への体裁の自動調整を行うことができるため、第1の実施形態と同様の効果も得ることができる。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。具体的には例えば、上記の実施形態では、x方向の体裁調整においてx軸方向の第1調整規則及び第2調整規則を順次実行し、y方向の体裁調整においてy軸方向の第1調整規則、第2調整規則、及び第3調整規則を順次実行するとしたが、その変形例として、少なくとも1以上の調整規則の実行をスキップするようにしてもよい。また例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、図面において制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
100,1400 プログラミングツール
101 プログラム編集部
102 部品情報管理部
103 再コンパイル不要範囲抽出部
104 実行順序決定部
105,1402 体裁調整部
106 衝突判定部
107 固有スペース情報格納部
111 データ入力用インターフェイス
112 手入力装置
121 データ出力用インターフェイス
122 出力装置
1401 特定配置エリア情報格納部

Claims (15)

  1. ファンクションブロックダイアグラム言語によって記述されるプログラムの作成を支援するプログラミングツールであって、
    前記プログラムで実行する種々の処理に対応する複数の処理部品を配置し、前記配置した処理部品の間を当該プログラムの構成に応じて接続することにより前記プログラムを編集するプログラム編集部と、
    前記プログラム編集部による前記プログラムの編集で配置された各処理部品について、処理部品の配置場所を示す位置情報と処理部品間の接続関係を示す接続情報とを管理する部品情報管理部と、
    前記部品情報管理部で管理された各処理部品の位置情報及び接続情報に基づいて、前記プログラムにおける処理部品の実行順序を決定する実行順序決定部と、
    前記処理部品の配置を変更しても前記プログラムにおける前記処理部品の実行順序が変化しない再コンパイル不要範囲を抽出する再コンパイル不要範囲抽出部と、
    前記プログラムに含まれる各処理部品を順次、調整対象部品として選択し、当該調整対象部品と他の処理部品との位置比較に基づいて、再コンパイル不要範囲内において、当該調整対象部品の配置を所定の第1軸に沿って調整する第1方向の体裁調整と、当該調整対象部品の配置を前記第1軸と直交する第2軸に沿って調整する第2方向の体裁調整とを順次実行する体裁調整部と、
    を備えることを特徴とするプログラミングツール。
  2. 前記体裁調整部は、前記各処理部品に対して前記第1方向の体裁調整及び前記第2方向の体裁調整を行った後の前記プログラムを所定の出力手段に出力する
    ことを特徴とする請求項1に記載のプログラミングツール。
  3. 前記体裁調整部は、前記実行順序決定部によって決定された実行順序の早い順に、前記プログラムに含まれる複数の処理部品のうちから前記調整対象部品を順次選択し、当該調整対象部品について前記第1方向の体裁調整及び前記第2方向の体裁調整を順次実行する
    ことを特徴とする請求項1に記載のプログラミングツール。
  4. 前記実行順序決定部は、前記各処理部品の代表座標の前記第1軸における大小関係及び前記第2軸における大小関係に基づいて、各処理部品の実行順序の優先順位を決定する第1規則と、接続関係を有する複数の処理部品から構成される処理部品群では、接続関係の上流から連続した実行順序を決定する第2規則と、を組み合わせて、前記各処理部品の実行順序を決定する
    ことを特徴とする請求項3に記載のプログラミングツール。
  5. 前記体裁調整部は、前記調整対象部品を調整しようとする際に当該調整対象部品が他の処理部品と衝突しないかを判定する衝突判定部を有し、
    前記第1方向の体裁調整及び前記第2方向の体裁調整において、前記衝突判定部によって衝突すると判定された場合、前記体裁調整部は実行中の調整を取り止める
    ことを特徴とする請求項4に記載のプログラミングツール。
  6. 前記体裁調整部は、
    前記第1方向の体裁調整において、前記再コンパイル不要範囲内に存在し、前記調整対象部品よりも実行順序が早い他の処理部品のうちから、所定条件を満たす処理部品を実行順序が早い順に比較対象部品として選択し、当該選択した比較対象部品の位置を基準として所定の第1軸方向の調整規則を適用することにより、前記調整対象部品の配置を調整し、
    何れかの前記比較対象部品を用いて前記第1軸方向の調整規則の適用に成功した時点で前記第1方向の体裁調整を終了して前記第2方向の体裁調整に移行し、
    前記第2方向の体裁調整において、前記再コンパイル不要範囲内に存在し、前記調整対象部品よりも実行順序が早い他の処理部品のうちから、所定条件を満たす処理部品を実行順序が早い順に比較対象部品として選択し、当該選択した比較対象部品の位置を基準として所定の第2軸方向の調整規則を適用することにより、前記調整対象部品の配置を調整し、
    何れかの前記比較対象部品を用いて前記第2軸方向の調整規則の適用に成功した時点で前記第2方向の体裁調整を終了する
    ことを特徴とする請求項5に記載のプログラミングツール。
  7. 前記体裁調整部は、前記第1方向の体裁調整または前記第2方向の体裁調整において、前記調整対象部品の調整に失敗した場合には、失敗結果を所定の出力手段に出力する
    ことを特徴とする請求項6に記載のプログラミングツール。
  8. 前記体裁調整部は、
    前記第1方向の体裁調整における第1段階の調整規則として、前記調整対象部品と同じ処理部品に接続している処理部品を前記所定条件として前記比較対象部品を選択し、当該選択した比較対象部品の第1軸座標に前記調整対象部品の第1軸座標を揃えるよう調整する
    ことを特徴とする請求項6に記載のプログラミングツール。
  9. 前記体裁調整部は、
    前記第1方向の体裁調整における第2段階の調整規則として、前記調整対象部品と同じ処理部品に接続していない処理部品を前記所定条件として前記比較対象部品を選択し、当該選択した比較対象部品の第1軸座標に前記調整対象部品の第1軸座標を揃えるよう調整する
    ことを特徴とする請求項8に記載のプログラミングツール。
  10. 前記体裁調整部は、
    前記第2方向の体裁調整における第1段階の調整規則として、前記調整対象部品と直接的に接続する処理部品を前記所定条件として前記比較対象部品を選択し、当該選択した比較対象部品における接続点の第2軸座標に前記調整対象部品における接続点の第2軸座標を揃えるよう調整する
    ことを特徴とする請求項6に記載のプログラミングツール。
  11. 前記体裁調整部は、
    前記第2方向の体裁調整における第2段階の調整規則として、前記調整対象部品と間接的に接続する処理部品を前記所定条件として前記比較対象部品を選択し、当該選択した比較対象部品の第2軸座標に前記調整対象部品の第2軸座標を揃えるよう調整する
    ことを特徴とする請求項10に記載のプログラミングツール。
  12. 前記体裁調整部は、
    前記第2方向の体裁調整における第3段階の調整規則として、前記調整対象部品と直接的にも間接的にも接続しない処理部品で前記調整対象部品と第2軸方向で最も近傍に存在する処理部品を前記所定条件として前記比較対象部品を選択し、当該選択した比較対象部品または当該比較対象部品が属する処理部品群との間に第2軸方向に所定間隔をあけた位置に前記調整対象部品の第2軸座標を配置するよう調整する
    ことを特徴とする請求項11に記載のプログラミングツール。
  13. 配置場所が特定領域に定義された特定の処理部品に関する情報を格納する特定配置エリア情報格納部をさらに備え、
    前記体裁調整部は、前記調整対象部品が前記特定の処理部品である場合には、前記第1方向の体裁調整及び前記第2方向の体裁調整を実行することなく、前記特定配置エリア情報格納部に格納された情報に基づいて、前記調整対象部品を前記特定領域に配置するよう調整する
    ことを特徴とする請求項1に記載のプログラミングツール。
  14. 前記実行順序決定部は、前記実行順序を決定した各処理部品よりも早い実行順序を付与した所定数の仮想的な処理部品を、ドキュメントとして無効な領域に前記第1軸方向に均等に配置し、
    前記体裁調整部は、前記複数の仮想的な処理部品を前記比較対象部品の候補に含めて、前記第1方向の体裁調整を実行する
    ことを特徴とする請求項6に記載のプログラミングツール。
  15. ファンクションブロックダイアグラム言語によって記述されるプログラムの作成を支援するプログラミングツールによるプログラム作成支援方法であって、
    前記プログラムで実行する種々の処理に対応する複数の処理部品を配置し、前記配置した処理部品の間を当該プログラムの構成に応じて接続することにより前記プログラムを編集するプログラム編集ステップと、
    前記プログラム編集ステップによる前記プログラムの編集で配置された各処理部品について、処理部品の配置場所を示す位置情報と処理部品間の接続関係を示す接続情報とを管理する部品情報管理ステップと、
    前記部品情報管理ステップで管理された各処理部品の位置情報及び接続情報に基づいて、前記プログラムにおける処理部品の実行順序を決定する実行順序決定ステップと、
    前記処理部品の配置を変更しても前記プログラムにおける前記処理部品の実行順序が変化しない再コンパイル不要範囲を抽出する再コンパイル不要範囲抽出ステップと、
    前記プログラムに含まれる各処理部品を順次、調整対象部品として選択し、当該調整対象部品と他の処理部品との位置比較に基づいて、前記再コンパイル不要範囲内において、当該調整対象部品の配置を所定の第1軸に沿って調整する第1方向の体裁調整と、当該調整対象部品の配置を前記第1軸と直交する第2軸に沿って調整する第2方向の体裁調整とを順次実行する体裁調整ステップと、
    を備えることを特徴とするプログラム作成支援方法。
JP2021122077A 2021-07-27 2021-07-27 プログラミングツール及びプログラム作成支援方法 Pending JP2023018178A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021122077A JP2023018178A (ja) 2021-07-27 2021-07-27 プログラミングツール及びプログラム作成支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021122077A JP2023018178A (ja) 2021-07-27 2021-07-27 プログラミングツール及びプログラム作成支援方法

Publications (1)

Publication Number Publication Date
JP2023018178A true JP2023018178A (ja) 2023-02-08

Family

ID=85158216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021122077A Pending JP2023018178A (ja) 2021-07-27 2021-07-27 プログラミングツール及びプログラム作成支援方法

Country Status (1)

Country Link
JP (1) JP2023018178A (ja)

Similar Documents

Publication Publication Date Title
US7337393B2 (en) Methods and systems for providing an editable visual formatting model
JPS6337478A (ja) 計算機利用設計装置
JPH01209573A (ja) Cadスケッチ入力作図方法
JP2023018178A (ja) プログラミングツール及びプログラム作成支援方法
CN105074595A (zh) 数控装置以及加工方法
KR100694381B1 (ko) 그래피컬 프로그래밍 장치 및 프로그래머블 표시기
US6683622B2 (en) Method for defining the scale of reusable geometric content
JP7093294B2 (ja) 作画システムおよびプログラム
JP2875135B2 (ja) プログラマブルコントローラ用プログラム装置
JP7180524B2 (ja) プログラム編集装置、プログラム編集方法、および、プログラム編集プログラム
JPH04373084A (ja) 文字図形変形処理装置
JPH0317741A (ja) プログラム作成支援装置
CN112487543A (zh) 预制箱梁的bim建模方法、系统、设备和存储介质
JP3172846B2 (ja) 形状処理装置
JP4867929B2 (ja) グラフ編集装置
CN115270245A (zh) 柱大样配筋图的参数化处理方法、装置、设备及可读介质
JP3004526U (ja) 図形を含む定型文書の作成装置
JPS61170866A (ja) Cadにおける製図方式
JPH11185046A (ja) 図形編集装置、レイアウト処理方法および記憶媒体
JPH0696142A (ja) 図面作図方法
JPH01307873A (ja) 形状モデリングシステム
JPH03182962A (ja) 文書作成装置
JPS61248161A (ja) 部分下書き線表示方式
JPH06110442A (ja) 文字図形処理装置、及び文字または図形の変形処理方法
JPS63121969A (ja) 文書編集方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240227