(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-21
(45)【発行日】2022-11-30
(54)【発明の名称】プログラム編集装置、プログラム編集方法、および、プログラム編集プログラム
(51)【国際特許分類】
G05B 19/05 20060101AFI20221122BHJP
【FI】
G05B19/05 B
(21)【出願番号】P 2019083290
(22)【出願日】2019-04-24
【審査請求日】2020-12-15
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100155712
【氏名又は名称】村上 尚
(72)【発明者】
【氏名】荒井 航
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特開平8-314702(JP,A)
【文献】特開2016-115017(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
通信ネットワークを介して制御対象機器を制御するPLC(Programmable Logic Controller)で実行されるプログラムを編集するプログラム編集装置であって、
ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する前記プログラムを図形プログラムとして生成し、表示する制御を行う編集部を備え、
前記編集部は、
ユーザの入力によって、第1の単位処理図形の周囲に設けられる接続領域に第2の単位処理図形が配置されたときに、前記第1の単位処理図形と前記第2の単位処理図形とを前記有向線によって接続する接続処理部と、
前記接続領域に重なる、接続済の前記単位処理図形の他の単位処理図形との重なり判定に使用される領域に応じて、当該接続領域の形状を拡大する接続領域設定部と、を備えるプログラム編集装置。
【請求項2】
前記接続領域設定部は、前記図形プログラムが配置される座標系において、同じ単位処理図形に新しく接続された単位処理図形を示す軸である分岐座標を有し、
前記接続領域に接続済の前記単位処理図形が配置された場合に、前記接続済の単位処理図形の重なり判定に使用される領域以上に分岐座標が大きい方に前記第1の単位処理図形の接続領域を設定し、分岐座標が大きい下方に前記第1の単位処理図形の接続領域を拡大する、請求項1に記載のプログラム編集装置。
【請求項3】
前記接続領域設定部は、処理上流側の前記単位処理図形に接続された処理下流側の前記単位処理図形に対応する前記接続領域の分岐座標の最大値よりも、当該処理上流側の単位処理図形の前記接続領域の分岐座標の最大値が大きくなるように、当該処理上流側の単位処理図形の前記接続領域を拡大する、請求項2に記載のプログラム編集装置。
【請求項4】
前記接続処理部は、座標が変更された前記単位処理図形が、複数の既設の前記単位処理図形の前記接続領域にまたがった位置にある場合、処理上流側の既設の前記単位処理図形と接続する請求項1~3のいずれか一項に記載のプログラム編集装置。
【請求項5】
前記接続処理部は、座標が変更された前記単位処理図形が、複数の既設の前記単位処理図形の前記接続領域にまたがった位置にあり、かつ、複数の既設の前記単位処理図形同士が接続していない場合には、下方の既設の前記単位処理図形と接続する請求項2~4のいずれか一項に記載のプログラム編集装置。
【請求項6】
前記接続領域設定部は、前記単位処理図形の右方および下方となる領域に前記接続領域を設定する、請求項2~5のいずれか一項に記載のプログラム編集装置。
【請求項7】
通信ネットワークを介して制御対象機器を制御するPLC(Programmable Logic Controller)で実行されるプログラムを編集するプログラム編集方法であって、
ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する前記プログラムを図形プログラムとして生成し、表示する制御を行う編集ステップを含み、
前記編集ステップは、
ユーザの入力によって、第1の単位処理図形の周囲に設けられる接続領域に第2の単位処理図形が配置されたときに、前記第1の単位処理図形と前記第2の単位処理図形とを前記有向線によって接続する接続処理ステップと、
前記接続領域に重なる
、接続済の前記単位処理図形の他の単位処理図形との重なり判定に使用される領域に応じて、当該接続領域の形状を拡大する接続領域設定ステップと、を含むプログラム編集方法。
【請求項8】
請求項1~6のいずれか一項に記載のプログラム編集装置としてコンピュータを機能させるためのプログラム編集プログラムであって、上記各部としてコンピュータを機能させるためのプログラム編集プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルロジックコントローラに実行させるプログラムを編集するプログラム編集装置等に関する。
【背景技術】
【0002】
プログラミング言語の知識を持たないユーザが、各種情報処理装置のプログラムを作成するための方法として、プログラム部品を示す図形を接続して図形プログラムを作成することが従来技術として知られている。特許文献1には、視覚プログラミングシステムおよび図形プログラム編集方法の一例が記載されている。さらに、特許文献2には、有向線と図形からなるフローチャート図に関して、ユーザが簡単に編集操作できるようにするため、所定の領域に配置された図形同士を有向線で接続するフローチャート方法の一例が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平08-314702号公報(平成8年11月29日)
【文献】特開2016-115017号公報(平成28年6月23日)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述のような従来技術は、所定の領域に既に図形が多数配置されている場合に新たな図形を挿入しづらいという問題や、ユーザの意図通りの処理順になるような接続になりにくいという問題がある。
【0005】
本発明の一態様は、図形プログラムにおいて新たな図形を追加する際、所定の領域に既に図形が配置されている場合でも、ユーザの意図通りに図形同士を接続するプログラム編集装置等を実現することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0007】
すなわち、本発明の一側面に係るプログラム編集装置は、通信ネットワークを介して制御対象機器を制御するPLC(Programmable Logic Controller)で実行されるプログラムを編集するプログラム編集装置であって、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する前記プログラムを図形プログラムとして生成し、表示する制御を行う編集部を備え、前記編集部は、ユーザの入力によって、第1の単位処理図形の周囲に設けられる接続領域に第2の単位処理図形が配置されたときに、前記第1の単位処理図形と前記第2の単位処理図形とを前記有向線によって接続する接続処理部と、前記接続領域における接続済の前記単位処理図形が占める領域に応じて、当該接続領域の形状を変更する接続領域設定部と、を備える。
【0008】
上記の構成により、接続領域に既に単位処理図形が配置されていた場合でも、新たな単位処理図形を追加してユーザの意図通り単位処理図形同士を接続することを確実に実現することができる。
【0009】
上記一側面に係るプログラム編集装置において、前記接続領域設定部は、前記接続領域に接続済の前記単位処理図形が配置された場合に、該単位処理図形が占める領域の下方に前記接続領域を設定し、下方に当該接続領域を拡大してもよい。
【0010】
上記構成によれば、1つの単位処理図形に複数の単位処理図形を下流側に接続する場合、下流側の複数の単位処理図形を上下に並んだ状態で配置するようにユーザを導くことができる。よって、処理が分岐される場合の図形プログラムの流れを整理された把握しやすい状態にすることが可能となる。
【0011】
上記一側面に係るプログラム編集装置において、前記接続領域設定部は、処理上流側の前記単位処理図形に接続された処理下流側の前記単位処理図形に対応する前記接続領域の最下端よりも、当該処理上流側の単位処理図形の前記接続領域の最下端が下となるように、当該処理上流側の単位処理図形の前記接続領域を拡大してもよい。
【0012】
上記構成により、下流側の単位処理図形の接続領域が拡大した場合でも、上流側の単位処理図形に確実に単位処理図形を接続させることが可能となる。
【0013】
上記一側面に係るプログラム編集装置において、前記接続処理部は、新たに配置された前記単位処理図形が、複数の既設の前記単位処理図形の前記接続領域にまたがった位置にある場合、上流側の既設の前記単位処理図形と接続してもよい。
【0014】
上記構成により、新たな単位処理図形が複数の接続領域と重なっているときに、適切な単位処理図形同士を接続できる。
【0015】
上記一側面に係るプログラム編集装置において、前記接続処理部は、新たに配置された前記単位処理図形が、複数の既設の前記単位処理図形の前記接続領域にまたがった位置にあり、かつ、複数の既設の前記単位処理図形同士が接続していない場合には、下側の既設の前記単位処理図形と接続してもよい。
【0016】
上記構成によれば、新たな単位処理図形が複数の接続領域と重なっているときに、適切な単位処理図形同士を接続できる。
【0017】
上記一側面に係るプログラム編集装置において、前記接続領域設定部は、前記単位処理図形の右方および下方となる領域に前記接続領域を設定する構成を有していてもよい。
【0018】
上記構成によれば、単位処理図形同士の接続が右方および下方に伸びていくような図形プログラムが作成されるようにユーザを導くことができる。これにより、図形プログラムの流れを整理された把握しやすい状態にすることができる。
【0019】
上記一側面に係るプログラム編集方法は、通信ネットワークを介して制御対象機器を制御するPLC(Programmable Logic Controller)で実行されるプログラムを編集するプログラム編集方法であって、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する前記プログラムを図形プログラムとして生成し、表示する制御を行う編集ステップを含み、前記編集ステップは、ユーザの入力によって、第1の単位処理図形の周囲に設けられる接続領域に第2の単位処理図形が配置されたときに、前記第1の単位処理図形と前記第2の単位処理図形とを前記有向線によって接続する接続処理ステップと、前記接続領域における接続済の前記単位処理図形が占める領域に応じて、当該接続領域の形状を変更する接続領域設定ステップと、を含む。
【0020】
上記の構成により、接続領域に既に単位処理図形が配置されていた場合でも、新たな単位処理図形を追加してユーザの意図通り単位処理図形同士を接続することを確実に実現することができる。
【発明の効果】
【0021】
本発明によれば、図形プログラムにおいて新たな図形を追加する際、所定の領域に既に図形が配置されている場合でも、ユーザの意図通りに図形同士を接続することができる。よって、図形プログラムの接続編集作業をより効率的に行うことが可能となる。
【図面の簡単な説明】
【0022】
【
図1】実施形態1の全体構成の概要を示す図である。
【
図2】PLC上で実行される図形プログラムの一例を示す図である。
【
図3】編集部による一連の図形プログラム編集処理の流れを示すフローチャートである。
【
図4】接続領域設定部による設定処理の流れを示すフローチャートである。
【
図5】接続処理部による重なり判定処理の流れを示すフローチャートである。
【
図6】図形プログラム群を表示する画面の一例を示す図である。
【発明を実施するための形態】
【0023】
§1 適用例
図1を参照して、まず、本発明が適用された構成の一例を説明する。
図1は、本実施形態の全体概要を示す図である。
図1には、本発明に係るプログラム編集装置が端末装置100に適用された一構成例を示している。
【0024】
図1に示す構成では、生産システム200がPLC(Programmable Logic Controller)210を含み、該PLC210が、PLC210にプログラムを提供する端末装置100およびPLC210がデータの読み書きを行うデータベース4
10と通信可能に接続されている。
【0025】
生産システム200は、例えば、工場やプラントにおける生産のための機器及びそれを統括制御する装置である。生産システム200は、PLC210のほか、例えば各種ユニット220、各種機器230及びこれらのユニットや機器を制御するための実行可能ファイル240を有する。ここで、ユニット220とは、I/Oユニットや通信ユニット等の末端の機器である機器230とPLC210を中継するユニットの総称である。また、機器230とは、アクチュエータ、汎用センサ、シリアル機器、既設PLC等の、制御される末端機器及び制御に必要なデータを取得するための末端機器である。
【0026】
端末装置100は、例えばパーソナルコンピュータ(PC)である。端末装置100は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含む。
【0027】
本実施形態に係る端末装置100は、通信ネットワークを介して制御対象機器を制御するPLC210で実行されるプログラムを編集するプログラム編集装置であって、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する上記プログラムを図形プログラムとして生成し、表示する制御を行う。端末装置100は、当該生成の際、ユーザの意図通りに単位処理図形の接続が行われるよう、接続処理及び表示制御を行う。
【0028】
§2 構成例
以下、端末装置100の構成例について、詳細に説明する。
【0029】
端末装置100には、PLC210に提供するプログラムを編集するプログラム編集部110、ユーザからの図形プログラムの編集操作を受け付ける入力部130、図形プログラムを表示する表示部140、編集された図形プログラムをPLC210に送信するPLCサポート部150が含まれる。
【0030】
プログラム編集部110は、図形プログラムに対する変更を行う編集部111、プログラム記憶部121、図形プログラム部品格納部122、図形プログラム表示部123を有する。
【0031】
図形プログラムとは、部品化されたプログラム部品を単位処理図形として、単位処理図形同士のデータの受け渡し方向を有向線として表示することによって、一連のプログラムの実行順をユーザにわかりやすく表示したものである。本実施形態では、図形プログラムはPLC210上のパイプラインに対応している。
【0032】
プログラム編集部110は、例えば以下のように図形プログラムを設定しプログラム記憶部121に保存することができる。すなわち、ある単位処理図形が、自らを接続先とする有向線を持たない場合、当該単位処理図形を図形プログラムの最上流に設定する。当該単位処理図形に接続された有向線があれば、該有向線及び当該有向線に接続された単位処理図形を当該図形プログラムに追加する。更に、新しく追加された単位処理図形に接続先の単位処理図形がある場合は、接続先がなくなるまでこれを繰り返す。プログラム記憶部121は、また、全図形プログラムを1つの図形プログラム群として扱い保存することもできる。
【0033】
以降、ある単位処理図形に対して有向線の接続元となっている単位処理図形を、該単位処理図形の上流図形といい、有向線の接続先となっている単位処理図形を、該単位処理図形の下流図形という。
【0034】
図形プログラム部品格納部122は、図形プログラムの部品となる単位処理図形を格納する。単位処理図形は、装置や実行プログラムの種類によって定義されている。当該定義の中には、単位処理図形が終端ノードである(下流図形を持つことを禁止されている)ことが含まれていてもよい。
【0035】
図形プログラム表示部123は、図形プログラムを表示用に整形し、表示部140に送信する。
【0036】
表示部140は、図形プログラム表示部123から送られた図形プログラムを例えばスクリーン上に表示する。
【0037】
入力部130は、ユーザの図形プログラムに対する編集操作を受け付ける。
【0038】
単位処理図形はPLC210上の実行可能ファイル240及びパラメータと対応している。また、仮想平面上の有向線はそれらの実行可能ファイル240の実行順及びデータの受け渡しに対応している。
【0039】
端末装置100は、PLC210と例えばUSBケーブルで接続されている。PLC210へのプログラムの書込みなどの通信は、USBケーブルおよびPLCサポート部150を通じて行われる。なお、USBに代えてEthernet(登録商標)で接続され、EthernetケーブルおよびLAN機器を通じて通信が行われてもよい。
【0040】
図形プログラム群の実体、すなわち、プログラム部品を使用するという宣言・各プログラム部品の設定・実行順序(データの受け渡し)は、例えばテキストデータとしてプログラム記憶部121に記憶され、PLCサポート部150を通じてPLC210に送信される。
【0041】
そして、本実施形態に係る生産システム200では、PLC210は、プログラム編集部110で生成された図形プログラムを読み込み、該図形プログラムで定義された順序で実行可能ファイル240を実行する。この際、プログラムの実行及びデータの受け渡しは、図形プログラム上の有向線で表された順序で行われる。
【0042】
この構成により、プログラムに不慣れなユーザでも、画面上に表示された図形プログラムを操作することで、PLC210上で動作するプログラムを直感的に作成することができる。
【0043】
図2には、PLC210上で実行される図形プログラムの一例を示している。
図2において、入力ノードInput、ロジックノードLogic、出力ノードOutputにより構成される複数のパイプラインが示されている。なお、図示されないが、各々のロジックノードLogicと出力ノードOutputの前段には受信キューが接続される。
【0044】
PLC210は更に、それが備える記憶装置内のデータファイル211、212や、その内部で動作する、工作機械のモーション制御プログラム等のアプリケーション213、214、パイプライン演算装置215を有している。
【0045】
パイプライン演算装置215は、演算部216及び制御部217を有している。演算部216においては、入力ノードと出力ノードとの間に、順次必要なロジックノードが接続されて、パイプラインが構成される。パイプラインは、通常多数であるが、少なくとも1つあればよい。制御部217は、上記ノードやキューを監視し、ノードの稼働時間を割り当てる。
【0046】
パイプライン演算装置215の入力ノードInputの接続先は、データファイル211や、アプリケーション213であり得る。更に、入力ノードInputの接続先は、PLC210の外部機器である、工作機械や測定機器その他の各種FA機器、各種生産情報に関するデータを収集し提供するデータサーバ11、各種生産情報に関するデータを保存するデータベース12、インターネットやその他のネットワーク上のクラウドサーバ13であり得る。
【0047】
パイプライン演算装置215の出力ノードOutputの接続先は、データファイル212や、アプリケーション214であり得る。更に、出力ノードOutputの接続先は、PLC210の外部機器である、工作機械や測定機器その他の各種FA機器、FA機器に関するデータを収集し提供するデータサーバ11、各種生産情報に関するデータを収集し提供するデータベース12、インターネットやその他のネットワーク上のクラウドサーバ13であり得る。
【0048】
入力ノードInputの接続先であるアプリケーション213と、出力ノードOutputの接続先であるアプリケーション214とは、異なるアプリケーションであってもよいし、同一のアプリケーションであってもよい。
【0049】
図3は、編集部による一連の図形プログラム編集処理の流れを示すフローチャートである。
【0050】
(ステップS301)
ステップS301において、編集部111は、プログラム記憶部121から保存されている図形プログラムを読み込む。
【0051】
(ステップS302)
ステップS302において、図形プログラム表示部123は、読み込まれた図形プログラムを表示する。
【0052】
(ステップS303)
ステップS303において、図形プログラム表示部123は、図形プログラム部品格納部122に定義されている配置可能な単位処理図形種別の一覧を表示する。
【0053】
<実質領域設定処理>
実質領域設定部112は、全ての配置済み単位処理図形についてステップS310を繰り返す。
【0054】
(ステップS310)
ステップS310において、実質領域設定部112は、単位処理図形について、実質領域を設定する。実質領域は、該単位処理図形と他の単位処理図形との重なり判定に使用される領域である。実質領域は、表示される単位処理図形の領域と一致していても、表示される単位処理図形の領域を含む矩形又は楕円であっても、表示される単位処理図形の領域に含まれる点であってもよい。
【0055】
<接続領域設定処理>
接続領域設定部113は、全ての配置済み単位処理図形についてステップS320を繰り返す。
【0056】
(ステップS320)
ステップS320において、接続領域設定部113は、単位処理図形について、接続領域を設定する。ある単位処理図形の実質領域と他の単位処理図形の接続領域が重なる場合、該単位処理図形は当該他の単位処理図形の下流図形として配置される。このとき、接続領域の設定は最下流の単位処理図形から順に行われる。すなわち、ある単位処理図形の接続領域は該単位処理図形の全ての下流図形の接続領域及び位置を参照して設定されるため、下流側の単位処理図形についての接続領域設定が終了してから上流側の単位処理図形について接続領域設定を行う。
【0057】
(ステップS330)
ステップS330において、編集部111は、ユーザによる単位処理図形の座標変更又は配置操作を受け付ける。座標変更操作は、例えばユーザがマウスで画面上の単位処理図形をドラッグする操作であり、配置操作は、例えばユーザが当該画面上の単位処理図形をドロップする操作である。
【0058】
(ステップS331)
ステップS331において、編集部111は、ユーザの操作の種別を判定する。ユーザの操作が単位処理図形の座標変更であった場合、ステップS340に移行する。ユーザの操作が単位処理図形の配置であった場合、ステップS350に移行する。ユーザの操作がそれ以外であった場合、ステップS330に移行する。
【0059】
<座標変更処理>
(ステップS340)
ステップS340において、実質領域設定部112は、座標変更中の単位処理図形に実質領域を設定する。このステップは、ステップS310と同様である。
【0060】
(ステップS341)
ステップS341において、接続処理部115は、後述するステップS344で追加された仮の有向線を削除する。
【0061】
(ステップS342)
ステップS342において、接続処理部115は、座標変更中の単位処理図形と接続領域が重なる配置済み単位処理図形を選出する。
【0062】
(ステップS343)
ステップS343において、接続処理部115は、座標変更中の単位処理図形と接続領域が重なる配置済み単位処理図形があったかどうかを判定する。座標変更中の単位処理図形と接続領域が重なる配置済み単位処理図形が無かった場合(NO)、ステップS330へ移行する。座標変更中の単位処理図形と接続領域が重なる配置済み単位処理図形があった場合(YES)、ステップS344へ移行する。
【0063】
(ステップS344)
ステップS344において、接続処理部115は、ステップS342で選出された単位処理図形を上流図形として座標変更中の単位処理図形と仮の有向線で接続する。仮の有向線は、単位処理図形の暫定的な上流・下流関係を示すための有向線であって、実際のプログラムには反映されない。その後、ステップS330へ移行する。
【0064】
<配置処理>
(ステップS350)
ステップS350において、実質領域設定部112は、配置された単位処理図形に実質領域を設定する。このステップは、ステップS310と同様である。
【0065】
(ステップS351)
ステップS351において、接続処理部115は、仮の有向線を通常の有向線に置換する。通常の有向線に置換されたことをもって、当該単位処理図形同士の処理順序がプログラムに反映される。
【0066】
(ステップS352)
ステップS352において、接続領域設定部113は、配置された単位処理図形から図形プログラムの最上流の単位処理図形までの各単位処理図形について、接続領域を設定する。当該設定処理は、ステップS320と同様である。その後、ステップS330へ移行する。
【0067】
<接続領域設定処理の詳細>
図4は、
図3のステップS320及びステップS352に該当する接続領域設定処理の詳細を示した図である。
(ステップS321)
ステップS321において、接続領域設定部113は、対象となる単位処理図形の種別から図形プログラム部品格納部122を参照し、対象となる単位処理図形が終端ノードか否かを判定する。対象となる単位処理図形が終端ノードである場合(YES)、該単位処理図形には下流図形を持つための接続領域は不要であるため、接続領域設定処理を終了する。これにより、下流図形を持つことを禁止されている単位処理図形に対し、ユーザが誤って単位処理図形を下流図形として接続することを防止できる。対象となる単位処理図形が下流図形を持つことを禁止されていない場合(NO)、ステップS322へ移行する。
【0068】
(ステップS322)
ステップS322において、接続領域設定部113は、単位処理図形に規定の接続領域を設定する。当該接続領域は、当該単位処理図形の周辺に設定される。
【0069】
(ステップS323)
ステップS323において、接続領域設定部113は、接続領域と、該単位処理図形の下流図形の実質領域が重なっているかを判定する。重なっている場合(YES)、ステップS324へ移行する。重なっていない場合(NO)、接続領域設定処理を終了する。
【0070】
(ステップS324)
ステップS324において、接続領域設定部113は、下流図形の位置と接続領域とに応じて接続領域を拡大する。図形プログラムが配置される座標系において、処理の下流側を示す軸と、新しく追加された分岐を示す軸とが設定されている場合、当該接続領域は新しく追加された分岐を示す軸の方向に拡大される。また、接続領域は、単位処理図形の実質領域に合わせても拡大される。これにより、既に下位図形が多数単位処理図形に接続されている場合でも、新たに単位処理図形を下流図形として接続する余地を作ることができ、操作性を向上できる。本実施形態において、処理の下流側を示す軸(以下、処理座標という)をX軸、追加された分岐を示す軸(以下、分岐座標という)をY軸とし、接続領域の分岐座標側の大きさは、直下の下流図形の接続領域のY座標の最大値と、単位処理図形の実質領域のY軸上の大きさを加えた値に設定される。
【0071】
<重なり判定の詳細>
図5は、
図3のステップS342に該当する重なり判定の詳細を示した図である。
【0072】
(ステップS401)
ステップS401において、接続処理部115は、各配置済み単位処理図形について、接続領域が座標変更中単位処理図形の実質領域と重なるものを全て挙げる。
【0073】
(ステップS402)
ステップS402において、接続処理部115は、挙げられた配置済み単位処理図形について、上流・下流の関係にあるものが存在するかどうかを判定する。挙げられた配置済み単位処理図形について、上流又は下流の関係にあるものがあれば(YES)、ステップS403に移行する。上流又は下流の関係にあるものがなければ(NO)、ステップS404へ移行する。
【0074】
(ステップS403)
ステップS403において、接続処理部115は、ステップS402で下流図形と判定された図形について、以降の処理で無視するよう設定する。これにより、上流図形が重なり判定において優先されるようになり、ユーザの意図通りの接続を可能にする。
【0075】
(ステップS404)
ステップS404において、接続処理部115は、挙げられた配置済み単位処理図形について、分岐座標が最も大きい単位処理図形と座標変更中単位処理図形が重なっているとみなす。これにより、より新しく追加された分岐である単位処理図形が重なり判定において優先されるようになり、ユーザの意図通りの接続を可能にする。
【0076】
<画面図>
図6は、表示制御部116が図形プログラムに対するユーザの編集を受け付ける際に表示する場合の一例を示した画面図である。
【0077】
編集画面500は、配置可能な単位処理図形種別の一覧501と、図形プログラム配置画面502を有する。表示制御部116は、配置可能な単位処理図形種別の一覧501に、ユーザが図形プログラム配置画面502に配置することができる単位処理図形種別の一覧を表示する。表示制御部116は、また、配置済み単位処理図形及び座標変更中の単位処理図形を図形プログラム配置画面502に表示する。
【0078】
図6の例では、処理座標をX軸、分岐座標をY軸とし、X軸は左から右へ、Y軸は上から下へと伸びるものとする。また、別の例では、処理座標と分岐座標はそれぞれ上下又は左右が逆であってもよく、処理座標と分岐座標が逆であってもよく、直交座標、斜交座標、極座標その他いかなる座標系であってもよい。
【0079】
また、本図では、説明の簡易さのため、各単位処理図形の実質領域は各単位処理図形の領域と一致し、その縦幅は1とする。
【0080】
図中に示された単位処理図形F11からF14及びF21は、配置済み単位処理図形であって、その接続領域は各単位処理図形の右方に灰色で示されている。規定の接続領域は、単位処理図形の右上端から大きさ(2,1)の矩形として設定されているものとする。例えば、単位処理図形F11の接続領域は、下流図形の接続領域のY座標の最大値である6に単位処理図形の実質領域の縦幅1を加えた7へとY座標が拡大されている。
【0081】
単位処理図形F15がユーザの座標移動操作により図中の位置にあるとき、単位処理図形F15の実質領域は単位処理図形F13の接続領域及び単位処理図形F14の接続領域と重なっているが、上述の重なり判定により単位処理図形F14の上流図形である単位処理図形F13との重なりが優先されるため、表示制御部116は、単位処理図形F13と座標移動中単位処理図形F15との間に仮の有向線を破線で表示している。
【0082】
また、単位処理図形F22がユーザの座標移動操作により図中の位置にあるとき、単位処理図形F22の実質領域は単位処理図形F11の接続領域及び単位処理図形F21の接続領域と重なっているが、上述の重なり判定により、より分岐座標の大きい単位処理図形のF21との重なりが優先されるため、表示制御部116は、単位処理図形F21と座標移動中単位処理図形F22との間に仮の有向線を破線で表示している。
【0083】
§3 変形例1
編集部111は、接続限界領域設定部114を有していてもよい。接続限界領域設定部114は、図形プログラム中の単位処理図形に、接続限界領域を設定する。接続限界領域は、該単位処理図形の接続領域を含み、かつ、より広いことが好ましい。座標変更中単位処理図形が、一度他の単位処理図形の接続領域と重なり、仮の有向線で該単位処理図形と接続された後、接続領域との重なりが解消された場合も当該上流図形との接続は解除されない。しかし、該座標変更中単位処理図形が接続限界領域と重ならなくなったとき、接続処理部115は、該仮の有向線を削除し、座標変更中単位処理図形と該上流図形との接続を解除する。
【0084】
これにより、ユーザが見やすいように単位処理図形同士の間隔をある程度空けることは許容しつつも、ユーザの直感に従って単位処理図形同士の接続を解除することが可能になる。
【0085】
〔ソフトウェアによる実現例〕
プログラム編集部110(特に編集部111)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
【0086】
後者の場合、プログラム編集部110は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0087】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0088】
110 プログラム編集部
111 編集部
112 実質領域設定部
113 接続領域設定部
115 接続処理部
116 表示制御部
121 プログラム記憶部
122 図形プログラム部品格納部
123 図形プログラム表示部
130 入力部
140 表示部
200 生産システム
210 PLC