ラダー処理を実行する第1のプロセッサと、タスク処理を実行する第2のプロセッサと、プログラムとしてラダー処理のための複数のラダープログラムとタスク処理のための複数のタスクプログラムを収納する主メモリを備え、前記複数のラダープログラムと複数のタスクプログラムについて、処理の優先度に応じてラダープログラムとタスクプログラムの組み合わせを定めておき、前記第2のプロセッサは、処理の優先度ごとの処理周期での割り込みに応じて、当該優先度でのラダープログラムの実行を前記第1のプロセッサに指示し、前記第1のプロセッサは、前記第2のプロセッサの指示に従って主メモリ内のラダープログラムから当該優先度のラダープログラムを得、これに従ってラダー処理を実行し、前記第2のプロセッサは、主メモリ内のタスクプログラムから当該優先度のタスクプログラムを得、これに従ってタスク処理を実行し、指定された割り込みの優先度ごとの処理周期内に、当該優先度でのタスクプログラムによるタスク処理と、当該優先度でのラダープログラムによるラダー処理を完了することを特徴とするコントローラ。請求項1に記載のコントローラにおいて、処理の優先度ごとの処理周期は、処理の優先度が上位であるほど短い処理周期とされていることを特徴とするコントローラ。請求項1又は請求項2に記載のコントローラにおいて、前記第2のプロセッサは、前記割り込みの新たな発生を監視して実行中の優先度よりも上位の優先度の第2の割り込みであることを検知し、前記第1のプロセッサおよび、または前記第2のプロセッサは、実行中の前記プログラムを用いた処理を中断して、上位の優先度の第2の割り込みで定まるプログラムを用いた処理を実行し、前記第1のプロセッサおよび、または前記第2のプロセッサは、前記上位の優先度の第2の割り込みで定まるプログラムを用いた処理の完了後に、第2の割り込み発生前に実行中のプログラムを用いた処理を再開し、指定された割り込みの優先度ごとの処理周期内に、当該優先度でのタスクプログラムによるタスク処理と、当該優先度でのラダープログラムによるラダー処理を完了することを特徴とするコントローラ。請求項1から請求項3のいずれか1項に記載のコントローラにおいて、前記第1のプロセッサは、ラダー処理の実行中に異常が発生したことを検知して前記第2のプロセッサに報告し、前記第2のプロセッサは、当該優先度のタスク処理を実行すると共に、次回割り込み時の当該優先度のラダー処理についての処理の可否を決定することを特徴とするコントローラ。請求項1から請求項4のいずれか1項に記載のコントローラにおいて、前記主メモリに収納されたラダー処理のためのラダープログラムは、複数の一連のラダー命令で構成され、前記第1のプロセッサは、前記ラダー命令に従い当該のラダー処理を実行すると共に、実行できないラダー命令を検出した際には、ラダー処理を一時停止し、前記第2のプロセッサは、前記停止したラダー命令を実行し、前記第1のプロセッサは、前記第2のプロセッサにおける前記停止したラダー命令の実行後に、ラダー処理を停止したアドレスの次の番地から継続してラダー処理を再開することを特徴とするコントローラ。請求項1から請求項5のいずれか1項に記載のコントローラにおいて、前記第1のプロセッサはハードウェアで構成され、前記第2のプロセッサは、ソフトウェアで構成されていることを特徴とするコントローラ。請求項1から請求項6のいずれか1項に記載のコントローラにおいて、割り込みにより指定された同一優先度の前記第1のプロセッサのラダー処理と、前記第2のプロセッサのタスク処理は、その処理周期内で一方の処理が完了後に他方の処理を実行する直列処理とされることを特徴とするコントローラ。請求項1から請求項7のいずれか1項に記載のコントローラにおいて、割り込みにより指定された同一優先度の前記第1のプロセッサのラダー処理と、前記第2のプロセッサのタスク処理は、その処理周期内で双方の処理が同時に実行される期間を含む並列処理とされることを特徴とするコントローラ。ラダー処理を実行する第1のプロセッサと、タスク処理を実行する第2のプロセッサとを備え、複数のラダー処理と複数のタスク処理について、処理の優先度に応じてラダー処理とタスク処理の組み合わせを定めておき、処理の優先度ごとに定められた処理周期での割り込みを行い、割り込みに応じて、当該優先度でのラダー処理を前記第1のプロセッサで行い、当該優先度でのタスク処理を前記第2のプロセッサで行い、割り込みの優先度ごとの処理周期内に、当該優先度でのタスク処理と、当該優先度でのラダー処理を完了することを特徴とタスクとラダーの処理方法。請求項9に記載のタスクとラダーの処理方法において、処理の優先度ごとの処理周期は、処理の優先度が上位であるほど短い処理周期とされていることを特徴とするタスクとラダーの処理方法。請求項9又は請求項10に記載のタスクとラダーの処理方法において、処理の優先度ごとの処理周期の期間内に、実行中の優先度よりも上位の優先度の第2の割り込みで発生したときに、第1のプロセッサと第2のプロセッサは、第2の割り込みで定まる優先度のラダー処理とタスク処理を実行し、前記上位の優先度の第2の割り込みで定まる処理の完了後に、第2の割り込み発生前に実行中の処理を再開し、指定された割り込みの優先度ごとの処理周期内に、当該優先度でのタスク処理と、当該優先度でのラダー処理を完了することを特徴とするタスクとラダーの処理方法。請求項9から請求項11のいずれか1項に記載のタスクとラダーの処理方法において、前記第1のプロセッサが、ラダー処理の実行中に異常が発生したことを検知したとき、前記第2のプロセッサは、当該優先度のタスク処理を実行すると共に、次回割り込み時の当該優先度のラダー処理についての処理の可否を決定することを特徴とするタスクとラダーの処理方法。請求項9から請求項12のいずれか1項に記載のタスクとラダーの処理方法において、前記第1のプロセッサは、一連のラダー命令に従いラダー処理を実行すると共に、実行できないラダー命令を検出した際には、ラダー処理を一時停止し、前記第2のプロセッサは、前記停止したラダー命令をソフト処理により実行し、前記第1のプロセッサは、ラダー処理を停止したアドレスの次の番地から継続してラダー処理を再開することを特徴とするタスクとラダーの処理方法。請求項9から請求項13のいずれか1項に記載のタスクとラダーの処理方法において、前記第1のプロセッサはハードウェアで構成され、前記第2のプロセッサは、ソフトウェアで構成されていることを特徴とするタスクとラダーの処理方法。請求項9から請求項14のいずれか1項に記載のタスクとラダーの処理方法において、割り込みにより指定された同一優先度の前記第1のプロセッサのラダー処理と、前記第2のプロセッサのタスク処理は、その処理周期内で一方の処理が完了後に他方の処理を実行する直列処理とされることを特徴とするタスクとラダーの処理方法。請求項9から請求項15のいずれか1項に記載のタスクとラダーの処理方法において、割り込みにより指定された同一優先度の前記第1のプロセッサのラダー処理と、前記第2のプロセッサのタスク処理は、その処理周期内で双方の処理が同時に実行される期間を含む並列処理とされることを特徴とするタスクとラダーの処理方法。上記の特許文献による処理では、以下の問題に対応することができない。第1に、複数の組のラダー処理を実行させることができていない。上記の、ラダー処理プロセッサを持ちラダー処理の実行を行うコントローラでは、1組のラダー処理を周期的に実行し、ラダー処理実行の空いた時間でラダー処理以外のタスクの実行を行っているにすぎない。第2に、タスクを先に実行させ、タスク処理からラダー処理を呼び出して動作させること、あるいは1つのタスクから複数のラダー処理を呼び出すといったことができない。これは、マイクロプロセッサが実行するタスク処理とラダー処理を組み合わせて動作させた場合は、マルチタスク処理等で発生するタスクの中断等により、タスクの演算時間が延びた場合にラダー処理のリアルタイム演算所定の時間内に演算終了することを保障するができないからである。第3に、ラダー処理、または、タスク処理において異常を検出した場合、コントローラ自体を停止させるためコントローラとしての可用性が低いことが問題であった。本発明では、前記した問題を解決し、複数の組のラダー処理の実行とタスク処理を優先順位に応じたマルチタスクスケジューリングを実現するコントローラ、およびタスクとラダーの処理方法を提供することを目的とする。前記課題を解決するために、本発明のコントローラでは、ラダー処理を実行する第1のプロセッサと、タスク処理を実行する第2のプロセッサと、プログラムとしてラダー処理のための複数のラダープログラムとタスク処理のための複数のタスクプログラムを収納する主メモリを備え、複数のラダープログラムと複数のタスクプログラムについて、処理の優先度に応じてラダープログラムとタスクプログラムの組み合わせを定めておき、第2のプロセッサは、処理の優先度ごとの処理周期での割り込みに応じて、当該優先度でのラダープログラムの実行を前記第1のプロセッサに指示し、第1のプロセッサは、第2のプロセッサの指示に従って主メモリ内のラダープログラムから当該優先度のラダープログラムを得、これに従ってラダー処理を実行し、第2のプロセッサは、主メモリ内のタスクプログラムから当該優先度のタスクプログラムを得、これに従ってタスク処理を実行し、指定された割り込みの優先度ごとの処理周期内に、当該優先度でのタスクプログラムによるタスク処理と、当該優先度でのラダープログラムによるラダー処理を完了する。また、処理の優先度ごとの処理周期は、処理の優先度が上位であるほど短い処理周期とされている。また、第2のプロセッサは、割り込みの新たな発生を監視して、実行中の優先度よりも上位の優先度の第2の割り込みであることを検知し、第1のプロセッサおよび、または第2のプロセッサは、実行中のプログラムを用いた処理を中断して、上位の優先度の第2の割り込みで定まるプログラムを用いた処理を実行し、第1のプロセッサおよび、または第2のプロセッサは、上位の優先度の第2の割り込みで定まるプログラムを用いた処理の完了後に、第2の割り込み発生前に実行中のプログラムを用いた処理を再開し、指定された割り込みの優先度ごとの処理周期内に、当該優先度でのタスクプログラムによるタスク処理と、当該優先度でのラダープログラムによるラダー処理を完了する。また、第1のプロセッサは、ラダー処理の実行中に異常が発生したことを検知して第2のプロセッサに報告し、第2のプロセッサは、当該優先度のタスク処理を実行すると共に、次回割り込み時の当該優先度のラダー処理についての処理の可否を決定する。また、主メモリに収納されたラダー処理のためのラダープログラムは、複数の一連のラダー命令で構成され、第1のプロセッサは、ラダー命令に従い当該のラダー処理を実行すると共に、実行できないラダー命令を検出した際には、ラダー処理を一時停止し、第2のプロセッサは、停止したラダー命令を実行し、第1のプロセッサは、第2のプロセッサにおける停止したラダー命令の実行後に、ラダー処理を停止したアドレスの次の番地から継続してラダー処理を再開する。また、第1のプロセッサはハードウェアで構成され、第2のプロセッサは、ソフトウェアで構成されている。また、割り込みにより指定された同一優先度の第1のプロセッサのラダー処理と、第2のプロセッサのタスク処理は、その処理周期内で一方の処理が完了後に他方の処理を実行する直列処理とされる。また、割り込みにより指定された同一優先度の第1のプロセッサのラダー処理と、第2のプロセッサのタスク処理は、その処理周期内で双方の処理が同時に実行される期間を含む並列処理とされる。前記課題を解決するために、本発明のタスクとラダーの処理方法では、ラダー処理を実行する第1のプロセッサと、タスク処理を実行する第2のプロセッサとを備え、複数のラダー処理と複数のタスク処理について、処理の優先度に応じてラダー処理とタスク処理の組み合わせを定めておき、処理の優先度ごとに定められた処理周期での割り込みを行い、割り込みに応じて、当該優先度でのラダー処理を第1のプロセッサで行い、当該優先度でのタスク処理を第2のプロセッサで行い、割り込みの優先度ごとの処理周期内に、当該優先度でのタスク処理と、当該優先度でのラダー処理を完了する。また、処理の優先度ごとの処理周期は、処理の優先度が上位であるほど短い処理周期とされている。また、処理の優先度ごとの処理周期の期間内に、実行中の優先度よりも上位の優先度の第2の割り込みで発生したときに、第1のプロセッサと第2のプロセッサは、第2の割り込みで定まる優先度のラダー処理とタスク処理を実行し、上位の優先度の第2の割り込みで定まる処理の完了後に、第2の割り込み発生前に実行中の処理を再開し、指定された割り込みの優先度ごとの処理周期内に、当該優先度でのタスク処理と、当該優先度でのラダー処理を完了する。また、第1のプロセッサが、ラダー処理の実行中に異常が発生したことを検知したとき、第2のプロセッサは、当該優先度のタスク処理を実行すると共に、次回割り込み時の当該優先度のラダー処理についての処理の可否を決定する。また、第1のプロセッサは、一連のラダー命令に従いラダー処理を実行すると共に、実行できないラダー命令を検出した際には、ラダー処理を一時停止し、第2のプロセッサは、停止したラダー命令をソフト処理により実行し、第1のプロセッサは、ラダー処理を停止したアドレスの次の番地から継続してラダー処理を再開する。また、第1のプロセッサはハードウェアで構成され、第2のプロセッサは、ソフトウェアで構成されている。また、割り込みにより指定された同一優先度の第1のプロセッサのラダー処理と、第2のプロセッサのタスク処理は、その処理周期内で一方の処理が完了後に他方の処理を実行する直列処理とされる。また、割り込みにより指定された同一優先度の第1のプロセッサのラダー処理と、第2のプロセッサのタスク処理は、その処理周期内で双方の処理が同時に実行される期間を含む並列処理とされる。本発明によれば、リアルタイム演算において複数の組のラダー処理を実行することが可能となる。また本発明の実施例によれば、1つの組のラダー処理が異常となった場合においても、該当のラダー処理のみを停止することで、他の組のラダー処理は影響を受けず継続してラダー処理を実行でき可用性を向上させることができる。以下本発明の実施例を、図面を用いて説明する。最初に、本発明のコントローラで実現する処理の概念について図2を用いて説明する。これは、複数の周期で動作するラダー処理を1つの環境でマルチタスク動作させるための考え方を示している。ここでは、複数のラダー処理が優先度に応じて区別されている。優先度が1位のラダー処理ラダー1に対して、タイマー1による割り込み周期T1が設定されており、タイマー1による割り込みの都度、優先度1位のラダー処理ラダー1が実行される。以下同様に、優先度が2位のラダー処理ラダー2に対して、タイマー2による割り込み周期T2が設定されており、タイマー2による割り込みの都度、優先度2位のラダー処理ラダー2が実行される。また、優先度が3位のラダー処理ラダー3に対して、タイマー3による割り込み周期T3が設定されており、タイマー3による割り込みの都度、優先度3位のラダー処理ラダー3が実行される。なお、タスク処理も優先度に応じて区別されており、各優先度のラダー処理実行後にタスク処理が実行される。また、優先度が高いほど、タイマーによる割り込み周期Tが短く設定されている。従って、図2において例えば時刻t1から優先度が3位のラダー処理ラダー3実行中に、時刻t2においてタイマー2による割り込みが発生した場合、これを中断して優先度が2位のラダー処理ラダー2の実行に移る。また、この優先度が2位のラダー処理ラダー2に続くタスク2の実行中に、時刻t3においてタイマー1による割り込みが発生した場合、これを中断して優先度が1位のラダー処理ラダー1の実行に移る。また、優先度が2位のラダー処理ラダー2に続くタスク2の残余部分の実行は、上位割り込みによるラダー処理ラダー1とこれに続くタスク1が完了した時刻t4のタイミング以降に実行される。同様に、優先度が3位のラダー処理ラダー3の残余部分とこれに続くタスク3の実行は、上位割り込みによるラダー処理ラダー2とこれに続くタスク2が完了した時刻t5のタイミング以降に実行される。なお、図2の時刻t6から時刻t9の間でも上位割り込みが発生し、この間下位側が待機している状況が発生している。この部分の動作説明については、上記説明から容易に理解できることなので説明を省略する。図1は、図2の処理を実現する為のコントローラの全体構成を示している。コントローラ1は、マイクロプロセッサ2、ラダー処理プロセッサ3、主メモリ4、並びにこれらを相互に接続するバス5で構成される。このうち、主メモリ4は、管理ソフトウェア41、タスクプログラム42、タスク管理テーブル43、ラダープログラム44、ラダー管理テーブル45を含む。このように図1には、マイクロプロセッサ2と、ラダー処理プロセッサ3を備えており、これらそれぞれのプロセッサは以下の役割を担う。まず、ラダー処理プロセッサ3は、ラダー命令で記述されたラダープログラム44を実行する専用のプロセッサである。本発明では、ハードウェアで命令を解釈し実行する。このために、ラダープログラム44内のラダー命令はラダー処理プロセッサ3に取り込まれ使用される。他方、マイクロプロセッサ2は、ラダープログラム44で処理できないような複雑な処理ネットワーク通信処理、I/Oデバイス制御処理、二重化構成制御などを、例えばC言語を用いてプログラムし、そのプログラムを実行するプロセッサである。マイクロプロセッサ2は、基本的に管理ソフトウェア41であるOSが動作している。OSはタスクプログラム42を用いて、タスク管理テーブル43内のタスクのマルチタスクスケジューリングを行い、タスクを制御する。このため、タスク管理テーブル43内のタスクは、マイクロプロセッサ2に取り込まれ使用される。本発明では、このマルチタスクスケジューリングとラダー処理の起動停止を連携させ動作させる。このためマイクロプロセッサ2は、ラダー処理プロセッサ3に対して、ラダー処理の実行起動と停止を指示する。また、ラダー処理プロセッサ3は、指示に応じたラダー処理の完了後に、ラダー処理の終了を報告する。また、ラダー処理プロセッサ3は、ラダー命令の実行を監視しており、異常停止したこと、或いは処理遅延などの異常をマイクロプロセッサ2に報告する。また、ラダー処理プロセッサ3がハードウェアで実行できないラダー命令を検出した場合には、検出場所でラダー処理実行を停止し、マイクロプロセッサ2のソフトウェアに連絡する。連絡を受けたマイクロプロセッサ2上のソフトウェアはラダー処理の実行を行い、ラダー処理実行後ラダー処理プロセッサ3の再開を指示する。或いは、原因が特定されるまで以降の当該優先度のラダー処理を停止するなどの処理を実行する。なお、マイクロプロセッサ2におけるタスクの実行は、図2の例では同一優先度のラダー処理の実行後に行われる。従って、ラダー処理プロセッサ3のラダー処理終了報告を受けてから、この優先度のタスク処理が実行される運びになる。本発明のコントローラ1においては、上記したようにラダー処理プロセッサ3とマイクロプロセッサ2が連携している。このように、ラダー処理プロセッサ3、マイクロプロセッサ2の2つのプロセッサを持つことにより、C言語で記述されたプログラムを実行中に、ラダー処理をラダー処理プロセッサで平行して動作させることもできる。並行処理する事例については後で図10を用いて説明する。なお、ラダー処理をラダー処理プロセッサ3とハードウェアで実行してもよく、インタプリタのようにソフトウェア的に実行することも考えられる。この処理については種々実現可能である。図1のラダー処理プロセッサ3と主メモリ4の各部の詳細が図3に記載されているので、これらの詳細構成を図3で説明する。図3において、まずラダー処理プロセッサ3の内部には、プログラムカウンタ31、管理テーブル番号32、ワークレジスタ33、ラダー制御レジスタ34、実行ステータス35などを備えている。これらが如何なる機能を果たすのかは、以後の動作説明の中で明らかにする。また図3において、主メモリ4内のタスクプログラム42の記憶エリア内には図2で説明した優先度別のタスクが記憶されている。ここでは、タスク1が421、タスク2が422、タスク3が423で表示されている。これらのタスクはC言語で記述されており、マイクロプロセッサ2に読み込まれて使用される。主メモリ4内のタスク管理テーブル43の記憶エリア内には、タスクプログラム42内の各タスクの管理テーブルが設けられている。ここでは、タスク1の管理テーブルが431、タスク2の管理テーブルが432、タスク3の管理テーブルが433で表示されている。また図3において、主メモリ4内のラダープログラム44の記憶エリア内には図2で説明した優先度別のラダーが記憶されている。ここでは、ラダー1が441、ラダー2が442、ラダー3が443で表示されている。これらのラダーは、ラダー処理プロセッサ3に読み込まれて使用される。主メモリ4内のラダー管理テーブル45の記憶エリア内には、ラダープログラム44内の各ラダーの管理テーブルが設けられている。ここでは、ラダー1の管理テーブルが451、ラダー2の管理テーブルが452、ラダー3の管理テーブルが453で表示されている。ラダープログラム44内の具体的な記憶内容が図4に示されている。ここでは、例えばラダー3L3が、複数の一連のラダー命令ここではL31からL3nまでで構成されていることがわかる。他のラダーL1、L2も同様に複数の一連のラダー命令で構成されている。また図2において、各周期内でのラダー処理では、一時中断されることがあるにしても、この複数の一連のラダー命令の全てが同一周期内で実行される必要がある。従って、各ラダーの管理テーブル451、452、453では、複数の一連のラダー命令について現在時点での処理内容、処理順番を記憶管理することになる。なお、図示していないが、タスクプログラム42内の各タスクも基本的には、図4のラダーのように構成されている。例えばタスク1は、複数の一連のタスク命令で構成されている。タスク命令についても各周期内でのタスク処理では、一時中断されることがあるにしても、この複数の一連のタスク命令の全てが同一周期内で実行される必要がある。従って、各タスクの管理テーブル431、432、433では、複数の一連のタスク命令について、現在時点での処理内容、処理順番を記憶管理することになる。図3、図4に示すようにラダー処理プロセッサ3あるいは主メモリ4内各部が構成されている。係る前提の構成において、コントローラ1は以下のように作動する。コントローラ1全体としての処理手順を図5に示す。まずマイクロプロセッサ2は、ラダープログラムを先頭から動作させるとき、以下の手順でラダー処理プロセッサ3を起動する。まずステップS100では、タイマーによる割り込みの受理と内容解析を行い、例えばこれが優先度3の割り込みであることを確認する。このことのために、マイクロプロセッサ2内には、タイマー種別と、優先度と、このときのラダー処理並びにタスク処理の関連が例えば表形式で記憶されている。図6がこの表の一例であり、タイマー1が優先度1で、ラダー1並びにタスク1を実行する。同様にタイマー2が優先度2で、ラダー2並びにタスク2を実行し、タイマー3が優先度3で、ラダー3並びにタスク3を実行するという関係にある。因みにこの表には、ラダー並びにタスクに関連して、このプログラムを収納する主メモリ4内のアドレスが記憶されているのが望ましい。ステップS101では、この割り込みが優先度下位の処理実行中に生じた上位割り込みかどうか確認する。上位割り込みであるときステップS102、上位割り込みでないときにステップS103の処理に入る。この場合には優先度3の実行なので、上位割り込みではない。ステップS103において、マイクロプロセッサ2はラダー処理プロセッサ3起動準備のための各種設定を実行する。ここでは、最初に主メモリ4に格納されているラダープログラム44の実行すべきアドレス401を、図3に示すラダー処理プロセッサ3のプログラムカウンタ31に設定する。例えば、図4のラダーL3を先頭から動作させようとするときには、これを収納する443内の最初のラダー命令L31の格納位置を示すアドレスを設定する。次に、使用する管理テーブル402の番号例えばラダー3管理テーブル453を、ラダー処理プロセッサ3の管理テーブル番号32に設定する。また、ワークレジスタ33のクリアを行い、以後の処理に備える。ステップS104では、マイクロプロセッサ2による以上の設定処理を受けて、ラダー処理プロセッサ3は、マイクロプロセッサ2に指定されたアドレス401からラダープログラムを読み込み、ラダー処理を実行し、順次の命令図4の複数の一連のラダー命令を読み込み、ラダー処理を実行する。一方、マイクロプロセッサ2側では引き続き割り込み監視を継続しており、上位割り込みが発生し、ステップS102の処理が実行されたものとする。このとき、マイクロプロセッサ2は、ラダー処理の停止をするために、ラダー処理プロセッサ3のラダー制御レジスタ34に停止指示を行う。ラダー処理プロセッサ3では、ラダー処理ステップS104での逐次命令の処理を継続しながら、ステップS105において停止指示を確認している。この停止指示を受けたときに、ラダー処理プロセッサ3がラダー処理実行中である場合、ラダー処理プロセッサ3のプログラムカウンタ31は、図4に示すラダー処理の途中で停止する。つまり、下位ラダーを停止し、この状態を保持する。例えば、図4のラダーL3を先頭から実行しており、ラダー命令L3mの格納位置まで進んだところでラダー制御レジスタ34に停止指示を受けたとすると、プログラムカウンタ31にはこのラダー命令L3mの格納エリアを示すアドレスが設定され、記憶される。係る停止状態は、図2の処理の流れにおいて、時刻t2でラダー3が上位割り込みを受けた状態に相当する。ステップS107では、上位割り込みによる上位のラダー処理、タスク処理が実行される。つまり、図5において、ステップS103の設定から始まり、ラダー処理ステップS104、タスク処理ステップS111までの一連の上位の処理が新たに実行される。ここでは、この全てが滞りなく処理されて、処理ステップS108に至ったものとする。なお、上位割り込み発生時及び上位割り込み回復時のラダー処理プロセッサ3の具体的な内部処理については、後で図13を参照して説明する。この回復状態は、例えば図1の時刻t2から始まったラダー3の停止状態が、時刻t5になりラダー3に対する上位割り込みが解除されたときに相当する。処理ステップS108では、ラダー処理を再開する。このときマイクロプロセッサ2は、ラダー処理の再実行指示を、ラダー制御レジスタ34に設定する。これを受けてラダー処理プロセッサ3はラダー処理を再開する。このときに、停止時にプログラムカウンタ31に記憶されたラダー命令L3mの格納エリアを示すアドレスが参照され、ここから再実行がされることは言うまでもない。ステップS108での再開準備完了後は、ステップS104に移り、残余のラダー処理を継続する。なお、ステップS105で、停止が指示されない場合、ラダー命令は図4のラダー終了命令L3nまでラダー処理を実行する。ステップS109において、ラダー終了命令L3nを検出すると、ラダー処理プロセッサ3によるラダー処理は停止し、実行ステータス35にラダー処理終了のステータスを設定して完了する。ステップS110では、これを受けてラダー処理プロセッサ3は、マイクロプロセッサ2に処理の完了を報告する。ステップS111でマイクロプロセッサ2は、この優先度のタスクを主メモリ4のタスクプログラム42から導入して、タスク処理を実行する。この場合には、タスク3が実行される。タスク3の実行完了をもって最初に設定された優先度3の割り込みに対するラダーとタスクに関する一連の処理が完了する。図7は、マルチタスクスケジューリングの優先度に従ったラダー処理のスケジューリングの例を示す。この例は、ラダー処理とタスク処理の直列実行を行う場合である。本説明では優先度の若い数値の方が、優先度が高いものとして説明する。タスク421とラダー441が優先度1、タスク422とラダー442が優先度2、タスク423とラダー443が優先度3に設定されている。このラダー処理とタスク処理の組み合わせは、図6に示すように優先度を持たせ関連付けて動作させる。そして、より優先度の高いタスクが動作可能状態となったとき、実行中のラダー処理を停止し、優先度の高いタスクと関連付けされたラダー処理を起動する。優先度の高いタスク、ラダー処理の動作が完了した後、割り込まれたラダー処理は中断された番地から継続して処理を実行する。図7の場合には、時刻t10のタイマー3割り込みによりラダー3処理443の実行が開始される。ラダー3処理443実行中に、時刻t11のタイマー2割り込みにより、より優先度の高いラダー2処理442へ切り替えを行うため、ラダー3処理443を停止し、ラダー2処理442を実行する。優先度の高いラダー2処理後は、引き続き優先度の高いタスク2処理422を実行する。その途中に、時刻t12のタイマー1割り込みにより、より優先度の高いラダー1処理441へ切り替えを行い、ラダー1処理441、タスク1処理421を行う。時刻t13のタスク1終了後、待ち状態であったタスク2処理422を再開する。時刻t14のタスク2処理422の終了後、待ち状態であったラダー3処理443を再開し、その後、タスク3処理が実行される。図8のマルチタスクスケジューリングの例では、ラダー処理プロセッサ3におけるラダー処理中に、異常発生を検知してこれをマイクロプロセッサ2に報告したときの処理を示している。図5処理ステップS112から処理ステップS115には、この場合の処理フローが記載されている。この図8の例では、時刻t20での割り込みによるラダー3の処理443を実行中に、異常発生4431した。このことは、図5の処理ステップS112で検知されラダー処理プロセッサ3がこれを検出して時刻t21においてマイクロプロセッサ2に報告処理ステップS113したとする。この場合に、マイクロプロセッサ2は、異常発生となったラダー3の処理443について次周期実行時、スケジューリングから外し実行を行わない処理ステップS114事を決定する。なお、この優先度のタスク処理は、今回も次回以降も引き続き実行する。つまり、マイクロプロセッサ2でのタスク処理423は異常発生側のラダー処理プロセッサ3と独立に実行可能であるので、このタスク処理のみ継続実行する。マイクロプロセッサ2は、割り込み時刻t20から周期T3経過後の割り込み時刻t26の処理では、ラダー処理3をマルチタスクスケジューリングの対象から除外している。このようにすることで、該当のラダー3処理443のみを停止することが可能となり、他のラダー処理への影響はなくなり、さらに優先度の高いラダー処理441、442の定周期性が保障される。但し、異常を検出した次周期以降の処理については、図9に示すようにラダー3処理443、タスク3処理423を実行することも可能である。この場合には、割り込み周期T3の間にラダー3処理443の健全性が確認されていることが望ましい。図2、図7、図8、図9は、同一優先度のラダー処理とタスク処理をこの順番で直列に実行する説明図であるが、本発明ではラダー処理プロセッサ3とマイクロプロセッサ2を有し、それぞれが処理を分担しているため、ラダー処理とタスク処理は同時刻に並列で実行することも可能である。図10では、各優先度において、ラダー処理とタスク処理を並列に実行している。この場合、同じ優先度のラダー処理とタスク処理は割り込みにより同じタイミングで処理開始するが、それぞれの処理時間長は一般には相違する。このため、上位割り込みによりラダー処理側が中断する場合時刻t31での割り込みと、タスク処理側が中断する場合時刻t32での割り込みとが発生し得る。この場合の中断並びに再開処理は、ラダー処理プロセッサ3とマイクロプロセッサ2で個別に準備され、実行されることになる。また図11で示すように、基本的にはラダー処理とタスク処理をこの順番で直列に実行しながら、上位割り込みが発生した側の処理のみを遅らせ、あるいは中断させることもできる。図11の例では、基本的にラダー処理とタスク処理は、この順番で直列に実行している。これは、時刻t40、t41、t45、t49の処理から明らかであり、優先度の高い処理が存在しない状態ではこの関係が維持されている。ラダー3について、優先度の高いラダー2の割り込み時刻t41により、時刻t41からt42の期間中断して、その後t43に一連の処理を完了する。図7などの例では、ラダー処理終了に続いてタスク3が開始されるタイミングになるが、図11では優先度の高いタスク2の終了まで開始が遅れている。また開始後も、より上位のタスク1の処理期間t46-t47中断する。また、図7では、タイマー割り込みにより、ラダー処理が実行され、その後タスク処理の実行の順番で実行を行う説明図であるが、この順番に限定する必要はなく、図12に示すように、タイマー割り込みにより、タスク処理が実行され、その後ラダー処理の実行を順番で実行してもよい。また、図7の説明図において、タイマー割り込みから、複数のラダー処理の実行を行ってもよく、図12の説明図において、1つのタスク処理から、複数のラダー処理の実行を行ってもよい。図5の処理フローのステップS107の説明において、上位割り込み、さらには上位割り込み解除のときのラダー処理プロセッサ3の設定の説明を後述することにしていた。図13を用いて、優先度の低いラダー3処理から、より優先度の高いラダー2処理への切り替えを行うときの具体的な処理内容について説明する。図13は、基本的に図3と同じ回路部分ラダー処理プロセッサ3、主メモリ4を主体に記載しているが、説明の都合上ラダープログラムのみ記述した点と、ワークレジスタ33の内容を記述した点で相違している。ここでは、ラダー3処理443を実行中、より優先度の高いラダー2処理442が動作可能状態となったとする。マイクロプロセッサ2は、ラダー3処理443のラダー処理を停止するよう、ラダー制御レジスタ34にラダー処理停止の指示を行う。ラダー処理停止の指示を受けたラダー処理プロセッサ3は、実行中のラダー処理を停止する。停止したときのラダー処理プロセッサ3のプログラムカウンタ31がアドレス404ラダー命令L3m1を指しているとする。プロセッサ2は、プログラムカウンタ31とワークレジスタ33の内容を管理テーブル番号32が指し示すラダー3管理テーブル453へ退避する。次に実行すべきラダー2処理442の、管理テーブル番号を管理テーブル番号32へ設定し、ラダー2管理テーブル452からプログラムカウンタ21、ワークレジスタ33を回復し、ラダー2処理を実行する環境を整える。ラダー制御レジスタ34にラダー処理実行の指示を行うことでラダー2処理442を実行する。ラダー2処理の実行終了後、プロセッサ2は、実行待ちとなっているラダー3処理423の、管理テーブル番号を管理テーブル番号32へ設定し、ラダー3管理テーブル453から退避していたプログラムカウンタ21、ワークレジスタ33を回復し、ラダー3処理を実行する環境を整える。このときプログラムカウンタは退避していたアドレス404を指し、ワークレジスタは演算中のレジスタ値となる。ラダー制御レジスタ34にラダー処理実行の指示を行うことでラダー3処理443をアドレス404から再開する。図1において、ラダー処理プロセッサ3の処理が命令解読不能により実行不可能状態に陥ったときに、これをマイクロプロセッサ2に報告し、マイクロプロセッサ2がソフト処理することについて説明した。図14は、ソフト実効命令の検出時の、ソフト実行手順を示す。ラダー処理プロセッサ3は、主メモリ4のラダープログラム44を用いて、優先度3のラダー3を読み込み実行中に、ラダー命令L3mの解読不能により実行不可能状態に陥ったとする。ラダー処理プロセッサ3は、ソフト実行の命令を検出したときは、アドレス405にてラダー処理を停止し、ラダー命令L3mにこれがソフト実効命令の対象であることと、この時の各種のパラメータを保持する。またマイクロプロセッサ2に対して割り込みを行うか、あるいは実行ステータス35を用いてプロセッサ2に対してソフト実効命令の検出を知らせる。マイクロプロセッサ2は、ソフト実効命令の連絡を受け、主メモリ4のラダープログラム44のアドレス405からソフト実効命令の読み出し、パラメータの読み出しを行い、プログラムカウンタ31を406ラダー命令L3m1にする。そのうえで、ラダー命令L3mに対するソフト実効命令、パラメータによりソフト処理を行い、ソフト処理が終了した時点で、ラダー制御レジスタ34に起動指示を行い、再びアドレス406ラダー命令L3m1からラダー処理を継続する。図15は、マイクロプロセッサ2におけるソフト処理を行うときの各部処理内容を示す図である。この図で、横方向にはマイクロプロセッサ2、ラダー処理プロセッサ3、主メモリを示し、縦方向には時間を示している。この図によれば、マイクロプロセッサ2は時刻t100の割り込みを受けて、ラダー処理プロセッサ3を起動時刻t101する。以後ラダー処理プロセッサ3は、メモリ4内のラダー命令を逐次取り込んで処理を進める。この間の処理では、ラダー処理プロセッサ3とメモリ4の間でラダー演算データの入出力を行っている。これに対し、実行できないラダー命令が生じると、ラダー処理プロセッサ3は時刻t102でマイクロプロセッサ2に対してソフト処理を要求する。マイクロプロセッサ2は、改めてメモリ4にアクセスし、メモリ4の間でラダー演算データの入出力を行ない、ラダー命令のソフト処理を実行する。ラダー命令のソフト処理を完了すると、時刻t03においてソフト処理完了をラダー処理プロセッサ3に通知する。ラダー処理プロセッサ3は、再度メモリ4内のラダー命令を逐次取り込んで処理を進める。このときに再開するラダー命令は、中断し、マイクロプロセッサ2でソフト処理されたラダー命令の次の順番のラダー命令とされる。このために、再開以後の処理では、再度ラダー処理プロセッサ3とメモリ4の間でラダー演算データの入出力を行っている。ラダー処理プロセッサ3は、ラダー終了命令までの一連のラダー処理を実行完了した時点t104でラダー処理完了をマイクロプロセッサ2に報告し、以後マイクロプロセッサ2における同じ優先度レベルのタスク処理を実行する。タスク処理では、マイクロプロセッサ2は、改めてメモリ4にアクセスし、メモリ4の間でタスク処理データの入出力を行ない、タスク命令のソフト処理を実行する。以上述べたように、本発明ではラダー処理プロセッサ3とマイクロプロセッサ2にタスクとラダーの処理を分散し、かつ優先度に応じて処理するタスクとラダーの組み合わせを変更したことにより、コントローラの同一環境下でマルチタスクスケジューリングが可能である。