制御対象に対する制御内容を指示する指示情報を出力するプロセッサと、前記制御対象の機能安全の確保に関する処理を実行する安全関連タスク、及び、その他の前記制御対象の制御に関する処理を実行する通常制御タスクに対する前記プロセッサの実行時間の割り当てを制御するシステムプログラムと、キャリア信号を生成する信号生成部と、前記信号生成部が生成したキャリア信号の第1の所定周期毎に、前記制御対象に対する制御内容を、前記プロセッサから出力された指示情報が指示する制御内容に更新して、更新した制御内容で前記制御対象に対するPWM制御を行う制御部と、前記信号生成部が生成したキャリア信号の第2の所定周期毎に、前記プロセッサに対する割り込み信号を生成して、前記プロセッサに出力する割り込み信号生成部と、を備え、前記プロセッサは、前記システムプログラムを実行することによって、前記安全関連タスクに前記実行時間が割り当てられる安全関連タイムパーティション、及び、前記通常制御タスクに前記実行時間が割り当てられる通常制御タイムパーティションのスケジューリング内容を示すスケジューリング情報に従って、前記タスクをスケジューリングし、前記プロセッサは、前記システムプログラムを実行することによって、前記割り込み発生部からの割り込み信号の出力に応じて、前記タイムパーティションを切り替え、前記プロセッサは、前記通常制御タスク又は前記安全関連タスクを実行することによって、前記指示情報を前記制御部に出力する安全制御装置。前記信号生成部は、前記キャリア信号を、それぞれの位相が異なるように複数生成する請求項1に記載の安全制御装置。前記信号生成部は、前記複数のキャリア信号から前記割り込み信号生成部によって生成される複数の割り込み信号において、第1の割り込み信号の出力から当該第1の割り込み信号の次の第2の割り込み信号の出力までの期間と、当該第2の割り込み信号の出力から当該第2の割り込み信号の次の第3の割り込み信号の出力までの期間とが異なるように、前記複数のキャリア信号を異なる位相で生成する請求項2に記載の安全制御装置。前記プロセッサは、前記通常制御タスクを実行することによって、前記指示情報を生成し、前記プロセッサは、前記安全関連タスクを実行することによって、前記通常制御タスクが生成した指示情報を前記制御部に出力するとともに、当該指示情報が異常である場合に、当該指示情報の出力を抑止する請求項1乃至3のいずれか1項に記載の安全制御装置。前記プロセッサは、前記安全関連タスクを実行することによって、前記指示情報を生成し、前記プロセッサは、前記通常制御タスクを実行することによって、前記安全関連タスクが生成した指示情報を前記制御部に出力する請求項1乃至3のいずれか1項に記載の安全制御装置。キャリア信号の第1の所定周期毎に、制御対象に対する制御内容を、生成した指示情報が指示する制御内容に更新して、更新した制御内容で前記制御対象に対するPWM制御を行う安全制御方法であって、前記キャリア信号の第2の所定周期毎に、プロセッサに対する割り込みを発生するステップと、前記割り込みの発生に応じて、前記制御対象の機能安全の確保に関する処理を実行する安全関連タスクに前記プロセッサの実行時間が割り当てられる安全関連タイムパーティション、及び、その他の前記制御対象の制御に関する処理を実行する通常制御タスクに前記実行時間が割り当てられる通常制御タイムパーティションのスケジューリング内容を示すスケジューリング情報に従って、前記タイムパーティションを前記安全関連タイムパーティション又は前記通常制御タイムパーティションに切り替えるステップと、前記スケジューリング情報に従って、前記タスクをスケジューリングして、前記切り替え後の安全関連タイムパーティション又は通常制御タイムパーティションにおける安全関連タスク又は通常制御タスクに前記実行時間を割り当てるステップと、前記実行時間を割り当てられた通常制御タスク又は安全関連タスクを実行することによって、前記指示情報を生成するステップと、を備えた安全制御方法。サービスロボット及び輸送機器等を制御するアクチュエータとしてモータがある。ここで、図21を参照して、そのようなモータを制御する制御装置の一例について説明する。図21に示す制御装置は、主制御ECUEngineControlUnit、モータアンプサーボパックECUを有する。主制御ECUと、モータアンプECUとは、高速通信線又はアナログ伝送路によって相互に接続される。主制御ECUは、クロック信号に基づいて動作する。主制御ECUは、モータアンプECUに対して、モータの制御内容を指示するサーボ指令値を出力する。モータアンプECUは、主制御ECUから出力されたサーボ指令値が指示する制御内容に基づいて、モータを制御するPWM信号を生成して、モータに出力する。モータアンプECUは、キャリア信号の1周期毎のタイミングで、主制御ECUからの指示内容をPWM信号に反映する。また、モータアンプECUは、モータを監視することによって異常を検出して、機能安全を確保するためのモータの制御を行う。このように、図21に示す制御装置は、通常制御を行う主制御ECUと、機能安全を確保するための制御を行うモータアンプECUが独立している。そのため、モータアンプECUは、主制御ECUの異常に影響されずに、機能安全を確保するための制御を行うことができ、一定の安全性が確保されていた。しかし、上述した制御装置には、以下に説明するような課題があった。主制御ECUは、クロック信号を基準として約1msec周期で、モータの制御内容を指示する動作をしている。それに対して、モータアンプECUは、キャリア信号を基準として約30usec周期で、主制御ECUからの指示内容をPWM信号に反映する動作をしている。そのため、主制御ECUは、モータの制御周期に同期してモータを制御することができていないという問題があった。つまり、モータの制御周期に対して、モータの制御内容の指示が大幅に遅延してしまっていた。本発明は、上述した知見に基づいてなされたものであって、安全性を維持しつつ、制御対象の制御周期に同期した制御を行うことができる安全制御装置及び安全制御方法を提供することを目的とする。本発明の第1の態様にかかる安全制御装置は、制御対象に対する制御内容を指示する指示情報を出力するプロセッサと、前記制御対象の機能安全の確保に関する処理を実行する安全関連タスク、及び、その他の前記制御対象の制御に関する処理を実行する通常制御タスクに対する前記プロセッサの実行時間の割り当てを制御するシステムプログラムと、キャリア信号を生成する信号生成部と、前記信号生成部が生成したキャリア信号の第1の所定周期毎に、前記制御対象に対する制御内容を、前記プロセッサから出力された指示情報が指示する制御内容に更新して、更新した制御内容で前記制御対象に対するPWM制御を行う制御部と、前記信号生成部が生成したキャリア信号の第2の所定周期毎に、前記プロセッサに対する割り込み信号を生成して、前記プロセッサに出力する割り込み信号生成部と、を備え、前記プロセッサは、前記システムプログラムを実行することによって、前記安全関連タスクに前記実行時間が割り当てられる安全関連タイムパーティション、及び、前記通常制御タスクに前記実行時間が割り当てられる通常制御タイムパーティションのスケジューリング内容を示すスケジューリング情報に従って、前記タスクをスケジューリングし、前記プロセッサは、前記システムプログラムを実行することによって、前記割り込み発生部からの割り込み信号の出力に応じて、前記タイムパーティションを切り替え、前記プロセッサは、前記通常制御タスク又は前記安全関連タスクを実行することによって、前記指示情報を前記制御部に出力するものである。本発明の第2の態様にかかる安全制御方法は、キャリア信号の第1の所定周期毎に、制御対象に対する制御内容を、生成した指示情報が指示する制御内容に更新して、更新した制御内容で前記制御対象に対するPWM制御を行う安全制御方法であって、前記キャリア信号の第2の所定周期毎に、プロセッサに対する割り込みを発生するステップと、前記割り込みの発生に応じて、前記制御対象の機能安全の確保に関する処理を実行する安全関連タスクに前記プロセッサの実行時間が割り当てられる安全関連タイムパーティション、及び、その他の前記制御対象の制御に関する処理を実行する通常制御タスクに前記実行時間が割り当てられる通常制御タイムパーティションのスケジューリング内容を示すスケジューリング情報に従って、前記タイムパーティションを前記安全関連タイムパーティション又は前記通常制御タイムパーティションに切り替えるステップと、前記スケジューリング情報に従って、前記タスクをスケジューリングして、前記切り替え後の安全関連タイムパーティション又は通常制御タイムパーティションにおける安全関連タスク又は通常制御タスクに前記実行時間を割り当てるステップと、前記実行時間を割り当てられた通常制御タスク又は安全関連タスクを実行することによって、前記指示情報を生成するステップと、を備えたものである。本発明によれば、安全性を維持しつつ、制御対象の制御周期に同期した制御を行うことができる安全制御装置及び安全制御方法を提供することができる。以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。<発明の実施の形態1>本実施の形態にかかる安全制御装置1は、サービスロボットや運輸機器等に搭載されて機能安全確保のための安全制御を実行する。安全制御装置1は、安全関連アプリケーションと非安全関連アプリケーションを同一のコンピュータシステムで実行するよう構成される。図1は、本実施の形態にかかる安全制御装置1の構成例を示すブロック図である。プロセッサ10は、プログラム命令ストリームの取得、命令のデコード、命令のデコード結果に応じた演算処理を行う。なお、図1では、1つのプロセッサ10のみを示しているが、安全制御装置1は、複数のプロセッサ10を有するマルチプロセッサ構成であってもよい。また、プロセッサ10は、マルチコアプロセッサでもよい。プロセッサ10は、システムプログラムとしてのオペレーティングシステムOS100を実行することによりマルチプログラミング環境を提供する。マルチプログラミング環境とは、複数のプログラムを定期的に切り替えて実行したり、あるイベントの発生に応じて実行するプログラムを切り替えたりすることによって、複数のプログラムがあたかも並列実行されているような環境を意味する。マルチプログラミングは、マルチプロセス、マルチスレッド、マルチタスク等と呼ばれる場合もある。プロセス、スレッド及びタスクは、マルチプログラミング環境で並列実行されるプログラム単位を意味する。本実施の形態のプロセッサ10が具備するマルチプログラミング環境は、マルチプロセス環境でもよいし、マルチスレッド環境でもよい。実行用メモリ11は、プロセッサ10によるプログラム実行のために使用されるメモリである。実行用メモリ11には、不揮発性メモリ13からロードされたプログラムOS100及びアプリケーション101~103等、プロセッサ10の入出力データ等が記憶される。なお、プロセッサ10は、プログラムを不揮発性メモリ13から実行用メモリ11にロードすることなく、これらのプログラムを不揮発性メモリ13から直接実行してもよい。具体的には、実行用メモリ11は、SRAMStaticRandomAccessMemory、DRAMDynamicRandomAccessMemory等のランダムアクセス可能な揮発性メモリとすればよい。図1の実行用メモリ11は、論理的な構成単位を示している。すなわち、実行用メモリ11は、例えば、複数のSRAMデバイスの組み合わせ、複数のDRAMデバイスの組み合わせ、又はSRAMデバイスとDRAMデバイスの組み合わせでもよい。I/Oポート12は、外部デバイスとの間のデータ送受信に使用される。例えば、安全制御装置1がサービスロボットに搭載される場合であれば、外部デバイスは、サービスロボット周囲の障害物を計測可能な視覚センサ、サービスロボットを動作させるアクチュエータ等である。不揮発性メモリ13は、電力の供給を受けることなく、実行用メモリ11に比べて安定的に記憶内容を維持することが可能なメモリデバイスである。例えば、不揮発性メモリ13は、ROMReadOnlyMemory、フラッシュメモリ、ハードディスクドライブ若しくは光ディスクドライブ、又はこれらの組み合わせである。不揮発性メモリ13は、OS100及びアプリケーション101~103を格納する。なお、不揮発性メモリ13の少なくとも一部は安全制御装置1から取り外し可能に構成されてもよい。例えば、アプリケーション101~103が格納されたメモリを取り外し可能としてもよい。また、不揮発性メモリ13の少なくとも一部は、安全制御装置1の外部に配置されてもよい。OS100は、プロセッサ10によって実行されることにより、プロセッサ10及び実行用メモリ11及び不揮発性メモリ13等のハードウェア資源を利用して、タスクスケジューリングを含むタスク管理、割り込み管理、時間管理、資源管理、タスク間同期およびタスク間通信機構の提供等を行う。さらに、機能安全の確保に関連する安全監視アプリケーション101及び安全制御アプリケーション103の通常制御アプリケーション102からの独立性を高めるため、OS100は、ハードウェア資源を、時間的および空間的に保護する機能を有する。ここで、ハードウェア資源とは、プロセッサ10、実行用メモリ11、I/Oポート12を含む。このうち、時間的な保護は、プロセッサ10の実行時間という時間的な資源をパーティショニングすることにより行う。具体的に述べると、時間的な保護は、プロセッサ10の実行時間をパーティショニングし、各パーティションタイムパーティションと呼ぶにタスクプロセス又はスレッドを割り当てることにより行う。OS100のスケジューリング機能パーティションスケジューラ21は、各タイムパーティション以下、TPと略称する場合がある。に割り当てられたタスクに対して、プロセッサ10の実行時間を含む資源の利用を保証する。図2は、タイムパーティショニングに関する概念図である。図2の例では、予め定められた1サイクル時間を3つのTP1、TP2及びTP3に分割する例を示している。例えば、1サイクル時間を100Tickとした場合、このうち前半の20TickがTP1、中間の30TickがTP2、後半の50TickがTP3と規定される。また、図2の例では、第1アプリケーションAPL1~第4アプリケーションAPL4が、TP1~TP3のいずれかに割り当てられている。OS100のスケジューリング機能パーティションスケジューラ21は、時間の経過に応じて、TP1~TP3のいずれをアクティブにするかを選択決定する。そして、アクティブなTPに割り当てられているアプリケーションが、プロセッサ10で実行される。一方、空間的な保護は、実行用メモリ11及びI/Oポート12を含む固定的な資源をパーティショニングし、各パーティションリソースパーティションと呼ぶにタスクを割り当てることにより行う。OS100のスケジューリング機能パーティションスケジューラ21は、予め割り当てられたリソースパーティション以下、RPと略称する場合がある。を超えてタスクが他のリソースにアクセスすることを禁止する。図3は、リソースパーティショニングに関する概念図である。図3の例では、2つのRPRP1及びRP2を示している。RP1には、実行用メモリ11及び不揮発性メモリ13の一部A領域と、I/Oポート12の一部ポートAが割り当てられている。また、RP2には、実行用メモリ11及び不揮発性メモリ13の他の一部B領域と、I/Oポート12の他の一部ポートBが割り当てられている。RP1からはRP2に割り当てられたリソースへのアクセスが禁止され、RP2からはRP1に割り当てられたリソースへのアクセスが禁止される。なお、全てのリソースがいずれかのRPに排他的に割り当てられる必要はない。つまり、複数のRPによって共有されるリソースがあってもよい。例えば、サービスロボットの安全制御を行う場合、アクチュエータには、通常制御アプリケーション102及び安全制御アプリケーション103の双方からアクセスできる必要がある。よって、通常制御アプリケーション101が属するRPと安全制御アプリケーション102が属するRPによって、アクチュエータを制御するためのI/Oポートを共有するとよい。図1に戻り説明を続ける。アプリケーション101~103は、OS100及びプロセッサ10によって提供されるマルチプログラミング環境で実行される。このうち、安全監視アプリケーション101は、通常制御アプリケーション102の実行状況の監視と、安全制御アプリケーション103の実行状況の監視と、I/Oポート12への入出力データの監視と、をプロセッサ10に実行させるための命令コードを含む。さらに、安全監視アプリケーション101は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。つまり、安全監視アプリケーション101は、安全関連アプリケーションである。また、通常制御アプリケーション102は、サービスロボット等の制御対象に通常の機能動作を行わせるための制御手順をプロセッサ10に実行させるための命令コードを含む。さらに、通常制御アプリケーション102は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。つまり、通常制御アプリケーション102は、非安全関連アプリケーションである。また、安全制御アプリケーション103は、何らかの異常が検出された場合に対応して、機能安全を確保するために定められた制御手順をプロセッサ10に実行させるための命令コードを含む。さらに、安全制御アプリケーション103は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。つまり、安全制御アプリケーション103は、安全関連アプリケーションである。リセット回路14は、OS100からの信号に基づき、マイクロコントローラ15のリセットを行う。リセット回路14を用いたマイクロコントローラ15のリセット機構については後述する。続いて以下では、パーティションスケジューラ21と、アプリケーション101~103の起動により生成されるタスクと、の関係について、図4を用いて説明する。図4は、OS100によって提供されるマルチプログラミング環境で起動される、パーティションスケジューラ21とタスク24、26、28との関係を示す図である。マイクロコントローラ15は、プロセッサ10、実行用メモリ11、I/Oポート12、不揮発性メモリ13等を含む。なお、図4では、マイクロコントローラ15の外部にリセット回路14を備える構成を例示しているが、マイクロコントローラ15の内部にリセット回路14を含む構成としてもよい。マイクロコントローラ15には、外部のクロック源からのクロック信号が供給され、プロセッサ10等は、このクロック信号に基づく所定のタイマー周期で動作する。本実施の形態では、所定のタイマー周期を、1Tickであるとして説明する。このため、プロセッサ10によりOS100が実行されることで、パーティションスケジューラ21が1Tickごとに動作すると共に、各TPにおいて、タスクスケジューラ23、25、27およびタスク安全監視タスク24、通常制御タスク26、安全制御タスク28が1Tickごとに動作する。パーティションスケジューラ21は、1Tickごとに動作し、TPの切り替えパーティションスケジューリングを行う。パーティションスケジューラ21は、次の1Tickの間にTP1~TP3のいずれをアクティブにするかを選択決定する。さらに、パーティションスケジューラ21は、選択したTPに関するタスクスケジューラの動作を開始させる。パーティションスケジューラ21によるパーティションスケジューリングについて具体的に述べると、パーティションスケジューラ21は、スケジューリングテーブル22を参照し、TPの設定を定めたスケジューリングパターンに従って、パーティションスケジューリングを行う。スケジューリングテーブル22は、TPの切り替え順序およびタイミングを規定したスケジューリングパターンを保持している。なお、スケジューリングテーブル22は、少なくとも2つの異なるスケジューリングパターンを保持している。1つは、安全監視タスク24による異常検知が行われていない場合つまり通常時に適用されるスケジューリングパターンである。もう1つは、安全監視タスク24によって異常が検知された場合に適用されるスケジューリングパターンである。以下では、通常時に適用されるスケジューリングパターンを通常制御スケジューリングパターンと呼ぶ。また、異常検知時に適用されるスケジューリングパターンを安全制御スケジューリングパターンと呼ぶ。図5Aは、通常制御スケジューリングパターンの具体例を示している。図5Aでは、通常制御タスク26が属するTP2が1サイクル時間の前半T1に割り当てられている。また、安全監視タスク24が属するTP1が1サイクル時間の後半T2に割り当てられている。図5Aのスケジューリングパターンによれば、通常制御タスク26と安全監視タスク24が繰り返しスケジューリングされる。図5Bは、安全制御スケジューリングパターンの具体例を示している。図5Bでは、安全制御タスク28が属するTP3が1サイクル時間の前半T3に割り当てられている。また、安全監視タスク24が属するTP1が1サイクル時間の後半T4に割り当てられている。図5Bのスケジューリングパターンによれば、安全制御タスク28と安全監視タスク24が繰り返しスケジューリングされる。図4に戻り説明を続ける。タスクスケジューラ23、25、27は、それぞれが属するTP内でのタスクのスケジューリングを行う。各TP内でのタスクのスケジューリングには、一般的な優先度ベースのスケジューリングを適用すればよい。なお、図4では、各TPはそれぞれ1つのタスクのみを含むものとして図示しているが、実際には、1以上のタスクが含まれている。例えば、通常制御用のTP2内には、通常制御タスクA及び通常制御タスクBの2つのタスクが含まれていてもよい。安全監視タスク24は、安全監視アプリケーション101の起動によって生成されるタスクである。図4の例では、安全監視タスク24は、TP1及びRP1に割り当てられている。安全監視タスク24は、非安全関連アプリケーションである通常制御タスク26の実行状況の監視と、安全関連アプリケーションである安全制御タスク28の監視と、I/Oポート12の入出力データを監視する。さらに、安全監視タスク24は、タスクの実行状況を、パーティションスケジューラ21へ通知する。通常制御タスク26は、通常制御アプリケーション102の起動によって生成されるタスクである。図4の例では、通常制御タスク26は、TP2及びRP2に割り当てられている。通常制御タスク26は、サービスロボット等の制御対象に通常の機能動作を行わせるための制御を行う。さらに、通常制御タスク26は、タスクの実行状況を、パーティションスケジューラ21へ通知する。安全制御タスク28は、安全制御アプリケーション103の起動によって生成されるタスクである。図4の例では、安全制御タスク28は、TP3及びRP3に割り当てられている。安全制御タスク28は、何らかの異常が検出された場合に対応して、機能安全を確保するために定められた制御を行う。さらに、安全制御タスク28は、タスクの実行状況を、パーティションスケジューラ21へ通知する。なお、各タスクからパーティション21へと結果を通知する具体的な構成としては、様々な手法を採用することができる。例えば、タスクがOS100のシステムコールサービスコールを呼び出し、OS100を介して、パーティションスケジューラ21に結果を通知することができる。また、例えば、タスクの実行状況に関するフラグを実行用メモリ11に格納するものとして、タスクがその実行状況に応じてフラグの値を設定し、パーティションスケジューラ21がフラグの設定値に応じてタスクの実行状況を判断することもできる。上述したように、パーティションスケジューラ21が1Tickごとに動作し、TP1~TP3のいずれをアクティブにするかを選択決定する。さらに、パーティションスケジューラ21が、選択したTPに関するタスクスケジューラの動作を開始させる。そして、タスクスケジューラ23、25、27が動作を開始することでタスクのスケジューリングが行われ、プロセッサ10が、タスクスケジューラ23、25、27によりスケジューリングされた順序に従って、TP内でのタスクを実行していく。これによって、アクティブなTPに割り当てられているアプリケーションが、プロセッサ10で実行される。続いて以下では、パーティションスケジューラ21によるパーティションスケジューリングについて、図6を用いて説明する。図6は、パーティションスケジューラ21の処理手順の具体例を示すフローチャートである。まず、1Tickごとに動作するパーティションスケジューラ21が、TPXのタスクスケジューラを動作させるS11。ここで、変数XはTPの番号を示し、Xは1以外の値とする。すなわち、S11では、安全監視用のTP1を除いた、TP2又はTP3のいずれかを動作させる。なお、図6では、通常制御スケジューリングパターン例えば図5Aまたは安全制御スケジューリングパターン例えば図5Bに従って、スケジューリングを実行する場合を例に説明する。すなわち、TP2またはTP3に続く次のTPはTP1であり、かつ、TP2での異常がTP1で検知された場合に、TP1からの結果を受けて次に選択決定されるTPはTP3である場合を例に説明する。S11で動作を開始したTPXのタスクスケジューラは、TPX内のタスクを優先度に応じて実行するS12。そして、1Tickが経過すると、パーティションスケジューラ21が、TPのスケジューリングを開始するS13。すなわち、パーティションスケジューラ21は、スケジューリングパターンに従って、次の1Tickの間にいずれのTPをアクティブにするかを選択決定する。パーティションスケジューラ21は、次にアクティブにするTPを変更しないS14でNo場合には、S11に戻り、同一のTPXについての動作を継続させる。このため、TPXの切り替えタイミングとなるまでの間、S11~S14までの処理が繰り返される。パーティションスケジューラ21は、次にアクティブにするTPを変更するS14でYes場合には、その変更するタイムパーティションのタスクスケジューラを動作させるS15。ここでは、TP1のタスクスケジューラを動作させる。そして、TP1のタスクスケジューラ23が、TP1内のタスクを優先度に応じて実行するS16。TP1で実行される安全監視タスク24は、通常制御タスク26の実行状況の監視と、I/Oポート12の入出力データの監視を行い、これらが正常であるか判断するS17。判断の結果、異常であると判断したS18でNo場合、安全監視タスク24は、パーティションスケジューラ21に対して、その結果を通知するS19。1Tickが経過すると、パーティションスケジューラ21が、再びスケジューリングを開始するS20。パーティションスケジューラ21は、スケジューリングパターンに従って、次の1Tickの間にいずれのTPをアクティブにするかを選択決定し、次にアクティブにするTPを変更しないS21でNo場合には、S15に戻り、TP1についての動作を継続させる。パーティションスケジューラ21は、次にアクティブにするTPを変更するS21でYes場合には、さらに、S19でのTP1からの通知結果に応じて、TPXが正常であったか否かを判断するS22。判断の結果、異常であったS22でNo場合、パーティションスケジューラ21は、次の1Tickの間にアクティブにするTPとして、TP3を選択決定するS23。判断の結果、正常であったS22でYes場合、パーティションスケジューラ21は、次の1Tickの間にアクティブにするTPとして、TP1とTP3以外のTPXを選択決定するS24。図6で示した処理に関して、パーティションスケジューリングの具体例を説明する。まず、図5Aに例示した通常制御スケジューリングパターンに従って、S11においてスケジューリングを開始した場合を説明する。この場合、S11ではTPX=TP2として開始し、S12~S14にかけてもTPX=TP2のままである。そして、S15でTP2からTP1へと変更され、S15~S21にかけてTP1のままである。S18でTP2に関する実行状況データ入出力が正常であると判定されていた場合には、S24では、TPX=TP2となるつまり、TP2から開始する通常制御スケジューリングパターンが継続される。。一方で、S18でTP2に関する実行状況データ入出力が異常であると判定されていた場合には、S23で、TPX=TP3となるつまり、TP3から開始する安全制御スケジューリングパターンに切り替わる。。また、図5Bに例示した安全制御スケジューリングパターンに従って、S11においてスケジューリングを開始した場合を説明する。この場合、S11ではTPX=TP3として開始し、S12~S14にかけてもTPX=TP3のままである。そして、S15でTP3からTP1へと変更され、S15~S21にかけてTP1のままである。S18でTP3に関する実行状況データ入出力が正常であると判定されていた場合には、S24では、TPX=TP2となるつまり、TP2から開始する通常制御スケジューリングパターンに切り替わる。。一方で、S18でTP3に関する実行状況データ入出力に異常があると判定されていた場合には、S23で、TPX=TP3となるつまり、TP3から開始する安全制御スケジューリングパターンが継続される。。なお、上述の例では、スケジューリングパターンとして、3つのTP安全監視用のTP1、通常制御用のTP2、安全制御用のTP3のみを組み合わせた場合を例に説明したが、TP2のような通常制御用パーティションや、TP3のような安全制御用パーティションについては、それぞれ複数個存在するものとしてもよい。例えば、2つの通常制御用のTP2及びTP4と、安全監視用のTP1と、2つの安全制御用のTP3及びTP5と、が存在し、これら5つのTPTP1~TP5を組み合わせてスケジューリングパターンを構成してもよい。この場合、S23では、パーティションスケジューラ21が、TPXに関する実行状況データ入出力の異常状態の種類を判定し、その異常種類に応じて、安全制御用のTP3またはTP5のいずれかを選択すればよい。また、S24では、通常制御用のTP2またはTP4のいずれかを選択すればよい。上述したように、本実施の形態では、OS100は、安全監視用のTP1からの通知、または、各TPからの通知に応じて、次にアクティブとするパーティションを選択決定するパーティションスケジューラ21を備えている。パーティションスケジューラ21は、各TPにおいて実行されるタスクとは独立して、所定のタイマー周期で動作する。所定のタイマー周期で独立して動作するパーティションスケジューラ21がパーティションスケジューリング機能を有することで、以下の効果を奏することができる。まず、一般的に、通常制御タスク26の実行時間を十分に確保するために、安全監視タスク24の実行時間を可能な限り短縮したいという要求がある。従来技術例えば特許文献1では、安全監視タスク24が、通常制御タスク26の実行状況の監視と、I/Oポート12の入出力データの監視と、に加えて、スケジューリングパターンの選択決定についても行っていたために、この選択決定に要する実行時間についても、安全監視タスク24が属するTP2に関して割り当てておく必要があった。また、機能安全の確保を保証するためには、基本的には、安全監視タスク24と通常制御タスク26とが交互に実行される必要がある。このため、従来技術では、通常制御タスク26の実行に伴って安全監視タスク24によるスケジューリングパターンの選択決定までもが毎回実行されることになり、複数のサイクルにわたって合計すると、多くの実行時間を、安全監視タスク24によるスケジューリングパターンの選択決定のために要することになってしまう。これに対して、本実施の形態によれば、安全監視タスク24自体は、スケジューリングパターンの選択決定を実行する必要がない。また、パーティションスケジューラ21がスケジューリングパターンの選択決定に要する実行時間は短時間で済む。このため、従来技術と比較して、安全監視用のTP1はより短時間の割り当てで済み、かつ、通常制御用のTP2にはより長時間の割り当てを行うことができるという効果を奏する。さらに、図6で例示した処理では、パーティションスケジューラ21が、TP1からの結果通知に応じて、安全制御用のTP3を選択決定するS23、または、通常制御用のTP2を選択決定するS24ものとして説明したが、本発明はこれに限定されない。例えば、安全監視用のTP1のみからパーティションスケジューラ21に対して結果を通知する構成に代えて、TP1~TP3のそれぞれからパーティションスケジューラ21に対して実行状況を通知する構成とし、パーティションスケジューラ21が、各TPからの結果通知に応じて、安全制御用のTP3を選択決定するものとしてもよい。独立に動作するパーティションスケジューラ21が、全てのTPから結果通知を受ける構成とすることで、パーティションスケジューラ21は、全てのTPに関する状況を一元的に把握することができる。このため、例えば、安全監視用のTP1からの結果通知に応じて、パーティションスケジューラ21が次のパーティションを決定選択しようとする場合には、パーティションスケジューラ21は、各TPの状況を考慮した上で、正常状態にあるTPのみから次のパーティションを決定選択することができる。従って、従来技術と比較して、より正確なパーティションスケジューリングを実現することができるという効果を奏する。続いて以下では、リセット回路14を用いたマイクロコントローラ15のリセット機構について、図7及び図8を用いて説明する。図7及び図8は、リセット回路14を用いたマイクロコントローラ15のリセット処理手順の具体例を示すフローチャートである。本実施の形態では、1Tickごとに動作するパーティションスケジューラ21が、マイクロコントローラ15のリセット機能を有している。パーティションスケジューラ21は、OS100における異常を検出した場合に、リセット回路14と連動して異常処置を行う。リセット回路14は、パーティションスケジューラ21からの信号に基づき、マイクロコントローラ15のリセットを行う。まず、図7を用いて、リセット回路14を用いたマイクロコントローラ15のリセット処理手順の具体例について説明する。図7に示す処理では、パーティションスケジューラ21からリセット指示信号を受けた場合に、リセット回路14がマイクロコントローラ15をリセットするものである。なお、図7では、TPXは、TP1とTP3以外のTPである。まず、S31~S33では、パーティションスケジューラ21がTPXの動作を開始させることで、次にアクティブにするTPが変更されるまでの間、TPXに関する処理が実行される。そして、パーティションスケジューラ21がTP1のタスクスケジューラ23の動作を開始させたS34後に、TP1に属する安全監視タスク24が、TPXに関する処理入出力が正常であったかを判断するS35。判断の結果、正常であったS35でYes場合、S31に戻り、同一のTPXについての動作が継続される。判断の結果、異常であったS35でNo場合、TP1に属する安全監視タスク24が、TPXでの異常がTP3に属する安全制御タスク28で対応可能な異常であるかを判断するS36。TP3で対応可能な異常ではなかったS36でNo場合、TP1に属する安全監視タスク24が、パーティションスケジューラ21に対して、緊急停止を有する異常であることを通知するS37。TP1に属する安全監視タスク24からの通知を受けたパーティションスケジューラ21が、リセット回路14にリセット指示信号を出力し、リセット指示信号を受けたリセット回路14がマイクロコントローラ15のリセットを行うS38。TP3で対応可能な異常であったS36でYes場合、TP1に属する安全監視タスク24は、パーティションスケジューラ21に対して、TPXが異常であることを通知するS39。TP1からの通知を受けたパーティションスケジューラ21は、TPXからTP3へと切り替えるS40。次に、図8を用いて、リセット回路14を用いたマイクロコントローラ15のリセット処理手順の他の具体例について説明する。図8に示す処理では、パーティションスケジューラ21からリセット回路14に定期的に信号を送信し、リセット回路14は、パーティションスケジューラ21からの送信信号が途絶えた場合に、マイクロコントローラ15をリセットするものである。なお、図8では、TPXは、TP1とTP3以外のTPである。図7のS31~S35にかけての処理と比較して、図8のS53では、パーティションスケジューラ21が1Tickごとに動作する点が明確化され、また、S54及びS55で、パーティションスケジューラ21がリセット回路14に定期的に信号を送信する点で異なっている。その他の図8に示すS51~S57にかけての処理は、図7に示したS31~S35にかけての処理と基本的に同一である。また、図7のS36~S40にかけての処理と比較して、図8のS60では、パーティションスケジューラ21がリセット回路14への送信信号を停止し、S63では、パーティションスケジューラ21がリセット回路14への信号を送信する点で異なっている。さらに、図8のS61では、パーティションスケジューラ21からの送信信号が途絶えたことに応じて、リセット回路14がマイクロコントローラ15のリセットを行う点で異なっている。その他の図8に示すS58~S64にかけての処理については、図7に示したS36~S40にかけての処理と基本的に同一である。さらに、図8のS71及びS72に示すように、S51~S64にかけての処理と並行して、パーティションスケジューラ21において不具合が発生した場合、または、パーティションスケジューラ21からリセット回路14への信号線において不具合が発生した場合には、パーティションスケジューラ21からリセット回路14への送信信号が伝達されなくなる。この場合にも、パーティションスケジューラ21からの送信信号が途絶えたことに応じて、リセット回路14がマイクロコントローラ15のリセットを行うS61。図8に示した処理によれば、パーティションスケジューラ21からリセット回路14へ意図的にリセット指示を行う場合に加えて、パーティションスケジューラ21自身が何らかの原因により正常に動作しない場合、または、パーティションスケジューラ21からリセット回路14へ送信信号を伝達する信号線に不具合が発生した場合においても、マイクロコントローラ15のリセットを確実に行うことができる。また同時に、TPの切り替えが、1Tickごとに正常に実行されているかについても保証することができる。なお、図7及び図8では、パーティションスケジューラ21は、TP1からの結果通知に応じて、リセット回路14へのリセット指示信号の出力、または、リセット回路14への送信信号の停止を行うものとして説明したが、TP1~TP3のいずれかからの結果通知に応じて、リセット回路14へのリセット指示信号の出力、または、リセット回路14への送信信号の停止を行うものとしてもよい。<発明の実施の形態2>続いて、図9を参照して、本実施の形態2にかかる安全制御装置2の構成について説明する。図9は、本実施の形態2のかかる安全制御装置2の構成例を示すブロック図である。以下、実施の形態1にかかる安全制御装置1と同様の内容については説明を省略する。発信器16は、キャリア信号を生成する。発信器16は、生成したキャリア信号をI/Oポート12及び割り込み信号生成回路17に出力する。割り込み信号生成回路17は、発信器16から出力されたキャリア信号の周期に基づいて、割り込み信号を生成してプロセッサ10に出力する。割り込み信号生成回路17は、キャリア信号の谷部分又は山部分を検出したときに、割り込み信号を生成してプロセッサ10に出力する。つまり、キャリア信号の三角波の頂点を検出したときに、割り込み信号を生成してプロセッサ10に出力する。これによって、キャリア信号の1周期毎に、プロセッサ10に対してキャリア割り込みが発生する。プロセッサ10は、割り込み信号生成回路17から割り込み信号が出力されたときに、パーティションスケジューラ21を動作させる。プロセッサ10は、制御対象に対する制御内容を指示する指令値をI/Oポート12に出力する。I/Oポート12は、PWM信号を生成してアクチュエータに出力する。これによって、外部デバイスを有する制御対象が制御される。本実施の形態2では、アクチュエータがPWM信号によって制御されるモータである場合について説明する。I/Oポート12は、発信器20から出力されたキャリア信号の1周期毎に、外部デバイスに出力するPWM信号値を、プロセッサ10から出力された指令値が示す制御内容となるように更新する。よって、I/Oポート12は、指令値に基づいてPWM信号を生成するPWM回路図示せずを含む。続いて、パーティションスケジューラ21と、アプリケーション101~103の起動により生成されるタスクと、の関係について、図10を参照して説明する。図10は、OS100によって提供されるマルチプログラミング環境で起動される、パーティションスケジューラ21とタスク24、26、28との関係を示す図である。以下、本発明の実施の形態2と同様の内容については説明を省略する。なお、図10では、図4に示す安全監視タスク24からの監視対象のタスクを示す矢印については省略している。本実施の形態2では、図10に示すように、TP1に属する安全監視タスク24のみが、センサやモータ等の外部デバイスへアクセスできるように構成される。安全監視タスク24は、指令値をI/Oポート12に出力することによって、モータを制御する。安全監視タスク24は、I/Oポート12を介して、センサからセンサが計測したデータ以下、センサ値ともいうを取得する。安全監視タスク24は、取得したセンサ値を通常制御タスク26及び安全制御タスク28に提供する。例えば、安全監視タスク24は、タスク間通信によって、取得したセンサ値を通常制御タスク26及び安全制御タスク28に受け渡す。なお、このときに、実行用メモリ11を介して、センサ値が受け渡されていてもよい。通常制御タスク26及び安全制御タスク28のそれぞれは、安全監視タスク24から受け渡されたセンサ値に基づいて、モータの制御計算をする。通常制御タスク26及び安全制御タスク28のそれぞれは、制御計算によって生成した指令値の出力を、安全監視タスク24に指示する。例えば、通常制御タスク26及び安全制御タスク28のそれぞれは、タスク間通信によって、指令値を安全監視タスク24に受け渡す。なお、このときに、実行用メモリ11を介して、指令値が受け渡されていてもよい。安全監視タスク24は、通常制御タスク26又は安全制御タスク28から指令値を受け渡された場合、その指令値をI/Oポート12に出力する。本実施の形態2では、図11に示すように、マイクロコントローラ15を、主制御ECUに適用した場合について説明する。図11における主制御を通常制御タスク26が行い、モータアンプ制御を安全監視タスク24が行うことになる。続いて、図12~図13を参照して、本実施の形態2にかかる安全制御装置2の動作について説明する。図12は、本実施の形態2にかかるパーティションスケジューラ21の処理手順の具体例を示すフローチャートである。図13は、本実施の形態2にかかるスケジューリングパターンと、各TPの期間におけるPWM信号と、を示す図である。つまり、本実施の形態2では、スケジューリングテーブル22は、図13に例示するスケジューリングパターンを保持する。プロセッサ10に対して周期的なキャリア割り込みが発生する毎にS81、プロセッサ10は、パーティションスケジューラ21を実行するS82。これによって、キャリア割り込みが発生する毎に、図13に例示するように、TPが切り替わっていく。TP2に属する通常制御タスク26は、指令値を生成して、生成した指令値の出力を安全監視タスク24に指示する主制御を行う。また、TP1に属する安全監視タスク24は、通常制御タスク26から受け渡された指令値をI/Oポート12に出力するモータアンプ制御を行う。これによって、図13に示すように、モータアンプ制御を行った次のキャリア信号の周期で、指令値によって指示した制御内容がPWM信号に反映される。つまり、キャリア信号に同期した制御対象の制御が可能となる。続いて、図14を参照して、本実施の形態2にかかるパーティションスケジューリング処理について説明する。図14は、本実施の形態2にかかるパーティションスケジューリング処理手順の具体例を示すフローチャートである。ここでは、図13に例示した動作において、TP2がアクティブになったときから説明する。パーティションスケジューラ21は、TP2をアクティブにして、タスクスケジューラ25を動作させるS91。タスクスケジューラ25は、通常制御タスク26を実行する。通常制御タスク26は、TP1に属する安全監視タスク24からセンサ値を取得して制御処理を行うS92。つまり、通常制御タスク26は、制御計算を行って生成した指令値を安全監視タスク24に受け渡す。TP2のタイムリソースが無くなるまで、通常制御タスク26の実行が継続されるS93でNo、S91、S92。TP2のタイムリソースが無くなった場合S93でYes、パーティションスケジューラ21は、TP1をアクティブにして、タスクスケジューラ23を動作させるS94。タスクスケジューラ23は、安全監視タスク24を実行する。安全監視タスク24は、通常制御タスク26から受け渡された指令値が正常か否かを判定するS95。指令値が正常な場合S95でYes、安全監視タスク24は、指令値をI/Oポート12に出力するS96。また、安全監視タスク24は、センサからセンサ値を取得するS97。ここで、取得したセンサ値は、通常制御タスク26に受け渡される。この後、再度、ステップS91からの処理が実行される。指令値が正常でない場合S95でNo、安全監視タスク24は、パーティションスケジューラ21にTP2に属する通常制御タスク26が異常であることを通知するS98。ここでの通知は、例えば、タスク間通信によって行われる。そして、安全監視タスク24は、指令値のI/Oポート12への出力を抑止するS99。パーティションスケジューラ21は、安全監視タスク24からの異常の通知に応じて、TP2からTP3に切り替えるS100。これによって、安全制御タスク28によって、機能安全を確保するための制御が行われる。以上に説明したように、本実施の形態2では、割り込み信号生成部17が、キャリア信号の1周期毎に、プロセッサ10に対する割り込み信号を生成して、プロセッサ10に出力するようにしている。プロセッサ10は、割り込み信号生成部17からの割り込み信号の出力に応じて、タイムパーティションを切り替えるようにしている。そして、TP1に切り替わったときに、安全監視タスク24が指令値をI/Oポート12に出力するようにしている。これによれば、I/Oポート12が、キャリア信号の1周期毎に、制御対象に対する制御内容を指令値が指示する制御内容に更新していても、その制御周期に対する制御内容の指示の遅延を低減することができる。つまり、制御対象の制御対象の制御周期に同期した制御を行うことができる。また、タイムパーティショニングによって、制御対象の機能安全の確保に関する処理を実行する安全監視タスク24と、その他の前記制御対象の制御に関する処理を実行する通常制御タスク26とを独立させている。そのため、本実施の形態2のように、主制御とサーボアンプ制御とを同一ECUで実装しても、安全性を維持することができる。また、図21に示すように、同一ECUで実装することができるため、主制御ECUとモータアンプECUとに分離して構成する必要がないため、小型化及び低コスト化を図ることができる。また、本実施の形態2では、通常制御タスク26が生成した指令値を、安全監視タスク24が出力するようにしている。そのため、安全監視タスク24において、指令値が異常である場合に、その出力を抑止することができ、制御対象の誤動作を防止することができる。<発明の実施の形態3>続いて、図15を参照して、本実施の形態3にかかる安全制御装置2の構成について説明する。図15は、本実施の形態3のかかる安全制御装置2の構成例を示すブロック図である。以下、実施の形態3にかかる安全制御装置2と同様の内容については説明を省略する。本実施の形態3にかかる安全制御装置2は、発信器16、18及び割り込み信号生成回路17、19をそれぞれ複数有する。発信器16及び発信器18のそれぞれは、位相が異なるキャリア信号を生成するものとする。発信器18は、キャリア信号を生成して、生成したキャリア信号をI/Oポート12及び割り込み信号生成回路19に出力する。割り込み信号生成回路19は、割り込み信号生成回路17と同様に、発信器16から出力されたキャリア信号に基づいて、割り込み信号を生成してプロセッサ10に出力する。これによって、I/Oポート12は、2つのキャリア信号に基づいて、モータを制御することになる。本実施の形態3では、I/Oポート12は、2つのキャリア信号それぞれによって、2軸のモータのそれぞれを制御する。つまり、I/Oポート12は、2つのPWM信号を生成して各軸のそれぞれに対して出力する。よって、本実施の形態3では、プロセッサ10から、各軸の指令値がI/Oポート12に出力される。プロセッサ10は、割り込み信号生成回路17及び割り込み信号生成回路19のそれぞれから割り込み信号が出力されたときに、パーティションスケジューラ21を動作させる。パーティションスケジューラ21と、アプリケーション101~103の起動により生成されるタスクと、の関係については、実施の形態2と同様であるため、説明を省略する。続いて、図16~図17を参照して、本実施の形態3にかかる安全制御装置3の動作について説明する。図16は、本実施の形態3にかかるパーティションスケジューラ21の処理手順の具体例を示すフローチャートである。図17は、本実施の形態3にかかるスケジューリングパターンを示す図である。つまり、本実施の形態3では、スケジューリングテーブル22は、図17に例示するスケジューリングパターンを保持する。プロセッサ10に対して、割り込み信号生成回路17及び割り込み信号生成回路19のそれぞれから、周期的なキャリア割り込みが発生する毎にS101、S102、プロセッサ10は、パーティションスケジューラ21を実行するS103。これによって、キャリア割り込みが発生する毎に、図17に例示するように、TPが切り替わっていく。このように、それぞれの位相をずらした複数のキャリア信号に基づいて、割り込みを発生させることによって、より速い周期でTPの切り替えを行うことができるようになる。また、発信器16及び発信器18のそれぞれにおいて生成されるキャリア信号の位相差を調整することで、図18に例示するように、TPの期間の長さが一定とならないようにすることもできる。なお、図17及び図18におけるユーザプログラム及びユーザは、安全制御装置3のユーザが実装した任意の処理を示す。以上に説明したように、本実施の形態3によれば、それぞれの位相をずらした複数のキャリア信号に基づいて、パーティションスケジューリングタイミングとなる割り込みを発生するようにしている。これによれば、実施の形態2と比較して、さらに、TPの分解能を細かくすることができる。そのため、より制御周期に対する制御内容の指示の遅延を低減することができる。また、本実施の形態3によれば、キャリア信号の位相差を調整することで、第1の割り込み信号の出力から第1の割り込み信号の次の第2の割り込み信号の出力までの期間と、第2の割り込み信号の出力から第2の割り込み信号の次の第3の割り込み信号の出力までの期間とが異なるように、複数の割り込み信号を生成することができる。これによれば、図18に例示するように、TPの重みをより細かく設定することができる。<発明の実施の形態4>続いて、本実施の形態4にかかる安全制御装置1について説明する。なお、本実施の形態4にかかる安全制御装置1の構成は、本実施の形態1にかかる安全制御装置1の構成と同様であるため、説明を省略する。続いて、パーティションスケジューラ21と、アプリケーション101~103の起動により生成されるタスクと、の関係について、図19を参照して説明する。図19は、OS100によって提供されるマルチプログラミング環境で起動される、パーティションスケジューラ21とタスク24、26、28との関係を示す図である。以下、本発明の実施の形態1と同様の内容については説明を省略する。なお、図19では、図4に示す安全監視タスク24からの監視対象のタスクを示す矢印については省略している。本実施の形態4では、図19に示すように、TP2に属する通常制御タスク26のみが、センサやモータ等の外部デバイスへアクセスできるように構成される。通常制御タスク26は、I/Oポート12を介して、センサからセンサ値を取得する。通常制御タスク26は、取得したセンサ値に基づいて、モータの制御計算をする。通常制御タスク26は、制御計算によって生成した指令値をI/Oポート12に出力することによって、モータを制御する。通常制御タスク26は、取得したセンサ値を安全監視タスク24及び安全制御タスク28に提供する。例えば、通常制御タスク26は、タスク間通信によって、取得したセンサ値を安全監視タスク24及び安全制御タスク28に受け渡す。なお、このときに、実行用メモリ11を介して、センサ値が受け渡されていてもよい。安全監視タスク24は、通常制御タスク26から受け渡されたセンサ値に基づいて、制御対象の異常を監視する。安全監視タスク24は、センサ値の取得を通常制御タスク26に指示するようにしてもよい。例えば、安全監視タスク24は、タスク間通信によって、通常制御タスク26にセンサ値の取得を指示する。安全制御タスク28のそれぞれは、通常制御タスク26から受け渡されたセンサ値に基づいて、モータの制御計算をする。安全制御タスク28は、制御計算によって生成した指令値の出力を、通常制御タスク26に指示する。例えば、安全制御タスク28は、タスク間通信によって、指令値を通常制御タスク26に受け渡す。なお、このときに、実行用メモリ11を介して、指令値が受け渡されていてもよい。通常制御タスク26は、安全制御タスク28から指令値を受け渡された場合、その指令値をI/Oポート12に出力する。続いて、図20を参照して、本実施の形態4にかかるパーティションスケジューリング処理について説明する。図20は、本実施の形態4にかかるパーティションスケジューリング処理手順の具体例を示すフローチャートである。ここで、本実施の形態4にかかるスケジューリングパターンは、TP3、TP2が繰り返されるように規定されているものとする。ここでは、TP3がアクティブになったときから説明する。パーティションスケジューラ21は、TP3をアクティブにして、タスクスケジューラ27を動作させるS111。タスクスケジューラ27は、安全制御タスク28を実行する。安全制御タスク28は、TP2に属する通常制御タスク26からセンサ値を取得して制御処理を行うS112。つまり、安全制御タスク28は、制御計算を行って生成した指令値を通常制御タスク26に受け渡す。TP3のタイムリソースが無くなるまで、安全制御タスク28の実行が継続されるS113でNo、S111、S112。TP3のタイムリソースが無くなった場合S113でYes、パーティションスケジューラ21は、TP2をアクティブにして、タスクスケジューラ25を動作させるS114。タスクスケジューラ25は、通常制御タスク26を実行する。通常制御タスク26は、安全制御タスク28から受け渡された指令値をI/Oポート12に出力するS115。また、通常制御タスク26は、センサからセンサ値を取得するS116。ここで、取得したセンサ値は、安全監視タスク24及び安全制御タスク28に受け渡される。ここで、センサ及びモータ等のIOに対するアクセスには、プロセッサ10との通信でやり取りするものが多く、プロセッサ10に対する割り込みが発生することが多い。そのため、安全関連系でIOにアクセスすると、機能安全の確保に関連する処理を実行できなくなってしまうおそれがある。それに対して、以上に説明したように、本実施の形態4では、安全制御タスク28が生成した指令値を、通常制御タスク26が出力するようにしている。そのため、本実施の形態4によれば、安全関連系に影響を与えることがなく、制御対象を制御することができる。また、本実施の形態4によれば、IOに対してアクセスする処理を、安全関連系でない通常制御タスク26のみに実装するだけで済む。そのため、安全関連系を小さく構築することができ、安全関連系の低コスト化に寄与することができる。さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、実施の形態1~4のいずれかを組み合わせて実施するようにしてもよい。本実施の形態では、OSが、TP1~TP3を有する場合について例示したが、TPの種類及び数は、これに限られない。スケジューリングパターンについても、本実施の形態に例示したものに限られない。また、TPに属するタスクの種類及び数についても、本実施の形態において例示したものに限られない。本実施の形態2では、キャリア信号の1周期毎に、割り込み信号を生成する場合について例示したが、これに限られない。例えば、キャリア信号の2周期毎に、割り込み信号を生成するようにしても、クロック信号に基づいて動作する場合と比較して、大幅に制御周期に対する制御内容の指示の遅延を低減することができる。つまり、1周期以外の所定の周期毎に、割り込み信号を生成するようにしてもよい。また、本実施の形態2では、I/Oポート12が、キャリア信号の1周期毎に、制御対象に対する制御内容を、プロセッサ10から出力された指令値が指示する制御内容に更新しているが、これに限られない。例えば、1周期以外の所定の周期毎に、制御内容を更新するようにしてもよい。本実施の形態3では、発信器及び割り込み信号生成回路が2つの場合について例示したが、これに限られない。安全制御装置に、発信器及び割り込み信号生成回路を3つ以上備えるようにしてもよい。