(57)【特許請求の範囲】
【請求項１】
制御部に内蔵されたキャッシュメモリと、
複数の処理構成要素からなり、外部機器を制御するための制御プログラムと、当該制御プログラムの処理構成要素毎に、当該処理構成要素を前記キャッシュメモリにプリロードするプリロード設定の有無が設定されたプリロード設定情報とを記憶する記憶部と、
初期化処理中に、前記記憶部に記憶された前記プリロード設定情報を参照して、前記制御プログラムの各前記処理構成要素がプリロード設定ありとされているか否かを判断し、プリロード設定ありとされている場合に、前記制御プログラムの当該処理構成要素を実行することによりプリロード設定ありとされた当該処理構成要素を前記キャッシュメモリにプリロードするとともにロックするプログラム仮実行部と、
前記初期化処理の後に、前記キャッシュメモリにプリロードされた前記処理構成要素を優先して実行しつつ前記制御プログラムをサイクリックに実行するプログラム実行部と、
前記プログラム実行部により実行された前記制御プログラムの実行結果を制御データとして前記外部機器に出力する制御データ出力部と、
を含むプログラマブルコントローラ。
【請求項２】
請求項１に記載のプログラマブルコントローラにおいて、
前記プログラム実行部により起動され、当該プログラム実行部により実行された前記制御プログラムの実行結果を制御データ保持メモリに書き込む制御データ書込部をさらに含み、
前記制御データ出力部は、前記制御データ保持メモリに保持された前記制御データを前記外部機器に出力するよう構成され、
前記プログラム仮実行部は、前記制御プログラムの前記処理構成要素を実行しても前記制御データ書込部を起動することなく、当該処理構成要素を前記キャッシュメモリにプリロードするとともにロックするプログラマブルコントローラ。
【請求項３】
請求項１または２に記載のプログラマブルコントローラにおいて、
前記処理構成要素は、制御プログラムのプログラム構成要素単位、タスク単位、機能単位、または処理単位であるプログラマブルコントローラ。
【請求項４】
キャッシュメモリを内蔵する制御部を含むプログラマブルコントローラが実行する制御プログラム編集するプログラム作成支援装置であって、
前記制御プログラムの処理構成要素毎に、当該処理構成要素を前記プログラマブルコントローラの前記キャッシュメモリにプリロードするプリロード設定の有無を受け付けて、当該プリロード設定の有無が設定されたプリロード設定情報を生成する設定受付部と、
前記設定受付部が生成した前記プリロード設定情報を前記制御プログラムとともに前記プログラマブルコントローラに提供するデータ出力部と、
を含むプログラム作成支援装置。
【請求項５】
請求項４に記載のプログラム作成支援装置において、
前記処理構成要素は、制御プログラムのプログラム構成要素単位、タスク単位、機能単位、または処理単位であるプログラム作成支援装置。
【請求項６】
請求項４または５に記載のプログラム作成支援装置において、
前記プログラマブルコントローラの前記キャッシュメモリにおいて、前記制御プログラムをプリロード可能な容量を記憶する記憶部と、
前記設定受付部が前記制御プログラムの処理構成要素毎に当該処理構成要素を前記プログラマブルコントローラの前記キャッシュメモリにプリロードするプリロード設定の有無を受け付ける際に、プリロード設定ありとされた前記処理構成要素のサイズの合計値をカウントするとともに、当該合計値が前記プログラマブルコントローラの前記キャッシュメモリにおいて、前記制御プログラムをプリロード可能な前記容量を超えた場合に、警告を出力する警告出力部と、
をさらに含むプログラム作成支援装置。
【請求項７】
制御部に内蔵されたキャッシュメモリを含むコンピュータを、
複数の処理構成要素からなり、外部機器を制御するための制御プログラムと、当該制御プログラムの処理構成要素毎に、当該処理構成要素を前記キャッシュメモリにプリロードするプリロード設定の有無が設定されたプリロード設定情報とを記憶する記憶手段、
初期化処理中に、前記記憶手段に記憶された前記プリロード設定情報を参照して、前記制御プログラムの各前記処理構成要素がプリロード設定ありとされているか否かを判断し、プリロード設定ありとされている場合に、前記制御プログラムの当該処理構成要素を実行することによりプリロード設定ありとされた当該処理構成要素を前記キャッシュメモリにプリロードするとともにロックするプログラム仮実行手段、
前記初期化処理の後に、前記キャッシュメモリにプリロードされた前記処理構成要素を優先して実行しつつ前記制御プログラムをサイクリックに実行するプログラム実行手段、
前記プログラム実行手段により実行された前記制御プログラムの実行結果を制御データとして前記外部機器に出力する制御データ出力手段、
として機能させるデジタル制御プログラム。
【請求項８】
キャッシュメモリを内蔵する制御部を含むプログラマブルコントローラが実行する制御プログラム編集するコンピュータを、
前記制御プログラムの処理構成要素毎に、当該処理構成要素を前記プログラマブルコントローラの前記キャッシュメモリにプリロードするプリロード設定の有無を受け付けて、当該プリロード設定の有無が設定されたプリロード設定情報を生成する設定受付手段、
前記設定受付手段が生成した前記プリロード設定情報を前記制御プログラムとともに前記プログラマブルコントローラに提供するデータ出力手段、
として機能させるプログラム作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラ、プログラム作成支援装置、デジタル制御プログラム、およびプログラム作成支援プログラムに関する。
【背景技術】
【０００２】
従来、ＣＰＵ（Central Processing Unit）等の汎用マイクロプロセッサを使用してプログラマブルコントローラを構成することが広く行われている。このようなマイクロプロセッサは、内部に高速な命令実行やデータ処理を行うためのキャッシュメモリを備えているものが多い。マイクロプロセッサは、外部のメモリから命令コードやデータ列をフェッチする際に、それらをキャッシュメモリに格納する。そのため、同じ処理が繰り返して実行されるような場合、キャッシュメモリにデータが保持されていれば、命令コードやデータ列は外部のメモリからではなく内部のキャッシュメモリから取り出されるため、高速に処理を行うことが可能となる。
【０００３】
特許文献１（特開平８−２４９１７７号公報）には、キャッシュメモリを備える汎用マイクロプロセッサユニットにおいて、処理プログラムの中で条件分岐等により局所的に繰り返される部分を前もってメモリからキャッシュメモリに格納しておき、格納した処理プログラムの命令を逐次読み込んで処理することで外部のメモリから命令を読み込むときのメモリアクセスの遅れを解消して処理速度を高めることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２４９１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のように繰り返しの多い部分を前もってキャッシュメモリに格納しておくことにより、当該部分をキャッシュメモリから読み込むことにより処理速度を高めることができ、処理全体を高速化できる可能性はある。しかし、使用率や出現頻度が高くなく、繰り返しの少ない部分であっても、特定処理を優先して、高速に動かしたいというユーザの要求がある。従来の手順では、このようなユーザの要求に沿うことができなかった。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、使用率や出現頻度に関わらず、ユーザが選定した制御プログラムの特定処理を優先して高速に動かせるようにする技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明によれば、
制御部に内蔵されたキャッシュメモリと、
複数の処理構成要素からなり、外部機器を制御するための制御プログラムと、当該制御プログラムの処理構成要素毎に、当該処理構成要素を前記キャッシュメモリにプリロードするプリロード設定の有無が設定されたプリロード設定情報とを記憶する記憶部と、
初期化処理中に、前記記憶部に記憶された前記プリロード設定情報を参照して、前記制御プログラムの各前記処理構成要素がプリロード設定ありとされているか否かを判断し、プリロード設定ありとされている場合に、前記制御プログラムの当該処理構成要素を実行することによりプリロード設定ありとされた当該処理構成要素を前記キャッシュメモリにプリロードするとともにロックするプログラム仮実行部と、
前記初期化処理の後に、前記キャッシュメモリにプリロードされた前記処理構成要素を優先して実行しつつ前記制御プログラムをサイクリックに実行するプログラム実行部と、
前記プログラム実行部により実行された前記制御プログラムの実行結果を制御データとして前記外部機器に出力する制御データ出力部と、
を含むプログラマブルコントローラが提供される。
【０００８】
この構成によれば、プログラマブルコントローラにおいて、制御プログラムを実際に実行する運用状態に先立ち、初期化処理中に、プログラム仮実行部が、プリロード設定情報に従い、制御プログラムのうちプリロード設定ありとされている処理構成要素を優先的にキャッシュメモリにプリロードしてロックする。これにより、キャッシュメモリにプリロードされた制御プログラムの処理構成要素については、運用状態において高速処理を行うことができる。また、プリロード設定ありとされた制御プログラムの処理構成要素を選択的にキャッシュメモリにプリロードするので、プリロードにかかる時間も短くすることができ、初期化処理を短時間で行うこともできる。
【０００９】
本発明によれば、
キャッシュメモリを内蔵する制御部を含むプログラマブルコントローラが実行する制御プログラム編集するプログラム作成支援装置であって、
前記制御プログラムの処理構成要素毎に、当該処理構成要素を前記プログラマブルコントローラの前記キャッシュメモリにプリロードするプリロード設定の有無を受け付けて、当該プリロード設定の有無が設定されたプリロード設定情報を生成する設定受付部と、
前記設定受付部が生成した前記プリロード設定情報を前記制御プログラムとともに前記プログラマブルコントローラに提供するデータ出力部と、
を含むプログラム作成支援装置が提供される。
【００１０】
この構成によれば、キャッシュメモリを内蔵する制御部を含むプログラマブルコントローラにより外部装置を制御するための制御プログラムについて、ユーザが当該制御プログラムの処理構成要素毎にプリロード設定の有無を決定することができるので、特定処理を優先して高速に動かせるようにすることができる。
【００１１】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、使用率や出現頻度に関わらず、制御プログラムの特定処理を優先して高速に動かせるようにすることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態における外部機器、プログラマブルコントローラ（ＰＬＣ）、およびプログラム作成支援装置の関係を示すブロック図である。
【図２】本発明の実施の形態におけるプログラム作成支援装置の構成の一例を示すブロック図である。
【図３】制御プログラムのプロパティであるプリロード設定情報を作成する際にプログラム作成支援装置の表示処理部により提供される設定画面の一例を示す図である。
【図４】本発明の実施の形態におけるＰＬＣの構成の一例を示すブロック図である。
【図５】本発明の実施の形態におけるＣＰＵの構成の一例を機能的に示すブロック図である。
【図６】本発明の実施の形態におけるＰＬＣの処理手順を示すフローチャートである。
【図７】本発明の実施の形態におけるＰＬＣの処理手順を示すフローチャートである。
【図８】本発明の実施の形態におけるＰＬＣの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１５】
プログラマブルコントローラ（ＰＬＣ）は、たとえばモーションコントローラ、シーケンサ等、外部機器を制御するための制御プログラムを所定の周期でサイクリックに実行して外部機器を制御する構成とすることができる。
【００１６】
図１は、本実施の形態における外部機器１７０、ＰＬＣ１００、およびプログラム作成支援装置２００の関係を示すブロック図である。
【００１７】
本実施の形態において、外部機器１７０を制御するための制御プログラムは、プログラム作成支援装置２００のユーザにより作成されるユーザアプリケーションとすることができる。制御プログラムは、たとえば外部機器１７０を所定の周期毎に制御するためのシーケンス制御プログラムや外部機器１７０の位置決め制御を実行する位置決め制御プログラムとすることができる。制御プログラムが位置決め制御プログラムの場合、外部機器１７０は、たとえばサーボモータとすることができる。
【００１８】
ＰＬＣ１００は、外部機器１７０を制御するための制御プログラムを実行する。ＰＬＣ１００は、キャッシュメモリを含む制御部であるＣＰＵ（Central Processing Unit）を含む。ＰＬＣ１００の詳細な構成は後述する。
【００１９】
（プログラム作成支援装置）
まず、プログラム作成支援装置２００の詳細な構成を説明する。
図２は、本実施の形態におけるプログラム作成支援装置２００の構成の一例を示すブロック図である。
プログラム作成支援装置２００は、設定受付部２０２、表示処理部２０４、データ出力部２０６、通信インタフェース２１０、および制御プログラム記憶部２２０を含む。
【００２０】
本実施の形態において、プログラム作成支援装置２００のユーザは、制御プログラムの作成とともに、当該制御プログラムの処理構成要素毎に、当該処理構成要素をＰＬＣ１００のＣＰＵのキャッシュメモリにプリロードするプリロード設定の有無が設定されたプリロード設定情報も作成する。処理構成要素は、たとえば制御プログラムのプログラム構成要素単位（ＰＯＵ：Program Organization Unit）、タスク単位、機能単位、または処理単位とすることができる。ＰＯＵには、実行プログラムを記述するプログラム、ならびにプログラムの部品化・再利用に用いるファンクション（関数）およびファンクションブロックが含まれる。
【００２１】
設定受付部２０２は、キーボードやマウス等の入力手段を介して、ユーザから制御プログラムやプリロード設定情報を作成するために必要な各種設定を受け付ける。入力された情報に基づき、制御プログラムおよびプリロード設定情報が生成される。表示処理部２０４は、ディスプレイ等の表示部を介して、ユーザが制御プログラムやプリロード設定情報を作成するために必要な各種情報を提供する。制御プログラム記憶部２２０は、ユーザが作成した制御プログラムおよびプリロード設定情報を記憶する。ここで、プリロード設定情報は、制御プログラムのプロパティに含まれる構成とすることができる。
【００２２】
データ出力部２０６は、ユーザが作成した制御プログラムおよびプリロード設定情報を制御プログラム記憶部２２０から読み出し、通信インタフェース２１０を介してＰＬＣ１００に提供する。
【００２３】
なお、ここでは図示していないが、プログラム作成支援装置２００は、ユーザによってプログラミングされたソースプログラムをコンパイルしてＰＬＣ１００のＣＰＵが直接実行可能なコンパイラ言語の制御プログラムを生成する機能を有している。データ出力部２０６は、コンパイラ言語の制御プログラムをＰＬＣ１００に提供する。
【００２４】
図３は、制御プログラムのプロパティであるプリロード設定情報を作成する際に表示処理部２０４により提供される設定画面２５０の一例を示す図である。
ここで、制御プログラムの処理構成要素は、ＰＯＵとすることができる。設定画面２５０は、ＰＯＵ名欄、ＰＯＵ種別欄、およびプリロード設定欄等を含む。図３（ａ）に示すように、プリロード設定欄には、たとえば「あり」と「なし」を選択可能なプルダウンボックス２５２が表示されるようにすることができる。これにより、ユーザは、設定画面２５０のプルダウンボックス２５２の「あり」と「なし」を選択することにより、各ＰＯＵ毎に、プリロード設定の有無を設定することができる。図３（ｂ）は、各ＰＯＵのプリロード設定の有無の設定が完了した状態を示す。
【００２５】
また、他の例において、プリロード設定欄は、デフォルトで「なし」が設定されており、ユーザがプリロード設定ありとしたいＰＯＵのみ「あり」を設定する構成とすることもできる。
【００２６】
また、ここでは図示していないが、制御プログラムの各ＰＯＵがタスクに割り当てられた状態で、ユーザが各ＰＯＵが割り当てられたタスクを参考にしながらプリロード設定の有無を設定するようにすることもできる。ここで、タスクは、たとえばイベントタスク、定周期タスク、デフォルトタスクを含むことができる。このような構成とすることにより、ユーザはたとえばイベントタスクや定周期タスク等、割込み処理となるタスクに割り当てられたＰＯＵを優先的にプリロード設定ありと設定することができる。割込み処理の一例として、たとえば、機械制御システムにおいて、モーションコントローラのアーム部分に配置された障害物検知センサが障害物を検知し、障害物を回避するために円弧補間計算を行って非常時のアーム回避ルートを算出する処理を挙げることができる。このような割込み処理をプリロード設定ありとしておくことにより、後述するように、割込み処理がキャッシュメモリにプリロードされるので、障害物が検知されるような状況となった場合に、非常時のアーム回避ルートを素早く算出して次の目標位置にアームを到達させるようにすることができる。
【００２７】
（ＰＬＣ）
次に、ＰＬＣ１００の詳細な構成を説明する。
図４は、本実施の形態におけるＰＬＣ１００の構成の一例を示すブロック図である。
ＰＬＣ１００は、ＣＰＵモジュール１０１および入出力モジュール１０８を含む。ＣＰＵモジュール１０１は、通信インタフェース１０２、バスインタフェース１０４、バス１０６、ＣＰＵ１１０、制御プログラム記憶部１５０、作業メモリ１５２、ステータス情報管理メモリ１５４、制御データ保持メモリ１５６を含む。
【００２８】
ＣＰＵ１１０は、中央演算部１１２、プログラムを高速に実行するための命令キャッシュメモリ１４０およびデータキャッシュメモリ１４２を含む。命令キャッシュメモリ１４０は、中央演算部１１２が実行したプログラムを一時的に保持する。データキャッシュメモリ１４２は、中央演算部１１２が実行した処理データを一時的に保持する。命令キャッシュメモリ１４０およびデータキャッシュメモリ１４２は、保持したプログラムや処理データが一定時間参照されない場合にそれらを消去または新たなプログラムや処理データで更新するエージング機能、ならびに保持したプログラムや処理データがエージング機能等により消去されないようにロックするロック機能を有する構成とすることができる。命令キャッシュメモリ１４０およびデータキャッシュメモリ１４２は、たとえば所定のロック命令でキャッシュメモリをロックすることにより、そのときにキャッシュメモリにロードされている命令が、消去されないように指定された領域に保持されるようにする構成とすることができる。
【００２９】
本実施の形態において、プログラム作成支援装置２００で作成されたプリロード設定情報において、プリロード設定ありと設定された制御プログラムの処理構成要素は、ＰＬＣ１００の初期化処理時に命令キャッシュメモリ１４０にプリロードされるとともにロックされる。なお、プリロードされた制御プログラムの処理構成要素に占有されない命令キャッシュメモリ１４０のキャッシュ領域は、通常のキャッシュ領域として使用され、エージング機能により適宜消去等される。
【００３０】
入出力モジュール１０８は、ＣＰＵモジュール１０１と外部機器１７０とを接続する。
【００３１】
ＣＰＵモジュール１０１の各構成要素は、バス１０６により接続されている。バスインタフェース１０４は、ＣＰＵモジュール１０１の各構成要素と入出力モジュール１０８とのインタフェースを行う。
【００３２】
通信インタフェース１０２は、たとえばドライバ／レシーバとすることができる。通信インタフェース１０２は、たとえば汎用シリアル通信等の通信路を介してプログラム作成支援装置２００と接続される。
【００３３】
図５は、ＣＰＵ１１０の構成の一例を機能的に示すブロック図である。
ＣＰＵ１１０は、プログラム取得部１２０、初期化処理部１２２、プログラム仮実行部１２６、プログラム実行部１３０、制御データ書込部１３２、および制御データ出力部１３４を含む。
【００３４】
ＣＰＵ１１０のこれらの機能は、ＣＰＵ１１０の中央演算部１１２、ＰＬＣ１００にインストールされているオペレーティングシステム（ＯＳ）、および制御プログラム等により実現することができる。
【００３５】
以下、図４および図５を参照して説明する。
プログラム取得部１２０は、通信インタフェース１０２および通信路を介してプログラム作成支援装置２００からプログラム作成支援装置２００のユーザにより作成された制御プログラムおよびプリロード設定情報をダウンロードする。プログラム取得部１２０は、ダウンロードした制御プログラムおよびプリロード設定情報を制御プログラム記憶部１５０に記憶する。制御プログラム記憶部１５０は、たとえば不揮発性メモリにより構成することができる。
【００３６】
初期化処理部１２２は、ＰＬＣ１００のパワーオンまたはリセットスタート後、作業メモリ１５２、ステータス情報管理メモリ１５４、および制御データ保持メモリ１５６等のメモリのメモリクリアや各種初期設定等の初期化処理を実行する。
【００３７】
初期化処理部１２２は、メモリクリア後、ステータス情報管理メモリ１５４に初期化処理中であることを示すステータス情報を書き込む。ステータス情報管理メモリ１５４は、ＰＬＣ１００が初期化処理中であることや、ＰＬＣ１００が実際に外部機器１７０を制御する運用状態であることを示すステータス情報を記憶する。
【００３８】
プログラム仮実行部１２６は、初期化処理部１２２からの指示に基づき、制御プログラム記憶部１５０に記憶された制御プログラムのプリロード設定情報を参照して、制御プログラムの各処理構成要素がプリロード設定ありとされているか否かを判断し、プリロード設定ありとされている場合に、当該処理構成要素を実行する。プログラム仮実行部１２６は、実行した制御プログラムの処理構成要素を命令キャッシュメモリ１４０にプリロードするとともにロックする。
【００３９】
プログラム仮実行部１２６による制御プログラムのプリロードおよびロックが終了し、初期化処理が終了すると、初期化処理部１２２は、ステータス情報管理メモリ１５４のステータス情報を運用状態であることを示すものに更新する。
【００４０】
運用状態において、プログラム実行部１３０は、命令キャッシュメモリ１４０にプリロードされた処理構成要素を優先して実行しつつ制御プログラムをサイクリックに実行する。
【００４１】
プログラム実行部１３０は、制御プログラムを実行するとともに、制御データ書込部１３２を起動する。制御データ書込部１３２は、プログラム実行部１３０により起動されると、プログラム実行部１３０により実行された制御プログラムの実行結果を制御データ保持メモリ１５６に書き込む。
【００４２】
制御データ出力部１３４は、プログラム実行部１３０により実行された制御プログラムの実行結果である外部機器１７０を制御する制御データを外部機器１７０に出力する。具体的には、制御データ出力部１３４は、制御データ保持メモリ１５６に保持された制御データを入出力モジュール１０８を介して外部機器１７０に出力するよう構成されている。これにより、外部機器１７０が制御される。
【００４３】
本実施の形態において、プログラム仮実行部１２６は、制御プログラムの処理構成要素を実行しても制御データ書込部１３２を起動することなく、その処理構成要素を命令キャッシュメモリ１４０にプリロードするとともにロックする。つまり、本実施の形態において、プログラム実行部１３０により実行された制御プログラムの実行結果である制御データのみが制御データ保持メモリ１５６に保持され、制御データ出力部１３４により外部機器１７０に出力される。このような構成により、本実施の形態において、プログラム仮実行部１２６により実行された制御プログラムの実行結果は、外部機器１７０には出力されないようにすることができる。ただし、プログラム仮実行部１２６により実行された制御プログラムの実行結果が、外部機器１７０には出力されないようにする構成としては、たとえば制御データ出力部１３４が、プログラム実行部１３０により実行された制御プログラムの実行結果である制御データのみを選択的に出力する等の制御を行う等、種々の構成とすることができる。これにより、運用状態におけるプログラム実行部１３０による初回の制御プログラムの実行から高速性が発揮されるようにすることができる。
【００４４】
なお、制御プログラム記憶部１５０に記憶された制御プログラムおよびプリロード設定情報は、プログラム仮実行部１２６およびプログラム実行部１３０の処理開始前に作業メモリ１５２に再配置され、プログラム仮実行部１２６およびプログラム実行部１３０は、作業メモリ１５２を参照して制御プログラムやプリロード設定情報を読み出す構成とすることもできる。また、プログラム仮実行部１２６およびプログラム実行部１３０が実行する制御プログラムは、作業メモリ１５２に展開されつつ、命令キャッシュメモリ１４０にもロードされる。
【００４５】
作業メモリ１５２、ステータス情報管理メモリ１５４、および制御データ保持メモリ１５６は、たとえばＲＡＭ（Random Access Memory）により構成することができる。
【００４６】
本実施の形態において、運用状態でプログラム実行部１３０が制御プログラムを実行するのに先立ち、予めプログラム作成支援装置２００でプリロード設定ありとされた所定の処理構成要素が命令キャッシュメモリ１４０にプリロードされている。そのため、プログラム実行部１３０が制御プログラムのこのような処理構成要素を実行する際には制御プログラム記憶部１５０や作業メモリ１５２等から読み出す必要なく命令キャッシュメモリ１４０を参照して制御プログラムを実行することができる。そのため、制御プログラムの実行速度を高速化することができる。
【００４７】
図６から図８は、本実施の形態におけるＰＬＣ１００の処理手順を示すフローチャートである。
図６は、初期化処理部１２２の処理手順を示す。初期化処理部１２２は、ＰＬＣ１００のパワーオンまたはリセットスタートを初期化指示として、初期化指示があると（Ｓ１００のＹＥＳ）、ステータス情報管理メモリ１５４、作業メモリ１５２、および制御データ保持メモリ１５６等のＲＡＭ等のメモリクリアを行う（Ｓ１０２）。つづいて、初期化処理部１２２は、ステータス情報管理メモリ１５４に初期化処理中であることを示すステータス情報を記憶する（Ｓ１０４）。次いで、初期化処理部１２２は、プログラム仮実行部１２６に制御プログラムの仮実行を指示する（Ｓ１０６）。
【００４８】
図７は、図６のステップＳ１０６の制御プログラムの仮実行の指示に基づくプログラム仮実行部１２６の処理手順を示す。
【００４９】
初期化処理部１２２から制御プログラムの仮実行指示があると（Ｓ１２０）、プログラム仮実行部１２６は、制御プログラム記憶部１５０から制御プログラムのプリロード設定情報を読み出し、処理構成要素毎に、プリロード設定の有無を確認する（Ｓ１２２）。プリロード設定ありの場合（Ｓ１２４のＹＥＳ）、プログラム仮実行部１２６は、その処理構成要素を実行する（Ｓ１２６）。これにより、プログラム仮実行部１２６により実行された制御プログラムの処理構成要素が命令キャッシュメモリ１４０にロードされる。プログラム仮実行部１２６は、命令キャッシュメモリ１４０にロードされた制御プログラムの処理構成要素が他のデータに書き換えられること等により消去されないようにロックする（Ｓ１２８）。たとえば、プログラム仮実行部１２６は、制御プログラムの処理構成要素が命令キャッシュメモリ１４０の消去されないように指定された領域にロードされる命令とともに命令キャッシュメモリ１４０にアクセスすることにより、制御プログラムの処理構成要素をロックすることができる。次いで、制御プログラムの全処理構成要素の確認が終了したか否かを判断し（Ｓ１３０）、終了していない場合（Ｓ１３０のＮＯ）、次の処理構成要素に進み（Ｓ１３２）、同様の処理を行う。ステップＳ１２８で制御プログラムの全処理構成要素の確認が終了した場合（Ｓ１３０のＹＥＳ）、プログラム仮実行部１２６は、初期化処理部１２２に仮実行処理の終了を通知する（Ｓ１３４）。
【００５０】
以上の処理により、仮実行処理で実行された制御プログラムの処理構成要素は、命令キャッシュメモリ１４０に保持されロックされた状態となるので、この後プログラム実行部１３０が対応する制御プログラムの処理構成要素を実行する際、その処理構成要素は命令キャッシュメモリ１４０から読み出されることになり、高速処理を実現することができる。
【００５１】
図６に戻り、プログラム仮実行部１２６から仮実行処理の終了通知を受けると（Ｓ１０８のＹＥＳ）、初期化処理部１２２はＲＡＭ等のメモリクリアを再度行う（Ｓ１１０）。これにより、制御プログラムの仮実行処理による作業データが、作業メモリ１５２等からクリアされ、運用状態での外部機器１７０の制御動作に影響を与えないようにすることができる。このステップでは、作業メモリ１５２のみを対象にしてメモリクリアしてもよい。
【００５２】
つづいて、初期化処理部１２２は、各種初期値の設定等、その他の初期化処理を行う（Ｓ１１２）。次いで、初期化処理部１２２は、ステータス情報管理メモリ１５４の初期化処理中であることを示すステータス情報を運用状態であることを示すものに更新する（Ｓ１１４）。この後、初期化処理部１２２は、プログラム実行部１３０に制御プログラムの実行を指示する（Ｓ１１６）。
【００５３】
図８は、図６のステップＳ１１６の制御プログラムの実行の指示に基づくプログラム実行部１３０の処理手順を示す。
【００５４】
初期化処理部１２２から制御プログラムの実行指示があると（Ｓ１４０）、プログラム実行部１３０は、制御プログラムを実行する（Ｓ１４２）。このとき、プログラム実行部１３０は、命令キャッシュメモリ１４０を優先的に参照するため、既に命令キャッシュメモリ１４０に保持されている制御プログラムの処理構成要素については、制御プログラム記憶部１５０や作業メモリ１５２にアクセスすることなく実行することができる。これにより、プログラム実行部１３０は、制御プログラムを高速に実行することができる。
【００５５】
プログラム実行部１３０は、制御プログラムを実行するのに伴い、制御データ書込部１３２を呼び出し、制御データ書込部１３２はプログラム実行部１３０の実行結果である制御データを制御データ保持メモリ１５６に書き込む（Ｓ１４４）。制御データ保持メモリ１５６に制御データが書き込まれると、制御データ出力部１３４がその制御データを外部機器１７０に出力する（Ｓ１４６）。これにより、外部機器１７０がＰＬＣ１００により制御されることとなる。
【００５６】
本実施の形態において、プログラム仮実行部１２６は、制御プログラムの処理構成要素を実行しても、制御データ書込部１３２を起動せず処理を終了する。制御データ書込部１３２が起動されなければ、制御プログラムの実行結果である制御データが外部機器１７０に出力されることがないため、プログラム仮実行部１２６は、外部機器１７０の実際の制御を行わない状態で制御プログラムを実行することができる。
【００５７】
以上の構成により、ＰＬＣ１００において、制御プログラムを実際に実行する運用状態に先立ち、初期化処理中に、ユーザがプリロード設定ありとした制御プログラムの処理構成要素を優先的にＰＬＣ１００のＣＰＵ１１０の命令キャッシュメモリ１４０にプリロードしてロックしておくことができる。これにより、命令キャッシュメモリ１４０にプリロードされた制御プログラムの処理構成要素については、運用状態において高速処理を行うことができる。また、たとえば使用率や出現頻度が低い処理構成要素であっても、ユーザが高速処理を所望する制御プログラムの処理構成要素を命令キャッシュメモリ１４０にプリロードしておくことができるので、ユーザのカスタマイズ性を向上することが可能となる。また、制御プログラムの局所的な高速化だけではなく、制御プログラムの実行サイクル全体の高速化も見込むことができる。また、ユーザが設定した制御プログラムの処理構成要素を選択的に命令キャッシュメモリ１４０にプリロードするので、プリロードにかかる時間も短くすることができ、初期化処理を短時間で行うこともできる。
【００５８】
このように、本実施の形態における構成によれば、たとえばイベントタスクに割り当てられた特定の処理構成要素のみをピンポイントで高速に動作させることができるので、そのような特定の処理構成要素を高速にするために全体の実行性能を向上させる必要がなくなり、ハードウェアシステムコストの面でもコストダウンの効果を見込むことができる。
【００５９】
さらに、一般にプログラマブルコントローラは、ユーザアプリケーションである制御プログラムのほかにシステムを維持するための処理、故障診断、データ交換処理等のバックグラウンド処理を行っている。本実施の形態におけるＰＬＣ１００およびプログラム作成支援装置２００によれば、このようなバックグラウンド処理に優先して制御プログラムの所望の処理構成要素を命令キャッシュメモリ１４０にプリロードしておくことができる。
【００６０】
図２および図５に示したプログラム作成支援装置２００およびＰＬＣ１００の各構成要素は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。プログラム作成支援装置２００およびＰＬＣ１００の各構成要素は、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。
【００６１】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【００６２】
以上の実施の形態において、ＰＬＣ１００の命令キャッシュメモリ１４０の容量が充分大きく、ユーザがプリロードすると設定する処理構成要素の全てをプリロードすることができると仮定して、ユーザの設定に制限を設けない構成として説明した。しかし、ＰＬＣ１００の命令キャッシュメモリ１４０において、制御プログラムをプリロード可能な容量がそれほど大きくない場合は、命令キャッシュメモリ１４０の容量に応じて、プログラム作成支援装置２００において、設定可能な処理構成要素を制限するようにすることもできる。
【００６３】
プログラム作成支援装置２００は、ＰＬＣ１００の命令キャッシュメモリ１４０において、制御プログラムをプリロード可能な容量を記憶する記憶部（不図示）と、設定受付部２０２が制御プログラムの処理構成要素毎に当該処理構成要素をＰＬＣ１００の命令キャッシュメモリ１４０にプリロードするプリロード設定の有無を受け付ける際に、プリロード設定ありとされた処理構成要素のサイズの合計値をカウントするとともに、当該合計値がＰＬＣ１００の命令キャッシュメモリ１４０において、制御プログラムをプリロード可能な容量を超えた場合に、警告を出力する警告出力部と、を含むことができる。
【符号の説明】
【００６４】
１０１    ＣＰＵモジュール
１０２    通信インタフェース
１０４    バスインタフェース
１０６    バス
１０８    入出力モジュール
１１２    中央演算部
１２０    プログラム取得部
１２２    初期化処理部
１２６    プログラム仮実行部
１３０    プログラム実行部
１３２    制御データ書込部
１３４    制御データ出力部
１４０    命令キャッシュメモリ
１４２    データキャッシュメモリ
１５０    制御プログラム記憶部
１５２    作業メモリ
１５４    ステータス情報管理メモリ
１５６    制御データ保持メモリ
１７０    外部機器
２００    プログラム作成支援装置
２０２    設定受付部
２０４    表示処理部
２０６    データ出力部
２１０    通信インタフェース
２２０    制御プログラム記憶部
２５０    設定画面
２５２    プルダウンボックス
【図１】
0005768627.tif 000002
【図２】
0005768627.tif 000003
【図３】
0005768627.tif 000004
【図４】
0005768627.tif 000005
【図５】
0005768627.tif 000006
【図６】
0005768627.tif 000007
【図７】
0005768627.tif 000008
【図８】
0005768627.tif 000009