(57)【要約】  演算ユニット（１１）は、複数のプログラム命令を含んだ制御アプリケーション（１２４）を実行してプログラム実行結果データ（１２１）を生成するとともに、制御アプリケーション（１２４）中の１以上のプログラム命令をモジュール化したプログラムモジュールごとに、実行したか否かをプログラム実行結果テーブル（１２２）に記録するプログラム命令処理部（１１１）と、プログラム実行結果データ（１２１）の記録先がプログラム命令ごとに定義された参照アドレス管理テーブル（１２３）を記憶する転送アドレス管理メモリ（１１５）と、参照アドレス管理テーブル（１２３）及びプログラム実行結果データ（１２１）に基づいて、プログラム命令処理部（１１１）が実行したプログラムモジュールに含まれるプログラム命令のプログラム実行結果データのトラッキング処理を行うトラッキング処理部（１１３）とを有する。
2016157362.tif 000002
【特許請求の範囲】
【請求項１】
二重化システムのプログラマブルロジックコントローラを構成する演算ユニットであって、
複数のプログラム命令を含んだ制御アプリケーションを実行してプログラム実行結果データを生成するとともに、前記制御アプリケーション中の１以上のプログラム命令をモジュール化したプログラムモジュールごとに、実行したか否かをプログラム実行結果テーブルに記録するプログラム命令処理部と、
前記プログラム実行結果データの記録先が前記プログラム命令ごとに定義された参照アドレス管理テーブルを記憶する転送アドレス管理メモリと、
前記参照アドレス管理テーブル及び前記プログラム実行結果データに基づいて、前記プログラム命令処理部が実行したプログラムモジュールに含まれるプログラム命令のプログラム実行結果データのトラッキング処理を行うトラッキング処理部とを有することを特徴とする演算ユニット。
【請求項２】
前記参照アドレス管理テーブルは、前記プログラム命令が用いるデバイスと、データサイズとによって前記プログラム実行結果テーブルの記録先が定義されることを特徴とする請求項１に記載の演算ユニット。
【請求項３】
前記プログラムモジュールは、１以上のプログラム命令を一纏めにしたファンクションブロックであることを特徴とする請求項１に記載の演算ユニット。
【請求項４】
前記制御アプリケーションは、前記ファンクションブロックを１以上含んだサブルーチンプログラムを少なくとも一つ含み、
前記プログラム命令処理部は、実行しなかったサブルーチンプログラム内のファンクションブロックに含まれるプログラム命令を全て実行しなかったとみなして、前記プログラム実行結果テーブルに記録することを特徴とする請求項３に記載の演算ユニット。
【請求項５】
二重化システムのプログラマブルロジックコントローラを構成する演算ユニットが実行する制御アプリケーションを作成するエンジニアリングツールであって、
複数のプログラム命令を含んだ前記制御アプリケーションの作成用のユーザインタフェースであるプログラムエディタと、
前記制御アプリケーションが前記演算ユニットで実行された際に生成されるプログラム実行結果データの前記演算ユニット内での記録先を前記プログラム命令ごとに定義する参照アドレス管理テーブルを作成するトラッキング範囲設定機能部と、
制御アプリケーション及び前記参照アドレス管理テーブルを前記演算ユニットへ送信する通信機能部とを有することを特徴とするエンジニアリングツール。
【請求項６】
二重化システムのプログラマブルロジックコントローラを構成する演算ユニットが実行する制御アプリケーションを作成する処理を情報処理装置に実行させるエンジニアリングツールプログラムであって、
前記情報処理装置に、
複数のプログラム命令を含んだ前記制御アプリケーションを生成する処理と、
前記制御アプリケーションが前記演算ユニットで実行された際に生成されるプログラム実行結果データの前記演算ユニット内での記録先を前記プログラム命令ごとに定義する参照アドレス管理テーブルを作成する処理と、
制御アプリケーション及び前記参照アドレス管理テーブルを前記演算ユニットへ送信する処理と実行させることを特徴とするエンジニアリングツールプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二重化システムのプログラマブルロジックコントローラを構成する演算ユニット、エンジニアリングツール及びエンジニアリングツールプログラムに関する。
【背景技術】
【０００２】
二重化システムにおいて、制御系から待機系へのトラッキング処理でのデータ量が大きいことが原因で、制御系のプログラム実行周期に遅延が発生することがあった。【０００３】
特許文献１には、予めサブルーチンプログラムで一つの連続したメモリ領域のみを使ってプログラムしておき、サブルーチンプログラムの実行有無によってサブルーチンプログラムに対応する一つの連続したメモリ領域を転送する技術が知られている。上記の方法によれば、制御系から待機系へのトラッキング処理でのデータ量の低減を図れる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−４６７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術では、メモリに分散して割り付けられている各デバイスを使用したサブルーチンプログラムでは、デバイスに格納されるプログラム実行結果データを制御系と待機系とで同期できないという問題があった。【０００６】
本発明は、上記に鑑みてなされたものであって、メモリに分散して割り付けられているプログラム実行結果データを制御系と待機系とで同期できる演算ユニットを得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、二重化システムのプログラマブルロジックコントローラを構成する演算ユニットであって、複数のプログラム命令を含んだ制御アプリケーションを実行してプログラム実行結果データを生成するとともに、制御アプリケーション中の１以上のプログラム命令をモジュール化したプログラムモジュールごとに、実行したか否かをプログラム実行結果テーブルに記録するプログラム命令処理部を有する。また、本発明は、プログラム実行結果データの記録先がプログラム命令ごとに定義された参照アドレス管理テーブルを記憶する転送アドレス管理メモリを有する。また、本発明は、参照アドレス管理テーブル及びプログラム実行結果データに基づいて、プログラム命令処理部が実行したプログラムモジュールに含まれるプログラム命令のプログラム実行結果データのトラッキング処理を行うトラッキング処理部を有する。
【発明の効果】
【０００８】
本発明にかかる演算ユニットは、メモリに分散して割り付けられているプログラム実行結果データを制御系と待機系とで同期できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態にかかる演算ユニットを用いて二重化システムにしたプログラマブルロジックコントローラ及びエンジニアリングツールを示す図
【図２】実施の形態にかかる演算ユニットを用いて二重化システムにしたプログラマブルロジックコントローラの構成を示す図
【図３】実施の形態にかかる演算ユニットのハードウェア構成を示す図
【図４】実施の形態にかかるエンジニアリングツールの構成を示す図
【図５】実施の形態にかかるエンジニアリングツールを実現する情報処理装置のハードウェア構成を示す図
【図６】実施の形態にかかるエンジニアリングツールの動作の流れを示すフローチャート
【図７】実施の形態にかかるエンジニアリングツールのプログラムエディタで作成されるプログラムの構成例を示す図
【図８】実施の形態にかかるエンジニアリングツールのトラッキング範囲設定機能部がトラッキング範囲を変更又は追加する処理の流れを示すフローチャート
【図９】実施の形態にかかる演算システムの参照アドレス管理テーブルの一例を示す図
【図１０】実施の形態にかかる演算ユニットのデータトラッキング処理の流れを示すフローチャート
【図１１】実施の形態にかかる演算ユニットのプログラム実行結果データの一例を示す図
【図１２】実施の形態にかかる演算装置のプログラム実行結果テーブルの一例を示す図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかる演算ユニット、エンジニアリングツール及びエンジニアリングツールプログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態．
図１は、本発明の実施の形態にかかる演算ユニットを用いて二重化システムにしたプログラマブルロジックコントローラ及びエンジニアリングツールを示す図である。実施の形態のプログラマブルロジックコントローラ１０は、ＣＰＵ（Central  Processing  Unit）ユニットと称される二つの演算ユニット１１１，１１２を備えて二重化システムを構成している。なお、プログラマブルロジックコントローラ１０を構成するユニットで演算ユニット１１１，１１２以外のユニットは図示を省略している。
【００１２】
演算ユニット１１１は制御系であり、演算ユニット１１２は待機系である。演算ユニット１１１にはエンジニアリングツールが接続されている。
【００１３】
演算ユニット１１１，１１２は、制御系及び待機系の関係にあるため、同じ構造である。以下の説明では、演算ユニット１１１，１１２に共通する事項について説明するときは、演算ユニット１１と表記し、両者を区別する必要がある場合は符号に下付数字を付与して演算ユニット１１１又は演算ユニット１１２と表記する。後述する演算ユニット１１の内部の構成要素についても同様である。
【００１４】
図２は、実施の形態にかかる演算ユニットを用いて二重化システムにしたプログラマブルロジックコントローラの構成を示す図である。演算ユニット１１１は、制御アプリケーションプログラム、サブルーチンプログラムおよびファンクションブロックの各プログラム命令を実行するプログラム命令処理部１１１１と、プログラム実行結果データ１２１を記憶するデバイスメモリ１１２１と、プログラム実行結果データ１２１をプログラム実行周期ごとにトラッキングバッファ１１３１１に書き込んで、演算ユニット１１２のトラッキングバッファ１１３１２に複写することによりプログラム実行結果データ１２１を制御系から待機系へ転送するトラッキング処理部１１３１と、プログラム実行結果テーブル１２２を記憶する転送制御メモリ１１４１と、参照アドレス管理テーブル１２３を記憶する転送アドレス管理メモリ１１５１と、各プログラム及び実行タイミングを管理する制御アプリケーション１２４を格納する制御アプリケーション格納部１１６１とを有する。
【００１５】
演算ユニット１１２は、演算ユニット１１１と同様の構成であり、プログラム命令処理部１１１２、デバイスメモリ１１２２、トラッキング処理部１１３２、転送制御メモリ１１４２と、転送アドレス管理メモリ１１５２及び制御アプリケーション格納部１１６２を有する。なお、待機系である演算ユニット１１２は、プログラム実行結果データ１２１、プログラム実行結果テーブル１２２、参照アドレス管理テーブル１２３及び制御アプリケーション１２４を保持していない。
【００１６】
プログラム実行結果テーブル１２２は、プログラム命令処理部１１１がプログラム命令を実行したか否かを示すテーブルであり、プログラム実行周期ごとに更新される。
【００１７】
プログラム実行結果データ１２１は、演算ユニット１１１がプログラム実行周期ごとにプログラムを実行した結果、生成されるデータである。
【００１８】
参照アドレス管理テーブル１２３は、転送するデータが格納された各先頭デバイスの位置及びサイズを管理するテーブルである。
【００１９】
プログラム命令処理部１１１が実行するプログラム、サブルーチンプログラムおよびファンクションブロックは、変数名であるデバイスとコマンドであるプログラム命令とで構成されており、各デバイスは分散してデバイスメモリ１１２に割り付けられている。制御系である演算ユニット１１１でプログラムが実行された結果であるプログラム実行結果データ１２１は、デバイスメモリ１１２１へ格納される。
【００２０】
図３は、実施の形態にかかる演算ユニットのハードウェア構成を示す図である。演算ユニット１１は、プログラム及びファームウェアを実行する演算装置５１、演算装置５１がワークエリアに用いるメモリ５２、ファームウェアを格納する不揮発性メモリ５３、プログラム、データ及びテーブルを記憶する記憶装置５４及びエンジニアリングツールとの通信用の通信装置５５を有する。演算装置５１には、ＣＰＵを適用できる。記憶装置５４には、フラッシュメモリを適用できる。
【００２１】
図２に示したプログラム命令処理部１１１及びトラッキング処理部１１３は、演算装置５１がメモリ５２をワークエリアにしてファームウェアを実行することによって実現される。デバイスメモリ１１２、転送制御メモリ１１４、転送アドレス管理メモリ１１５及び制御アプリケーション格納部１１６は、記憶装置５４によって実現される。
【００２２】
図４は、実施の形態にかかるエンジニアリングツールの構成を示す図である。エンジニアリングツール２０は、ユーザが制御アプリケーションを作成するためのユーザインタフェースであるプログラムエディタ２１、プログラムエディタ２１で作成した制御アプリケーションを演算ユニット１１のプログラム命令処理部１１１で実行できる形式に変換するコンパイラ２２、参照アドレス管理テーブル１２３をユーザが閲覧、作成及び編集するためのユーザインタフェースであるトラッキング範囲設定機能部２３、エンジニアリングツール２０で作成した制御アプリケーション及び参照アドレス管理テーブル１２３を演算ユニット１１の転送アドレス管理メモリ１１５及び制御アプリケーション格納部１１６に書き込んだり、読み出したりする処理を行う通信機能部２４を有する。
【００２３】
図５は、実施の形態にかかるエンジニアリングツールを実現する情報処理装置のハードウェア構成を示す図である。情報処理装置６０は、プログラムを実行する演算装置６１、演算装置６１がワークエリアに用いるメモリ６２、エンジニアリングツールプログラム６３１が記憶された記憶装置６３、情報を表示する表示装置６４、情報入力用のユーザインタフェースである入力装置６５、及び演算ユニット１１との通信用の通信装置６６を有する。情報処理装置６０には、汎用のコンピュータ端末を適用できる。演算装置６１にはＣＰＵを適用できる。記憶装置６３にはフラッシュメモリを適用できる。表示装置６４には、液晶表示装置を適用できる。入力装置６５には、キーボード及びマウスを適用できる。
【００２４】
演算装置６１がメモリ６２をワークエリアにしてエンジニアリングツールプログラム６３１を実行することにより、情報処理装置６０は、エンジニアリングツール２０となる。すなわち、イントールされたエンジニアリングツールプログラム６３１を実行中の情報処理装置６０は、エンジニアリングツール２０を構成する。
【００２５】
図４に示したプログラムエディタ２１、コンパイラ２２及びトラッキング範囲設定機能部２３は、演算装置６１がメモリ６２をワークエリアにしてエンジニアリングツールプログラム６３１を実行することによって実現される。通信機能部２４は、エンジニアリングツールプログラム６３１を実行する演算装置６１が通信装置６６を制御することによって実現される。
【００２６】
図６は、実施の形態にかかるエンジニアリングツールの動作の流れを示すフローチャートである。ステップＳ１０１において、プログラムエディタ２１は、入力装置６５を通じてユーザにより行われた制御アプリケーションに含まれるプログラムの作成操作を受け付ける。プログラムの作成には、１以上のプログラム命令を一纏めにしてモジュール化した機能単位（Program  Organization  Unit,  POU）のプログラムモジュールであるファンクションブロック及び、１以上のプログラム命令又はファンクションブロックを一纏めにしてモジュール化したサブルーチンプログラムを用いることができる。一例を挙げると、ファンクションブロックは、ＰＩＤ（Proportional-Integral-Derivative）制御のような機能単位のプログラムモジュールである。なお、複数のファンクションブロックを纏めたものは、一つのファンクションブロックと見なすことができる。
【００２７】
サブルーチンプログラムは、１以上のプログラム命令又はファンクションブロックを一纏めにしてモジュール化したものである。したがって、ファンクションブロックを含むサブルーチンプログラムは、１以上のファンクションブロックと、ファンクションブロックに含まれない命令とで構成される。
【００２８】
図７は、実施の形態にかかるエンジニアリングツールのプログラムエディタで作成されるプログラムの構成例を示す図である。プログラム［０］７１は、ファンクションブロック［０］７１３及びファンクションブロック［１］７１４と、これらのファンクションブロックに含まれないプログラム命令［０］７１５及びプログラム命令［１］７１６とからなるサブルーチンプログラム［０］７１１と、プログラム命令［２］７１７からなるサブルーチンプログラム［１］７１２とで構成されている。プログラム［１］７２は、ファンクションブロック［２］７２１と、ファンクションブロック［２］７２１に含まれないプログラム命令［３］７２２とで構成されている。プログラム［ｘ］７３は、ファンクションブロック［ｚ］７３２と、ファンクションブロック［ｚ］７３２に含まれないプログラム命令［ｗ］７３３とからなるサブルーチンプログラム［ｙ］７３１で構成されている。
【００２９】
図７に示すように、プログラム［０］７１及びプログラム［ｘ］７３は、ファンクションブロック及びサブルーチンプログラムを用いて構成されている。
【００３０】
上記のように、実施の形態にかかるエンジニアリングツール２０のプログラムエディタ２１は、機能単位（Program  Organization  Unit,  POU）であるファンクションブロック単位でモジュール化している。ただし、モジュール化は、ファンクションブロック単位に限定されることはない。
【００３１】
プログラムは、必ずしもサブルーチンプログラム又はファンクションブロックを用いて構成される必要はない。図７のプログラム［１］７２は、ファンクションブロックを用いているが、サブルーチンプログラムを用いずに構成されている。
【００３２】
ステップＳ１０２において、コンパイラ２２は、プログラムエディタ２１を用いて作成されたプログラムをコンパイルし、プログラム命令処理部１１１が実行可能な形式に変換して、制御アプリケーションを生成する。
【００３３】
ステップＳ１０３において、コンパイラ２２はトラッキング範囲を変更又は追加するかを判断する。トラッキング範囲を変更又は追加する場合は、ステップＳ１０３でＹｅｓとなり、ステップＳ１０４でトラッキング範囲設定機能部２３は、トラッキング範囲を変更又は追加する。
【００３４】
図８は、実施の形態にかかるエンジニアリングツールのトラッキング範囲設定機能部がトラッキング範囲を変更又は追加する処理の流れを示すフローチャートである。ステップＳ２０１で、トラッキング範囲設定機能部２３は、制御アプリケーション内のあるプログラムに含まれるプログラム命令の引数に割り付いているデバイス及びサイズを取得する。ステップＳ２０２で、トラッキング範囲設定機能部２３は、取得したデバイス及びサイズを参照アドレス管理テーブル１２３に格納する。ステップＳ２０３で、トラッキング範囲設定機能部２３は、参照アドレス管理テーブル１２３内の連続しているデバイスのサイズを加算する。ステップＳ２０４で、トラッキング範囲設定機能部２３は、制御アプリケーション内に未処理プログラムがあるか否かを判断する。未処理のプログラムがあれば、ステップＳ２０４でＹｅｓとなり、ステップＳ２０１に進む。未処理のプログラムがなければステップＳ２０４でＮｏとなり、処理を終了する。以上の手順により、トラッキング範囲設定機能部２３は、参照アドレス管理テーブル１２３を作成する。
【００３５】
ステップＳ１０５で、通信機能部２４は、二重化システムの制御系である演算ユニット１１１の制御アプリケーション格納部１１６１に制御アプリケーション１２４を書き込むとともに、参照アドレス管理テーブル１２３を転送アドレス管理メモリ１１５１に書き込む。
【００３６】
トラッキング範囲を変更又は追加しない場合は、ステップＳ１０３でＮｏとなり、ステップＳ１０５へ進む。この場合は、制御アプリケーション１２４を制御アプリケーション格納部１１６１に書き込む処理のみを行い、参照アドレス管理テーブル１２３を転送アドレス管理メモリ１１５１に書き込む処理は省略できる。
【００３７】
図９は、実施の形態にかかる演算システムの参照アドレス管理テーブルの一例を示す図である。参照アドレス管理テーブル１２３は、制御アプリケーション１２４に含まれるプログラム中で使用される各デバイスについて、転送する先頭デバイス及び先頭デバイスからのサイズが定義されている。なお、複数のプログラム、サブルーチンプログラム又はファンクションブロックで共通して使用するデバイスについては、参照アドレス管理テーブルに、「共通」の欄を設けて、転送する先頭デバイス及び先頭デバイスからのサイズを定義している。
【００３８】
次に、実施の形態にかかる演算ユニットの動作について説明する。図１０は、実施の形態にかかる演算ユニットのデータトラッキング処理の流れを示すフローチャートである。ステップＳ３０１で、プログラム命令処理部１１１１は、制御アプリケーション１２４を実行する。ステップＳ３０２で、プログラム命令処理部１１１１は、プログラム実行結果データ１２１をデバイスメモリ１１２１に格納する。図１１は、実施の形態にかかる演算ユニットのプログラム実行結果データの一例を示す図である。プログラム実行結果データ１２１は、先頭デバイス１２１１と制御アプリケーション１２４の実行結果である実行結果データ１２１２とで構成される。
【００３９】
ステップＳ３０３で、プログラム命令処理部１１１１は、実行したプログラム中のサブルーチンプログラム、ファンクションブロック又はプログラム命令で使用するデバイスが転送対象であることを示すプログラム実行結果テーブル１２２を作成し、転送制御メモリ１１４１に書き込む。なお、プログラム番号が「共通」となっているデバイスについては、実行有無にかかわらず転送対象にしてプログラム実行結果テーブル１２２を作成する。
【００４０】
図１２は、実施の形態にかかる演算装置のプログラム実行結果テーブルの一例を示す図である。プログラム実行結果テーブル１２２は、制御アプリケーション１２４内のプログラムの各々について実行されたか否かを示している。プログラム［０］７１が実行であり、プログラム［０］７１に含まれるサブルーチンプログラム［０］７１１が実行される。サブルーチンプログラム［０］７１１に含まれるファンクションブロック［０］７１３及びプログラム命令［０］７１５は実行であるが、ファンクションブロック［１］７１４及びプログラム命令［１］７１６は不実行である。また、プログラム［０］７１に含まれるサブルーチンプログラム［１］７１２は不実行であり、プログラム命令［２］７１７は不実行である。プログラム［１］７２は実行であり、プログラム［１］７２に含まれるファンクションブロック［２］７２１は実行される。しかし、プログラム［１］７２に含まれるプログラム命令［３］７２２は不実行である。プログラム［ｘ］７３は、不実行であるため、プログラム［ｘ］７３に含まれるサブルーチンプログラム７３１［ｙ］も不実行である。従って、サブルーチンプログラム［ｙ］７３１に含まれるファンクションブロック［ｚ］７３２及びプログラム命令［ｗ］７３３も不実行である。
【００４１】
プログラム命令処理部１１１１は、実行しなかったサブルーチンプログラム内のファンクションブロックに含まれるプログラム命令を全て実行しなかったとみなして、プログラム実行結果テーブル１２２に記録する。これにより、サブルーチンプログラム内のファンクションブロックに含まれるプログラム命令を実行したか否かの判断を省略し、演算装置５１の負荷を低減できる。
【００４２】
図１２では、実行有無が実行となっているサブルーチンプログラム、ファンクションブロック又はプログラムは、使用するデバイスが転送対象であることを示している。
【００４３】
ステップＳ３０４で、プログラム命令処理部１１１１は、未実行のプログラムがあるか否かを判断する。未実行のプログラムがあれば、ステップＳ３０４でＹｅｓとなり、ステップＳ３０１へ進んで未実行のプログラムを実行する。
【００４４】
未実行のプログラムがなければ、ステップＳ３０４でＮｏとなり、ステップＳ３０５でトラッキング処理部１１３１は、プログラム実行結果テーブル１２２及び参照アドレス管理テーブル１２３に基づいて、転送対象となっているサブルーチンプログラム、ファンクションブロック及びプログラム命令の先頭デバイスから参照アドレス管理テーブル１２３に規定されたサイズ分のデータをデバイスメモリから読み出して、トラッキングバッファ１１３１１に書き込む。
【００４５】
以上の手順により、プログラム命令処理部１１１１が実行したプログラム、サブルーチンプログラム及びファンクションブロックに含まれるプログラム命令で使用されるデバイス、及び実行有無に関わらず転送すると別途設定したデバイスのデータのみがトラッキング処理で待機系の演算ユニット１１２に転送される。これにより、デバイスが分散してデバイスメモリに割り付けられていても、トラッキング処理を実行できる。また、実行したプログラムに含まれるデバイスのデータを全て転送する場合と比較して、トラッキング処理で制御系から待機系へ転送するデータ量を低減できる。
【００４６】
なお、上記の説明においては、ファンクションブロックの実行有無により、ファンクションブロック内のプログラム命令で使用するデバイスを転送対象とするか否かを決定しているが、ファンクションブロック単位でのデバイスを転送対象とするか否かを判断せず、サブルーチンプログラム単位でのみ判断してもよい。サブルーチンプログラム中に使用頻度の異なるファンクションブロックが含まれている場合には、ファンクションブロック単位でデバイスを転送対象とするか否かを判断することで演算装置５１の負荷を低減できるが、サブルーチンプログラム中のファンクションブロックの使用頻度に偏りがない場合には、ファンクションブロックでデバイスを転送対象とするか否かを判断しない方が演算装置５１の負荷を低減できる。また、ファンクションブロック中のプログラム命令について、個別に転送対象とするか否かを決定しても良い。
【００４７】
上記のように、実施の形態では、プログラム、サブルーチンプログラム、ファンクションブロック及びプログラム命令の実行有無をプログラム実行結果テーブルに格納し、実行されたプログラム命令に割り付けられた各トラッキング転送範囲のデータのみトラッキング転送を行う。したがって、プログラム中のデバイスが分散してメモリに割り付けられていても、トラッキング転送を実行できる。また、二重化システムのトラッキングデータの転送量が少なくなり、プログラム実行周期を短縮できる。
【００４８】
また、１以上のプログラム命令を一纏めにしてモジュール化したファンクションブロック単位で実行したか否かを判断することにより、ファンクションブロックに含まれるプログラム命令を個別に実行したか否か判断する場合と比較して、演算装置５１の負荷を低減できる。
【００４９】
また、複数のプログラム、サブルーチンプログラム又はファンクションブロックで共通して用いられるデバイスは、プログラム、サブルーチンプログラム及びファンクションブロックの実行有無によらず毎回転送するため、同じデバイスのデータが重複して転送対象となることを防ぎ、転送するデータ量を低減できる。
【００５０】
また、実施の形態にかかるエンジニアリングツール２０を用いることにより、プログラム作成者は、制御アプリケーション１２４を作成してコンパイルし、演算ユニット１０へ書込むだけで、メモリ５２に分散して割り付けられているプログラム実行結果データ１２１を制御系と待機系とで同期できる二重化システムを構築できる。特に大容量のトラッキングを必要とする二重化システムに効果があり、制御スキャンの速度を高め、高精度な制御が可能となる。
【００５１】
また、実施の形態にかかるエンジニアリングツール２０を用いることにより、プログラム作成者は、プログラム実行結果データ１２１の格納場所の連続性を意識する必要がない。また、制御アプリケーション１２４を作成、変更又は追加しても、トラッキング転送に影響を与えないため、自由に制御アプリケーション１２４を作成、変更及び追加ができる。特に、メモリ５２にバラバラに割り付けられたデバイス又はラベル（変数）を使った制御アプリケーション１２４を変更を容易に行える。ラベルを使ったプログラムでは、コンパイラ２２が自動的にメモリ５２に連続して割り付けるため、変更すると、再度全ラベルを割り付け直す必要があるが、実施の形態にかかるエンジニアリングツール２０を用いれば、部分的に変更した箇所のみコンパイルすればよいため、コンパイル時間が掛からない。これにより，プログラム作成者はプログラミング工数を削減できる。
【００５２】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００５３】
１０  プログラマブルロジックコントローラ、１１，１１１，１１２  演算ユニット、２０  エンジニアリングツール、２１  プログラムエディタ、２２  コンパイラ、２３  トラッキング範囲設定機能部、２４  通信機能部、５１，６１  演算装置、５２，６２  メモリ、５３  不揮発性メモリ、５４，６３  記憶装置、５５  通信装置、６４  表示装置、６５  入力装置、６６  通信装置、７１  プログラム［０］、７２  プログラム［１］、７３  プログラム［ｘ］、１１１，１１１１，１１１２  プログラム命令処理部、１１２，１１２１，１１２２  デバイスメモリ、１１３，１１３１，１１３２  トラッキング処理部、１１３，１１３１，１１３２  トラッキング処理部、１１４，１１４１，１１４２  転送制御メモリ、１１５，１１５１，１１５２  転送アドレス管理メモリ、１１６，１１６１，１１６２  制御アプリケーション格納部、１２１  プログラム実行結果データ、１２２  プログラム実行結果テーブル、１２３  参照アドレス管理テーブル、１２４  制御アプリケーション、７１１  サブルーチンプログラム［０］、７１２  サブルーチンプログラム［１］、７１３  ファンクションブロック［０］、７１４  ファンクションブロック［１］、７１５  プログラム命令［０］、７１６  プログラム命令［１］、７１７  プログラム命令［２］、７２１  ファンクションブロック［２］、７２２  プログラム命令［３］、７３１  サブルーチンプログラム［ｙ］、７３２  ファンクションブロック［ｚ］、７３３  プログラム命令［ｗ］、１１３１，１１３１１，１１３１２  トラッキングバッファ。
【図１】
2016157362.tif 000003
【図２】
2016157362.tif 000004
【図３】
2016157362.tif 000005
【図４】
2016157362.tif 000006
【図５】
2016157362.tif 000007
【図６】
2016157362.tif 000008
【図７】
2016157362.tif 000009
【図８】
2016157362.tif 000010
【図９】
2016157362.tif 000011
【図１０】
2016157362.tif 000012
【図１１】
2016157362.tif 000013
【図１２】
2016157362.tif 000014
【手続補正書】
【提出日】平成28年9月26日(2016.9.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
二重化システムのプログラマブルロジックコントローラを構成する演算ユニットであって、
複数のプログラム命令を含んだ制御アプリケーションを実行してプログラム実行結果データを生成するとともに、前記制御アプリケーション中の１以上のプログラム命令をモジュール化したプログラムモジュールごとに、実行したか否かをプログラム実行結果テーブルに記録するプログラム命令処理部と、
前記プログラム実行結果データの記録先が前記プログラム命令ごとに定義された参照アドレス管理テーブルを記憶する転送アドレス管理メモリと、
前記参照アドレス管理テーブル及び前記プログラム実行結果テーブルに基づいて、前記プログラム命令処理部が実行したプログラムモジュールに含まれるプログラム命令のプログラム実行結果データのトラッキング処理を行うトラッキング処理部とを有することを特徴とする演算ユニット。
【請求項２】
前記参照アドレス管理テーブルは、前記プログラム命令が用いるデバイスと、データサイズとによって前記プログラム実行結果データの記録先が定義されることを特徴とする請求項１に記載の演算ユニット。
【請求項３】
前記プログラムモジュールは、１以上のプログラム命令を一纏めにしたファンクションブロックであることを特徴とする請求項１に記載の演算ユニット。
【請求項４】
前記制御アプリケーションは、前記ファンクションブロックを１以上含んだサブルーチンプログラムを少なくとも一つ含み、
前記プログラム命令処理部は、実行しなかったサブルーチンプログラム内のファンクションブロックに含まれるプログラム命令を全て実行しなかったとみなして、前記プログラム実行結果テーブルに記録することを特徴とする請求項３に記載の演算ユニット。
【請求項５】
二重化システムのプログラマブルロジックコントローラを構成する演算ユニットが実行する制御アプリケーションを作成するエンジニアリングツールであって、
複数のプログラム命令を含んだ前記制御アプリケーションの作成用のユーザインタフェースであるプログラムエディタと、
前記制御アプリケーションが前記演算ユニットで実行された際に生成されるプログラム実行結果データの前記演算ユニット内での記録先を前記プログラム命令ごとに定義する参照アドレス管理テーブルを作成するトラッキング範囲設定機能部と、
制御アプリケーション及び前記参照アドレス管理テーブルを前記演算ユニットへ送信する通信機能部とを有することを特徴とするエンジニアリングツール。
【請求項６】
二重化システムのプログラマブルロジックコントローラを構成する演算ユニットが実行する制御アプリケーションを作成する処理を情報処理装置に実行させるエンジニアリングツールプログラムであって、
前記情報処理装置に、
複数のプログラム命令を含んだ前記制御アプリケーションを生成する処理と、
前記制御アプリケーションが前記演算ユニットで実行された際に生成されるプログラム実行結果データの前記演算ユニット内での記録先を前記プログラム命令ごとに定義する参照アドレス管理テーブルを作成する処理と、
制御アプリケーション及び前記参照アドレス管理テーブルを前記演算ユニットへ送信する処理とを実行させることを特徴とするエンジニアリングツールプログラム。
【国際調査報告】
2016157362.tif 000015
2016157362.tif 000016
2016157362.tif 000017
2016157362.tif 000018