(57)【要約】【課題】容易にプログラマブルコントローラの演算処理の高速化を図ることができるシーケンス制御システムを提供する。【解決手段】プログラミングツール２のコンパイラ８は、ユーザが作成したプログラムをＰＬＣ１のプロセッサ３にて理解可能な命令コードにコンパイルする際に、命令コードに含まれるデバイスを、命令コードを実行する上での使用頻度に基づいて使用頻度の高いデバイスと低いデバイスとに分類する。使用頻度が高いデバイスの状態を表すデバイスデータは、プロセッサ３の内蔵メモリ６に格納され、使用頻度が低いデバイスの状態を表すデバイスデータは、データ用メモリ５に格納される。【選択図】図１
2010128612.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスを含む命令コードに従ってシーケンス制御を行うプログラマブルコントローラと、前記命令コードをプログラマブルコントローラに設定するプログラミングツールとを備え、プログラマブルコントローラは、内蔵メモリを具備し命令コードを実行するプロセッサと、命令コードを格納する命令用メモリと、デバイスの状態を表すデバイスデータを格納しプロセッサが命令コードを実行する際の作業領域として使用されるデータ用メモリとを有し、プログラミングツールは、ユーザの作成したプログラムを命令コードにコンパイルする際に、前記デバイスを命令コードを実行する上での使用頻度に基づいて使用頻度の高いデバイスと低いデバイスとに分類する分類手段と、前記使用頻度の高いデバイスの状態を表すデバイスデータの格納場所をプロセッサの内蔵メモリとし、前記使用頻度の低いデバイスの状態を表すデバイスデータの格納場所をデータ用メモリとするように、デバイスデータの格納場所を振り分ける振分手段とを有することを特徴とするシーケンス制御システム。
【請求項２】
前記プログラミングツールは、前記内蔵メモリに前記デバイスデータが格納される前記デバイスをユーザの操作に応じて変更する変更手段を有することを特徴とする請求項１記載のシーケンス制御システム。
【請求項３】
前記プログラミングツールは、前記内蔵メモリに前記デバイスデータが格納される前記デバイスを前記使用頻度の高いデバイスとする自動モードと、内蔵メモリにデバイスデータが格納されるデバイスをユーザに選択させる手動モードと、内蔵メモリにデバイスデータが格納されるデバイスを予め決められたデバイスとする固定選択モードと、所定範囲のデバイスデータを内蔵メモリに格納し、前記プロセッサにて、命令コードの実行中に前記データ用メモリ内のデバイスデータへのアクセスが発生すれば、当該デバイスデータを内蔵メモリに格納されているデバイスデータの中で最もアクセス回数が少ないデバイスデータと入れ替えさせるキャッシュモードとを切替可能なモード切替手段を有することを特徴とする請求項１記載のシーケンス制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、命令コードに従ってシーケンス制御を行うプログラマブルコントローラと、命令コードをプログラマブルコントローラに設定するプログラミングツールとを備えたシーケンス制御システムに関するものである。
【背景技術】
【０００２】
従来から、複数のデバイス（接点等）を含む命令コードを実行するプロセッサと、命令コードを格納する命令用メモリと、デバイスの状態（接点の開閉等）を表すデバイスデータを格納しプロセッサが命令コードを実行する際の作業領域として使用されるデータ用メモリとを備えたプログラマブルコントローラ（以下、ＰＬＣという）が提供されている。このＰＬＣは、プログラムによって制御内容を任意に設定できるという利便性の良さから様々な機器の制御に用いられている。
【０００３】
ところで、近年では、ＰＬＣの制御対象となる機器は構成が複雑化し、また高速な動作が要求されるようになっていることから、ＰＬＣにおいても演算処理の高速化が要望されている（たとえば特許文献１参照）。
【０００４】
そこで、この種のＰＬＣにおいては、プロセッサの高速演算処理を実現するために、演算処理に用いるデバイスデータが格納されるデータ用メモリとして高速メモリアクセス可能な高速ＳＲＡＭを使用し、プロセッサと高速ＳＲＡＭとの間で直接メモリアクセスを行う構成とすることが提案されている。
【０００５】
ただし、この構成では、プロセッサと高速ＳＲＡＭとの間の経路は回路基板等を経由することとなるから、回路基板の誘導成分や容量成分などによってメモリアクセスの高速化が阻害される。そのため、プロセッサと高速ＳＲＡＭとの間のメモリアクセス時間および信号伝達時に生じる時間遅れにより、一般的な高速ＳＲＡＭを用いた場合で１０ｎｓ程度のタイムラグが発生する。
【０００６】
そこで、より高速な演算処理を実現するために、プロセッサに内蔵メモリを設け、予め決められたデバイスについてのみ内蔵メモリにデバイスデータを格納することが考えられている（以下、固定選択方式という）。これにより、内蔵メモリに格納されたデバイスデータの使用時には、プロセッサ−データ用メモリ間のアクセスが不要になるため演算処理の高速化につながる。
【０００７】
また、上記内蔵メモリをキャッシュメモリとして用いて、命令コードの先頭から格納可能な範囲のデバイスデータを内蔵メモリに格納し、命令コードの実行中に内蔵メモリ内のデバイスデータをデータ用メモリ内のデバイスデータと随時入れ替えることも考えられている（以下、キャッシュ方式という）。この方式では、プロセッサは、データ用メモリ内のデバイスデータへのアクセスが必要となったときに当該デバイスデータを読み込み、内蔵メモリに格納されているデバイスデータの中で最もアクセス回数が少ないデバイスデータと入れ替える。
【特許文献１】特開２００８−２２６２７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した固定選択方式やキャッシュ方式では以下の問題がある。
【０００９】
すなわち、内蔵メモリはデータ用メモリに比べてメモリ容量が小さく、固定選択方式においては、内蔵メモリに格納されている一部のデバイスを使用する場合にのみ演算処理が高速化されるため、ユーザが主に使用するデバイスを前記一部のデバイスに意図的に制限してプログラムを作成しなければ演算処理の高速化は期待できない。
【００１０】
一方、キャッシュ方式では、キャッシュミスを起こした場合（つまり、デバイスデータが内蔵メモリ内に存在しない場合）、データ用メモリと内蔵メモリとの間でデータの交換が発生するために、キャッシュミスが頻繁に起こるような場合には演算処理の高速化が難しい。
【００１１】
本発明は上記事由に鑑みてなされたものであって、容易にプログラマブルコントローラの演算処理の高速化を図ることができるシーケンス制御システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
請求項１の発明では、複数のデバイスを含む命令コードに従ってシーケンス制御を行うプログラマブルコントローラと、前記命令コードをプログラマブルコントローラに設定するプログラミングツールとを備え、プログラマブルコントローラは、内蔵メモリを具備し命令コードを実行するプロセッサと、命令コードを格納する命令用メモリと、デバイスの状態を表すデバイスデータを格納しプロセッサが命令コードを実行する際の作業領域として使用されるデータ用メモリとを有し、プログラミングツールは、ユーザの作成したプログラムを命令コードにコンパイルする際に、前記デバイスを命令コードを実行する上での使用頻度に基づいて使用頻度の高いデバイスと低いデバイスとに分類する分類手段と、前記使用頻度の高いデバイスの状態を表すデバイスデータの格納場所をプロセッサの内蔵メモリとし、前記使用頻度の低いデバイスの状態を表すデバイスデータの格納場所をデータ用メモリとするように、デバイスデータの格納場所を振り分ける振分手段とを有することを特徴とする。
【００１３】
この構成によれば、プロセッサの内蔵メモリには、使用頻度の高いデバイスの状態を表すデバイスデータが格納されるので、プロセッサは、命令コードの実行時における当該デバイスの使用時において、内蔵メモリにアクセスすることで演算処理を行うことができ、データ用メモリにアクセスする場合に比べて演算処理の高速化を図ることができる。しかも、プログラミングツールでのコンパイルの際に、命令コードを実行する上での使用頻度が高いデバイスが自動的に選択され、当該デバイスのデバイスデータが内蔵メモリに格納されるので、ユーザがプログラム作成時に使用するデバイスを意図的に制限しなくとも演算処理の高速化が期待できる。また、命令コードの実行中にデータ用メモリと内蔵メモリとの間でデバイスデータが入れ替わることもないので、データ用メモリと内蔵メモリとの間でのデータ交換に伴う演算処理の速度低下も回避できる。なお、使用頻度の低いデバイスの演算処理を低速にしても支障がない場合には、高速ＳＲＡＭなどに比べて廉価なメモリをデータ用メモリに用いることができる。
【００１４】
請求項２の発明は、請求項１の発明において、前記プログラミングツールが、前記内蔵メモリに前記デバイスデータが格納される前記デバイスをユーザの操作に応じて変更する変更手段を有することを特徴とする。
【００１５】
この構成によれば、ユーザは、内蔵メモリにデバイスデータが格納されるデバイスを変更できるので、使用頻度の低いデバイスであっても高速演算処理が要求されるデバイスがある場合に、当該デバイスの高速演算処理を実現できるという利点がある。
【００１６】
請求項３の発明は、請求項１の発明において、前記プログラミングツールが、前記内蔵メモリに前記デバイスデータが格納される前記デバイスを前記使用頻度の高いデバイスとする自動モードと、内蔵メモリにデバイスデータが格納されるデバイスをユーザに選択させる手動モードと、内蔵メモリにデバイスデータが格納されるデバイスを予め決められたデバイスとする固定選択モードと、所定範囲のデバイスデータを内蔵メモリに格納し、前記プロセッサにて、命令コードの実行中に前記データ用メモリ内のデバイスデータへのアクセスが発生すれば、当該デバイスデータを内蔵メモリに格納されているデバイスデータの中で最もアクセス回数が少ないデバイスデータと入れ替えさせるキャッシュモードとを切替可能なモード切替手段を有することを特徴とする。
【００１７】
この構成によれば、自動モードと手動モードと固定選択モードとキャッシュモードとを切り替えることで、プログラム作成の自由度が向上するという利点がある。
【発明の効果】
【００１８】
本発明は、プロセッサの内蔵メモリに、使用頻度の高いデバイスの状態を表すデバイスデータが格納されるので、容易にプログラマブルコントローラの演算処理の高速化を図ることができるという利点がある。
【発明を実施するための最良の形態】
【００１９】
（実施形態１）
本実施形態のシーケンス制御システムは、図１に示すように、命令コードに従ってシーケンス制御を行うプログラマブルコントローラ（以下、ＰＬＣという）１と、命令コードをＰＬＣ１に設定するプログラミングツール２とを備えている。ここでは図示を省略するが、ＰＬＣ１の入力にはスイッチや各種センサが接続されるとともに、ＰＬＣ１の出力には制御対象となるモータや各種アクチュエータ等の機器が接続され、ＰＬＣ１は前記スイッチや各種センサからの入力に応じて制御対象の機器を制御する。
【００２０】
ＰＬＣ１は、命令コードを実行するプロセッサ３と、命令コードを格納する命令用メモリ４と、プロセッサ３が命令コードを実行する際の作業領域として使用されるデータ用メモリ５とを有している。命令コードは、複数のデバイス（接点等）を含んでおり、各デバイスの状態（接点の開閉等）を読み込んだり書き込んだりするための命令を構成するものである。各デバイスの状態を表すデバイスデータはデータ用メモリ５に格納され、プロセッサ３が命令コードを実行する際に使用される。
【００２１】
さらに、本実施形態では図１に示すようにプロセッサ３に内蔵メモリ６が設けられている。内蔵メモリ６は、プロセッサ３と別に設けられた命令用メモリ４やデータ用メモリ５に比べてメモリ容量が小さいものの、プロセッサ３からのメモリアクセスが命令用メモリ４やデータ用メモリ５に比べて高速である。詳しくは後述するが、この内蔵メモリ６には一部のデバイスの状態を表すデバイスデータが格納される。
【００２２】
プログラミングツール２は、図示しない入力操作手段（キーボード等）からのユーザの操作入力に従って命令コードの元となるプログラム（たとえば図２のようなラダープログラム）を作成するプログラム作成部７と、前記プログラムをプロセッサ３にて理解可能な機械語からなる命令コードにコンパイルするコンパイラ８と、プログラムや命令コードを格納するメモリ９とを有している。
【００２３】
コンパイラ８は、上記コンパイルを行う際に、命令コードに含まれるデバイスを、命令コードを実行する上での使用頻度に基づいて使用頻度の高いデバイスと使用頻度の低いデバイスとに分類する分類手段としての機能を具備している。さらに、コンパイラ８は、使用頻度の高いデバイスの状態を表すデバイスデータの格納場所をプロセッサ３の内蔵メモリ６とし、使用頻度の低いデバイスの状態を表すデバイスデータの格納場所をデータ用メモリ５とするように、デバイスデータの格納場所を振り分ける振分手段としての機能を具備する。しかして、使用頻度が高い方に分類されるデバイスの状態を表すデバイスデータは、プロセッサ３の内蔵メモリ６に格納される。たとえば図２に示すようなラダープログラムが組まれている場合に、デバイスＲ０（ここではリレー）の使用頻度が高いと判断されれば、当該デバイスＲ０の状態を表すデバイスデータがプロセッサ３の内蔵メモリ６に格納されることとなる。そのため、使用頻度の高い側に分類されるデバイス数は、プロセッサ３の内蔵メモリ６へ格納可能なデバイスデータの容量によって制限される。
【００２４】
以下に、プログラミングツール２の動作について図３のフローチャートを参照して説明する。
【００２５】
コンパイラ８は、コンパイル時（Ｓ１）にプログラム上での各デバイスごとの使用回数をカウントし、使用頻度の高いものから順に所定数のデバイス（使用頻度の高いデバイス）と、その他のデバイス（使用頻度の低いデバイス）とに分類する。プログラミングツール２は、使用頻度の高い方に分類されたデバイスに関して（Ｓ２：Ｙｅｓ）、当該デバイスに対応するデバイス情報（参照アドレス、デバイス種コード等）をＰＬＣ１の命令用メモリ４に格納する（Ｓ３）ことで、使用頻度の高いデバイスと使用頻度の低いデバイスとをＰＬＣ１側で区別可能とする。
【００２６】
そして、各デバイスのデバイスデータをＰＬＣ１のデータ用メモリ５に格納し（Ｓ４）、全てのデバイスについてデバイスデータの格納が完了すれば（Ｓ５：Ｙｅｓ）、コンパイル後の命令コードを命令用メモリ４に格納して（Ｓ６）、プログラミングツール２は動作を終了する。
【００２７】
次に、上述したプログラミングツール２の動作後のＰＬＣ１の動作について図４のフローチャートを参照して説明する。
【００２８】
プロセッサ３は、命令コードの実行開始時において、命令用メモリ４に格納されているデバイス情報に基づいて、使用頻度の高い側に分類されたデバイス（つまり命令用メモリ４内のデバイス情報に対応するデバイス）のデバイスデータをデータ用メモリ５から内蔵メモリ６に読み込む（Ｓ１０）。これにより、使用頻度の高いデバイスのデバイスデータが内蔵メモリ６に格納されることとなる。
【００２９】
その後、プロセッサ３は命令用メモリ４から命令コードを逐次読み込み（Ｓ１１）、演算処理を実行する。このとき、命令コードによりデバイスを使用する（つまりデバイスデータの読み込みまたは書き込みを行う）必要が生じれば、プロセッサ３は当該デバイスデータが格納されているメモリにアクセスする。要するに、読み込みまたは書き込みの対象となるデバイスデータが内蔵メモリ６に格納されている場合（Ｓ１２：Ｙｅｓ）、プロセッサ３は内蔵メモリ６にアクセスし（Ｓ１３）、一方、読み込みまたは書き込みの対象となるデバイスデータが内蔵メモリ６に格納されていなければ（Ｓ１２：Ｎｏ）、プロセッサ３はデータ用メモリ５に直接アクセス（ＤＭＡ）する（Ｓ１４）。
【００３０】
以上説明した構成によれば、プロセッサ３は、内蔵メモリ６にデバイスデータが格納されたデバイスの使用時には、内蔵メモリ６にアクセスすることで演算処理を実行するので、プロセッサ３からデータ用メモリ５へアクセスする場合に比べて、演算処理の高速化を図ることができる。ここで、内蔵メモリ６にデバイスデータが格納されるデバイスは、プログラミングツール２でのコンパイルの際に、命令コードを実行する上での使用頻度が高いものが自動的に選択されるので、ユーザにおいては特に使用するデバイスを意図的に制限することなくプログラムを作成することができる。
【００３１】
また、内蔵メモリ６には使用頻度が高いデバイスデータが命令コードの実行前に格納されるので、キャッシュ方式（背景技術の欄参照）のように命令コードの実行中に内蔵メモリ６内のデバイスデータをデータ用メモリ５内のデバイスデータと随時入れ替える場合に比べて、プロセッサ３−データ用メモリ５間のアクセス回数を低減して演算処理を高速化できる。
【００３２】
さらにまた、使用頻度の低いデバイスの演算処理を低速にしてもＰＬＣ１の動作に支障がない場合には、高速ＳＲＡＭなどに比べて廉価なメモリをデータ用メモリ５として用いることができるため、ＰＬＣ１の低コスト化が可能になるという利点もある。
【００３３】
ところで、本実施形態では、コンパイラ８において使用頻度が高い側に分類されたデバイスについてのみ、デバイスデータがプロセッサ３の内蔵メモリ６に格納されるが、この構成に限らず、内蔵メモリ６にデバイスデータが格納されるデバイスをユーザによって任意に変更可能とする変更手段をプログラミングツール２に付加してもよい。変更手段は、上述した入力操作手段からのユーザの操作入力に従って、内蔵メモリ６にデバイスデータが格納されるデバイスを任意に変更する。これにより、使用頻度が低くても高速演算処理が要求されるデバイスが存在する場合、当該デバイスのデバイスデータを内蔵メモリ６に格納することで、当該デバイスの高速演算処理を実現することができる。したがって、ユーザにおいてはデバイスの使用頻度を意識することなくプログラムを作成することができ、プログラム作成の自由度が向上する。
【００３４】
なお、本実施形態では、プログラミングツール２は全てのデバイスデータをデータ用メモリ５に一旦格納し、使用頻度の高いデバイスのデバイスデータをプロセッサ３の内蔵メモリ６に格納する作業はＰＬＣ１側で行う例を示したが、この例に限らず、使用頻度の高いデバイスのデバイスデータをプロセッサ３の内蔵メモリ６にプログラミングツール２から直接的に格納するようにしてもよい。
【００３５】
（実施形態２）
本実施形態のシーケンス制御システムは、プログラミングツール２が、実施形態１で説明したように使用頻度の高いデバイスのデバイスデータをプロセッサ３の内蔵メモリ６に格納するモード（以下、自動モードという）以外の動作モードを選択可能に構成されている点が実施形態１のシーケンス制御システムと相違する。
【００３６】
本実施形態では、プログラミングツール２は、上記自動モードの他、内蔵メモリ６にデバイスデータが格納されるデバイスをユーザが任意に選択する手動モードでの動作が可能である。さらに、内蔵メモリ６にデバイスデータが格納されるデバイスを予め決められたデバイスとする固定選択モード（背景技術の欄で説明した固定選択方式に相当）、並びに、所定範囲のデバイスデータを内蔵メモリ６に格納し、プロセッサ３にて、命令コードの実行中にデータ用メモリ５内のデバイスデータへのアクセスが発生すれば、当該デバイスデータを内蔵メモリ６に格納されているデバイスデータの中で最もアクセス回数が少ないデバイスデータと入れ替えさせるキャッシュモード（背景技術の欄で説明したキャッシュ方式に相当）でも動作可能である。
【００３７】
これら４つの動作モード（自動モード、手動モード、固定選択モード、キャッシュモード）の切り替えは、プログラミングツール２に設けたモード切替手段（図示せず）にて行われ、ユーザにおいては、コンパイル前にモード切替手段にて任意の動作モードを選択するものとする。選択された動作モードはＰＬＣ１内のシステムレジスタ（図示せず）等に設定される。
【００３８】
以上説明した構成によれば、ユーザが４つの動作モードから任意の動作モードを選択することできるので、プログラム作成の自由度が向上するという利点がある。
【００３９】
その他の構成および機能は実施形態１と同様である。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施形態１の構成を示す概略ブロック図である。
【図２】同上に用いるラダープログラムの一例を示す説明図である。
【図３】同上のプログラミングツールの動作を示すフローチャートである。
【図４】同上のＰＬＣの動作を示すフローチャートである。
【符号の説明】
【００４１】
１  プログラマブルコントローラ（ＰＬＣ）
２  プログラミングツール
３  プロセッサ
４  命令用メモリ
５  データ用メモリ
６  内蔵メモリ
８  コンパイラ（分類手段）
【図１】
2010128612.tif 000003
【図２】
2010128612.tif 000004
【図３】
2010128612.tif 000005
【図４】
2010128612.tif 000006