制御対象で検出された検出値を入力値として演算し、所定の指令値を出力することで制御対象の異常を検知して前記制御対象を安全な状態にする安全装置であって、前記入力値を第1の演算方式で演算する第1演算部と、前記第1演算部が演算した第1演算結果と、前記入力値を第2の演算方式で演算した第2演算結果とが一致するか否かを判定する第2演算部と、前記第2演算部の判定結果に基づき、前記第1演算結果と前記第2演算結果とが一致する場合、前記第1演算結果を前記所定の指令値として出力し、前記第1演算結果と前記第2演算結果とが一致しない場合、前記第1演算結果を出力しない出力制御部と、を備え、前記第1演算部と前記第2演算部は、1つの中央演算処理装置が備える異なるハードウェアであることを特徴とする安全装置。前記第1演算部が論理演算を行う演算装置であり且つ前記第2演算部が浮動小数点演算を行う演算装置であるか、または、前記第2演算部が論理演算を行う演算装置であり且つ前記第1演算部が浮動小数点演算を行う演算装置であることを特徴とする請求項1に記載の安全装置。前記第1演算部が論理演算を行う演算装置であり且つ前記第2演算部が浮動小数点演算を行う演算装置である場合、前記第1演算部が論理演算を行い且つ前記第2演算部が論理演算を浮動小数点演算により模擬して行うか、前記第2演算部が論理演算を行う演算装置であり且つ前記第1演算部が浮動小数点演算を行う演算装置である場合、前記第1演算部が浮動小数点演算を行い且つ第2演算部がエミュレーションにより整数演算を行うことを特徴とする請求項1または請求項2に記載の安全装置。前記第1演算部は、前記入力値と、前記第1演算結果と、前記第1演算結果に到る演算途中の演算値とを、前記第2演算部に出力し、前記第2演算部は、入力された前記第1演算結果及び前記第1演算結果に到る演算途中の演算値を用いて、前記第1演算部が前記第1演算を行った演算の逆演算を行い、前記逆演算した第3演算結果と前記第1演算部への前記入力値とが一致するか否かを判定し、出力制御部は、前記第2演算部の判定結果に基づき、前記入力値と前記第3演算結果とが一致する場合、前記第1演算結果を前記所定の指令値として出力し、一致しない場合、前記第1演算結果を出力しないことを特徴とする請求項1から請求項3のいずれか1項に記載の安全装置。前記第1演算部と前記第2演算部を備える前記中央演算処理装置が並列に接続され、前記並列に接続された各々の前記中央演算処理装置の出力制御部の複数の前記指令値について、多数決により指令値を決定する出力装置を備えることを特徴とする請求項1または請求項4のいずれか1項に記載の安全装置。前記出力制御部は、前記第1演算結果と前記第2演算結果とが一致しない場合、前記第1演算装置または前記第2演算装置に異常があることを示す情報を、前記出力装置に出力し、前記出力装置は、前記出力制御部が出力する前記第1演算装置または前記第2演算装置に異常があることを示す情報に基づき、前記制御対象を制御することを特徴とする請求項1から請求項5のいずれか1項に記載の安全装置。制御対象で検出された検出値を入力値として演算し、所定の指令値を出力することで制御対象の異常を検知して前記制御対象を安全な状態にする演算方法であって、第1演算部が、前記入力値を第1の演算方式で演算する工程と、第2演算部が、前記第1演算工程が演算した第1演算結果と、前記入力値を第2の演算方式で演算した第2演算結果とが一致するか否かを判定する第2演算工程と、出力制御部が、前記第2演算部の判定結果に基づき、前記第1演算結果と前記第2演算結果とが一致する場合、前記第1演算結果を前記所定の指令値として出力し、前記第1演算結果と前記第2演算結果とが一致しない場合、前記第1演算結果を出力しない出力制御工程と、を備える安全装置の演算方法。しかしながら、特許文献1に記載の従来技術では、N個の異なったアルゴリズムやソフトウェアを開発することは、容易ではなくコスト的に過大になる問題点があった。また、非特許文献2に記載の安全装置では、多様性確保に異なるハードウェアを設けることが示されているが、CPU演算部分のハードウェア及びソフトウェアに対する多様性確保は示されていない。このため、非特許文献2の安全装置では、ハードウェアによるコモンモード故障を防ぐことができても、ソフトウェアによるコモンモード故障を防げない場合があるという問題点があった。本発明は、上記の問題点に鑑みてなされたものであって、安価にコモンモード故障を防ぐことができる安全装置、安全装置の演算方法を提供することを目的としている。上記目的を達成するため、本発明は、制御対象で検出された検出値を入力値として演算し、所定の指令値を出力することで制御対象の異常を検知して前記制御対象を安全な状態にする安全装置であって、前記入力値を第1の演算方式で演算する第1演算部と、前記第1演算部が演算した第1演算結果と、前記入力値を第2の演算方式で演算した第2演算結果とが一致するか否かを判定する第2演算部と、前記第2演算部の判定結果に基づき、前記第1演算結果と前記第2演算結果とが一致する場合、前記第1演算結果を前記所定の指令値として出力し、前記第1演算結果と前記第2演算結果とが一致しない場合、前記第1演算結果を出力しない出力制御部と、を備え、前記第1演算部と前記第2演算部は、1つの中央演算処理装置が備える異なるハードウェアであることを特徴としている。本発明によれば、1つの中央演算装置が、第1演算部と第2演算部を備え、入力値を第1の演算方式で演算する第1演算部と、第1演算部が演算した第1演算結果と、入力値を第2の演算方式で演算した第2演算結果とが一致するか否かを判定する第2演算部と、第2演算部の判定結果に基づき第1演算結果と第2演算結果とが一致するか否か判定し、出力を行うか否かを制御する出力制御部を備えるようにしたので、安価にコモンモード故障の可能性を低くすることができる安全装置を実現することができる。以下、図面を用いて本発明の実施形態について詳細に説明する。なお、本発明は係る実施形態に限定されず、その技術思想の範囲内で種々の変更が可能である。[第1実施形態]図1は、本実施形態に係る安全装置の構成図である。なお、本実施形態の安全装置は、火力プラント、水力プラント、電力プラントなどのプラントに適用する例を説明するが、工場の生産ライン、ビルのメンテナンスシステム、大型空調システムなどの分散型制御による安全装置が用いられているシステムにも適用してもよい。図1に示すように、本実施形態に係る安全装置100は、入力装置2、演算装置3a~演算装置3d、出力装置4を備えている。また、安全装置100は、アクチュエータ5に接続されている。アクチュエータ5は、例えば、発電用のガスタービンの燃料供給を強制停止する弁である。また、安全装置100には、センサ1が取り付けられている。アクチュエータ5は、安全装置100が出力する指令値に基づき動作する。センサ1は、熱量や流量などのアナログ値を検出する。また、センサ1は、アクチュエータ5に取り付けられている不図示の各種スイッチの論理状態などのデジタル値を検出する。センサ1は、アナログ値を検出した結果を示すアナログ値の検出値と、デジタル値を検出した結果を示すデジタル値の検出値とを、安全装置100に出力する。安全装置100の入力装置2は、センサ1が出力するアナログ値の検出値とデジタル値の検出値とを、演算装置3a~演算装置3dに出力する。演算装置3aは、入力装置2が出力するアナログ値の検出値とデジタル値の検出値とを、それぞれ演算し、演算結果を出力装置4に出力する。演算装置3bは、入力装置2が出力するアナログ値の検出値とデジタル値の検出値とを、それぞれ演算し、演算結果を出力装置4に出力する。演算装置3cは、入力装置2が出力するアナログ値の検出値とデジタル値の検出値とを、それぞれ演算し、演算結果を出力装置4に出力する。演算装置3dは、入力装置2が出力するアナログ値の検出値とデジタル値の検出値とを、それぞれ演算し、演算結果を出力装置4に出力する。出力装置4は、演算装置3a~演算装置3dが出力する演算結果に対して、後述するように多数決処理を行い、多数決結果に基づき選ばれた演算結果を指令値としてアクチュエータ5に出力する。以下、演算装置3a~演算装置3dを総称して演算装置3と称する。図2は、本実施形態に係る演算装置の構成図である。図2に示すように、演算装置3は、振分部31、第1演算部32、第2演算部33、自己診断部34、出力制御部35を備えている。また、第1演算部32は、第1安全機能演算部101、第1安全機能演算検証部102を備えている。また、第2演算部33は、第2安全機能演算部111、第2安全機能演算検証部112を備えている。また、第1演算部32と第2演算部33は、例えば、1つのCPUCentralProcessingUnitが有する論理演算装置ALUArithmeticandLogicUnitと浮動小数点演算装置FPUFloatingPointnumberprocessingUnitで実行される。振分部31は、入力装置2が出力するアナログ値の検出値とデジタル値の検出値を、アナログ値の検出値inaとデジタル値の検出値ingとに振り分ける。振分部31は、デジタル値の検出値ingを、第1演算部32の第1安全機能演算部101と、第2演算部33の第2安全機能演算検証部112とに出力する。振分部31は、アナログ値の検出値inaを、第1演算部32の第1安全機能演算検証部102と、第2演算部33の第2安全機能演算部111とに出力する。第1演算部32は、例えば、論理演算装置ALUArithmeticandLogicUnitで実行される。第1演算部32は、例えばソフトウェアの切換により、第1安全機能演算部101と第1安全機能演算検証部102とを実現する。第1安全機能演算部101は、振分部31が出力するデジタル値の検出値ingを用いて、アクチュエータ5の制御量である出力値を、論理演算により演算し、演算結果out1を第2安全機能演算検証部112と出力制御部35とに出力する。第1安全機能演算検証部102は、振分部31が出力するアナログ値の検出値inaを、公知の整数演算によるエミュレーションにより、アクチュエータ5の制御量である出力値を演算する。第1安全機能演算検証部102は、この演算結果が、第2安全機能演算部111による演算結果out2と一致するか否かを判定する。第1安全機能演算検証部102は、判定の結果、第1安全機能演算検証部102による演算結果が、第2安全機能演算部111による演算結果out2と一致する場合、演算結果が正常であることを示す情報を出力制御部35に出力する。第1安全機能演算検証部102は、判定の結果、第1安全機能演算検証部102による演算結果が、第2安全機能演算部111による演算結果out2と一致しない場合、演算結果が異常であることを示す情報を出力制御部35に出力する。なお、第1の演算方式とは、デジタル値の論理演算であり、第2の演算方式とは、整数演算によるエミュレーションにより演算することである。なお、第1安全機能演算検証部102が行う整数演算によるエミュレーションは、例えば、第1演算部32にアセンブラコードでライブラリに実装されているソフトウェアによるエミュレーションや、マイクロコードでALUに存在しない操作をエミュレーションすることで、整数の除算や浮動小数点の処理を行う。あるいは、第1演算部32は、不図示の除算器や浮動小数点ユニットのような別のハードウェア部品や、コプロセッサなどを備えることで、整数の除算や浮動小数点の処理を行う。第2演算部33は、例えば、浮動小数点演算装置FPUFloatingPointnumberprocessingUnitで実行される。第2演算部33は、例えばソフトウェアの切換により、第2安全機能演算部111と第2安全機能演算検証部112とを実現する。第2安全機能演算部111は、振分部31が出力するアナログ値の検出値inaを用いて、アクチュエータ5の制御量である出力値を、浮動小数点演算により演算し、演算結果out2を第1安全機能演算検証部102と出力制御部35とに出力する。第2安全機能演算検証部112は、振分部31が出力するデジタル値の検出値ingを、後述するように論理演算をアナログ演算で模擬し、アクチュエータ5の制御量である出力値を演算する。第2安全機能演算検証部112は、この演算結果が、第1安全機能演算部101による演算結果out1と一致するか否かを判定する。第2安全機能演算検証部112は、判定の結果、第2安全機能演算検証部112による演算結果が、第1安全機能演算部101による演算結果out1と一致する場合、演算結果が正常であることを示す情報を出力制御部35に出力する。第2安全機能演算検証部112は、判定の結果、第1安全機能演算検証部112による演算結果が、第1安全機能演算部101による演算結果out1と一致しない場合、演算結果が異常であることを示す情報を出力制御部35に出力する。なお、第1の演算方式とは、アナログ値の浮動小数点演算であり、第2の演算方式とは、論理演算をアナログ演算で模擬する演算である。自己診断部34は、演算装置3の健全性を診断し、診断結果を出力制御部35に出力する。自己診断部34は、例えば、演算装置3に、不図示の電源供給装置から供給された電源電圧の電圧値が、所定の値の範囲であるか否かを判定する。自己診断部34は、電圧値が所定の範囲の場合を正常と判定し、電圧値が所定の値の範囲外の場合を異常と判定し、判定結果を出力制御部35に出力する。出力制御部35は、第1安全機能演算検証部102が出力する情報が、演算結果が正常であることを示す情報である場合、第2安全機能演算部111が出力するアナログ値の演算結果を出力装置4に出力する。出力制御部35は、第2安全機能演算検証部112が出力する情報が、演算結果が正常であることを示す情報である場合、第1安全機能演算部101が出力するデジタル値の演算結果を出力装置4に出力する。出力制御部35は、第1安全機能演算検証部102が出力する情報が、演算結果が異常であることを示す情報である場合、第2安全機能演算部111が出力するアナログ値の演算結果を出力装置4に出力しない。出力制御部35は、第2安全機能演算検証部112が出力する情報が、演算結果が異常であることを示す情報である場合、第1安全機能演算部101が出力するデジタル値の演算結果を出力装置4に出力しない。図3は、本実施形態に係る演算装置のデータの例を説明する図である。図3において、各列は、演算装置3毎の入力値in、振分部31の出力アナログ値の検出値ina、およびデジタル値の検出値ing、第1安全機能演算部101の出力out1;論理演算結果1~4、第2安全機能演算部111の出力out2;アナログ演算結果1~4である。各行は、演算装置3a~3d毎のデータである。このように、演算装置3a~3dには、同一の入力値inが入力される。そして、演算装置3a~3dの振分部31が、入力値inを振り分け、デジタル値の検出値ingを各々の第1安全機能演算部101に出力し、アナログ値の検出値inaを各々の第2安全機能演算部111に出力している。そして、演算装置3a~3dの各第1安全機能演算部101が、各々、論理演算結果1~4out1を出力している。また、演算装置3a~3dの各第2安全機能演算部111が、各々、アナログ演算結果1~4out2を出力している。図4は、本実施形態に係る第1演算部32と第2演算部33が行う演算を説明する図である。図4に示すように、第1演算部32の第1安全機能演算部101は、デジタル値の検出値に対して論理演算を行う。この演算結果を検証するため、第2演算部33の第2安全機能検証部112は、デジタル値の検出値に対して論理演算をアナログ演算で模擬した演算を行う。また、第2演算部33の第2安全機能演算部111は、アナログ値の検出値に対してアナログ演算浮動小数点演算を行う。この演算結果を検証するために、第1演算部32の第1安全機能検証部102は、アナログ値の検出値に対して整数演算によるエミュレーションを行う。図5は、演算装置が行う演算の概略の一例を説明する図である。図5に示すように、演算装置3には、入力装置2が出力するデジタル値の検出値DIN1151、およびDIN2152、アナログ値の検出値AIN3153が入力されている。図5において、符号161、162、および163が演算要素である。符号161は、論理和の論理演算を行う演算要素であり、符号163は、論理積の論理演算を行う演算要素である。また、符号162は、入力値が所定の値を超えたときにHレベル真または1ともいうの信号を出力する関数の演算を行う演算要素である。このように、演算装置3は、予め演算要素加算、減算、除算、リミッタ、折れ線関数などを関数化して記憶している。そして、図5に示すように、演算要素161の出力を演算要素163の入力に矢印181で接続し、演算要素162の出力を演算要素163の入力に矢印182で接続して、ロジックを構成している。演算装置3は、図5に示したような構成図データフローともいうから、論理演算を行うプログラムに変換したものを実行する。図5において、例えば、デジタル値の検出値DIN1151かDIN2152のどちらかがHレベル真または1ともいうの場合、演算要素161は、Hレベルを演算要素163に出力する。そして、アナログ値のAIN3153が所定の値を超えた場合、演算要素162はHレベルを演算要素163に出力する。そして、演算要素163は、演算要素161の出力と、演算要素162の出力との論理積を演算して、演算結果DOUT1171を算出する。また、図5に示したのは、演算装置3が行う演算を説明するための概略である。実際の演算は、例えば、アナログ値の検出値AIN3153が熱量の場合、演算要素163は、このアナログ値の検出値AIN3153が所定の熱量を超えた場合に、熱量を下げるために、アクチュエータ5に熱量を下げる指示を示す情報例えば、燃料供給を強制停止する弁を閉じるを算出して、アクチュエータ5に指令値として出力する。また、例えば、デジタル値の検出値DIN1151かDIN2152が、アクチュエータ5が備える熱量を設定するためのスイッチの状態を示す検出値の場合、演算装置3は、上記のアナログ値の検出値AIN3153が所定の熱量を超えた場合に、熱量を下げるために、アクチュエータ5に熱量を下げる指示を示す情報を算出する。そして、演算装置3は、アクチュエータ5に熱量を設定するためのスイッチの状態を指令値として出力する。以下の説明では、演算装置3の動作の説明を簡略化するために、演算装置3に入力されたデジタル値の検出値、アナログ値の検出値を、各々、別々に演算する例を説明する。図6は、本実施形態に係る演算装置が行う演算の一例を説明する図である。図6において、各行はALUを使った論理演算の例とFPUを使った浮動小数点演算による論理演算の例との対応関係であり、各列は、ALUを使った論理演算の例と、FPUを使った浮動小数点演算部による論理演算の例である。図6に示すように、論理演算で用いる値は、真と偽である。また、浮動小数点演算による論理演算で用いる値は、1.0と0.0である。論理積Y=X1ANDX2は、浮動小数点演算で行う場合、Y=X1×X2の演算を行う。論理和Y=X1ORX2は、浮動小数点演算で行う場合、Y=floatX1X2=0.0の演算を行う。なお、演算子floatは、4バイト浮動小数点であり、演算子=は、比較演算子で異なる場合である。すなわち、X1とX2の和が0.0と異なる場合、Y=1.0であり、X1とX2の和が0の場合、Y=0.0である。否定Y=X~は、浮動小数点演算で行う場合、Y=1.0-Xの演算を行う。排他的論理和Y=X1^X2は、浮動小数点演算で行う場合、Y=fabsX1-X2の演算を行う。演算子fabsは、絶対値を取る演算子である。すなわち、X1とX2との差の絶対値を演算する。なお、図6には、論理演算を浮動小数点演算で行う一例を示したが、他にも公知の浮動小数点演算を用いることで、否定論理積等の各種の論理演算を浮動小数点演算で実現することができる。図7は、本実施形態に係る安全装置の処理手順のフローチャートである。まず、安全装置100の演算装置3には、入力装置2が出力するアナログ値の検出値とデジタル値の検出値とが入力される。演算装置3の振分部31は、入力装置2が出力するアナログ値の検出値とデジタル値の検出値を、アナログ値の検出値inaとデジタル値の検出値ingとに分けるステップS1。振分部31は、デジタル値の検出値ingを、第1演算部32の第1安全機能演算部101と、第2演算部33の第2安全機能演算検証部112とに出力する。振分部31は、アナログ値の検出値inaを、第1演算部32の第1安全機能演算検証部102と、第2演算部33の第2安全機能演算部111とに出力する。次に、第1安全機能演算部101は、振分部31が出力するデジタル値の検出値ingを用いて、アクチュエータ5の制御量である出力値を演算し、演算結果out1を第2安全機能演算検証部112と出力制御部35に出力するステップ2。すなわち、第1安全機能演算部101は、デジタル値の検出値ingに対して論理演算を、ALUで実行する。第2安全機能演算検証部112は、振分部31が出力するデジタル値の検出値ingを、論理演算をアナログ演算で模擬により、アクチュエータ5の制御量である出力値を演算するステップS3。すなわち、第2安全機能演算検証部112は、第1安全機能演算部101の演算結果を検証するために、論理演算をアナログ演算で模擬し、FPUで実行する。第2安全機能演算検証部112は、第2安全機能演算検証部112による演算結果が、第1安全機能演算部101による演算結果out1と一致するか否かを判定するステップS4。判定の結果、第2安全機能演算検証部112による演算結果が第1安全機能演算部101演算結果out1と一致する場合ステップS4Yes、第2安全機能演算検証部112は、第1安全機能演算部101による演算結果が正常であることを示す情報を出力制御部35に出力する。出力制御部35は、第2安全機能演算検証部112が出力する演算結果が正常であることを示す情報に基づき、第1安全機能演算部101が出力する演算結果を出力装置4に出力するステップS5。判定の結果、第2安全機能演算検証部112による演算結果が第1安全機能演算部101による演算結果out1と一致しない場合ステップS4No、第2安全機能演算検証部112は、演算結果が異常であることを示す情報を出力制御部35に出力する。出力制御部35は、第2安全機能演算検証部112が出力する演算結果が異常であることを示す情報に基づき、第1安全機能演算部101が出力する演算結果を出力装置4に出力しないステップS6。次に、第2安全機能演算部111は、振分部31が出力するアナログ値の検出値inaを用いて、アクチュエータ5の制御量である出力値を演算し、演算結果out2を第1安全機能演算検証部102と出力制御部35に出力するステップS7。すなわち、第2安全機能演算部111は、アナログ値の検出値inaに対してアナログ演算を、FPUで実行する。第1安全機能演算検証部102は、振分部31が出力するアナログ値の検出値inaを、整数演算によるエミュレーションにより演算を行い、アクチュエータ5の制御量である出力値を演算するステップS8。すなわち、第1安全機能演算検証部102は、第2安全機能演算部111の演算結果を検証するために、整数演算をエミュレートして、ALUで実行する。第1安全機能演算検証部102は、第1安全機能演算検証部102による演算結果が、2安全機能演算部111による演算結果out2と一致するか否かを判定するステップS9。判定の結果、第1安全機能演算検証部102による演算結果が第2安全機能演算部111による演算結果out2と一致する場合ステップS9Yes、第1安全機能演算検証部102は、演算結果が正常であることを示す情報を出力制御部35に出力する。出力制御部35は、第1安全機能演算検証部102が出力する演算結果が正常であることを示す情報に基づき、第2安全機能演算部111が出力する演算結果を出力装置4に出力するステップS10。判定の結果、第2安全機能演算部111による演算結果が第1安全機能演算検証部102による演算結果out2と一致しない場合ステップS9No、第1安全機能演算検証部102は、演算結果が異常であることを示す情報を出力制御部35に出力する。出力制御部35は、第1安全機能演算検証部102が出力する演算結果が異常であることを示す情報に基づき、第2安全機能演算部111が出力する演算結果を出力装置4に出力しないステップS11。次に、出力装置4には、演算装置3a~演算装置3dが、ステップS1~ステップS11により演算した演算結果が入力される。出力装置4は、入力された演算結果に対して多数決処理を行い、多数決処理に基づき指令値をアクチュエータ5に出力するステップS12。なお、本実施形態では、演算装置3の出力制御部35は、第2安全機能演算検証部112が出力する演算結果が異常の場合、第1安全機能演算部101が出力する演算結果を出力装置4に出力しない例を説明した。出力制御部35は、第2安全機能演算検証部112が出力する演算結果が異常の場合、演算装置3に異常があるため、出力装置4に、演算装置3に異常があることを示す情報を送るようにしてもよい。同様に、出力制御部35は、第1安全機能演算検証部102が出力する演算結果が異常の場合、演算装置3に異常があるため、出力装置4に、演算装置3に異常があることを示す情報を送るようにしてもよい。出力装置4は、演算装置3が出力する異常があることを示す情報が入力された場合、例えば、不図示の表示部に異常が発生している演算装置3の固有の番号等を表示して、安全装置100の使用者に知らせるようにしてもよい。この場合、演算装置3内で、異なるハードウェアALUとFPUと異なるソフトウェア異なる演算方式で2重に演算結果を確認しているため、演算装置3の異常を検出することもできる効果がある。なお、異なる演算方式とは、例えばデジタル値に対する論理演算とアナログ値に対する浮動少数点演算であり、または、デジタル値に対する浮動小数点演算による論理演算とアナログ値に対する整数演算のエミュレーションによる演算などである。次に、出力装置4が行う多数決処理について説明する。演算装置3a~演算装置3dから、4つの演算結果が入力された場合、出力装置4は、4つの演算結果で多数決を行い、例えば、4つのうち2つ以上が安全側を制御する出力値であれば、安全側を制御する出力値をアクチュエータ5に出力する。なお、安全側を制御する出力値とは、制御対象を安全な状態に制御する出力で、予め設定しておく。演算装置3a~演算装置3dから、3つの演算結果が入力された場合、すなわち、1つの演算結果が異常のため演算装置3により出力されなかった場合、出力装置4は、3つの演算結果で多数決を行い、例えば、3つのうち2つ以上が安全側を制御する出力値であれば、安全側を制御する出力値をアクチュエータ5に出力する。演算装置3a~演算装置3dから、2つの演算結果が入力された場合、すなわち、2つの演算結果が異常のため演算装置3により出力されなかった場合、出力装置4は、2つの演算結果のうち1つ以上が安全側を制御する出力値であれば、安全側を制御する出力値をアクチュエータ5に出力する。安全側を制御する出力値が1つ以上なかった場合、予め設定してある所定の出力順序に従って、入力された演算結果のうちの一方の演算結果を指令値としてアクチュエータ5に出力する。演算装置3a~演算装置3dから、1つの演算結果が入力された場合、すなわち、3つの演算結果が以上のため演算装置3により出力されなかった場合、出力装置4は、入力された演算結果を指令値としてアクチュエータ5に出力する。演算装置3a~演算装置3dから、1つも演算結果が入力されない場合、すなわち、4つの演算結果が異常のため演算装置により出力されなかった場合、出力装置4は、予め設定されている安全動作のための制御値を指令値としてアクチュエータ5に出力する。なお、上述した多数決処理は、出力装置5が、アナログの検出値に対する演算値、デジタル値に対する検出値に対する演算値のそれぞれに行う。また、図7に示したフローチャートにおいて、例えば、ステップS2とステップS7の演算を、第1安全機能演算部101と第2安全機能演算部111が並行して行うようにしてもよい。また、ステップS3、S4とステップS8~S9を、第1安全機能演算検証部102と第2安全機能演算検証部112が並行して行うようにしてもよい。また、図1の構成例では、演算装置3を多重にする例を示したが、本実施形態の安全装置100を用いる場合、1つの演算装置3内で異なるハードウェアとソフトウェアで確認しているため、多重化せずに演算装置3は1つでもよい。以上のように、本実施形態の安全装置100は、1つのCPU演算装置3のALU第1演算部32とFPU第2演算部33を用いて、入力値からおのおの異なるハードウェアと異なる演算方式を用いて演算している。この結果、演算の信頼性を上げる効果もあり、また、CPU内の故障も検知することができる。また、本実施形態の安全装置100は、第1演算部32が、論理演算を行い、第2演算部33が、浮動小数点演算により異なる演算方式を使って演算しているため、ソフトウェアにも多様性を持たせることができる。この結果、コモンモード故障の可能性を低くすることができる。なお、本実施形態では、演算装置3が、1つのCPUが備えるALUとFPUを例として説明したが、デジタル信号プロセッサDSPを備えるCPUであれば、DSPによりALUとFPUを構成するようにしてもよい。または、1つのデジタル信号プロセッサDSPにより、ALU第1演算部32とFPU第2演算部33を構成するようにしてもよい。[第2実施形態]図8は、本実施形態に係る演算装置の構成の一例を説明する図である。図8に示すように、演算装置300は、第1演算部32a、第2演算部33aを備えている。また、図8には示していないが、第1実施形態の図2と同様に、演算装置300は、振分部31、自己診断部34、出力制御部35を備えている。また、第2演算部33aは、入力データ部201、演算ブロック1202、演算部ブロックj203、演算部ブロックm204、出力データ部205を備えている。第1演算部32aは、逆演算用入力データ部211、逆演算ブロック1212、逆演算部ブロックj213、逆演算部ブロックm214、逆演算出力部215を備えている。まず、演算装置300で行う処理の概要を説明する。また、以下の説明では、入力値がアナログ値の検出値のみであるとして説明を行う。演算装置300の振分部31は、入力装置2図1が出力するアナログ値の検出値を第2演算部33aに出力する。第2演算部33aでは、入力されたアナログ値の検出値を、順次、演算ブロック1202~演算部ブロックm204により演算する。また、第2演算部33aは、演算結果と演算の途中で使用した要素を、後述するように第1演算部32aの逆演算ブロック1212~逆演算部ブロックm214に出力する。第1演算部32aは、入力された演算結果と演算の途中で使用した要素を用いて、逆演算ブロック1211~逆演算部ブロックm214により逆演算を行い、演算結果を検証する。また、第1実施形態と同様に、第1演算部32aと第2演算部33aは、例えば、1つのCPU演算装置3が備えるALUとFPUである。第2演算部33aの入力データ部201は、振分部31が出力するアナログ値の検出値を演算ブロック1202に出力する。また、入力データ部201は、入力されたアナログ値の検出値を記憶する。演算部ブロック1202~演算部ブロックm204は、振分部31が出力するアナログ値の検出値に基づいて、安全機能の出力を生成するのに必要な演算を行うために構成されている。演算部ブロック1202は、入力データ部201が出力するアナログ値の検出値を用いて、所定の関数F1により演算を行う。演算部ブロック1202は、演算結果Y1n、を演算部ブロックj203に出力する。さらに演算部ブロック1202は、入力されたアナログ値の検出値inX1n、演算結果Y1n、演算の途中で使用した要素W1n、V1nを逆演算ブロック1212に出力する。また、演算部ブロック1202は、前回の演算の途中で使用した要素W1n-1を記憶している。なお、添え字nは、今回の演算による値を表し、n-1は前回の演算による値表している。演算部ブロックj203は、演算部ブロック1202が出力する演算結果Y1n=Xjnを用いて、所定の関数F2により演算を行う。演算部ブロックj203は、演算結果Yjn、を演算部ブロックm203に出力する。さらに演算部ブロックj203は、演算部ブロック1202が出力する演算結果Y1n=Xjn、演算結果Yjn、演算の途中で使用した要素Wjn、Vjnを逆演算ブロックj213に出力する。また、演算部ブロックj203は、前回の演算の途中で使用した要素Wjn-1を記憶している。演算部ブロックm204は、演算部ブロックj203が出力する演算結果Yjn=Xmnを用いて、所定の関数F3により演算を行う。演算部ブロックm204は、演算結果Ymn、を出力データ部205に出力する。さらに演算部ブロックm204は、演算部ブロックj203が出力する演算結果Yjn=Xmn、演算結果Ymn、演算の途中で使用した要素Wmn、Vmnを逆演算ブロックm214に出力する。また、演算部ブロックm204は、前回の演算の途中で使用した要素Wmn-1を記憶している。出力データ部205は、演算部ブロックm204が出力する演算結果が入力されたことに応じて、演算部ブロック1201~演算部ブロックm204の演算が終了したと判断する。また、出力データ部205は、演算が終了したことを示す情報を逆演算出力部215に出力する。逆演算出力部215は、出力データ部205が出力する演算が終了したことを示す情報に基づき、逆演算ブロックm214に逆演算を開始する情報を出力する。逆演算部ブロック1212~演算部ブロックm214は、演算部ブロック1201~演算部ブロックm204が出力するアナログ値の検出値inX1n、演算結果Y1n=Xjn、Yjn=Xmn、およびYmn、演算の途中で用いた要素W1n、V1n、Wjn、VjnおよびWmn、Vmnに基づいて、逆演算を行うために構成されている。逆演算部ブロックm214は、逆演算出力部215が出力する逆演算を開始する情報に基づき、演算部ブロックm204が出力する演算結果Yjn=Xmn、演算結果Ymn、演算の途中で使用した要素Wmn、Vmnを用いて、所定の関数F3-1により逆演算を行う。逆演算部ブロックm214は、逆演算を開始する情報を逆演算部ブロックj213に出力する。また、逆演算部ブロックm214は、逆演算結果Xmn’が、演算結果Xjnと一致するか否かを判定する不一致チェックともいう。判定の結果、逆演算結果Xmn’と演算結果Xjnとが一致した場合、逆演算部ブロックm214は、演算部ブロックm204の演算結果が正常であると判定する。判定の結果、逆演算結果Xmn’と演算結果Xjnとが一致しない場合、逆演算部ブロックm214は、演算部ブロックm204の演算結果が異常であると判定する。逆演算部ブロックm214は、判定結果を、出力制御部35に出力する。また、逆演算部ブロックm214は、逆演算の途中で使用した要素Wmn-1’が、記憶されている前回の周期の逆演算の途中で使用した要素Wmn-1と一致するか否かを判定する。判定の結果、逆演算の途中で使用した要素Wmn-1’と前回の周期の逆演算の途中で使用した要素Wmn-1とが一致した場合、逆演算部ブロックm214は、演算部ブロックm204の演算結果が正常であると判定する。また、逆演算部ブロックm214は、入力された演算の途中で使用した要素Wmnを次回の周期の逆演算で使用できるようにWmn-1’に上書きして保存する。判定の結果、逆演算の途中で使用した要素Wmn-1’と逆演算の途中で使用した要素Wmn-1とが一致しない場合、逆演算部ブロックm214は、演算部ブロックm204の演算結果が異常であると判定する。逆演算部ブロックm214は、判定結果を、出力制御部35に出力する。逆演算部ブロックj213は、逆演算部ブロックm214が出力する逆演算を開始する情報に基づき、演算部ブロックj203が出力する演算結果X1、演算結果Xj、演算の途中で使用した要素Wjn、Vjnを用いて、所定の関数F2-1により逆演算を行う。逆演算部ブロックj213は、逆演算を開始する情報を逆演算部ブロック1212に出力する。また、逆演算部ブロックj213は、逆演算結果Xjn’が、演算結果Xjnと一致するか否かを判定する。判定の結果、逆演算結果Xjn’と演算結果Xjnとが一致した場合、逆演算部ブロックj213は、演算部ブロックj203の演算結果が正常であると判定する。判定の結果、逆演算結果Xjn’と演算結果Xjnとが一致しない場合、逆演算部ブロックj213は、演算部ブロックj203の演算結果が異常であると判定する。逆演算部ブロックj213は、判定結果を、出力制御部35に出力する。また、逆演算部ブロックj213は、逆演算の途中で使用した要素Wjn-1’が、前回の周期の逆演算の途中で使用した要素Wjn-1と一致するか否かを判定する。判定の結果、逆演算の途中で使用した要素Wjn-1’と前回の周期の逆演算の途中で使用した要素Wjn-1とが一致した場合、逆演算部ブロックj213は、演算部ブロックj203の演算結果が正常であると判定する。また、逆演算部ブロックj213は、入力された演算の途中で使用した要素Wjnを次回の周期の逆演算で使用できるようにWjn-1’に上書きして保存する。判定の結果、逆演算の途中で使用した要素Wjn-1’と前回の周期の逆演算の途中で使用した要素Wjn-1とが一致しない場合、逆演算部ブロックj213は、演算部ブロックj203の演算結果が異常であると判定する。逆演算部ブロックj213は、判定結果を、出力制御部35に出力する。逆演算部ブロック1212は、逆演算部ブロックj213が出力する逆演算を開始する情報に基づき、演算部ブロック1201が出力するアナログ値の検出値in、演算結果X1、演算の途中で使用した要素W1、V1を用いて、所定の関数F1-1により逆演算を行う。逆演算部ブロック1212は、逆演算が終了したことを示す情報を逆縁算用入力データ部211に出力する。また、逆演算部ブロック1212は、逆演算結果X1n’が、アナログ値の検出値inと一致するか否かを判定する。判定の結果、逆演算結果X1n’とアナログ値の検出値inとが一致した場合、逆演算部ブロック1213は、演算部ブロック1202の演算結果が正常であると判定する。判定の結果、逆演算結果X1n’とアナログ値の検出値inとが一致しない場合、逆演算部ブロック1212は、演算部ブロック1202の演算結果が異常であると判定する。逆演算部ブロック1212は、判定結果を、出力制御部35に出力する。また、逆演算部ブロック1212は、逆演算の途中で使用した要素W1n-1’が、前回の周期の逆演算の途中で使用した要素W1n-1と一致するか否かを判定する。判定の結果、逆演算の途中で使用した要素W1n-1’と前回の周期の逆演算の途中で使用した要素W1n-1とが一致した場合、逆演算部ブロック1212は、演算部ブロック1202の演算結果が正常であると判定する。また、逆演算部ブロック1212は、入力された演算の途中で使用した要素W1nを次回の周期の逆演算で使用できるようにW1n-1’に上書きして保存する。判定の結果、逆演算の途中で使用した要素W1n’と前回の周期の逆演算の途中で使用した要素W1n-1とが一致しない場合、逆演算部ブロック1212は、演算部ブロック1202の演算結果が異常であると判定する。逆演算部ブロック1212は、判定結果を、出力制御部35に出力する。逆演算用入力データ部211は、演算部ブロック1212が出力する逆演算が終了したことを示す情報を、出力制御部35に出力する。出力制御部35は、逆演算用入力データ部211が出力する逆演算が終了したことを示す情報、逆演算部ブロック1212~逆演算部ブロックm214が出力する判定結果に基づき、演算部ブロック1202~演算部ブロックm204の演算が正常である場合、演算部ブロックm204の演算結果を指令値として出力装置4に出力する。なお、演算部ブロック1202~演算部ブロックm204で用いる所定の関数F1~F3、逆演算部ブロック1212~逆演算部ブロックm214で用いる所定の関数F1-1~F3-1は、予め入力値に基づいて、安全装置100の設計者が予め設定しておく。なお、本実施形態では、演算部ブロック1202~演算部ブロックm204の全ての演算が終了した後、逆演算部ブロック1212~逆演算部ブロックm214が逆演算を行う例を説明した。例えば、各演算部ブロック1202の演算が終了した後、逆演算部ブロック1212が逆演算を行うようにしてもよい。図9は、本実施形態に係る演算ブロックと逆演算ブロックの入出力データの一例を説明する図である。図10は、本実施形態に係る逆演算ブロックの入出力データと保持されているデータの一例を説明する図である。図9に示すように、演算ブロック1202~演算ブロックm204は、それぞれXnが入力され、それぞれYn、Wn、およびVnを出力する。図10に示すように、逆演算ブロック1212~逆演算ブロックm214は、それぞれYn、Wn、Vn、およびXnが入力され、Xn’を出力する。また、逆演算ブロック1212~逆演算ブロックm214は、それぞれ前回の周期のWn-1を保持している。次に、演算ブロック1202~演算ブロックm204、逆演算ブロック1202~逆演算ブロックm204が行う処理について、図11~図13を用いて説明する。図11は、本実施形態に係る演算ブロックと逆演算ブロックの構成の一例を説明する図である。図12は、本実施形態に係る逆演算ブロックの処理手順を説明する図である。図13は、本実施形態に係る逆演算ブロックの処理手順のフローチャートである。図11aと図11bは、図8における演算ブロックの破線で囲んだ220の演算ブロックj203と逆演算ブロックj213の構成の一例である。図11aに示すように、演算ブロックj203は、Xjn、Wjn-1を入力値として用い、Yjn、WjnおよびVjnを出力値として用いて演算を行う。図11bに示すように、逆演算ブロックj213は、Yjn、WjnおよびVjnを入力値として用い、Xjn’、Wjn-1’を出力値として用いて逆演算を行う。図11aと図11bにおいて、添え字nは、今回の周期のデータ、添え字n-1は、前回の周期のデータである。また、Xjnは、入力列、Yjnは、出力列である。さらに、Wjnは、中間データ列、Vjnは、XjnとWjn-1を一意的に求めるために必要な中間データである。Xjn’は、Xjnの逆演算値、Wjn-1’は、Wjn-1の逆演算値であり、Wjn-1は、逆縁算用に前回の周期のWjnをコピーしたデータ列である。図11aに示すように、演算ブロックj203は、入力値のXjnとWjn-1を所定の関数F2を用いて、Yjn、Wjn、Vjnを演算する。図11bに示すように、逆演算ブロックj213は、入力値のYjnとWjnおよびVjnを所定の関数F2-1を用いて、Xjn’Wjn-1’を演算する。次に、逆演算ブロックj212が行う逆演算の手順を詳細に説明する。まず、逆演算ブロックj212は、演算ブロックj202の演算結果Yjnを入力値としてコピーするステップS101、図12のC1、C2。次に、逆演算ブロックj212は、演算ブロックj202の演算の途中で使用した要素WjnとVjnを、入力値としてコピーするステップS102、図12のC3。次に、逆演算ブロックj212は、演算ブロックj202への入力値であるXjnを、出力値としてコピーするステップS103、図12のC4。次に、逆演算ブロックj212は、Xjn’とWjn-1’を、コピーした入力値Yjn、Wjn、およびVjnを用いて、所定の関数F2-1により逆演算するステップS104、図13のC5。次に、逆演算ブロックj212は、逆演算により求めたXjn’と、コピーしたXjnとが一致するか否かを判定するステップS105。判定の結果、逆演算により求めたXjn’と、コピーしたXjnとが一致する場合ステップS105Yes、ステップS107に進む。判定の結果、逆演算により求めたXjn’と、コピーしたXjnとが一致しない場合ステップS105No、ステップS106に進む。次に、逆演算ブロックj212は、逆演算の途中で使用した要素Wjn-1’と、コピーしたWjn-1とが一致するか否かを判定するステップS107、図12のC6。判定の結果、逆演算により求めたWjn-1’と、コピーしたWjn-1とが一致する場合ステップS107Yes、ステップS108に進む。判定の結果、逆演算により求めたWjn’と、コピーしたWjn-1とが一致しない場合ステップS107No、ステップS106に進む。逆演算ブロックj212は、演算結果、または演算の途中で使用した要素が一致しなかったため、異常と判定し、判定結果を出力の制御装部35に出力するステップS106。逆演算ブロックj212は、演算結果と、演算の途中で使用した要素とが一致したため、正常と判定し、判定結果を出力の制御装部35に出力する。また、逆演算ブロックj212は、コピーしたWjnを次回の周期の逆演算チェックで使用できるようにWjn-1’に上書きして保存するステップS108、図12のC7。以上のように、本実施形態では、第2演算部33が算出した演算結果に対し、第1演算部32が第2演算部33で算出された演算結果と演算途中で使用された要素を用いて逆演算を行う。そして、第1演算部32は、逆演算した演算結果が、第2演算部33FPUが算出した演算結果の入力値と一致するか判定する。さらに、第1演算部32ALUは、逆演算の途中で使用した要素が前回の周期で使用した要素と一致するかも判定する。この結果、異なるハードウェアかつ異なるソフトウェアにより、演算結果が正しいかをチェックすることができるので、安価にコモンモード故障の可能性を低くすることができる。なお、本実施形態では、演算ブロック1202~演算ブロックm204、逆演算ブロック1212~逆演算ブロックm214のように、3個ずつ用いる例を説明したが、演算ブロックおよび逆演算ブロックの数はこれに限らず、検出される検出値や指令値に基づいて決めるようにしてもよい。また、本実施形態の構成に実施形態1の構成を加えるようにしてもよい。この場合、第2演算部33が算出した演算結果に対し、第1演算部32が逆演算と、順方向の演算を行うこととで、さらに信頼性を上げることができる。また、本実施形態では、図8のように1つの演算装置3についてのみ用いる例を説明したが、図1と同様に、演算装置3を多重化してもよい。[第3実施形態]第2実施形態では、アナログ値の検出値が演算装置3に入力された場合、第2演算部33aが演算した演算結果に対して、第1演算部32aが逆演算して判定する例を説明した。本実施形態では、デジタル値の検出値が演算装置3に入力された場合、第1演算部33aが演算した演算結果に対して、第2演算部33aが逆演算して判定する例を説明する。なお、第2演算部33aは、第1実施形態で説明したように、デジタル値を浮動小数点演算により論理演算することで行う。図14は、本実施形態に係る入力が1個の場合のデジタル値の演算と逆演算を説明する図である。図14aは、順方向の演算を説明する図であり、図14bは、逆演算を説明する図である。図14aに示すように、入力が1個、出力が1個の場合、入力Xnに対して所定の関数Fにより出力Ynが演算できる。このため、図14bに示すように、出力Ynに、関数F-1を行うことで、Xn’が逆演算でき、逆演算したXn’とXnとを比較することで、演算が正常か否かを判定できる。このような演算として、例えば、NOT論理否定がある。図15は、本実施形態に係る入力が2個の場合のデジタル値の演算と逆演算を説明する図である。図15aは、順方向の演算を説明する図であり、図15bは、逆演算を説明する図である。図15aに示すように、入力が2個、出力が1個の場合、入力X1とX2に対して所定の関数Fにより出力Ynが演算できる。このため、出力Ynのみでは、入力X1、X2を一意に求めることができないため、例えば、図15bに示すように、入力X2と、出力Ynを入力とし、所定の関数F-1により、X1’を演算し、演算したX1’と入力のX1とを比較することで演算が正常か否かを判定できる。このような演算として、例えば、AND論理論理積、OR論理論理和などがある。以上のように、本実施形態では、第1演算部32ALUが算出した演算結果に対し、第2演算部33FPUが第1演算部32で算出された演算結果と演算途中で使用された要素を用いて逆演算を行う。そして、第2演算部33FPUは、逆演算した演算結果が、第1演算部32ALUが算出した演算結果の入力値と一致するか判定する。さらに、第2演算部33FPUは、逆演算の途中で使用した要素が前回の周期で使用した要素と一致するかも判定する。この結果、異なるハードウェアかつ異なるソフトウェアにより、演算結果が正しいかをチェックすることができるので、安価にコモンモード故障の可能性を低くすることができる。また、本実施形態の構成に実施形態1の構成を加えるようにしてもよい。この場合、第1演算部32が算出した演算結果に対し、第2演算部33が逆演算と、順方向の演算を行うこととで、さらに信頼性を上げることができる。また、本実施形態の構成に実施形態2の構成を加えるようにしてもよい。この場合、アナログ値の検出値に対してもデジタル値の検出値に対しても、異なるハードウェア、ソフトウェアで逆演算して比較しているため、コモンモード故障の可能性を低くすることができる。また、本実施形態では、図8のように1つの演算装置3についてのみ用いる例を説明したが、図1と同様に、演算装置3を多重化してもよい。なお、本実施形態では、1つの演算装置3にALUとFPUを備え、第1演算部32の演算がALUで実行され、第2演算部33の演算がFPUで実行される例を説明したが、例えばRISCReducedInstructionSetComputerプロセッサの場合、スーパースケーラによりFPUをALUと並列に動作させることができるため、本実施形態を実現することができる。また、1つのCPU内に複数の演算部を備える、例えばデュアルコアプロセッサを演算装置3に用いても、本実施形態と同様の効果を得ることができる。