最適化機械語オブジェクトを保持する第一の記憶領域と、前記最適化機械語オブジェクトの先頭アドレスが登録されるテーブルと、前記テーブルに登録された前記先頭アドレスを指定して前記最適化機械語オブジェクトを実行するプログラム実行部と、このプログラム実行部をサイクリックに呼び出し前記最適化機械語オブジェクトを実行するプログラム実行管理部と、トレース指示に基づき、前記プログラム実行管理部の前記プログラム実行部の呼び出し後にトレース処理に切り替えるデバッグ制御部と、前記トレース処理の実行結果を出力するトレース結果出力部と、を備えることを特徴とするプログラマブルコントローラ。請求項1記載のプログラマブルコントローラにおいて、前記デバッグ制御部は、前記トレース指示に基づき前記プログラム実行管理部の前記最適化機械語オブジェクトの呼出し命令を抽出し、該抽出された呼び出し命令の後に前記トレース処理を呼び出すトレース命令を挿入し、前記プログラム実行管理部に前記トレース命令を実行させることにより前記トレース処理に切り替えることを特徴とするプログラマブルコントローラ。請求項1記載または請求項2記載のプログラマブルコントローラにおいて、前記プログラマブルコントローラは前記最適化機械語オブジェクトに対応した非最適化機械語オブジェクトを保持する第二の記憶領域をさらに備え、前記デバッグ制御部は、オブジェクトの実行の停止位置を含むブレーク指示が与えられると前記停止位置に基づき前記非最適化機械語オブジェクトにブレーク命令を挿入するとともに前記非最適化機械語オブジェクトの先頭アドレスを前記テーブルに登録するブレーク実行手段をさらに備え、前記プログラム実行部は、前記ブレーク実行手段によって登録された前記非最適化機械語オブジェクトの先頭アドレスを指定して前記非最適化機械語オブジェクトを実行し、該非最適化機械語オブジェクトに挿入された前記ブレーク命令の実行に伴い、前記非最適化機械語オブジェクトの実行を停止し、この停止情報を出力することを特徴とするプログラマブルコントローラ。請求項3記載のプログラマブルコントローラにおいて、前記ブレーク指示は前記プログラマブルコントローラと通信部を介して接続される支援装置から与えられ、前記デバッグ制御部は前記非最適化機械語オブジェクトへのブレーク命令の挿入に先立ち、前記非最適化機械語オブジェクトが前記プログラマブルコントローラに既に登録されているかを示す有無情報を前記支援装置に送信し、この送信の後に前記支援装置から前記非最適化機械語オブジェクトを受信することにより該受信した非最適化機械語オブジェクトを前記第二の記憶領域に転送することを特徴とするプログラマブルコントローラ。請求項4記載のプログラマブルコントローラにおいて、前記支援装置は所定のソースコードをコンパイルするコンパイル手段を有し、該コンパイル手段は前記ブレーク指示を含むデバッグ開始指示を受けると、前記有無情報の返信を要求するコマンドを前記プログラマブルコントローラに送信し、この送信に対する前記有無情報を含む応答を前記プログラマブルコントローラから受信し、この受信された前記有無情報を参照して前記非最適化機械語オブジェクトが前記プログラマブルコントローラに既に登録されていることを確認し、この確認の結果、前記非最適化機械語オブジェクトが前記プログラマブルコントローラに既に登録されていることが確認されると前記ソースコードをコンパイルせず前記非最適化機械語オブジェクトを未生成とし、前記有無情報を参照した結果、前記非最適化機械語オブジェクトが前記プログラマブルコントローラに登録されてないことが確認されると前記ソースコードをコンパイルして前記非最適化機械語オブジェクトを生成し、該生成された非最適化機械語オブジェクトを前記プログラマブルコントローラに送信することを特徴とするプログラマブルコントローラ。請求項1または請求項2記載のプログラマブルコントローラにおいて、前記デバッグ制御部は前記トレース命令を前記サイクリックの周期に同期して挿入し、トレース解除指示が与えられると前記プログラム実行管理部に挿入した前記トレース命令を前記サイクリックの周期に同期して削除することを特徴とするプログラマブルコントローラ。請求項3記載のプログラマブルコントローラにおいて、前記デバッグ制御部は前記ブレーク命令を前記サイクリックの周期に同期して挿入し、ブレーク解除指示が与えられると前記サイクリックの周期に同期して前記非最適化機械語オブジェクトに挿入した前記ブレーク命令を削除するとともに前記テーブルに前記最適化機械語オブジェクトの先頭アドレスを登録することを特徴とするプログラマブルコントローラ。しかしながら、上記特許文献1に記載の従来例にあっては、デバッグの際、最適化機械語オブジェクトをその都度逆コンパイルしてデバッグ用のソースコードを生成する必要があり、このため作業が煩雑になり、デバッグの効率がよくないという問題がある。本発明は、上記のような問題に着目して考案されたものであり、デバッグ時にソースコード上でデバッグできるとともに、デバッグプロセスを簡単に実装することが可能なプログラマブルコントローラを提供することにある。また、本発明は最適化機械語オブジェクトを実行することによりプログラム実行速度の高速化を図るプログラマブルコントローラにおいて、そのプログラム実行速度を維持し実運用状態でデバッグすることが可能なプログラマブルコントローラを提供することにある。上記のような課題を解決する方法として、本発明は以下のように構成される。請求項1に係る発明は、最適化機械語オブジェクトを保持する第一の記憶領域と、最適化機械語オブジェクトの先頭アドレスが登録されるテーブルと、テーブルに登録された先頭アドレスを指定して最適化機械語オブジェクトを実行するプログラム実行部と、このプログラム実行部をサイクリックに呼び出し最適化機械語オブジェクトを実行するプログラム実行管理部と、トレース指示に基づき、プログラム実行管理部のプログラム実行部の呼び出し後にトレース処理に切り替えるデバッグ制御部と、トレース処理の実行結果を出力するトレース結果出力部と、を備えるように構成される。請求項2に係る発明は、請求項1記載のプログラマブルコントローラにおいて、デバッグ制御部は、トレース指示に基づきプログラム実行管理部の最適化機械語オブジェクトの呼出し命令を抽出し、該抽出された呼び出し命令の後にトレース処理を呼び出すトレース命令を挿入し、プログラム実行管理部にトレース命令を実行させることによりトレース処理に切り替えるように構成される。請求項3に係る発明は、請求項1記載または請求項2記載のプログラマブルコントローラにおいて、プログラマブルコントローラは最適化機械語オブジェクトに対応した非最適化機械語オブジェクトを保持する第二の記憶領域をさらに備え、デバッグ制御部は、オブジェクトの実行の停止位置を含むブレーク指示が与えられると停止位置に基づき非最適化機械語オブジェクトにブレーク命令を挿入するとともに非最適化機械語オブジェクトの先頭アドレスをテーブルに登録するブレーク実行手段をさらに備え、プログラム実行部は、ブレーク実行手段によって登録された非最適化機械語オブジェクトの先頭アドレスを指定して非最適化機械語オブジェクトを実行し、該非最適化機械語オブジェクトに挿入されたブレーク命令の実行に伴い、非最適化機械語オブジェクトの実行を停止し、この停止情報を出力するように構成される。請求項4に係る発明は、請求項3記載のプログラマブルコントローラにおいて、ブレーク指示はプログラマブルコントローラと通信部を介して接続される支援装置から与えられ、デバッグ制御部は非最適化機械語オブジェクトへのブレーク命令の挿入に先立ち、非最適化機械語オブジェクトがプログラマブルコントローラに既に登録されているかを示す有無情報を支援装置に送信し、この送信の後に支援装置から非最適化機械語オブジェクトを受信することにより該受信した非最適化機械語オブジェクトを第二の記憶領域に転送するように構成される。請求項5に係る発明は、請求項4記載のプログラマブルコントローラにおいて、支援装置は所定のソースコードをコンパイルするコンパイル手段を有し、該コンパイル手段はブレーク指示を含むデバッグ開始指示を受けると、有無情報の返信を要求するコマンドをプログラマブルコントローラに送信し、この送信に対する有無情報を含む応答をプログラマブルコントローラから受信し、この受信された有無情報を参照して非最適化機械語オブジェクトがプログラマブルコントローラに既に登録されていることを確認し、この確認の結果、非最適化機械語オブジェクトがプログラマブルコントローラに既に登録されていることが確認されるとソースコードをコンパイルせず非最適化機械語オブジェクトを未生成とし、有無情報を参照した結果、非最適化機械語オブジェクトがプログラマブルコントローラに登録されてないことが確認されるとソースコードをコンパイルして非最適化機械語オブジェクトを生成し、該生成された非最適化機械語オブジェクトをプログラマブルコントローラに送信するように構成される。請求項6に係る発明は、請求項1または請求項2記載のプログラマブルコントローラにおいて、デバッグ制御部はトレース命令をサイクリックの周期に同期して挿入し、トレース解除指示が与えられるとプログラム実行管理部に挿入したトレース命令をサイクリックの周期に同期して削除するように構成される。請求項7に係る発明は、請求項3記載のプログラマブルコントローラにおいて、デバッグ制御部はブレーク命令をサイクリックの周期に同期して挿入し、ブレーク解除指示が与えられるとサイクリックの周期に同期して非最適化機械語オブジェクトに挿入したブレーク命令を削除するとともにテーブルに最適化機械語オブジェクトの先頭アドレスを登録するように構成される。本発明において支援装置はソースコードをコンパイルして、最適化機械語オブジェクトを生成しプログラマブルコントローラPLCに転送しておく。ユーザがデバッグモードとしてブレークを選択すると、支援装置はソースコード上に設定されたブレークポイントを基にデバッグ情報を生成する。この際、デバッグ対象の非最適化機械語オブジェクトが既にプログラマブルコントローラに格納されていれば非最適化機械語オブジェクトを生成せず、デバッグ情報のみをプログラマブルコントローラに送信する。一方、デバッグ対象の非最適化機械語オブジェクトが既にプログラマブルコントローラに格納されていれば、支援装置はソースコードをコンパイルして非最適化機械語オブジェクトを生成しデバッグ情報および非最適化機械語オブジェクトの両方をプログラマブルコントローラに送信する。そして、プログラマブルコントローラは支援装置から非最適化機械語オブジェクトを受信すると内部メモリに転送し、デバッグ情報に応じて、内部メモリに転送された非最適化機械語オブジェクトにブレークポイント処理コードを挿入し、この非最適化機械語オブジェクトの先頭アドレスをアドレステーブルに登録する。続いて、プログラマブルコントローラはアドレステーブルに登録されたアドレス情報をアクセス先として非最適化機械語オブジェクトを実行し、ブレークポイント処理コードを実行したとき、ブレークする。一方、ユーザがデバッグモードとしてトレースを選択すると、支援装置はソースコード上に設定されたトリガ条件を基にデバッグ情報を生成しに送信する。プログラマブルコントローラは受信したデバッグ情報を基に、デバッグ対象の最適化機械語オブジェクトを特定し、この最適化機械語オブジェクトの実行が完了した時点でトレース機能を呼び出し、このタイミングを起点にプログラムの実行をトレースする。このように構成することにより、本発明は最適化機械語オブジェクトを実行することによって高速化を図るプログラマブルコントローラのデバッグ作業の効率を向上させるとともに、プログラマブルコントローラが運用状態でその高速化されたプログラムの実行速度を維持したままデバッグ可能なプログラマブルコントローラを提供できる。以下、本発明の一実施形態について、図面を参照しながら説明する。以降の説明においてアドレス表記は16進である。図1は本発明に係るプログラマブルコントローラシステムの一実施形態を説明する構成図である。図1に示すように、このシステムは、支援装置100プログラミングローダがプログラマブルコントローラ以下、PLCという200と信号線110により着脱可能に接続されており、PLC200は制御機器300に接続されている。PLC200はシーケンス制御プログラムを実行して制御機器300を制御する。支援装置100は、中央演算処理装置CPU101、内部メモリ104、記憶装置105、マウスやキーボード等からなる入力装置102、表示器103、入出力インターフェイスI/O106などから構成され、これらが共通バス107に接続されている。記憶装置105には各種のデータが記憶されている。入力装置102は、オペレータによって外部から操作されるマウスやキーボード等からの入力イベントをCPU101に通知する。表示器103は、例えば液晶デスプレイからなり、入力イベントに応じて、各種データや画像を表示する。I/O106は、信号線110を介してPLC200と接続されており、支援装置100とPLC200とのデータを授受する。CPU101は、入力装置102に入力される入力イベントと、内部メモリ104から読み出したプログラムに従って、記憶装置105から各種のデータを読み出しながら、或いは記憶装置105に各種のデータを書き込みながら、各部の動作を制御する。さらに、CPU101はパラメータなどPLC200に対する動作指示を、I/O106を介してPLC200に送出することや、PLC200が実行するためのシーケンス制御プログラムをI/O106を介してPLC200にダウンロードすることができる。このように構成された支援装置100は、ユーザによってプログラミングされたソースプログラムをコンパイルして、後述する図2のCPU211が直接実行可能な実行コード機械語を生成する機能を有している。そして、実行コードが、通信線110を介してCPUモジュール210にダウンロードされることにより、CPUモジュール210は、システムプログラムメモリ212などに保持されたシーケンス制御プログラムを、ダウンロードされた実行コードに更新することができるプログラム更新手段。図2はPLC200の内部構成図である。PLC200はCPUCentralProcessingUnitモジュール210を有する。このCPUモジュール210はCPU211、ドライバ/レシーバ217、PLC固有バスインターフェース214、システムプログラムメモリFLASH212、システムワークメモリRAMRandomAccessMemory216、ユーザプログラムメモリRAM213、ユーザデータメモリRAM215などを有し、それらがバス218により接続されている。また、CPUモジュール210はPLC固有バスインターフェース214を通して入出力モジュール222と接続される。また、PLC200はパワーオンまたはリセットスタート後、システムの初期化を経てシステムプログラムメモリ212に保持されたシーケンス制御プログラムをサイクリックに実行し、制御機器300を所定の周期で制御するよう構成されている。図3は、本発明の一実施形態を示す機能ブロック図であり、図中、支援装置100はユーザによって作成されたソースコードソースプログラムを機械語オブジェクトに変換するコンパイル機能を備える。支援装置100によってコンパイルされた機械語オブジェクトはPLC200などのターゲットにダウンロードされる。ユーザインタフェース部11はユーザによって作成されたIECInternationalElectrotechnicalCommission言語のソースコードをコンパイラに与える。コンパイラ12コンパイル手段は、通常時デバッグを実行しないとき、ソースコードを最適化コンパイルして最適化機械語オブジェクトを生成し、最適化機械語オブジェクト13として図示しない記憶領域等に格納する。生成された最適化機械語オブジェクト13はRS232C等の通信部14を介してPLC200にダウンロードされる。一方、デバッグ時にコンパイラ12は、ソースコードをコンパイルしてデバッグ可能な機械語オブジェクト非最適化機械語オブジェクトを生成し、非最適化機械語オブジェクト15として図示しない記憶領域等に格納する。生成された非最適化機械語オブジェクト15は、データ通信部14を介してPLC200にダウンロードされる。PLC200は、データ通信部21を有し、このデータ通信部21を通じて支援装置100から入力される最適化機械語オブジェクト13を最適化機械語オブジェクト22として転送し登録するとともに、最適化機械語オブジェクト22の先頭アドレスをアドレステーブル24に登録する。プログラム実行部27はサイクリックに実行されるオペレーション機能プログラム実行管理部に呼び出され、アドレステーブル24に登録されたアドレス情報に基づいて最適化機械語オブジェクトを実行するよう構成されており、通常時は最適化機械語オブジェクト22を実行している。すなわち、プログラム実行部27はアドレステーブル24を参照して、該アドレステーブル24の情報を間接アドレス指定して、そのアドレス先に保持された機械語オブジェクトを実行する。通常時、アドレステーブル24には最適化機械語オブジェクト22の先頭アドレスが登録されており、プログラム実行部27は最適化機械語オブジェクト22を実行することでプログラムを高速に実行している。一方、デバッグ時にPLC200は、支援装置100から入力される非最適化機械語オブジェクト15を非最適化機械語オブジェクト23として転送し登録するとともに、非最適化機械語オブジェクト23の先頭アドレスをアドレステーブル24に登録する。この登録に基づきプログラム実行部27は非最適化機械語オブジェクト23を実行する。そして、PLC200はデバッグの終了時に最適化機械語オブジェクト22の先頭アドレスをアドレステーブル24に再び登録することにより、通常時に戻る。このように、通常時は最適化機械語オブジェクト22が保持された領域第一の記憶領域の先頭アドレスをアドレステーブル24に登録し、デバッグ時には非最適化機械語オブジェクト23が保持された領域第二の記憶領域の先頭アドレスをアドレステーブル24に登録することにより、通常時とデバッグ時とで機械語オブジェクトを切り替えて実行するので、最適化機械語オブジェクトを実行して高速化を図るPLCのデバッグ作業が極めて容易になる。ここで、支援装置100の具体的な処理の一例を説明する。図4は、支援装置100の支援処理手順の一例を示している。支援処理は、先ず、ステップS1で、処理メニューを表示する。この処理メニューとしては図5に示すように、コンパイル開始ボタン31、デバッグ開始ボタン32、デバッグ終了ボタン34、終了ボタン33が少なくとも設定されている。またデバッグ開始ボタン32には後述のブレーク処理またはトレース処理が選択できるようラジオボタンがオプションとして付与されている。これらメニュー31~34のうちの所望のボタンがユーザにより選択されることにより、支援装置100は各種処理を実行する。続いて、ステップS2に移行して、支援処理はコンパイル開始ボタン31が選択されたか否かを判定し、コンパイル開始ボタン31が選択されていないときには、後述するステップS5に移行し、コンパイル開始ボタン31が選択されたときには、ステップS3に移行して、ソースコードを最適化コンパイルして最適化機械語オブジェクトを生成するとともに、このときのソースコードのファイル名と識別番号とを対応付けた対応表ソースコード識別番号対応表を作成し、このソースコード識別番号対応表および最適化機械語オブジェクト13を記憶領域に保存する。なお、識別番号については後述するが、コンパイル後の機械語オブジェクトを一意に識別する情報番号であって、その記述方法はどのような形式でも構わない。続いて、処理はステップS4に移行し、支援処理は記憶領域に保持された最適化機械語オブジェクト13を、データ通信部14を介してPLC200にダウンロードし、ステップS5に移行する。ステップS5で支援処理は、デバッグ開始ボタン32が選択されたか否かを判定し、デバッグ開始ボタン32が選択されていないときにはステップS16に移行し、デバッグ開始ボタン32が選択されればステップS6に移行する。ステップS6に移行した支援処理は、デバッグ開始ボタン32のオプションとして選択されるブレーク処理のラジオボタンが選択されているか否かを判定する。ブレーク処理が選択されていない場合に支援処理はステップS17に移行し、ブレーク処理が選択された場合にはステップS7に移行する。ステップS7に移行した支援処理は、ユーザがソースコード上に設定したブレークポイントを基に図8に示すデバッグ情報を作成する。このデバッグ情報の識別番号51は、ブレークポイントが設定されたソースコードのファイル名を基に、前述ソースコード識別番号対応表から特定された識別番号であり、ブレーク位置52は、ブレークポイントが設定された行番号である。なお、ブレークポイントについては後述するが、ソースコードにおける任意の位置に相当する箇所で、プログラム実行を中止させる為の一種のマーカー識別子であって、その実現方法はどのような形式でも構わない。以降の説明では、一例として、ブレークポイント処理コードを挿入する方法を用いるものとする。続いて、ステップS8に移行して、支援処理はPLC200に対してデバッグ開始通知を送信する。このとき支援処理は、デバッグ情報に加えて、実行すべきデバッグ処理がブレークであることをPLC200に送信する。続いて、ステップS9に移行し、支援処理はPLC200にデバッグ対象の非最適化機械語オブジェクトが存在するか否かを確認する。この確認は所定の確認コマンドをPLC200に送信し、PLC200からデバッグ対象の非最適化機械語オブジェクトの有無を表すオブジェクト有無通知有無情報を受信することで達成される。この結果、デバッグ対象の非最適化機械語オブジェクトがPLC200に存在する通知をPLC200から受信したときには、ステップS13に移行し、デバッグ対象の非最適化機械語オブジェクトがPLC200に存在しない場合にはステップS10に移行する。ステップS10に移行した支援処理は、ソースコードをコンパイルして非最適化機械語オブジェクト15を生成して記憶領域に保存し、次いでステップS11に移行して、記憶領域に保持された非最適化機械語オブジェクト15を、データ通信部14を介してPLC200にダウンロードする。続いて、ステップS12に移行して、支援処理はPLC200から後述する処理完了通知ブレークポイント処理コードの挿入処理の完了を示す通知を受信したか否かを判定し、処理完了通知を受信していないときには処理完了通知を受信するまで待機し、処理完了通知を受信したときにはステップS13に移行する。ステップS13で支援処理は、PLC200がブレークしたときのステータス情報を表示するなどのデバッグ処理を実行し、次いで、ステップS14に移行して、デバッグ終了ボタン34が選択されたか否かを判定してデバッグ処理の終了を判定し、デバッグ処理が終了していないときにはこれが終了するまで待機し、デバッグ終了ボタン34が選択されたときにはステップS15に移行して、デバッグ終了通知をPLC200に送信しステップS16に移行する。そして、ステップS16にて支援処理は、終了ボタン33が選択されたか否かを判定し、終了ボタン33選択されたときにはメニュー画面を消して支援処理を終了する。そうでないときにはステップS2に戻る。また、ステップS6の判定の結果、ステップS17に移行した支援処理は、トレース処理のラジオボタンが設定されていることを確認し、トレースを開始するためのトリガ条件を設定する。このトリガ条件は前述ブレークポイントの設定の要領と同じく、トレースさせたい部分をユーザがソースコード上に設定することにより図8に示すデバッグ情報を抽出し、PLC200に送信するステップS18。このステップS18で支援処理は、デバッグ情報に加えて実行すべきデバッグ処理がトレースであることをPLC200に送信する。ここで、PLC200の具体的な処理の一例を説明する。図6は、PLC200が機械語オブジェクトをプログラムメモリ213に転送し、デバッグする際の処理手順以下PLC処理の一例を示している。このPLC処理は、先ず、ステップS21で、支援装置100から最適化機械語オブジェクト13を受信したか否かを判定し、最適化機械語オブジェクト13を受信していないときにはステップS31に移行し、最適化機械語オブジェクト13を受信したときにはステップS22に移行する。ステップS22に移行したPLC処理は、受信した最適化機械語オブジェクト13をユーザプログラムメモリ213の最適化機械語オブジェクト保存領域不図示に最適化機械語オブジェクト22として転送し、続いてステップS23に移行し、最適化機械語オブジェクト22の保存領域の先頭アドレスをアドレステーブル24に登録する。ステップS21からステップS23に係る処理をオブジェクト展開機能ともいい、図3のオブジェクト展開部25に相当する。そして、PLC処理はステップS31に移行し、支援装置100からデバッグ開始通知を受信したか否かを判定する。この判定の結果、デバッグ開始通知を受信していないときにはステップS21に戻り、デバッグ開始通知を受信したときにはステップS32に移行する。なお、デバッグ開始通知には前述図8に示すデバッグ情報と実行すべきデバッグ処理ブレーク、もしくはトレースを示すデバッグ処理パラメータを含むものとする。ステップS32に移行したPLC処理は、前述デバッグ処理パラメータを判定し、デバッグ処理パラメータがブレークであるときステップS33に移行し、そうでないときにはステップS41に移行する。ステップS33においてPLC処理は、デバッグ対象の機械語オブジェクトが既に格納済みか否かを確認してその有無情報を支援装置100に送信し、ステップS34に移行する。S34でPLC処理は、所定の時間を経過後、支援装置100から非最適化機械語オブジェクトを受信したか否かを判定し、非最適化機械語オブジェクトを受信したならばステップS35に移行し、非最適化機械語オブジェクトを受信しなければステップS36に移行する。処理はステップS35に移行し、PLC処理は受信した機械語オブジェクト43後術図7をユーザプログラムメモリ213の非最適化機械語オブジェクト保存領域不図示に転送し、続いてステップS36に移行し、前述デバッグ情報を参照して、デバッグ対象とする機械語オブジェクトの識別番号およびブレーク位置を取得し、該識別番号が付与された非最適化機械語オブジェクトにブレークポイント処理コードを挿入する。このブレークポイントコードが挿入される位置は前述ブレーク位置にて特定される。処理はステップS37に移行し、PLC処理はアドレステーブル24にデバッグ用アドレスとして前述非最適化機械語オブジェクトの保存先先頭アドレスを登録する。処理はステップS38に移行し、PLC処理はデータ通信部21を介して、処理完了通知を支援装置100に送信してからステップS39に移行する。ステップS39でPLC処理は、支援装置100からデバッグ完了通知を受信したか否かを判定し、デバッグ完了通知を受信していないときにはこれを受信するまで待機し、デバッグ完了通知を受信したときにはステップS40に移行して、アドレステーブル24を最適化用アドレスに切換えてからステップS21に戻る。また、ステップS32の判定にて、デバッグ処理パラメータがブレークでない場合、処理はステップS41に移行する。ステップS41でPLC処理は、支援装置100から受信したデバッグ情報を参照してトリガ条件を設定し、続いてステップS42に移行して、処理完了通知を支援装置100に送信してからステップS43に移行する。ステップS43でPLC処理は、支援装置100からデバッグ完了通知を受信したか否かを判定し、デバッグ完了通知を受信していないときにはこれを受信するまで待機し、デバッグ完了通知を受信したときにはステップS21に戻る。なお、ステップS31からステップS43に係る処理をデバッグ制御機能ともいい、図3のデバッグ制御部26に相当する。次に、上記実施形態の動作を説明する。機械語オブジェクトをダウンロードするまでの支援装置100に係る動作支援装置100を使用してPLC200に機械語オブジェクトをダウンロードするには、ユーザは先ず、支援装置100のユーザインタフェース部11でプログラムをIEC言語で記述したソースコードを作成する。このソースコードを作成した状態で、支援装置100で、表示器103に表示された処理メニューからコンパイル開始ボタン31を選択する。このコンパイル開始ボタン31の選択がされることによって、支援装置100はコンパイラ12でソースコードを最適化コンパイルして最適化機械語オブジェクト13を生成し、これを記憶領域に格納する。この最適化コンパイルは、ソースコードの実行順序の変更、レジスタの有効活用等を行なうことにより、コードサイズを縮小する。ここで、最適化機械語オブジェクト13は、POUProgramOrganizationUnit毎に生成される。このPOUとは、プログラム構成単位であり、PLC200の言語要素である。なお、POUの種類には、アプリケーションプログラム、ファンクションブロック等があり、C言語の関数に相当するものである。支援装置100は最適化コンパイルを行なう際、生成された最適化機械語オブジェクト13が何れのソースコードを変換したものであるかを対応付けるようにソースコード識別番号対応表を作成し記憶領域に保存する。すなわち、ソースコード識別番号対応表はソースコードのファイル名と識別番号とを対応付けたテーブル情報である。そして、支援装置100は最適化機械語オブジェクト13の生成が完了すると、データ通信部14を介してPLC200にダウンロードする。このとき、最適化機械語オブジェクト13は、図7に示すように、POU単位の機械語オブジェクト43オブジェクト本体に対して識別番号41及び最適化機械語オブジェクトであるか非最適化機械語オブジェクトであるかを表す情報42が付加されてプPLC200にダウンロードされる。識別番号41はコンパイルされた最適化機械語オブジェクトおよび非最適化機械語オブジェクトそれぞれのPOUに付与される番号であり、POUを一意に識別するための識別子である。種別42は機械語オブジェクト43が最適化されたものか、デバッグ可能な非最適化のものかを示す種別コードであり、本発明の実施形態では1を最適化された機械語オブジェクト、2を非最適化機械語オブジェクトデバッグ可能な機械語オブジェクトとして定義している。PLC200が支援装置100から受信した最適化機械語オブジェクトを展開する動作例えば、PLC200は支援装置100から図9に示すような機械語オブジェクト61a、61bを支援装置100からダウンロードされたとする。機械語オブジェクト61aおよび61bは、その種別が1なので最適化である。PLC200はこれら機械語オブジェクトPOU本体をユーザプログラムメモリ213の最適化機械語オブジェクト格納領域0番地~7FFF番地に識別番号順に転送して保存し、アドレステーブル24の識別番号1用アドレス欄に、機械語オブジェクト61aの格納先頭アドレス0000を登録する。同様、アドレステーブル24の識別番号2用アドレス欄には、ユーザプログラムメモリ213に保存された機械語オブジェクト61bの先頭アドレス1000が登録される。すなわち、PLC200は複数のPOUそれぞれを、識別番号順に展開しユーザプログラムメモリ213に保存する。この際、各POUが保存されたそれぞれの先頭アドレスをアドレステーブル24に登録する。通常時にPLC200がオブジェクトを実行する動作PLC200はアドレステーブル24を参照して、該アドレステーブル24の情報を間接アドレス指定して機械語オブジェクトを実行する。通常時、上述のようにアドレステーブル24には最適化機械語オブジェクトの先頭アドレスが登録されているので、PLC200は最適化機械語オブジェクト22を高速に実行している。ブレークを目的としたデバッグにおける支援装置100の動作図5のメニュー画面でブレーク処理のラジオボタンが選択され、デバッグ開始ボタン32が選択されると、支援装置100はPLC200をブレークさせるデバッグを開始する。PLC200をブレークさせる場合、ユーザは所望のソースコードを開き、開いたソースコードにブレークポイントを設定する。このとき、支援装置100は開かれているソースコードを基に前述ソースコード識別番号対応表を参照してソースコードに対応する機械語オブジェクトの識別番号を獲得する。さらに、表示画面上で指定されたソースコードの行などの位置を認識する。そして、支援装置100はブレークポイントが設定されたソースコードをコンパイラ12でコンパイルして非最適化機械語オブジェクト15を生成する。この際に、識別番号とブレークポイントとしてソースコードの行を指定する図8に示すデバッグ情報を作成する。このようにして、ユーザは所望のソースコードを開いてブレークポイントを設定し、支援装置100はブレークポイントが設定されたソースコードをコンパイラ12でコンパイルして非最適化機械語オブジェクト15を生成するとともにデバッグ情報を作成する。そして、支援装置100は、非最適化機械語オブジェクト15とデバッグ情報をPLC200にダウンロードし、PLC200の処理完了通知を待つ。このとき、支援装置100から送信される最適化機械語オブジェクトは、図7に示すフォーマットでダウンロードされ、デバッグ情報は前述デバッグ処理パラメータを含んだ図8に示すフォーマットにてダウンロードされる図7の識別番号41と図8の識別番号51は、実質同じである。支援装置100は、PLC200から処理完了通知を受信すると、PLC200がブレークするのを待ち、この待ち状態においてPLC200の状態情報レジスタの値や入出力データなどを、表示器103を使って表示し、ユーザにPLCの状態を通知する。そして、何らかの解析がユーザにより行われ、デバッグ終了ボタン34が押されると、デバッグ終了通知をPLC200に送信する。ブレークを目的としたデバッグにおけるPLC200の動作ユーザによりブレークを目的とした操作が行われ、例えば、図10に示す機械語オブジェクト62a、62bとデバッグ情報ブレーク指示が支援装置100からPLC200にダウンロードされたとする。機械語オブジェクト61aおよび61bはその種別が2なので非最適化である。PLC200は、デバッグ情報に含まれるデバッグ処理パラメータを参照してブレーク処理を認識し、機械語オブジェクト62aおよび62bをユーザプログラムメモリ213の非最適化機械語オブジェクト格納領域8000番地~に識別番号順に保存する。そして、PLC200は、デバッグ情報を参照し、デバッグ情報の識別番号が2、ブレーク位置が2なので、ユーザプログラムメモリ213に保存された識別番号2の非最適化機械語オブジェクトの2行目にブレークポイント処理コードを挿入する。そして、アドレステーブル24の識別番号2用アドレス欄を、識別番号2の非最適化機械語オブジェクトの保存先先頭アドレスに更新する。具体的に説明すると、アドレステーブル24の識別番号2用アドレス欄は1000から9000に更新される。このように、PLC200は、非最適化機械語オブジェクトとデバッグ情報を受信すると、非最適化機械語オブジェクトを内部メモリに転送するとともに、デバッグ情報に基づいて、デバッグ対象の非最適化機械語オブジェクトを認識して該認識した非最適化機械語オブジェクトにブレークポイント処理コードを挿入し、該識別番号に該当するアドレステーブル欄を最適化機械語オブジェクト用アドレスから非最適化機械語オブジェクト用のアドレスに変更する。このアドレステーブルの変更に伴い、PLC200は識別番号2の機械語オブジェクトの実行に関しては非最適化機械語オブジェクトを実行するようになる。続いて、PLC200は、処理完了通知を支援装置100に送信し、支援装置100からのデバッグ終了通知を待つ。この待ち状態においてPLC200は、挿入されたブレークポイント処理コードを実行した時点で、機械語オブジェクトの実行を停止し、PLC200の状態情報レジスタの値や入出力データなどおよびブレークして停止したことを支援装置100に送信して待機状態になる。PLC200は、支援装置100からデバッグ終了通知を受信すると、アドレステーブル24をデバッグ用アドレスから最適化用アドレスに切換えるとともに、非最適化機械語オブジェクトに挿入されたブレークポイント処理コードを削除する。この動きについて図10を例に説明すると、アドレステーブル24の識別番号2用アドレス欄は9000から1000に再び更新され、識別番号2の非最適化機械語オブジェクトの2行目に挿入されたブレーク処理コードが削除される。このようにして、PLC200はデバッグ状態から通常時の状態運用状態ともいうに復帰し、最適化機械語オブジェクトの実行を再開する。なお、デバッグ開始時に、デバッグ対象の非最適化機械語オブジェクトが既にPLC200に保存されているとき、PLC200は非最適化機械語オブジェクトが既に格納されていることを示す有無情報を支援装置100に送信し、支援装置100に非最適化機械語オブジェクトの送信を省略するよう促す。このようにして、無駄な通信時間を省くことができる。以上説明したように、上記実施形態を一例とする本発明は、ソースコードをコンパイルする際に、最適化コンパイルのみを行なって、最適化機械語オブジェクトをPOU毎に生成し、これと同時にソースコード識別番号対応表を作成する。そして、生成した最適化機械語オブジェクトに図7に示すような識別番号41及び種別42を付加してデータ送信部14からPLC200にダウンロードする。すなわち、本発明は、コンパイラ12でソースコードを最適化コンパイルして最適化機械語オブジェクトのみを生成し、生成した最適化機械語オブジェクトをPLC200にダウンロードするので、ダウンロードに要する時間を必要最小限とすることができる。また、PLC200は、ダウンロードされた最適化機械語オブジェクトを実行するのでアプリケーションを高速に実行することができる。一方、デバッグ時において本発明は、デバッグ対象となる機械語オブジェクトのみをコンパイルして非最適化機械語オブジェクトを生成し、これとともにデバッグ情報をPLC200にダウンロードする。このようにすることにより、コンパイルおよびダウンロード時間を必要最小限とすることができ、効率の良いソフトウェア開発を支援することができる。また、本発明は、ブレークに代わりトレースも実行可能である。トレースとは所定の起点から監視対象の変数の値を時系列で表示する機能、すなわち所定のトリガ条件を起点としてデータをロギングする機能である。例えば、このロギングはプログラムの実行過程などにおけるレジスタの値を収集することなどである。言い換えれば、本発明は最適化機械語オブジェクトを実行することによりプログラム実行速度の高速化を図るPLCにおいて、そのプログラム実行速度を維持し実運用状態でデバッグするという課題を解決することもできる。上述の如くブレーク処理においては非最適化機械語オブジェクトをPLCに実行させるため、最適化機械語オブジェクトを実行している通常の実行速度に対してそのプログラム実行速度は低下する。また、ブレーク条件が成立するとプログラムが停止されるので実運用の検証には得策とは言えず、PLCが実運用中でないときオフラインの論理検証に適している。これに対し、トレースはPLCを停止させないので実運用でのデバッグ実運用検証に適している。以下、本発明のトレースについて、その実行方法を説明する。トレースを目的としたデバッグにおける支援装置100の動作ユーザは要求するデバッグモードとして図5のトレース処理のラジオボタンを選択し開始ボタン32を選択する。そして、ユーザはトレースの開始条件としてトリガ条件を設定するが、このトリガ条件は前述ブレークポイントの設定の要領と同じように設定される。すなわち、トレースの開始ポイントをブレークポイントの設定と同じようにユーザがソースコード上に設定し、この設定を基に支援装置100は図8に示すデバッグ情報を抽出し、PLC200に送信する。このとき支援装置100は、デバッグ情報に加えて、選択されたデバッグモードがトレースであることを示すデバッグ処理パラメータをPLC200に送信し、PLC200の処理完了通知を待つ。以降の動きは前述ブレークの動きと同じである。トレースを目的としたデバッグにおけるPLC200の動作選択されたデバッグ処理がトレースであることを示すデバッグ処理パラメータを受信したPLC200は、デバッグ情報を参照してトリガ条件を設定するが、上述の如く最適化機械語オブジェクトはプログラムの実行順序などが変更された可能性があるため、上述ブレークポイント処理コードのような所定の処理コードを最適化機械語オブジェクトに埋め込むことができない。本発明のデバッグ方法トレースの特徴点は、プログラムの実行を管理するオペレーション機能プログラム実行管理部がサイクリックに実行され最適化機械語オブジェクトを周期的制御周期毎に実行する点に着目して考案されたものである。具体的にはデバッグ情報の識別番号で指定される最適化機械語オブジェクトをオペレーション機能が呼び出し、その実行が終了した時点からトレースを開始するようにした点にある。このようにすることにより、最適化された機械語オブジェクトを実行するPLCにおいて、そのプログラム実行速度を低下させることがなく、PLCが運用状態のままデバッグが可能になる。図11はトレースの際のPLC200の動作概念図である。他の図と同符号のものは同構成である。この図はユーザプログラムメモリ213に識別番号1、識別番号2それぞれの最適化機械語オブジェクトと非最適化機械語オブジェクトを登録済みであり、識別番号が2のデバッグ情報トレース指示を支援装置100から受信した例である。トレースが指示された場合、デバッグ情報のブレーク位置は適用されない。デバッグ情報を受けたPLC200のデバッグ制御部26は、デバッグ情報の識別番号が2なので、識別番号2の最適化機械語オブジェクトを呼び出すコール命令をオペレーション機能の中のプログラムコードから抽出する。この抽出は、例えば、前述識別番号2をオペランドとするコール命令を検索することで達成される。そして、デバッグ制御部26は前述抽出されたコール命令の後にトレース処理を実行するためのトレース処理実行コードトレース命令をオペレーション機能内に挿入する。つまり、デバッグ制御部26は挿入したトレース処理実行コードをオペレーション機能に実行させることにより、オペレーション機能が順次実行するメインルーチンからトレース処理を実行させるように切り替える。そして、オペレーション機能はメインルーチンのプログラムを順次実行する際、挿入されたトレース処理実行コードを実行しトレース機能を呼び出す。呼び出されたトレース機能はプログラムの実行ログを不図示の記憶領域に格納する。そして、PLC200はトレース結果出力部によって前述実行ログを支援装置100に送信する。すなわち、オペレーション機能はプログラムを順次実行する際、識別番号2の最適化機械語オブジェクトを呼び出す。プログラム実行部27は、識別番号2の最適化機械語オブジェクトの呼び出しを受け、アドレステーブル24に登録されたデータを間接アドレス指定して識別番号2の最適化機械語オブジェクトを実行する。そして、プログラム実行部27は識別番号2の最適化機械語オブジェクトの実行が終了するとその完了をオペレーション機能に伝える。最適化機械語オブジェクトの実行の完了が伝えられたオペレーション機能は前述挿入されたトレース処理実行コードを実行してトレース機能を呼び出す。呼び出されたトレース機能はプログラムの実行ログを不図示の記憶領域に格納し、この実行ログをトレース結果出力部が支援装置100に送信する。そして、PLC200は処理完了通知を支援装置100に送信し、支援装置100からのデバッグ終了通知を待つ。デバッグ終了通知を受信するとデバッグ制御部26は、オペレーション機能内に挿入したトレース処理実行コードを削除し、トレースを終了する。以上説明したように、本発明はソースコード上にブレークポイントもしくはトリガ条件が設定され、デバッグモードとしてブレークが選択されたときデバッグ情報を生成し、PLC200に送信する。この送信の際、デバッグ対象の非最適化機械語オブジェクトが既にPLC200に格納されていればデバッグ情報のみを送信する、一方デバッグ対象の非最適化機械語オブジェクトが既にPLC200に格納されていなければ支援装置100は非最適化機械語オブジェクト15とデバッグ情報の両方をPLC200に送信する。PLC200は非最適化機械語オブジェクトを受信すると内部メモリに転送し、デバッグ情報に応じて、内部メモリに転送された非最適化機械語オブジェクトにブレークポイント処理コードブレーク命令を挿入し、該非最適化機械語オブジェクトを実行するようアドレステーブル24を変更する。そして、PLC200は挿入されたブレークポイント処理コードを実行した際、ブレークする。一方、デバッグモードとしてトレースが選択されたとき、支援装置100は、ユーザにより設定されたトリガ条件を基にデバッグ情報を生成し、PLCに送信する。PLCは受信したデバッグ情報を基に、デバッグ対象の最適化機械語オブジェクトを特定し、この最適化機械語オブジェクトの実行が完了した時点でトレース機能を呼び出し、このタイミングを起点にプログラムの実行をトレースする。そして、このトレース結果を支援装置100に送信する。このようにすることで、本発明は最適化機械語オブジェクトを実行して高速化を図ったPLCのデバッグ作業の効率を向上させるとともに、PLCが運用状態で、その高速化されたプログラムの実行速度を維持したままデバッグすることができる。なお、運用状態とデバッグとの相互の切り替えタイミング、すなわちアドレステーブル24の更新タイミング、そしてトレース処理実行コードやブレークポイント処理コードの挿入削除のタイミングは、PLC200が制御機器300を制御するための制御周期オペレーション機能の実行が一巡するサイクリック周期に同期して実行されることが望ましい。PLC200には複数のPOUが保存されており、PLC200はこれらPOUの処理結果を連携して演算しこの演算結果を使って制御機器300を制御している。このため、本発明は制御周期に同期してアドレステーブル24を更新するとともに、トレース処理実行コードやブレークポイント処理コードの挿入や削除を行うことにより、それぞれのPOUの入出力処理の連携を保ち、制御の影響を最小限にしている。また、上記実施例において、ユーザプログラムメモリはRAMなどの揮発性メモリに限定することはなく、フラッシュメモリなどの書き換え可能な不揮発性メモリで構成してもよい。また、上述デバッグ情報は機械語オブジェクトプログラムを特定し、所定箇所にパッチ処理を挿入するための情報とも言える。また、支援装置100は図8に示すデバッグ情報をPLC200に送信する際、図5に示すラジオボタンブレーク処理もしくはトレース処理の選択情報を送信パケットに含ませてPLC200に送信している。PLC200は支援装置100からデバッグ情報を受信した際、前述送信パケットに含まれる選択情報を参照し、デバッグ情報がブレーク指示なのかトレース指示なのかを把握できるように構成されている。また、オペレーション機能プログラム実行管理部はファームウェアに相当するプログラムであり、最適化されてないデバッグ可能なプログラムである。