(57)【特許請求の範囲】
【請求項１】
ライブラリ形式に表示されているファンクションブロックを複数選択する選択手段と、
上記選択されたファンクションブロックについて、選択された順番に基づいてその描画されるべき位置のプレビュー表示部における座標を計算するとともに、個々のファンクションブロックの属性情報に基づき該ファンクションブロック同士の結線の可否を判断し、結線可能である場合には結線されるファンクションブロックの入力ピンと出力ピンとこれらの入力ピン及び出力ピンとを結ぶ線分との描画されるべき位置のプレビュー表示部における座標を計算する座標計算手段と、
計算により求められた上記ファンクションブロックと入力ピンと出力ピンとこれらの入力ピン及び出力ピンとを結ぶ線分とのプレビュー表示部における座標を格納する座標格納手段と、
この座標格納手段に格納された座標に基づいて上記選択された複数のファンクションブロックが結線された状態をプレビュー表示部に描画表示する第１の描画手段と、
上記座標格納手段に格納された座標に、エディタ部にすでに描画されている図の最右端のＸ座標を加えてエディタ部の座標とし、上記プレビュー表示部に描画されている図を上記エディタ部に描画表示する第２の描画手段と、
を備えたプログラミングツール。
【請求項２】
個々のファンクションブロックの属性情報は、個々のファンクションブロックの入力ピン及び出力ピンのデータ型であることを特徴とする請求項１に記載のプログラミングツール。
【請求項３】
座標計算手段は、複数のファンクションブロックを表示する仮想的な列に表示される複数のファンクションブロックの横の大きさの最大値を用いて、上記複数のファンクションブロックの出力ピンの右終端のＸ座標が等しくなるように出力ピンの長さを計算することを特徴とする請求項１又は２に記載のプログラミングツール。
【請求項４】
ファンクションブロックの選択時に、予め定められた次の選択候補となるファンクションブロックの次候補情報に基づき、ライブラリ形式に表示されている複数のファンクションブロックを、次候補対象のファンクションブロックと対象外のファンクションブロックとで表示を異ならせ、かつ、並列接続された複数のファンクションブロックに直列接続されうる次候補対象のファンクションブロックの次候補情報を、該並列接続された複数のファンクションブロックの次候補情報の論理和より求めることを特徴とする請求項１乃至３のいずれか１項に記載のプログラミングツール。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ファンクションブロックダイアグラム（Function Block Diagram：以下、ＦＢＤとする）によるプログラミングを行うプログラミングツールに関するものである。
【０００２】
【従来の技術】
第１６図は、従来の技術によるＦＢＤによるプログラミングツールの構成及びプログラミング動作を示した図であり、情報伝達部１０６を介して接続されるプログラマブルコントローラ１０９のＦＢＤをプログラミングツール１１０で作成する動作について説明する。
【０００３】
一般に、ＦＢＤによるプログラミングツール１１０は、第１６図に示すようにユーザが選択するファンクションブロック（Function Block：以下、ＦＢとする）１２０を格納したＦＢライブラリ部１０２と、選択したＦＢ１２０をドラッグ＆ドロップ（Drag & Drop）して結線するＦＢＤエディタ部１０１から構成される。
【０００４】
ＦＢ１２０は、ある機能を実現するアルゴリズムとデータを持ち、内部構造を隠蔽化した機能ブロックであり、入力のインタフェースとして入力ピン１２１、出力のインタフェースとして出力ピン１２２を持つ。
【０００５】
従来のＦＢＤによるプログラミングツールでは、ＦＢライブラリ部１０２でＦＢを一つ選択し、選択したＦＢをマウス１０７ｂのドラッグ＆ドロップ操作により、ＦＢＤエディタ部１の所望の位置に配置する。
【０００６】
配置後、そのＦＢ１２０の入力ピン１２１とそれ以前に配置されたＦＢ１２０の出力ピン１２２あるいは、そのＦＢ１２０の出力ピン１２２とそれ以前に配置されたＦＢ１２０の入力ピン１２１の間を結線するために、一方のピン（Pin）をマウス１０７ｂのクリック操作により選択し、さらに結線するもう一方のピンをマウス１０７ｂのクリック操作により選択するなどして結線する。
この動作の繰り返しにより、処理の流れを表現し、プログラムを作成する。
【０００７】
【発明が解決しようとする課題】
従来のプログラミングツールでは、上記のようにＦＢ１２０を選択し、ドラッグ＆ドロップ操作により、ＦＢＤエディタ部１０１に配置しては、それ以前に配置されたＦＢ１２０と結線するという動作の繰り返しによりプログラムを作成するため、プログラム中のＦＢの数だけのドラッグ＆ドロップ操作と各ＦＢに対する結線操作が必要であり、操作が非常に煩わしいという問題点があった。
【０００８】
本発明では、係る問題点を解決するためになされたもので、簡易な操作によりＦＢＤによるプログラムを作成できるプログラミングツールを提供することを目的としている。
【０００９】
【課題を解決するための手段】
この目的を達成するために、この発明に係るプログラミングツールは、ライブラリ形式に表示されているファンクションブロックを複数選択する選択手段と、上記選択されたファンクションブロックについて、選択された順番に基づいてその描画されるべき位置のプレビュー表示部における座標を計算するとともに、個々のファンクションブロックの属性情報に基づき該ファンクションブロック同士の結線の可否を判断し、結線可能である場合には結線されるファンクションブロックの入力ピンと出力ピンとこれらの入力ピン及び出力ピンとを結ぶ線分との描画されるべき位置のプレビュー表示部における座標を計算する座標計算手段と、計算により求められた上記ファンクションブロックと入力ピンと出力ピンとこれらの入力ピン及び出力ピンとを結ぶ線分とのプレビュー表示部における座標を格納する座標格納手段と、この座標格納手段に格納された座標に基づいて上記選択された複数のファンクションブロックが結線された状態をプレビュー表示部に描画表示する第１の描画手段と、上記座標格納手段に格納された座標に、エディタ部にすでに描画されている図の最右端のＸ座標を加えてエディタ部の座標とし、上記プレビュー表示部に描画されている図を上記エディタ部に描画表示する第２の描画手段と、を備えた。
【００１０】
また、個々のファンクションブロックの属性情報は、個々のファンクションブロックの入力ピン及び出力ピンのデータ型である。
【００１１】
また、座標計算手段が、複数のファンクションブロックを表示する仮想的な列に表示される複数のファンクションブロックの横の大きさの最大値を用いて、上記複数のファンクションブロックの出力ピンの右終端のＸ座標が等しくなるように出力ピンの長さを計算するものである。
【００１２】
また、ファンクションブロックの選択時に、予め定められた次の選択候補となるファンクションブロックの次候補情報に基づき、ライブラリ形式に表示されている複数のファンクションブロックを、次候補対象のファンクションブロックと対象外のファンクションブロックとで表示を異ならせ、かつ、並列接続された複数のファンクションブロックに直列接続されうる次候補対象のファンクションブロックの次候補情報を、該並列接続された複数のファンクションブロックの次候補情報の論理和より求めるものである。
【００１３】
【発明の実施の形態】
第１図は、本発明のプログラミングツール１０の構成及びプログラミング動作を示す図である。
【００１４】
第２図は、本発明によるプログラミングツール１０の回路ブロック図である。
本実施の形態では、プログラミングツール１０が、プログラマブルコントローラ９のプログラミングを対象としてプログラミングする場合を例に説明する。
【００１５】
第１図、第２図で示すように、本発明のプログラミングツール１０は、プログラミングツールでデータの処理を行なうデータ処理部４と、データ処理の演算に用いる記憶部５と、プログラマブルコントローラ９との間でデータの授受を行なう情報伝達部６と、キーボード７ａ、マウス７ｂ等の入力装置７と、ＣＲＴ（Cathode Ray Tube）等の表示装置８とを構成要素とし、表示装置８上に、選択したＦＢ２０をドラッグ＆ドロップして結線するＦＢＤエディタ部１、ユーザが選択するＦＢ２０を格納したＦＢライブラリ部２、ユーザがマウス７ｂのクリック操作によりＦＢライブラリ２で選択したＦＢ２０をＦＢＤエディタ部１にドラッグ＆ドロップしたときの描画イメージを表示するプレビュー表示部３を備える。（以下、ユーザがマウス７ｂのクリック操作によりＦＢライブラリ２でＦＢ２０を選択する操作をＦＢ選択操作と定義する。）
なお、ＦＢ２０は、ある機能を実現するアルゴリズムとデータを持ち、内部構造を隠蔽化した機能ブロックであり、入力のインタフェースとして入力ピン２１、出力のインタフェースとして出力ピン２２を持つ。
【００１６】
データ処理部４において、４ａはＦＢ選択操作により選択されたＦＢ２０がプレビュー表示部３で描画される座標を決定するプレビュー座標決定手段、４ｂは次候補ＦＢ情報格納部５ｂのＦＢ２０毎の情報を参照し、次候補となるＦＢ２０を表すビット列（次候補ＦＢビット列という）を決定して次候補ＦＢビット列格納部５ｄに格納する次候補ＦＢ決定手段、４ｃはユーザが選択したＦＢ２０をＦＢＤエディタ部１にドラッグ＆ドロップした際に、ＦＢＤエディタ描画情報格納部５ｃに格納されているＦＢおよび結線の座標情報を基にＦＢＤエディタ部１に描画するＦＢＤエディタ部描画手段である。
【００１７】
記憶部５において、５ａはＦＢ選択操作により選択されたＦＢ２０がプレビュー表示部３で描画される座標を格納するプレビュー描画情報格納部、５ｂはＦＢ選択操作によりあるＦＢ２０が選択された際に、あらかじめプログラミングツールを提供するメーカによりＦＢ２０毎に定められた次の選択候補となるＦＢ（以下、次候補ＦＢという）の情報を格納する次候補ＦＢ情報格納部、５ｃはユーザがＦＢ選択操作により１つ以上のＦＢ２０を選択し、ＦＢＤエディタ部１にドラッグ＆ドロップした際に、ＦＢＤエディタ部１に描画されるＦＢ及び結線の座標を格納するＦＢＤエディタ描画情報格納部、５ｄはある時点での次の選択候補となるＦＢ２０を表したビット列（ＦＢ選択操作の操作順序に応じて次候補ＦＢ情報格納部を基に次候補ＦＢ決定手段４ｂにより決定される）を格納する次候補ＦＢビット列格納部、５ｅはあらかじめプログラミングツールを提供するメーカが提供する各ＦＢの属性情報（ＦＢ名称、大きさ、入力数、出力数、入力ピンのデータ型、出力ピンのデータ型）を格納するＦＢ情報格納部、５ｆは選択したＦＢが属する列（後述するプレビュー表示部３の仮想列）でＦＢの横の大きさが最大のものの長さを格納するＦＢ最大サイズ格納部である。
【００１８】
次に、本実施の形態の全体動作を、第３図のプログラミングツールの動作を示すフローチャートを用いて説明する。
ユーザ操作ＳＴ１においてユーザがマウス７ｂのクリック操作により、ＦＢライブラリ部２でＦＢ２０を選択すると、プレビュー座標決定処理ＳＴ２において、プレビュー座標決定手段４ａを実行し、選択されたＦＢ２０がプレビュー表示部３で描画される座標が計算され、座標はプレビュー描画情報格納部５ａに格納される。
【００１９】
次に、次候補ファンクションブロック決定処理ＳＴ３において、次候補ファンクションブロック決定手段４ｂを実行し、あらかじめ次候補ＦＢ情報格納部５ｂに格納されたＦＢ２０毎の情報を参照し、ユーザ操作ＳＴ１にて選択したＦＢ２０に対して次候補となるＦＢ２０を表すビット列（次候補ＦＢビット列）を決定し、次候補ＦＢビット列格納部５ｄに格納する。
ここで、ビット列のビット数（桁数）は、ＦＢライブラリ部２でメーカより提供されるＦＢ２０の数と等しく、夫々のビットが各ＦＢ２０に対応する。
また、ビットの値「１」は、”次候補ＦＢである”を意味し、「０」は”次候補ＦＢでない”を意味する。
例えば、メーカより提供されたＦＢ２０がＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆであるとすると、ビット列は０１１１００のようになり、最上位ビットがＡ、最下位ビットがＦに対応するとすると、Ｂ、Ｃ、Ｄは次候補ＦＢであり、Ａ、Ｅ、Ｆは次候補ＦＢでないということになる。
【００２０】
その後プレビュー表示部描画処理ＳＴ４において、プレビュー描画情報格納部５ａに基づいて、選択したＦＢ２０をプレビュー表示部３に描画する。
最後に、ＦＢライブラリ部描画処理ＳＴ５では、次候補ＦＢビット列格納部５ｄの次候補ＦＢビット列に基づいて、次候補となるＦＢ２０と次候補とならないＦＢ２０の違いが一目で分かるよう、異なる背景色を使用する等、表示状態を区別してＦＢライブラリ部２を再描画する。
ユーザが順次ＦＢ２０を選択する操作を行っている間、ＳＴ１〜ＳＴ５の処理が繰り返され、第１のＦＢ選択→第１のＦＢのプレビュー表示部３への表示→Ｆ第１のＦＢに接続可能なＦＢのＦＢライブラリ２への強調表示→第２のＦＢ選択→・・・といった処理が繰り返される。
【００２１】
ユーザがＦＢ２０の選択において、誤ったＦＢ２０を選択した場合や誤った順序でＦＢ２０を選択した場合などにおいて、ＦＢ２０の選択を始めからやり直したい場合がある。
この場合、ユーザ操作ＳＴ１においてＤｅｌｅｔｅキーを押下すると、プレビュー描画情報クリア処理ＳＴ６により、プレビュー描画情報格納部５ａの情報がクリア（削除）され、次候補ＦＢビット列クリア処理ＳＴ７により、次候補ＦＢビット列格納部５ｄの次候補ＦＢビット列をクリア（オールゼロ）する。
【００２２】
さらにまた、ＳＴ６でクリアされたプレビュー描画情報格納部５ａに基づくプレビュー表示部３の再描画と、ＳＴ７でクリアされた次候補ＦＢビット列格納部５ｄの次候補ＦＢビット列に基づくＦＢライブラリ部２の再描画により、プレビュー表示部３とＦＢライブラリ部２はユーザがＦＢを未選択の状態での表示とする。
ユーザがプレビュー表示部３のプレビューを確認後、選択したＦＢ２０をＦＢＤエディタ部１にドラッグ＆ドロップ（最後に選択したＦＢ）した場合には、ＦＢＤエディタ部描画処理ＳＴ８において、ＦＢＤエディタ部描画手段４ｃを実行し、プレビュー表示部３に描画されていた図をＦＢＤエディタ部１に描画する。
さらに、上記のＳＴ６、ＳＴ７の処理により、プレビュー表示部とＦＢライブラリ部２はユーザがＦＢを未選択の状態での表示とする。
【００２３】
次に、ユーザがマウス７ｂのクリック操作により、ＦＢライブラリ部２でＦＢ２０を選択する場合の処理ＳＴ１〜ＳＴ５の詳細を説明する。
プレビュー座標決定手段４ａによるプレビュー座標決定処理ＳＴ２の説明に第４図〜第７図を用いる。
第４図は、ＦＢ情報格納部５ｅで各ＦＢ２０の属性情報が格納される状態を示す図である。
【００２４】
説明を簡単にするため、例では入力数、出力数の最大数を各々３としている。
第４図に示す通り、ＦＢ２０の属性情報は、ＦＢ名称、大きさ、入力数、出力数、入力ピンのデータ型、出力ピンのデータ型からなる。
大きさはＦＢ２０の縦、横の長さ（単位はｍｍ）であり、入力数、出力数はそれぞれＦＢ２０の入力ピン２１の数、出力ピン２２の数である。
入力ピン１データ型、入力ピン２データ型、入力ピン３データ型はそれぞれ３本の入力ピン２１のデータ型に対応する。
【００２５】
入力ピン数が３本未満の場合、存在しない入力ピン２１に対応するデータ型は“なし”となる。
例えば、入力ピン数が１本でそのデータ型が”整数”であれば、入力ピン１データ型、入力ピン２データ型、入力ピン３データ型、は夫々“整数”、“なし”、“なし”となる。
出力ピン２２も入力ピン２１の場合と同様に、出力ピン１データ型、出力ピン２データ型、出力ピン３データ型はそれぞれ３本の出力ピン２２のデータ型に対応する。
【００２６】
入力ピン２１、出力ピン２２のデータ型とは、ＦＢ２０の入力ピン２１が他のＦＢ２０の出力ピンと結線された場合に、入力ピン２１と出力ピン２２との間で受け渡しされるデータの種類を表すものであり、整数（１，２，３，…）、実数（１.２５など）、文字列（ＡＢＣなど）、日時（２００１/０１/２２  １７：３０：３２）などがある。
入力ピン２１、出力ピン２２のデータ型は、ＦＢ２０の機能によりプログラミングツールを提供するメーカによってあらかじめ定められる。
また、結線される入力ピン２１と出力ピン２２のデータ型が等しくなければ、データの受け渡しが正しく行なわれないため、等しいデータ型を持つ入力ピン２１と出力ピン２２の間のみ結線が可能である。
【００２７】
第５図は、プレビュー座標決定手段４ａによるプレビュー座標決定処理ＳＴ２の動作を表すフローチャートである。
第６図は、説明に使用するプレビュー表示部３であり、第７図は、第６図の例において、ユーザによるＦＢ２０の選択時にプレビュー座標決定手段４ａにより更新されるプレビュー描画情報格納部５ａを示した図である。
本実施の形態では、プレビュー表示部３に仮想的な列の考えを設ける。
【００２８】
ＦＢ２０を並列に接続する場合、それらのＦＢ２０は同じ列に属するものとし、ある列のＦＢに対してＦＢ２０を直列に接続する場合、そのＦＢ２０は次列に属するものとする。
第６図の場合、ファンクションブロックＢ（以下、ＦＢ（Ｂ）と称す）及びＦＢ（Ｃ）が一列目、ＦＢ（Ｆ）が２列目となる。
また、ＦＢ（Ｆ）は、ＦＢ（Ｂ）及びＦＢ（Ｃ）に対して直列接続であり、ＦＢ（Ｃ）はＦＢ（Ｂ）に対して並列接続となる。
【００２９】
また、プレビュー表示部３の図形とプレビュー描画情報格納部５ａの対応は、第６図、第７図の例の場合、第６図のＰ１０１〜Ｐ１０５の各図形と第７図のＴ１０１〜Ｔ１０５の各座標に対応する。
すなわち、プレビュー描画情報格納部５ａでは、奇数列にＦＢ２０の描画座標が格納され、ＦＢ２０の描画座標の間の偶数列には結線情報が入るため、プレビュー表示部３のＦＢ列位置ｎの描画情報は、プレビュー描画情報格納部５ａの（２ｎ−１）列目に格納される。
また、プレビュー表示部３のｎ列目でのＦＢ２０を上から１，２，…，ｍ番目とすると、夫々の描画座標は、プレビュー描画情報格納部５ａの（２ｎ−１）列目の１，２，…，ｍ行目に格納される。
【００３０】
次に、第５図を用いてプレビュー座標決定処理ＳＴ２の動作について詳細に説明する。
ユーザがマウス７ｂのクリック操作によりＦＢ２０を選択すると、ＦＢ矩形部処理ＳＴ１１にて、プレビュー描画情報格納部５ａを参照し、ＦＢ２０の矩形を描画する開始位置を計算する。さらに、ＦＢ２０の名前をキーにしてＦＢ情報格納部５ｅより、選択されたＦＢ２０の大きさを参照し、ＦＢ２０の矩形がプレビュー表示部３に描画される座標を決定する。
【００３１】
なお、ＦＢ２０を選択する場合を、最初のＦＢ２０を選択する場合（ＦＢ２０が何も選択されていない状態）、並列に接続する場合、直列に接続する場合の３通りに分けて説明する。
一番最初にＦＢ２０を選択する場合、以前に選択されたＦＢ２０はないため、入力ピン２１、出力ピン２２の長さを予め決めた長さｌｐとすると、入力ピン２１の長さｌｐだけ原点からＸ軸方向にずれた位置（ｌｐ，０）が矩形を描画する開始位置となる。
【００３２】
ＦＢ情報格納部５ｅより、ＦＢの矩形の大きさ（横，縦）が（ｌｘ１，ｌｙ１）であれば、第６図においてＦＢ（Ｂ）の矩形の座標は（ｌｐ，０），（ｌｐ＋ｌｘ１，０），（ｌｐ，ｌｙ１），（ｌｐ＋ｌｘ１，ｌｙ１）となる。
ＦＢ（Ｂ）の入力ピン２１の長さｌｐを１０とすると、ＦＢ情報格納部５ｅより、ＦＢ（Ｂ）の矩形の大きさは横２５、縦２０であるので、ＦＢ（Ｂ）の矩形の座標は（１０，０），（３５，０），（１０，２０），（３５，２０）となり、プレビュー情報格納部５ａに格納される。（第７図Ｔ１０１）
【００３３】
次に、入力ピン部処理ＳＴ１２では、入力ピン２１の座標を計算し、プレビュー情報格納部５ａに結果を格納する。
例えば、入力ピン２１がＦＢ２０に等間隔で配置されるとすると、入力ピン２１のＦＢ２０の矩形上辺に対するｙ方向の相対座標は、ピンの数をｍ，ｌｙ１を（ｍ＋１）で除した値をｌｙ１ｍ１として、ｌｙ１ｍ１，（２＊ｌｙ１ｍ１），…，（ｍ＊ｌｙ１ｍ１）となる。
第６図のＦＢ（Ｂ）の場合、ＦＢ情報格納部５ｅより、入力ピン２１の数は１で、入力ピン２１の左終端のｘ座標、Ｂの矩形上辺のｙ座標ともに０であるので、入力ピン２１の座標は（０，１０），（１０，１０）となり、プレビュー情報格納部５ａに格納される。（第７図Ｔ１０１）
【００３４】
さらに、出力ピン部処理ＳＴ１３で、出力ピン２２の座標を計算し、プレビュー情報格納部５ａに結果を格納する。
例えば、出力ピン２２も入力ピン２１と同様にＦＢ２０に等間隔で配置されるとすると、出力ピン２２のＦＢ２０の矩形上辺に対するｙ方向の相対座標は、ｌｙ１ｍ１，（２＊ｌｙ１ｍ１），…，（ｍ＊ｌｙ１ｍ１）となる。
第６図のＦＢ（Ｂ）の場合、ＦＢ情報格納部５ｅより、出力ピン２２の数は１で、ＦＢ（Ｂ）の矩形右辺のｘ座標が３５、Ｂの矩形上辺のｙ座標が０であるので、出力ピン２２の座標は（３５，１０），（４５，１０）となり、プレビュー情報格納部５ａに格納される。（第７図Ｔ１０１）
【００３５】
次に、２通り目の並列接続の場合について説明する。
ＦＢ２０の選択時に、ユーザが単にマウスクリックにより選択する場合は、選択されたＦＢ２０は直列に接続されるが、ＦＢ２０の選択時に特定のキー（以下、Ｓｈｉｆｔキーとして説明する）を押下しながらマウスクリックして選択する場合、選択したＦＢ２０は並列に接続される。
第６図の例では、ＦＢ（Ｃ）の場合である。
【００３６】
この場合、ＦＢ矩形部処理ＳＴ１１では、矩形座標は次のよう決定される。
まず、ＦＢ２０の矩形を描画する開始位置のｘ座標は同列のＦＢと同じとする。
開始位置のｙ座標は、同列の直前に選択されたＦＢ２０の矩形下辺からある一定の距離ｌｓとする。
第６図の場合、ＦＢ（Ｃ）の矩形を描画する開始位置のｘ座標はＦＢ（Ｂ）と同じくｌｐであり、ｙ座標は（ＦＢ（Ｂ）の矩形下辺のｙ座標＋ｌｓ）となる。
また、ＦＢ（Ｃ）の矩形の大きさは、ＦＢ情報格納部５ｅより、縦２４、横２０であるから、ｌｓを１５とすると、ＦＢ（Ｃ）の矩形の座標は（１０，３５），（３０，３５），（１０，５９），（３０，５９）となり、プレビュー情報格納部５ａに格納される。（第７図Ｔ１０２）
【００３７】
続いて、入力ピン部処理ＳＴ１２において、まず、入力ピン２１の左終端のｘ座標は、同列のＦＢ矩形の入力ピン２１の左終端のｘ座標と等しく、一番最初にＦＢを選択する場合と同様に、ｙ座標は入力ピン２１がＦＢ矩形に等間隔に配置される位置となる。
第６図の場合、ＦＢ（Ｃ）の入力ピン２１の左終端のｘ座標は、ＦＢ（Ｂ）の入力ピン２１の左終端のｘ座標と同じく０である。
【００３８】
また、ＦＢ情報格納部５ｅより、ＦＢ（Ｃ）の入力ピン２１の数は２であるので、入力ピン２１の座標はそれぞれ、（０，４３），（１０，４３）及び（０，５１），（１０，５１）となり、プレビュー情報格納部５ａに格納される。（第７図Ｔ１０２）
さらに、出力ピン部処理ＳＴ１３において、出力ピン２２の左終端のｘ座標は、ＦＢ矩形の右辺のｘ座標と等しい。
また、出力ピン２２のｙ座標は、出力ピン２２がＦＢ矩形に等間隔に配置される位置となる。
【００３９】
よって、出力ピン２２の長さは、以下の計算により定める。
まず、選択したＦＢが属する列でＦＢの横の大きさが最大のものの長さをｌｘ_ｍａｘとする。
ｌｘ_ｍａｘは、第２図のＦＢ最大サイズ格納部５ｆに格納される。
選択したＦＢの横の大きさをｌｘ_ｃｕｒとすると、ｌｘ_ｃｕｒがｌx_ｍａｘより小さいとき、すなわち（ｌｘ_ｃｕｒ）＜（ｌｙ_ｍａｘ）が成り立つとき、出力ピン２２の長さをｌｐ＋(ｌx_ｍａｘ-ｌx_ｃｕｒ)とする。
第６図の例の場合、出力ピン２２の長さは、ｌｐ＋(ＦＢ（Ｂ）の横の大きさ−ＦＢ（Ｃ）の横の大きさ)＝（１０＋２５−２０）＝１５となる。
従って、出力ピン２２の右終端のｘ座標は（左終端のｘ座標＋線分の長さ）＝３０＋１５＝４５となる（第６図Ｐ１０２、第７図Ｔ１０２参照）。
また、（ｌｘ_ｃｕｒ）＞（ｌｘ_ｍａｘ）が成り立つときは、選択したＦＢの出力ピン２２の長さはｌｐとするが、選択したＦＢが属する列の他のＦＢの出力ピン２２の右終端のｘ座標に（ｌｘ_ｃｕｒ−ｌｘ_ｍａｘ）を加え、ｌｘ_ｃｕｒの値をｌｘ_ｍａｘとしてＦＢ最大サイズ格納部５ｆに格納する。
【００４０】
以上の処理により、ある列のＦＢの出力ピン２２の右終端のｘ座標は等しくなり、プレビュー表示部３に描画されたとき、どの列においてもＦＢ矩形が左側に整列し、図形が見やすくなる。
【００４１】
次に、直列接続の場合について説明する。
すでに１列以上存在する場合において、単にマウスクリックによりＦＢ２０を選択すると、選択したＦＢ２０は直列に接続される。
第６図の例ではＦＢ（Ｆ）の場合である。
ＦＢ矩形部描画処理ＳＴ１１において、ＦＢ２０の矩形の左辺のｘ座標は（前列の出力ピン２２の右終端のｘ座標＋入力ピン２１の長さｌｐ）、ｙ座標は０と計算される。
第６図の場合、ＦＢ（Ｆ）の矩形を描画する開始位置のｘ座標は（ＦＢ（Ｂ）の出力ピン２２の右終端のｘ座標＋ｌｐ）＝（４５＋１０）＝５５となる。また、ＦＢ（Ｆ）の矩形の大きさはＦＢ情報格納部５ｅより、縦３２、横２５であるから、ＦＢ（Ｆ）の矩形の座標は、（５５，０），（８０，０），（５５，３２），（８０，３２）となり、プレビュー情報格納部５ａに格納される。（第７図Ｔ１０５）
【００４２】
続いて、入力ピン部処理ＳＴ１２において、入力ピン２１の左終端のｘ座標は、前列の出力ピン２２の右終端のｘ座標と等しく、ｙ座標は、入力ピン２１がＦＢ２０の矩形に等間隔に配置される位置である。
第６図の場合、ＦＢ（Ｆ）の入力ピン２１の左終端のｘ座標は、ＦＢ（Ｂ）の出力ピン２２の右終端のｘ座標の値４５となる。
また、ＦＢ情報格納部５ｅより、ＦＢ（Ｆ）の入力ピン２１の数は２であるので、入力ピン２１の座標はそれぞれ、（４５，１０．７），（５５，１０．７）及び（４５，２１．３），（５５，２１．３）となり、プレビュー情報格納部５ａに格納される。（第７図Ｔ１０５）
【００４３】
その後、出力ピン部処理ＳＴ１３において、出力ピン２２の左終端のｘ座標は、ＦＢ２０の右辺のｘ座標と等しく、ｙ座標は出力ピン２２がＦＢ２０の矩形に等間隔に配置される位置である。
第６図の例の場合、ＦＢ（Ｆ）の出力ピン２２のｘ座標は、ＦＢ（Ｆ）の右辺のｘ座標の値８０となる。
また、ＦＢ情報格納部５ｅより、ＦＢ（Ｆ）の出力ピン２２の数は３であるので、出力ピン２２の座標はそれぞれ、（８０，８），（９０，８）、（８０，１６），（９０，１６）及び（８０，２４），（９０，２４）となり、プレビュー情報格納部５ａに格納される。（第７図Ｔ１０５）
【００４４】
以上の描画処理による描画情報が記憶部５のプレビュー描画情報格納部５ａに格納され、第６図のＰ１０１，Ｐ１０２，Ｐ１０５は、第７図のＴ１０１，Ｔ１０２，Ｔ１０５に対応する。
すなわち、第６図のプレビュー表示部３上でのＦＢの上からの順番と第７図の描画情報の行は対応するが、列については、第７図のＦＢの描画情報の間に結線情報が入るため、プレビュー描画情報格納部５ａでは奇数列がＦＢの描画情報を表し、ｎ列目のＦＢの描画座標は、プレビュー描画情報格納部５ａの（２ｎ−１）列目に格納され、ＦＢのｎ列目のＦＢ２０と（ｎ＋１）列目のＦＢ２０の間の結線座標はプレビュー描画情報格納部５ａの（２ｎ）列目に格納される。
【００４５】
第７図に示すように、プレビュー描画情報格納部５ａのＦＢの描画情報は、ブロック名、ブロック座標、入力ピン座標、出力ピン座標であるが、出力ピン座標には、ピンの座標の他、接続フラグを設けている。
接続フラグの値は、未結線で「０」、結線済で「１」としている。
これは以下に示す自動結線処理で使用する。
直列に接続するｎ列目のＦＢが選択され、上述のＦＢの描画処理ＳＴ１１〜ＳＴ１３のプレビュー描画情報格納部５ａの（２ｎ−１）列目への描画情報の格納処理と、プレビュー表示部３への描画処理が終了したら、結線部処理ＳＴ１４を行なう。
【００４６】
次に、結線部処理ＳＴ１４について、第８図のフローチャート及び第９図を用いて説明する。
第９図は、ファンクションブロックＸ（出力ピン数３）、ファンクションブロックＹ（出力ピン数２）が、以前に選択され、並列接続の位置にある状態で、ファンクションブロックＺ（入力ピン数２）を直列に接続するよう選択した場合の例を示した図である。
【００４７】
結線部処理ＳＴ１４の結線処理の対象となるのは、選択したＦＢ２０の入力ピン２１と以前に選択されたＦＢ２０の出力ピン２２すなわち、第９図の例の場合、ＦＢ（Ｚ）の入力ピン２１とＦＢ（Ｘ）、ＦＢ（Ｙ）の出力ピン２２である。
結線処理の対象となる入力ピン２１と出力ピン２２の組み合わせは、（入力ピン２１の数×出力ピン２１の数）だけある。
第９図の例の場合、入力ピン２１の数は、（ＦＢ（Ｚ）の入力ピン数）＝２であり、出力ピン２２の数は、（ＦＢ（Ｘ）の出力ピン数３＋ＦＢ（Ｙ）の出力ピン数２）＝５であるから、結線処理の対象となる入力ピン２１と出力ピン２２の組み合わせは２×５＝１０通りとなる。
【００４８】
これら夫々の入力ピン２１と出力ピン２２の組み合わせに対して、後述する結線部処理ＳＴ１４の処理を行なうが、処理を行なう入力ピン２１と出力ピン２２の組み合わせの順序は、以下のように決定する。
まず、入力ピン２１の対象をＦＢ（Ｚ）の１番目の入力ピン２１（図中ＺＰ１）とし、出力ピン２２の対象は、１行目のＸの１番目の出力ピン２２（ＸＰ１）とする。
ＺＰ１、ＸＰ１に対する結線部処理ＳＴ１４（図中Ｊ１０１）が終わると、次に入力ピン２１（図中ＺＰ１）の対象となる出力ピン２２をＸの２番目の出力ピンＸＰ２（Ｊ１０２）、さらに次の対象をＸＰ３（Ｊ１０３）とする。
【００４９】
ＦＢ（Ｘ）に対する処理が終了すると、出力ピン２２の処理の対象をＦＢ（Ｙ）とし、ＺＰ１に対して、出力ピン２２（ＹＰ１，ＹＰ２）との間で結線部処理ＳＴ２０４（Ｊ１０４，Ｊ１０５）を行なう。
こうして、ＦＢ（Ｚ）の１番目の入力ピン２１（ＺＰ１）に対するすべて出力ピン２２への処理が終了したら、結線部処理の対象となる入力ピン２１をＺの２番目の入力ピン２１（ＺＰ２）とする。
ＺＰ１と同様に、ＸＰ１，ＸＰ２，ＸＰ３，ＹＰ１，ＹＰ２に対して処理を行なう。（Ｊ１０６〜Ｊ１１０）
【００５０】
次に、結線部処理ＳＴ１４の動作を第８図のフローチャートを用いて説明する。
第８図のＳＴ２１では、処理対象となる入力ピン２１（例えば、第９図のＺＰ１）のデータ型を、ブロック名をキーとしてＦＢ情報格納部５ｅより読み取る。
ＳＴ２２では、処理対象となるＦＢ２０（例えば、第９図のＦＢ（Ｘ））のブロック名をキーとしてＦＢ情報格納部５ｅより出力ピン２２のデータ型を読み取る。
また、プレビュー描画情報格納部５ａより処理対象となるＦＢ２０の出力ピン２２の接続フラグを読み取る。
ＳＴ２３では、読み取った出力ピン２２の接続フラグの値が１（すでに他の入力ピン２１と接続済みであることを意味する）であれば、現在の処理対象である入力ピン２１、出力ピン２２に対する処理を終了し、接続フラグの値が０（他の入力ピン２１と未接続を意味する）であれば処理を継続する。
【００５１】
ＳＴ２４では、ＳＴ２１で取得した入力ピン２１のデータ型とＳＴ２２で取得した出力ピン２２のデータ型を比較し、データ型が等しければ、該入力ピン２１と出力ピンは結線可能であるので、以下のピン間線分座標決定処理ＳＴ２５により結線を行なう。
ピン間線分座標決定処理ＳＴ２５では、ｎ列目の出力ピン２２の右終端の座標と（ｎ＋１）列目の入力ピン２１の左終端の座標を結ぶ線分の座標をプレビュー描画情報格納部５ａの（２ｎ）列目に格納する。
その後、接続フラグ更新処理ＳＴ２６により、結線された出力ピン２２の描画情報の接続フラグを０から1（接続済みを表す）に更新する。
【００５２】
第６図の例の場合、最初に結線処理の対象となるのは、ＦＢ（Ｆ）の１番目の入力ピン２１（ＦＰ１とする）と、ＦＢ（Ｂ）の出力ピン２２である。
ＦＰ１のデータ型は、ブロック名「Ｆ」をキーとして、ＦＢ情報格納部５ｅより求め、”整数”であることがわかる。
ＦＢ（Ｂ）の出力ピン２２のデータ型も、同様に“整数”である。
ＦＢ（Ｆ）が選択される時点では、ＦＢ（Ｂ）の出力ピン２２は接続されていないので、プレビュー描画情報格納部５ａのファンクションブロックＢの出力ピン２２の接続フラグの値は０である。
データ型が等しく、接続フラグの値が０であるので、これは第８図のＳＴ２３，ＳＴ２４の条件を満たす。
従って、ピン間線分座標決定処理ＳＴ２５により、結線座標を計算し、プレビュー描画情報格納部５ａの１行２列目に格納する。（第７図Ｔ１０３）。
【００５３】
次に、結線処理の対象になる入力ピン２１は、ＦＢ（Ｆ）の２番目の入力ピン２１（ＦＰ２とする）で第８図のＳＴ２１によりデータ型は、“日時”である。
出力ピン２２で対象となるのは、Ｂの出力ピン２２であるが、Ｂの出力ピン２２は、上述の処理により、Ｆの１番目の入力ピン２１と結線済みで、接続フラグが１に更新されており、ＳＴ２３の条件を満たさない。
次に結線処理の対象になる出力ピン２２は、Ｃの出力ピン２２であるが、ＦＢ情報格納部５ｅより、データ型は“日付”であり、第８図のＳＴ２３の条件を満たす。
さらに、このピンは結線されていないので、接続フラグは０であり、ＳＴ２４の条件を満たす。
したがって、ピン間線分座標決定処理ＳＴ２５により、プレビュー描画情報格納部５ａの２行２列目に線分の座標が格納される（第７図Ｔ１０４）。
【００５４】
次に、次候補ファンクションブロック決定手段４ｂによる次候補ファンクションブロック決定処理ＳＴ３について第１０図〜第１２図を用いて説明する。
第１０図は、次候補ファンクションブロック情報格納部５ｂであり、あるＦＢ２０が選択された際、次の選択候補となるＦＢ２０の情報を格納したもので、プログラミングツールを提供するメーカがＦＢ２０の出力ピン２２のデータ型や機能からあらかじめ定めて提供するものである。
第１０図のビット列の各ビットは夫々、最上位からＡ，Ｂ，…，Ｆに対応し、ビットの値「１」は”次候補ＦＢである”を意味し、「０」は”次候補ＦＢでない”を意味する。
【００５５】
第１１図は、次候補ファンクションブロック決定処理ＳＴ３の動作を表すフローチャートである。
ＳＴ３１では、ユーザがユーザ操作ＳＴ１でＳｈｉｆｔキーを押しながらマウスクリックによりＦＢ２０を選択したかを判定し、押さずに選択したのであればＳＴ３２の処理を行ない、押しながらであればＳＴ３３の処理を行なう。
ＳＴ３２は、Ｓｈｉｆｔキーを押さずにＦＢ２０を選択した場合であるが、この場合、選択されたＦＢ２０（ＦＢ１とする）は直列に接続される。
ＦＢ１がｎ列目に配置されるとすると、ｎ列目にはＦＢ１のみ配置される。
ＦＢ１のＦＢ名称をキーとして、次候補ファンクションブロック情報格納部５ｂから取得した次候補となるＦＢ２０を表すビット列が、ＦＢ１に直列接続される次候補ＦＢビット列となり、次候補ＦＢビット列格納部５ｄに格納される。
【００５６】
ＳＴ３３は、Ｓｈｉｆｔキーを押しながら選択した場合であるが、この場合、選択されたＦＢ（ＦＢ＿３とする）は並列に接続される。
ＦＢ_３が配置されるｎ列目にすでにすでにＦＢ（ＦＢ＿２とする）があるとすると、次に直列接続される次候補ＦＢは、次候補ファンクションブロック情報格納部５ｂからＦＢ＿２をキーとして取得したビット列とＦＢ＿３をキーとして取得したビット列の論理和（ビット列Ｂｉｔ１とする）となる。
さらにＳｈｉｆｔキーを押しながらマウスクリックによりＦＢ２０を選択すると（ＦＢ＿４とする）、列内には、ＦＢ＿２，ＦＢ＿３，ＦＢ＿４が並列接続された状態となる。
この場合、次に直列接続される次候補ＦＢビット列は、次候補ファンクションブロック情報格納部５ｂからＦＢ＿２、ＦＢ＿３、ＦＢ＿４のブロック名をキーとして取得したビット列の論理和、すなわち上記のＢｉｔ１とＦＢ＿４をキーとして取得したビット列の論理和となる。
【００５７】
このように、Ｓｈｉｆｔキーを押しながらＦＢ２０を選択した場合、次候補ＦＢビット列は、直前の次候補ＦＢビット列と選択されたＦＢの次候補ＦＢビット列の論理和となり、次候補ＦＢビット列格納部５ｄにその値が格納される。
プレビュー表示部描画処理ＳＴ４では、上述のプレビュー座標決定処理ＳＴ２により決定され、プレビュー描画情報格納部５ａに格納された座標情報に基づいて、選択されたＦＢ２０をプレビュー表示部３に描画する。
ＦＢライブラリ部描画処理ＳＴ５では、次候補ＦＢビット列格納部５ｄの次候補ＦＢビット列を用いて、ＦＢライブラリ部２の描画（再描画）が行なわれる。
再描画では、次候補ＦＢビット列のビットの値が「０」に対応するＦＢ２０の背景を灰色或いは網掛け等で表示することにより描画し、ビットの値が「１」に対応するＦＢ２０の背景を白色で描画する。
【００５８】
例えば、第１図のＦＢライブラリ部２でＦＢ（Ｃ）を選択後、Ｓｈｉｆｔキーを押しながらＦＢをマウスクリックによりＦＢ（Ｄ）を選択した場合、まずＦＢ（Ｃ）の選択により、次候補ＦＢビット列は次候補ＦＢ情報格納部５ｂ（第１０図参照）から「１００００１」となる。
また、Ｓｈｉｆｔキーを押しながらＦＢ（Ｄ）を選択した場合の次候補ＦＢビット列は、次候補ＦＢ情報格納部５ｂより「００１１００」であるので、この場合の次候補ＦＢビット列は、それらのビット列の論理和「１０１１０１」となる。
【００５９】
従って、ＦＢライブラリ部描画処理ＳＴ５によるＦＢライブラリ部２の再描画では、ＦＢ（Ａ），ＦＢ（Ｃ），ＦＢ（Ｄ），ＦＢ（Ｆ）の背景を白色、ＦＢ（Ｂ），ＦＢ（Ｅ）の背景を灰色で描画する。（第１２図参照）
つまり、ＦＢ選択時に、次に選択しうるＦＢを絞り込み、次に選択することができないＦＢに別の色（本実施の形態では、灰色または網掛け等）で表示するので、ユーザが次に選択するＦＢを選択しやすく、間違って配線するミスも無くなり、プログラミング作業効率が向上する。
【００６０】
次にユーザ操作ＳＴ１において、Ｄｅｌｅｔｅキーを押下された場合の処理（ＳＴ６，ＳＴ７，ＳＴ４，ＳＴ５）について説明する。
プレビュー描画情報クリア処理ＳＴ６において、プレビュー描画情報格納部５ａの情報がすべてクリア（削除）される。
さらに、次候補ＦＢビット列クリア処理ＳＴ７により、次候補ＦＢビット列格納部５ｄの次候補ＦＢビット列がクリア（オールゼロ）される。
次にＳＴ６でクリアされたプレビュー描画情報格納部５ａに基づいて、上記のプレビュー表示部描画処理ＳＴ４により、プレビュー表示部３の再描画が行なわれるが、プレビュー描画情報格納部５ａには情報がないため、プレビュー表示部３には何も描画されていない状態となる。
【００６１】
また、ＳＴ７でクリアされた次候補ＦＢビット列格納部５ｄのビット列に基づいて、ＦＢライブラリ部２の再描画が行なわれるが、次候補ＦＢビット列格納部５ｄの次候補ＦＢビット列は「００００００」であるので、すべてのＦＢ２０の背景は白色で描画される。
以上の処理により、ユーザがプレビュー表示部３、ＦＢライブラリ部２ともにユーザがＦＢ２０を未選択の状態の表示とする。
【００６２】
次にユーザ操作ＳＴ１において、第１図のＦＢライブラリ部２からＦＢＤエディタ部１に任意のＦＢ２０をドラッグ＆ドロップ操作した場合の処理について説明する。
【００６３】
第３図に示すように、この場合、ＦＢＤエディタ部描画処理ＳＴ８において、ＦＢＤエディタ部描画手段４ｃを実行し、ＳＴ２等によりプレビュー表示部３に描画されていた図をＦＢＤエディタ部１へ描画後、上記のユーザ操作ＳＴ１においてＤｅｌｅｔｅキーを押下された場合の処理と同様の処理により、プレビュー表示部３とＦＢライブラリ部２をユーザがＦＢを未選択の状態での表示とする。
【００６４】
ＦＢＤエディタ部描画処理ＳＴ８について、第１３図のフローチャート、第１４図、第１５図を用いて詳細に説明する。
ＦＢＤエディタ部１の描画情報は、第１５図のＦＢＤエディタ描画情報格納部５ｃにＦＢ、結線毎（総称してオブジェクトと呼ぶ）に描画座標が格納される。
ＳＴ４１において、すでにＦＢＤエディタ部１に描画されているＦＢ２０の最右端のｘ座標すなわちＦＢＤエディタ描画情報格納部５ｃにおいてｘ座標の最大値（ｘ＿ｍａｘとする）を求める。（第１４図、第１５図x_ｍａｘ参照）
ＳＴ４２では、プレビュー描画情報格納部５ａに保持されたプレビュー描画情報をオブジェクト毎にＦＢＤエディタ描画情報格納部５ｃに格納するが、ＦＢＤエディタ部１にすでに描画されている図とプレビュー描画情報格納部５ａの図が重ならないよう、プレビュー描画情報格納部５ａのｘ座標の値にｘ＿ｍａｘを加えて格納する。
ＳＴ４３では、更新されたＦＢＤエディタ描画情報格納部５ｃのデータを基にＦＢＤエディタ部１を再描画する。
【００６５】
第１４図は、エディタ描画処理ＳＴ８の例であり、すでにＦＢ（Ａ），ＦＢ（Ｂ），ＦＢ（Ｃ）が描画されている状態で、ＦＢライブラリ部２でＦＢ（Ｆ），ＦＢ（Ｃ）を単にマウスクリックにより選択し、ＦＢＤエディタ部１にドラッグ＆ドロップした場合の例を示した図である。
ＳＴ４１において、ｘ＿ｍａｘを求めるが、この例ではＦＢ（Ｃ）の出力ピン２２の右終端のｘ座標「１００」がｘ_ｍａｘとなる。
ＳＴ４２では、第１５図に示すようにＦＢ２０、結線のプレビュー描画情報格納部５ａのｘ座標の値にそれぞれｘ_ｍａｘの値「１００」を加えて、ＦＢＤエディタ描画情報部５ｃにオブジェクト毎に格納する。
ＳＴ４３では、更新されたＦＢＤエディタ描画情報格納部５ｃを基に、ＦＢＤエディタ部１を再描画する。
ところで上記説明では、本発明をＦＢＤによるプログラミングツールに利用する場合について述べたが、その他のプログラミングツールにも利用できることは言うまでもない。
【００６６】
本実施の形態によれば、簡易な操作によりＦＢＤによるプログラムを作成することができる。
また、ＦＢ選択時にドラッグ＆ドロップ時の描画イメージをプレビューウィンドウに表示する手段を設けたので、プログラミングしている状態が一目でわかる。
また、ある列でのＦＢを左側に整列する手段を設けたので、見やすく表示される。
また、ＦＢ選択時に、次に選択しうるＦＢを絞り込み、それらの表示を異ならせることにより、ユーザが次に選択するＦＢを選択しやすく、選択ミスを防止することができる。
さらにまた、ＦＢ選択時に特定のキーとの組み合わせで、並列接続を可能とする手段を設けたので、単純な直列接続のプログラミングだけでなく、並列接続も組み合わせた複雑なプログラミングも行うことができる。
【００６７】
【産業上の利用可能性】
以上のように、本発明にかかるプログラミングツールは、プログラマブルコントローラのファンクションブロックダイアグラムによるプログラミングにおいて用いられるのに適している。
【図面の簡単な説明】
【図１】  第１図は、この発明によるプログラミングツールのシステム構成図である。
【図２】  第２図は、この発明によるプログラミングツールの回路ブロック図である。
【図３】  第３図は、この発明によるプログラミングツールの動作を示すフローチャートである。
【図４】  第４図は、この発明によるプログラミングツールの記憶部のファンクションブロック情報格納部にファンクションブロック情報が格納される様子を示す図である。
【図５】  第５図は、この発明によるプログラミングツールのプレビュー処理の動作を示すフローチャートである。
【図６】  第６図は、この発明によるプログラミングツールのプレビュー表示の例である。
【図７】  第７図は、この発明によるプログラミングツールの記憶部のプレビュー描画情報格納部に描画情報が格納される様子を示す図である。
【図８】  第８図は、この発明によるプログラミングツールの自動結線処理の動作を示すフローチャートである。
【図９】  第９図は、この発明によるプログラミングツールの自動結線処理におけるピンの処理順序を示す図である。
【図１０】  第１０図は、この発明によるプログラミングツールの次候補ファンクションブロック格納部に次候補となるファンクションブロックを表すビット列が格納される様子を示す図である。
【図１１】  第１１図は、この発明によるプログラミングツールのファンクションブロック候補絞込み処理の動作を示すフローチャートである。
【図１２】  第１２図は、この発明によるプログラミングツールのファンクションブロック候補絞込み処理によるＦＢライブラリの描画例である。
【図１３】  第１３図は、この発明によるプログラミングツールのエディタ描画処理の動作を示すフローチャートである。
【図１４】  第１４図は、この発明によるプログラミングツールのエディタ描画処理によるＦＢＤエディタ部の描画例である。
【図１５】  第１５図は、この発明によるプログラミングツールのエディタ描画処理によるプレビュー描画情報格納部およびＦＢＤエディタ描画情報格納部の例である。
【図１６】  第１６図は、従来のプログラミングツールによる動作を示す図である。
【図１】
0004122974.tif 000002
【図２】
0004122974.tif 000003
【図３】
0004122974.tif 000004
【図４】
0004122974.tif 000005
【図５】
0004122974.tif 000006
【図６】
0004122974.tif 000007
【図７】
0004122974.tif 000008
【図８】
0004122974.tif 000009
【図９】
0004122974.tif 000010
【図１０】
0004122974.tif 000011
【図１１】
0004122974.tif 000012
【図１２】
0004122974.tif 000013
【図１３】
0004122974.tif 000014
【図１４】
0004122974.tif 000015
【図１５】
0004122974.tif 000016
【図１６】
0004122974.tif 000017