(57)【要約】【課題】データーベースへの収集データの追加時に発生した異常の原因を突き止めるためにユーザを支援するための技術を提供する。【解決手段】コントローラまたは情報処理装置は、ＳＱＬ文と、各ＳＱＬ文の実行結果とを対応付けてログデータとして格納する記憶装置を備える。情報処理装置は、表示部と、ログデータに含まれるＳＱＬ文の内、実行結果が異常である修正対象のＳＱＬ文を表示部に表示する表示制御部と、修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付ける操作部とを備える。表示制御部は、修正後のＳＱＬ文の実行結果を表示部に表示する。【選択図】図１
2020149520.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するコントローラと通信可能に構成されている情報処理装置であって、
前記コントローラまたは前記情報処理装置は、前記制御対象に関するデータをデーターベースに挿入するために実行された１つ以上のＳＱＬ文と、当該１つ以上のＳＱＬ文の各々の実行結果とを対応付けてログデータとして格納するための記憶装置を備え、
前記情報処理装置は、
表示部と、
前記ログデータに含まれるＳＱＬ文の内、実行結果が異常であることを示す修正対象のＳＱＬ文を前記表示部に表示するための表示制御部と、
前記修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付けるための操作部と、
前記操作部が前記実行操作を受け付けたことに基づいて、前記修正後のＳＱＬ文の実行命令を前記コントローラに送信するとともに、前記修正後のＳＱＬ文の実行結果を前記コントローラから受信するための通信部とを備え、
前記表示制御部は、前記修正後のＳＱＬ文の実行結果を前記表示部に表示する、制御システム。
【請求項２】
前記操作部は、前記ログデータに含まれるＳＱＬ文の内から、実行結果が正常であることを示す比較対象のＳＱＬ文を選択する操作をさらに受け付けるように構成されており、
前記表示制御部は、前記修正対象のＳＱＬ文によって前記データーベースに挿入されたデータと、前記比較対象のＳＱＬ文によって前記データーベースに挿入されたデータとを並べて表示する、請求項１に記載の制御システム。
【請求項３】
前記表示制御部は、前記修正対象のＳＱＬ文によって前記データーベースに挿入された各データと前記比較対象のＳＱＬ文によって前記データーベースに挿入された各データとのデータの組み合わせの内、予め定められた比較条件を満たすデータの組み合わせを他のデータの組み合わせとは異なる表示態様で表示する、請求項２に記載の制御システム。
【請求項４】
前記予め定められた比較条件は、組み合わせのデータ間で桁数が異なる場合に満たされる、請求項３に記載の制御システム。
【請求項５】
前記表示制御部は、前記ログデータに含まれるＳＱＬ文の内の、前記修正対象のＳＱＬ文の一部と一致するＳＱＬ文を、前記比較対象のＳＱＬ文の候補として前記表示部に表示し、
前記操作部は、前記比較対象のＳＱＬ文の選択操作を前記候補の内から受け付ける、請求項２〜４のいずれか１項に記載の制御システム。
【請求項６】
前記表示制御部は、前記ログデータに含まれるＳＱＬ文の内の、前記修正対象のＳＱＬ文に規定されるテーブル名と一致するＳＱＬ文を前記候補として前記表示部に表示する、請求項５に記載の制御システム。
【請求項７】
制御対象を制御するコントローラと通信可能に構成されている情報処理装置の制御方法であって、
前記コントローラまたは前記情報処理装置は、前記制御対象に関するデータをデーターベースに挿入するために実行された１つ以上のＳＱＬ文と、当該１つ以上のＳＱＬ文の各々の実行結果とを対応付けてログデータとして格納するための記憶装置を備え、
前記制御方法は、
前記ログデータに含まれるＳＱＬ文の内、実行結果が異常であることを示す修正対象のＳＱＬ文を表示部に表示するステップと、
前記修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付けるステップと、
前記実行操作を受け付けたことに基づいて、前記修正後のＳＱＬ文の実行命令を前記コントローラに送信するとともに、前記修正後のＳＱＬ文の実行結果を前記コントローラから受信するステップと、
前記修正後のＳＱＬ文の実行結果を前記表示部に表示するステップとを備える、制御方法。
【請求項８】
制御対象を制御するコントローラと通信可能に構成されている情報処理装置の制御プログラムであって、
前記コントローラまたは前記情報処理装置は、前記制御対象に関するデータをデーターベースに挿入するために実行された１つ以上のＳＱＬ文と、当該１つ以上のＳＱＬ文の各々の実行結果とを対応付けてログデータとして格納するための記憶装置を備え、
前記制御プログラムは、前記情報処理装置に、
前記ログデータに含まれるＳＱＬ文の内、実行結果が異常であることを示す修正対象のＳＱＬ文を表示部に表示するステップと、
前記修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付けるステップと、
前記実行操作を受け付けたことに基づいて、前記修正後のＳＱＬ文の実行命令を前記コントローラに送信するとともに、前記修正後のＳＱＬ文の実行結果を前記コントローラから受信するステップと、
前記修正後のＳＱＬ文の実行結果を前記表示部に表示するステップとを実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コントローラによってアクセスされるデーターベース上にテーブルを生成するための技術に関する。
【背景技術】
【０００２】
様々な生産現場において、生産工程を自動化するＦＡ（Factory  Automation）システムが普及している。ＦＡシステムは、入力機器、駆動機器、およびコントローラなどで構成される。コントローラは、入力機器である各種のセンサからの入力に応じて、駆動機器を制御する。駆動機器は、たとえば、ワークを移動するための移動テーブルや、ワークを搬送するためのコンベアや、予め定められた目的の場所までワーク移動するためのアームロボットなどを含む。
【０００３】
近年、外部機器のデーターベースにアクセスすることができるコントローラが普及している。このようなコントローラに関し、特開２０１６−１９４８０８号公報（特許文献１）は、「ＳＱＬの記述なしにデーターベースを操作する技術において、簡易な仕組みで、複数のレコードをまとめて操作する」ことができるコントローラを開示している。国際公開第２０１４／１８４９６２号（特許文献２）は、「データーベースからデータを読出す際に、従来に比してデーターベースからの読出しの工程数を少なくすることができる」コントローラを開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−２４１３４号公報
【特許文献２】国際公開第２０１４／１８４９６２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
駆動機器などの制御対象に関するデータがコントローラによって収集され、収集されたデータがデーターベースに順次追加される。このとき、収集データが何らかの異常によりデーターベースに追加されないケースがある。この場合、ユーザは、異常の原因を突き止め、ＳＱＬ文や設定などを修正する必要がある。このような異常は、様々な要因により発生し、異常の種類によっては、原因を突き止めることが非常に困難となる。したがって、データーベースへの収集データの追加時に発生した異常の原因を突き止めるためにユーザを支援するための技術が望まれている。
【課題を解決するための手段】
【０００６】
本開示の一例では、制御対象を制御するコントローラと通信可能に構成されている情報処理装置が提供される。上記コントローラまたは上記情報処理装置は、上記制御対象に関するデータをデーターベースに挿入するために実行された１つ以上のＳＱＬ文と、当該１つ以上のＳＱＬ文の各々の実行結果とを対応付けてログデータとして格納するための記憶装置を備える。上記情報処理装置は、表示部と、上記ログデータに含まれるＳＱＬ文の内、実行結果が異常であることを示す修正対象のＳＱＬ文を上記表示部に表示するための表示制御部と、上記修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付けるための操作部と、上記操作部が上記実行操作を受け付けたことに基づいて、上記修正後のＳＱＬ文の実行命令を上記コントローラに送信するとともに、上記修正後のＳＱＬ文の実行結果を上記コントローラから受信するための通信部とを備える。上記表示制御部は、上記修正後のＳＱＬ文の実行結果を上記表示部に表示する。
【０００７】
本開示の一例では、上記操作部は、上記ログデータに含まれるＳＱＬ文の内から、実行結果が正常であることを示す比較対象のＳＱＬ文を選択する操作をさらに受け付けるように構成されている。上記表示制御部は、上記修正対象のＳＱＬ文によって上記データーベースに挿入されたデータと、上記比較対象のＳＱＬ文によって上記データーベースに挿入されたデータとを並べて表示する。
【０００８】
本開示の一例では、上記表示制御部は、上記修正対象のＳＱＬ文によって上記データーベースに挿入された各データと上記比較対象のＳＱＬ文によって上記データーベースに挿入された各データとのデータの組み合わせの内、予め定められた比較条件を満たすデータの組み合わせを他のデータの組み合わせとは異なる表示態様で表示する。
【０００９】
本開示の一例では、上記予め定められた比較条件は、組み合わせのデータ間で桁数が異なる場合に満たされる。
【００１０】
本開示の一例では、上記表示制御部は、上記ログデータに含まれるＳＱＬ文の内の、上記修正対象のＳＱＬ文の一部と一致するＳＱＬ文を、上記比較対象のＳＱＬ文の候補として上記表示部に表示する。上記操作部は、上記比較対象のＳＱＬ文の選択操作を上記候補の内から受け付ける。
【００１１】
本開示の一例では、上記表示制御部は、上記ログデータに含まれるＳＱＬ文の内の、上記修正対象のＳＱＬ文に規定されるテーブル名と一致するＳＱＬ文を上記候補として上記表示部に表示する。
【００１２】
本開示の他の例では、制御対象を制御するコントローラと通信可能に構成されている情報処理装置の制御方法が提供される。上記コントローラまたは上記情報処理装置は、上記制御対象に関するデータをデーターベースに挿入するために実行された１つ以上のＳＱＬ文と、当該１つ以上のＳＱＬ文の各々の実行結果とを対応付けてログデータとして格納するための記憶装置を備える。上記制御方法は、上記ログデータに含まれるＳＱＬ文の内、実行結果が異常であることを示す修正対象のＳＱＬ文を表示部に表示するステップと、上記修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付けるステップと、上記実行操作を受け付けたことに基づいて、上記修正後のＳＱＬ文の実行命令を上記コントローラに送信するとともに、上記修正後のＳＱＬ文の実行結果を上記コントローラから受信するステップと、上記修正後のＳＱＬ文の実行結果を上記表示部に表示するステップとを備える。
【００１３】
本開示の他の例では、制御対象を制御するコントローラと通信可能に構成されている情報処理装置の制御プログラムが提供される。上記コントローラまたは上記情報処理装置は、上記制御対象に関するデータをデーターベースに挿入するために実行された１つ以上のＳＱＬ文と、当該１つ以上のＳＱＬ文の各々の実行結果とを対応付けてログデータとして格納するための記憶装置を備える。上記制御プログラムは、上記情報処理装置に、上記ログデータに含まれるＳＱＬ文の内、実行結果が異常であることを示す修正対象のＳＱＬ文を表示部に表示するステップと、上記修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付けるステップと、上記実行操作を受け付けたことに基づいて、上記修正後のＳＱＬ文の実行命令を上記コントローラに送信するとともに、上記修正後のＳＱＬ文の実行結果を上記コントローラから受信するステップと、上記修正後のＳＱＬ文の実行結果を上記表示部に表示するステップとを実行させる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態に従う制御システムの構成例を示す図である。
【図２】実施の形態に従う情報処理装置のハードウェア構成を示す模式図である。
【図３】実施の形態に従うコントローラのハードウェア構成を示す模式図である。
【図４】実施の形態に従う外部機器のハードウェア構成を示すブロック図である。
【図５】情報処理装置とコントローラと駆動機器と外部機器との間における通常時のシーケンスフローを示す図である。
【図６】開発ツールが提供するプログラム設計画面を示す図である。
【図７】設定情報の一例を示す図である。
【図８】情報処理装置とコントローラと駆動機器と外部機器との間におけるデバッグ時のシーケンスフローを示す図である。
【図９】異常ログの選択画面を示す図である。
【図１０】図８に示されるステップＳ８４における編集画面を示す図である。
【図１１】図８に示されるステップＳ８６における編集画面を示す図である。
【図１２】図８に示されるステップＳ９０における編集画面を示す図である。
【図１３】正常ログの選択画面を示す図である。
【図１４】選択されたＳＱＬ文の編集画面を示す図である。
【図１５】変形例に従う編集画面を示す図である。
【図１６】変形例に従う選択画面を示す図である。
【図１７】実施の形態に従う情報処理装置が実行する処理の一部を表わすフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００１６】
＜Ａ．適用例＞
図１を参照して、本発明の適用例について説明する。図１は、実施の形態に従う制御システム１０の構成例を示す図である。
【００１７】
制御システム１０は、生産工程を自動化するためのＦＡシステムである。図１の例では、制御システム１０は、１つ以上の情報処理装置１００と、１つ以上のコントローラ２００と、１つ以上の駆動機器３００と、１つ以上の外部機器４００とで構成されている。
【００１８】
情報処理装置１００、コントローラ２００、および外部機器４００は、ネットワークＮＷ１に接続される。ネットワークＮＷ１には、ＥｔｈｅｒＮＥＴやＯＰＣ−ＵＡ（Object Linking and Embedding for Process Control Unified Architecture）などが採用される。ＯＰＣ−ＵＡは、ベンダーやＯＳ（Operating System）の種類などに依存することなくデータ交換を実現するために定められた通信の標準規格である。
【００１９】
コントローラ２００および駆動機器３００は、ネットワークＮＷ２に接続される。ネットワークＮＷ２には、データの到達時間が保証される、定周期通信を行うフィールドネットワークを採用することが好ましい。このような定周期通信を行うフィールドネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００２０】
情報処理装置１００は、たとえば、ノート型またはデスクトップ型のＰＣ（Personal Computer）、タブレット端末、スマートフォン、または、その他の情報処理端末である。情報処理装置１００は、ハードウェア構成として、制御装置１０２と、操作部１１５と、表示部１２１とを含む。
【００２１】
コントローラ２００は、たとえば、ＰＬＣ（Programmable Logic Controller）である。コントローラ２００は、予め設計されたユーザプログラムに従って、駆動機器３００を制御する。駆動機器３００は、生産工程を自動化するための種々の産業用機器を含む。一例として、駆動機器３００は、ロボットコントローラや、サーボドライバや、ロボットコントローラに制御されるアームロボットや、サーボドライバによって制御されるサーボモータなどを含む。また、駆動機器３００は、ワークを撮影するための視覚センサや、生産工程で利用されるその他の機器などを含んでもよい。
【００２２】
コントローラ２００は、ユーザプログラムの実行中において、制御対象である駆動機器３００の状態を表わす各種のデータを収集し、当該収集データを、外部機器４００のデーターベース４３０に定期的に追加する。あるいは、当該収集データは、制御への入力があったタイミングや駆動が完了したタイミングなどの予め定められたタイミングでデーターベース４３０に追加される。外部機器４００のデーターベース４３０は、予め生成されている１つ以上のテーブル４３２で構成される。テーブル４３２は、列を示すカラムと、行を示すレコードとで構成される。収集データは、ＳＱＬ文で指定されたテーブル４３２に追加される。
【００２３】
コントローラ２００は、データーベース４３０への収集データの追加結果をログデータ２１４として記憶装置２０８に記憶する。ログデータ２１４には、収集データをデーターベース４３０に挿入するために実行されたＳＱＬ文の各々について、ＳＱＬ文の実行結果が対応付けられている。一例として、ＳＱＬ文が正常に実行された場合には、正常を示す実行結果「ＯＫ」が、実行されたＳＱＬ文とともにログデータ２１４に書き込まれる。一方で、ＳＱＬ文が正常に実行されなかった場合には、異常を示す実行結果「ＮＧ」が、実行されたＳＱＬ文とともにログデータ２１４に書き込まれる。好ましくは、エラーコードがさらにログデータ２１４に書き込まれる。エラーコードは、たとえば、接続エラーを示すエラーコードや、文字列データの右側が切り捨てられたことを示すエラーコードや、数値が範囲外であることを示すエラーコードや、日時書式が無効であることを示すエラーコードなどを含む。
【００２４】
ユーザは、ログデータ２１４において異常が発生している場合には、異常発生の原因を突き止め、ＳＱＬ文や設定などを修正する必要がある。このような異常は、様々な要因により発生し、異常の種類によっては、原因を突き止めることが非常に困難となる。そこで、情報処理装置１００は、データーベース４３０への収集データの追加時に発生した異常の原因を突き止めるためにユーザを支援する。このことを実現するための機能構成の一例として、制御装置１０２は、通信部１５２と、表示制御部１５４とを含む。
【００２５】
通信部１５２は、コントローラ２００との通信を実現するための通信ドライバである。通信部１５２は、コントローラ２００からログデータ２１４を受信する。受信したログデータ２１４は、表示制御部１５４に出力される。
【００２６】
表示制御部１５４は、表示部１２１の表示内容を制御するための機能モジュールである。図１の例では、表示制御部１５４は、ＳＱＬ文の編集画面５０を表示部１２１に表示している。
【００２７】
編集画面５０は、ＳＱＬ文の編集欄５１と、レコード情報表示欄５５と、送信ボタン５６と、結果表示欄５８とを含む。
【００２８】
表示制御部１５４は、ログデータ２１４に含まれるＳＱＬ文の内、実行結果が異常であることを示すＳＱＬ文５２を編集欄５１に表示する。また、表示制御部１５４は、ＳＱＬ文５２によって挿入が失敗したデータの詳細をレコード情報表示欄５５に表示する。レコード情報表示欄５５に表示される内容は、データの挿入先のテーブル名と、当該テーブルを構成する各カラムの名前と、挿入が失敗したデータの値とを含む。
【００２９】
操作部１１５は、情報処理装置１００に対する各種のユーザ操作を受け付ける。一例として、操作部１１５は、編集欄５１に表示されるＳＱＬ文５２に対する修正操作を受け付ける。また、操作部１１５は、修正後のＳＱＬ文５２の実行操作を受け付ける。実行操作は、たとえば、編集画面５０の送信ボタン５６が押下されたことに基づいて受け付けられる。
【００３０】
通信部１５２は、操作部１１５が実行操作を受け付けたことに基づいて、修正後のＳＱＬ文５２と、修正後のＳＱＬ文５２の実行命令とをコントローラ２００に送信する。コントローラ２００は、修正後のＳＱＬ文５２と実行命令とを情報処理装置１００から受信したことに基づいて、修正後のＳＱＬ文５２を外部機器４００に実行させる。その後、コントローラ２００は、修正後のＳＱＬ文５２の実行結果を情報処理装置１００に送信する。情報処理装置１００の通信部１５２は、コントローラ２００から実行結果を受信したことに基づいて、当該実行結果を表示制御部１５４に出力する。そして、表示制御部１５４は、通信部１５２から受けた実行結果を表示部１２１に表示する。図１の例では、編集画面５０の結果表示欄５８において、修正後のＳＱＬ文５２の実行結果が示されている。
【００３１】
以上のように、情報処理装置１００は、ログデータ２１４に含まれるＳＱＬ文の内、実行結果が異常であることを示すＳＱＬ文５２を修正対象として表示部１２１に表示する。そして、情報処理装置１００は、表示されたＳＱＬ文５２に対する修正操作と、修正後のＳＱＬ文５２に対するテスト実行操作とを受け付ける。このようなデバッグ環境が提供されることで、ユーザは、データーベースへの収集データの追加時に発生した異常の原因を容易に突き止めることができ、突き止めた原因に応じてＳＱＬ文や設定を修正することができる。
【００３２】
なお、図１の例では、データーベース４３０が外部機器４００に存在する例について説明を行ったが、データーベース４３０は、必ずしも、外部機器４００に存在する必要はない。たとえば、データーベース４３０は、コントローラ２００の内部に存在していてもよい。あるいは、データーベース４３０は、コントローラ２００の内部バスに繋がれた別ユニットの内部に存在していてもよい。
【００３３】
また、データーベースへの書き込み機能と、ログ格納機能とは、コントローラ２００の付属ユニット上に実装されてもよい。また、ログデータ２１４は、コントローラ２００ではなく、情報処理装置１００に格納されていてもよい。
【００３４】
＜Ｂ．ハードウェア構成＞
図２〜図４を参照して、情報処理装置１００、コントローラ２００、および外部機器４００のハードウェア構成について順に説明する。
【００３５】
（Ｂ１．情報処理装置１００のハードウェア構成）
まず、図２を参照して、情報処理装置１００のハードウェア構成について説明する。図２は、情報処理装置１００のハードウェア構成を示す模式図である。
【００３６】
情報処理装置１００は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。情報処理装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などの制御装置１０２と、主メモリ１０４と、不揮発性の記憶装置１１０と、通信インターフェイス１１１と、Ｉ／Ｏ（Input/Output）インターフェイス１１４と、表示インターフェイス１２０とを含む。これらのコンポーネントは、内部バス１２５を介して互いに通信可能に接続されている。
【００３７】
制御装置１０２は、開発支援プログラム１１０Ａなどの各種の制御プログラムを実行することで情報処理装置１００の動作を制御する。開発支援プログラム１１０Ａは、コントローラ２００の制御プログラム（ユーザプログラム）を開発するための環境を提供するプログラムである。制御装置１０２は、開発支援プログラム１１０Ａなどの各種制御プログラムの実行命令を受け付けたことに基づいて、実行対象の制御プログラムを記憶装置１１０から主メモリ１０４に読み出す。
【００３８】
通信インターフェイス１１１は、他の通信機器との間でネットワークを介してデータを遣り取りする。当該他の通信機器は、たとえば、コントローラ２００、外部機器４００、サーバなどを含む。情報処理装置１００は、通信インターフェイス１１１を介して、当該他の通信機器から、開発支援プログラム１１０Ａなどの各種制御プログラムをダウンロード可能なように構成されてもよい。
【００３９】
Ｉ／Ｏインターフェイス１１４は、操作部１１５に接続され、操作部１１５からのユーザ操作を示す信号を取り込む。操作部１１５は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。なお、図２の例では、情報処理装置１００および操作部１１５が別体として示されているが、情報処理装置１００および操作部１１５は、一体的に構成されてもよい。
【００４０】
表示インターフェイス１２０は、表示部１２１と接続され、制御装置１０２などからの指令に従って、表示部１２１に対して、画像を表示するための画像信号を送出する。表示部１２１は、たとえば、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）であり、ユーザに対して各種情報を提示する。表示部１２１には、開発支援プログラム１１０Ａによって提供される各種画面が表示され得る。なお、図２の例では、情報処理装置１００および表示部１２１が別体として示されているが、情報処理装置１００および表示部１２１は、一体的に構成されてもよい。
【００４１】
（Ｂ２．コントローラ２００のハードウェア構成）
次に、図３を参照して、コントローラ２００のハードウェア構成について説明する。図３は、コントローラ２００のハードウェア構成を示す模式図である。
【００４２】
コントローラ２００は、通信インターフェイス２０１と、ＣＰＵやＭＰＵなどの制御装置２０２と、チップセット２０４と、主メモリ２０６と、不揮発性の記憶装置２０８と、内部バスコントローラ２２２と、フィールドバスコントローラ２２４と、メモリカードインターフェイス２３９とを含む。
【００４３】
制御装置２０２は、記憶装置２０８に格納された制御プログラム２１１を読み出して、主メモリ２０６に展開して実行することで、各種の駆動機器３００に対する制御を実現する。制御プログラム２１１は、コントローラ２００を制御するための各種プログラムを含む。一例として、制御プログラム２１１は、システムプログラム２０９およびユーザプログラム２１０などを含む。システムプログラム２０９は、データの入出力処理や実行タイミング制御などの、コントローラ２００の基本的な機能を提供するための命令コードを含む。ユーザプログラム２１０は、情報処理装置１００からダウンロードされたものである。ユーザプログラム２１０は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム２１０Ａおよびモーション制御を実行するためのモーションプログラム２１０Ｂとを含む。
【００４４】
チップセット２０４は、各コンポーネントを制御することで、コントローラ２００全体としての処理を実現する。
【００４５】
記憶装置２０８は、制御プログラム２１１の他にも種々のデータを格納する。一例として、記憶装置２０８は、ユーザプログラム２１０上でのデータ型とデーターベース４３０上でのデータ型との対応関係を規定した設定情報２１２と、上述のログデータ２１４（図１参照）とを格納する。設定情報２１２の詳細については後述する。ログデータ２１４は、異常ログ２１５と、正常ログ２１６とを含む。
【００４６】
内部バスコントローラ２２２は、コントローラ２００と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、Ｉ／Ｏユニット２２６が接続されている。
【００４７】
フィールドバスコントローラ２２４は、コントローラ２００とフィールドバスを通じて連結される各種の駆動機器３００とデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ３００Ａ，３００Ｂが接続されている。他にも、ロボットコントローラや視覚センサなどの駆動機器が接続されてもよい。
【００４８】
内部バスコントローラ２２２およびフィールドバスコントローラ２２４は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータを取得することができる。また、内部バスコントローラ２２２および／またはフィールドバスコントローラ２２４は、ロボットコントローラやサーボドライバとの間でデータを遣り取りするためのインターフェイスとしても機能する。
【００４９】
通信インターフェイス２０１は、各種の有線／無線ネットワークを通じたデータの遣り取りを制御する。コントローラ２００は、通信インターフェイス２０１を介して、情報処理装置１００や外部機器４００と通信を行う。また、コントローラ２００は、通信インターフェイス２０１を介して、外部機器４００上のデーターベース４３０にアクセスすることができる。
【００５０】
メモリカードインターフェイス２３９は、外部記憶媒体の一例であるメモリカード２４０（たとえば、ＳＤカード）を着脱可能に構成されており、メモリカード２４０に対してデータを書き込み、メモリカード２４０からデータを読出すことが可能になっている。
【００５１】
（Ｂ３．外部機器４００のハードウェア構成）
次に、図４を参照して、外部機器４００のハードウェア構成について説明する。図４は、外部機器４００のハードウェア構成を示すブロック図である。
【００５２】
外部機器４００は、汎用的なアーキテクチャを有するハードウェア構成を有している。すなわち、外部機器４００は、一種のパーソナルコンピュータとして実装される。但し、外部機器４００を汎用的なハードウェアではなく、専用ハードウェアを用いて実装してもよい。
【００５３】
より具体的には、外部機器４００は、ＣＰＵやＭＰＵなどの制御装置４０２と、主メモリ４０４と、不揮発性の記憶装置４１０と、通信インターフェイス４１２と、Ｉ／Ｏインターフェイス４１４と、表示インターフェイス４２０とを含む。これらのコンポーネントは、内部バス４２５を介して、互いにデータ通信可能に接続されている。
【００５４】
制御装置４０２は、記憶装置４１０に格納された制御プログラム（図示しない）を読み出して、主メモリ４０４に展開して実行することで、外部機器４００を制御する。すなわち、制御装置４０２は、主メモリ４０４および記憶装置４１０と連係することで、制御演算を実行する制御部を実現する。
【００５５】
通信インターフェイス４１２、Ｉ／Ｏインターフェイス４１４、および、フィールドバスインターフェイス４１６は、外部機器４００と他の通信機器とのデータの遣り取りを仲介する。
【００５６】
より具体的には、通信インターフェイス４１２は、ネットワークＮＷ１（図１参照）などを介した、コントローラ２００との通信を仲介する。通信インターフェイス４１２には、たとえば、ＥｔｈｅｒＮＥＴに従う通信が可能なコンポーネントが採用され得る。
【００５７】
Ｉ／Ｏインターフェイス４１４は、操作部４１５に接続され、操作部４１５からのユーザ操作を示す信号を取り込む。操作部４１５は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。なお、図４の例では、外部機器４００および操作部４１５が別体として示されているが、外部機器４００および操作部４１５は、一体的に構成されてもよい。
【００５８】
表示インターフェイス４２０は、表示部４２１と接続され、制御装置４０２などからの指令に従って、表示部４２１に対して、画像を表示するための画像信号を送出する。表示部４２１は、ＬＣＤや有機ＥＬディスプレイなどからなり、ユーザに対して各種情報を提示する。なお、図４の例では、外部機器４００および表示部４２１が別体として示されているが、外部機器４００および表示部４２１は、一体的に構成されてもよい。
【００５９】
＜Ｃ．通常実行時におけるシーケンスフロー＞
図５および図６を参照して、通常実行時におけるシーケンスフローについて説明する。図５は、情報処理装置１００とコントローラ２００と駆動機器３００と外部機器４００との間における通常実行時のシーケンスフローを示す図である。
【００６０】
ステップＳ１０において、情報処理装置１００は、開発支援プログラム１１０Ａ（図５参照）の起動命令を受け付けたとする。このことに基づいて、情報処理装置１００は、図６に示される開発ツール３０を起動する。図６は、開発ツール３０が提供するプログラム設計画面３１を示す図である。プログラム設計画面３１は、たとえば、情報処理装置１００の表示部１２１に表示される。
【００６１】
ユーザプログラム２１０は、任意のプログラミング言語で記述され得る。一例として、ユーザプログラム２１０は、ラダーダイアグラム（ＬＤ：Ladder Diagram）で規定されてもよいし、命令リスト（ＩＬ：Instruction List）、構造化テキスト（ＳＴ：Structured Text）、および、シーケンシャルファンクションチャート（ＳＦＣ：Sequential Function Chart）のいずれか、あるいは、これらの組み合わせで規定される。あるいは、ユーザプログラム２１０は、ＪａｖａＳｃｒｉｐｔ（登録商標）やＣ言語のような汎用的なプログラミング言語で規定されていてもよい。
【００６２】
図６の例では、ユーザプログラム２１０は、ラダーダイアグラムで記述されている。設計者は、プログラム設計画面３１上で、任意のファンクションブロックを組み合わせたり、変数やファンクションブロックの入出力関係を規定することで、制御対象の駆動機器３００に合わせたユーザプログラム２１０を設計することができる。ファンクションブロックとは、ユーザプログラム２１０内で繰り返し使用される機能が部品化されたものである。
【００６３】
図６の例では、ユーザプログラム２１０は、変数Ａ〜Ｃと、ファンクションブロックＦＢ１，ＦＢ２とを含む。ファンクションブロックＦＡ１は、その入力部に関連付けられている変数Ａの値に基づいて、ファンクションブロックＦＢ１に規定されている予め定められた機能を実行する。当該実行結果は、ファンクションブロックＦＡ１の出力部に関連付けられている変数Ｂに反映される。ファンクションブロックＦＢ２は、その入力部に関連付けられている変数Ｂの値に基づいて、ファンクションブロックＦＢ２に規定されている予め定められた機能を実行する。当該実行結果は、ファンクションブロックＦＡ２の出力部に関連付けられている変数Ｃに反映される。このように、設計者は、プログラム設計画面３１上で、変数やファンクションブロックを組み合わせることで、任意のユーザプログラム２１０を設計することができる。
【００６４】
他にも、ユーザプログラム２１０は、データーベース４３０にデータを追加するためのファンクションブロックを含み得る。当該ファンクションブロックは、コントローラ２００による収集データの入力を受けて、当該収集データをデーターベース４３０に追加するためのＳＱＬ文を生成し、当該生成したＳＱＬ文を外部機器４００に実行させる。
【００６５】
再び図５を参照して、ステップＳ３０において、開発ツール３０は、コンパイル操作を受け付けたとする。このことに基づいて、開発ツール３０は、プログラム設計画面３１上で設計されたユーザプログラム２１０をコンパイルする。その後、開発ツール３０は、コンパイル結果のダウンロード操作を受け付けたとする。このことに基づいて、開発ツール３０は、コンパイルされたユーザプログラム２１０をコントローラ２００に転送する。コントローラ２００は、受信したユーザプログラム２１０を記憶装置２０８（図３参照）に保存する。
【００６６】
ステップＳ３２において、コントローラ２００は、ユーザプログラム２１０の実行命令を受け付けたとする。このことに基づいて、コントローラ２００は、ユーザプログラム２１０の実行を開始する。ユーザプログラム２１０がサイクリック実行型のプログラムである場合、コントローラ２００は、予め定められた制御周期ごとにユーザプログラム２１０に含まれる命令群を繰り返し実行する。より具体的には、コントローラ２００は、ユーザプログラム２１０の先頭行から最終行までを１制御周期で実行する。その次の制御周期では、コントローラ２００は、再び、ユーザプログラム２１０の先頭行から最終行までを実行する。コントローラ２００は、制御周期ごとに指令値を生成し、当該指令値を駆動機器３００に出力する。
【００６７】
ステップＳ５０において、コントローラ２００は、ユーザプログラム２１０に規定される指令値の生成処理の実行命令を受け付けたか否かを判断する。一例として、当該実行命令は、入力機器（たとえば、センサなど）からの入力信号に応じて発せられる。コントローラ２００は、当該実行命令を受け付けたと判断した場合（ステップＳ５０においてＹＥＳ）、規定されている命令に従って指令値を生成し、当該指令値を駆動機器３００に送る（ステップＳ５２）。駆動機器３００は、コントローラ２００から受信した指令値に従って制御対象を駆動する。コントローラ２００は、指令値の生成処理の実行命令を受け付けたと判断しなかった場合（ステップＳ５０においてＮＯ）、コントローラ２００は、ステップＳ５２の処理を実行せずに、制御をステップＳ６０に切り替える。
【００６８】
ステップＳ６０において、コントローラ２００は、収集データのアップロード処理の実行命令を受け付けたか否かを判断する。コントローラ２００は、当該実行命令を受け付けたと判断した場合（ステップＳ６０においてＹＥＳ）、ＩＮＳＥＲＴ命令を実行するためのＳＱＬ文を生成する。当該ＳＱＬ文には、追加先のテーブルを指定するための情報（たとえば、テーブル名）や、各カラムにアップロードするデータの値などが規定される。コントローラ２００は、当該実行命令を受け付けたと判断しなかった場合（ステップＳ６０においてＮＯ）、ステップＳ６２の処理を実行せずに、処理をステップＳ７０に切り替える。
【００６９】
コントローラ２００は、ＳＱＬ文を生成する際に、ユーザプログラム２１０に規定される収集対象の各データの型をデーターベース４３０に対応するデータ型に変換する。このような型変換は、たとえば、図７に示される設定情報２１２に基づいて行われる。図７は、設定情報２１２の一例を示す図である。設定情報２１２は、たとえば、ユーザによって予め設定されている。図７に示されるように、設定情報２１２において、ユーザプログラム２１０上におけるデータ型と、データーベース４３０上におけるデータ型との対応関係がデーターベース４３０に含まれる各テーブルについて規定される。
【００７０】
ステップＳ６２において、コントローラ２００は、設定情報２１２に基づいた生成されたＳＱＬ文を外部機器４００に送る。外部機器４００は、コントローラ２００から受信したＳＱＬ文に従って各カラムに変数値を反映したレコードを生成し、データーベース４３０内の対応するテーブル４３２に生成したレコードを追加する。これにより、収集データがデーターベース４３０に反映される。その後、外部機器４００は、正常終了または異常終了を示すアップロード結果をコントローラ２００に送信する。
【００７１】
ステップＳ６４において、コントローラ２００は、外部機器４００から受信したアップロード結果と、実行したＳＱＬ文とを対応付けた上で、それらをログデータ２１４に書き込む。アップロード結果が異常を示す場合、アップロード結果は、ログデータ２１４に異常ログ２１５として書き込まれる。一方で、アップロード結果が正常を示す場合、アップロード結果は、ログデータ２１４に正常ログ２１６として書き込まれる。
【００７２】
ステップＳ７０において、コントローラ２００は、ユーザプログラム２１０の実行を終了するか否かを判断する。当該終了命令は、たとえば、ユーザから終了操作を受け付けたことに基づいて発せられる。コントローラ２００は、ユーザから終了操作を受け付けたと判断した場合（ステップＳ７０においてＹＥＳ）、ユーザプログラム２１０の実行を終了する。そうでない場合には（ステップＳ７０においてＮＯ）、コントローラ２００は、制御をステップＳ５０に戻す。
【００７３】
なお、上述では、ステップＳ６２において、ＩＮＳＥＲＴ命令のＳＱＬ文がコントローラ２００から外部機器４００のデーターベース４３０に送信される例について説明を行ったが、ＩＮＳＥＲＴする値のみが外部機器４００のデーターベース４３０に送られてもよい。この場合、外部機器４００は、ＩＮＳＥＲＴする値を受信したことに基づいて、ＩＮＳＥＲＴ命令のＳＱＬ文を生成し、当該ＳＱＬ文に基づいて受信した値のＩＮＳＥＲＴ処理を実行する。
【００７４】
＜Ｄ．デバッグ時におけるシーケンスフロー＞
図８〜１１を参照して、デバッグ時におけるシーケンスフローについて説明する。図８は、情報処理装置１００とコントローラ２００と駆動機器３００と外部機器４００との間におけるデバッグ時のシーケンスフローを示す図である。
【００７５】
ステップＳ８０において、情報処理装置１００は、ログデータ２１４（図１参照）の取得操作を受け付けたとする。当該取得操作は、たとえば、上述の開発ツール３０において受け付けられる。情報処理装置１００は、ログデータ２１４の取得操作を受け付けたことに基づいて、ログデータ２１４の取得要求をコントローラ２００に送信する。コントローラ２００は、この取得要求を受けて、記憶装置２０８（図３参照）に保存されているログデータ２１４を情報処理装置１００に送信する。
【００７６】
ステップＳ８２において、情報処理装置１００は、コントローラ２００からログデータ２１４を受信したことに基づいて、図９に示される選択画面４０を情報処理装置１００の表示部１２１に表示する。図９は、異常ログの選択画面４０を示す図である。
【００７７】
図９に示されるように、選択画面４０のタブＴＢ１が押下されたことに基づいて、情報処理装置１００は、ログデータ２１４に含まれる異常ログをログリスト４１に表示する。ログリスト４１には、エントリと、異常発生日時と、異常のカテゴリと、ログコードと、ログ名と、ＳＱＬ文の実行結果と、エラーコードと、データーベースへのコネクション名と、シリアルＩＤとが並べて表示される。ユーザは、ログリスト４１に表示される異常ログの内、一の異常ログを選択することができる。異常ログの選択操作は、たとえば、情報処理装置１００の操作部１１５を用いて実現される。
【００７８】
一の異常ログがログリスト４１から選択されたことに基づいて、当該一の異常ログに対応するＳＱＬ文５２が詳細表示欄４５に表示される。異常ログが選択された状態で、決定ボタン４６が押下されると、異常ログの選択が受け付けられる。一方で、キャンセルボタン４７が押下されると、異常ログの選択がキャンセルされ、選択画面４０が閉じられる。
【００７９】
ステップＳ８２では、異常ログが選択された状態で、決定ボタン４６が押下されたとする。このことに基づいて、ステップＳ８４において、情報処理装置１００は、ＳＱＬ文の編集画面を表示部１２１に表示する。
【００８０】
図１０は、ステップＳ８４における編集画面５０を示す図である。編集画面５０は、ＳＱＬ文の編集欄５１と、エラー詳細表示欄５３と、レコード情報表示欄５５と、送信ボタン５６と、結果表示欄５８とを含む。
【００８１】
編集欄５１には、ステップＳ８２で選択された異常ログに対応するＳＱＬ文５２が表示される。
【００８２】
エラー詳細表示欄５３には、選択された異常ログにおける詳細情報が表示される。エラー詳細表示欄５３に表示される内容は、エラーコードと、エラーが発生した原因と、発生したエラーに対応する対策案とが表示される。各エラーコードについてのエラー原因および対策案は、情報処理装置１００の記憶装置１１０などに予め格納されている。情報処理装置１００は、選択された異常ログのエラーコードに対応するエラー原因と対策案とをエラー詳細表示欄５３に表示する。
【００８３】
レコード情報表示欄５５には、ＳＱＬ文５２によって挿入が失敗したデータの詳細が表示される。レコード情報表示欄５５に表示される内容は、データの挿入先のテーブル名と、当該テーブルを構成する各カラムの名前と、挿入が失敗したデータの値とを含む。
【００８４】
情報処理装置１００の操作部１１５は、編集欄５１に表示されているＳＱＬ文５２に対して編集操作を受け付ける。当該編集操作により、テーブル名の修正や、カラム名の編集や、値の編集などが行われる。好ましくは、これらの編集操作は、レコード情報表示欄５５に対して行われてもよい。この場合、編集欄５１およびレコード情報表示欄５５の一方に対する編集操作が他方にも反映され、編集欄５１の表示内容とレコード情報表示欄５５の表示内容とが同期する。
【００８５】
図１１は、ステップＳ８６における編集画面５０を示す図である。図１１に示されるように、ステップＳ８６では、ＳＱＬ文５２のカラム「Ａ」の値が「２００」から「９０」に修正されたとする。
【００８６】
ステップＳ９０において、編集画面５０の送信ボタン５６が押下されたとする。これにより、編集後のＳＱＬ文５２の実行操作が受け付けられる。このような実行操作は、たとえば、操作部１１５によって実現される。情報処理装置１００は、操作部１１５が実行操作を受け付けたことに基づいて、修正後のＳＱＬ文５２と、修正後のＳＱＬ文５２の実行命令とをコントローラ２００に送信する。コントローラ２００は、修正後のＳＱＬ文５２と実行命令とを情報処理装置１００から受信したことに基づいて、修正後のＳＱＬ文５２を外部機器４００に実行させる。
【００８７】
外部機器４００は、修正後のＳＱＬ文５２の実行命令をコントローラ２００から受けて、修正後のＳＱＬ文５２を実行し、データーベース４３０に対するデータ挿入処理を行う。その後、外部機器４００は、修正後のＳＱＬ文５２の実行結果をコントローラ２００に送信する。コントローラ２００は、外部機器４００から受信した実行結果を情報処理装置１００に送信する。
【００８８】
ステップＳ９２において、情報処理装置１００は、コントローラ２００から受信した実行結果を編集画面５０に表示する。図１２は、ステップＳ９０における編集画面５０を示す図である。図１２に示されるように、コントローラ２００から受信した実行結果は、編集画面５０の結果表示欄５８に表示される。図１２に示される「０ｘ００００」は、実行結果が正常であることを示す。
【００８９】
＜Ｅ．正常ログの選択画面＞
上述の図９では、選択画面４０において、異常ログが選択される例について説明を行ったが、選択画面４０は、正常ログの選択も受け付ける。以下では、図１３および図１４を参照して、正常ログが選択される例について説明する。
【００９０】
図１３は、正常ログの選択画面４０を示す図である。図１３に示されるように、選択画面４０のタブＴＢ２が押下されたことに基づいて、情報処理装置１００は、ログデータ２１４に含まれる正常ログをログリスト４１に表示する。ユーザは、ログリスト４１に表示される正常ログの内、一の正常ログを選択することができる。正常ログの選択操作は、たとえば、情報処理装置１００の操作部１１５を用いて実現される。
【００９１】
一の正常ログがログリスト４１から選択されたことに基づいて、当該一の正常ログに対応するＳＱＬ文５２Ａが詳細表示欄４５に表示される。正常ログが選択された状態で、決定ボタン４６が押下されると、正常ログの選択が受け付けられる。一方で、キャンセルボタン４７が押下されると、正常ログの選択がキャンセルされ、選択画面４０が閉じられる。
【００９２】
図１４は、選択されたＳＱＬ文５２Ａの編集画面５０を示す図である。編集欄５１には、選択された正常ログに対応するＳＱＬ文５２Ａが表示される。レコード情報表示欄５５には、ＳＱＬ文５２Ａによって挿入が成功したデータの詳細が表示される。レコード情報表示欄５５に表示される内容は、データの挿入先のテーブル名と、当該テーブルを構成する各カラムの名前と、挿入が成功したデータの値とを含む。このように、選択された正常ログの内容が表示されることで、ユーザは、正常に実行されたＳＱＬ文を参考にすることができる。
【００９３】
＜Ｆ．編集画面の変形例＞
図１５を参照して、図１０に示される編集画面５０の変形例について説明する。図１５は、変形例に従う編集画面５０Ａを示す図である。
【００９４】
上述の図１０では、編集画面５０において、選択された一の異常ログが表示されていた。これに対して、本変形例に従う編集画面５０Ａでは、選択された一の正常ログが、選択された一の異常ログに並べて表示される。ユーザは、異常ログと正常ログとを比較することで、異常の原因がどこにあるのかを容易に調べることが可能になる。
【００９５】
図１５に示されるように、変形例に従う編集画面５０Ａは、ＳＱＬ文の編集欄５１と、レコード情報表示欄５５Ａと、送信ボタン５６と、結果表示欄５８とを含む。
【００９６】
比較例に従う編集画面５０Ａにおいては、レコード情報表示欄５５Ａが上述の編集画面５０のレコード情報表示欄５５とは異なる。その他の点については図１０で説明した通りであるので、それらの説明については繰り返さない。
【００９７】
上述のように、ユーザは、ログデータ２１４に含まれるＳＱＬ文の内から、実行結果が異常であることを示すＳＱＬ文だけでなく、実行結果が正常であることを示すＳＱＬ文を選択することができる。異常ログおよび正常ログの選択操作は、たとえば、操作部１１５を用いて実現される。異常ログおよび正常ログが選択されたことに基づいて、情報処理装置１００は、実行結果が異常である修正対象のＳＱＬ文によって挿入されたデータ群５７Ａと、実行結果が正常である比較対象のＳＱＬ文によって挿入されたデータ群５７Ｂとを並べて表示する。これにより、ユーザは、実行結果が異常であるデータ群５７Ａと実行結果が正常であるデータ群５７Ｂとを比較することができ、値が異常であるデータを容易に調べることができる。これを手がかりとして、ユーザは、ユーザプログラム２１０内におけるデータの挿入箇所や、設定情報２１２（図７参照）などを修正することができる。
【００９８】
好ましくは、情報処理装置１００は、実行結果が異常であったデータ群５７Ａに含まる各データと、実行結果が正常であったデータ群５７Ｂに含まる各データとのデータの組み合わせの内、予め定められた比較条件を満たすデータの組み合わせを他のデータの組み合わせとは異なる表示態様で表示する。図１５の例では、カラム「Ａ」に対応するデータ対が、カラム「Ｂ」，「Ｃ」に対応するデータ対と比較して強調表示されている。強調表示は、たとえば、ハッチング表示、特定色（たとえば、赤色）での表示、点滅表示などで実現される。これにより、値が異常であるデータにより容易に気付くことができる。
【００９９】
上記比較条件は、データ群５７Ａに含まれる各データと、データ群５７Ｂに含まれる各データとのデータ対において、予め定められたルールに一致する場合に満たされる。ある局面において、比較条件は、一方のデータが予め定められた値（たとえば、１００）以上であり、他方のデータが当該予め定められた値（たとえば、１００）未満である場合に満たされる。他の局面において、比較条件は、データ対における２つのデータ間で桁数が異なる場合に満たされる。これらの比較条件は、ユーザによって予め設定されていてもよいし、設計時において設定されていてもよい。
【０１００】
＜Ｇ．選択画面の変形例＞
図１６を参照して、図１３に示される選択画面４０の変形例について説明する。図１６は、変形例に従う選択画面４０Ａを示す図である。
【０１０１】
上述の図１３では、ログデータ２１４に含まれる全ての正常ログが選択画面４０に表示されていた。そして、上述の図１５では、これらの正常ログから選択された一の正常ログに対応するＳＱＬ文が、修正対象のＳＱＬ文との比較対象として表示されていた。これに対して、本変形例に従う選択画面４０Ａは、表示対象の正常ログをフィルタリングする機能を有し、修正対象のＳＱＬ文と関連性の高い正常ログを抽出することができる。これにより、ユーザは、比較対象の正常ログを容易に選択することができる。
【０１０２】
図１６に示されるように、変形例に従う選択画面４０Ａは、ログリスト４１と、フィルタリング条件入力欄４４と、詳細表示欄４５と、決定ボタン４６と、キャンセルボタン４７とを含む。
【０１０３】
図１６に示される選択画面４０Ａは、フィルタリング条件入力欄４４をさらに有する点で図１３に示される選択画面４０と異なる。その他の点については図１３で説明した通りであるので、それらの説明については繰り返さない。
【０１０４】
情報処理装置１００は、ログデータ２１４に含まれる正常のＳＱＬ文の内の、修正対象のＳＱＬ文の一部と一致するＳＱＬ文を、比較対象のＳＱＬ文の候補として表示部１２１に表示する。ここでいう「一致」とは、修正対象のＳＱＬ文と、比較対象のＳＱＬ文との間で、単語が所定数（たとえば、１〜４単語）以上一致することを意味する。このように、修正対象のＳＱＬ文と類似するＳＱＬ文が比較対象のＳＱＬ文の候補として絞り込まれることで、修正対象のＳＱＬ文と関連性の高い正常ログが抽出される。
【０１０５】
このような表示対象の絞り込み条件は、フィルタリング条件入力欄４４で受け付けられる。フィルタリング条件入力欄４４は、たとえば、チェックボックス４４Ａ，４４Ｂを有する。
【０１０６】
チェックボックス４４Ａがチェックされると、情報処理装置１００は、ログデータ２１４に含まれるＳＱＬ文の内から、修正対象のＳＱＬ文に規定されるテーブル名と一致するＳＱＬ文を特定し、当該特定した各ＳＱＬ文に対応する正常ログをログリスト４１に表示する。換言すれば、ログデータ２１４に含まれるＳＱＬ文の内、修正対象のＳＱＬ文に規定されるテーブル名と一致しないＳＱＬ文に対応する正常ログは、ログリスト４１に表示されない。これにより、ユーザは、テーブル名で表示対象のログを絞り込むことができる。
【０１０７】
チェックボックス４４Ｂがチェックされると、情報処理装置１００は、ログデータ２１４に含まれるＳＱＬ文の内から、修正対象のＳＱＬ文に規定される命令文と一致するＳＱＬ文を特定し、当該特定した各ＳＱＬ文に対応する正常ログをログリスト４１に表示する。換言すれば、ログデータ２１４に含まれるＳＱＬ文の内、修正対象のＳＱＬ文に規定される命令文と一致しないＳＱＬ文に対応する正常ログは、ログリスト４１に表示されない。これにより、ユーザは、命令の種類で表示対象のログを絞り込むことができる。
【０１０８】
＜Ｈ．情報処理装置１００の制御フロー＞
図１７を参照して、情報処理装置１００の制御構造について説明する。図１７は、情報処理装置１００が実行する処理の一部を表わすフローチャートである。図１７に示される処理は、情報処理装置１００の制御装置１０２がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【０１０９】
ステップＳ１１０において、制御装置１０２は、実行対象の命令がデーターベース４３０への挿入命令であるか否かを判断する。制御装置１０２は、実行対象の命令がデーターベース４３０への挿入命令であると判断した場合（ステップＳ１１０においてＹＥＳ）、制御をステップＳ１１４に切り替える。そうでない場合には（ステップＳ１１０においてＮＯ）、制御装置１０２は、制御をステップＳ１１２に切り替える。
【０１１０】
ステップＳ１１２において、制御装置１０２は、指定された実行対象の命令を通常通り実行する。
【０１１１】
ステップＳ１１４において、制御装置１０２は、上述の設定情報２１２（図７参照）に基づいて、収集対象のデータの型をデーターベース４３０上でのデータ型に変換し、データ挿入のためのＳＱＬ文を生成する。そして、制御装置１０２は、生成したＳＱＬ文とともに、ＳＱＬ文の実行命令を外部機器４００に送信する。これを受けて、外部機器４００は、データーベース４３０へのデータの挿入処理を実行し、その実行結果をコントローラ２００に送信する。
【０１１２】
ステップＳ１１６において、制御装置１０２は、ステップＳ１１４で生成したＳＱＬ文の実行結果を外部機器４００から受信する。
【０１１３】
ステップＳ１２０において、制御装置１０２は、外部機器４００から受信した実行結果が正常を示すか否かを判断する。制御装置１０２は、外部機器４００から受信した実行結果が正常を示すと判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１４０に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、制御装置１０２は、制御をステップＳ１３０に切り替える。
【０１１４】
ステップＳ１３０において、制御装置１０２は、異常ログ２１５（図３参照）へのログ保存が有効に設定されているか否かを判断する。異常ログ２１５へのログ保存の有効または無効は、予め設定されている。制御装置１０２は、異常ログ２１５へのログ保存が有効に設定されていると判断した場合（ステップＳ１３０においてＹＥＳ）、制御をステップＳ１３２に切り替える。そうでない場合には（ステップＳ１３０においてＮＯ）、制御装置１０２は、制御をステップＳ１５０に切り替える。
【０１１５】
ステップＳ１３２において、制御装置１０２は、ステップＳ１１６で受信した実行結果を異常ログ２１５に書き込む。
【０１１６】
ステップＳ１４０において、制御装置１０２は、正常ログ２１６（図３参照）へのログ保存が有効に設定されているか否かを判断する。正常ログ２１６へのログ保存の有効または無効は、予め設定されている。制御装置１０２は、正常ログ２１６へのログ保存が有効に設定されていると判断した場合（ステップＳ１４０においてＹＥＳ）、制御をステップＳ１４２に切り替える。そうでない場合には（ステップＳ１４０においてＮＯ）、制御装置１０２は、制御をステップＳ１５０に切り替える。
【０１１７】
ステップＳ１４２において、制御装置１０２は、ステップＳ１１６で受信した実行結果を正常ログ２１６に書き込む。
【０１１８】
ステップＳ１５０において、制御装置１０２は、実行された挿入処理がテスト実行であるか否かを判断する。制御装置１０２は、たとえば、上述の編集画面５０（図１０参照）の送信ボタン５６が押下されたことに基づいて実行された挿入処理であれば、実行された挿入処理がテスト実行であると判断する。制御装置１０２は、実行された挿入処理がテスト実行であると判断した場合（ステップＳ１５０においてＹＥＳ）、制御をステップＳ１５２に切り替える。そうでない場合には（ステップＳ１５０においてＮＯ）、制御装置１０２は、制御をステップＳ１６０に切り替える。
【０１１９】
ステップＳ１５２において、制御装置１０２は、ステップＳ１１６で受信した実行結果を情報処理装置１００に送信する。これにより、実行結果が情報処理装置１００の表示部１２１に表示される。
【０１２０】
ステップＳ１６０において、制御装置１０２は、プログラムの実行を終了するか否かを判断する。当該終了命令は、たとえば、ユーザから終了操作を受け付けたことに基づいて発せられる。制御装置１０２は、プログラムの実行を終了すると判断した場合（ステップＳ１６０においてＹＥＳ）、図１７に示される処理を終了する。そうでない場合には（ステップＳ１６０においてＮＯ）、制御装置１０２は、制御をステップＳ１１０に戻す。
【０１２１】
＜Ｉ．付記＞
以上のように、本実施形態は以下のような開示を含む。
【０１２２】
［構成１］
制御対象を制御するコントローラ（２００）と通信可能に構成されている情報処理装置（１００）であって、
前記コントローラ（２００）または前記情報処理装置（１００）は、前記制御対象に関するデータをデーターベース（４３０）に挿入するために実行された１つ以上のＳＱＬ文と、当該１つ以上のＳＱＬ文の各々の実行結果とを対応付けてログデータ（２１４）として格納するための記憶装置（２０８）を備え、
前記情報処理装置（１００）は、
表示部（１２１）と、
前記ログデータ（２１４）に含まれるＳＱＬ文の内、実行結果が異常であることを示す修正対象のＳＱＬ文を前記表示部（１２１）に表示するための表示制御部（１５４）と、
前記修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付けるための操作部（１１５）とを備え、
前記通信部（１５２）は、前記操作部（１１５）が前記実行操作を受け付けたことに基づいて、前記修正後のＳＱＬ文の実行命令を前記コントローラ（２００）に送信するとともに、前記修正後のＳＱＬ文の実行結果を前記コントローラ（２００）から受信するための通信部（１５２）とを備え、
前記表示制御部（１５４）は、前記修正後のＳＱＬ文の実行結果を前記表示部（１２１）に表示する、制御システム。
【０１２３】
［構成２］
前記操作部（１１５）は、前記ログデータ（２１４）に含まれるＳＱＬ文の内から、実行結果が正常であることを示す比較対象のＳＱＬ文を選択する操作をさらに受け付けるように構成されており、
前記表示制御部（１５４）は、前記修正対象のＳＱＬ文によって前記データーベース（４３０）に挿入されたデータと、前記比較対象のＳＱＬ文によって前記データーベース（４３０）に挿入されたデータとを並べて表示する、構成１に記載の制御システム。
【０１２４】
［構成３］
前記表示制御部（１５４）は、前記修正対象のＳＱＬ文によって前記データーベース（４３０）に挿入された各データと前記比較対象のＳＱＬ文によって前記データーベース（４３０）に挿入された各データとのデータの組み合わせの内、予め定められた比較条件を満たすデータの組み合わせを他のデータの組み合わせとは異なる表示態様で表示する、構成２に記載の制御システム。
【０１２５】
［構成４］
前記予め定められた比較条件は、組み合わせのデータ間で桁数が異なる場合に満たされる、構成３に記載の制御システム。
【０１２６】
［構成５］
前記表示制御部（１５４）は、前記ログデータ（２１４）に含まれるＳＱＬ文の内の、前記修正対象のＳＱＬ文の一部と一致するＳＱＬ文を、前記比較対象のＳＱＬ文の候補として前記表示部（１２１）に表示し、
前記操作部（１１５）は、前記比較対象のＳＱＬ文の選択操作を前記候補の内から受け付ける、構成２〜４のいずれか１項に記載の制御システム。
【０１２７】
［構成６］
前記表示制御部（１５４）は、前記ログデータ（２１４）に含まれるＳＱＬ文の内の、前記修正対象のＳＱＬ文に規定されるテーブル名と一致するＳＱＬ文を前記候補として前記表示部（１２１）に表示する、構成５に記載の制御システム。
【０１２８】
［構成７］
制御対象を制御するコントローラ（２００）と通信可能に構成されている情報処理装置（１００）の制御方法であって、
前記コントローラ（２００）または前記情報処理装置（１００）は、前記制御対象に関するデータをデーターベース（４３０）に挿入するために実行された１つ以上のＳＱＬ文と、当該１つ以上のＳＱＬ文の各々の実行結果とを対応付けてログデータ（２１４）として格納するための記憶装置（２０８）を備え、
前記制御方法は、
前記ログデータ（２１４）に含まれるＳＱＬ文の内、実行結果が異常であることを示す修正対象のＳＱＬ文を表示部（１２１）に表示するステップ（Ｓ８４）と、
前記修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付けるステップ（Ｓ８６）と、
前記実行操作を受け付けたことに基づいて、前記修正後のＳＱＬ文の実行命令を前記コントローラ（２００）に送信するとともに、前記修正後のＳＱＬ文の実行結果を前記コントローラ（２００）から受信するステップ（Ｓ９０）と、
前記修正後のＳＱＬ文の実行結果を前記表示部（１２１）に表示するステップ（Ｓ９２）とを備える、制御方法。
【０１２９】
［構成８］
制御対象を制御するコントローラ（２００）と通信可能に構成されている情報処理装置（１００）の制御プログラムであって、
前記コントローラ（２００）または前記情報処理装置（１００）は、前記制御対象に関するデータをデーターベース（４３０）に挿入するために実行された１つ以上のＳＱＬ文と、当該１つ以上のＳＱＬ文の各々の実行結果とを対応付けてログデータ（２１４）として格納するための記憶装置（２０８）を備え、
前記制御プログラムは、前記情報処理装置（１００）に、
前記ログデータ（２１４）に含まれるＳＱＬ文の内、実行結果が異常であることを示す修正対象のＳＱＬ文を表示部（１２１）に表示するステップ（Ｓ８４）と、
前記修正対象のＳＱＬ文に対する修正操作を受け付けるとともに、修正後のＳＱＬ文の実行操作を受け付けるステップ（Ｓ８６）と、
前記実行操作を受け付けたことに基づいて、前記修正後のＳＱＬ文の実行命令を前記コントローラ（２００）に送信するとともに、前記修正後のＳＱＬ文の実行結果を前記コントローラ（２００）から受信するステップ（Ｓ９０）と、
前記修正後のＳＱＬ文の実行結果を前記表示部（１２１）に表示するステップ（Ｓ９２）とを実行させる、制御プログラム。
【０１３０】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１３１】
１０  制御システム、３０  開発ツール、３１  プログラム設計画面、４０，４０Ａ  選択画面、４１  ログリスト、４４  フィルタリング条件入力欄、４４Ａ，４４Ｂ  チェックボックス、４５  詳細表示欄、４６  決定ボタン、４７  キャンセルボタン、５０，５０Ａ  編集画面、５１  編集欄、５２，５２Ａ  ＳＱＬ文、５３  エラー詳細表示欄、５５，５５Ａ  レコード情報表示欄、５６  送信ボタン、５７Ａ，５７Ｂ  データ群、５８  結果表示欄、１００  情報処理装置、１０２，２０２，４０２  制御装置、１０４，２０６，４０４  主メモリ、１１０，２０８，４１０  記憶装置、１１０Ａ  開発支援プログラム、１１１，２０１，４１２  通信インターフェイス、１１４，４１４  インターフェイス、１１５，４１５  操作部、１２０，４２０  表示インターフェイス、１２１，４２１  表示部、１２５，４２５  内部バス、１５２  通信部、１５４  表示制御部、２００  コントローラ、２０４  チップセット、２０９  システムプログラム、２１０  ユーザプログラム、２１０Ａ  シーケンスプログラム、２１０Ｂ  モーションプログラム、２１１  制御プログラム、２１２  設定情報、２１４  ログデータ、２１５  異常ログ、２１６  正常ログ、２２２  内部バスコントローラ、２２４  フィールドバスコントローラ、２２６  Ｉ／Ｏユニット、２３９  メモリカードインターフェイス、２４０  メモリカード、３００  駆動機器、３００Ａ，３００Ｂ  サーボドライバ、４００  外部機器、４１６  フィールドバスインターフェイス、４３０  データーベース、４３２  テーブル。
【図１】
2020149520.tif 000003
【図２】
2020149520.tif 000004
【図３】
2020149520.tif 000005
【図４】
2020149520.tif 000006
【図５】
2020149520.tif 000007
【図６】
2020149520.tif 000008
【図７】
2020149520.tif 000009
【図８】
2020149520.tif 000010
【図９】
2020149520.tif 000011
【図１０】
2020149520.tif 000012
【図１１】
2020149520.tif 000013
【図１２】
2020149520.tif 000014
【図１３】
2020149520.tif 000015
【図１４】
2020149520.tif 000016
【図１５】
2020149520.tif 000017
【図１６】
2020149520.tif 000018
【図１７】
2020149520.tif 000019