(57)【特許請求の範囲】
【請求項１】
ユーザプログラム中の最後のＥＮＤ命令以外の複数の命令を順に実行し、ＥＮＤ命令処理手段による前記ＥＮＤ命令の実行後に再び前記ユーザプログラム中の前記複数の命令を順に実行する命令実行手段と、
前記命令実行手段での処理に使用されるデータを表形式で保持するデータベースを格納するデータベース格納手段と、
前記命令中に前記データベースへのアクセス用命令が含まれる場合に、前記アクセス用命令をデータベース問い合わせ言語によるデータベース問い合わせ用命令に変換するデータベース問い合わせ用命令生成手段と、
前記データベース格納手段中の前記データベースにアクセスし、前記データベース問い合わせ用命令で指定されるデータを取得するデータベース管理手段と、
前記命令実行手段による前記ユーザプログラム中の前記複数の命令の実行後に、前記データベース問い合わせ用命令を実行した結果の取得処理を含む前記ＥＮＤ命令を実行するＥＮＤ命令処理手段と、
を備え、
前記ＥＮＤ命令処理手段は、発行された前記データベース問い合わせ用命令に対応する処理が完了した場合には、前記データベース管理手段で取得された前記データをユーザデータ記憶手段の前記データベースへの前記アクセス用命令で指定されるアドレスに書き込んで完了確認処理を行い、発行された前記データベース問い合わせ用命令に対応する処理が完了していない場合には、つぎのＥＮＤ命令の実行時に前記完了確認処理を行うことを特徴とするプログラマブルコントローラ。
【請求項２】
前記アクセス用命令は、前記データベース格納手段中の前記データベースを指定するデータベース指定情報および前記データベース中のテーブル名を含むアクセス対象指定条件を引数として含むことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記アクセス用命令は、前記データベース中から所望のデータを取得する命令であり、引数として、前記アクセス対象指定条件で検索した結果を格納する格納位置をさらに含み、
前記アクセス対象指定条件は、前記テーブル内で取得するデータのフィールドを含むことを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記アクセス用命令は、前記データベース中にデータを書込む命令であり、引数として、書込みたい前記データをさらに含み、
前記アクセス対象指定条件は、前記テーブル内で前記データを書込みたいフィールドを含むことを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項５】
前記アクセス対象指定条件のそれぞれは、前記ユーザデータ記憶手段の所定の位置に格納され、
前記引数は、前記アクセス対象指定条件の前記ユーザデータ記憶手段内での格納位置で表現されることを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項６】
前記データベース問い合わせ用命令生成手段は、前記アクセス用命令の引数を前記データベース問い合わせ用命令の引数と対応付けた命令変換情報に基づいて前記アクセス用命令から前記データベース問い合わせ用命令を生成することを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項７】
ユーザプログラム中の複数の命令を順に実行する命令実行手段と、
前記命令実行手段での処理に使用されるデータを表形式で保持するデータベースを格納するデータベース格納手段と、
前記データベース格納手段中の前記データベースに含まれるデータを取得する条件が規定されるデータベースアクセス用設定情報を記憶するシステムデータ記憶手段と、
前記命令中にデータベースへのアクセス指示がある場合に、前記システムデータ記憶手段中の前記データベースアクセス用設定情報をデータベース問い合わせ言語によるデータベース問い合わせ用命令に変換するデータベース問い合わせ用命令生成手段と、
前記データベース格納手段中の前記データベースにアクセスし、前記データベース問い合わせ用命令で指定されるデータへアクセスするデータベース管理手段と、
を備え、
前記データベースアクセス用設定情報は、前記データベース格納手段中の前記データベースを指定するデータベース指定情報および前記データベース中のテーブル名を含むアクセス対象指定条件を含み、
前記データベース問い合わせ用命令生成手段は、前記データベースアクセス用設定情報に含まれる情報を、前記データベース問い合わせ用命令の引数と対応付けた命令変換情報に基づいて前記データベースアクセス用設定情報から前記データベース問い合わせ用命令を生成することを特徴とするプログラマブルコントローラ。
【請求項８】
前記データベースアクセス用設定情報は、前記データベース中から所望のデータを取得する命令を実行させる情報であり、前記アクセス対象指定条件で検索した結果を格納する格納位置をさらに含み、
前記アクセス対象指定条件は、前記テーブル内で取得するデータのフィールドを含むことを特徴とする請求項７に記載のプログラマブルコントローラ。
【請求項９】
前記データベース問い合わせ用命令生成手段は、前記データベースアクセス用設定情報の前記アクセス対象指定条件と前記格納位置を、前記データベース問い合わせ用命令の引数と対応付けた命令変換情報に基づいて前記データベースアクセス用設定情報から前記データベース問い合わせ用命令を生成することを特徴とする請求項８に記載のプログラマブルコントローラ。
【請求項１０】
前記データベースアクセス用設定情報は、前記データベース中にデータを書込む命令を実行させる情報であり、書込みたい前記データをさらに含み、
前記アクセス対象指定条件は、前記テーブル内で前記データを書込みたいフィールドを含むことを特徴とする請求項７に記載のプログラマブルコントローラ。
【請求項１１】
前記データベース問い合わせ用命令生成手段は、前記データベースアクセス用設定情報の前記アクセス対象指定条件と前記書込みたいデータを、前記データベース問い合わせ用命令の引数と対応付けた命令変換情報に基づいて前記データベースアクセス用設定情報から前記データベース問い合わせ用命令を生成することを特徴とする請求項１０に記載のプログラマブルコントローラ。
【請求項１２】
前記プログラマブルコントローラは、ネットワークを介してデータベースを有する他のプログラマブルコントローラと接続され、
前記データベース指定情報には、ネットワークを介して接続される前記他のプログラマブルコントローラの前記データベース格納手段中の前記データベースを指定可能であることを特徴とする請求項７に記載のプログラマブルコントローラ。
【請求項１３】
ユーザデータ記憶手段と、通常の命令の実行処理に使用されるデータを表形式で保持するデータベースを格納するデータベース格納手段と、を備え、ユーザプログラム中の最初の通常の命令から最後に記述されたＥＮＤ命令までを順に繰り返し実行するプログラマブルコントローラで、前記通常の命令の実行処理に前記データベースへアクセスするプログラマブルコントローラのテーブルデータアクセスプログラムであって、
前記プログラマブルコントローラに、
前記通常の命令中に前記データベースへのアクセス用命令が含まれる場合に、前記アクセス用命令をデータベース問い合わせ言語によるデータベース問い合わせ用命令に変換するデータベース問い合わせ用命令生成手順と、
前記データベース格納手段中の前記データベースにアクセスし、前記データベース問い合わせ用命令で指定される前記データベース中のデータにアクセスして所定の処理を行うデータベース管理手順と、
前記データベース問い合わせ用命令を実行した結果の取得処理を含むＥＮＤ命令を実行するＥＮＤ命令処理手順と、
を実行させ、
前記ＥＮＤ命令処理手順では、発行された前記データベース問い合わせ用命令に対応する処理が完了した場合には、前記データベース管理手順で取得された前記データを前記ユーザデータ記憶手段の前記データベースへの前記アクセス用命令で指定されるアドレスに書き込んで完了確認処理を行い、発行された前記データベース問い合わせ用命令に対応する処理が完了していない場合には、つぎのＥＮＤ命令の実行時に前記完了確認処理を行うことを特徴とするプログラマブルコントローラのテーブルデータアクセスプログラム。
【請求項１４】
ユーザデータ記憶手段と、通常の命令の実行処理に使用されるデータを表形式で保持するデータベースを格納するデータベース格納手段と、前記データベース格納手段中の前記データベースに含まれるデータを取得する条件が規定されるデータベースアクセス用設定情報を記憶するシステムデータ記憶手段と、を備え、ユーザプログラム中の最初の通常の命令から最後に記述されたＥＮＤ命令までを順に繰り返し実行するプログラマブルコントローラで、前記通常の命令の実行処理に前記データベースへアクセスするプログラマブルコントローラのテーブルデータアクセスプログラムであって、
前記プログラマブルコントローラに、
前記通常の命令中にデータベースアクセス指示がある場合に、前記システムデータ記憶手段中の前記データベースアクセス用設定情報をデータベース問い合わせ言語によるデータベース問い合わせ用命令に変換するデータベース問い合わせ用命令生成手順と、
前記データベース格納手段中の前記データベースにアクセスし、前記データベース問い合わせ用命令で指定されるデータにアクセスして所定の処理を実行するデータベース管理手順と、
を実行させ、
前記データベースアクセス用設定情報は、前記データベース格納手段中の前記データベースを指定するデータベース指定情報および前記データベース中のテーブル名を含むアクセス対象指定条件を含み、
前記データベース問い合わせ用命令生成手順では、前記データベースアクセス用設定情報に含まれる情報を、前記データベース問い合わせ用命令の引数と対応付けた命令変換情報に基づいて前記データベースアクセス用設定情報から前記データベース問い合わせ用命令を生成することを特徴とするプログラマブルコントローラのテーブルデータアクセスプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラマブルコントローラとその周辺装置、およびプログラマブルコントローラのテーブルデータアクセスプログラムに関するものである。
【背景技術】
【０００２】
プログラマブルコントローラは、ユーザによって作成されたシーケンスプログラムに従い、内部に有するデバイスデータをリード／ライトする。これによって、たとえば、プログラマブルコントローラに接続されたリレー、スイッチ、センサ等の入力装置の状態取得が行われ、またアクチュエータ、バルブなどの出力装置の制御が行われる。デバイスデータには、たとえば生産品のサイズと色などのレシピデータと、生産品毎の生産個数、不良品個数などの実績データも格納されている。そのため、運用者は、入出力装置の制御に必要なデータを、レシピデータから取得するようにシーケンスプログラムを作成することによって、生産品の変更を柔軟に行うことができる。また、制御結果を、実績データとして格納するようにシーケンスプログラムを作成すれば、生産にかかる部材の在庫管理などを容易に行うこともできる。【０００３】
レシピデータや実績データなどのデータは、上位の計算機システムが扱いやすいように、ＣＳＶ（Comma  Separated  Values）に代表される２次元のデータテーブル（以下、「テーブル」という）形式でプログラマブルコントローラ内に保存されるのが一般的である。プログラマブルコントローラがこれらのデータにアクセスするためには、これらのデータをデバイスメモリ上に読出さなければならない。テーブル内の要素であるテーブルデータ（レシピデータや実績データなど）を一意に特定するためには、テーブルの行（Column）番号と列（Row）番号を指定すればよい。しかし、デバイスメモリには行と列という概念が無くテーブルデータがデバイスメモリ上に連続的に配置されているため、プログラマブルコントローラがデバイスメモリ上のデバイスデータにアクセスする際には、デバイスアドレスを計算しなければならない。【０００４】
そこで、従来では、プログラマブルコントローラでも、１次元のデータを２次元のテーブルのデータとして扱うことができる技術が提案されている（たとえば、特許文献１）。ここでは、まず、テーブル識別番号、テーブル行数、テーブル列数およびテーブルの先頭デバイスアドレスを有するテーブル定義命令をテーブルごとに定義する。ついで、２次元のテーブルのデータ上での行番号および列番号を引数として用いて、読出し対象の要素を指定するテーブル要素読出し命令によって、１次元のデータから要素を抽出する。このとき、読出し対象の要素のデバイスアドレスは、テーブル定義命令の先頭デバイスアドレスおよびテーブル列数と、テーブル要素読出し命令の行番号および列番号と、を用いてデバイスメモリ上での読出し対象要素のデバイスアドレスを算出する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１９８１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載のプログラマブルコントローラでは、テーブルデータ中の読出し対象要素を読出す場合に、テーブルデータをデバイスメモリ上に読出す工程と、デバイスメモリ上で読出し対象要素を検索する工程と、の２つの工程が必要であった。そのため、読出し対象要素を検索するのに時間がかかるという問題点があった。また、デバイスメモリは、テーブルデータを読出すことができるだけの記憶容量を有している必要があり、プログラマブルコントローラの製造コストが増加する要因となっていた。【０００７】
この発明は上記に鑑みてなされたもので、データベースからデータを読出す際に、従来に比してデータベースからの読出しの工程数を少なくすることができるプログラマブルコントローラとプログラマブルコントローラのテーブルデータアクセスプログラムを得ることを目的とする。また、そのようなプログラマブルコントローラのプログラムをプログラミングすることができる周辺装置を得ることも目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、この発明にかかるプログラマブルコントローラは、ユーザプログラム中の最後のＥＮＤ命令以外の複数の命令を順に実行し、ＥＮＤ命令処理手段による前記ＥＮＤ命令の実行後に再び前記ユーザプログラム中の前記複数の命令を順に実行する命令実行手段と、前記命令実行手段での処理に使用されるデータを表形式で保持するデータベースを格納するデータベース格納手段と、前記命令中に前記データベースへのアクセス用命令が含まれる場合に、前記アクセス用命令をデータベース問い合わせ言語によるデータベース問い合わせ用命令に変換するデータベース問い合わせ用命令生成手段と、前記データベース格納手段中の前記データベースにアクセスし、前記データベース問い合わせ用命令で指定されるデータを取得するデータベース管理手段と、前記命令実行手段による前記ユーザプログラム中の前記複数の命令の実行後に、前記データベース問い合わせ用命令を実行した結果の取得処理を含む前記ＥＮＤ命令を実行するＥＮＤ命令処理手段と、を備え、前記ＥＮＤ命令処理手段は、発行された前記データベース問い合わせ用命令に対応する処理が完了した場合には、前記データベース管理手段で取得された前記データをユーザデータ記憶手段の前記データベースへの前記アクセス用命令で指定されるアドレスに書き込んで完了確認処理を行い、発行された前記データベース問い合わせ用命令に対応する処理が完了していない場合には、つぎのＥＮＤ命令の実行時に前記完了確認処理を行うことを特徴とする。
【発明の効果】
【０００９】
この発明によれば、データベース問い合わせ用命令生成手段によって、データベースへのアクセス用命令がデータベース問い合わせ言語によるデータベース問い合わせ用命令に変換され、データベース管理手段によって、データベース格納手段中のデータベースにアクセスし、データベース問い合わせ用命令で指定されるデータが取得され、ＥＮＤ命令処理手段によって、ユーザプログラム中のＥＮＤ命令処理時に、取得されたデータがユーザデータ記憶手段のアクセス用命令で指定されるアドレスに書込まれるので、プログラマブルコントローラでデータベースからデータを読出す際に、従来に比してデータベースからの読出しの工程数を少なくすることができるという効果を有する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態１によるプログラマブルコントローラの機能構成を模式的に示すブロック図である。
【図２】図２は、プログラム記憶部の構成を模式的に示す図である。
【図３】図３は、データベースの一例を示す図である。
【図４】図４は、DB_OPEN命令の内容の一例を示す図である。
【図５】図５は、DB_SELECT命令の内容の一例を示す図である。
【図６】図６は、DB_CLOSE命令の内容の一例を示す図である。
【図７】図７は、ラダープログラムにおけるデータベース読出し指示の一例を示す図である。
【図８】図８は、プログラマブルコントローラの全体処理の手順の一例を示すフローチャートである。
【図９】図９は、データベースアクセス用命令の実行処理の手順の一例を示すフローチャートである。
【図１０】図１０は、データベースアクセス用命令の処理の様子を模式的に示す図である。
【図１１】図１１は、データベースアクセス用命令からデータベース問い合わせ用命令の生成処理の一例を示す図である。
【図１２】図１２は、ＥＮＤ処理時の完了確認処理の手順の一例を示すフローチャートである。
【図１３】図１３は、実施の形態２によるプログラマブルコントローラの機能構成を模式的に示すブロック図である。
【図１４】図１４は、実施の形態２によるデータベースアクセス用設定情報の内容の一例を示す図である。
【図１５】図１５は、実施の形態２によるデータベース読出し指示のユーザプログラムの一例を示す図である。
【図１６】図１６は、データベースアクセス用設定情報からデータベース問い合わせ用命令を生成する際の命令変換情報の一例を示す図である。
【図１７】図１７は、ネットワークに接続された他のプログラマブルコントローラからデータを読出す場合の様子を模式的に示す図である。
【図１８】図１８は、エンジニアリングツールの機能構成の一例を模式的に示すブロック図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明にかかるプログラマブルコントローラとその周辺装置、およびプログラマブルコントローラのテーブルデータアクセスプログラムの好適な実施の形態を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、実施の形態１によるプログラマブルコントローラの機能構成を模式的に示すブロック図である。プログラマブルコントローラ１０は、ユーザプログラム記憶部１１と、ユーザデータ記憶手段であるユーザデータ記憶部１２と、データベース格納手段であるデータベース格納部１３と、システムプログラム記憶部１４と、演算部１５と、システムデータ記憶手段であるシステムデータ記憶部１６と、を備える。
【００１３】
ユーザプログラム記憶部１１は、プログラマブルコントローラ１０が実行するラダープログラムなどのユーザプログラムを記憶する。図２は、プログラム記憶部の構成を模式的に示す図である。ユーザプログラム１１１は、複数の命令１１１−１，１１１−２，・・・，１１１−Ｅの集合である。この命令１１１−１，１１１−２，・・・，１１１−Ｅの中に、データベースにアクセスするデータベースアクセス用命令が含まれているものとする。命令には、プログラム実行処理を実行する通常の命令１１１−１，１１１−２，・・・と、ユーザプログラム１１１の最後に実行されるＥＮＤ命令１１１−Ｅと、がある。なお、データベースアクセス用命令については、後述する。ユーザプログラム記憶部１１は、ＲＯＭ（Read  Only  Memory）またはＥＥＰＲＯＭ（Electrically  Erasable  ROM）などの不揮発性記憶装置によって構成される。
【００１４】
ユーザデータ記憶部１２は、ユーザプログラムの実行時に使用されるデータを記憶するデバイスメモリである。ユーザデータ記憶部１２は、データベースアクセス用命令の実行の際に必要な検索条件などを格納する検索条件格納領域１２１と、ユーザプログラムを実行する際に一時的にデータを退避する領域である退避領域１２２と、を有する。検索条件格納領域１２１には、取得するデータを有するデータベースの格納位置と、取得するデータの検索条件と、が格納される。この検索条件は、ユーザによって図示しないエンジニアリングツールを介して予め設定される。これらの格納位置と検索条件は、後述するデータベースアクセス用命令の引数となるものである。退避領域１２２には、データベース問い合わせ用命令の実行結果が格納される。ユーザデータ記憶部１２として、ＤＲＡＭ（Dynamic  Random  Access  Memory）またはＳＲＡＭ（Static  RAM）などを用いることができる。
【００１５】
データベース格納部１３は、たとえば生産品のサイズと色などのレシピデータと、生産品毎の生産個数、不良品個数といった実績データなどのデータベースを格納する。データベースは、２次元的なテーブルデータによって構成される。図３は、データベースの一例を示す図である。ここでは、製品の種類ごとにサイズを規定した製品サイズテーブルを例示している。列０には製品を識別する製品番号が格納され、列１〜３にはそれぞれ製品の長さ、幅、高さが格納されている。行０〜行４には、各製品のレコードが格納される。データベース格納部１３は、２次記憶装置であり、フラッシュメモリやハードディスクなどの不揮発性記憶装置によって構成される。
【００１６】
システムプログラム記憶部１４は、演算部１５が実行するシステムプログラム、いわゆるファームウェアを記憶する。システムプログラムとして、ユーザプログラム中の通常の命令を実行する命令実行プログラム、ユーザプログラム中のデータベースアクセス用命令を、データベース格納部１３中のデータに演算部１５がアクセス可能な形式のデータベース問い合わせ用命令に変換するデータベース問い合わせ用命令生成プログラム、データベース問い合わせ用命令に基づいてデータベース格納部１３にアクセスするデータベース管理プログラム、およびユーザプログラム中のＥＮＤ命令を実行するＥＮＤ命令処理プログラムなどを挙げることができる。システムプログラム記憶部１４は、ＲＯＭまたはＥＥＰＲＯＭなどの不揮発性記憶装置によって構成される。
【００１７】
命令実行プログラムは、演算部１５に、ユーザプログラム記憶部１１に記憶されるユーザプログラム１１１を逐次解釈し、実行させるプログラムである。具体的には、ユーザプログラム１１１中に含まれる最初の命令１１１−１から順に実行し、最後のＥＮＤ命令１１１−Ｅの直前の命令までを実行させる。また、ユーザプログラム１１１中にデータベースアクセス用命令がある場合には、その処理をデータベース問い合わせ用命令生成プログラムに渡す。
【００１８】
データベース問い合わせ用命令生成プログラムは、ユーザプログラム記憶部１１のユーザプログラム１１１中にデータベースアクセス用命令がある場合に、演算部１５に、ユーザプログラム（たとえばラダープログラム）形式で記述されているデータベースアクセス用命令から、データベース問い合わせ言語で記述されているデータベース問い合わせ用命令を生成させるプログラムである。データベース問い合わせ言語は、たとえばＳＱＬである。また、データベース問い合わせ用命令は、データベース管理プログラムの実行時に実際にデータベースにアクセスする際のコマンドであり、具体的にはＳＱＬのコマンドである。生成したデータベース問い合わせ用命令は、システムデータ記憶部１６に記憶される。
【００１９】
データベース管理プログラムは、演算部１５に、システムデータ記憶部１６のデータベース問い合わせ用命令格納領域１６１に記憶されたデータベース問い合わせ用命令を読み込ませ、解釈させ、実行させるプログラムである。具体的には、データベース問い合わせ用命令を読み込み、データベース格納部１３のデータベースから目的とするデータ（要素）を直接に抽出する。
【００２０】
ＥＮＤ命令処理プログラムは、演算部１５に、システムプログラム記憶部に記憶されているユーザプログラム中の最後のＥＮＤ命令１１１−Ｅを実行させるプログラムである。ＥＮＤ命令１１１−Ｅは、パーソナルコンピュータまたは外部機器との間の通信処理と、データベース管理プログラムによるデータベース問い合わせ用命令を実行した結果の取得処理と、を含む通常の命令の実行以外の処理を行う。データベース問い合わせ用命令を実行した結果の取得処理では、データベース管理プログラムによって抽出されたデータを、ユーザデータ記憶部１２の退避領域１２２中のデータベースアクセス用命令で指定された位置に書込む。
【００２１】
演算部１５は、システムプログラム記憶部１４中に格納されるシステムプログラム（ファームウェア）を実行する。なお、命令実行手段は、命令実行プログラムを実行中の演算部１５に対応し、データベース問い合わせ用命令生成手段は、データベース問い合わせ用命令生成プログラムを実行中の演算部１５に対応し、データベース管理手段は、データベース管理プログラムを実行中の演算部１５に対応し、ＥＮＤ命令処理手段は、ＥＮＤ命令処理プログラムを実行中の演算部１５に対応している。
【００２２】
システムデータ記憶部１６は、ファームウェアが一時的にデータを置くワークメモリである。ここでは、演算部１５によって生成されたデータベース問い合わせ用命令が一時的に記憶される。システムデータ記憶部１６として、ＤＲＡＭまたはＳＲＡＭなどを用いることができる。
【００２３】
このような構成のプログラマブルコントローラは、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ、主記憶装置、２次記憶装置、ネットワークユニットを有する。そして、演算部１５で実行する機能をプログラムに記述し、そのプログラムをシステムプログラム記憶部１４に記憶し、ＣＰＵでそのプログラムを実行することによって、上記構成のプログラマブルコントローラを得ることができる。
【００２４】
この実施の形態１では、プログラマブルコントローラ１０は、データベース格納部１３のデータベース中の目的とするデータに直接アクセスして取得し、その結果をユーザデータ記憶部１２の退避領域１２２に格納する。そこで、このような処理を実現するデータベースアクセス用命令が、ラダープログラム（ユーザプログラム）で定義されている。ここでは、DB_OPEN命令、DB_SELECT命令、DB_CLOSE命令の３つの命令を定義する。
【００２５】
（１）DB_OPEN命令
図４は、DB_OPEN命令の内容の一例を示す図であり、（ａ）はDB_OPEN命令の構造の一例を示す図であり、（ｂ）はDB_OPEN命令の一例を示す図であり、（ｃ）はデバイスメモリとDB_OPEN命令の引数との間の関係を模式的に示す図である。DB_OPEN命令は、データベース格納部１３中の操作対象であるデータベースを開くための命令である。図４（ａ）に示されるように、DB_OPEN命令は、３つの引数Ａ１〜Ａ３を含む。引数Ａ１では、操作対象（オープン対象）であるデータベースが指定され、引数Ａ２では、オープン対象のデータベースを識別するデータベース識別子が指定され、引数Ａ３では、オープン処理が完了したことを示すデバイスが指定される。
【００２６】
引数Ａ１，Ａ２として、図４（ｂ）に示されるように、ユーザデータ記憶部１２中のデバイス（アドレス）を指定することができる。たとえば、引数Ａ１，Ａ２には、ユーザデータ記憶部１２中のデバイス（アドレス）が入力され、そのデバイスにオープン対象のデータベースの情報が格納される。図４（ｃ）を参照すると、たとえば、デバイスＤ１０００〜Ｄ１００３には、データベース格納部１３を有する機器（プログラマブルコントローラ）のＩＰ（Internet  Protocol）アドレス「１２７．０．０．１」の値が入力され、デバイスＤ１００４〜Ｄ１００６には、データベース格納部１３中のオープン対象のデータベース名「ＭｙＤＢ」が入力される。また、引数Ａ３には、オープン対象のデータベースのオープン処理が完了するとオンする完了デバイスＭ０が設定される。
【００２７】
（２）DB_SELECT命令
図５は、DB_SELECT命令の内容の一例を示す図であり、（ａ）はDB_SELECT命令の構造の一例を示す図であり、（ｂ）はDB_SELECT命令の一例を示す図であり、（ｃ）はデバイスメモリとDB_SELECT命令の引数との間の関係を模式的に示す図である。DB_SELECT命令は、DB_OPEN命令でオープンされたデータベース中から所望のデータを取り出すための命令である。図５（ａ）に示されるように、DB_SELECT命令は、５つの引数Ｂ１〜Ｂ５を含む。引数Ｂ１では、操作対象のデータベースを指定するデータベース識別子が指定され、引数Ｂ２では、操作対象データベース内の操作対象のテーブル中から読出すレコードを特定するための条件が指定され、引数Ｂ３では、引数Ｂ２で指定されたレコード中から読出すフィールドが指定され、引数Ｂ４では、引数Ｂ２，Ｂ３で読出したデータの格納位置が指定され、引数Ｂ５では、読出し処理が完了したことを示すデバイスが指定される。
【００２８】
引数Ｂ１〜Ｂ４として、図５（ｂ）に示されるように、ユーザデータ記憶部１２中のデバイス（アドレス）を指定することができる。引数Ｂ１は、DB_OPEN命令の引数Ａ２で指定されたデータベース識別子と同じである。引数Ｂ２には、操作対象データベース中の読出し対象テーブルと読出し対象レコードを含む読出し対象レコード指定情報が記憶されているユーザデータ記憶部１２中のデバイスが指定される。この例では、読出し対象レコード指定情報は、図５（ｃ）に示されるように、ユーザデータ記憶部１２中の「Ｄ１２００〜Ｄ１２０５」に格納される操作対象テーブル名である「製品サイズ」と、「Ｄ１２０６〜Ｄ１２１０」に格納される条件フィールド名である「製品番号」と、「Ｄ１２１１〜Ｄ１２１２」に格納される条件である「＝」と、「Ｄ１２１３」に格納される条件の値である「３」と、を含む。つまり、製品サイズテーブル中の製品番号が「３」であるレコードを抽出するための条件が格納されている。
【００２９】
引数Ｂ３には、引数Ｂ２で指定されるレコード中の取得するフィールド数とフィールド名を含む読出しフィールド指定情報が格納されるユーザデータ記憶部１２中のデバイスが指定される。この例では、読出しフィールド指定情報は、図５（ｃ）に示されるように、ユーザデータ記憶部１２中の「Ｄ０」に格納されるフィールド数である「２」と、「Ｄ１〜Ｄ３」に格納されるフィールド名１である「長さ」と、「Ｄ４〜Ｄ６」に格納されるフィールド名２である「高さ」と、を含む。つまり、製品サイズテーブル中の製品番号が「３」であるレコードから、「長さ」と「高さ」という２つのフィールド名に対応するデータを抽出するための条件が格納されている。
【００３０】
引数Ｂ４は、引数Ｂ２，Ｂ３で指定され、読出されたデータを格納するユーザデータ記憶部１２中の位置を指定する。この例では、図５（ｃ）に示されるように、ユーザデータ記憶部１２中の「Ｄ１００」に、読出したレコード数を示す「１」が指定され、「Ｄ１０１」に、引数Ｂ３で指定されたフィールド名１に対応する読出しデータ１「９０００」が格納され、「Ｄ１０２」に、引数Ｂ３で指定されたフィールド名２に対応する読出しデータ２「７００」が格納される。また、引数Ｂ５には、操作対象のデータベースからの読出し処理が完了するとオンする完了デバイスＭ１が設定される。
【００３１】
（３）DB_CLOSE命令
図６は、DB_CLOSE命令の内容の一例を示す図であり、（ａ）はDB_CLOSE命令の構造の一例を示す図であり、（ｂ）はDB_CLOSE命令の一例を示す図である。DB_CLOSE命令は、データベース格納部１３中の操作対象であるデータベースを閉じるための命令である。図６（ａ）に示されるように、DB_CLOSE命令は、１つの引数Ｃ１を含む。引数Ｃ１では、クローズ対象のデータベースを指定するデータベース識別子が指定される。このデータベース識別子は、DB_OPEN命令の引数Ａ２やDB_SELECT命令の引数Ｂ１で指定されたデータベース識別子と同じである。引数Ｃ１として、図６（ｂ）に示されるように、ユーザデータ記憶部１２中のデバイス（アドレス）を指定することができる。
【００３２】
これらの３つのデータベースアクセス用命令を使用して、データベース格納部１３へのアクセスを指示する命令がラダープログラムに書込まれる。図７は、ラダープログラムにおけるデータベース読出し指示の一例を示す図である。このラダープログラムの動作の概要について説明する。
【００３３】
まず、データベース読出しの指示がなされると（ステップＳ１１）、まずDB_OPEN命令が実行される（ステップＳ１２）。図４で示したように、ユーザデータ記憶部１２中の各デバイスから、ＩＰアドレスが「１２７．０．０．１」である機器の「ＭｙＤＢ」という名前のデータベースを開く。そして、操作対象のデータベースのオープン処理が完了すると、デバイス「Ｍ０」をオンにする。
【００３４】
デバイス「Ｍ０」がオンになると、つぎのDB_SELECT命令が実行される（ステップＳ１３）。このDB_SELECT命令では、ユーザデータ記憶部１２中の各デバイスから「製品サイズテーブル」の「製品番号」が「３」のレコードから「長さ」と「高さ」に対応するデータを読出す処理を行う。そして、読出し処理が完了すると、デバイス「Ｍ１」をオンにする。
【００３５】
デバイス「Ｍ０」と「Ｍ１」がともにオンになると、つぎのDB_CLOSE命令が実行される（ステップＳ１４）。このDB_CLOSE命令では、操作対象のデータベースである「ＭｙＤＢ」という名前のデータベースが閉じられることになる。以上によって、データベースへのアクセス処理が終了する。
【００３６】
つぎに、このようなプログラマブルコントローラ１０の動作処理について説明する。図８は、プログラマブルコントローラの全体処理の手順の一例を示すフローチャートである。まず、プログラマブルコントローラ１０の演算部１５は、ユーザプログラム記憶部１１に記憶されているユーザプログラム１１１中の通常の命令を実行するプログラム実行処理を行う（ステップＳ３１）。ここでは、図２に示されるユーザプログラム１１１中の命令１１１−１からＥＮＤ命令１１１−Ｅの前の命令までが順に実行される。
【００３７】
演算部１５は、ユーザプログラム１１１中のＥＮＤ命令１１１−Ｅの前までの通常の命令を実行すると、ＥＮＤ命令処理プログラムに基づいて、ＥＮＤ命令１１１−ＥによるＥＮＤ処理を実行する（ステップＳ３２）。ＥＮＤ処理は、プログラマブルコントローラ１０に通信回線を介して接続されるパーソナルコンピュータまたは外部機器との間の通信と、通常の命令の実行以外の処理を行う。
【００３８】
ＥＮＤ処理が終了すると、再びステップＳ３１へと戻り、ユーザプログラム１１１の命令１１１−１から順に演算部１５によって処理が実行される。このように、プログラマブルコントローラ１０では、ユーザプログラム１１１中の命令１１１−１〜１１１−Ｅが順に、繰り返し実行されることになる。
【００３９】
ここで、ステップＳ３１のプログラム実行処理で、データベースアクセス用命令を検出した場合には、データベースアクセス用命令の実行処理を実行する。図９は、データベースアクセス用命令の実行処理の手順の一例を示すフローチャートであり、図１０は、データベースアクセス用命令の処理の様子を模式的に示す図であり、図１１は、データベースアクセス用命令からデータベース問い合わせ用命令の生成処理の一例を示す図である。
【００４０】
図９のデータベースアクセス用命令の実行処理は、図８のステップＳ３１のプログラム実行処理中に、演算部１５が、データベースアクセス用命令を検出し、データベース問い合わせ用命令生成プログラムに検出したデータベースアクセス用命令を渡すことによって、実行される。演算部１５は、データベース問い合わせ用命令生成プログラムに基づいて、対象のデータベースのオープン処理を行い、取得したデータベースアクセス用命令（DB_SELECT命令）中の引数からＳＱＬの生成に必要な情報を取得する（ステップＳ５１）。
【００４１】
ここでは、DB_SELECT命令の引数Ｂ２，Ｂ３を参照して、操作対象となるデータベースから操作対象テーブルと、操作対象テーブル中のレコードと、操作対象レコード中から抽出するフィールドと、を抽出する。図５の例に示されるように、これらの条件は、ユーザデータ記憶部１２の引数Ｂ２，Ｂ３で指定されるアドレスに格納されている。
【００４２】
ついで、演算部１５は、取得した情報からデータベース問い合わせ用命令（ＳＱＬ文）を生成する（ステップＳ５２）。図１１（ａ）は、図５（ｂ）のラダープログラムにおけるデータベースアクセス用命令から生成されたＳＱＬ文である。ＳＱＬ文は、SELECT句、FROM句およびWHERE句を有し、それぞれの句に引数が設定される。データベースアクセス用命令からのＳＱＬ文の生成は、データベースアクセス用命令の引数とＳＱＬ文の引数とを対応付けた命令変換情報に基づいて行われる。図１１（ｂ）は、命令変換情報の一例を示す図である。この命令変換情報では、ＳＱＬ文の引数が、ユーザデータ記憶部１２のデバイスを用いて定義される。これによって、図５（ｂ）に示されるデータベースアクセス用命令からＳＱＬ文（データベース問い合わせ用命令）を生成することが可能になる。なお、これは一例であり、ＳＱＬ文の種類に応じて命令変換情報を用意しておけばよい。
【００４３】
ついで、演算部１５は、生成したＳＱＬ文をシステムデータ記憶部１６のデータベース問い合わせ用命令格納領域１６１に格納する（ステップＳ５３）。
【００４４】
その後、演算部１５は、データベース管理プログラムに基づいて、データベースアクセス用命令であるDB_SELECT命令の引数Ｂ１で指定されたデータベースに対して、生成したＳＱＬ文を発行する（ステップＳ５４）。これによって、演算部１５は、ＳＱＬ文にしたがって、データベース格納部１３中の指定されたデータベースに直接アクセスして、目的とするデータを取得する。以上によって、データベースアクセス用命令の実行処理が終了し、図８のステップＳ３１へと処理が戻る。
【００４５】
一般的に、プログラマブルコントローラ１０の実行処理に対して、データベースの処理は遅いため、データベースアクセス用命令の実行処理は、ＳＱＬを発行した後に、データベースの処理結果を待たずに処理を完了する。そして、このデータベースの処理結果の完了確認はＥＮＤ処理で行う。
【００４６】
そこで、図８のステップＳ３２のＥＮＤ処理で、ＳＱＬを発行した際の完了確認処理について説明する。図１２は、ＥＮＤ処理時の完了確認処理の手順の一例を示すフローチャートである。
【００４７】
まず、演算部１５は、ＳＱＬを発行済みか否かを判定する（ステップＳ７１）。ＳＱＬを発行済みでない場合（ステップＳ７１でＮｏの場合）には、ＳＱＬを発行しておらず、完了確認をする必要がないので、処理が終了する。
【００４８】
また、ＳＱＬを発行済みである場合（ステップＳ７１でＹｅｓの場合）には、発行したＳＱＬの処理が完了したか否かを判定する（ステップＳ７２）。発行したＳＱＬの処理が未完了である場合（ステップＳ７２でＮｏの場合）には、何も処理を行わず、完了確認処理が終了する。この場合には、次回のＥＮＤ処理時に再確認が行われる。
【００４９】
一方、発行したＳＱＬの処理が完了した場合（ステップＳ７２でＹｅｓの場合）には、演算部１５は、取得したＳＱＬの結果を、DB_SELECT命令の引数Ｂ４で指定されるユーザデータ記憶部１２中の位置に格納する（ステップＳ７３）。その後、演算部１５は、DB_SELECT命令の引数Ｂ５で指定される完了デバイスをＯＮにし（ステップＳ７４）、対象のデータベースのクローズ処理が行われる。以上によって、ＥＮＤ処理時の完了確認処理が終了する。
【００５０】
なお、上記の例では、データベースからのデータの読出しを行うデータベースアクセス用命令について説明したが、この発明がこれに限定されるものではない。たとえば、データベースへのデータの追加、変更または削除などのデータの書込みを行う命令を定義することも可能である。このようなデータベースの書込命令は、引数として、操作対象のデータベースを指定するデータベース識別子（データベース指定情報）と、操作対象データベース内のデータを追加するテーブル名と、操作対象テーブル中のデータを書込みたいフィールド名と、書込みたいデータの内容と、を少なくとも含む。このように、データベースアクセス用命令は、データベース中に格納されるデータの読出しまたは書込みといった、データベースへのアクセスを行うための命令である。
【００５１】
実施の形態１では、ラダープログラムで使用されるデータベースアクセス用命令を定義し、データベースアクセス用命令で指定される引数とＳＱＬ文の引数とを対応付けておき、ユーザプログラム中にデータベースアクセス用命令がある場合には、上記対応付けに基づいてデータベースアクセス用命令からＳＱＬ文を生成し、ＳＱＬを発行する。これによって、プログラマブルコントローラ１０では、２次記憶装置であるデータベース格納部１３中の２次元的な構造のデータベースを、従来のように１次元的な構造のユーザデータ記憶部１２に展開することなく、直接にデータベースにアクセスして所望のデータを取得することができる。その結果、データベースからのデータの取得が１つの工程で行うことができ、データの取得を従来に比して早くすることができるという効果を有する。
【００５２】
また、データベースをユーザデータ記憶部１２に展開する必要がないので、ユーザデータ記憶部１２をデータベースのサイズを考慮した容量にする必要がない。つまり、データベース格納部１３からユーザデータ記憶部１２に読み込むデータは、処理に必要な最小限のデータに絞られる。その結果、ユーザデータ記憶部１２の容量（使用量）を従来に比して小さくすることができるという効果も有する。
【００５３】
さらに、プログラマブルコントローラ１０で必要なデータを取得する際にデータベースを活用することで、２次元構造のデータベースを１次元構造のユーザデータ記憶部１２に展開したときのデータの格納場所（アドレス）をラダープログラム上で計算する必要がない。その結果、プログラミングが容易になるという効果を有する。加えて、データベースのデータ構造が変更された場合でも、同じフィールドのデータを取得する場合には、ユーザプログラムに作成したデータベースアクセス用命令を変更する必要がない。
【００５４】
また、ユーザプログラムに専用の命令を定義することで、プログラマブルコントローラ１０からデータベースにアクセスすることができ、ＳＱＬなどのデータベース特有の言語を知らないプログラマブルコントローラ１０のユーザでも、データベース中のデータを利用したプログラムを作成することができるという効果を有する。
【００５５】
実施の形態２．
実施の形態１では、データベースアクセス用命令を定義し、ユーザプログラム（ラダープログラム）に組み込んで使用する場合を示した。この実施の形態２では、データベースアクセス用命令の代わりに、データベース操作設定情報を定義し、データベース読出し指示が実行される場合に、データベース操作設定情報を読み込んで実施の形態１と同様の処理を行う場合について説明する。
【００５６】
図１３は、実施の形態２によるプログラマブルコントローラの機能構成を模式的に示すブロック図である。このプログラマブルコントローラ１０は、ユーザプログラム記憶部１１のユーザプログラムにはデータベースアクセス用命令が含まれておらず、システムデータ記憶部１６にデータベース問い合わせ用命令格納領域１６１に加えて、データベースアクセス用設定情報を格納するデータベースアクセス用設定情報格納領域１６２が含まれる点が実施の形態１と異なる点である。また、演算部１５は、ユーザプログラム（ラダープログラム）のデータベース読出し指示がオンになると、データベースアクセス用設定情報１６２Ａに基づいて、データベース問い合わせ用命令を作成する。
【００５７】
図１４は、実施の形態２によるデータベースアクセス用設定情報の内容の一例を示す図である。データベースアクセス用設定情報１６２Ａは、対象データベースと、対象テーブルと、フィールド名とデバイスの関係と、読出し条件と、実行トリガと、を設定項目として有する。
【００５８】
対象データベースは、操作対象となるデータベースを指定する。たとえば、操作対象となるデータベースが格納されている機器（プログラマブルコントローラ）のアドレス（ＩＰアドレス）と、そのＩＰアドレスで指定される機器中のデータベース名と、を指定する。対象テーブルは、対象データベース中の操作対象となるテーブルを指定する。
【００５９】
フィールド名とデバイスの関係は、対象テーブル中から取得するデータのフィールド名と、取得したデータのユーザデータ記憶部１２中での格納位置を指定する。読出し条件は、対象テーブルから読出す対象の行（レコード）を指定する。実行トリガは、読出したデータをユーザデータ記憶部１２に格納するタイミングを指定する。
【００６０】
つまり、「対象データベース」項目のＩＰアドレスとデータベース名で操作対象のデータベースが特定され、「対象テーブル」項目のテーブル名でデータベース中の操作対象のテーブルが特定される。また、「読出し条件」項目のフィールド名で特定されるレコードから、「フィールド名とデバイスの関係」項目のフィールド名で特定されるデータが読出されるデータとなり、このデータがフィールド名とデバイスの関係で指定されるデバイスメモリ中のデバイスに格納されることになる。そして、このデータが読出されるタイミングは「実行トリガ」項目中のトリガデバイスがオンになったときである。
【００６１】
図１５は、実施の形態２によるデータベース読出し指示のユーザプログラムの一例を示す図である。このユーザプログラムは、データベース読出し指示がオンになると（ステップＳ９１）、製品テーブルの製品番号を示す「Ｋ３」をユーザデータ記憶部１２の「Ｄ１２１２」に格納する処理（ステップＳ９２）と、デバイス「Ｍ０」のビットをオンにする処理（ステップＳ９３）と、が実行されることを示している。
【００６２】
これによって、演算部１５は、データベースアクセス用設定情報１６２Ａに設定された条件にしたがって、データベース問い合わせ用命令を生成し、システムデータ記憶部１６に記憶する。図１６は、データベースアクセス用設定情報からデータベース問い合わせ用命令を生成する際の命令変換情報の一例を示す図である。この図に示されるように、命令変換情報では、ＳＱＬ文の引数が、データベースアクセス用設定情報１６２Ａの内容を用いて定義される。演算部１５は、これによって図１１（ａ）に示されるＳＱＬ文を生成する。
【００６３】
なお、図１４のデータベースアクセス用設定情報１６２Ａの例では、「対象データベース」項目は、自プログラマブルコントローラ１０を指定する場合を示しているが、プログラマブルコントローラ１０は通常ネットワークを介して接続されるため、他のプログラマブルコントローラ１０（または機器）のデータベース格納部１３中のデータベースからデータを取得することも可能である。
【００６４】
図１７は、ネットワークに接続された他のプログラマブルコントローラからデータを読出す場合の様子を模式的に示す図である。図１７（ａ）は、プログラマブルコントローラ１０Ａ，１０Ｂがネットワーク３０に接続されたシステム構成を模式的に示している。ここでは、データベース格納部１３Ａを有し、ＩＰアドレスが「１９２．１６８．１．１」のプログラマブルコントローラ１０Ａと、ＩＰアドレスが「１９２．１６８．１．２」のプログラマブルコントローラ１０Ｂと、がネットワーク３０を介して接続されている。ここで、プログラマブルコントローラ１０Ｂには、図１７（ｂ）に示されるように、データベースアクセス用設定情報１５２Ｂの「対象データベース」の項目で、プログラマブルコントローラ１０ＡのＩＰアドレスとデータベース名が設定される。その結果、図１７（ｃ）に示されるユーザプログラムが読み込まれると、プログラマブルコントローラ１０Ａのデータベース格納部１３Ａ中のデータベースにアクセスして、そのデータを取得することができる。
【００６５】
実施の形態２では、データベースアクセス用設定情報にデータベースへのアクセス条件を設定し、ユーザプログラムの実行の際、データベース読出し指示がオン状態になると、演算部１５がデータベースアクセス用設定情報に基づいてデータベース問い合わせ用命令を生成する。そして、演算部１５は、生成されたデータベース問い合わせ用命令にしたがってデータベースにアクセスするようにした。これによって、実施の形態１のように、データベースへのアクセス命令をラダープログラムで定義することがないので、プログラマブルコントローラ１０のユーザにとって、データベースへのアクセスの設定が容易になるという効果を、実施の形態１の効果に加えて有する。
【００６６】
また、取得するデータの条件をデータベースアクセス用設定情報で指定できるので、実施の形態１のようにユーザデータ記憶部１２に対象データの取得条件を格納する必要がない。その結果、実施の形態１に比してさらにユーザデータ記憶部１２を小容量化することができるという効果も有する。
【００６７】
なお、実施の形態２では、データベースからのデータの読出しの場合を例に挙げたが、データベースへのデータの追加、変更または削除を行う書込みの場合にも、データベースアクセス用設定情報に書込みの条件を設定することで、このデータベースアクセス用設定情報に基づいてデータベース問い合わせ用命令を生成することができる。
【００６８】
実施の形態３．
実施の形態３では、実施の形態１でユーザプログラムを設定したり、実施の形態２でデータベースアクセス用設定情報を設定したりするエンジニアリングツールについて説明する。
【００６９】
図１８は、エンジニアリングツールの機能構成の一例を模式的に示すブロック図である。エンジニアリングツール５０は、通信部５１と、入力部５２と、表示部５３と、プログラム作成画面表示処理部５４と、デバイスメモリ設定画面表示処理部５５と、設定情報設定画面表示処理部５６と、設定部５７と、これらの各処理部を制御する制御部５８と、を備える。
【００７０】
通信部５１は、プログラマブルコントローラ１０との間で通信を行う。入力部５２は、キーボードまたはポインティングデバイスなどのユーザとの間の入力インタフェースである。入力部５２は、たとえばプログラマブルコントローラ１０に設定するデータベースアクセス用命令またはデータベースアクセス用設定情報の入力を受け付ける。表示部５３は、液晶表示装置などのユーザに対して情報を表示する装置である。
【００７１】
プログラム作成画面表示処理部５４は、ユーザプログラム作成画面を表示部５３に表示する機能を有する。ユーザプログラムとしてラダープログラムを用いる場合には、ラダープログラムを作成する環境をユーザに対して提示する。ユーザプログラムとして、実施の形態１で示したデータベースアクセス用命令を使用する場合には、データベースアクセス用命令をユーザプログラム作成画面で使用可能な状態となる。
【００７２】
デバイスメモリ設定画面表示処理部５５は、デバイスメモリ設定画面を表示部５３に表示する機能を有する。ユーザデータ記憶部１２には、上記したように読出すデータベースの格納位置、データベース中から読出すデータの条件、およびデータベースから読出したデータなどが格納される。デバイスメモリ設定画面は、これらの情報をデバイスメモリのどのアドレスに格納するかなどの設定を行うための設定画面である。
【００７３】
設定情報設定画面表示処理部５６は、データベースアクセス用設定情報設定画面を表示部５３に表示する機能を有する。実施の形態２のように、データベースアクセス用設定情報を用いてデータベースへのアクセスを行う場合には、たとえば図１４に示されるようなデータベースアクセス用設定情報の設定画面を表示部５３に表示する。
【００７４】
設定部５７は、プログラム作成画面表示処理部５４、デバイスメモリ設定画面表示処理部５５または設定情報設定画面表示処理部５６でユーザによって、入力部５２を介して設定（入力）され、確定された内容を、通信部５１を介してプログラマブルコントローラ１０に設定する。
【００７５】
この実施の形態３では、プログラム作成画面表示処理部５４、デバイスメモリ設定画面表示処理部５５および設定情報設定画面表示処理部５６でユーザに対してユーザプログラム、デバイスメモリおよびデータベースアクセス用設定情報を設定するための画面をユーザに対して表示し、それぞれの画面に設定された内容を設定部５７でプログラマブルコントローラ１０に設定するようにした。これによって、プログラマブルコントローラ１０がデータベース格納部１３中のデータベースに直接にアクセスして所望のデータを得ることができるデータベースアクセス用命令またはデータベースアクセス用設定情報を作成し、プログラマブルコントローラ１０に設定することができるという効果を有する。
【００７６】
なお、上述したプログラマブルコントローラ１０でのデータベースアクセス用命令を含むユーザプログラムにおけるデータベースからの読出し方法、またはデータベースアクセス用設定に基づいたデータベースからの読出し方法は、その処理手順を格納したプログラムとして構成することができる。そして、このプログラムを上記したプログラマブルコントローラ１０で実行させることによって実現することができる。また、このプログラムは、ハードディスク、ＳＳＤ（Solid  State  Drive）、フロッピー（登録商標）ディスク、ＣＤ（Compact  Disk）−ＲＯＭ、ＭＯ（Magneto-Optical  disk）、ＤＶＤ（Digital  Versatile  DiskまたはDigital  Video  Disk）などのコンピュータで読取可能な記録媒体に記録される。この場合、プログラマブルコントローラ１０によって記録媒体から読出されるようにしてもよいし、プログラマブルコントローラ１０に接続されたエンジニアリングツール５０などの情報処理端末で記録媒体から読出され、それをネットワークを介してプログラマブルコントローラ１０にインストールしてプログラマブルコントローラ１０によって読出されるようにしてもよい。また、このプログラムは、インタネットなどのネットワーク（通信回線）を介して配布することもできる。
【産業上の利用可能性】
【００７７】
以上のように、この発明にかかるプログラマブルコントローラは、２次記憶装置に記憶されるデータベースからデータを読出して処理を行うプログラマブルコントローラに有用である。
【符号の説明】
【００７８】
１０，１０Ａ，１０Ｂ  プログラマブルコントローラ、１１  ユーザプログラム記憶部、１２  ユーザデータ記憶部、１３，１３Ａ  データベース格納部、１４  システムプログラム記憶部、１５  演算部、１６  システムデータ記憶部、３０  ネットワーク、５０  エンジニアリングツール、５１  通信部、５２  入力部、５３  表示部、５４  プログラム作成画面表示処理部、５５  デバイスメモリ設定画面表示処理部、５６  設定情報設定画面表示処理部、５７  設定部、５８  制御部、１２１  検索条件格納領域、１２２  退避領域、１５２Ｂ  データベースアクセス用設定情報、１６１  データベース問い合わせ用命令格納領域、１６２  データベースアクセス用設定情報格納領域。
【要約】
プログラマブルコントローラ（１０）は、ユーザプログラム中の複数の命令を順に実行する命令実行手段と、前記命令実行手段での処理に使用されるデータを表形式で保持するデータベースを格納するデータベース格納部（１３）と、前記命令中に前記データベースへのアクセス用命令が含まれる場合に、前記アクセス用命令をデータベース問い合わせ言語によるデータベース問い合わせ用命令に変換するデータベース問い合わせ用命令生成手段と、前記データベース格納部（１３）中の前記データベースにアクセスし、前記データベース問い合わせ用命令で指定されるデータを取得するデータベース管理手段と、を備える。【図１】
0005518266.tif 000002
【図２】
0005518266.tif 000003
【図３】
0005518266.tif 000004
【図４】
0005518266.tif 000005
【図５】
0005518266.tif 000006
【図６】
0005518266.tif 000007
【図７】
0005518266.tif 000008
【図８】
0005518266.tif 000009
【図９】
0005518266.tif 000010
【図１０】
0005518266.tif 000011
【図１１】
0005518266.tif 000012
【図１２】
0005518266.tif 000013
【図１３】
0005518266.tif 000014
【図１４】
0005518266.tif 000015
【図１５】
0005518266.tif 000016
【図１６】
0005518266.tif 000017
【図１７】
0005518266.tif 000018
【図１８】
0005518266.tif 000019