(57)【要約】      （修正有）【課題】制御装置（コントローラ）と他のシステムとを含む制御システムにおいて、ＰＬＣと他のシステムとを協働させて動作するユーザプログラムのデバッグを容易にする技術を提供する。【解決手段】ＣＰＵユニット１０４は、通信インタフェースを備え、ユーザプログラム１８６を実行し、ユーザプログラム１８６に含まれる命令に応じて、ＤＢ接続サービスを呼び出してデータベース装置へアクセスするための命令文を生成する。ＤＢ接続サービスは、第１のモードと第２のモードとを切り替えて動作し、第１のモードではアクセス命令に応じた命令文を生成し、生成した命令文をデータベースシステムへ送信し、その応答結果をユーザプログラム１８６へ応答する。第２のモードでは、データベース装置への命令文を送信することなく命令文に対応する実行結果をユーザプログラム１８６へ応答する。【選択図】図６
2014157506.tif 000002
【特許請求の範囲】
【請求項１】
コントローラであって、
データベースシステムと接続するための通信インタフェースと、
制御対象を制御するためのユーザプログラムを実行する命令実行部と、
前記データベースシステムへアクセスするためのアクセス命令を含む前記ユーザプログラムの前記命令実行部による実行時に、前記アクセス命令に応じた命令文による前記データベースシステムへの前記通信インタフェースを介したアクセスを制御するアクセス処理部とを備え、
前記アクセス処理部は、第１のモードと第２のモードとにより動作可能であり、
前記第１のモードにおいて、前記アクセス命令に応じた命令文を前記データベースシステムへ送信し、その命令文の応答結果を前記ユーザプログラムへ応答し、
前記第２のモードにおいて、前記データベースシステムへの前記命令文を送信することなく前記命令文に対応する実行結果を前記ユーザプログラムへ応答する、コントローラ。
【請求項２】
前記コントローラは、
時刻を計時する計時部をさらに備え、
前記命令実行部は、前記ユーザプログラムの所定の処理の実行時に、処理内容と前記計時部が計時する時刻とを対応付けてログとしてメモリに保存し、
前記アクセス処理部は、前記アクセス命令に応じた処理内容と前記計時部が計時する時刻とを対応付けて前記ログとして前記メモリに保存する、請求項１記載のコントローラ。
【請求項３】
前記アクセス処理部は、
前記アクセス命令に応じた命令文を生成し、生成した命令文を前記ログとして前記メモリに保存する、請求項２に記載のコントローラ。
【請求項４】
前記アクセス処理部は、
前記第２のモードにおいて、前記アクセス命令に応じた前記命令文に対応する実行結果として、前記命令文による前記データベースシステムへのアクセスが正常になされたことを示す応答、または、前記命令文による前記データベースシステムへのアクセスにエラーが発生したことを示す応答を前記ユーザプログラムへ行う、請求項１に記載のコントローラ。
【請求項５】
前記制御部は、
応答時間の設定を受け付ける応答時間設定部を含み、
前記第２のモードで動作する場合に、前記アクセス命令に応じた処理の結果を、前記処理の開始から前記設定された応答時間の経過後に出力する、請求項１に記載のコントローラ。
【請求項６】
前記コントローラは、前記コントローラに接続される情報処理装置とデータを送受信するための入出力部を備え、
前記入出力部は、前記情報処理装置の要求に応じて、前記アクセス処理部による前記ユーザプログラムへの応答結果を前記情報処理装置へ出力する、請求項１から５のいずれか１項に記載のコントローラ。
【請求項７】
前記入出力部は、前記アクセス処理部を前記第１のモードと前記第２のモードとのいずれで動作させるかの指定を前記情報処理装置から受け付け、
前記アクセス処理部は、前記情報処理装置から受け付けた指定に応じて前記第１のモードと前記第２のモードとを切り替える、請求項６記載のコントローラ。
【請求項８】
前記ユーザプログラムは、前記第１のモードと前記第２のモードとのいずれで前記アクセス処理部を動作させるかを指定する指定命令を含み、
前記アクセス処理部は、
前記指定命令に示される指定に従って、前記第１のモードと前記第２のモードとのいずれかで動作する、請求項１記載のコントローラ。
【請求項９】
コントローラの動作を制御するためのプログラムであって、
前記コントローラは、データベースシステムへアクセスするための通信インタフェースと、プロセッサと、メモリとを備え、
前記プログラムは、前記プロセッサに、
制御対象を制御するためのユーザプログラムを実行するステップと、
前記データベースシステムへアクセスするためのアクセス命令を含む前記ユーザプログラムの前記実行時に、前記アクセス命令に応じた命令文による前記データベースシステムへの前記通信インタフェースを介したアクセスを制御するステップとを実行させ、
前記アクセス命令に応じた命令文によるデータベースシステムへのアクセスを制御するステップは、第１のモードと第２のモードとにより動作可能であり、前記プロセッサに、
前記第１のモードにおいて、前記アクセス命令に応じた命令文を前記データベースシステムへ送信し、その命令文の応答結果を前記ユーザプログラムへ応答し、
前記第２のモードにおいて、前記データベースシステムへの前記命令文を送信することなく前記命令文に対応する実行結果を前記ユーザプログラムへ応答するステップを実行させる、プログラム。
【請求項１０】
コントローラと接続される情報処理装置であって、
前記コントローラは、
データベースシステムと接続するための通信インタフェースと、
制御対象を制御するためのユーザプログラムを実行する命令実行部と、
前記データベースシステムへアクセスするためのアクセス命令を含む前記ユーザプログラムの前記命令実行部による実行時に、前記アクセス命令に応じた命令文による前記データベースシステムへの前記通信インタフェースを介したアクセスを制御するアクセス処理部と、
前記情報処理装置と接続し、前記情報処理装置とデータを送受信するための入出力部とを備え、
前記アクセス処理部は、第１のモードと第２のモードとにより動作可能であり、
前記第１のモードにおいて、前記アクセス命令に応じた命令文を前記データベースシステムへ送信し、その命令文の応答結果を前記ユーザプログラムへ応答し、
前記第２のモードにおいて、前記データベースシステムへの前記命令文を送信することなく前記命令文に対応する実行結果を前記ユーザプログラムへ応答する、第１のモードと第２のモードとにより動作可能であり、
前記情報処理装置は、
前記アクセス処理部による前記ユーザプログラムへの応答結果を前記コントローラの前記入出力部を介して受信する受信処理部と、
前記受信処理部により受信した前記応答結果をモニタに表示させる表示処理部とを備える、情報処理装置。
【請求項１１】
コントローラであって、
データベースシステムと接続するための通信インタフェースと、
プロセッサと、
メモリとを備え、
前記プロセッサは、第１のモードと第２のモードとを切り替えて動作し、制御対象を制御するためのユーザプログラムを実行し、前記データベースシステムへアクセスするためのアクセス命令を含む前記ユーザプログラムの前記実行時に、前記アクセス命令に応じた命令文による前記データベースシステムへの前記通信インタフェースを介したアクセスを制御し、第１のモードで動作する場合に、前記アクセス命令に応じた命令文を前記データベースシステムへ送信し、その命令文の応答結果を前記ユーザプログラムへ応答し、第２のモードで動作する場合に、前記データベースシステムへの前記命令文を送信することなく前記命令文に対応する実行結果を前記ユーザプログラムへ応答する、コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザプログラムを周期的に実行するコントローラを含む制御システムに関し、特に、データベースシステムと接続する制御システムに関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Programmable  Logic  Controller；以下「ＰＬＣ」とも称す）などの制御装置を主たる構成とした制御システムによって制御される。ＰＬＣ等のコントローラは、工場などの自動機械の制御などに用いられ、複数の入出力機能を有して、例えば、センサ等から出力される値を逐次、読みこんでデータを保持する。
【０００３】
また、近年、データベースシステムと接続するＰＬＣが知られている。ＰＬＣは、ＰＬＣが保持しているデータを、データベースシステムに蓄積する。これにより、データベースに接続する情報処理装置同士でのデータの共有を容易にしたり、各種データを収集して、データの集計や解析などを容易にしたりすることができる。例えば、特開２０１２−１０８６４２号公報（特許文献１）は、データベースをアクセスするＳＱＬ文を複数含むＳＱＬ処理群をデータベースに送信する機能を有するＰＬＣを開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１０８６４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＰＬＣと他のシステム（データベースシステムなど）とを接続する構成において、他のシステムを稼働させる前に、ＰＬＣの立ち上げを行う必要がある場合がある。例えば、実機を用いてＰＬＣの制御動作を検証し、データベースシステムなど他のシステムと接続する部分の動作の検証を後日行いたい場合がある。ＰＬＣの制御動作の検証が終わり、ＰＬＣを他のシステムと結合した場合の動作の評価を行いたい場合に、他のシステムが未だ稼働していない状態では、この他のシステムをダミープログラムにより立ち上げて、ダミーのシステムを用いてＰＬＣと他のシステムとの接続確認を行う必要がある。そのため、ＰＬＣと接続する他のシステムが稼働する前の段階においては、ダミーのシステムの立ち上げ等を要し、ＰＬＣで動作するユーザプログラムのデバッグが煩雑になる。
【０００６】
したがって、ＰＬＣを他のシステムと接続する構成とする場合に、ＰＬＣと他のシステムとを協働させて動作するユーザプログラムのデバッグを容易にする技術が必要とされている。
【課題を解決するための手段】
【０００７】
本発明のある局面に係るコントローラは、データベースシステムと接続するための通信インタフェースと、制御対象を制御するためのユーザプログラムを実行する命令実行部と、データベースシステムへアクセスするためのアクセス命令を含むユーザプログラムの命令実行部による実行時に、アクセス命令に応じた命令文によるデータベースシステムへの通信インタフェースを介したアクセスを制御するアクセス処理部とを備え、アクセス処理部は、第１のモードと第２のモードとにより動作可能であり、第１のモードにおいて、アクセス命令に応じた命令文をデータベースシステムへ送信し、その命令文の応答結果をユーザプログラムへ応答し、第２のモードにおいて、データベースシステムへの命令文を送信することなく命令文に対応する実行結果をユーザプログラムへ応答する。
【０００８】
好ましくは、コントローラは、時刻を計時する計時部をさらに備え、命令実行部は、ユーザプログラムの所定の処理の実行時に、処理内容と計時部が計時する時刻とを対応付けてログとしてメモリに保存し、アクセス処理部は、アクセス命令に応じた処理内容と計時部が計時する時刻とを対応付けてログとしてメモリに保存することとしてもよい。
【０００９】
好ましくは、アクセス処理部は、アクセス命令に応じた命令文を生成し、生成した命令文をログとしてメモリに保存することとしてもよい。
【００１０】
好ましくは、アクセス処理部は、第２のモードにおいて、アクセス命令に応じた命令文に対応する実行結果として、命令文によるデータベースシステムへのアクセスが正常になされたことを示す応答、または、命令文によるデータベースシステムへのアクセスにエラーが発生したことを示す応答をユーザプログラムへ行うこととしてもよい。
【００１１】
好ましくは、制御部は、応答時間の設定を受け付ける応答時間設定部を含み、第２のモードで動作する場合に、アクセス命令に応じた処理の結果を、処理の開始から設定された応答時間の経過後に出力することとしてもよい。
【００１２】
好ましくは、コントローラは、コントローラに接続される情報処理装置とデータを送受信するための入出力部を備え、入出力部は、情報処理装置の要求に応じて、アクセス処理部によるユーザプログラムへの応答結果を情報処理装置へ出力することとしてもよい。
【００１３】
好ましくは、入出力部は、アクセス処理部を第１のモードと第２のモードとのいずれで動作させるかの指定を情報処理装置から受け付け、アクセス処理部は、情報処理装置から受け付けた指定に応じて第１のモードと第２のモードとを切り替えることとしてもよい。
【００１４】
好ましくは、ユーザプログラムは、第１のモードと第２のモードとのいずれでアクセス処理部を動作させるかを指定する指定命令を含み、アクセス処理部は、指定命令に示される指定に従って、第１のモードと第２のモードとのいずれかで動作することとしてもよい。
【００１５】
本発明のある局面に係るプログラムは、コントローラの動作を制御するためのプログラムであって、コントローラは、データベースシステムへアクセスするための通信インタフェースと、プロセッサと、メモリとを備え、プログラムは、プロセッサに、制御対象を制御するためのユーザプログラムを実行するステップと、データベースシステムへアクセスするためのアクセス命令を含むユーザプログラムの実行時に、アクセス命令に応じた命令文によるデータベースシステムへのアクセスを制御するステップとを実行させ、アクセス命令に応じた命令文によるデータベースシステムへの通信インタフェースを介したアクセスを制御するステップは、第１のモードと第２のモードとにより動作可能であり、プロセッサに、第１のモードにおいて、アクセス命令に応じた命令文をデータベースシステムへ送信し、その命令文の応答結果をユーザプログラムへ応答し、第２のモードにおいて、データベースシステムへの命令文を送信することなく命令文に対応する実行結果をユーザプログラムへ応答するステップを実行させる。
【００１６】
本発明のある局面に係る情報処理装置は、コントローラと接続され、コントローラは、データベースシステムと接続するための通信インタフェース、制御対象を制御するためのユーザプログラムを実行する命令実行部、データベースシステムへアクセスするためのアクセス命令を含むユーザプログラムの命令実行部による実行時に、アクセス命令に応じた命令文によるデータベースシステムへの通信インタフェースを介したアクセスを制御するアクセス処理部、および、情報処理装置と接続し、情報処理装置とデータを送受信するための入出力部、を備える。アクセス処理部は、第１のモードと第２のモードとにより動作可能であり、第１のモードにおいて、アクセス命令に応じた命令文をデータベースシステムへ送信し、その命令文の応答結果をユーザプログラムへ応答し、第２のモードにおいて、データベースシステムへの命令文を送信することなく命令文に対応する実行結果をユーザプログラムへ応答する、第１のモードと第２のモードとにより動作可能である。情報処理装置は、アクセス処理部によるユーザプログラムへの応答結果をコントローラの入出力部を介して受信する受信処理部と、受信処理部により受信した応答結果をモニタに表示させる表示処理部とを備える。
【００１７】
本発明のある局面に係るコントローラは、データベースシステムと接続するための通信インタフェースと、プロセッサと、メモリとを備え、プロセッサは、第１のモードと第２のモードとを切り替えて動作し、制御対象を制御するためのユーザプログラムを実行し、データベースシステムへアクセスするためのアクセス命令を含むユーザプログラムの実行時に、アクセス命令に応じた命令文によるデータベースシステムへの通信インタフェースを介したアクセスを制御し、第１のモードで動作する場合に、アクセス命令に応じた命令文をデータベースシステムへ送信し、その命令文の応答結果をユーザプログラムへ応答し、第２のモードで動作する場合に、データベースシステムへの命令文を送信することなく命令文に対応する実行結果をユーザプログラムへ応答する。
【発明の効果】
【００１８】
本発明によれば、ＰＬＣを他のシステムと接続する構成とする場合に、ＰＬＣと他のシステムとを協働させて動作するユーザプログラムのデバッグを容易にすることができる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に係る制御システム１のシステム構成を示す模式図である。
【図２】本実施の形態に係るＰＬＣ１００の主要部を示すハードウェア構成を示す模式図である。
【図３】本実施の形態に係るＰＬＣ１００のソフトウェア構成を示す模式図である。
【図４】本実施の形態に係るＰＬＣ１００に接続して用いられるサポート装置３００のハードウェア構成を示す模式図である。
【図５】本実施形態におけるＰＬＣ１００とデータベース装置４００との通信処理の概要およびロギングの概要を示す図である。
【図６】本実施形態におけるＰＬＣ１００がテストモードで動作する場合の通信処理の概要およびロギングの概要を示す図である。
【図７】稼働ログ１８４を示す図である。
【図８】本実施の形態にかかるＰＬＣ１００における処理手順およびデータベース装置４００の処理手順を示すフローチャートである。
【図９】テストモードにおけるＰＬＣ１００の処理手順を示すフローチャートである。
【図１０】サポート装置３００が稼働ログ１８４を取得するための処理を示すフローチャートである。
【図１１】サポート装置３００がテストモードでの動作指示をＰＬＣ１００に与える処理手順の例を示す図である。
【図１２】本実施形態にかかるサポート装置３００において提供されるユーザインタフェースの一例を示す図である。
【発明を実施するための形態】
【００２０】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２１】
＜Ａ．システム構成＞
まず、本実施の形態に係る制御システムのシステム構成について説明する。本実施の形態においては、機械や設備などの制御対象を制御するプログラマブルコントローラ（ＰＬＣ）を制御装置の典型例として説明を行う。但し、本発明に係る制御装置は、ＰＬＣに限られることなく、各種の制御装置へ適用可能である。
【００２２】
図１は、本実施の形態に係る制御システム１のシステム構成を示す模式図である。図１を参照して、制御システム１は、ＰＬＣ１００と、ＰＬＣ１００に接続されるサポート装置３００と、ＰＬＣ１００からのアクセスを受けるデータベース装置４００とを含む。ＰＬＣ１００は、後述するようなユーザプログラムを周期的またはイベント的に実行する。ユーザプログラムは、ＰＬＣ１００の利用者によって作成される。ユーザは、例えばサポート装置３００を操作することにより、アクセス命令を含むプログラム（ソースプログラム）を作成することができる。サポート装置３００は、ソースプログラムを、ＰＬＣ１００において実行可能な形式に変換し、変換されたユーザプログラムをＰＬＣ１００へ送信する。ＰＬＣ１００は、ユーザプログラムを実行し、ユーザプログラムに含まれるアクセス命令に従って、データベース装置４００にアクセスすることができる。
【００２３】
すなわち、ＰＬＣ１００およびデータベース装置４００は、イーサネット（登録商標）などのネットワーク１１２を介して、データを互いに遣り取りできるように構成される。
【００２４】
サポート装置３００は、ＰＬＣ１００に接続可能な情報処理装置の典型例である。サポート装置３００は、接続ケーブル１１４を介してＰＬＣ１００に接続され、ＰＬＣ１００との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。ＰＬＣ１００とサポート装置３００との間は、典型的には、ＵＳＢ（Universal  Serial  Bus）規格に従って通信可能に構成される。
【００２５】
ＰＬＣ１００は、制御演算を実行するＣＰＵユニット１０４と、１つ以上のＩＯ（Input/Output）ユニット１０６とを含む。これらのユニットは、ＰＬＣシステムバス１０８を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット１０２によって適切な電圧の電源が供給される。
【００２６】
制御システム１において、ＰＬＣ１００は、（ＰＬＣシステムバス１０８を介して接続される）ＩＯユニット１０６を介して、および／または、フィールドバス１１０を介して、各種のフィールド機器との間でデータを遣り取りする。これらのフィールド機器は、制御対象に対して何らかの処理を行うためのアクチュエータや、制御対象から各種情報を取得するためのセンサなどを含む。図１には、このようなフィールド機器の一例として、検出スイッチ１０、リレー２０およびモータ３２を駆動するサーボモータドライバ３０を含む。また、ＰＬＣ１００は、フィールドバス１１０を介してリモートＩＯターミナル２００も接続されている。リモートＩＯターミナル２００は、基本的には、ＩＯユニット１０６と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートＩＯターミナル２００は、フィールドバス１１０でのデータ伝送に係る処理を行うための通信カプラ２０２と、１つ以上のＩＯユニット２０４とを含む。これらのユニットは、リモートＩＯターミナルバス２０８を介して、データを互いに遣り取りできるように構成される。
【００２７】
＜Ｂ．ＰＬＣ１００の構成＞
次に、本実施の形態に係るＰＬＣ１００の構成について説明する。図２は、本実施の形態に係るＰＬＣ１００の主要部を示すハードウェア構成を示す模式図である。図３は、本実施の形態に係るＰＬＣ１００のソフトウェア構成を示す模式図である。
【００２８】
図２を参照して、ＰＬＣ１００のＣＰＵユニット１０４のハードウェア構成について説明する。ＣＰＵユニット１０４は、プロセッサ１２０と、チップセット１２２と、システムクロック１２４と、主メモリ１２６と、不揮発性メモリ１２８と、ＵＳＢコネクタ１３０と、ＰＬＣシステムバスコントローラ１４０と、フィールドバスコントローラ１５０と、上位通信コントローラ１６０と、メモリカードインターフェイス１７０とを含む。チップセット１２２と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００２９】
プロセッサ１２０およびチップセット１２２は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ１２０は、チップセット１２２から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット１２２は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ１２０に必要な命令コードを生成する。システムクロック１２４は、予め定められた周期のシステムクロックを発生してプロセッサ１２０に提供する。チップセット１２２は、プロセッサ１２０での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。また、チップセット１２２は、システムクロック１２４から提供されるクロックを受けて時刻を計時する計時チップ１２３を含む。
【００３０】
ＣＰＵユニット１０４は、記憶手段として、主メモリ１２６および不揮発性メモリ１２８を有する。主メモリ１２６は、揮発性の記憶領域であり、プロセッサ１２０で実行されるべき各種プログラムを保持するとともに、各種プログラムの実行時の作業用メモリとしても使用される。不揮発性メモリ１２８は、ＯＳ（Operating  System）、システムプログラム、ユーザプログラム、ログ情報などを不揮発的に保持する。
【００３１】
ＵＳＢコネクタ１３０は、サポート装置３００とＣＰＵユニット１０４とを接続するためのインタフェースである。典型的には、サポート装置３００から転送される実行可能なプログラムなどは、ＵＳＢコネクタ１３０を介してＣＰＵユニット１０４に取込まれる。
【００３２】
ＣＰＵユニット１０４は、通信手段として、ＰＬＣシステムバスコントローラ１４０、フィールドバスコントローラ１５０、および上位通信コントローラ１６０を有する。これらの通信回路は、データの送信および受信を行う。
【００３３】
ＰＬＣシステムバスコントローラ１４０は、ＰＬＣシステムバス１０８を介したデータの遣り取りを制御する。より具体的には、ＰＬＣシステムバスコントローラ１４０は、バッファメモリ１４２と、ＰＬＣシステムバス制御回路１４４と、ＤＭＡ（Dynamic  Memory  Access）制御回路１４６とを含む。ＰＬＣシステムバスコントローラ１４０は、ＰＬＣシステムバスコネクタ１４８を介してＰＬＣシステムバス１０８と接続される。
【００３４】
フィールドバスコントローラ１５０は、バッファメモリ１５２と、フィールドバス制御回路１５４と、ＤＭＡ制御回路１５６とを含む。フィールドバスコントローラ１５０は、フィールドバスコネクタ１５８を介してフィールドバス１１０と接続される。上位通信コントローラ１６０は、バッファメモリ１６２と、上位通信制御回路１６４と、ＤＭＡ制御回路１６６とを含む。上位通信コントローラ１６０は、上位通信コネクタ１６８を介してネットワーク１１２と接続される。
【００３５】
メモリカードインターフェイス１７０は、ＣＰＵユニット１０４に対して着脱可能なメモリカード１７２とプロセッサ１２０とを接続する。
【００３６】
次に、図３を参照して、本実施の形態に係るＰＬＣ１００が提供する各種機能を実現するためのソフトウェア構成について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、ＣＰＵユニット１０４のプロセッサ１２０によって実行される。
【００３７】
図３を参照して、ＣＰＵユニット１０４で実行されるソフトウェアとしては、ＯＳ１８０と、システムプログラム１８８と、ユーザプログラム１８６とがある。
【００３８】
ＯＳ１８０は、プロセッサ１２０がシステムプログラム１８８およびユーザプログラム１８６を実行するための基本的な実行環境を提供する。
【００３９】
システムプログラム１８８は、ＰＬＣ１００としての基本的な機能を提供するためのソフトウェア群である。具体的には、システムプログラム１８８は、シーケンス命令プログラム１９０と、ＤＢ（データベース）アクセス処理プログラム１９２と、入出力処理プログラム１９４と、Ｔｏｏｌインタフェース処理プログラム１９６と、スケジューラ１９８とを含む。
【００４０】
これに対して、ユーザプログラム１８６は、制御対象に対する制御目的に応じて任意に作成されたプログラムである。すなわち、ユーザプログラム１８６は、制御システム１を用いて制御する対象に応じて、任意に設計される。
【００４１】
ユーザプログラム１８６は、シーケンス命令プログラム１９０と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム１８６は、シーケンス命令プログラム１９０によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム１８６およびシーケンス命令プログラム１９０を「制御プログラム」と総称する場合もある。
【００４２】
稼働ログ１８４には、システムプログラム１８８およびユーザプログラム１８６の実行に伴って、予め定められた事象が発生した際に、当該発生した事象の情報が時刻情報と関連付けて格納される。すなわち、稼働ログ１８４には、システムプログラム１８８および／またはユーザプログラム１８６の実行に伴う各種情報がログ（履歴情報）として格納される。
【００４３】
以下、各プログラムについてより詳細に説明する。
シーケンス命令プログラム１９０は、ユーザプログラム１８６の実行に伴って、ユーザプログラム１８６内で指定されているシーケンス命令の実体を呼び出して、その命令の内容を実現するための命令コード群を含む。
【００４４】
ＤＢアクセス処理プログラム１９２は、ユーザプログラム１８６の実行に伴って、データベース装置４００へアクセスするために必要な処理を実現するための命令コード群を含む。ＤＢアクセス処理プログラム１９２は、ユーザプログラム１８６において指定可能な命令に対応する実行コードを含む。
【００４５】
入出力処理プログラム１９４は、ＩＯユニット１０６や各種のフィールド機器との間で、入力データの取得および出力データの送信を管理するためのプログラムである。
【００４６】
Ｔｏｏｌインタフェース処理プログラム１９６は、サポート装置３００との間でデータを遣り取りするためのインタフェースを提供する。
【００４７】
スケジューラ１９８は、予め定められた優先度やシステムタイマの値などに従って、制御プログラムを実行するためのスレッドやプロシージャを生成する。
【００４８】
ユーザプログラム１８６は、上述したように、ユーザにおける制御目的に応じて作成される。ユーザプログラム１８６は、典型的には、ＣＰＵユニット１０４のプロセッサ１２０で実行可能なオブジェクトプログラム形式になっている。ユーザプログラム１８６は、サポート装置３００などにおいて、ラダー形式やファンクションブロック形式で記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラムは、サポート装置３００からＣＰＵユニット１０４へ転送され、不揮発性メモリ１２８などに格納される。
【００４９】
ＰＬＣ１００は、図２および図３を用いて説明した構成を備えており、プロセッサ１２０がシステムプログラム１８８およびユーザプログラム１８６を実行することにより、「制御対象を制御するためのユーザプログラムを実行する命令実行部」として機能する。また、ＰＬＣ１００は、プロセッサ１２０がＤＢアクセス処理プログラム１９２およびユーザプログラム１８６を実行することにより、「データベース装置４００へアクセスするためのアクセス命令を含むユーザプログラムの命令実行部による実行時に、アクセス命令に応じた命令文によるデータベース装置４００への通信インタフェースを介したアクセスを制御するアクセス処理部」として機能する。ＰＬＣ１００は、ＤＢアクセス処理プログラム１９２を実行することで、後述する処理によりＤＢ接続サービスの動作モードを第１のモード（稼働モード）または第２のモード（テストモード）のいずれかにより動作させる。ＰＬＣ１００は、プロセッサ１２０が、ユーザプログラム１８６に含まれるアクセス命令に応じてＤＢアクセス処理プログラム１９２を実行することにより、「第１のモードにおいて、アクセス命令に応じた命令文（ＳＱＬ文）をデータベース装置４００へ送信し、その命令文の応答結果をユーザプログラム１８６へ応答し、第２のモードにおいて、データベース装置４００への命令文を送信することなく命令文に対応する実行結果をユーザプログラム１８６へ応答する」機能を発揮する。
【００５０】
＜Ｃ．サポート装置３００の構成＞
次に、本実施の形態に係るサポート装置３００について説明する。サポート装置３００は、ＰＬＣ１００のＣＰＵユニット１０４の使用を支援するためのものであり、ＰＬＣ１００との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。
【００５１】
図４は、本実施の形態に係るＰＬＣ１００に接続して用いられるサポート装置３００のハードウェア構成を示す模式図である。サポート装置３００は、典型的には、汎用のコンピュータで構成される。
【００５２】
図４を参照して、サポート装置３００は、ＯＳを含む各種プログラムを実行するＣＰＵ３０２と、ＢＩＯＳや各種データを格納するＲＯＭ（Read  Only  Memory）３０４と、ＣＰＵ３０２でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ３０６と、ＣＰＵ３０２で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）３０８とを含む。より具体的には、ハードディスク３０８には、サポート装置３００が提供する機能を実現するためのサポートプログラム３３０が格納されている。
【００５３】
サポート装置３００は、さらに、ユーザからの操作を受け付けるキーボード３１０およびマウス３１２と、情報をユーザに提示するためのモニタ３１４とを含む。さらに、サポート装置３００は、ＰＬＣ１００（ＣＰＵユニット１０４）などと通信するための通信インタフェース（ＩＦ）３１８を含む。
【００５４】
サポート装置３００で実行されるサポートプログラム３３０などは、光学記録媒体３３２に格納されて流通する。光学記録媒体３３２に格納されたプログラムは、光学ディスク読取装置３１６によって読み取られ、ハードディスク３０８などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００５５】
サポート装置３００は、通信ＩＦ３１８によってＰＬＣ１００と接続する。サポート装置３００は、ＣＰＵ３０２がサポートプログラム３３０を実行することで、「ＤＢアクセス処理プログラム１９２によるユーザプログラム１８６への応答結果をＰＬＣ１００から受信する受信処理部」と、「受信処理部により受信した上記の応答結果をモニタ３１４に表示させる表示処理部」としての機能を発揮する。
【００５６】
＜Ｄ．データベース装置４００の構成＞
次に、本実施の形態に係るデータベース装置４００について説明する。データベース装置４００としては、データベースを提供する公知の構成を採用することができる。このようなデータベースとしては、リレーショナルデータ型やオブジェクトデータ型といった任意の構成を採用できる。データベース装置４００は、汎用的なコンピュータアーキテクチャに従って構成されるため、ここではその詳細な説明は繰り返さない。
【００５７】
データベース装置４００は、ＰＬＣ１００からの接続要求やアクセス要求（リレーショナルデータ型では、ＳＱＬ文）を受けて、必要な処理を実行し、その処理結果などをＰＬＣ１００へ応答する。
【００５８】
＜Ｅ．ＤＢ（データベース）へのアクセス処理およびロギングの概要＞
次に、本実施の形態に係る制御システム１において、ＰＬＣ１００がデータベース装置４００へアクセスする処理の概要を説明する。図５は、本実施形態におけるＰＬＣ１００とデータベース装置４００との通信処理の概要およびロギングの概要を示す図である。
【００５９】
本実施形態のＰＬＣ１００のＣＰＵユニット１０４は、ＤＢ接続サービスによってデータベース装置４００へのアクセス処理を行う。ＤＢ接続サービスは、複数の動作モードを切り替えて動作する。本実施形態では、ＤＢ接続サービスは、動作モードとして稼働モード（第１のモード）とテストモード（第２のモード）とを切り替えて動作する。
【００６０】
稼働モードとは、ＰＬＣ１００を、データベース装置４００などの他のシステムと接続した状態で制御システム１を運転させる場合や試運転させる場合に使用する動作モードである。テストモードとは、ＰＬＣ１００を、他のシステムと接続しない状態で、他のシステムに接続するための命令（本実施形態では、ＤＢ接続命令）を使用したユーザプログラム１８６の動作確認時に使用する動作モードである。本実施形態では、ＤＢ接続サービスは、テストモードで動作する場合に、データベース装置４００へのＳＱＬ文の送信を実行せずＤＢ接続サービスを正常終了する。図５では、ＣＰＵユニット１０４のＤＢ接続サービスが稼働モードによって動作する場合を示す。
【００６１】
ユーザプログラム１８６に、データベース装置４００へアクセスするための命令（例えば、図５のＤＢ接続命令「ＤＢ＿Ｉｎｓｅｒｔ」）が指定されているとする。ＣＰＵユニット１０４は、ＤＢ接続サービスを稼働モードで動作させる場合、ＤＢ接続命令の実行タイミングになると、ＤＢアクセス処理プログラム１９２（図３）の対応する命令コードを呼び出して、データベース装置４００への接続要求を含むＳＱＬ文を生成し、生成したＳＱＬ文をデータベース装置４００へ送信する。ＤＢアクセス処理プログラム１９２によって、ＤＢ接続サービスが実現されている。ユーザプログラム１８６内のＤＢ接続命令が実行されることによって、ＤＢ接続サービスがトリガーされる。ＤＢ接続サービスは、ＳＱＬ文を生成し、生成したＳＱＬ文をＤＢアクセス機能へ渡す。ＤＢアクセス機能は、各種のデータベースシステムにアクセスするために用意されているドライバソフトウェアである。ＤＢアクセス機能は、上位通信コントローラ１６０（図２）およびＤＢアクセス処理プログラム１９２（図３）によって実現される機能であり、ＤＢ接続サービスから受け取ったＳＱＬ文を、ネットワーク１１２を経由してデータベース装置４００へ送信する。
【００６２】
データベース装置４００は、ＰＬＣ１００からのＳＱＬ文を受信すると、受信したＳＱＬ文に従って処理を実行し、必要に応じて、その結果をＰＬＣ１００へ応答する。
【００６３】
また、本実施の形態に係るログ出力機能は、プログラムにより定められた所定の処理の実行に伴って出力されるログ（以下「実行ログ」とも称す。）や、プログラムの実行失敗やハードウェアの不具合の発生に伴って出力されるログ（以下「イベントログ」とも称す。）を出力することが可能になっている。稼働ログ１８４は、これらのすべてのログを含む。本実施形態では、ＰＬＣ１００は、後述するように、ＰＬＣ１００に装着されるメモリカード等の記録媒体に稼働ログ１８４を書き込む例を説明する。メモリカード等の記録媒体は、稼働ログ１８４をログファイルとして格納している。
【００６４】
実行ログは、予め定められた種類の処理が実行された際に、その処理内容を時刻情報と関連付けて記録した情報である。この実行ログによって、ユーザプログラム１８６において指定された処理が実行されたことを確認することができる。実行ログは、基本的には、ＰＬＣ１００が稼働中（プログラムによって予め定められた種類の処理を実行している状態）であるときに、常にロギングを行う。イベントログは、指定された処理の実行が失敗したような場合に、その処理内容を時刻情報と関連付けて記録した情報である。典型的には、指定された処理がエラーなどで中断したような場合に、その内容がロギングされる。例えば、ＤＢ接続サービスは、ＤＢ接続命令に応じて生成したＳＱＬ文を、時刻情報と対応付けてログとして出力する。
【００６５】
図５には、ユーザプログラム１８６においてデータベース装置４００への接続命令が定義されている例を示す。図５の例では、ユーザは、サポート装置３００で実行されるサポートプログラムによって、データベース装置４００への接続命令を含むプログラムを作成している。サポート装置３００は、作成されたプログラムを、ＰＬＣ１００で実行可能な形式に変換し、変換されたユーザプログラムを、サポート装置３００からＰＬＣ１００へ送信する。但し、ユーザプログラム１８６に定義される命令は任意に定義でき、この定義される命令の種類は、本発明の範囲に何ら影響を与えるものではない。
【００６６】
ＤＢ接続サービスは、このＤＢ接続命令の実行（ＳＱＬ文の作成および送信）に応答し、当該命令によって指定された情報を時刻情報と関連付けて（つまり、実行ログとして）稼働ログ１８４（図５に示す例では、メモリカード１７２に格納されるログファイル１８４２）に書き込む。つまり、ＰＬＣ１００の稼働状況のログが保存される。このとき、ユーザは、稼働ログ１８４への実行ログの書き込みを明示的に指示する必要はなく、ＤＢ接続命令が実行されると、ＤＢ接続サービスが自動的に稼働状況を稼働ログ１８４へ書き込むようなシステム環境が構築されている。
【００６７】
なお、稼働ログ１８４の書き込み先は、メモリカード１７２に限らず、主メモリ１２６や不揮発性メモリ１２８（図２）であってもよいし、あるいは、ＰＬＣ１００の外部にある記憶装置であってもよい。但し、ＰＬＣ１００の電源が遮断された場合であっても、これらの稼働ログ１８４を保持できる記憶装置が好ましい。
【００６８】
図６は、本実施形態におけるＰＬＣ１００がテストモードで動作する場合の通信処理の概要およびロギングの概要を示す図である。ＤＢ接続サービスをテストモードまたは稼働モードのいずれで動作させるかは、サポート装置３００から指示を与えることができる。
【００６９】
テストモードでの動作について、ＤＢ接続サービスが稼働モードで動作する場合と比較する。ＤＢ接続サービスは、テストモードでの動作時に、ＤＢ接続命令に応じてＳＱＬ文を生成し、生成したＳＱＬ文をデータベース装置４００へ送信することなくＳＱＬ文の実行結果をユーザプログラム１８６へ応答する。ＤＢ接続サービスは、ＳＱＬ文の実行がデータベース装置４００において正常に行われたことを示す応答と、ＳＱＬ文の実行がデータベース装置４００においてエラーとなったことを示す応答のいずれかをユーザプログラム１８６へ出力する（いずれの応答を出力するかは設定可能となっている）。例えば、サポート装置３００を用いてユーザプログラム１８６のデバッグを行う場合に、ＣＰＵユニット１０４のＤＢ接続サービスをテストモードで動作させ、データベース装置４００において処理が正常に行われたことを示す応答と、データベース装置４００における処理にエラーが発生したことを示す応答とのそれぞれについてユーザプログラム１８６の動作の確認を行いたい場合などがある。
【００７０】
ＤＢ接続サービスは、テストモードで動作する場合も、ＤＢ接続命令に応じて生成するＳＱＬ文を稼働ログ１８４へ書き込む。これにより、ユーザプログラム１８６のデバッグを容易にする。
【００７１】
また、サポート装置３００は、テストモードにおけるＤＢ接続サービスの応答時間を設定することができる。上記のように、ＤＢ接続サービスは、テストモードで動作する場合はＳＱＬ文をデータベース装置４００へ送信することなくユーザプログラム１８６へ応答する。ここで、ユーザは、サポート装置３００を操作することでＤＢ接続サービスの応答時間を設定し、ユーザプログラム１８６に含まれるＤＢ接続命令によってＤＢ接続サービスを呼び出した後、設定した応答時間が経過してからＤＢ接続サービスに応答結果を出力させるようにすることができる。これにより、想定されるデータベース装置４００からの応答時間を考慮して、ＤＢ接続サービスをテストモードにしてユーザプログラム１８６のデバッグを行うことができる。
【００７２】
＜Ｆ．稼働ログ１８４＞
図７を参照して、ＰＬＣ１００が記録する稼働ログ１８４について説明する。図７は、稼働ログ１８４を示す図である。稼働ログ１８４に記録されるログは、エントリ１８４Ａと、日時１８４Ｂと、カテゴリ１８４Ｃと、ログ名１８４Ｄと、結果１８４Ｅと、コネクション名１８４Ｆと、シリアルＩＤ１８４Ｇと、テーブル名１８４Ｈと、ＳＱＬ文１８４Ｊとを含む。
【００７３】
日時１８４Ｂは、ログの取得対象となる処理が発生した時刻を示す。カテゴリ１８４Ｃは、ログの属性を示す。ログ名１８４Ｄは、ログの内容を一見して把握できる情報を含む。結果１８４Ｅは、処理の結果を示すコードが含まれ、例えばデータベース装置４００との接続が成功したか失敗したかを示す情報が含まれる。ＤＢコネクション名１８４ＦおよびシリアルＩＤ１８４Ｇは、主として、ＤＢ接続に関する情報であり、予め設定されている接続の設定のうち、いずれの設定が使用されたかといった情報を含む。１８４Ｈは、ＰＬＣ１００が接続したデータベーステーブルを識別する情報を含む。ＳＱＬ文１８４Ｊは、ＤＢ接続サービスがＤＢ接続命令に応じて生成したＳＱＬ文を示す。
【００７４】
＜Ｇ．処理手順＞
次に、本実施の形態にかかるＰＬＣ１００とデータベース装置４００との通信処理およびロギングの処理について説明する。図８は、本実施の形態にかかるＰＬＣ１００における処理手順およびデータベース装置４００の処理手順を示すフローチャートである。図８において、ＤＢ接続サービス（ＤＢアクセス処理プログラム）は、稼働モードにより動作している。
【００７５】
図８に示す各ステップは、ＣＰＵユニット１０４のプロセッサ１２０がユーザプログラム１８６およびシステムプログラム１８８をそれぞれ実行することで実現される。なお、図８には、ユーザプログラム１８６およびシステムプログラム１８８が互いに独立して実行される例を示すが、両プログラムを包含する単一のプログラムを実行するようにしてもよい。
【００７６】
図８を参照して、ユーザプログラム１８６の実行に関して、プロセッサ１２０は、予め格納されているユーザプログラム１８６をロードし、ロードしたユーザプログラム１８６を予め定められた周期で繰り返し実行する。なお、このロードされるユーザプログラム１８６は、コンパイルされて実行可能なオブジェクト形式になっているものとする。但し、ユーザによって作成されたソースコードのままロードする、あるいは、ソースコードを中間コードにコンパイルしたものをロードするようにしてもよい。この場合には、ロードされたコードを逐次コンパイルしつつ、プロセッサ１２０は、処理を実行することになる。すなわち、プロセッサ１２０は、ユーザプログラム１８６に含まれる命令に従って、必要に応じてシステムプログラム１８８を呼び出しつつ、指定された処理を実行する。
【００７７】
ステップＳ１０１において、プロセッサ１２０は、ユーザプログラム１８６に含まれる命令に従って処理を実行し、データベース装置４００へアクセスするための命令を実行すると、ＤＢアクセス処理プログラム１９２によるデータベース装置４００へのアクセス処理を開始する。
【００７８】
ステップＳ２０１において、プロセッサ１２０は、ＤＢアクセス処理プログラム１９２によってデータベース装置４００へのアクセスを実行するため、ユーザプログラム１８６に含まれる、データベース装置４００へアクセスするための命令に応じた命令文（ＳＱＬ文）を生成する。
【００７９】
ステップＳ２０３において、プロセッサ１２０は、生成したＳＱＬ文をデータベース装置４００へ送信し、この送信処理に係るログを稼働ログ１８４に保存する。
【００８０】
ステップＳ２０５において、プロセッサ１２０は、データベース装置４００との通信のタイムアウト期間を設定するとともに、通信タイムアウトが発生するまでデータベース装置４００からの応答を受け付ける。
【００８１】
ステップＳ４０１において、データベース装置４００は、ＰＬＣ１００から送信されるＳＱＬ文を受信し、受信したＳＱＬ文を実行する。
【００８２】
ステップＳ４０３において、データベース装置４００は、ＳＱＬ文の実行結果をＰＬＣ１００へ応答する。
【００８３】
ステップＳ２０７において、プロセッサ１２０は、データベース装置４００との通信に設定したタイムアウト期間が経過する前にデータベース装置４００におけるＳＱＬ文の実行結果を示す応答をデータベース装置４００から受信すると、データベース装置４００からの応答をＤＢアクセス処理プログラム１９２からユーザプログラム１８６へ渡す。また、プロセッサ１２０は、データベース装置４００から受信した応答結果に関するログを稼働ログ１８４に保存する。
【００８４】
ステップＳ１０３において、プロセッサ１２０は、ＳＱＬ文の実行結果に応じてユーザプログラム１８６を実行する。
【００８５】
（テストモードにおけるＤＢ接続サービスの動作）
次に、図９を参照して、テストモードにおけるＤＢ接続サービス（ＤＢアクセス処理プログラム）の動作について説明する。図９は、テストモードにおけるＰＬＣ１００の処理手順を示すフローチャートである。上述したように、テストモードにおいて、ＤＢ接続サービスは、ユーザプログラム１８６に含まれるＤＢ接続命令によって呼び出され、サポート装置３００等によって設定された応答時間の経過後に応答結果を出力するものとする。
【００８６】
ステップＳ１０１において、プロセッサ１２０は、ユーザプログラム１８６に含まれる命令に従って処理を実行し、データベース装置４００へアクセスするための命令を実行すると、ＤＢアクセス処理プログラム１９２を動作させる。
【００８７】
ステップＳ２０１において、プロセッサ１２０は、ＤＢアクセス処理プログラム１９２によって、ユーザプログラム１８６に含まれる、データベース装置４００へアクセスするための命令に応じた命令文（ＳＱＬ文）を生成する。
【００８８】
ステップＳ２１１において、プロセッサ１２０は、設定された応答時間が経過するまで待機する。
【００８９】
ステップＳ２１３において、プロセッサ１２０は、ステップＳ２０１で生成したＳＱＬ文を稼働ログ１８４に保存する。
【００９０】
ステップＳ２１５において、プロセッサ１２０は、生成したＳＱＬ文をデータベース装置４００へ送信することなく、生成したＳＱＬ文に対応する命令実行結果をＤＢアクセス処理プログラム１９２からユーザプログラム１８６へ応答する。
【００９１】
ステップＳ１０３において、プロセッサ１２０は、ＳＱＬ文の実行結果に応じてユーザプログラム１８６を実行する。
【００９２】
以上の図８および図９に示した処理により、ＤＢ接続サービスは、稼働モードとテストモードとを切り替えて動作する。
【００９３】
＜Ｈ．ログの取得＞
ＰＬＣ１００によって記録される稼働ログ１８４は、例えば、サポート装置３００によって取得され、ユーザは、サポート装置３００を操作することによって稼働ログ１８４を参照することができる。例えば、サポート装置３００は、以下のようにして稼働ログ１８４をＰＬＣ１００から取得する。すなわち、サポート装置３００は、ＰＬＣ１００と通信し、ＰＬＣ１００のシステムプログラム１８８によって稼働ログ１８４をメモリから読み出して、読み出された稼働ログ１８４をＰＬＣ１００からサポート装置３００へ応答させる。
【００９４】
図１０は、サポート装置３００が稼働ログ１８４を取得するための処理を示すフローチャートである。
【００９５】
ステップＳ３１１において、サポート装置３００は、ＰＬＣ１００に対し、稼働ログ１８４の取得を指示する。
【００９６】
ステップＳ２２１において、プロセッサ１２０は、システムプログラム１８８を実行することにより、稼働ログの取得の指示に応じて稼働ログ１８４を取得する。
【００９７】
ステップＳ２２３において、プロセッサ１２０は、システムプログラム１８８の処理により、取得した稼働ログ１８４をユーザプログラム１８６へ応答する。
【００９８】
ステップＳ３１３において、サポート装置３００は、ＰＬＣ１００から稼働ログ１８４を取得し、取得した稼働ログ１８４をモニタ３１４に表示する。
【００９９】
ユーザプログラム１８６の実行によって稼働ログ１８４を読み出すことで、例えばユーザプログラム１８６の任意の命令の実行後に稼働ログ１８４を取得することができ、ユーザは、ＰＬＣ１００とデータベース装置４００との通信における不具合等の原因に対処することができる。
【０１００】
この他にも、ユーザプログラムに所定の命令を含めることによって、稼働ログ１８４をメモリから読み出すこととしてもよい。ユーザは、サポート装置３００を操作して、ユーザプログラム１８６にログ取得命令を含ませることができる。プロセッサ１２０は、ユーザプログラム１８６のログ取得命令により、システムプログラム１８８またはＤＢアクセス処理プログラム１９２を呼び出しつつ稼働ログ１８４を読み出す処理を実行する。ユーザプログラム１８６が稼働ログ１８４を読み出すことで、例えばサポート装置３００において稼働ログ１８４を表示することができる。
【０１０１】
＜Ｉ．サポート装置３００による動作モードの指示の例＞
ＣＰＵユニット１０４のＤＢ接続サービスを稼働モードとテストモードのいずれの動作モードで動作させるかを切り替える処理は、例えば、サポート装置３００の指示に基づきＰＬＣ１００のシステムプログラム１８８が行うこととしてもよい。
【０１０２】
図１１は、サポート装置３００がテストモードでの動作指示をＰＬＣ１００に与える処理手順の例を示す図である。
【０１０３】
ステップＳ３０１において、サポート装置３００は、ＣＰＵユニット１０４のＤＢ接続サービスをテストモードで動作させるための入力操作をユーザから受け付ける。
【０１０４】
ステップＳ３０３において、サポート装置３００は、ステップＳ３０１における入力操作に応じて、動作モードを切り替えるための指示をＣＰＵユニット１０４へ送信する。
【０１０５】
ステップＳ１２１において、ＣＰＵユニット１０４のプロセッサ１２０は、システムプログラム１８８の機能によってサポート装置３００と通信し、サポート装置３００から、動作モードを切り替えるための指示を受け付ける。プロセッサ１２０は、サポート装置３００から受け付けた指示に従って、ＤＢ接続サービスの動作モードを設定する。
【０１０６】
ステップＳ１２３において、プロセッサ１２０は、ＤＢ接続サービスの動作モードの設定変更が完了すると、設定が完了したことをサポート装置３００へ通知する。
【０１０７】
ステップＳ３０５において、サポート装置３００は、ＤＢ接続サービスの動作モードの設定変更が完了したことをＣＰＵユニット１０４から受信する。
【０１０８】
このようにして、サポート装置３００は、ユーザの入力操作に応じてＰＬＣ１００のＤＢ接続サービスの動作モードを切り替えることができ、ユーザによるデバッグを容易にすることができる。
【０１０９】
この他にも、ユーザプログラムに、ＤＢ接続サービスを稼働モードとテストモードのいずれで動作させるかを指定する命令を含めることができることとしてもよい。ユーザは、サポート装置３００を用いたプログラムの作成時に、ＤＢ接続サービスを稼働モードとテストモードのいずれで動作させるかを定義する。サポート装置３００によって、動作モードの指定を含むユーザプログラムが生成され、ＰＬＣ１００へ送信されると、ＰＬＣ１００は、ユーザプログラムの実行時に、動作モードの指定に従って動作する。
【０１１０】
＜Ｊ．ユーザインタフェースの例＞
図１２は、本実施形態にかかるサポート装置３００において提供されるユーザインタフェースの一例を示す図である。サポート装置３００は、稼働ログ１８４をサポート装置３００のモニタに表示させることができる。
【０１１１】
サポート装置３００は、例えば、上記の図１０で示した手順により、稼働ログ１８４をＰＬＣ１００から取得する。
【０１１２】
図１２に示すように、表示画面３８０は、稼働ログ１８４を一覧にして表示する。稼働ログ表示部３８８の各エントリ（エントリ３８１、エントリ３８２、エントリ３８３、エントリ３８４）は、稼働ログ１８４（図７に示す）に含まれる各種のデータを表示する。
【０１１３】
サポート装置３００は、例えば取得ボタン３９０を表示画面３８０に含めて表示し、ユーザから取得ボタン３９０に対する入力操作を受け付けることにより、ＰＬＣ１００から稼働ログ１８４を取得することとしてもよい。例えば、取得ボタン３９０に対する入力操作を受け付けることにより、上記の図１０で示した手順をサポート装置３００に実行させることとしてもよい。また、ユーザが選択しているエントリ（図１２では、エントリ３８１を枠で強調して示すことにより、エントリ３８１がユーザによって選択されていることを示す）について、詳細な情報を稼働ログ表示部３８８に表示することとしてもよい。例えば、図１２の例では、エントリ３８１において、ＤＢ接続サービスが生成したＳＱＬ文のログを詳細情報３８９に表示している。
【０１１４】
上述したような構成を採用することで、ユーザは、ＰＬＣを他のシステム（データベースシステムなど）と接続する構成とする場合に、実際の他のシステムとＰＬＣとを通信させずとも、ＰＬＣのＤＢ接続サービスをテストモードで動作させることにより、ＰＬＣと他のシステムとを協働させて動作するユーザプログラムのデバッグを容易にしている。
【０１１５】
また、上記の実施形態の説明では、サポート装置３００が稼働ログ１８４をモニタに表示するため、例えばＰＬＣ１００がサポート装置３００から稼働ログ１８４の読み出し要求をシステムプログラム１８８によって受け付けた場合に、稼働ログ１８４を所定のメモリから読み出してサポート装置３００へ応答する例を説明した。この他にも、例えばＣＰＵユニット１０４がＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバ機能を備え、ＦＴＰクライアントソフトによってＣＰＵユニット１０４にログインし、ＦＴＰクライアントソフトが稼働ログ１８４をＦＴＰによって取得することとしてもよい。
【０１１６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１７】
１  制御システム、１０  検出スイッチ、２０  リレー、３０  サーボモータドライバ、３２  モータ、１００  ＰＬＣ、１０２  電源ユニット、１０４  ＣＰＵユニット、１０６  ＩＯユニット、１０８  ＰＬＣシステムバス、１１０  フィールドバス、１１２  ネットワーク、１１４  接続ケーブル、１２０  プロセッサ、１２２  チップセット、１２４  システムクロック、１２６  主メモリ、１２８  不揮発性メモリ、１３０  ＵＳＢコネクタ、１４０  ＰＬＣシステムバスコントローラ、１４２，１５２，１６２  バッファメモリ、１４４  ＰＬＣシステムバス制御回路、１４６，１５６，１６６  ＤＭＡ制御回路、１４８  ＰＬＣシステムバスコネクタ、１５０  フィールドバスコントローラ、１５４  フィールドバス制御回路、１５８  フィールドバスコネクタ、１６０  上位通信コントローラ、１６４  上位通信制御回路、１６８  上位通信コネクタ、１７０  メモリカードインターフェイス、１７２  メモリカード、１８０  ＯＳ、１８４  稼働ログ、１８４Ｊ  ＳＱＬ文、１８４２  ログファイル、１８６  ユーザプログラム、１８８  システムプログラム、１９０  シーケンス命令プログラム、１９２  アクセス処理プログラム、１９４  入出力処理プログラム、１９６  インタフェース処理プログラム、１９８  スケジューラ、２００  リモートＩＯターミナル、２０２  通信カプラ、２０８  ターミナルバス、３００  サポート装置、３０２  ＣＰＵ、３０４  ＲＯＭ、３０６  ＲＡＭ、３０８  ハードディスク、３１０  キーボード、３１２  マウス、３１４  モニタ、３１６  光学ディスク読取装置、３３０  サポートプログラム、３３２  光学記録媒体、３８８  稼働ログ表示部、３８９  詳細情報表示部、４００  データベース装置。
【図１】
2014157506.tif 000003
【図２】
2014157506.tif 000004
【図３】
2014157506.tif 000005
【図４】
2014157506.tif 000006
【図５】
2014157506.tif 000007
【図６】
2014157506.tif 000008
【図７】
2014157506.tif 000009
【図８】
2014157506.tif 000010
【図９】
2014157506.tif 000011
【図１０】
2014157506.tif 000012
【図１１】
2014157506.tif 000013
【図１２】
2014157506.tif 000014