(57)【特許請求の範囲】
【請求項１】
被制御機器の動作をシーケンシャル制御するプログラマブルコントローラにおいて実行される制御プログラムの作成を支援するプログラム作成支援装置において、
前記被制御機器に接続してある拡張ユニット及びＣＰＵユニットで構成してあり、
制御プログラムで用いる命令語を記憶する命令語記憶部と、
命令語に関連する関連情報を該命令語に対応付けて記憶する関連情報記憶部と
をそれぞれ別個に、前記拡張ユニットの種類ごとに有する記憶手段と、
前記拡張ユニットの種類の指定を受け付ける指定受付手段と、
文字列の入力を受け付ける入力受付手段と、
入力を受け付けた文字列の順序に応じて、前記命令語記憶部又は前記関連情報記憶部を検索対象として検索して選択候補を抽出する検索手段と、
該検索手段により抽出された選択候補を表示する表示手段と、
該表示手段に表示された選択候補の中から前記命令語又は前記関連情報の選択を受け付ける選択受付手段と
を備え、
前記検索手段は、前記選択受付手段により一の命令語が選択された後、前記入力受付手段により文字列の入力を受け付けた場合、指定を受け付けた前記拡張ユニットの種類に対応した前記命令語記憶部又は前記関連情報記憶部を検索対象として、前記一の命令語に対応付けられた関連情報のみからなる選択候補を抽出することを特徴とするプログラム作成支援装置。
【請求項２】
前記拡張ユニットに記憶してある、前記拡張ユニットに固有の命令語及び関連情報を、前記ＣＰＵユニットに複写して記憶する情報複写手段と、
入力を受け付けた文字列に応じて、前記拡張ユニットに記憶してある命令語及び関連情報か、前記ＣＰＵユニットに複写して記憶してある命令語及び関連情報か、いずれかを検索対象として選択する検索対象選択手段とを備えることを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項３】
被制御機器の動作をシーケンシャル制御するプログラマブルコントローラにおいて実行される制御プログラムの作成を支援するプログラム作成支援装置において、
前記被制御機器に接続してある拡張ユニット及びＣＰＵユニットで構成してあり、
制御プログラムで用いる命令語を記憶する命令語記憶部と、
命令語に関連する関連情報を該命令語に対応付けて記憶する関連情報記憶部と
をそれぞれ別個に、前記拡張ユニットの種類ごとに有する記憶手段と、
文字列の入力を受け付ける入力受付手段と、
入力を受け付けた文字列の順序に応じて、前記命令語記憶部又は前記関連情報記憶部を検索対象として検索して選択候補を抽出する検索手段と、
該検索手段により抽出された選択候補を表示する表示手段と、
該表示手段に表示された選択候補の中から前記命令語又は前記関連情報の選択を受け付ける選択受付手段と
を備え、
前記検索手段は、前記選択受付手段により一の命令語が選択された後、前記入力受付手段により文字列の入力を受け付けた場合、該一の命令語に対応付けられた関連情報のみからなる選択候補を抽出するとともに、
前記拡張ユニットに記憶してある、前記拡張ユニットに固有の命令語及び関連情報を、前記ＣＰＵユニットに複写して記憶する情報複写手段と、
入力を受け付けた文字列に応じて、前記拡張ユニットに記憶してある命令語及び関連情報か、前記ＣＰＵユニットに複写して記憶してある命令語及び関連情報か、いずれかを検索対象として選択する検索対象選択手段とを備えることを特徴とするプログラム作成支援装置。
【請求項４】
前記制御プログラムにおいて用いられる命令語の使用率を算出する使用率算出手段と、
算出した使用率に基づいて検索結果を分類する分類手段と
を備えることを特徴とする請求項１乃至３のいずれか一項に記載のプログラム作成支援装置。
【請求項５】
入力を受け付けた文字列を履歴情報として記憶する履歴情報記憶手段を備え、
前記分類手段は、記憶してある前記履歴情報を優先して分類するようにしてあることを特徴とする請求項４に記載のプログラム作成支援装置。
【請求項６】
文字列の入力を受け付けるインターバルを検出する入力インターバル検出手段と、
検出したインターバルが一定時間を超えたか否かを判断する入力インターバル判断手段と
を備え、
該入力インターバル判断手段で一定時間を超えたと判断した場合、前記検索手段に検索を開始させるようにしてあることを特徴とする請求項１乃至５のいずれか一項に記載のプログラム作成支援装置。
【請求項７】
前記検索手段は、部分一致検索又はあいまい検索を行うようにしてあることを特徴とする請求項１乃至６のいずれか一項に記載のプログラム作成支援装置。
【請求項８】
被制御機器の動作をシーケンシャル制御するプログラマブルコントローラにおいて実行される制御プログラムの作成を支援するプログラム作成支援装置で実行することが可能なプログラム作成支援方法において、
前記プログラム作成支援装置は、
前記被制御機器に接続してある拡張ユニット及びＣＰＵユニットで構成してあり、
制御プログラムで用いる命令語と、
該命令語に対応付けた、該命令語に関連する関連情報とをそれぞれ別個に、前記拡張ユニットの種類ごとに記憶し、
前記拡張ユニットの種類の指定を受け付け、
文字列の入力を受け付け、
入力を受け付けた文字列の順序に応じて、前記命令語又は前記関連情報を検索対象として検索して選択候補を抽出し、
抽出された選択候補を表示し、
表示された選択候補の中から前記命令語又は前記関連情報の選択を受け付け、
一の命令語が選択された後、文字列の入力を受け付けた場合、指定を受け付けた前記拡張ユニットの種類に対応した命令語及び関連情報を検索対象として、前記一の命令語に対応付けられた関連情報のみからなる選択候補を抽出することを特徴とするプログラム作成支援方法。
【請求項９】
被制御機器の動作をシーケンシャル制御するプログラマブルコントローラにおいて実行される制御プログラムの作成を支援するプログラム作成支援装置で実行することが可能なコンピュータプログラムにおいて、
前記プログラム作成支援装置は、
前記被制御機器に接続してある拡張ユニット及びＣＰＵユニットで構成してあり、
前記プログラム作成支援装置を、
制御プログラムで用いる命令語を記憶する命令語記憶部と、
命令語に関連する関連情報を該命令語に対応付けて記憶する関連情報記憶部と
をそれぞれ別個に、前記拡張ユニットの種類ごとに有する記憶手段、
前記拡張ユニットの種類の指定を受け付ける指定受付手段、
文字列の入力を受け付ける入力受付手段、
入力を受け付けた文字列の順序に応じて、前記命令語記憶部又は前記関連情報記憶部を検索対象として検索して選択候補を抽出する検索手段、
該検索手段により抽出された選択候補を表示する表示手段、及び
該表示手段に表示された選択候補の中から前記命令語又は前記関連情報の選択を受け付ける選択受付手段
として機能させ、
前記検索手段を、前記選択受付手段により一の命令語が選択された後、前記入力受付手段により文字列の入力を受け付けた場合、指定を受け付けた前記拡張ユニットの種類に対応した前記命令語記憶部又は前記関連情報記憶部を検索対象として、前記一の命令語に対応付けられた関連情報のみからなる選択候補を抽出する手段として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の被制御機器を連結して多様な機能を実現するプログラマブルコントローラで動作する制御プログラムの作成を支援するプログラム作成支援装置、プログラム作成支援方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、入出力機器を拡張する入出力ユニット、通信機能を付加する通信ユニット、制御対象となる機器の位置決めを制御する位置決めユニット、温度を調整する温調ユニット等の拡張ユニットを連結して、それぞれの拡張ユニットの動作を制御プログラムにより制御するプログラマブルコントローラが広く使用されている。機能が多様化するのに伴い、各拡張ユニットの動作を制御する制御プログラムは年々大規模化、複雑化してきており、制御プログラムの作成者が取扱う情報量も年々増大している。したがって、制御プログラムのコーディング作業を行う場合、制御プログラムの作成者が有しておくべき知識、有するべき能力等もより高度になってきており、制御プログラムの作成者に依存してコーディング作業を行うだけでは非効率であり、制御プログラムの作成者の負担が過大となる。
【０００３】
そこで、制御プログラムのコーディング作業を補助する方法として、マニュアルの提供だけでなく、例えば入力するプログラムコードに対する説明文を、コーディングした内容に応じて画面に表示する方法がよく用いられている。また、例えば特許文献１に開示されているように、ラベル、デバイス等を指定し、過去のプログラムコードの入力履歴、所定のデータベース等を検索することにより、コーディングするべき文字列（命令語等）を検索する方法も考えられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−０８３２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述した特許文献１のように単純に検索対象を拡大しただけでは、検索処理の柔軟度は高まるものの、検索対象が拡大することにより検索時間が増大し、検索結果を絞り込むことが困難になるという問題が生じ、制御プログラムの作成者にとっては円滑なコーディング作業の阻害要因となるおそれがあるという問題点があった。
【０００６】
本発明は斯かる事情に鑑みてなされたものであり、制御プログラムの作成者の負担を軽減し、効率よく制御プログラムの作成を支援することが可能なプログラム作成支援装置、プログラム作成支援方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために第１発明に係るプログラム作成支援装置は、被制御機器の動作をシーケンシャル制御するプログラマブルコントローラにおいて実行される制御プログラムの作成を支援するプログラム作成支援装置において、前記被制御機器に接続してある拡張ユニット及びＣＰＵユニットで構成してあり、制御プログラムで用いる命令語を記憶する命令語記憶部と、命令語に関連する関連情報を該命令語に対応付けて記憶する関連情報記憶部とをそれぞれ別個に、前記拡張ユニットの種類ごとに有する記憶手段と、前記拡張ユニットの種類の指定を受け付ける指定受付手段と、文字列の入力を受け付ける入力受付手段と、入力を受け付けた文字列の順序に応じて、前記命令語記憶部又は前記関連情報記憶部を検索対象として検索して選択候補を抽出する検索手段と、該検索手段により抽出された選択候補を表示する表示手段と、該表示手段に表示された選択候補の中から前記命令語又は前記関連情報の選択を受け付ける選択受付手段とを備え、前記検索手段は、前記選択受付手段により一の命令語が選択された後、前記入力受付手段により文字列の入力を受け付けた場合、指定を受け付けた前記拡張ユニットの種類に対応した前記命令語記憶部又は前記関連情報記憶部を検索対象として、前記一の命令語に対応付けられた関連情報のみからなる選択候補を抽出することを特徴とする。
【０００８】
また、第２発明に係るプログラム作成支援装置は、第１発明において、前記拡張ユニットに記憶してある、前記拡張ユニットに固有の命令語及び関連情報を、前記ＣＰＵユニットに複写して記憶する情報複写手段と、入力を受け付けた文字列に応じて、前記拡張ユニットに記憶してある命令語及び関連情報か、前記ＣＰＵユニットに複写して記憶してある命令語及び関連情報か、いずれかを検索対象として選択する検索対象選択手段とを備えることを特徴とする。
【００１０】
次に、上記目的を達成するために第３発明に係るプログラム作成支援装置は、被制御機器の動作をシーケンシャル制御するプログラマブルコントローラにおいて実行される制御プログラムの作成を支援するプログラム作成支援装置において、前記被制御機器に接続してある拡張ユニット及びＣＰＵユニットで構成してあり、制御プログラムで用いる命令語を記憶する命令語記憶部と、命令語に関連する関連情報を該命令語に対応付けて記憶する関連情報記憶部とをそれぞれ別個に、前記拡張ユニットの種類ごとに有する記憶手段と、文字列の入力を受け付ける入力受付手段と、入力を受け付けた文字列の順序に応じて、前記命令語記憶部又は前記関連情報記憶部を検索対象として検索して選択候補を抽出する検索手段と、該検索手段により抽出された選択候補を表示する表示手段と、該表示手段に表示された選択候補の中から前記命令語又は前記関連情報の選択を受け付ける選択受付手段とを備え、前記検索手段は、前記選択受付手段により一の命令語が選択された後、前記入力受付手段により文字列の入力を受け付けた場合、該一の命令語に対応付けられた関連情報のみからなる選択候補を抽出するとともに、前記拡張ユニットに記憶してある、前記拡張ユニットに固有の命令語及び関連情報を、前記ＣＰＵユニットに複写して記憶する情報複写手段と、入力を受け付けた文字列に応じて、前記拡張ユニットに記憶してある命令語及び関連情報か、前記ＣＰＵユニットに複写して記憶してある命令語及び関連情報か、いずれかを検索対象として選択する検索対象選択手段とを備えることを特徴とする。
【００１１】
また、第４発明に係るプログラム作成支援装置は、第１乃至第３発明のいずれか１つにおいて、前記制御プログラムにおいて用いられる命令語の使用率を算出する使用率算出手段と、算出した使用率に基づいて検索結果を分類する分類手段とを備えることを特徴とする。
【００１２】
また、第５発明に係るプログラム作成支援装置は、第４発明において、入力を受け付けた文字列を履歴情報として記憶する履歴情報記憶手段を備え、前記分類手段は、記憶してある前記履歴情報を優先して分類するようにしてあることを特徴とする。
【００１３】
また、第６発明に係るプログラム作成支援装置は、第１乃至第５発明のいずれか１つにおいて、文字列の入力を受け付けるインターバルを検出する入力インターバル検出手段と、検出したインターバルが一定時間を超えたか否かを判断する入力インターバル判断手段とを備え、該入力インターバル判断手段で一定時間を超えたと判断した場合、前記検索手段に検索を開始させるようにしてあることを特徴とする。
【００１４】
また、第７発明に係るプログラム作成支援装置は、第１乃至第６発明のいずれか１つにおいて、前記検索手段は、部分一致検索又はあいまい検索を行うようにしてあることを特徴とする。
【００１５】
次に、上記目的を達成するために第８発明に係るプログラム作成支援方法は、被制御機器の動作をシーケンシャル制御するプログラマブルコントローラにおいて実行される制御プログラムの作成を支援するプログラム作成支援装置で実行することが可能なプログラム作成支援方法において、前記プログラム作成支援装置は、前記被制御機器に接続してある拡張ユニット及びＣＰＵユニットで構成してあり、制御プログラムで用いる命令語と、該命令語に対応付けた、該命令語に関連する関連情報とをそれぞれ別個に、前記拡張ユニットの種類ごとに記憶し、前記拡張ユニットの種類の指定を受け付け、文字列の入力を受け付け、入力を受け付けた文字列の順序に応じて、前記命令語又は前記関連情報を検索対象として検索して選択候補を抽出し、抽出された選択候補を表示し、表示された選択候補の中から前記命令語又は前記関連情報の選択を受け付け、一の命令語が選択された後、文字列の入力を受け付けた場合、指定を受け付けた前記拡張ユニットの種類に対応した命令語及び関連情報を検索対象として、前記一の命令語に対応付けられた関連情報のみからなる選択候補を抽出することを特徴とする。
【００１６】
次に、上記目的を達成するために第９発明に係るコンピュータプログラムは、被制御機器の動作をシーケンシャル制御するプログラマブルコントローラにおいて実行される制御プログラムの作成を支援するプログラム作成支援装置で実行することが可能なコンピュータプログラムにおいて、前記プログラム作成支援装置は、前記被制御機器に接続してある拡張ユニット及びＣＰＵユニットで構成してあり、前記プログラム作成支援装置を、制御プログラムで用いる命令語を記憶する命令語記憶部と、命令語に関連する関連情報を該命令語に対応付けて記憶する関連情報記憶部とをそれぞれ別個に、前記拡張ユニットの種類ごとに有する記憶手段、前記拡張ユニットの種類の指定を受け付ける指定受付手段、文字列の入力を受け付ける入力受付手段、入力を受け付けた文字列の順序に応じて、前記命令語記憶部又は前記関連情報記憶部を検索対象として検索して選択候補を抽出する検索手段、該検索手段により抽出された選択候補を表示する表示手段、及び該表示手段に表示された選択候補の中から前記命令語又は前記関連情報の選択を受け付ける選択受付手段として機能させ、前記検索手段を、前記選択受付手段により一の命令語が選択された後、前記入力受付手段により文字列の入力を受け付けた場合、指定を受け付けた前記拡張ユニットの種類に対応した前記命令語記憶部又は前記関連情報記憶部を検索対象として、前記一の命令語に対応付けられた関連情報のみからなる選択候補を抽出する手段として機能させることを特徴とする。
【００２２】
第１発明、第８発明及び第９発明では、プログラム作成支援装置は、被制御機器に接続してある拡張ユニット及びＣＰＵユニットで構成してある。制御プログラムで用いる命令語と、命令語に関連する関連情報とを該命令語に対応付けてそれぞれ別個に、拡張ユニットの種類ごとに記憶しておく。拡張ユニットの種類の指定を受け付け、制御プログラムのコーディング作業時に文字列の入力を受け付け、入力を受け付けた文字列の順序に応じて、命令語又は関連情報を検索対象として検索して選択候補を抽出し、抽出された選択候補を表示し、表示された選択候補の中から命令語又は関連情報の選択を受け付ける。一の命令語が選択された後、文字列の入力を受け付けた場合、指定を受け付けた拡張ユニットの種類に対応した命令語及び関連情報を検索対象として、一の命令語に対応付けられた関連情報のみからなる選択候補を抽出する。これにより、入力を受け付けた文字列のうち、例えば一番目の文字列については命令語を検索対象として候補となる文字列を検索し、二番目以降の文字列については命令語の引数、文法情報等の関連情報を検索対象として候補となる文字列を検索し、検索結果から命令語又は関連情報それぞれの選択を受け付けることができ、制御プログラムの作成者が、正確に命令語に関する知識を有していない場合であっても、正しい命令語及び関連情報を正しい文法に従って記載することを支援することが可能となる。
【００２３】
また、拡張ユニットの種類ごとに命令語又は命令語の関連情報を記憶しておき、拡張ユニットの種類の指定を受け付けることにより、指定を受け付けた拡張ユニットの種類に対応した命令語又は関連情報を検索対象として検索して選択候補を抽出する。これにより、プログラマブルコントローラに接続した被制御機器の動作を制御する拡張ユニットの種類ごとに、対応する命令語又は関連情報を検索することができ、制御プログラムの作成者が、動作を制御する拡張ユニットごとに正確に命令語に関する知識を有していない場合であっても、正しい命令語及び関連情報を正しい文法に従って記載することを支援することが可能となる。
【００２５】
第２及び第３発明では、被制御機器に接続した拡張ユニットに記憶してある、拡張ユニットに固有の命令語及び関連情報を、ＣＰＵユニットに複写して記憶しておく。入力を受け付けた文字列に応じて、拡張ユニットに記憶してある命令語及び関連情報か、ＣＰＵユニットに複写して記憶してある命令語及び関連情報か、いずれかを検索対象として選択する。これにより、命令語の機能に応じて、被制御機器の動作を制御する拡張ユニットに記憶してある命令語及び関連情報を検索対象とするか、ＣＰＵユニットに複写して記憶してある命令語及び関連情報を検索対象とするかを選択することができ、検索処理をより高速に実行することが可能となる。
【００２６】
第４発明では、制御プログラムにおいて用いられる命令語の使用率を算出し、算出した使用率に基づいて検索結果を分類する。これにより、制御プログラム中で頻繁に用いられている命令語から順に検索結果を表示することができ、制御プログラムの作成者の命令語の使用頻度に即した制御プログラムの作成支援をすることが可能となる。
【００２７】
第５発明では、入力を受け付けた文字列を履歴情報として記憶しておき、記憶してある履歴情報を優先して分類することにより、検索結果として、過去に用いられた命令語及び関連情報を優先して表示することができ、制御プログラムの作成者の命令語及び関連情報の使用状況に即した制御プログラムの作成支援をすることが可能となる。
【００２８】
第６発明では、文字列の入力を受け付けるインターバルを検出し、検出したインターバルが一定時間を超えた場合に検索を開始させる。これにより、命令語等の入力を受け付けた後、一定時間以上経過した時点で検索することができ、制御プログラムの作成者が次に入力するべき文字列に迷った場合等に適切なタイミングで検索結果を表示することで、作成者の入力処理に即した制御プログラムの作成支援をすることが可能となる。
【００２９】
第７発明では、部分一致検索又はあいまい検索を行うことにより、入力を受け付けた文字列が誤った文字列である場合、一部しか文字列が明確ではない場合等であっても、確実な命令語及び関連情報を表示することが可能となる。
【発明の効果】
【００３０】
上記構成によれば、入力を受け付けた文字列のうち、例えば一番目の文字列については命令語を検索対象として候補となる文字列を検索し、二番目以降の文字列については命令語の引数、文法情報等の関連情報を検索対象として候補となる文字列を検索し、検索結果から命令語又は関連情報それぞれの選択を受け付けることができ、制御プログラムの作成者が、正確に命令語に関する知識を有していない場合であっても、正しい命令語及び関連情報を正しい文法に従って記載することを支援することが可能となる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施の形態１に係るプログラム作成支援装置により制御プログラムの作成支援対象となるプログラマブルコントローラの構成を示す模式図である。
【図２】本発明の実施の形態１に係るプログラム作成支援装置を、ＣＰＵ等の制御部を用いて構成した場合の構成を示すブロック図である。
【図３】本発明の実施の形態１に係るプログラム作成支援装置の機能を示す機能ブロック図である。
【図４】入力を受け付ける文字列の例示図である。
【図５】本発明の実施の形態１に係るプログラム作成支援装置の入力インターバル判断処理の手順を示すフローチャートである。
【図６】本発明の実施の形態１に係るプログラム作成支援装置の拡張ユニットの種類と命令語記憶部に相当する検索対象ファイルとの関係を示す例示図である。
【図７】本発明の実施の形態１に係るプログラム作成支援装置の候補文字列選択処理の手順を示すフローチャートである。
【図８】ラダー形式の制御プログラムにおいて、命令語をキー情報として検索された候補文字列が表示された画面の例示図である。
【図９】本発明の実施の形態１に係るプログラム作成支援装置の制御部の候補文字列の使用率に基づく分類処理の手順を示すフローチャートである。
【図１０】ラダー形式の制御プログラムにおいて、関連情報をキー情報として検索された候補文字列が表示された画面の例示図である。
【図１１】本発明の実施の形態２に係るプログラム作成支援装置の機能を示す機能ブロック図である。
【図１２】本発明の実施の形態２に係る命令語記憶部及び関連情報記憶部の複写処理を示す模式図である。
【発明を実施するための形態】
【００３２】
以下、本発明の実施の形態に係るプログラム作成支援装置について、図面に基づいて具体的に説明する。
【００３３】
（実施の形態１）
図１は、本発明の実施の形態１に係るプログラム作成支援装置により制御プログラムの作成支援対象となるプログラマブルコントローラの構成を示す模式図である。図１に示すように、プログラマブルコントローラ１は、ＣＰＵユニット２と、機能ごとに独立した複数の拡張ユニット３、３、・・・とで構成されている。拡張ユニット３ａ、３ｂ、・・・には、機能ごとに動作を制御する対象となる被制御機器５、５、・・・が接続してあり、ＣＰＵユニット２からの指令に従って各被制御機器５の動作を制御する。
【００３４】
ＣＰＵユニット２は、内蔵するメモリ２１に記憶してある制御プログラムに従って、接続してある拡張ユニット３ａ、３ｂ、・・・に対して指令を送出するＣＰＵを備えている。また、拡張ユニット３ａ、３ｂ、・・・は、ＣＰＵユニット２からの指令に従って、接続してある被制御機器５、５、・・・の動作を制御する。なお、被制御機器５、５、・・・の動作を制御するためのパラメータ情報等は、拡張ユニット３ａ、３ｂ、・・・が内蔵するメモリ３１ａ、３１ｂ、・・・に記憶してある。
【００３５】
プログラム作成支援装置４は、ＣＰＵユニット２とデータ通信することが可能に接続してあり、作成した制御プログラムをＣＰＵユニット２へ送信する。図２は、本発明の実施の形態１に係るプログラム作成支援装置４を、ＣＰＵ等の制御部を用いて構成した場合の構成を示すブロック図である。
【００３６】
図２に示すように本実施の形態１に係るプログラム作成支援装置４は、少なくとも制御部（ＣＰＵ）４１、メモリ４２、ハードディスク等の記憶装置４３、Ｉ／Ｏインタフェース４４、ビデオインタフェース４５、通信インタフェース４６、可搬型ディスクドライブ４７及び上述したハードウェアを接続する内部バス４８で構成されている。
【００３７】
制御部４１は、内部バス４８を介してプログラム作成支援装置４の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置４３に記憶しているコンピュータプログラム１００に従って、種々のソフトウェア的機能を実行する。メモリ４２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム１００の実行時にロードモジュールが展開され、コンピュータプログラム１００の実行時に発生する一時的なデータ等を記憶する。
【００３８】
記憶装置４３は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置４３に記憶しているコンピュータプログラム１００は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体９０から、可搬型ディスクドライブ４７によりダウンロードされ、実行時には記憶装置４３からメモリ４２へ展開して実行される。もちろん、通信インタフェース４６を介してネットワークに接続されている外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００３９】
また記憶装置４３は、命令語記憶部４３１及び関連情報記憶部４３２を備えている。命令語記憶部４３１は、拡張ユニット３ａ、３ｂ、・・・に接続してある被制御機器５、５、・・・の操作を指示する命令語（コマンド）を、被制御機器５、５、・・・が接続してある拡張ユニット３ａ、３ｂ、・・・に対応付けて記憶してある。したがって、制御プログラムの作成時に入力を受け付けた文字列をキー情報として命令語記憶部４３１を検索することにより、選択候補となる命令語を抽出することが可能となる。
【００４０】
関連情報記憶部４３２は、命令語に対応付けて、命令語に関連する関連情報を記憶する。記憶する関連情報とは、例えば命令語に対応した、命令語の文法に関する情報、構文に関する情報、引数に関する情報等、命令語を機能させるために必要な関連情報全般である。履歴情報記憶部４３３は、後述する入力受付部にて入力を受け付けた文字列の履歴を、履歴情報として記憶する。
【００４１】
Ｉ／Ｏインタフェース４４は、キーボード４４１、マウス４４２等の入力装置と接続され、データの入力を受け付ける。また、ビデオインタフェース４５は、ＣＲＴモニタ、ＬＣＤ等の表示装置４５１と接続され、所定の画像を表示する。
【００４２】
通信インタフェース４６は内部バス４８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信することが可能となっている。また、通信線を介してＣＰＵユニット２へデータ送受信することが可能となっている。
【００４３】
図３は、本発明の実施の形態１に係るプログラム作成支援装置４の機能を示す機能ブロック図である。図３において、入力受付部３０１は、キーボード４４１、マウス４４２等の入力装置を用いて、命令語を含む制御プログラムのソースコードの入力を受け付ける。図４は、入力を受け付ける文字列の例示図である。
【００４４】
本実施の形態１では、表示装置４５１の文字列入力領域４０１に文字列の入力を受け付ける。本実施の形態１では、制御プログラムはいわゆるラダー形式のプログラムであり、最初の文字列は命令語である。例えば図４（ａ）に示すように、文字列入力領域４０１に一の文字列「ＣＯＭＭＡＮＤ」の入力を受け付けた場合、プログラム作成支援装置４の制御部４１は、文字列「ＣＯＭＭＡＮＤ」が命令語に関する文字列であると判断する。
【００４５】
また、図４（ｂ）に示すように、文字列入力領域４０１に複数の文字列「ＣＯＭＭＡＮＤ  Ａ１  Ａ２・・・」の入力を受け付けた場合、プログラム作成支援装置４の制御部４１は、空白（スペース）の存在を検出し、最初の空白までの文字列「ＣＯＭＭＡＮＤ」が命令語に関する文字列であると判断する。また、空白により二番目の文字列「Ａ１」、三番目の文字列「Ａ２」、・・・というように順次文字列を特定することにより、それぞれの文字列が命令語の関連情報に関する文字列であることを順次判断することができる。
【００４６】
例えば図３に示すように入力位置判定部３１１は、入力を受け付けた文字列中の空白の存在を検出し、それぞれ何文字目から何文字目までが何番目の文字列であるのか位置を判定する。そして、文字列判定部３１２は、それぞれの位置における文字列がどの命令語、どの関連情報であるかを判定することにより、判定された命令語に関する文字列、関連情報に関する文字列を、それぞれ命令語記憶部４３１、関連情報記憶部４３２と照会するためのキー情報とすることができる。
【００４７】
もちろん、空白の存在を検出することにより、文字列の位置を判定する方法に限定されるものではなく、命令語の文法に応じて変更することができる。例えば図４（ｃ）に示すように、文字列入力領域４０１に文字列「ＣＯＭＭＡＮＤ（Ａ１、Ａ２、・・・）」の入力を受け付けた場合、プログラム作成支援装置４の制御部４１は、括弧を検出してから括弧で囲まれている範囲内でカンマを検出して文字列の位置を判定することになる。
【００４８】
また、文字列の入力の受付が終了したか否かを、入力を受け付けるインターバルで判断しても良い。図５は、本発明の実施の形態１に係るプログラム作成支援装置４の入力インターバル判断処理の手順を示すフローチャートである。
【００４９】
図５に示すように、プログラム作成支援装置４の制御部４１は、キーボード４４１のキーイン操作の監視を開始する（ステップＳ５０１）。制御部４１は、キーイン操作の開始を検知し（ステップＳ５０２）、同時に内蔵しているタイマ等を用いて計時を開始する（ステップＳ５０３）。
【００５０】
制御部４１は、一定時間経過したか否かを判断し（ステップＳ５０４）、制御部４１が、一定時間経過していないと判断した場合（ステップＳ５０４：ＮＯ）、制御部４１は、新たなキーイン操作を検知したか否かを判断する（ステップＳ５０５）。制御部４１が、新たなキーイン操作を検知したと判断した場合（ステップＳ５０５：ＹＥＳ）、制御部４１は、キーイン操作が継続していると判断し、計時をリセット（タイマをゼロリセット）し（ステップＳ５０６）、処理をステップＳ５０４へ戻す。
【００５１】
制御部４１が、新たなキーイン操作を検知していないと判断した場合（ステップＳ５０５：ＮＯ）、制御部４１は、処理をステップＳ５０４へ戻す。制御部４１が、一定時間経過したと判断した場合（ステップＳ５０４：ＹＥＳ）、制御部４１は、キーイン操作の終了を検知する（ステップＳ５０７）。すなわち、図３の機能ブロック図において、キーイン操作の開始から終了までのインターバルを検出する入力インターバル検出部３１３、及び検出したインターバルが一定時間を超えているか否かを判断する入力インターバル判断部３１４として機能する。
【００５２】
図３に戻って、検索部３０２は、入力を受け付けた文字列について、まず命令語をキー情報として命令語記憶部４３１を検索し、選択候補となる命令語を抽出して表示装置４５１に表示する。本実施の形態１では、最初の文字列が命令語であることから、最初の文字列をキー情報として命令語記憶部４３１を検索する。命令語記憶部４３１の検索は、完全一致検索であっても良いが、特にこれに限定されるものではなく、あいまい検索、部分一致検索であっても良いことは言うまでもない。
【００５３】
次に、命令語の次の文字列をキー情報として、関連情報記憶部４３２を検索し、選択候補となる関連情報を抽出して表示装置４５１に表示する。本実施の形態１では、最初の文字列が命令語であることから、二番目以降の文字列をキー情報とした場合には関連情報記憶部４３２を検索する。関連情報記憶部４３２の検索は、完全一致検索であっても良いが、特にこれに限定されるものではなく、あいまい検索、部分一致検索であっても良いことは言うまでもない。
【００５４】
なお、命令語の種類は、被制御機器５の種類ごと、すなわちＣＰＵユニット２に接続してある拡張ユニット３の種類ごとに特定される。したがって、被制御機器５の種類、すなわち被制御機器５の動作を制御する拡張ユニット３の種類に対応付けてそれぞれ別個に複数の命令語記憶部４３１、４３１、・・・及び関連情報記憶部４３２、４３２、・・・に記憶しておくことで、検索対象を事前に絞り込むことができ、検索処理負荷を軽減することができる。
【００５５】
例えば指定受付部３０６を別個に備えておき、制御プログラムで動作を制御する対象となる拡張ユニット３の種類の指定を受け付ける。もちろん、拡張ユニット３が動作を直接制御する被制御機器５の種類の指定を受け付けても良い。検索部３０２は、指定を受け付けた拡張ユニット３の種類に応じて、検索対象となる命令語記憶部４３１又は関連情報記憶部４３２を抽出する。検索部３０２は、抽出した命令語記憶部４３１又は関連情報記憶部４３２を検索対象として検索する。
【００５６】
図６は、本発明の実施の形態１に係るプログラム作成支援装置４の拡張ユニット３の種類と命令語記憶部４３１に相当する検索対象ファイルとの関係を示す例示図である。図６に示すように拡張ユニット３の種類と拡張ユニットＩＤとを対応付けて記憶してあり、拡張ユニットＩＤごとに検索対象となる検索対象ファイルが対応付けて記憶してある。このようなデータ構成としておくことにより、拡張ユニット３の種類の指定を受け付けた時点で、検索対象ファイルを特定することができる。もちろん、拡張ユニット３をＣＰＵユニット２に新たに接続した時点で、ＣＰＵユニット２が自動的にシステム構成を確認し、拡張ユニット３の種類に関する情報を自動的に取得しても良いことは言うまでもない。この場合、拡張ユニット３の種類の指定を受け付けることなく、検索対象ファイルを特定することが可能となる。
【００５７】
また、命令語記憶部４３１を検索対象とした場合に検索した命令語をキー情報として、関連情報記憶部４３２を検索することが好ましい。選択候補として抽出した命令語に対応する関連情報のみを検索することができるからである。
【００５８】
選択受付部３０３は、検索結果である候補文字列から命令語又は関連情報の選択を受け付ける。これにより、あいまいな記憶に依存して制御プログラムの作成作業を開始した場合であっても、本来コーディングするべき候補文字列を確実に表示及び選択することができる。
【００５９】
図７は、本発明の実施の形態１に係るプログラム作成支援装置４の候補文字列選択処理の手順を示すフローチャートである。図７に示すように、プログラム作成支援装置４の制御部４１は、文字列の入力を受け付け（ステップＳ７０１）、入力を受け付けた文字列を命令語と、その他の関連情報とに類別する（ステップＳ７０２）。両者を類別する方法は、図４に例示した方法と同様である。
【００６０】
また、関連情報とは、例えば命令語に対応した、命令語の意味、文法等を記述した説明文、制御プログラムの作成者がデバイス、変数等に付与したコメント、拡張ユニット３のメモリ空間情報、拡張ユニット３に固有の命令語及びその説明文、制御プログラム上で特定の意味を有する定数に関する情報（マジックナンバー）等である。したがって、制御プログラムの作成者が、ラダープログラムの文法に精通していない場合であっても、確実な候補文字列を表示することで、正しい候補文字列の選択を受け付けることができる。
【００６１】
制御部４１は、命令語をキー情報として命令語記憶部４３１を検索対象として検索し、候補文字列を抽出する（ステップＳ７０３）。図８は、ラダー形式の制御プログラムにおいて、命令語をキー情報として検索された候補文字列が表示された画面の例示図である。図８の例では、文字列入力領域８１にて入力を受け付けた文字列「バッファ」に対して、制御プログラムにおいて用いるべき命令語の候補文字列をプルダウンメニュー８２にて表示している。制御プログラムの作成者は、自分の求める作業に応じた命令語を容易に選択することができる。
【００６２】
図７に戻って、プログラム作成支援装置４の制御部４１は、抽出した候補文字列を所定のルールで分類（ソート）し（ステップＳ７０４）、候補文字列の選択を受け付ける（ステップＳ７０５）。候補文字列の分類のルールは特に限定されるものではないが、特定の命令語との関連度、半角／全角の区別、大文字／小文字の区別等に基づいてランク付けを実行し、ランクの降順に表示すれば良い。
【００６３】
また、作成している制御プログラム中での使用回数、使用頻度等に基づいてランク付けを実行しても良い。すなわち、図３の使用率算出部３０４が、制御プログラムにおいて用いられる命令語、あるいは関連情報の使用率を算出し、分類部３０５にて、算出した使用率に基づいて検索結果である候補文字列を使用率の降順に分類して表示する。
【００６４】
図９は、本発明の実施の形態１に係るプログラム作成支援装置４の制御部４１の候補文字列の使用率に基づく分類処理の手順を示すフローチャートである。図９において、プログラム作成支援装置４の制御部４１は、候補文字列ごとに制御プログラムにおける使用率を算出する（ステップＳ９０１）。使用率の算出方法は、特に限定されるものではないが、例えば候補文字列ごとに、候補文字列の使用回数に候補文字列のワード数を乗算した値を求め、制御プログラムのワード数で除算することにより使用率を算出する。
【００６５】
制御部４１は、算出した使用率の降順に候補文字列を分類して（ステップＳ９０２）、表示装置４５１に表示する。
【００６６】
また、候補文字列の分類に、過去に入力を受け付けた文字列に関する履歴情報を考慮しても良い。同じ制御プログラムの作成者であれば、同様の命令語を使用する可能性が高いからである。この場合、例えば図３に示す入力受付部３０１にて、入力を受け付けた文字列の履歴を履歴情報として履歴情報記憶部４３３に記憶しておき、分類部３０５が、記憶してある履歴情報を優先して分類すれば良い。
【００６７】
図７に戻って、プログラム作成支援装置４の制御部４１は、文字列が確定したか否かを判断する（ステップＳ７０６）。すなわち、全ての文字列について、候補文字列の選択を受け付けたか否かを判断する。制御部４１が、文字列が確定していないと判断した場合（ステップＳ７０６：ＮＯ）、制御部４１は、関連情報をキー情報として関連情報記憶部４３２を検索対象として検索し、候補文字列を抽出する（ステップＳ７０７）。
【００６８】
図１０は、ラダー形式の制御プログラムにおいて、関連情報をキー情報として検索された候補文字列が表示された画面の例示図である。図１０の例では、文字列入力領域１０１にて入力を受け付けた文字列「位置決め」に対して、デバイスとして用いるべき候補文字列をプルダウンメニュー１０２にて表示している。制御プログラムの作成者は、コーディング作業に対応したデバイスを容易に選択することができる。
【００６９】
図７に戻って、プログラム作成支援装置４の制御部４１は、抽出された候補文字列を所定のルールで分類（ソート）し（ステップＳ７０８）、候補文字列の選択を受け付け（ステップＳ７０９）、処理をステップＳ７０６へ戻す。候補文字列の分類のルールは特に限定されるものではないが、特定の命令語との関連度、半角／全角の区別、大文字／小文字の区別等に基づいてランク付けを実行し、ランクの降順に表示すれば良い。また、作成している制御プログラム中での使用回数、使用頻度等に基づいてランク付けを実行しても良い。
【００７０】
制御部４１が、文字列が確定したと判断した場合（ステップＳ７０６：ＹＥＳ）、すなわち、制御プログラムのプログラムコードが確定したと判断した場合、確定した文字列をプログラムコードとして記憶手段４３に記憶し（ステップＳ７１０）、次のコマンドのコーディング作業を続行する。
【００７１】
以上のように本実施の形態１によれば、入力を受け付けた文字列のうち、例えば一番目の文字列については命令語を検索対象として候補文字列を検索し、二番目以降の文字列については命令語の引数、文法情報等の関連情報を検索対象として候補文字列を検索し、それぞれ選択を受け付けることができ、制御プログラムの作成者が、正確に命令語に関する知識を有していない場合であっても、正しい命令語及び関連情報を正しい文法に従って記載することを支援することが可能となる。
【００７２】
なお、上述した実施の形態１では、プログラム作成支援装置４の記憶装置４３に命令語記憶部４３１及び関連情報記憶部４３２を備えているが、命令語記憶部４３１及び関連情報記憶部４３２は、プログラム作成支援装置４の制御部４１がネットワーク等を介して検索することが可能であればどこに備えていても良い。例えば作成した制御プログラムを記憶するＣＰＵユニット２の内蔵するメモリ２１内に備えても良いし、拡張ユニット３ａ、３ｂ、・・・の内蔵するメモリ３１ａ、３１ｂ、・・・内に備えても良い。
【００７３】
（実施の形態２）
本発明の実施の形態２に係るプログラム作成支援装置４により制御プログラムの作成支援の対象となるプログラマブルコントローラ１の構成、プログラム作成支援装置４の構成は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態２では、被制御機器５の動作を制御する拡張ユニット３及びＣＰＵユニット２に、それぞれ命令語及び関連情報を記憶しておき、どちらに記憶してある命令語及び関連情報を検索対象とするか選択する点で実施の形態１とは相違する。
【００７４】
図１１は、本発明の実施の形態２に係るプログラム作成支援装置４の機能を示す機能ブロック図である。図１１において、実施の形態１と同様の機能を有する機能ブロックについては、同一の符号を付することにより詳細な説明は省略する。
【００７５】
図１１に示すように、本発明の実施の形態２に係るプログラム作成支援装置４は、記憶装置４３に命令語記憶部４３１及び関連情報記憶部４３２を備えるのではなく、プログラマブルコントローラ１を構成するＣＰＵユニット２のメモリ２１及びＣＰＵユニット２に接続してある拡張ユニット３ａ、３ｂ、・・・のメモリ３１ａ、３１ｂ、・・・に命令語及び関連情報を記憶している。すなわちＣＰＵユニット２のメモリ２１は、拡張ユニット３ａ、３ｂ、・・・に接続してある被制御機器５、５、・・・の操作を指示する命令語（コマンド）を記憶してある命令語記憶部２２、及び命令語に関連する関連情報を記憶してある関連情報記憶部２３を備えている。同様に、拡張ユニット３ａ、３ｂ、・・・のメモリ３１ａ、３１ｂ、・・・は、各拡張ユニット３ａ、３ｂ、・・・に接続してある被制御機器５、５、・・・の操作を指示する命令語（コマンド）を記憶してある命令語記憶部３２ａ、３２ｂ、・・・、及び命令語に関連する関連情報を記憶してある関連情報記憶部３３ａ、３３ｂ、・・・を備えている。
【００７６】
情報複写部１１０１は、ＣＰＵユニット２に拡張ユニット３、３、・・・が新たに接続された時点で、拡張ユニット３に固有の命令語及び関連情報をＣＰＵユニット２へ複写する。具体的には、ＣＰＵユニット２に接続してある拡張ユニット３ａ、３ｂ、・・・のメモリ３１ａ、３１ｂ、・・・に備えている命令語記憶部３２ａ、３２ｂ、・・・、及び関連情報記憶部３３ａ、３３ｂ、・・・にそれぞれ記憶してある命令語及び関連情報を、ＣＰＵユニット２のメモリ２１の命令語記憶部２２及び関連情報記憶部２３に複写する。
【００７７】
入力受付部３０１の検索対象選択部１１０２は、入力を受け付けた命令語に応じて、拡張ユニット３ａ、３ｂ、・・・のメモリ３１ａ、３１ｂ、・・・に備えている命令語記憶部３２ａ、３２ｂ、・・・、及び関連情報記憶部３３ａ、３３ｂ、・・・を検索対象とするか、ＣＰＵユニット２のメモリ２１の命令語記憶部２２及び関連情報記憶部２３を検索対象とするかを選択する。すなわち、命令語によっては拡張ユニット３に固有の命令語及び関連情報のみを検索対象とすれば足り、ＣＰＵユニット２のメモリ２１の命令語記憶部２２及び関連情報記憶部２３を検索対象とすることなく、直接対応する拡張ユニット３ａ、３ｂ、・・・のメモリ３１ａ、３１ｂ、・・・に備えている命令語記憶部３２ａ、３２ｂ、・・・、及び関連情報記憶部３３ａ、３３ｂ、・・・にそれぞれ記憶してある命令語及び関連情報を検索対象とすることにより、より検索処理負荷を軽減することができ、検索レスポンスの向上を図ることが可能となる。
【００７８】
図１２は、本発明の実施の形態２に係る命令語記憶部２２及び関連情報記憶部２３の複写処理を示す模式図である。図１２に示すように、ＣＰＵユニット２に複数の拡張ユニット３ａ、３ｂ、・・・が接続してある場合、拡張ユニット３ａのメモリ３１ａに記憶してある命令語及び関連情報、拡張ユニット３ｂのメモリ３１ｂに記憶してある命令語及び関連情報等を、ＣＰＵユニット２のメモリ２１へ複写する。このようにすることで、プログラム作成支援装置４の制御部４１は、入力を受け付けた文字列をキー情報として、拡張ユニット３ａ、３ｂ、・・・のメモリ３１ａ、３１ｂ、・・・を直接検索することも、ＣＰＵユニット２のメモリ２１を検索することもできる。
【００７９】
例えば入力を受け付けた文字列が命令語「ＬＤ」であった場合、命令語「ＬＤ」は拡張ユニット３に固有の命令語ではないことから、制御部４１は、ＣＰＵユニット２のメモリ２１を検索対象として選択する。一方、入力を受け付けた文字列が命令語「Ｕ＿ＷＲＭＤ」であった場合、命令語「Ｕ＿ＷＲＭＤ」は拡張ユニット３に固有の命令語であるので、制御部４１は、命令語「Ｕ＿ＷＲＭＤ」及び命令語「Ｕ＿ＷＲＭＤ」の関連情報が記憶してある拡張ユニット３ａ（３ｂ）のメモリユニット３１ａ（３１ｂ）を検索対象として選択する。
【００８０】
以上のように本実施の形態２によれば、入力を受け付けた文字列に応じて、被制御機器５の動作を制御する拡張ユニット３に記憶してある命令語及び関連情報を検索対象とするか、ＣＰＵユニット２に複写して記憶してある拡張ユニット３に固有の命令語及び関連情報を検索対象とするかを選択することができ、検索処理負荷を軽減してより高速に検索することが可能となる。
【００８１】
なお、本発明は上記実施の形態１及び２に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変形、置換等が可能であることは言うまでもない。例えば、命令語及び関連情報を、プログラム作成支援装置４の記憶装置４３に集約して記憶しておくことに限定されず、ＣＰＵユニット２、拡張ユニット３、３、・・・に記憶してある命令語及び関連情報をネットワーク上の仮想ディスクに記憶しておいても良い。
【符号の説明】
【００８２】
１  プログラマブルコントローラ
２  ＣＰＵユニット
３、３ａ、３ｂ  拡張ユニット
４  プログラム作成支援装置
５  被制御機器
２１、３１ａ、３１ｂ  メモリ
４１  制御部
４２  メモリ
４３  記憶装置
４４  Ｉ／Ｏインタフェース
４５  ビデオインタフェース
４６  通信インタフェース
４７  可搬型ディスクドライブ
４３１  命令語記憶部
４３２  関連情報記憶部
４３３  履歴情報記憶部
【図１】
0005500896.tif 000002
【図２】
0005500896.tif 000003
【図３】
0005500896.tif 000004
【図４】
0005500896.tif 000005
【図５】
0005500896.tif 000006
【図６】
0005500896.tif 000007
【図７】
0005500896.tif 000008
【図８】
0005500896.tif 000009
【図９】
0005500896.tif 000010
【図１０】
0005500896.tif 000011
【図１１】
0005500896.tif 000012
【図１２】
0005500896.tif 000013