(57)【特許請求の範囲】
【請求項１】
エディタ画面上で複数のＦＢＤ部品を接続して処理を記述するＦＢＤ言語のプログラムを作成するプログラミング装置であって、
ＦＢＤ部品の大きさを示すサイズ情報を管理する部品情報管理部と、
前記エディタ画面上で配置済のＦＢＤ部品に対して新たにＦＢＤ部品を配置する操作が行われた際に、配置済のＦＢＤ部品のサイズ情報及び新たに配置するＦＢＤ部品のサイズ情報を前記部品情報管理部から取得し、該取得したサイズ情報に基づき新たに配置するＦＢＤ部品を配置可能な複数の領域を検出し、該検出した複数の領域の位置に基づき複数の領域間における部品配置の推奨優先順序を決定する推奨順序決定部と、
前記推奨順序決定部が決定した前記推奨優先順序を、前記複数の領域に表示するエディタ部とを有することを特徴とするプログラミング装置。
【請求項２】
前記推奨順序決定部は、予め設定されたアルゴリズムに従って前記複数の領域を検出し、前記推奨優先順序を決定することを特徴とする請求項１に記載のプログラミング装置。
【請求項３】
前記推奨順序決定部のアルゴリズムは、配置済のＦＢＤ部品の右側、左側及び下側から新たに配置するＦＢＤ部品を配置可能な領域を検出し、右側、左側、下側の順に高い優先度で推奨優先順序を決定するように設定されていることを特徴とする請求項２に記載のプログラミング装置。
【請求項４】
複数の端子を有するＦＢＤ部品をエディタ画面上で接続して処理を記述するＦＢＤ言語のプログラムを作成するプログラミング装置であって、
各端子に付属されるデータ型の情報及び複数の端子の結線の接続優先度の情報を、ＦＢＤ部品ごとに管理する部品情報管理部と、
エディタ画面上に配置された複数のＦＢＤ部品のうちの一つを指定して結線操作が行われた際に、前記指定された第１のＦＢＤ部品に含まれる端子のデータ型の情報、前記第１のＦＢＤ部品に含まれる結線の接続優先度の情報、及び前記第１のＦＢＤ部品と結線されている第２のＦＢＤ部品に含まれる端子のデータ型の情報を部品情報管理部から取得し、該取得したデータ型の情報に基づき前記第１のＦＢＤ部品の端子と前記第２のＦＢＤ部品の端子間のデータ型の比較を行い、この比較結果と前記取得した結線の接続優先度の情報に基づき、前記第１のＦＢＤ部品の端子間における結線作業の推奨優先順序を決定する推奨順序決定部と、
前記推奨順序決定部が採番した前記推奨優先順序を、前記第１のＦＢＤ部品の各端子に対応させて表示するエディタ部とを有することを特徴とするプログラミング装置。
【請求項５】
前記推奨順序決定部は、前記第１のＦＢＤ部品の端子と前記第２のＦＢＤ部品の端子間のデータ型の一致及び不一致の両方を検出し、データ型が不一致の端子が前記結線の接続優先度に従って採番され、この採番に続いてデータ型が一致する端子が前記結線の接続優先度に従って採番されるように、前記第１のＦＢＤ部品の端子間における結線作業の推奨優先順序を決定することを特徴とする請求項４に記載のプログラミング装置。
【請求項６】
複数の端子を有するＦＢＤ部品をエディタ画面上で接続して処理を記述するＦＢＤ言語のプログラムを作成するプログラミング装置であって、
各端子に付属されるデータ型の情報を、ＦＢＤ部品ごとに管理する部品情報管理部と、
エディタ画面上に配置された複数のＦＢＤ部品のうちの一つの端子を指定して結線操作が行われた際に、指定された端子のデータ型の情報及び前記指定された端子を有する第１のＦＢＤ部品以外のＦＢＤ部品であって前記エディタ画面上に配置済の第２のＦＢＤ部品に含まれる端子のデータ型の情報を前記部品情報管理部から取得し、該取得したデータ型の情報に基づき前記指定された端子と前記第２のＦＢＤ部品の端子間のデータ型の比較を行い、この比較結果に基づき、前記指定された端子との結線作業の推奨優先順序を決定する推奨順序決定部と、
前記推奨順序決定部が採番した前記推奨優先順序を、前記第２のＦＢＤ部品の各端子に対応させて表示するエディタ部とを有することを特徴とするプログラミング装置。
【請求項７】
前記推奨順序決定部は、前記第２のＦＢＤ部品のデータ型が一致する端子が前記指定された端子との直線距離が短い順に採番され、この採番に続いて前記第２のＦＢＤ部品のデータ型が不一致の端子が前記指定された端子との直線距離が短い順に採番されるように、前記指定された端子との結線作業の推奨優先順序を決定することを特徴とする請求項６に記載のプログラミング装置。
【請求項８】
前記エディタ部は、データ型が一致する端子の前記推奨優先順序と、データ型が一致しない端子の前記推奨優先順序とを異なる色で表示することを特徴とする請求項５又は７に記載のプログラミング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＢＤ（Function  Block  Diagram）言語を用いてプログラムを作成するプログラミング装置に関する。
【背景技術】
【０００２】
従来、工場の製造ラインや個々の装置、またプラント・オフィスビルなどの現場において、被制御機器をシーケンシャルに制御するためにプログラマブルロジックコントローラ（Programmable  Logic  Controller,  PLC）が用いられている。そのプログラミングにおいては、国際電気標準会議（International  Electrotechnical  Commission,  IEC）により、標準規格ＩＥＣ６１１３１−３として定義されたプログラマブルロジックコントローラ用のプログラミング言語であるＦＢＤ言語が用いられる。【０００３】
ＦＢＤ言語のプログラムは、ファンクションやファンクションブロックといったＦＢＤ部品を配置し、それらを結線することで一連の処理を記述する。各ＦＢＤ部品は、左側に入力端子、右側に出力端子を備えており、ＦＢＤ部品同士は入力端子や出力端子を介して結線される。【０００４】
ＦＢＤ言語の結線においては、一つの接続線を複数の接続に分けることや、端子を未接続とすることが可能である。また、作成されたプログラムがコンパイルエラーとなる場合として、結線された接続元の端子と接続先の端子のデータ型が異なる場合や、結線を必須とする端子に対して結線していない場合などがある。【０００５】
特許文献１には、指定した部品に対して結線の供給を行うと、未接続である端子を、近くのＦＢＤ部品の端子に対して最上部から全て自動接続する発明が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３３９１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＦＢＤ言語のプログラミングにおいて、ＦＢＤ部品を配置する際に、ユーザは無数の配置位置から配置済のＦＢＤ部品の位置を考慮してＦＢＤ部品の配置位置を決定するため、ＦＢＤ部品の配置位置を決めるのに時間がかかり、プログラミングに時間を要している。【０００８】
また、結線において接続元の端子を選択する場合、全ての端子が一様に表示されるため、接続の優先度が高い端子が分かりづらく、さらにコンパイルエラーとなる端子が分かりづらいため、プログラミングに時間を要している。【０００９】
また、結線において接続先の端子を選択する場合、全ての端子が一様に表示されるため、接続の優先度が高い端子が分かりづらく、さらにコンパイルエラーとならない端子が分かりづらいため、プログラミングに時間を要している。【００１０】
特許文献１に開示される発明は、一つの接続線を複数の接続線に分けることや、端子を未接続とすること、コンパイルエラーを考慮した接続を行うことなどはできない。【００１１】
本発明は、上記に鑑みてなされたものであって、ＦＢＤ言語によるプログラミングに要する時間を短縮できるプログラミング装置を得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明は、エディタ画面上で複数のＦＢＤ部品を接続して処理を記述するＦＢＤ言語のプログラムを作成するプログラミング装置であって、ＦＢＤ部品の大きさを示すサイズ情報を管理する部品情報管理部と、エディタ画面上で配置済のＦＢＤ部品に対して新たにＦＢＤ部品を配置する操作が行われた際に、配置済のＦＢＤ部品のサイズ情報及び新たに配置するＦＢＤ部品のサイズ情報を部品情報管理部から取得し、取得したサイズ情報に基づき新たに配置するＦＢＤ部品を配置可能な複数の領域を検出し、検出した複数の領域の位置に基づき複数の領域間における部品配置の推奨優先順序を決定する推奨順序決定部と、推奨順序決定部が決定した推奨優先順序を、複数の領域に表示するエディタ部とを有することを特徴とする。
【発明の効果】
【００１３】
本発明にかかるプログラミング装置は、次に配置するＦＢＤ部品を配置可能な領域を検出し、検出した領域ごとに推奨順序を決定して表示するため、ＦＢＤ部品の配置位置を短時間で決めやすくなるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明にかかるプログラミング装置の実施の形態１の使用状態を示す図である。
【図２】図２は、プログラミングツールソフトウェアを実行するコンピュータのハードウェア構成を示す図である。
【図３】図３は、プログラミング装置として機能しているコンピュータを示す図である。
【図４】図４は、実施の形態１に係るプログラミング装置の動作の流れを示すフローチャートである。
【図５】図５は、実施の形態１に係るプログラミング装置が表示部に表示させるエディタ画面の一例を示す図である。
【図６】図６は、実施の形態２に係るプログラミング装置の動作の流れを示すフローチャートである。
【図７】図７は、実施の形態２に係るプログラミング装置が表示部に表示させるエディタ画面の一例を示す図である。
【図８】図８は、実施の形態３に係るプログラミング装置の動作の流れを示すフローチャートである。
【図９】図９は、実施の形態３に係るプログラミング装置が表示部に表示させるエディタ画面の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本発明にかかるプログラミング装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態１．
図１は、本発明にかかるプログラミング装置の実施の形態１の使用状態を示す図である。プログラミング装置１００は、エディタ画面を表示し、エディタ画面に対するＦＢＤ部品の配置操作及びエディタ画面上でのＦＢＤ部品同士の結線操作を受け付けることによって、ユーザがエディタ画面上にＦＢＤ言語によるプログラムを記述するための装置である。プログラミング装置１００は、使用時には伝送路１０によってプログラマブルロジックコントローラ８００と接続される。
【００１７】
プログラミング装置１００は、汎用のコンピュータにプログラミングツールソフトウェアをインストールすることによって構成される。図２は、プログラミングツールソフトウェアを実行するコンピュータのハードウェア構成を示す図である。コンピュータ４００は、ＣＰＵ（Central  Processing  Unit）４０１、ＲＡＭ（Random  Access  Memory）４０２、ＲＯＭ（Read  Only  Memory）４０３、記憶部４０４、入力部４０５、表示部４０６及び通信Ｉ／Ｆ（Interface）４０９を有する。  
【００１８】
ＣＰＵ４０１は、プログラミングツールソフトウェアを実行する演算装置である。ＲＡＭ４０２は、ＣＰＵ４０１がプログラムを実行する際に用いるワークエリアである。ＲＯＭ４０３は、コンピュータ４００の起動時にＣＰＵ４０１が実行するプログラム（具体的には、Initial  Program  Loader（ＩＰＬ）等）を不揮発に記憶する。記憶部４０４は、情報を不揮発に記憶する装置であり、ハードディスクドライブ（Hard  Disk  Drive）やソリッドステートドライブ（Solid  State  Drive）などを適用可能である。入力部４０５は、オペレータが情報を入力するためのユーザインタフェースであり、ポインティングデバイス（マウス、タッチパネル等）やキーボードなどを適用可能である。表示部４０６は、情報を表示する装置であり、ＬＣＤ（Liquid  Crystal  Display）やＯＬＥＤ（Organic  Light  Emitting  Display）などを適用可能である。通信Ｉ／Ｆ４０９は、伝送路１０を通じてプログラマブルロジックコントローラ８００と通信するためのインタフェースである。
【００１９】
コンピュータ４００にインストールされたプログラミングツールソフトウェアは、記憶部４０４に格納される。記憶部４０４に格納されたプログラミングツールソフトウェア４０７をＣＰＵ４０１が読み出して実行することにより、コンピュータ４００はプログラミング装置１００として機能している状態となる。図３は、プログラミング装置として機能しているコンピュータを示す図である。プログラミング装置１００は、ＣＰＵ４０１上にエディタ部１０１、推奨順序決定部１０２及び部品情報管理部１０３が形成されている。
【００２０】
また、記憶部４０４には、プログラミングツールソフトウェア４０７が利用する部品情報１０４が、プログラミングツールソフトウェア４０７のインストール時に格納されている。部品情報１０４は、各ＦＢＤ部品に関する部品特性情報であり、エディタ画面上でＦＢＤ部品が占める大きさについての情報（以下、部品サイズ情報と表記する。）を含んでいる。
【００２１】
推奨順序決定部１０２は、ＦＢＤ部品を配置する際に、部品を配置できる領域をエディタ画面上で検索し、配置できる場所があれば、推奨順序を表示する。推奨順序については後述する。
【００２２】
部品情報管理部１０３は、推奨順序決定部１０２からの要求に応じて記憶部４０４から部品情報１０４を読み出す。部品情報管理部１０３は、エディタ画面上に配置済のＦＢＤ部品について、部品の種類及び位置の情報を保持している。なお、部品の位置の情報とは、具体的にはエディタ画面における座標値である。
【００２３】
エディタ部１０１は、表示部４０６にエディタ画面を表示させ、入力部４０５に対して行われたオペレータの操作に応じて、シーケンスプログラムを作成・編集する処理を行う。エディタ部１０１の機能は、一般的なプログラミング装置のエディタ機能と同様である。エディタ部１０１は、部品情報管理部１０３が保持する部品の種類及び位置の情報を参照し、エディタ画面上にＦＢＤ部品を表示させる。
【００２４】
図４は、実施の形態１に係るプログラミング装置の動作の流れを示すフローチャートである。ＦＢＤ部品を用いてプログラムを作成する際に、ユーザは、入力部４０５を操作してエディタ画面上に配置済であるＦＢＤ部品を指定する（ステップＳ２０１）。次に、ユーザは、入力部４０５を操作してＦＢＤ部品をエディタ画面上に配置する要求をエディタ部１０１に与える（ステップＳ２０２）。
【００２５】
ＦＢＤ部品をエディタ画面上に配置する要求を受けたエディタ部１０１は、推奨順序決定部１０２に、ＦＢＤ部品を配置する場所の検出を要求する。エディタ部１０１からの要求を受けた推奨順序決定部１０２は、配置済のＦＢＤ部品、指定されたＦＢＤ部品及びこれから配置するＦＢＤ部品（以下、配置対象ＦＢＤ部品と表記する。）の部品サイズ情報を部品情報管理部１０３に要求する。部品情報管理部１０３は、推奨順序決定部１０２から要求された各ＦＢＤ部品の部品サイズ情報を部品情報１０４から読み出して、推奨順序決定部１０２に返す。また、推奨順序決定部１０２は、配置済のＦＢＤ部品及び指定されたＦＢＤ部品の配置位置情報をエディタ部１０１から取得する。推奨順序決定部１０２は、部品サイズ情報と配置位置情報とに基づいて、予め設定されているアルゴリズムに従って、配置済のＦＢＤ部品と一定距離離れており、配置済のＦＢＤ部品と重ならずに配置対象ＦＢＤ部品を配置可能な領域を検出する。また、推奨順序決定部１０２は、検出した領域の最上部の座標を検出する。推奨順序決定部１０２は、複数の領域を検出した場合には、検出された各領域について、予め設定されているアルゴリズムに従って推奨順序を採番する（ステップＳ２０３）。
【００２６】
なお、指定されたＦＢＤ部品からの一定距離は、ユーザが変更可能であっても良いし、予め設定される固定値であっても良い。
【００２７】
推奨順序決定部１０２は、決定した推奨順序及び各領域の最上部の座標をエディタ部１０１に送信する。エディタ部１０１は、各領域の最上部に推奨順序表示欄を設け、推奨順序決定部１０２によって採番された推奨順序に対応して序列を示す数列や文字列の各項をエディタ画面上に表示するように画面表示を更新する（ステップＳ２０４）。推奨順序に対応して序列を示す数列や文字列の例としては、初項が１で公差が１の等差数列、換言すると自然数の数列が挙げられる。この場合には、エディタ画面上には、「１」から始まる自然数で推奨順序が表示される。なお、推奨順序に対応して序列を示す数列や文字列の他の例として、Ａ，Ｂ，Ｃ，Ｄ，・・・のようなアルファベットの文字列が挙げられる。また、単純な数列や文字列の他にも、大枠としての順序及びその中での詳細な順序を表す数列や文字列の各項を推奨順序表示欄に表示するようにしても良い。例えば、１．１，１．２，２．１，２．２，２．３，２．４のような数列を用いれば、一の位の値で大枠としての順序を表し、小数点一位の値で詳細な順序を表すことができる。
【００２８】
実施の形態１のプログラミング装置１００の動作について具体例を挙げて説明する。なお、ＦＢＤ言語によるプログラムは、上から下、左から右に向かって処理が進むように記述されることが一般的であり、すでに配置されているＦＢＤ部品の上側に新たにＦＢＤ部品を配置する操作は一般的には行わない。このため、ここでは、推奨順序決定部１０２のアルゴリズムを、指定されたＦＢＤ部品の右側、左側及び下側についてのみ、配置対象ＦＢＤ部品を配置可能な領域を検出するように設定している場合を例とする。そして、上から下、左から右という処理の流れを鑑みて、推奨順序決定部１０２のアルゴリズムを、検出した各領域に、右側、左側、下側の順に高い優先度で推奨順序を採番するように設定しているものとする。これにより、推奨順序決定部１０２は、予め設定されているアルゴリズムに従って、指定されたＦＢＤ部品の右側、左側及び下側について配置対象ＦＢＤ部品を配置可能な領域をエディタ画面から検出し、検出した各領域に右側、左側、下側の順に部品配置の優先度を示す推奨順序を採番する。
【００２９】
なお、この例においては、指定されたＦＢＤ部品からの一定距離は、右側及び左側と下側とで同じであっても良いし、下側の方が小さい値であっても良い。これは、ＦＢＤ部品の右側や左側には入力端子や出力端子が配置されるため、上下の間隔よりも左右の間隔を広くした方がＦＢＤ言語のプログラムが見やすくなるためである。
【００３０】
また、ここでは左右及び下側の三方向についてのみを配置対象ＦＢＤ部品を配置可能な領域を検出する例とするが、上側についても配置対象ＦＢＤ部品を配置可能な領域を検出するように推奨順序決定部１０２のアルゴリズムを設定しても良い。この場合には、すでに配置されているＦＢＤ部品の上側に新たにＦＢＤ部品を配置する操作は一般的には行われないことを鑑みて、推奨順序決定部１０２のアルゴリズムは、上側から検出された領域の優先度を一番低くして各領域の推奨順序を採番するように設定するとよい。
【００３１】
図５は、実施の形態１に係るプログラミング装置が表示部に表示させるエディタ画面の一例を示す図である。表示部４０６に表示されたエディタ画面３００は、指定されたＦＢＤ部品３０１、配置済のＦＢＤ部品３０２、推奨順序表示欄３０３１〜３０３３を含んでいる。推奨順序表示欄３０３１〜３０３３は、推奨順序決定部１０２が採番した推奨順序が表示される。
【００３２】
推奨順序決定部１０２は、推奨順序を決定する場合、指定されたＦＢＤ部品３０１から一定距離離れて右側にある配置候補探索範囲３０４において、配置済のＦＢＤ部品３０２と重ならずに配置対象ＦＢＤ部品を配置可能である領域を検出し、検出した領域の中で最上部の座標を検出する。続いて、推奨順序決定部１０２は、指定されたＦＢＤ部品３０１の左側にある配置候補探索範囲３０５において、配置済のＦＢＤ部品３０２と重ならずに配置対象ＦＢＤ部品を配置可能である領域を検出し、検出した領域の中で最上部の座標を検出する。さらに、推奨順序決定部１０２は、指定されたＦＢＤ部品３０１の下側にある配置候補探索範囲３０６において、配置済のＦＢＤ部品３０２と重ならずに配置対象ＦＢＤ部品を配置可能である領域を検出し、検出した領域の中で最上部の座標を検出する。そして、推奨順序決定部１０２は、配置候補探索範囲３０４〜３０６から検出された各領域について、指定されたＦＢＤ部品３０１の右側、左側、下側の順に推奨順序を採番する。エディタ部１０１は、配置候補探索範囲３０４〜３０６から検出された各領域の最上部の座標の部分に推奨順序表示欄３０３１〜３０３３を配置し、採番した推奨順序を表示させる。これにより、配置候補探索範囲３０４内の推奨順序表示欄３０３１には、「１」、配置候補探索範囲３０５内の推奨順序表示欄３０３２には、「２」、配置候補探索範囲３０６内の推奨順序表示欄３０３３には、「３」が表示される。
【００３３】
入力部４０５を操作して推奨順序に対応する数字を入力したり、推奨順序表示欄３０３１〜３０３３を選択すると、入力された数字や選択された推奨順序表示欄３０３１〜３０３３に対応する領域に配置対象ＦＢＤ部品の配置がされる。推奨順序に対応する数字を入力したり、推奨順序表示欄３０３１〜３０３３を選択するための入力部４０５に対する操作は、キーボードによる推奨順序の選択やマウスによる選択等様々あるが、特定の方法に限定されることはない。
【００３４】
実施の形態１によれば、ユーザは、無数の配置位置から、配置済のＦＢＤ部品の位置を考慮してＦＢＤ部品の配置位置を容易に決定することができる。すなわち、実施の形態１によれば、ＦＢＤ部品の配置位置を短時間で決めることが可能となる。
【００３５】
実施の形態２．
本発明にかかるプログラミング装置の実施の形態２の構成は、実施の形態１と同様である。ただし、部品情報１０４には、各ＦＢＤ部品の端子についての端子特性情報（以下、端子情報と表記する。）が含まれており、部品情報管理部１０３は、各ＦＢＤ部品の端子情報を管理している。端子情報は、データ型に加え、ＦＢＤ部品単位で端子ごとに設定される接続優先度の情報を含んでいる。
【００３６】
図６は、実施の形態２に係るプログラミング装置の動作の流れを示すフローチャートである。ＦＢＤ部品を用いてプログラムを作成する際に、ユーザは、入力部４０５を操作してエディタ画面に配置済であるＦＢＤ部品を指定する（ステップＳ４０１）。次に、ユーザは、入力部４０５を操作して、指定したＦＢＤ部品の結線実施の要求をエディタ部１０１に与える（ステップＳ４０２）。結線実施の要求を受けたエディタ部１０１は、推奨順序決定部１０２に、指定されたＦＢＤ部品の端子を抽出することを要求する。推奨順序決定部１０２は、指定されたＦＢＤ部品及び指定されたＦＢＤ部品に結線済のＦＢＤ部品の端子情報を部品情報管理部１０３に要求する。部品情報管理部１０３は、推奨順序決定部１０２から要求された端子情報を部品情報１０４から読み出して、推奨順序決定部１０２に返す。推奨順序決定部１０２は、部品情報管理部１０３から取得した端子情報に基づいて、指定されたＦＢＤ部品からコンパイルエラーとなる端子を抽出し、部品情報管理部１０３から取得した端子ごとの接続優先度に応じて推奨順序を採番する。続けて、コンパイルエラーとならない残りの端子を抽出し、部品情報管理部１０３から取得した端子ごとの接続優先度に応じて、直前で決定した推奨順序から連番となるように推奨順序を採番する（ステップＳ４０３）。上記のように、本実施の形態での推奨順序は、コンパイルエラーとなる端子が若番となり、コンパイルエラーとならない端子は、コンパイルエラーとなる端子の続きの番号となることから、結線作業の優先度を示すこととなる。
【００３７】
推奨順序決定部１０２は、採番した推奨順序をエディタ部１０１に送信する。エディタ部１０１は、指定されたＦＢＤ部品の各端子に対応するように推奨順序表示欄を設け、推奨順序決定部１０２が採番した推奨順序をエディタ画面上に表示するように画面表示を更新する（ステップＳ４０４）。すなわち、エディタ画面上には、「１」から始まる自然数で推奨順序が表示される。
【００３８】
実施の形態２のプログラミング装置の動作について具体例を挙げて説明する。図７は、実施の形態２に係るプログラミング装置が表示部に表示させるエディタ画面の一例を示す図である。エディタ画面５００には、指定されたＦＢＤ部品５０１が表示されている。指定されたＦＢＤ部品５０１は、二つの入力端子５０２，５０４及び二つの出力端子５０３，５０５を有する。また、エディタ画面５００には、推奨順序表示欄５０６１〜５０６４が表示されている。推奨順序表示欄５０６１〜５０６４は、推奨順序決定部１０２が決定した推奨順序が表示される。さらに、エディタ画面５００には、指定されたＦＢＤ部品５０１に結線済のＦＢＤ部品５０７，５０８，５０９が配置されている。
【００３９】
ここで、ＦＢＤ部品５０７の出力端子５０７ａと入力端子５０２とはデータ型が一致しており、結線した場合にコンパイルエラーは生じないとする。また、ＦＢＤ部品５０８の出力端子５０８ａと入力端子５０４とはデータ型が異なるため、結線した場合にコンパイルエラーが生じるとする。さらに、ＦＢＤ部品５０９の入力端子５０９ａと出力端子５０３とはデータ型が異なるため、結線した場合にコンパイルエラーが生じるとする。なお、出力端子５０５は、他のＦＢＤ部品との結線を必須とする端子ではなく、コンパイルエラーは生じない状態であるとする。また、指定されたＦＢＤ部品５０１の各端子の接続優先度は、優先度の高い方から順に入力端子５０２、出力端子５０３、入力端子５０４、出力端子５０５であるとする。
【００４０】
推奨順序決定部１０２が、推奨順序を決定する動作について説明する。推奨順序決定部１０２は、部品情報管理部１０３を通じて、指定されたＦＢＤ部品５０１及びＦＢＤ部品５０７，５０８，５０９の端子情報を部品情報１０４から取得する。端子情報を取得した推奨順序決定部１０２は、まずコンパイルエラーとなる端子として、出力端子５０３及び入力端子５０４を抽出する。推奨順序決定部１０２は、出力端子５０３及び入力端子５０４に設定されている接続優先度に応じて、出力端子５０３の推奨順序として「１」を、入力端子５０４の推奨順序として「２」を採番する。続いて、推奨順序決定部１０２は、コンパイルエラーとならない残りの端子として、入力端子５０２及び出力端子５０５を抽出する。推奨順序決定部１０２は、入力端子５０２及び出力端子５０５に設定されている接続優先度に応じて、直前で決定した推奨順序からの連番となるように、入力端子５０２の推奨順序として「３」を、出力端子５０５の推奨順序として「４」を採番する。その後、推奨順序決定部１０２は推奨順序をエディタ部１０１に返す。
【００４１】
エディタ部１０１は、入力端子５０２，５０４及び出力端子５０３，５０５に対応する推奨順序表示欄５０６１〜５０６４をエディタ画面５００上に設け、その中に推奨順序決定部１０２から取得した推奨順序を表示する。すなわち、入力端子５０２に対応する推奨順序表示欄５０６１には、「３」、出力端子５０３に対応する推奨順序表示欄５０６２には、「２」、入力端子５０４に対応する推奨順序表示欄５０６３には、「１」、出力端子５０５に対応する推奨順序表示欄５０６４には、「４」を表示する。
【００４２】
入力部４０５を操作して推奨順序に対応する数字を入力したり、推奨順序表示欄５０６１〜５０６４を選択すると、入力された数字や選択された推奨順序表示欄５０６１〜５０６４に対応する端子が結線対象として選択される。推奨順序に対応する数字を入力したり、推奨順序表示欄５０６１〜５０６４を選択するための入力部４０５に対する操作は、キーボードによる推奨順序の選択やマウスによる選択等様々あるが、特定の方法に限定されることはない。
【００４３】
なお、推奨順序決定部１０２は、コンパイルエラーが発生する端子の推奨順序と発生しない端子の推奨順序とを区別してエディタ部１０１に返し、エディタ部１０１は、推奨順序表示欄５０６１〜５０６４に推奨順序を表示する際に、コンパイルエラーが発生する端子の推奨順序と発生しない端子の推奨順序とを異なる色で表示するようにしても良い。このようにすれば、コンパイルエラーとなる端子を容易に判別できるため、プログラミングに時間を要する時間を短縮できる。
【００４４】
実施の形態２によれば、エディタ画面上で配置済のＦＢＤ部品を指定した際に、結線をやり直した方が良い可能性が高い端子から高い順位で推奨順序を表示できる。換言すると、実施の形態２によれば、結線時に接続元の端子を選択する際に、端子の優先度を容易に把握できる。これにより、結線作業を効率的に行うことができる。
【００４５】
なお、上記の説明においては、推奨順序決定部１０２は、指定されたＦＢＤ部品の端子と指定されたＦＢＤ部品に結線済のＦＢＤ部品の端子間のデータ型の一致及び不一致の両方を検出し、データ型が不一致の端子が結線の接続優先度に従って採番され、この採番に続いてデータ型が一致の端子が結線の接続優先度に従って採番されるように、指定されたＦＢＤ部品の端子間における結線作業の推奨優先順序を決定する場合を例とした。ただし、指定されたＦＢＤ部品の端子と指定されたＦＢＤ部品に結線済のＦＢＤ部品の端子間のデータ型の一致及び不一致の一方のみを検出して、この検出結果と取得した結線の接続優先度の情報に基づき、指定されたＦＢＤ部品の端子間における結線作業の推奨優先順序を決定するようにしても良い。
【００４６】
実施の形態３．
本発明にかかるプログラミング装置の実施の形態３の構成は、実施の形態１と同様である。ただし、部品情報１０４には、各ＦＢＤ部品の端子についての端子特性情報（以下、端子情報と表記する。）が含まれており、部品情報管理部１０３は、各ＦＢＤ部品の端子情報を管理している。端子情報は、データ型の情報を含んでいる。
【００４７】
図８は、実施の形態３に係るプログラミング装置の動作の流れを示すフローチャートである。ＦＢＤ部品を用いてプログラムを作成する際に、ユーザは、入力部４０５を操作してエディタ画面に配置済であるＦＢＤ部品の端子を指定する。次に、ユーザは、入力部４０５を操作して、指定した端子の結線実施の要求をエディタ部１０１に与える（ステップＳ６０１）。
【００４８】
結線実施の要求を受けたエディタ部１０１は、推奨順序決定部１０２に、端子が指定されたＦＢＤ部品以外のＦＢＤ部品の端子を抽出することを要求する。推奨順序決定部１０２は、端子が指定されたＦＢＤ部品及びこれとは別のＦＢＤ部品の端子情報を部品情報管理部１０３に要求する。部品情報管理部１０３は、推奨順序決定部１０２から要求された端子情報を部品情報１０４から読み出して、推奨順序決定部１０２に返す。推奨順序決定部１０２は、部品情報管理部１０３から取得した端子情報に基づいて、指定された端子と結線してもコンパイルエラーとならない端子を抽出し、指定された端子との直線距離に応じて推奨順序を採番する。なお、ここでの直線距離とは、指定された端子のエディタ画面上でのｘｙ座標と、指定されたＦＢＤ部品以外のＦＢＤ部品の端子のエディタ画面上でのｘｙ座標とに基づいて、２点間の線分の長さとして算出可能である。続けて、指定された端子と結線するとコンパイルエラーとなる残りの端子を抽出し、指定された端子との直線距離に応じて、直前で決定した推奨順序から連番となるように推奨順序を採番する（ステップＳ６０２）。
【００４９】
なお、指定された端子との直線距離が等しい端子が複数ある場合には、推奨順序決定部１０２は、予め定められた規則に従って推奨順序を決定する。例えば、推奨順序決定部１０２は、エディタ画面に上側に位置する端子や、左側に位置する端子を優先するなどの規則に従って推奨順序を決定する。上記のように、本実施の形態での推奨順序は、コンパイルエラーとならない端子が若番となり、コンパイルエラーとなる端子は、コンパイルエラーとならない端子の続きの番号となることから、指定された端子との接続の優先度を示すこととなる。
【００５０】
推奨順序決定部１０２は、採番した推奨順序をエディタ部１０１に送信する。エディタ部１０１は、端子が指定されたＦＢＤ部品以外のＦＢＤ部品の各端子に対応するように推奨順序表示欄を設け、推奨順序決定部１０２が決定した推奨順序をエディタ画面上に表示するように画面表示を更新する（ステップＳ６０３）。すなわち、エディタ画面上には、「１」から始まる自然数で推奨順序が表示される。
【００５１】
実施の形態３のプログラミング装置の動作について具体例を挙げて説明する。図９は、実施の形態３に係るプログラミング装置が表示部に表示させるエディタ画面の一例を示す図である。エディタ画面７００には、ＦＢＤ部品７０１〜７０５が表示されている。ＦＢＤ部品７０１は出力端子７０１ａを備えており、ＦＢＤ部品７０２〜７０５は、入力端子７０２ａ〜７０５ａを備えている。また、エディタ画面７００には、推奨順序表示欄７０６１〜７０６４が表示されている。推奨順序表示欄７０６１〜７０６４は、推奨順序決定部１０２が採番した推奨順序が表示される。
【００５２】
ここで、ＦＢＤ部品７０１の出力端子７０１ａとＦＢＤ部品７０２の入力端子７０２ａとはデータ型が異なり、結線した場合にはコンパイルエラーが生じるとする。例えば、ＩＥＣ６１１３１−３に定義されている種別であれば、整数型であるＩＮＴ型、浮動小数点型であるＲＥＡＬ型、条件式に対応する結果をｔｒｕｅ又はｆａｌｓｅで示すＢＯＯＬ型などのデータ型があり、データ型が異なる入力端子及び出力端子を結線するとコンパイルエラーが発生する。また、ＦＢＤ部品７０１の出力端子７０１ａとＦＢＤ部品７０３の入力端子７０３ａとはデータ型が異なり、結線した場合にはコンパイルエラーが生じるとする。また、ＦＢＤ部品７０１の出力端子７０１ａとＦＢＤ部品７０４の入力端子７０４ａとはデータ型が一致しており、結線した場合にコンパイルエラーが生じないとする。さらに、ＦＢＤ部品７０１の出力端子７０１ａとＦＢＤ部品７０５の入力端子７０５ａとはデータ型が一致しており、結線した場合にコンパイルエラーが生じないとする。
【００５３】
推奨順序決定部１０２が、推奨順序を決定する動作について説明する。推奨順序決定部１０２は、部品情報管理部１０３を通じて、出力端子７０１ａが指定されたＦＢＤ部品７０１及びＦＢＤ部品７０２〜７０５の端子情報を部品情報１０４から取得する。端子情報を取得した推奨順序決定部１０２は、まず指定された端子である出力端子７０１ａと結線した場合にコンパイルエラーとならない端子として、入力端子７０４ａ及び入力端子７０５ａを抽出する。推奨順序決定部１０２は、指定された端子である出力端子７０１ａとの直線距離の短さに応じて、入力端子７０４ａの推奨順序として「１」を、入力端子７０５ａの推奨順序として「２」を採番する。続いて、推奨順序決定部１０２は、指定された端子である出力端子７０１ａと結線した場合にコンパイルエラーとなる残りの端子として、入力端子７０２ａ及び入力端子７０３ａを抽出する。推奨順序決定部１０２は、指定された端子である出力端子７０１ａとの直線距離の短さに応じて、直前で決定した推奨順序からの連番となるように、入力端子７０２ａの推奨順序として「３」を、入力端子７０３ａの推奨順序として「４」を採番する。その後、推奨順序決定部１０２は推奨順序をエディタ部１０１に返す。
【００５４】
エディタ部１０１は、入力端子７０２ａ〜７０５ａに対応する推奨順序表示欄７０６１〜７０６４をエディタ画面７００上に設け、その中に推奨順序決定部１０２から取得した推奨順序を表示する。すなわち、入力端子７０２ａに対応する推奨順序表示欄７０６１には、「３」、入力端子７０３ａに対応する推奨順序表示欄７０６２には、「４」、入力端子７０４ａに対応する推奨順序表示欄７０６３には、「１」、入力端子７０５ａに対応する推奨順序表示欄７０６４には、「２」を表示する。
【００５５】
入力部４０５を操作して推奨順序に対応する数字を入力したり、推奨順序表示欄７０６１〜７０６４を選択すると、入力された数字や選択された推奨順序表示欄７０６１〜７０６４に対応する端子が指定された出力端子７０１ａと結線される。推奨順序に対応する数字を入力したり、推奨順序表示欄７０６１〜７０６４を選択するための入力部４０５に対する操作は、キーボードによる推奨順序の選択やマウスによる選択等様々あるが、特定の方法に限定されることはない。
【００５６】
なお、推奨順序決定部１０２は、コンパイルエラーが発生する端子の推奨順序と発生しない端子の推奨順序とを区別してエディタ部１０１に返し、エディタ部１０１は、推奨順序表示欄７０６１〜７０６４に推奨順序を表示する際に、コンパイルエラーが発生する端子の推奨順序と発生しない端子の推奨順序とを異なる色で表示するようにしても良い。このようにすれば、コンパイルエラーとならない端子を容易に判別できるため、プログラミングに時間を要する時間を短縮できる。
【００５７】
なお、上記の説明においては、推奨順序決定部１０２は、端子が指定されたＦＢＤ部品以外のＦＢＤ部品の端子であって、指定された端子とデータ型が一致する端子が、指定された端子との直線距離が短い順に採番され、この採番に続いて端子が指定されたＦＢＤ部品以外のＦＢＤ部品の端子であって、指定された端子とデータ型が不一致である端子が、指定された端子との直線距離が短い順に採番されるように、指定された端子との結線作業の推奨優先順序を決定する場合を例とした。ただし、指定された端子とデータ型が一致する端子及び不一致の端子の一方のみを検出して、この検出結果と取得した結線の接続優先度の情報に基づき、指定された端子との間の結線作業の推奨優先順序を決定するようにしても良い。
【００５８】
実施の形態３によれば、エディタ画面上で配置済のＦＢＤ部品の端子を指定した際に、結線先として推奨される端子ほど高い順位で推奨順序を表示できる。換言すると、結線時接続先の端子を選択する際に、端子の優先度を容易に把握できる。これにより、結線作業を効率的に行うことができる。
【００５９】
なお、上記の説明においては、実施の形態１〜３を個別に説明したが、これらの実施の形態の動作を一連の動作として行うようにしても良い。例えば、実施の形態２，３の動作を一連の動作とし、エディタ画面に配置済のＦＢＤ部品を指定した際に、指定した部品が有する端子に推奨順序が表示され、いずれかの端子を指定した際に、指定したＦＢＤ部品以外のＦＢＤ部品の端子に推奨順序が表示されるようにすることも可能である。
【００６０】
このように、本発明では、推奨順序や推奨順序表示部を選択することで、ＦＢＤ部品の配置や結線が可能であり、その選択手段については、キーボードによる推奨順序の選択やマウスによる推奨順序表示部の選択等様々あるが、特定の方法に限定されることはない。
【産業上の利用可能性】
【００６１】
以上のように、本発明にかかるプログラミング装置は、ＦＢＤ言語を用いたプログラミングにおいて、ＦＢＤ部品の推奨される配置位置や、ＦＢＤ部品の推奨される接続端子をユーザが容易に認識可能である点で有用であり、特に、コンパイルエラーの発生を低減するのに適している。
【符号の説明】
【００６２】
１０  伝送路、１００  プログラミング装置、１０１  エディタ部、１０２  推奨順序決定部、１０３  部品情報管理部、１０４  部品情報、３００，５００，７００  エディタ画面、３０１，５０１  指定されたＦＢＤ部品、３０２  配置済のＦＢＤ部品、３０３１，３０３２，３０３３，５０６，７０６１，７０６２，７０６３，７０６４  推奨順序表示欄、３０４，３０５，３０６  配置候補探索範囲、４００  コンピュータ、４０１  ＣＰＵ、４０２  ＲＡＭ、４０３  ＲＯＭ、４０４  記憶部、４０５  入力部、４０６  表示部、４０７  プログラミングツールソフトウェア、４０９  通信Ｉ／Ｆ、５０２，５０４，５０９ａ，７０２ａ，７０３ａ，７０４ａ，７０５ａ  入力端子、５０３，５０５，５０７ａ，５０８ａ  出力端子、５０７，５０８，５０９，７０１，７０２，７０３，７０４，７０５  ＦＢＤ部品。
【要約】
エディタ画面上で複数のＦＢＤ部品を接続して処理を記述するＦＢＤ言語のプログラムを作成するプログラミング装置（１００）であって、ＦＢＤ部品の大きさを示すサイズ情報を管理する部品情報管理部（１０３）と、エディタ画面上で配置済のＦＢＤ部品に対して新たにＦＢＤ部品を配置する操作が行われた際に、配置済のＦＢＤ部品のサイズ情報及び新たに配置するＦＢＤ部品のサイズ情報を部品情報管理部（１０３）から取得し、取得したサイズ情報に基づき新たに配置するＦＢＤ部品を配置可能な複数の領域を検出し、検出した複数の領域の位置に基づき複数の領域間における部品配置の推奨優先順序を決定する推奨順序決定部（１０２）と、推奨順序決定部（１０２）が決定した推奨優先順序を、複数の領域に表示するエディタ部（１０１）とを有する。【図１】
0005829780.tif 000002
【図２】
0005829780.tif 000003
【図３】
0005829780.tif 000004
【図４】
0005829780.tif 000005
【図５】
0005829780.tif 000006
【図６】
0005829780.tif 000007
【図７】
0005829780.tif 000008
【図８】
0005829780.tif 000009
【図９】
0005829780.tif 000010