(57)【特許請求の範囲】
【請求項１】
制御プログラムにしたがって処理を行うプログラマブルコントローラにおいて、
制御プログラムと、前記制御プログラムによって呼び出される被呼出制御プログラムと、を記憶する制御プログラム記憶手段と、
前記制御プログラム記憶手段中の前記制御プログラムにしたがって処理を実行する制御プログラム実行手段と、
前記被呼出制御プログラムの前記制御プログラム実行手段による実行後に戻る戻り先アドレスを記憶し、前記被呼出制御プログラムの実行が終了し、前記戻り先アドレスが前記制御プログラム実行手段によって読み込まれると前記戻り先アドレスが削除される戻り先アドレス記憶手段と、
前記被呼出制御プログラムに対する入力データを記憶する入力データ記憶手段と、
前記制御プログラム記憶手段での前記制御プログラムと前記被呼出制御プログラムの格納位置を、前記制御プログラムと前記被呼出制御プログラムのプログラム名称に関連付けたマッピング情報を記憶するマッピング情報記憶手段と、
前記制御プログラム実行手段による前記被呼出制御プログラムの実行エラーが発生した場合に、実行エラー情報を取得する実行エラー情報管理手段と、
を備え、
前記制御プログラム実行手段は、前記制御プログラムの実行中に前記被呼出制御プログラムの呼び出しがあった場合に、前記被呼出制御プログラムの実行終了後に戻る戻り先アドレスを前記戻り先アドレス記憶手段に記憶するとともに、前記被呼出制御プログラムへの入力データを前記入力データ記憶手段に記憶し、
前記実行エラー情報管理手段は、前記被呼出制御プログラムの実行エラーが発生した場合に、前記戻り先アドレス記憶手段に記憶されている前記戻り先アドレスと、前記入力データ記憶手段に記憶されている前記入力データと、前記マッピング情報を用いて得られる前記戻り先アドレスに対応する前記実行エラーが発生した前記被呼出制御プログラムの呼び出し元の前記制御プログラムのプログラム名称と、を含む前記実行エラー情報を取得することを特徴とするプログラマブルコントローラ。
【請求項２】
前記実行エラー情報を記憶するバックアップデータ記憶手段をさらに備え、
前記実行エラー情報管理手段は、前記被呼出制御プログラムの実行エラーが発生した場合に、前記実行エラー情報を前記バックアップデータ記憶手段にバックアップする機能をさらに有することを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記実行エラー情報管理手段は、外部機器から前記実行エラー情報の取得要求があると、取得した前記実行エラー情報を前記外部機器に対して送信することを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項４】
前記実行エラー情報管理手段は、外部機器から前記実行エラー情報の取得要求があると、前記バックアップデータ記憶手段中の前記実行エラー情報を前記外部機器に対して送信することを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項５】
前記制御プログラム実行手段は、任意のタイミングで前記入力データ記憶手段の初期化を実行することを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項６】
前記制御プログラム実行手段は、前記被呼出制御プログラムの実行が終了し、呼び出し元の前記制御プログラムの実行が再開される際に、前記入力データ記憶手段の初期化を実行することを特徴とする請求項５に記載のプログラマブルコントローラ。
【請求項７】
制御プログラムにしたがって処理を行うプログラマブルコントローラと、前記制御プログラムの作成またはデバッグを行う情報処理端末と、を備えるプログラマブルコントローラシステムにおいて、
前記プログラマブルコントローラは、
制御プログラムと、前記制御プログラムによって呼び出される被呼出制御プログラムと、を記憶する制御プログラム記憶手段と、
前記制御プログラム記憶手段中の前記制御プログラムにしたがって処理を実行する制御プログラム実行手段と、
前記被呼出制御プログラムの前記制御プログラム実行手段による実行後に戻る戻り先アドレスを記憶し、前記被呼出制御プログラムの実行が終了し、前記戻り先アドレスが前記制御プログラム実行手段によって読み込まれると前記戻り先アドレスが削除される戻り先アドレス記憶手段と、
前記被呼出制御プログラムに対する入力データを記憶する入力データ記憶手段と、
前記制御プログラム記憶手段での前記制御プログラムと前記被呼出制御プログラムの格納位置を、前記制御プログラムと前記被呼出制御プログラムのプログラム名称に関連付けたマッピング情報を記憶するマッピング情報記憶手段と、
前記制御プログラム実行手段による前記被呼出制御プログラムの実行エラーが発生した場合に、実行エラー情報を取得する実行エラー情報管理手段と、
前記情報処理端末と通信を行う通信手段と、
を備え、
前記情報処理端末は、
前記プログラマブルコントローラと通信を行う通信手段と、
前記プログラマブルコントローラに前記実行エラー情報の取得要求を行い、前記プログラマブルコントローラから取得した前記実行エラー情報を表示手段に表示する実行エラー情報表示処理手段と、
を備え、
前記プログラマブルコントローラの前記制御プログラム実行手段は、前記制御プログラムの実行中に前記被呼出制御プログラムの呼び出しがあった場合に、前記被呼出制御プログラムの実行終了後に戻る戻り先アドレスを前記戻り先アドレス記憶手段に記憶するとともに、前記被呼出制御プログラムへの入力データを前記入力データ記憶手段に記憶し、
前記プログラマブルコントローラの前記実行エラー情報管理手段は、前記被呼出制御プログラムの実行エラーが発生した場合に、前記戻り先アドレス記憶手段に記憶されている前記戻り先アドレスと、前記入力データ記憶手段に記憶されている前記入力データと、前記マッピング情報を用いて得られる前記戻り先アドレスに対応する前記実行エラーが発生した前記被呼出制御プログラムの呼び出し元の前記制御プログラムのプログラム名称と、を含む前記実行エラー情報を取得し、前記情報処理端末から前記実行エラー情報の取得要求を受信すると、取得した前記実行エラー情報を前記情報処理端末に送信することを特徴とするプログラマブルコントローラシステム。
【請求項８】
前記プログラマブルコントローラは、前記実行エラー情報を記憶するバックアップデータ記憶手段をさらに備え、
前記プログラマブルコントローラの前記実行エラー情報管理手段は、前記被呼出制御プログラムの実行エラーが発生した場合に、前記実行エラー情報を前記バックアップデータ記憶手段にバックアップする機能をさらに有することを特徴とする請求項７に記載のプログラマブルコントローラシステム。
【請求項９】
前記プログラマブルコントローラの前記実行エラー情報管理手段は、前記情報処理端末から前記実行エラー情報の取得要求を受信すると、前記バックアップデータ記憶手段中の前記実行エラー情報を前記情報処理端末に送信することを特徴とする請求項８に記載のプログラマブルコントローラシステム。
【請求項１０】
制御プログラムにしたがって処理を行うプログラマブルコントローラでの実行エラー情報作成方法において、
前記制御プログラム中の被呼出制御プログラムの呼出し命令を読み込むと、前記被呼出制御プログラムの実行後に戻る戻り先アドレスを記憶する戻り先アドレス記憶工程と、
前記被呼出制御プログラムの呼び出し時に、前記被呼出制御プログラムに対する入力データを取得し、記憶する入力データ記憶工程と、
前記被呼出制御プログラムを実行する被呼出制御プログラム実行工程と、
前記被呼出制御プログラムの実行が終了すると、前記戻り先アドレスに戻って、前記制御プログラムの処理を実行する戻り工程と、
を含み、
前記被呼出制御プログラム実行工程は、
前記被呼出制御プログラムの実行エラーが発生すると、記憶された前記戻り先アドレスおよび前記入力データとを取得する第１データ取得工程と、
前記制御プログラムと前記被呼出制御プログラムの制御プログラム記憶手段での格納位置を、前記制御プログラムと前記被呼出制御プログラムのプログラム名称に関連付けたマッピング情報に基づいて、前記戻り先アドレスに対応する制御プログラムの名称を取得する第２データ取得工程と、
前記プログラマブルコントローラに接続される情報処理端末からの指示によって、前記戻り先アドレスと、前記入力データと、前記実行エラーが発生した前記被呼出制御プログラムの呼び出し元の前記制御プログラムのプログラム名称と、を含む実行エラー情報を前記情報処理端末に送信する実行エラー情報送信工程と、
を含み、
前記戻り工程では、前記被呼出制御プログラムの実行が終了し、前記戻り先アドレスに戻って、前記制御プログラムの処理が実行されると、前記戻り先アドレス記憶工程で記憶された前記戻り先アドレスが削除されることを特徴とする実行エラー情報作成方法。
【請求項１１】
前記被呼出制御プログラム実行工程は、取得した前記実行エラー情報をバックアップするバックアップ工程をさらに含むことを特徴とする請求項１０に記載の実行エラー情報作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法に関するものである。
【背景技術】
【０００２】
既知の通り、プログラマブルコントローラの多くは、制御プログラムで実行エラーが発生した場合、実行エラーの情報をユーザに提供する機能を有している。これによって、ユーザはその情報を基に実行エラーの要因を解析することが可能である。【０００３】
たとえば、特許文献１には、ＣＰＵ（Central  Processing  Unit）ユニットが実行エラーの情報としてサブルーチンプログラムの戻り先アドレスを生成する方法が提案されている。この方法では、サブルーチンプログラムの実行の際に、サブルーチンプログラムの戻り先番地の記憶を指示するシーケンス命令を実行することで、スタック領域にサブルーチンプログラムの戻り先番地を記憶する。そして、サブルーチンプログラムで実行の異常を検出した場合に、スタック領域に記憶されているサブルーチンプログラムの戻り先番地を参照する。【０００４】
また、特許文献２には、実行エラーの情報をユーザに提供する方法が提案されている。この方法では、ユーザプログラムを構成するファンクションブロックで異常が検出された場合、プログラマブルコントローラのメモリにステータス異常の識別子と、異常内容を特定するステータスコードを保持する。そして、外部からプログラマブルコントローラのメモリにアクセスすることで、ステータス異常の有無、異常を生じているファンクションブロックおよびその異常要因を特定することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平４−２１５１０６号公報
【特許文献２】特開２００７−３０４９３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年では制御プログラムは大規模化の傾向にあり、制御プログラムの部品化が進んでいる。一般的に部品化された制御プログラム（以下、部品化制御プログラムという）は、機能ごとに作成され、与えられた入力データを基に目的の機能を果たす制御プログラムである。そのため、部品化制御プログラムは複数の制御プログラムから呼び出されかつ、入力データは不定である。【０００７】
しかしながら、このような制御プログラムから呼び出される被呼出制御プログラムの実行エラーが発生した場合、上記特許文献１，２に開示されている方法では、実行エラーの要因を解析することは困難であった。【０００８】
具体的には、特許文献１に開示されている方法では、部品化制御プログラムで実行エラーが発生した場合、部品化制御プログラムに対する入力データを記憶していない。また、特許文献２に開示されている方法では、部品化制御プログラムで実行エラーが発生した場合、呼び出し元の制御プログラム名称と呼び出し時の入力データの表示がない。そのため、複数の制御プログラムから呼び出され、かつ入力データが不定である部品化制御プログラムでは要因の解析が困難という問題点があった。また、特許文献１に開示されている方法では、呼び出し元の制御プログラムを識別する情報は、制御プログラムへの戻り先アドレスであるため、一見して呼び出し元の制御プログラムの識別が難しいという問題点もあった。【０００９】
この発明は上記に鑑みてなされたもので、部品化制御プログラムでの実行エラー時に、ユーザが実行エラーの要因を正確かつ効率良く把握することができるプログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、この発明にかかるプログラマブルコントローラは、制御プログラムにしたがって処理を行うプログラマブルコントローラにおいて、制御プログラムと、前記制御プログラムによって呼び出される被呼出制御プログラムと、を記憶する制御プログラム記憶手段と、前記制御プログラム記憶手段中の前記制御プログラムにしたがって処理を実行する制御プログラム実行手段と、前記被呼出制御プログラムの前記制御プログラム実行手段による実行後に戻る戻り先アドレスを記憶し、前記被呼出制御プログラムの実行が終了し、前記戻り先アドレスが前記制御プログラム実行手段によって読み込まれると前記戻り先アドレスが削除される戻り先アドレス記憶手段と、前記被呼出制御プログラムに対する入力データを記憶する入力データ記憶手段と、前記制御プログラム記憶手段での前記制御プログラムと前記被呼出制御プログラムの格納位置を、前記制御プログラムと前記被呼出制御プログラムのプログラム名称に関連付けたマッピング情報を記憶するマッピング情報記憶手段と、前記制御プログラム実行手段による前記被呼出制御プログラムの実行エラーが発生した場合に、実行エラー情報を取得する実行エラー情報管理手段と、を備え、前記制御プログラム実行手段は、前記制御プログラムの実行中に前記被呼出制御プログラムの呼び出しがあった場合に、前記被呼出制御プログラムの実行終了後に戻る戻り先アドレスを前記戻り先アドレス記憶手段に記憶するとともに、前記被呼出制御プログラムへの入力データを前記入力データ記憶手段に記憶し、前記実行エラー情報管理手段は、前記被呼出制御プログラムの実行エラーが発生した場合に、前記戻り先アドレス記憶手段に記憶されている前記戻り先アドレスと、前記入力データ記憶手段に記憶されている前記入力データと、前記マッピング情報を用いて得られる前記戻り先アドレスに対応する前記実行エラーが発生した前記被呼出制御プログラムの呼び出し元の前記制御プログラムのプログラム名称と、を含む前記実行エラー情報を取得することを特徴とする。
【発明の効果】
【００１１】
この発明によれば、被呼出制御プログラムの呼び出し時に、被呼出制御プログラムの実行後の戻り先アドレスと入力データとを記憶し、被呼出制御プログラムでの実行エラー時に、戻り先アドレスから呼び出し元制御プログラムを特定し、呼び出し元制御プログラム名称と、記憶した戻り先アドレスおよび入力データとを含む実行エラーの情報をプログラマブルコントローラが取得し、ユーザに対して提供できるようにしたので、ユーザは実行エラーを起こした際の呼び出し元制御プログラムと入力データとを特定することができ、容易に実行エラーの要因解析が可能となり、部品化制御プログラムによるシステムの開発および保守の工数を削減することができるという効果を有する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態によるプログラマブルコントローラシステムの構成を模式的に示すブロック図である。
【図２】図２は、スタックに格納されるデータの一例を示す図である。
【図３】図３は、データ記憶部に格納されるデータの一例を示す図である。
【図４】図４は、マッピング情報の構成の一例を示す図である。
【図５】図５は、実行エラー情報表示画面の一例を示す図である。
【図６】図６は、プログラマブルコントローラにおけるユーザプログラム実行時の状態のイメージを示す図である。
【図７】図７は、図６での処理時におけるスタックとデータ記憶部と実行エラー情報の様子を模式的に示す図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明にかかるプログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法の好適な実施の形態を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
図１は、実施の形態によるプログラマブルコントローラシステムの構成を模式的に示すブロック図である。プログラマブルコントローラシステムは、プログラマブルコントローラを構成し、ユーザプログラムを実行するＣＰＵユニット１００と、プログラマブルコントローラで実行させるユーザプログラムのプログラミングを行ったり、ユーザプログラムのデバッグを行ったりするプログラミングツール２００と、が通信回線を介して接続される構成を有する。
【００１５】
ＣＰＵユニット１００は、制御プログラム記憶手段であるユーザプログラム記憶部１０１と、戻り先アドレス記憶手段であるスタック１０２と、入力データ記憶手段であるデータ記憶部１０３と、制御プログラム実行手段である制御プログラム実行部１０４と、マッピング情報記憶手段であるマッピング情報記憶部１０５と、バックアップデータ記憶手段であるバックアップデータ記憶部１０６と、実行エラー情報管理手段である実行エラー情報管理部１０７と、通信手段である通信部１０８と、を備える。
【００１６】
ユーザプログラム記憶部１０１は、ＣＰＵユニット１００で実行するラダープログラムなどのユーザプログラムを記憶する。この実施の形態では、ユーザからの指示によって実行されるメインプログラムとなるプログラムを制御プログラムといい、制御プログラムによって呼び出されて実行されるサブルーチンプログラムとなるプログラムを部品化制御プログラムという。部品化制御プログラムは、被呼出制御プログラムに相当する。なお、以下では、ユーザプログラム記憶部１０１には、「ＭＡＩＮ１」という名称の制御プログラム１２１と、「ＭＡＩＮ２」という名称の制御プログラム１２２と、「ＭＡＩＮ３」という名称の制御プログラム１２３と、「ＦＵＮＣ」という名称の部品化制御プログラム１３１と、が格納されている場合を例に挙げて説明する。また、３つの制御プログラム１２１〜１２３は、それぞれ部品化制御プログラム１３１を呼び出すように構成されているものとする。
【００１７】
スタック１０２は、制御プログラムで、部品化制御プログラムを呼び出すときに、呼び出した部品化制御プログラムの実行完了の際に戻る制御プログラムの位置を示す戻り先アドレスを記憶する。図２は、スタックに格納されるデータの一例を示す図である。この図に示されるように、スタック１０２には、制御プログラムが部品化制御プログラムを呼び出した際の戻り先アドレスが格納される。スタック１０２に格納できる戻り先アドレスの数は、予めシステム設計者によって設定される。記憶された戻り先アドレスは、呼び出し先の部品化制御プログラムの実行が終了し、呼び出し元の制御プログラムの実行が再開すると、すなわち戻り先アドレスが読み込まれると、削除される。
【００１８】
データ記憶部１０３は、呼び出し先の部品化制御プログラムに対する入力データを記憶する。図３は、データ記憶部に格納されるデータの一例を示す図である。この図に示されるように、データ記憶部１０３には、制御プログラムが部品化制御プログラムを呼び出した際に部品化制御プログラムに対する入力データが格納される。データ記憶部１０３に記憶されるデータは、任意のタイミングで初期化される。たとえば、記憶された入力データは、呼び出し先の部品化制御プログラムの実行が終了し、呼び出し元の制御プログラムの実行が再開するときに削除される。
【００１９】
制御プログラム実行部１０４は、ユーザプログラム記憶部１０１中のユーザプログラムの実行と呼び出しを行う。制御プログラムに呼び出しがある場合には、制御プログラム呼び出し時に戻り先アドレスをスタック１０２に記憶するとともに、呼び出し先の部品化制御プログラムに対する入力データを、呼び出し元の制御プログラムから取得してデータ記憶部１０３に記憶する。
【００２０】
マッピング情報記憶部１０５は、ユーザプログラム記憶部１０１における各ユーザプログラムの記憶位置（アドレス）を、各ユーザプログラム名に対応付けたマッピング情報を記憶する。図４は、マッピング情報の構成の一例を示す図である。この図に示されるように、マッピング情報は、ユーザプログラム記憶部１０１に格納されるユーザプログラム（制御プログラムと部品化制御プログラム）の名称と、そのユーザプログラムのユーザプログラム記憶部１０１における格納位置である先頭アドレスおよび最終アドレスと、を含む。
【００２１】
実行エラー情報管理部１０７は、呼び出し先の部品化制御プログラムでの実行エラーが発生したときに、スタック１０２に記憶されている戻り先アドレスを取得する。また、マッピング情報記憶部１０５のマッピング情報を用いて、スタック１０２に記憶されている戻り先アドレスから、対応する呼び出し元の制御プログラム名を取得する。さらに、データ記憶部１０３から呼び出し先の制御プログラムに対する入力データを取得する。そして、取得した呼び出し元の制御プログラム名称、呼び出し箇所アドレス（戻り先アドレス）および入力データを含む実行エラー情報をバックアップデータ記憶部１０６に記憶する。
【００２２】
なお、実行エラー情報管理部１０７は、実行エラー情報のほかに、実行エラーが発生した際に実行している部品化制御プログラムの名称、部品化制御プログラム中でのエラー発生アドレス、エラーの内容を示すエラーコードなどを含むエラー詳細情報も取得する。
【００２３】
バックアップデータ記憶部１０６は、実行エラー情報管理部１０７によって取得された呼び出し元の制御プログラム名称、呼び出し箇所アドレス（戻り先アドレス）および入力データを含む実行エラー情報を記憶する。また、このほかにエラー詳細情報を記憶してもよい。通信部１０８は、プログラミングツール２００との間で通信を行う。プログラミングツール２００から実行データの取得要求を受けると、実行エラー情報管理部１０７で取得した実行エラー情報をプログラミングツール２００に対して送信する。
【００２４】
プログラミングツール２００は、ユーザプログラム作成部２０１と、ユーザプログラム記憶部２０２と、通信手段である通信部２０３と、実行エラー情報表示処理手段である実行エラー情報表示処理部２０４と、を備える。
【００２５】
ユーザプログラム作成部２０１は、ユーザからの入力に従ってユーザプログラム（制御プログラム、部品化制御プログラム）の作成を行ったり、またはユーザに対してユーザプログラムの表示を行ったりする。ユーザプログラム記憶部２０２は、ユーザが作成したユーザプログラムを記憶する。ユーザプログラム記憶部２０２に記憶されたユーザプログラムは、ユーザの指示によって、通信部２０３を介して、ＣＰＵユニット１００のユーザプログラム記憶部１０１に記憶される。通信部２０３は、プログラマブルコントローラ（ＣＰＵユニット１００）との通信を行う。
【００２６】
実行エラー情報表示処理部２０４は、通信部２０３を介してＣＰＵユニット１００から、実行エラー発生時の実行エラー情報を表示する。このとき、ＣＰＵユニット１００からエラー詳細情報を取得し、エラー情報と合わせて表示させてもよい。図５は、実行エラー情報表示画面の一例を示す図である。この図に示されるように、実行エラー情報表示画面３００には、エラー詳細情報を表示するエラー詳細情報表示領域３１０と、実行エラー情報を表示する実行エラー情報表示領域３２０と、を有する。エラー詳細情報は、発生したエラーの種類を特定するエラーコード、発生したエラーの内容、エラーが発生したアドレスであるエラー発生アドレス、およびエラーが発生した制御プログラムを特定する制御プログラム名称を含む。実行エラー情報は、実行エラー時に部品化制御プログラムを呼び出した条件であり、ＣＰＵユニット１００のバックアップデータ記憶部１０６に記憶されている情報である。具体的には、実行エラーが発生した制御プログラムの名称と、呼び出しアドレスと、入力データと、を含む。
【００２７】
また、プログラミングツール２００は、これに加えて、ユーザプログラム作成部２０１と実行エラー情報表示処理部２０４とで作成される画面を表示する液晶表示装置などの出力装置２１１と、ユーザプログラム作成部２０１と実行エラー情報表示処理部２０４に対して必要な情報の入力を行うキーボードまたはポインティングデバイスなどの入力装置２１２と、をさらに備える。
【００２８】
このようなプログラミングツール２００は、ＣＰＵと、ＲＯＭ（Read  Only  Memory）と、ＲＡＭ（Random  Access  Memory）と、２次記憶装部と、通信部と、表示部と、入力部と、を有するパーソナルコンピュータなどの情報処理端末によって構成することができる。
【００２９】
つぎに、このような構成のプログラマブルコントローラシステムにおける実行エラー発生時の処理について説明する。図６は、プログラマブルコントローラにおけるユーザプログラム実行時の状態のイメージを示す図である。また、図７は、図６での処理時におけるスタックとデータ記憶部と実行エラー情報の様子を模式的に示す図である。
【００３０】
図６に示されるように、プログラマブルコントローラ（ＣＰＵユニット１００）では、制御プログラム実行部１０４は、制御プログラム（ＭＡＩＮ１）１２１を実行する。制御プログラム１２１中のアドレス「１１００」には、部品化制御プログラム（ＦＵＮＣ）１３１を呼び出す命令がある。制御プログラム実行部１０４は、その命令を読み込むと、その命令を実行する際の入力データ「１０」を取得し、入力データ「１０」で部品化制御プログラム１３１を呼び出す（図６ステップＳ１１）。このとき、制御プログラム実行部１０４は、制御プログラム１２１の部品化制御プログラム１３１の呼び出し時に、戻り先アドレス「１１００」をスタック１０２に記憶し、部品化制御プログラム１３１に対する入力データ「１０」をデータ記憶部１０３に記憶する（図７のステップＳ１１）。
【００３１】
制御プログラム実行部１０４は、制御プログラム１２１によって呼び出された部品化制御プログラム１３１を、入力データ「１０」として実行する。ここでは、部品化制御プログラム１３１は正常に終了したものとする。部品化制御プログラム１３１の実行が終了すると、制御プログラム実行部１０４は、スタック１０２に記憶されている戻り先アドレス「１１００」を取得し、呼び出し元の制御プログラム１２１のアドレス「１１００」に戻る（図６のステップＳ１２）。制御プログラム実行部１０４は、スタック１０２の戻り先アドレスを取得すると、スタック１０２から対応する戻り先アドレスを削除し、またデータ記憶部１０３中の対応する入力データも削除する（図７のステップＳ１２）。そして、制御プログラム実行部１０４は、戻り先アドレス「１１００」のつぎの命令を読込み、制御プログラム１２１の続きの命令を実行する。
【００３２】
制御プログラム実行部１０４は、制御プログラム１２１を実行した後、制御プログラム（ＭＡＩＮ２）１２２を実行する。制御プログラム１２２中のアドレス「２３４０」には、部品化制御プログラム（ＦＵＮＣ）１３１を呼び出す命令がある。制御プログラム実行部１０４は、その命令を読み込むと、その命令を実行する際の入力データ「９９」を取得し、入力データ「９９」で部品化制御プログラム１３１を呼び出す（図６のステップＳ１３）。このとき制御プログラム実行部１０４は、制御プログラム１２２の部品化制御プログラム１３１の呼び出し時に、戻り先アドレス「２３４０」をスタック１０２に記憶し、部品化制御プログラム１３１に対する入力データ「９９」をデータ記憶部１０３に記憶する（図７のステップＳ１３）。
【００３３】
制御プログラム実行部１０４は、制御プログラム１２２によって呼び出された部品化制御プログラム１３１を、入力データ「９９」として実行する。ここでは、部品化制御プログラム１３１の実行時に実行エラーが発生したものとする（図６のステップＳ１４）。部品化制御プログラム１３１の実行エラーが発生すると、ＣＰＵユニット１００の実行エラー情報管理部１０７は、実行エラー発生時のスタック１０２とデータ記憶部１０３に記憶されている内容を取得する。ここでは、スタック１０２中の戻り先アドレス「２３４０」と、データ記憶部１０３中の制御プログラム１２２の入力データ格納位置に対応するアドレスから入力データ「９９」を取得する（図７のステップＳ１５）。
【００３４】
また、実行エラー情報管理部１０７は、取得した戻り先アドレスからマッピング情報記憶部１０５中のマッピング情報に基づいて、実行エラー発生時の呼び出し元制御プログラムの名称を取得する（図７のステップＳ１６）。ここでは、図４のマッピング情報から、戻り先アドレス「２３４０」を含むユーザプログラムは、「ＭＡＩＮ２」であることが分かる。このとき、実行エラー情報管理部１０７は、実行エラーが発生した制御プログラムの名称と、その制御プログラム内のエラー発生アドレスと、エラーコードと、エラー内容と、を含むエラー詳細情報も取得する。
【００３５】
さらに、実行エラー情報管理部１０７は、取得した制御プログラム名称と、戻り先アドレス（呼び出し箇所アドレス）と、入力データと、を含む実行エラー情報をバックアップデータ記憶部１０６に記憶する。このとき実行エラー情報管理部１０７は、実行エラー情報とともにエラー詳細情報もバックアップデータ記憶部１０６に記憶する。
【００３６】
その後、プログラミングツール２００で、ユーザからの操作によって、実行エラー情報の取得要求が行われると、実行エラー情報表示処理部２０４は、通信部２０３を介してＣＰＵユニット１００の実行エラー情報管理部１０７に対して、実行エラー情報取得要求を送信する。
【００３７】
ＣＰＵユニット１００の実行エラー情報管理部１０７は、実行エラー情報取得要求を受け付けると、上記の処理で取得した部品化制御プログラム１３１での実行エラー時の呼び出し元の制御プログラム名称と、戻り先アドレス（呼び出し箇所アドレス）と、呼び出し時の入力データと、を含む実行エラー情報と、実行エラーが発生した制御プログラムの名称と、その制御プログラム内のエラー発生アドレスと、エラーコードと、エラー内容と、を含むエラー詳細情報とを、通信部１０８を介してプログラミングツール２００の実行エラー情報表示処理部２０４に対して送信する。
【００３８】
プログラミングツール２００の実行エラー情報表示処理部２０４は、実行エラー情報とエラー詳細情報を受信すると、取得した実行エラー情報とエラー詳細情報を、出力装置２１１に表示する。出力装置２１１への表示方法は、任意であり、たとえば図５に示されるような形で、表示することができる。以上で、実行エラー作成処理とその表示処理が終了する。
【００３９】
このように、複数の制御プログラムから呼び出されかつ、入力データが不定である部品化制御プログラムであっても、部品化制御プログラムでの実行エラー時に、実行エラー情報として呼び出し元制御プログラム名称、戻り先アドレス（呼び出し箇所アドレス）および呼び出し時の入力データを出力装置２１１に表示することによって、ユーザは容易に実行エラーの要因解析が可能となる。その結果、部品化制御プログラムによるシステムの開発および保守の工数を削減することができる。
【００４０】
なお、上記した実施の形態では、実行エラー情報取得要求を受信した実行エラー情報管理部１０７は、実行エラー発生時に取得した実行エラー情報を送信しているが、これに限定されるものではない。たとえば、実行エラー発生時に取得した実行エラー情報に代えて、バックアップデータ記憶部１０６に記憶されている過去の実行エラー情報を送信してもよい。また、実行エラー解消後に実行エラー情報を表示させるようにしてもよい。
【００４１】
また、上記した実施の形態では、プログラミングツール２００がＣＰＵユニット１００の実行エラー情報管理部１０７に対して実行エラー情報取得要求を送信したが、これに限定されるものではない。たとえば、プログラミングツール２００に代えて、ＣＰＵユニット１００との通信が可能で、実行エラー情報取得要求を送信し、その結果を表示できる機器でもよい。
【００４２】
この実施の形態では、部品化制御プログラムの実行時に、戻り先アドレスと部品化制御プログラムへの入力データとを記憶しておき、部品化制御プログラムの実行エラー時に、ユーザプログラム記憶部１０１内での制御プログラムの格納位置を管理するマッピング情報を用いて、戻り先アドレスから呼び出し元の制御プログラム名称を取得し、制御プログラム名称と、入力データと、戻り先アドレスと、を含む実行エラー情報を取得するようにした。これによって、部品化制御プログラムの実行エラー発生時の状況をユーザに対して素早く提供することができるという効果を有する。
【００４３】
また、実行エラー情報をプログラミングツール２００で取得してユーザに対して表示させるようにしたので、複数の制御プログラムから呼び出されかつ、入力データが不定である部品化制御プログラムであっても、表示された実行エラー情報によって、呼び出し元の制御プログラムと入力データとを特定することができ、ユーザは容易に実行エラーの要因解析が可能となる。その結果、部品化制御プログラムによるシステムの開発および保守の工数を削減できるという効果を有する。
【産業上の利用可能性】
【００４４】
以上のように、この発明にかかるプログラマブルコントローラシステムは、複数の制御プログラムによって呼び出される部品化制御プログラムを使用したシステムの開発および保守に適している。
【符号の説明】
【００４５】
１００  ＣＰＵユニット、１０１，２０２  ユーザプログラム記憶部、１０２  スタック、１０３  データ記憶部、１０４  制御プログラム実行部、１０５  マッピング情報記憶部、１０６  バックアップデータ記憶部、１０７  実行エラー情報管理部、１０８，２０３  通信部、１２１〜１２３  制御プログラム、１３１  部品化制御プログラム、２００  プログラミングツール、２０１  ユーザプログラム作成部、２０４  実行エラー情報表示処理部、２１１  出力装置、２１２  入力装置、３００  実行エラー情報表示画面、３１０  エラー詳細情報表示領域、３２０  実行エラー情報表示領域。
【要約】
制御プログラム実行部（１０４）は、被呼出制御プログラムの呼び出しがあった場合に、戻り先アドレスをスタック（１０２）に記憶するとともに、被呼出制御プログラムへの入力データをデータ記憶部（１０３）に記憶し、実行エラー情報管理部（１０７）は、実行エラーの発生時に、前記スタック（１０２）に記憶されている前記戻り先アドレスと、前記データ記憶部（１０３）に記憶されている前記入力データと、ユーザプログラム記憶部（１０１）での制御プログラムと前記被呼出制御プログラムの格納位置を示すマッピング情報を用いて得られる前記戻り先アドレスに対応するプログラム名称と、を含む実行エラー情報を取得する。【図１】
0005460928.tif 000002
【図２】
0005460928.tif 000003
【図３】
0005460928.tif 000004
【図４】
0005460928.tif 000005
【図５】
0005460928.tif 000006
【図６】
0005460928.tif 000007
【図７】
0005460928.tif 000008