(57)【要約】      （修正有）【課題】他のプロセッサの命令セットで構成されたシーケンス処理プログラムを自プロセッサ上で実行する際に、プログラムのコード変換による処理速度の低下を防ぐ新しい制御装置を提供する。【解決手段】プロセッサ２は、記憶部３からデータを読出して、プログラムとして記述された処理を実行し、データの内容に応じて記憶部３からのデータ取得方法を切替える指令を変換指令部６に通知する。変換指令部６はプロセッサ２からの通知によって切替え部５の動作を変更する。切替え部５は記憶部３と直接または変換部４を介して接続されており、変換指令部６からの指示に従って、記憶部３からのデータ読み取り方法を切替える。変換部４は、記憶部３からの読取データを後述の変換方式に従って、プロセッサ２が処理可能なデータに変換する。【選択図】図１
2011257904.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサと、複数の異なるプロセッサ用に記述されたデータを保存する記憶装置を有する制御装置において、
前記自プロセッサ用データと異なる前記記憶装置のデータを前記自プロセッサ用データに変換する変換部と、前記記憶装置の自プロセッサ用データを前記自プロセッサに直接伝達する通信路と、前記プロセッサ用データと異なるデータを前記変換部で変換して伝達する通信路と、前記複数の通信路から1つの通信路を選択し前記記憶装置と前記自プロセッサとを通信させる切替え手段と、前記記憶装置に格納されたデータの種類に応じて前記切替え手段の動作を決定する変換指令手段を有することを特徴とする制御装置。
【請求項２】
請求項１に記載された制御装置において、前記自プロセッサに割込みが発生した場合に、前記切替え手段の状態を保持する状態保持手段を有することを特徴とする制御装置。
【請求項３】
複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサと、複数の異なるプロセッサ用に記述されたデータを保存する記憶装置と、前記自プロセッサ用データと異なる前記記憶装置のデータを前記自プロセッサ用データに変換する変換部と、前記記憶装置の自プロセッサ用データを前記自プロセッサに直接伝達する通信路と、前記プロセッサ用データと異なるデータを前記変換部で変換して伝達する通信路と、前記複数の通信路から1つの通信路を選択し前記記憶装置と前記自プロセッサとを通信させる切替え手段と、前記記憶装置に格納されたデータの種類に応じて前記切替え手段の動作を決定する変換指令手段を有する制御装置のデータ処理方法において、
前記記憶装置のデータ中のプログラムがシーケンス処理である場合、または前記記憶装置のプログラムが特定のアドレスに格納されている場合、または前記記憶装置のプログラムに特定のコードが含まれている場合、または特定の割込みが発生した場合の少なくとも一つに該当するときには、前記プログラムを前記自プロセッサ用のコードに変換して処理し、上記何れの場合にも該当しないときには、前記記憶装置のプログラムをそのまま前記自プロセッサで処理することを特徴とする制御装置のデータ処理方法。
【請求項４】
請求項３に記載の制御装置のデータ処理方法において、前記記憶装置に格納された他プロセッサ用プログラムを前記制御装置の自プロセッサ用プログラムに変換する際、前記他プロセッサ用プログラムから必要なビット列を抽出し、前記ビット列が前記制御装置で識別可能な命令コードであった場合には、前記プログラムを自プロセッサで直接実行可能なマシンコードに変換することを特徴とする制御装置のデータ処理方法。
【請求項５】
請求項３に記載の制御装置のデータ処理方法において、前記他プロセッサ用プログラムの複数の命令コードを予め抽出しておき、複数の前記マシンコードが並列に実行できるように、予め複数のマシンコードを変換しておき、前記記憶装置に変換済みのマシンコードを実行順に格納しておくことを特徴とする制御装置のデータ処理方法。
【請求項６】
請求項３に記載の制御装置のデータ処理方法において、前記記憶装置に格納された他プロセッサ用プログラムを前記制御装置の自プロセッサ用プログラムに変換する際、前記他プロセッサ用プログラムから必要なビット列を抽出し、前記ビット列が前記制御装置で識別可能な命令コードであった場合には、前記プログラムを自プロセッサ用プログラムを用いて実行可能な中間言語に変換することを特徴とする制御装置のデータ処理方法。
【請求項７】
複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサと、複数の異なるプロセッサ用に記述されたデータを保存する記憶装置を有する制御装置において、
前記自プロセッサ用データと異なる前記記憶装置のデータを前記自プロセッサ用データに変換する変換部と、前記記憶装置とのデータ送受信を切替え管理する制御部と、前記制御部が前記自プロセッサと直接接続する通信路と、前記制御部が前記変換部で変換されて前記自プロセッサと接続する通信路とを有し、前記制御部は前記記憶装置に格納されたデータの種類に応じて、前記複数の通信路から1つの通信路を選択し前記記憶装置と前記自プロセッサとを通信させることを特徴とする制御装置。
【請求項８】
請求項７に記載の制御装置において、前記自プロセッサに割込みが発生した場合に、前記制御部の切替え状態を保持する状態保持手段を有することを特徴とする制御装置。
【請求項９】
請求項７に記載の制御装置において、前記記憶装置に格納された他プロセッサ用データを前記制御装置の自プロセッサ用データに変換する前記変換部は、前記他プロセッサ用データを複数のビット列に分割して取り出し、前記分割されたビット列ごとに演算やビット列の組み換えを実行し、前記自プロセッサ用データ配列に組み直すことによって、前記他プロセッサ用データを前記制御装置の前記プロセッサ用データに変換することを特徴とする制御装置。
【請求項１０】
請求項９に記載の制御装置において、前記変換部は、前記取り出したビット列の演算や組み換えを実行する際に、前記制御装置の内部の状態、または前記制御装置が外部から取得したデータに応じて、前記ビット列の演算方法や組み換え方法を変更することを特徴とする制御装置。
【請求項１１】
複数の異なるプロセッサ用に記述されたプログラムを有するデータにより演算処理を行う自プロセッサと、複数の異なるプロセッサ用に記述されたデータを保存する記憶装置と、前記自プロセッサ用データと異なる前記記憶装置のデータを前記自プロセッサ用データに変換する変換部と、前記記憶装置とのデータ送受信を切替え管理する制御部と、前記制御部が前記自プロセッサと直接接続する通信路と、前記制御部が前記変換部で変換されて前記自プロセッサと接続する通信路とを有し、前記制御部は前記記憶装置に格納されたデータの種類に応じて、前記複数の通信路から1つの通信路を選択し前記記憶装置と前記自プロセッサとを通信させる制御装置のデータ処理方法において、
前記記憶装置のプログラムがシーケンス処理である場合、または前記記憶装置のプログラムが特定のアドレスに格納されている場合、または前記記憶装置のプログラムに特定のコードが含まれている場合、または特定の割込みが発生した場合、の少なくとも一つに該当するときには、前記プログラムを前記自プロセッサが実行可能なデータ形式に変換し、前記記憶装置に変換済みデータを保存し、前記自プロセッサが前記変換済みデータを処理することを特徴とする制御装置のデータ処理方法。
【請求項１２】
請求項１１に記載の制御装置のデータ処理方法において、前記記憶装置に格納された他プロセッサ用プログラムを前記制御装置の自プロセッサ用プログラムに変換する際、前記他プロセッサ用プログラムからデータを取り出し、取り出した前記データが前記制御装置で規定された形式のデータであったときには、前記データを前記制御装置の内部状態や外部から取り入れたデータを参照して、前記データを自プロセッサが実行可能な中間言語に変換することを特徴とする制御装置のデータ処理方法。
【請求項１３】
複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサを含む複数のプロセッサと、データを保存する記憶装置を有する制御装置において、前記記憶装置のデータが前記何れかのプロセッサ用データと異なる場合に、前記プロセッサ用データと異なるデータを前記何れかのプロセッサ用データに変換する複数の変換回路を有する変換部と、前記複数のプロセッサと前記記憶装置とのデータ送受信を切替え管理する制御部を有し、前記記憶装置に格納されたデータの種類に応じて、前記複数の変換回路を組合せて変換方法を切替える切替え手段を有することを特徴とする制御装置。
【請求項１４】
請求項１３に記載の制御装置において、前記プロセッサに割込みが発生した場合には、前記制御部の切替え状態を保持する状態保持手段を有することを特徴とする制御装置。
【請求項１５】
請求項１３に記載の制御装置において、前記記憶装置に格納された他プロセッサ用データを前記制御装置の前記自プロセッサ用データに変換する前記変換部は、前記記憶装置に格納された変換プログラムに従って前記データの変換方法を決定し、前記データ変換のための変換回路の組合せを変更することによって、前記複数種類のプロセッサ用のデータ形式に変換することを特徴とする制御装置。
【請求項１６】
複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサを含む複数のプロセッサと、データを保存する記憶装置と、前記記憶装置のデータが前記何れかのプロセッサ用データと異なる場合に、前記プロセッサ用データと異なるデータを前記何れかのプロセッサ用データに変換する複数の変換回路を有する変換部と、前記複数のプロセッサと前記記憶装置とのデータ送受信を切替え管理する制御部と、前記記憶装置に格納されたデータの種類に応じて前記複数の変換回路を組合せて変換方法を切替える切替え手段を有する制御装置のデータ処理方法において、前記記憶装置のデータが前記何れかのプロセッサ用データと異なる場合に、前記データを前記何れかのプロセッサが実行可能なデータ形式に変換して処理することを特徴とする制御装置のデータ処理方法。
【請求項１７】
請求項１６記載の制御装置のデータ処理方法において、前記記憶装置に格納された他プロセッサ用プログラムを前記制御装置の前記自プロセッサ用プログラムに変換する際、前記記憶装置のプログラムが前記何れかのプロセッサ用プログラムと異なる場合に、前記プログラムのデータを取り出し、前記記憶装置の変換プログラムに従って前記データの変換方法を決定し、前記制御装置の何れかのプロセッサが実行可能なデータ形式に変換することを特徴とする制御装置のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はFA（ファクトリーオートメーション）やPA（プロセスオートメーション）において利用されるコンピュータを用いた制御装置に関し、特にシーケンス制御で利用されるプログラマブルロジックコントローラ（PLC）に関する。 
【背景技術】
【０００２】
パソコンの高機能化やインターネットに代表されるネットワーク技術の発展に伴い、FAやPA分野で利用されるPLCなどの制御用コンピュータにおいては、処理速度の向上やプログラム容量の増加が進んでいる。さらに、機能面でもラダー・ロジック(LD言語)、シーケンシャル・ファンクションチャート(SFC言語)、ファンクション・ブロック・ダイヤグラム(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト（IL言語）などのIEC61131-3で規定された、いわゆる5言語対応機能や、各種標準ネットワークへの接続機能などが必要とされている。このように、近年のFAやPAシステムのIT化に伴い、従来のシーケンス制御だけでなく、多言語対応等の高機能化や、ネットワークとの接続と通信機能なども実装する必要があるため、PLCの構成は複雑化しつつある。
【０００３】
一方、高機能化によるPLCの開発コスト増加が問題となってきており、従来のように専用LSIを開発して、リアルタイム処理が可能なPLCを製造することは難しくなってきている。
【０００４】
そこで、例えばラダー・ロジックによるシーケンス制御を専用のLSIではなく、汎用マイコン上でソフトウェアによって処理する方法が考えられる。この場合、自プロセッサ（汎用マイコン）とは異なるプロセッサ向けに記述されたラダー・ロジック等のコードを自プロセッサ用に変換する技術が必要となる。そのような従来技術として、特許文献１には複数の異なるプロセッサ用に記述されたプログラムコードを自プロセッサ用に適宜切替えて実行する例が開示されている。また、PLCのコストパフォーマンスを向上させるための技術として、特許文献２には、関数計算等の高度な演算処理を汎用CPUに任せる方式が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１７１４４３号公報
【特許文献２】特開２００５−１４１３４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１や特許文献２では、他プロセッサの命令セットで構成されたプログラムを自プロセッサ用のプログラムに変換するための技術が記載されている。しかしながら、上記技術ではプログラムの変換はソフトウェア処理によって行なわれるため、シーケンス制御などのリアルタイム処理を対象とした場合には処理速度が低下する恐れがある。
【０００７】
本発明は、従来技術の問題点に鑑み、他プロセッサ用に記述されたプログラムを自プロセッサ上で実行する際に、プログラムのコード変換による処理速度の低下を防ぐ新しい制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサと、複数の異なるプロセッサ用に記述されたデータを保存する記憶装置を有する制御装置において、前記自プロセッサ用データと異なる前記記憶装置のデータを前記自プロセッサ用データに変換する変換部と、前記記憶装置の自プロセッサ用データを前記自プロセッサに直接伝達する通信路と、前記プロセッサ用データと異なるデータを前記変換部で変換して伝達する通信路と、前記複数の通信路から1つの通信路を選択し前記記憶装置と前記自プロセッサとを通信させる切替え手段と、前記記憶装置に格納されたデータの種類に応じて前記切替え手段の動作を決定する変換指令手段を有することを特徴とする。
【０００９】
また、制御装置において、前記自プロセッサに割込みが発生した場合に、前記切替え手段の状態を保持する状態保持手段を有することを特徴とする。
【００１０】
さらに、複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサと、複数の異なるプロセッサ用に記述されたデータを保存する記憶装置と、前記自プロセッサ用データと異なる前記記憶装置のデータを前記自プロセッサ用データに変換する変換部と、前記記憶装置の自プロセッサ用データを前記自プロセッサに直接伝達する通信路と、前記プロセッサ用データと異なるデータを前記変換部で変換して伝達する通信路と、前記複数の通信路から1つの通信路を選択し前記記憶装置と前記自プロセッサとを通信させる切替え手段と、前記記憶装置に格納されたデータの種類に応じて前記切替え手段の動作を決定する変換指令手段を有する制御装置のデータ処理方法において、前記記憶装置のデータ中のプログラムがシーケンス処理である場合、または前記記憶装置のプログラムが特定のアドレスに格納されている場合、または前記記憶装置のプログラムに特定のコードが含まれている場合、または特定の割込みが発生した場合の少なくとも一つに該当するときには、前記プログラムを前記自プロセッサ用のコードに変換して処理し、上記何れの場合にも該当しないときには、前記記憶装置のプログラムをそのまま前記自プロセッサで処理することを特徴とする。
【００１１】
さらに、制御装置のデータ処理方法において、前記記憶装置に格納された他プロセッサ用プログラムを前記制御装置の自プロセッサ用プログラムに変換する際、前記他プロセッサ用プログラムから必要なビット列を抽出し、前記ビット列が前記制御装置で識別可能な命令コードであった場合には、前記プログラムを自プロセッサで直接実行可能なマシンコードに変換することを特徴とする。
【００１２】
さらに、制御装置のデータ処理方法において、前記他プロセッサ用プログラムの複数の命令コードを予め抽出しておき、複数の前記マシンコードが並列に実行できるように、予め複数のマシンコードを変換しておき、前記記憶装置に変換済みのマシンコードを実行順に格納しておくことを特徴とする。
【００１３】
さらに、制御装置のデータ処理方法において、前記記憶装置に格納された他プロセッサ用プログラムを前記制御装置の自プロセッサ用プログラムに変換する際、前記他プロセッサ用プログラムから必要なビット列を抽出し、前記ビット列が前記制御装置で識別可能な命令コードであった場合には、前記プログラムを自プロセッサ用プログラムを用いて実行可能な中間言語に変換することを特徴とする。
【００１４】
また、複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサと、複数の異なるプロセッサ用に記述されたデータを保存する記憶装置を有する制御装置において、前記自プロセッサ用データと異なる前記記憶装置のデータを前記自プロセッサ用データに変換する変換部と、前記記憶装置とのデータ送受信を切替え管理する制御部と、前記制御部が前記自プロセッサと直接接続する通信路と、前記制御部が前記変換部で変換されて前記自プロセッサと接続する通信路とを有し、前記制御部は前記記憶装置に格納されたデータの種類に応じて、前記複数の通信路から1つの通信路を選択し前記記憶装置と前記自プロセッサとを通信させることを特徴とする。
【００１５】
また、制御装置において、前記自プロセッサに割込みが発生した場合に、前記制御部の切替え状態を保持する状態保持手段を有することを特徴とする。
【００１６】
また、制御装置において、前記記憶装置に格納された他プロセッサ用データを前記制御装置の自プロセッサ用データに変換する前記変換部は、前記他プロセッサ用データを複数のビット列に分割して取り出し、前記分割されたビット列ごとに演算やビット列の組み換えを実行し、前記自プロセッサ用データ配列に組み直すことによって、前記他プロセッサ用データを前記制御装置の前記プロセッサ用データに変換することを特徴とする。
【００１７】
また、制御装置において、前記変換部は、前記取り出したビット列の演算や組み換えを実行する際に、前記制御装置の内部の状態、または前記制御装置が外部から取得したデータに応じて、前記ビット列の演算方法や組み換え方法を変更することを特徴とする。
【００１８】
さらに、複数の異なるプロセッサ用に記述されたプログラムを有するデータにより演算処理を行う自プロセッサと、複数の異なるプロセッサ用に記述されたデータを保存する記憶装置と、前記自プロセッサ用データと異なる前記記憶装置のデータを前記自プロセッサ用データに変換する変換部と、前記記憶装置とのデータ送受信を切替え管理する制御部と、前記制御部が前記自プロセッサと直接接続する通信路と、前記制御部が前記変換部で変換されて前記自プロセッサと接続する通信路とを有し、前記制御部は前記記憶装置に格納されたデータの種類に応じて、前記複数の通信路から1つの通信路を選択し前記記憶装置と前記自プロセッサとを通信させる制御装置のデータ処理方法において、前記記憶装置のプログラムがシーケンス処理である場合、または前記記憶装置のプログラムが特定のアドレスに格納されている場合、または前記記憶装置のプログラムに特定のコードが含まれている場合、または特定の割込みが発生した場合、の少なくとも一つに該当するときには、前記プログラムを前記自プロセッサが実行可能なデータ形式に変換し、前記記憶装置に変換済みデータを保存し、前記自プロセッサが前記変換済みデータを処理することを特徴とする。
【００１９】
さらに、制御装置のデータ処理方法において、前記記憶装置に格納された他プロセッサ用プログラムを前記制御装置の自プロセッサ用プログラムに変換する際、前記他プロセッサ用プログラムからデータを取り出し、取り出した前記データが前記制御装置で規定された形式のデータであったときには、前記データを前記制御装置の内部状態や外部から取り入れたデータを参照して、前記データを自プロセッサが実行可能な中間言語に変換することを特徴とする。
【００２０】
また、複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサを含む複数のプロセッサと、データを保存する記憶装置を有する制御装置において、前記記憶装置のデータが前記何れかのプロセッサ用データと異なる場合に、前記プロセッサ用データと異なるデータを前記何れかのプロセッサ用データに変換する複数の変換回路を有する変換部と、前記複数のプロセッサと前記記憶装置とのデータ送受信を切替え管理する制御部を有し、前記記憶装置に格納されたデータの種類に応じて、前記複数の変換回路を組合せて変換方法を切替える切替え手段を有することを特徴とする。
【００２１】
また、制御装置において、前記プロセッサに割込みが発生した場合には、前記制御部の切替え状態を保持する状態保持手段を有することを特徴とする。
【００２２】
また、制御装置において、前記記憶装置に格納された他プロセッサ用データを前記制御装置の前記自プロセッサ用データに変換する前記変換部は、前記記憶装置に格納された変換プログラムに従って前記データの変換方法を決定し、前記データ変換のための変換回路の組合せを変更することによって、前記複数種類のプロセッサ用のデータ形式に変換することを特徴とする。
【００２３】
さらに、複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサを含む複数のプロセッサと、データを保存する記憶装置と、前記記憶装置のデータが前記何れかのプロセッサ用データと異なる場合に、前記プロセッサ用データと異なるデータを前記何れかのプロセッサ用データに変換する複数の変換回路を有する変換部と、前記複数のプロセッサと前記記憶装置とのデータ送受信を切替え管理する制御部と、前記記憶装置に格納されたデータの種類に応じて前記複数の変換回路を組合せて変換方法を切替える切替え手段を有する制御装置のデータ処理方法において、前記記憶装置のデータが前記何れかのプロセッサ用データと異なる場合に、前記データを前記何れかのプロセッサが実行可能なデータ形式に変換して処理することを特徴とする。
【００２４】
さらに、制御装置のデータ処理方法において、前記記憶装置に格納された他プロセッサ用プログラムを前記制御装置の前記自プロセッサ用プログラムに変換する際、前記記憶装置のプログラムが前記何れかのプロセッサ用プログラムと異なる場合に、前記プログラムのデータを取り出し、前記記憶装置の変換プログラムに従って前記データの変換方法を決定し、前記制御装置の何れかのプロセッサが実行可能なデータ形式に変換することを特徴とする。
【発明の効果】
【００２５】
本発明によれば、複数の異なるプロセッサ用に記述されたプログラムを含むデータにより演算処理を行う自プロセッサと、複数の異なるプロセッサ用に記述されたデータを保存する記憶装置を有する制御装置において、自プロセッサ用データと異なる前記記憶装置のデータを自プロセッサ用データに変換する変換部と、記憶装置の自プロセッサ用データを前記自プロセッサに直接伝達する通信路と、プロセッサ用データと異なるデータを変換部で変換して伝達する通信路と、複数の通信路から1つの通信路を選択し記憶装置と自プロセッサとを通信させる切替え手段と、記憶装置に格納されたデータの種類に応じて前記切替え手段の動作を決定する変換指令手段を有することにより、他プロセッサ用のプログラムを高速に自プロセッサ上で実行することができる。また、自プロセッサを高速化することによって、他プロセッサ用のプログラムも高速にエミュレートすることができるため、システム全体の高機能化が容易となる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施例１の制御装置の構成を示すブロック図
【図２】本発明の実施例１の制御装置の処理方法を示すフローチャート
【図３】本発明の実施例１の記憶部３に格納されたプログラムを示す説明図
【図４】本発明の実施例１の変換部４の処理方法を示すフローチャート
【図５】本発明の実施例１の制御装置が処理するラダー・ロジックを示す説明図
【図６】実施例１の記憶部３の格納プログラムを示す説明図
【図７】実施例１の制御装置におけるプロセッサ実行コードを示す説明図
【図８】実施例２の制御装置の構成を示すブロック図
【図９】本発明の実施例２の制御装置の処理方法を示すフローチャート
【図１０】実施例２の変換部１３の処理方法を示すフローチャート
【図１１Ａ】本発明の実施例２の記憶部１２の格納プログラムを示す説明図
【図１１Ｂ】本発明の実施例２の記憶部１２の格納プログラムを示す説明図
【図１２】本発明の実施例２の変換部２５の変換回路図
【図１３】実施例３の制御装置の構成を示すブロック図
【図１４】本発明の実施例３の制御装置の処理方法を示すフローチャート
【発明を実施するための形態】
【００２７】
以下に本発明の実施態様を、実施例について説明する。
【実施例１】
【００２８】
〔基本構成〕
図１は、本発明の実施例１による制御装置１の構成例を示す。制御装置１はプロセッサ２と記憶部３と変換部４と切替え部５と変換指令部６とから構成される。変換指令部６は図１に示すように独立して設けるほか、プロセッサ２の機能の一つとしてプロセッサ２に包含され、または切替え部５に一体化されていても良い。記憶部３には自プロセッサ２用のプログラム７Aと他プロセッサ用のプログラム７Bが格納されている。これらのプログラムは別のハードウェアからなる記憶部に格納されても良い。
【００２９】
プロセッサ２は、記憶部３からプログラムデータを読出して、記述されたプログラム処理を実行するとともに、データの内容に応じて記憶部３からのデータ取得方法を切替える指令を変換指令部６に通知する。記憶部３は揮発性メモリ、不揮発性メモリなどから構成され、プログラムなどのデータを保持する。変換指令部６はプロセッサ２からの通知によって切替え部５の動作を変更する。変換指令部６とプロセッサ２は、IOポートやシリアルポートなどの入出力ポート、または、PCIやUSBなどの各種バスによって接続されている。
【００３０】
切替え部５は記憶部３と通信路８を介して直接接続されるか、または変換部４を有する通信路９を介して接続されており、変換指令部６からの指示に従って、記憶部３からのデータ読取り方法を切替える。変換部４は、記憶部３からの読取データを後述の変換方式に従って、プロセッサ２が処理可能なデータに変換する。
〔基本的処理〕
図２に、本発明の制御装置１の処理フローを示す。処理ステップにおいて、まずプロセッサ２は記憶部３からプログラムなどのデータの読取りを開始し（Ｓ２０１）、読取ったプログラムのデータ変換が必要か否かを判定する（Ｓ２０２）。すなわち、プロセッサ２のPC（プログラムカウンタ）が連続に増加するような命令のみから構成されるシーケンス処理か、PCの示すアドレスが飛び越えて実行されるようなジャンプ命令を含んだ一般的なアプリケーションによる処理か否かを判定する。
【００３１】
プログラムがシーケンス処理であった場合には、変換部４によるデータ変換が必要であるとし、プロセッサは変換指令部６に通知し（Ｓ２０３）、切替え部５は変換部４を介したデータ読取りに切替える（Ｓ２０４）。一方、プログラムがシーケンス処理でない場合には、そのまま記憶部３からデータを読取るように切替え部５を設定する（Ｓ２０５）。最後に、プログラム内容に応じて処理を実行し、必要があれば記憶部３へ処理結果を保存する（２０６）。記憶部３へ処理結果などのデータを保存する場合には、データの読取りと別の信号線やデータバスを用いても良いし、変換部４を介さないように切替え部５を設定し、データ読取と同じ信号線やデータバスを介して記憶部３にデータを保存しても良い。
【００３２】
ここで、Ｓ２０２の判定方法については、上記の他に例えばPCが示すアドレスの値を観測し、規定値以上の増減が発生していないかを調べる方法などがある。また、記憶部３のアドレスや所定のデータ形式を読取ることによってデータ変換が必要であるか否かを判定しても良い。例えば、記憶部３内に格納されているデータのアドレスによって判定したり、読取ったデータに特定のコードが含まれているか否かによって判定しても良い。さらに、プログラムを実行中に能動的に割込みを発生させることによって、プロセッサ２もしくは変換指令部６に、処理方法が変わることを通知しても良い。さらに、上記いずれかの方法を組合せて判定することもできる。
【００３３】
上記Ｓ２０１からＳ２０６の実行中にプロセッサ２に割込みが発生し、プロセッサ２が自身のレジスタや記憶部３の状態を一時的に退避する必要が生じた場合には、変換指令部６の情報、すなわち切替え部の状態についても、記憶部３や所定のレジスタに退避しておく。このようにすることで、例えば制御装置１と外部で接続された機器からのアクセスやOS（オペレーティングシステム）のコンテキストスイッチによる割込みなどが発生した場合であっても、割込みによる一時的な退避から復帰した際に、退避前の処理を継続して実行する事が可能となる。
〔データ変換要否判定〕
以下、図３を用いてＳ２０２における判定方法の具体例を説明する。図３は記憶部３に保存されているデータの一例である。アドレス0xA000番地からアドレス0xA004番地までのデータが読み出された場合、プログラムを構成するデータは接点X０（特定のアドレス情報を示す）のLD（ロード命令）と、接点X1（特定のアドレス情報を示す）とのAND（論理積命令）のみで、ジャンプ命令を含んでいないから、これらはシーケンス処理と判定できる。
【００３４】
一方、アドレス0xB001番地からアドレス0xB004番地までが読み出された場合には、R0やR1などのレジスタ情報とADD（加算命令）に加えて、JMP（分岐命令）が含まれているため、プロセッサ２はシーケンス処理ではないと判定し、記憶部３から変換部４を介さずにデータを読出してプログラムを実行する。
【００３５】
また、アドレス0xC001番地からアドレス0xC004番地までが読み出された際に、LDやADDなどの命令、Y０（特定のアドレス情報）以外に、例えば0x1234等の特定コードが含まれていた場合にはデータ変換が必要であると判定する。
【００３６】
この他にも、例えばLD（ロード命令）を示すオペコード（ビットパターン）をプロセッサ２が直接解釈できるコードか否かをもって判定しても良い。さらに、予めプログラムに割込みを発生させるようなロジックを仕掛けておき、プロセッサ２に特定の割込みが発生した場合に、データ変換の必要有無が切替るとしても良い。例えば、プログラムがラダー・ロジックの場合、特定の接点に対する出力が発生した時には、プログラムのデータ変換を中止し、直接プロセッサ２にデータを転送するように切替える。特定の接点としてプロセッサ２の外部からの割込み端子などを指定することで、プロセッサは能動的にデータ処理方法を切替えタイミングが来たことを認識できる。また、自プロセッサ２用のプログラム実行中に、特定の割込みが発生する関数を呼び出すことによって、プロセッサ２自身に通知し、データ処理方法を切替えても良い。
〔変換部処理〕
次に、変換部４の処理フローの各ステップについて図４を用いて説明する。例として、図５のようなラダー・ロジックを処理するプログラムを想定する。図５のラダー・ロジックは、接点X0の値と接点Y0の値の論理積を演算して接点Z0に出力するシーケンス処理を示しており、例えば図６に示すようなデータ形式で記憶部３に保存されている。すなわち、アドレス0xA000番地から32bitの領域に接点X0の値をロードする命令コードが格納され、同様に、アドレス0xA004番地から32bitの領域に接点Y0の値と論理積を演算する命令コードが格納され、アドレス0x008番地から32bitの領域に嫣然結果を接点Z0に出力する命令コードが格納されているものとする。ここで、記憶部３に保存されたラダー・ロジックの命令コードは、他のプロセッサ用のコードであるとする。
【００３７】
まず、変換部４は、図４に示すように、命令コードに対して論理シフト演算を実行し、特定のビット列を抽出する（Ｓ４０１）。次に、抽出したビット列が、予め定義されている値か否かを、テーブル情報の参照やビットパターンの照合などにより判定する（Ｓ４０２）。そこで、定義済みの値である場合には、自プロセッサ２用のマシンコードに変換する（Ｓ４０３）。例えば、アドレス0xA001番地から32bit分のコードを読み出し、接点X0に対するLOADであると判定した場合には、図７に示すアセンブラコードを実行するマシンコードに変換する。同様に、命令コードが接点X1とのAND、接点Z0への出力であった場合にも、それぞれ図７に示すようなコードに変換する。図７のMOVはデータ転送命令を示し、ANDは論理積演算命令を示しており、制御装置１のプロセッサ２が解釈できるコードであるとする。
【００３８】
図７において、#X0、＃Y0、#Z0はそれぞれ、接点X0、Y0、Z0に対応するメモリアドレスを示し、R１、R２、R３はプロセッサ２のレジスタ、ACCはアキュムレータを示す。＠は実効アドレスを示す記号であり、＠R1はレジスタR1の内容が実効アドレスであることを示している。したがって、「MOV #X０、R１」は接点X0のアドレス値をレジスタR1に転送することを示し、「MOV ＠R１、ACC」はレジスタR1の示すアドレスのデータをアキュムレータACCに転送することを示している。
【００３９】
すなわち、上記の「MOV #X０、R１」および「MOV ＠R１、ACC」でラダー・ロジックの「LOAD  X０」の実行に相当する。同様に、「MOV ＃Y０、R２」は接点Y０のアドレス値をレジスタR２に転送することを示し、「AND ＠R２、ACC」はレジスタR２の示すアドレスのデータとアキュムレータACCの値の論理積を計算し、アキュムレータACCに戻すことを示している。したがって、上記の「MOV ＃Y０、R２」および「AND ＠R２、ACC」でラダー・ロジックの「AND Y０」実行に相当する。
【００４０】
同様に、「MOV ＃Z０、R３」は接点Z０のアドレス値をレジスタR３に転送することを示し、「MOV ACC、＠R３」はアキュムレータACCの値をレジスタR３の示すアドレスに転送することを示している。したがって、上記の「MOV ＃Z０、R３」および「MOV ACC、＠R３」でラダー・ロジックの「OUT Z０」の実行に相当する。
【００４１】
なお、X0などの接点がビット単位のデータである場合には、メモリから数バイト単位で取り出したデータから、シフト演算等を使用して、該当ビットだけを抽出する処理等が必要であるが、ここでは説明を簡単にするため省略している。このように、ラダー・ロジックの命令を直接プロセッサ２のマシンコードに変換することにより、高速にプログラムを実行することが可能である。
【００４２】
ここで、「MOV  #X0、R1」、「MOV ＃Y0、R2」、「MOV ＃Z0、R3」の３つのコードはプロセッサ２のパイプライン処理などにより並列実行が可能であるため、予めラダー・ロジック全体を取得し、並列実行可能なコードを纏めて処理しても良い。この場合、記憶部３に変換したマシンコードを実行順に格納しておき、並列処理を行なうことで更に高速化が可能となる。
【００４３】
一方、図４において抽出した値が定義済みの値に該当しなかった場合には、何もしないか、もしくは所定の処理を実行する（Ｓ４０５）。所定の処理としては、例えば処理の中断や、値を変換せずに、そのままプロセッサ２に転送するなどの方法がある。最後に、取り出したデータの全ビットの変換（デコード）が完了したか否かを判定する（Ｓ４０４）。全てのデータのデコードが完了していない場合には、Ｓ１〜Ｓ３を繰り返す。以上のように、変換部４は、他プロセッサ用のコードを自プロセッサ２用のコードにデコードする。
【００４４】
上記変換部４の処理は、全て論理回路としてハードウェアで実装しても良いし、一部をソフトウェアで処理しても良い。また、上記変換部４の処理において、他プロセッサのコードを自プロセッサ２が直接実行可能なマシンコードに変換するのではなく、自プロセッサ２が特定のプログラムを用いることによって処理可能な中間言語に変換して、記憶部３に格納しても良い。この場合、アセンブラコードに変換する場合と比べて、処理速度は低下するが、変換部４の構成を単純化できるという利点がある。
【００４５】
従来技術では、例えば他のプロセッサ用のラダー・ロジックを自プロセッサ２で実行する場合には、記憶部３からコード変換用のプログラムを随時呼び出して処理するため、複数のメモリアクセスが発生し、リアルタイム性や処理速度が低下する可能性があった。本発明を用いることで、他のプロセッサ用のラダー・ロジックは、自プロセッサ２用に数命令から構成されるアセンブラコードに変換できるため、リアルタイム性や処理速度の低下を抑えることが可能となる。
【００４６】
従って、本発明により、自プロセッサ２用でも他プロセッサ用のプログラムであっても、高速かつリアルタイムに、自プロセッサ２で処理することが可能となる。さらに、自プロセッサ２の性能だけを向上させれば、他プロセッサ用のプログラムの処理速度も向上させることができる。
【００４７】
また、ラダー・ロジックでは、単純な論理演算等の通常命令以外に、複雑な関数処理などを実行するための拡張命令に対応する必要があり、拡張命令は通常命令とは別のプロセッサで処理させる場合がある。したがって、通常命令と拡張命令とで別個のプロセッサで処理するため、拡張命令の実行速度が通常命令に比べて著しく低下するという問題がある。しかし、本発明によれば、拡張命令を自プロセッサ２用のプログラムとして、制御装置１のプロセッサ２に実行させることにより、通常命令と同等の実行速度で拡張命令も処理することが可能となる。
【実施例２】
【００４８】
〔基本構成〕
以下、本発明の実施例２について、図面を参照して詳細に説明する。図８は、本発明による制御装置１０の構成例を示す図である。制御装置１０はプロセッサ１１と記憶部１２と変換部１３と制御部１４とからなる。記憶部１２には自プロセッサ１１用のプログラム１５Aと他プロセッサ１１用のプログラム１５Bが格納されている。これらのプログラムはそれぞれ別ハードウェアで構成された記憶部１２に格納されていても良い。
【００４９】
プロセッサ１１は、記憶部１２から制御部１４や変換部１３を介してデータを読出し、プログラムとして記述された処理を実行する。プロセッサ１１は直接記憶部１２と接続できる通信路１６を有している。記憶部１２は揮発性メモリ、不揮発性メモリなどから構成され、プログラムなどのデータを保持する。
【００５０】
制御部１４は、プロセッサ１１と記憶部１２のデータ送受信を制御するとともに、自らの判断によって記憶部１２から読取ったデータを通信路１７を介してそのままプロセッサ１１に転送するか、変換部１３を有する通信路１８を介して転送するかを切替え制御する。この切り替え機能はプロセッサ１１からの指示によって制御することも可能である。
【００５１】
変換部１３は、記憶部１２からの読取データを後述の変換方式に従って変換する。変換部１３は実施例１の変換部１３と同様の機能を有していても良い。また、変換部１３は記憶部１２と制御部１４を介して接続しているが、記憶部１２と直接接続しても良い。また、変換部１３は後述の変換部処理方式によって、プロセッサ１１と直接接続しているが、直接接続しない構成も可能である。また、変換部１３と制御部１４は一体化され、同一のハードウェアとして構成しても良い。
〔基本的処理〕
図９に、本発明の制御装置１０の処理フローを示す。まず、プロセッサ１１は制御部１４を介して、記憶部１２からプログラムなどのデータ読取りを開始する（Ｓ９０１）。次に、読取ったプログラムが、例えば特定のシーケンス処理など、データ変換を必要とする予め規定された処理であるか否かを判定する（Ｓ９０２）。Ｓ９０２の判定は、制御部１４が自ら行なう。また、一旦プロセッサ１１にデータを転送してプロセッサ１１が判定し、判定結果を制御部１４に通知することもできる。
【００５２】
次に、既定の処理であった場合には、変換部１３にデータを転送する（Ｓ９０３）。変換部１３では、実施例１と同様に、他プロセッサ用のコードは自プロセッサ１１用のコードに変換し、プロセッサ１１に転送する（Ｓ９０４）。
【００５３】
一方、自プロセッサ１１用のプログラムなど、既定の処理ではないと制御部１４が判定した場合には、直接プロセッサ１１にデータを転送する（Ｓ９０５）。プロセッサ１１は受け取ったプログラムに応じた処理を実行し、必要があれば、直接もしくは制御部１４を介して、記憶部１２に処理結果のデータを保存する。
【００５４】
ここで、Ｓ９０２については、実施例１と同様に、シーケンス処理か否かで判定する方法以外に、記憶部１２のアドレスによって判定する方法、特定のコードが含まれているか否かで判定する方法、プログラム実行中に能動的に割込みを発生させる方法、上記の方法を複数組合せる方法などにより判定しても良い。
【００５５】
上記Ｓ９０１からＳ９０６の実行中にプロセッサ１１に割込みが発生し、プロセッサ１１が自身のレジスタや記憶部１２の状態を一時的に退避する必要が生じた場合には、制御部における変換部の利用有無に関する情報を、記憶部３や所定のレジスタなどに退避しておく。これにより、割込みによる一時的な退避から復帰した際に、退避前の処理を継続して実行する事が可能となる。
〔変換部処理〕
実施例２の変換部１３の処理は、図１０に示す処理フローに従って実行される。また、実施例１の変換部１３と全く同様の処理を行なっても良い。以下、本実施例２における、変換部１３の処理フローについて説明する。
【００５６】
まず、変換部１３は制御部１４を介して記憶部１２のデータを取り出す（Ｓ１００１）。データの取り出しはハードウェアによりビット単位でも良いし、バイト単位で取り出してシフト演算によりビット毎に取り出しても良い。次に、受け取ったデータが規定されたデータ形式か否かを判定する（Ｓ１００２）。既定のデータ形式の場合には、次に、外部データの参照が必要か否かを判定する（Ｓ１００３）。外部データとしては例えば、記憶部１２に格納されたデータや、CPUや制御部１４のレジスタ情報などがある。既定済みのデータ形式でない場合には何もしないか、もしくは処理終了などの所定の処理を実行する。
【００５７】
外部データの参照が必要な場合には、ソフトウェア実行やレジスタアクセス等により、外部データを取り込む（Ｓ１００９）。次に、データ形式の変換を実行する（Ｓ１００５）。ここで、Ｓ１００９によって取り込んだ外部データの値に応じて変換方法を変えても良い。次に、全データの取り出しと変換が完了したか否かを判定する（Ｓ１００５）。全データの変換が完了していない場合には、Ｓ１００１からＳ１００４を繰り返し実行する。
【００５８】
全データの変換が完了した場合には、変換したデータを記憶部１２へ格納するか否かを判定する（Ｓ１００６）。ここでは、例えば実施例１に示すように、プロセッサ１１が直接実行できるようなマシンコードに変換された場合には、記憶部１２へデータを格納せず、プロセッサ１１で直接処理しても良い（Ｓ１００７）。一方、プロセッサ１１が直接実行できないデータ形式、例えば中間言語などに変換された場合には、記憶部１２に変換済みデータ１５Ｃとして格納する（Ｓ１０１０）。この場合、プロセッサ１１は、自プロセッサ１１用のプログラムを実行することなどにより、変換済みのデータを処理する（Ｓ１０１１）。
〔データ形式変換方法〕
Ｓ１００４におけるデータ形式の変換方法の例を説明する。図１１Ａに示すように、他プロセッサ用プログラムのデータ形式でラダー・ロジックが格納されている。変換部１３は、命令コードに該当する部分を取り出し、自プロセッサ１１用プログラムの命令コードに変換する。例えば、他プロセッサ用プログラムのデータ形式では、25ビットから32ビットの領域に、00110010というビットパターンで表わされるLOAD命令であった場合、図１１Ｂに示すように、自プロセッサ１１用プログラムのデータ形式として、1ビットから8ビットの領域に、01101011というビットパターンとして変換する。同様に、他プロセッサ用プログラムのパラメータも順次取り出して、関連する自プロセッサ１１用プログラムのデータ形式に変換する。これらの処理は、ソフトウェアで実行しても良いし、例えば、図１２に示すようなハードウェア（論理回路）によって実行しても良い。
【００５９】
次に、図１２に示すようなハードウェアによってデータ変換を実行する場合の処理を説明する。まず、入力ビットに対して演算回路３０２〜３０５によりそれぞれ命令コード、パラメータの取り出しを行なう。命令コードの変換は、例えばテーブル参照などにより実行できる。各パラメータについても、予め規定された演算回路３０６〜３１０に従って、順次、自プロセッサ１１用プログラムの形式として生成する。３０１は外部データである。
【００６０】
ここで、例えば外部データとして、制御装置１０に実装された入力スイッチといったI/Oなどのハードウェア情報や、ソフトウェアの状態、レジスタの値などを参照することによって、生成するパラメータの値を決定しても良い。また、予備領域などのデータは、ハードウェアにおいて予め0固定として設定しても良い。
【００６１】
以上のように、実施例２によれば他のプロセッサ用に記述されたラダー・ロジック等を自プロセッサ１１上で変換し、高速に実行することができる。また、外部データの参照で、変換方法を切替えることにより、複数種類の他プロセッサ用プログラムを、自プロセッサ１１用に変換して利用することができる。
【実施例３】
【００６２】
以下、本発明の実施例３について、図面を参照して詳細に説明する。実施例３は、従来の旧資源である専用プロセッサ／プログラムに対し、本発明を併用した例を示す。
〔基本的構成〕
図１３は、本発明による制御装置２０の構成例を示す。制御装置２０は汎用プロセッサ２１と専用プロセッサ２２と記憶部２３と制御部２４とからなる。記憶部２３には汎用プロセッサ２１用の変換プログラム２８Aや、専用プロセッサ２２用の自プロセッサ用プログラム２８B、他プロセッサ用プログラム２８Cなどが格納されている。これらのプログラムはそれぞれ別のハードウェアから構成される記憶部２３に保存されていても良い。
【００６３】
汎用プロセッサ２１は、記憶部２３から制御部２４や変換部２５を介してデータを読み出し、プログラムに応じた処理を実行する。専用プロセッサ２２は汎用プログラムと同様に、記憶部２３から制御部２４や変換部２５を介してデータを読み出し、プログラムに応じた処理を実行する。本例では汎用プロセッサ２１はOSやOSに搭載された各種アプリケーションを実行するためのプロセッサとし、専用プロセッサ２２はラダー・ロジックに代表されるシーケンス処理を実行するためのプロセッサと定義する。汎用プロセッサ２１や専用プロセッサ２２は複数存在していても良く、汎用プロセッサと専用プロセッサ２２とは同一のハードウェアとしても良い。
【００６４】
記憶部２３は揮発性メモリ、不揮発性メモリなどから構成され、プログラムなどのデータを保持する。記憶部２３は、汎用プロセッサ２１や専用プロセッサ２２と直接、接続されていても良い。制御部２４はプロセッサからの指示または、自らの判断によって、記憶部２３と汎用プロセッサ２１、及び、専用プロセッサ２２間のデータ送受信を制御し、後述する変換部２５の機能を有する。
【００６５】
変換部２５は、変換回路２６と切替え部２７とから構成され、実施例１や実施例２と同様に、記憶部２３からの読み取りデータを後述の変換方式に従って変換し、プロセッサに直接または記憶部２３を介して読み込ませる。変換部２５は制御部２４の外部に設け、制御部２４または専用プロセッサ２２と接続するようにしても良い。
【００６６】
変換回路２６は他プロセッサ用のプログラムを自プロセッサ用のプログラムに変換する。切替え部２７は変換プログラムに従って、複数の変換回路２６から適切なものを選択する。
〔基本的処理〕
図１４に、本実施例による制御装置２０の処理フローを示す。まず、制御部２４、もしくは、プロセッサ２１、２２は記憶部２３からデータを読み取る（Ｓ１４０１）。次に、読み取ったデータが汎用プロセッサ２１用のプログラムか否かを判定する（Ｓ１４０２）。汎用プロセッサ２１用のプログラムであった場合には、汎用プロセッサ２１においてプログラムを実行する（Ｓ１４０９）。
【００６７】
一方、汎用プログラム用のプロセッサでない場合には、専用プロセッサ２２用プログラムであるか否かを判定する（Ｓ１４０３）。専用プロセッサ２２用プログラムの場合には、専用プロセッサ２２においてプログラムを実行する。
【００６８】
ここでＳ１４０２およびＳ１４０３の順番は逆でも良い。読み取ったプログラムがどのプロセッサに対応しているかを判定する方法としては、プロセッサ毎に記憶部２３のアドレス領域を分けてプログラムを保存する方法、データの先頭にプログラムの種別を示す特別なコードを含める方法、読み取ったデータに各プロセッサが解釈できる命令コードがあるか否かを調べる方法、正しく対応するプロセッサでプログラムが実行された場合には、特定の割込みを発生させる方法等がある。また、これらの方法を複数組合せても良い。
【００６９】
汎用プロセッサ２１用でも専用プロセッサ２２用のコードでもなかった場合には、変換部２５へデータを転送する（Ｓ１４０４）。次に、変換部２５は受け取ったデータ形式に対応した変換回路２６の有無を判定する（Ｓ１４０５）。例えば、図１１Ａに示すような他プロセッサ用のデータの場合に、LOAD命令を示す命令コードのビットパターン00110010を入力として受け付ける変換回路２６があるか否かを判定する。この判定には汎用プロセッサ２１用の変換プログラムがテーブル参照で実行しても良いし、ビット毎に条件分岐を行なう論理回路によって実行しても良い。ビットパターンが一致した場合には、変換回路２６の選択を行ない、データ変換を実行する（Ｓ１４０６）。
【００７０】
１つのビットパターンに対して、複数の変換回路２６が存在する場合には、汎用プロセッサ２１の変換プログラムが選択をサポートしても良い。例えば、変換プログラムがユーザの設定に従って特定のレジスタにフラグを設定しておき、そのフラグの状態を参照して使用する変換回路２６を選択する。プログラムがラダー・ロジックなどのシーケンシャルな処理の場合には、複数の命令、または、特定のデータサイズごとに纏めて、変換回路２６の選択とデータ変換を実行しても良い。
【００７１】
次に、全データについて変換が完了したか否かを判定する（Ｓ１４０８）。全データの変換が完了していない場合には、Ｓ１４０５からＳ１４０６を繰り返し実行する。全データの変換が完了した場合には、直接専用プロセッサ２２にデータを渡しても良いし、もしくは、記憶部２３に変換済みの自プロセッサ用プログラムとして保存したうえで、専用プロセッサ２２において処理しても良い（Ｓ１４０８）。
【００７２】
上記Ｓ１４０１からＳ１４０９の実行中に汎用プロセッサ２１もしくは専用プロセッサ２２に割込みが発生し、自身のレジスタや記憶部２３の状態を一時的に退避する必要が生じた場合には、制御部における変換回路と切替え部の状態も記憶部２３や所定のレジスタなどに退避しておく。これにより、割込みによる一時的な退避から復帰した際に、退避前の処理を継続して実行する事が可能となる。
【００７３】
以上のように、本発明によれば、複数種類の他プロセッサ用のラダー・ロジックなどのプログラムを、自プロセッサ用のプログラムとして高速に変換し、リアルタイムに処理することが可能となる。
【符号の説明】
【００７４】
１、１０、２０…制御装置
２、１１、２１、２２…プロセッサ
３、１２、２３…記憶部
４、１３、２５…変換部
５、２７…切替え部
６…変換指令部
７、１５、２８…プログラム
８，９，１７，１８…通信路
１４、２４…制御部
【図１】
2011257904.tif 000003
【図２】
2011257904.tif 000004
【図３】
2011257904.tif 000005
【図４】
2011257904.tif 000006
【図５】
2011257904.tif 000007
【図６】
2011257904.tif 000008
【図７】
2011257904.tif 000009
【図８】
2011257904.tif 000010
【図９】
2011257904.tif 000011
【図１０】
2011257904.tif 000012
【図１１Ａ】
2011257904.tif 000013
【図１１Ｂ】
2011257904.tif 000014
【図１２】
2011257904.tif 000015
【図１３】
2011257904.tif 000016
【図１４】
2011257904.tif 000017