"エンジンにより駆動される交流発電機の出力が入力される交流入力端子と、正極側及び負極側の直流出力端子と、前記交流入力端子を通して入力された交流電圧を整流して電圧値が調整された直流電圧を前記直流出力端子間に出力するレギュレータとを有する電源装置本体を備えて、前記電源装置本体の直流出力端子間に得られる直流電圧がバッテリと該バッテリに対して並列に設けられた負荷とに供給され、前記バッテリの正極端子と前記負荷の一端との間にメインスイッチが挿入される電源装置であって、常開接点を有して、該常開接点が前記正極側の直流出力端子と前記バッテリの正極端子との間を接続する回路に直列に挿入された充電リレーと、前記レギュレータの出力電圧が第1のダイオードを通して入力されると共に、前記バッテリの出力電圧が前記メインスイッチと第2のダイオードとを通して入力されて、入力された電圧を安定化された直流電圧に変換する制御用電源回路と、前記制御用電源回路が出力する安定化された直流電圧が電源端子に入力されて、前記安定化された直流電圧が確立したときに起動するマイクロプロセッサと、リレー駆動指令が与えられたときに前記充電リレーを励磁し、前記リレー駆動指令が消滅しているときに前記充電リレーを消磁するリレー駆動回路と、前記メインスイッチを通して前記バッテリの電圧を検出して、前記バッテリの向きが正しく、かつ前記メインスイッチが閉じているときに第1の信号を発生し、前記メインスイッチが開いているとき及び前記メインスイッチが閉じているが前記バッテリの向きが正しい向きと逆の向きであるときに第2の信号を発生するスイッチ状態検出回路と、を備え、前記マイクロプロセッサは、前記スイッチ状態検出回路が前記第1の信号を発生しているときに前記リレー駆動指令を発生し、前記スイッチ状態検出回路が前記第2の信号を発生しているときに前記リレー駆動指令を消滅させるリレー駆動指令発生手段を構成するようにプログラムされ、前記レギュレータは、前記交流発電機が出力を発生したときに直ちに直流電圧を出力するように構成されていること、を特徴とする電源装置。エンジンにより駆動される交流発電機の出力が入力される交流入力端子と、正極側及び負極側の直流出力端子と、前記交流入力端子を通して入力された交流電圧を整流して電圧値が調整された直流電圧を前記直流出力端子間に出力するレギュレータとを有する電源装置本体を備えて、前記直流出力端子間に得られる直流電圧がバッテリと該バッテリに対して並列に設けられた負荷とに供給され、前記バッテリの正極端子と前記負荷の一端との間にメインスイッチが挿入される電源装置であって、常開接点を有して、該常開接点が前記正極側の直流出力端子と前記バッテリの正極端子との間を接続する回路に直列に挿入された充電リレーと、前記レギュレータの出力電圧が第1のダイオードを通して入力されると共に、前記バッテリの出力電圧が前記メインスイッチと第2のダイオードとを通して入力されて、入力された電圧を安定化された直流電圧に変換する制御用電源回路と、前記制御用電源回路が出力する安定化された直流電圧が電源端子に入力されて、前記安定化された直流電圧が確立したときに起動するマイクロプロセッサと、リレー駆動指令が与えられたときに前記充電リレーを励磁し、前記リレー駆動指令が消滅しているときには前記充電リレーを消磁するリレー駆動回路と、前記メインスイッチを通して前記バッテリの電圧を検出して、前記バッテリの向きが正しく、かつ前記メインスイッチが閉じているときに第1の信号を発生し、前記メインスイッチが開いているとき及び前記メインスイッチが閉じているが前記バッテリの向きが正しい向きと逆の向きであるときに第2の信号を発生するスイッチ状態検出回路と、前記バッテリの充電モードを前記メインスイッチが閉じているときにのみバッテリを充電する第1のモードと、前記メインスイッチが開いている状態でも前記エンジンの回転速度が設定速度以上であるときバッテリを充電する第2のモードとに設定する充電モード設定手段と、を備え、前記マイクロプロセッサは、前記交流発電機の出力から前記エンジンの回転速度を検出する回転速度検出手段と、前記スイッチ状態検出回路が前記第1の信号を発生しているとき、及び前記充電モードが第2のモードに設定がされている状態で前記スイッチ状態検出回路が第2の信号を発生していて前記回転速度検出手段によりエンジンの回転速度が設定速度以上であることが検出されているときに前記リレー駆動指令を発生し、前記充電モードが第1のモードに設定されている状態で前記スイッチ状態検出回路が第2の信号を発生しているとき、及び前記充電モードが第2のモードに設定された状態で前記スイッチ状態検出回路が第2の信号を発生していて前記回転速度検出手段によりエンジンの回転速度が設定速度未満であることが検出されているとき又はエンジンが停止していることが検出されているときに前記リレー駆動指令を消滅させるリレー駆動指令発生手段とを構成するようにプログラムされ、前記レギュレータは、前記交流発電機が出力を発生したときに直ちに直流電圧を出力するように構成されていること、を特徴とする電源装置。前記バッテリの電圧及び又は前記レギュレータの出力電圧を検出する電圧検出回路が設けられ、前記マイクロプロセッサは、前記電圧検出回路により検出された電圧から前記レギュレータ及び又はバッテリに異常があるか否かを診断する故障診断手段を構成するようにプログラムされ、前記リレー駆動指令発生手段は、前記リレー駆動指令の出力を停止する前に前記故障診断手段による診断結果をメモリに記憶させる処理を行うように構成されている請求項1,2,3又は4に記載の電源装置。アノードが前記メインスイッチを通して前記バッテリの正極端子に接続された第3のダイオードが設けられて、前記バッテリの電圧が前記メインスイッチと第3のダイオードとを通して前記リレー駆動回路に入力され、前記リレー駆動回路は、前記メインスイッチが閉じられて前記第3のダイオードと前記メインスイッチとを通して前記バッテリの出力電圧が入力されたときにも前記充電リレーに励磁電流を供給するように構成されている請求項1,2又は3に記載の電源装置。図7に示したように、直流出力端子1a,1b間にバッテリ3を接続し、バッテリ3の両端にメインスイッチ5を介して負荷4を接続する構成をとった場合には、エンジンが運転されているときに、メインスイッチ5の状態の如何に関わりなく、バッテリ3を充電できるという利点が得られるが、エンジンが停止し、メインスイッチ5を開いた状態にあるときに、バッテリ3からレギュレータ1A内の回路を通して暗電流が流れるという問題があった。一般に、レギュレータ1Aは、バッテリ電圧を検出して、検出したバッテリ電圧が設定値を超えないように出力電圧を調整する動作を行うため、バッテリ電圧を検出するために、バッテリに対して並列に接続された電圧検出回路を備えている。電圧検出回路は、通常抵抗分圧回路からなっていて、高いインピーダンスを有しているが、該検出回路を通して暗電流が流れるのを避けることはできない。そのため、図7に示した構成をとる場合には、電源装置1を搭載した機器または設備を保管する場合等に、エンジンを長期間停止させておくと、バッテリ3が消耗するという問題があった。図8に示したように、直流出力端子1a,1b間に負荷4を接続し、負荷4の両端にメインスイッチ5を介してバッテリ3を接続する構成をとった場合には、エンジンが停止し、メインスイッチ5が開いているときにバッテリ3がレギュレータ1から切り離されるため、エンジンが停止しているときにバッテリ3からレギュレータ1内の回路を通して暗電流が流れてバッテリが消耗するという問題が生じることはない。しかしながら、図8に示したように構成した場合には、負荷4の駆動を停止するためにメインスイッチ5が開かれていると、交流発電機2がバッテリ3を充電するために十分な電力を発生していても、バッテリ3を充電することができないため、メインスイッチが開かれている時間が長い場合にバッテリの充電が不足する状態になるという問題が生じる。本発明の目的は、エンジンが長期間停止した状態に置かれた場合にバッテリからレギュレータに暗電流が流れてバッテリが消耗するのを防ぐことができ、しかも負荷の駆動を停止するためにメインスイッチが開かれている状態でも、交流発電機が十分な出力を発生していればバッテリを充電することができる電源装置を提供することにある。本発明は、エンジンにより駆動される交流発電機の出力が入力される交流入力端子と、正極側及び負極側の直流出力端子と、交流入力端子を通して入力された交流電圧を整流して電圧値が調整された直流電圧を直流出力端子間に出力するレギュレータとを有する電源装置本体を備えて、電源装置本体の直流出力端子間に得られる直流電圧がバッテリと該バッテリに対して並列に設けられた負荷とに供給され、バッテリの正極端子と負荷の一端との間にメインスイッチが挿入される電源装置を対象とする。本発明に係わる電源装置は、常開接点を有して、該常開接点が正極側の直流出力端子とバッテリの正極端子との間を接続する回路に直列に挿入された充電リレーと、レギュレータの出力電圧が第1のダイオードを通して入力されると共に、バッテリの出力電圧がメインスイッチと第2のダイオードとを通して入力されて、入力された電圧を安定化された直流電圧に変換する制御用電源回路と、制御用電源回路が出力する安定化された直流電圧が電源端子に入力されて、前記安定化された直流電圧が確立したときに起動するマイクロプロセッサと、リレー駆動指令が与えられたときに充電リレーを励磁し、リレー駆動指令が消滅しているときに充電リレーを消磁するリレー駆動回路と、メインスイッチを通してバッテリの電圧を検出して、バッテリの向きが正しく、かつメインスイッチが閉じているときに第1の信号を発生し、メインスイッチが開いているとき及びメインスイッチが閉じているがバッテリの向きが正しい向きと逆の向きであるときに第2の信号を発生するスイッチ状態検出回路とを備えている。上記マイクロプロセッサは、スイッチ状態検出回路が第1の信号を発生しているときにリレー駆動指令を発生し、スイッチ状態検出回路が第2の信号を発生しているときにリレー駆動指令を消滅させるリレー駆動指令発生手段を構成するようにプログラムされている。またレギュレータは、交流発電機が出力を発生したときに直ちに直流電圧を出力するように構成されている。上記のように構成すると、エンジンが停止していて、メインスイッチが開かれているときに制御用電源回路が出力電圧を発生せず、マイクロプロセッサは動作しないため、リレー駆動指令は発生せず、充電リレーの常開接点はオフ状態に保持される。従って、エンジンが停止していて、メインスイッチが開かれているときに、バッテリをレギュレータから切り離しておくことができ、電源装置を搭載した機器や設備を長期間停止したり、保管したりする際に、バッテリからレギュレータに暗電流が流れてバッテリが消耗するのを防ぐことができる。またエンジンが回転していて、交流発電機が電圧を発生しているときには、レギュレータの出力によりマイクロプロセッサの電源が確保されてリレー駆動指令が発生し続けるため、充電リレーの接点はオン状態に保持される。従って、負荷の駆動を停止するためにメインスイッチが開かれている状態でも、エンジンが回転していて、交流発電機が十分な出力を発生していればバッテリを充電することができ、メインスイッチが長時間開かれていても、バッテリが充電不足の状態になることがない。また上記のように、メインスイッチを通してバッテリ電圧を検出することによりメインスイッチの状態を検出するようにすると、メンテナンスの終了時等にバッテリが誤って逆に接続された場合に、メインスイッチが閉じられても、メインスイッチが閉じられたことを示す信号第1の信号が出力されないため、マイクロプロセッサがリレー駆動指令を発生することがない。従って、バッテリが逆向きに接続された際にバッテリの電圧がレギュレータに印加されてレギュレータが破壊するのを防ぐことができる。本発明の一態様では、バッテリの充電モードをメインスイッチが閉じているときにのみバッテリを充電する第1のモードと、メインスイッチが開いている状態でもエンジンの回転速度が設定速度以上であるときバッテリを充電する第2のモードとに設定する充電モード設定手段が更に設けられる。この場合、マイクロプロセッサは、交流発電機の出力からエンジンの回転速度を検出する回転速度検出手段と、スイッチ状態検出回路が第1の信号を発生しているとき、及び充電モードが第2のモードに設定がされている状態でスイッチ状態検出回路が第2の信号を発生していて回転速度検出手段によりエンジンの回転速度が設定速度以上であることが検出されているときにリレー駆動指令を発生し、充電モードが第1のモードに設定されている状態でスイッチ状態検出回路が第2の信号を発生しているとき、及び充電モードが第2のモードに設定された状態でスイッチ状態検出回路が第2の信号を発生していて回転速度検出手段によりエンジンの回転速度が設定速度未満であることが検出されているとき又はエンジンが停止していることが検出されているときにリレー駆動指令を消滅させるリレー駆動指令発生手段とを構成するようにプログラムされる。上記のように構成すると、メインスイッチが開いている状態でもバッテリを充電する機能を持たせることが要求される場合にその要求に応えることができる。本発明の好ましい態様では、バッテリの電圧及び又はレギュレータの出力電圧を検出する電圧検出回路が設けられ、マイクロプロセッサは、電圧検出回路により検出された電圧からレギュレータ及びバッテリに異常があるか否かを診断する故障診断手段を構成するようにプログラムされる。この場合、リレー駆動指令発生手段は、リレー駆動指令の出力を停止する前に故障診断手段による診断結果をメモリに記憶させる処理を行うように構成される。上記のようにバッテリの電圧及び又はレギュレータの出力電圧を検出する電圧検出回路を設けるととともに、この電圧検出回路により検出された電圧からレギュレータ及びバッテリに異常があるか否かを診断する故障診断手段を構成するようにマイクロプロセッサをプログラムしておくと、電圧検出回路により検出した電圧からバッテリが劣化しているか否かを診断したり、レギュレータに異常があるか否かを診断したりすることができる。また上記のように、リレー駆動指令の出力を停止する前に故障診断手段による診断結果をメモリに記憶させる処理を行うようにリレー駆動指令発生手段を構成しておくと、診断結果をメモリに記憶させておくことができるため、ユーザーにメンテナンスを適確に行うための情報を提供することができる。本発明の他の態様では、アノードがメインスイッチを通してバッテリの正極端子に接続された第3のダイオードが設けられて、バッテリの電圧がメインスイッチと第3のダイオードとを通してリレー駆動回路に入力される。この場合、リレー駆動回路は、メインスイッチが閉じられて第3のダイオードとメインスイッチとを通してバッテリの出力電圧が入力されたときにも充電リレーに励磁電流を供給するように構成される。上記のように構成すると、メインスイッチが閉じられたときに、マイクロプロセッサからリレー駆動指令が発生しなくても、充電リレーの接点をオン状態にすることができるため、万一マイクロプロセッサが故障していた場合や、たまたま起動しなかった場合にも充電リレーの接点をオン状態にして負荷を駆動したり、バッテリを充電したりすることができる。本発明によれば、エンジンが停止していて、メインスイッチが開かれているときに、レギュレータとバッテリとの間に挿入した充電リレーの接点をオフ状態に保持することができるため、エンジンが停止していて、メインスイッチが開かれているときに、バッテリをレギュレータから切り離しておくことができる。従って、電源装置を搭載した機器や設備を長期間停止したり、保管したりする際に、バッテリからレギュレータに暗電流が流れてバッテリが消耗するのを防ぐことができる。また本発明によれば、エンジンが回転していて、交流発電機が電圧を発生しているときに、レギュレータの出力によりマイクロプロセッサの電源を確保してリレー駆動指令を発生させ続けることができ、これにより、充電リレーの接点をオン状態に保持することができる。従って、負荷の駆動を停止するためにメインスイッチが開かれている状態でも、エンジンが回転していて、交流発電機が十分な出力を発生していればバッテリを充電することができ、メインスイッチが長時間開かれていた場合にバッテリが充電不足の状態になるのを防ぐことができる。本発明によればまた、メインスイッチを通してバッテリ電圧を検出することによりメインスイッチの状態を検出するため、メンテナンスの終了時等にバッテリが誤って逆に接続された場合には、メインスイッチが閉じられても、メインスイッチが閉じられたことが検出されないようにすることができる。そのため、バッテリが逆接続された場合に、マイクロプロセッサがリレー駆動指令を発生するのを防ぐことができ、バッテリが逆接続された際にバッテリの電圧がレギュレータに印加されてレギュレータが破壊するのを防ぐことができる。本発明において、バッテリの充電モードを、メインスイッチが閉じているときにのみバッテリを充電する第1のモードと、メインスイッチが開いている状態でもエンジンの回転速度が設定速度以上であるときバッテリを充電する第2のモードとに設定する充電モード設定手段を設けるとともに、交流発電機の出力からエンジンの回転速度を検出する回転速度検出手段と、スイッチ状態検出回路が第1の信号を発生しているとき、及び充電モードが第2のモードに設定がされている状態でスイッチ状態検出回路が第2の信号を発生していて回転速度検出手段によりエンジンの回転速度が設定速度以上であることが検出されているときにリレー駆動指令を発生し、充電モードが第1のモードに設定されている状態でスイッチ状態検出回路が第2の信号を発生しているとき、及び充電モードが第2のモードに設定された状態でスイッチ状態検出回路が第2の信号を発生していて回転速度検出手段によりエンジンの回転速度が設定速度未満であることが検出されているとき又はエンジンが停止していることが検出されたときにリレー駆動指令を消滅させるリレー駆動指令発生手段とを構成するようにマイクロプロセッサをプログラムした場合には、メインスイッチが開いている状態でもバッテリを充電することが要求される場合にその要求に応えることができる。本発明において、アノードがメインスイッチを通してバッテリの正極端子に接続された第3のダイオードを設けて、バッテリの電圧がメインスイッチと第3のダイオードとを通してリレー駆動回路に入力された場合にも充電リレーに励磁電流を供給するように構成した場合には、メインスイッチが閉じられたときに、マイクロプロセッサからリレー駆動指令が発生しなくても、充電リレーの接点をオン状態にすることができるため、マイクロプロセッサが起動しなかったり、スイッチ状態検出回路が故障している場合にも充電リレーの接点をオン状態にして負荷を駆動したり、バッテリを充電したりすることができる。以下、図面を参照して本発明の好ましい実施形態を説明する。図1及び図2は本発明の一実施形態の構成を示したもので、これらの図において、11は電源装置本体、12はエンジン10図2参照により駆動される交流発電機、13はバッテリ、14はバッテリ13に対して並列に設けられた負荷、15はメインスイッチ、16はバッテリ13に対して直列に接続されたヒューズである。電源装置本体11は、交流発電機12の出力が入力される交流入力端子11u,11vと、正極側及び負極側の直流出力端子11a及び11bと、一対のリレーコイル接続端子11d,11eと、検出電圧入力端子11fと、交流入力端子11u,11vを通して入力された交流電圧を整流して電圧値が調整された直流電圧を直流出力端子11a,11b間に出力する整流機能付きのレギュレータ11Aとを備えている。電源装置本体11の直流出力端子11a,11b間に得られる直流電圧は、バッテリ13と該バッテリに対して並列に設けられた負荷14とに供給される。本実施形態では、バッテリ13の正極端子と負荷14の一端との間にメインスイッチ15が挿入されている。本実施形態では、電源装置本体11の正極側直流出力端子11aとバッテリ13との間を接続する回路に充電リレー20の常開接点20aが直列に挿入され、充電リレー20を制御するために、電源装置本体11内に、レギュレータ11Aと共に充電リレー制御部21が設けられている。図示の例では、充電リレーの接点20aの一端が電源装置本体の正極側直流出力端子11aに接続され、接点20aの他端がヒューズ16を通してバッテリ13の正極端子に接続されている。そして、ヒューズ16と接点20aの他端との接続点に負荷14を駆動する際に閉じられるメインスイッチ15の一端が接続され、メインスイッチ15の他端が負荷14の一端に接続されている。負荷14の他端はバッテリ13の負極端子と共に電源装置本体11の負極側直流出力端子11bに接続されて接地されている。また負荷14の一端とメインスイッチ15との接続点が検出電圧入力端子11fに接続されている。本実施形態では、メインスイッチ15が、エンジンを運転する際に操作されるキースイッチに組み込まれていて、キーをオフ位置から一方向に一段階を与える回転速度算出用データに変換し、この回転速度算出用データからエンジンの回転速度の情報を得る。電圧検出回路21Fは、バッテリ13の電圧及び又はレギュレータ11Aの出力電圧を検出する回路である。図示の電圧検出回路21Fは、第1のダイオードD1のカソードと第2のダイオードD2のカソードとの接続点に一端が接続され、マイクロプロセッサ21BのポートP4に他端が接続された抵抗器R12と、ポートP4と接地間に接続された抵抗器R13とからなる抵抗分圧回路からなっていて、第1のダイオードD1を通して検出したレギュレータ11Aの出力電圧及び第2のダイオードD2とメインスイッチ15とを通して検出したバッテリ13の電圧を抵抗器R12とR13とにより分圧してマイクロプロセッサのポートP4に入力する。レギュレータ11Aが直流電圧を出力していない状態でメインスイッチ15が閉じられたときには、電圧検出回路21Fがバッテリ電圧を検出し、メインスイッチ15が開いている状態でレギュレータ11Aが直流電圧を出力したときには電圧検出回路21Fがレギュレータの出力電圧を検出する。レギュレータ11Aが直流電圧を出力し、メインスイッチ15が閉じられているときには、電圧検出回路21Fがレギュレータ11Aの出力電圧とバッテリの両端の電圧バッテリ電圧とを検出する。充電リレーの接点20aがオン状態にあって、レギュレータ11Aの出力電圧がバッテリ13に印加されている状態では、レギュレータの出力電圧とバッテリ電圧とが等しくなっている。マイクロプロセッサ21Bは、ポートP4に入力された電圧検出回路21Fの出力電圧をデジタル信号に変換するA/D変換器を入力インターフェースとして備えていて、ポートP4に入力された電圧からレギュレータ11Aの出力電圧及び又はバッテリ13の出力電圧を検出する。図2に示したように、マイクロプロセッサ21Bは、ROMに格納されたプログラムを実行することにより、充電モード設定手段21B1と、回転速度検出手段21B2と、リレー駆動指令発生手段21B3と、故障診断手段21B4とを構成する。充電モード設定手段21B1は、バッテリの充電モードをメインスイッチが閉じているときにのみバッテリを充電する第1のモードと、メインスイッチが開いている状態でもエンジンの回転速度が設定速度以上であるときにはバッテリを充電する第2のモードとに設定する手段である。この手段は、例えば、メインスイッチOFF時の充電を許可/禁止ソフトスイッチの名称がつけられたパラメータからなるソフトウェアスイッチからなっていて、該ソフトウェアスイッチを構成するパラメータの値が0x0016進法の0に設定されているときに、充電モードをメインスイッチオフ時のバッテリの充電を許可する第2のモードとし、該パラメータが0x00以外の値であるときに、充電モードを、メインスイッチオフ時のバッテリの充電を禁止するメインスイッチが閉じているときにのみバッテリを充電する第1のモードとするように構成される。ソフトウェアスイッチを構成するパラメータの値は、外部から設定し得るようにしておく。すなわち、充電モードを第1のモードとするときには、外部からマイクロプロセッサに指令を与えることによりメインスイッチOFF時の充電を許可/禁止ソフトスイッチの名称がつけられたパラメータの値を0x00以外の値にし、充電モードを第2のモードとするときには、メインスイッチOFF時の充電を許可/禁止ソフトスイッチの名称がつけられたパラメータの値を0x00とする。マイクロプロセッサは、充電リレーの接点をON状態又はOFF状態にする処理を行う際に、必要に応じて上記パラメータの値を見に行くことにより、充電モードが第1のモードに設定されているか第2のモードに設定されているかを判定する。なお本実施形態では、充電モード設定手段21B1をソフトウェア上に構成しているが、ディップスイッチなどを用いてマイクロプロセッサのポートに信号を与えることにより、充電モードを第1のモード又は第2のモードとするように充電モード設定手段を構成することもできる。回転速度検出手段21B2は、交流発電機12の出力電圧からエンジンの回転速度を検出する手段で、波形整形回路21Eから得られる回転検出信号からエンジンのクランク軸が1回転するのに要している時間を回転速度算出用データとして検出する。リレー駆動指令発生手段21B3は、ポートP1からリレー駆動指令を出力したり、該リレー駆動指令の出力を停止したりする手段である。本実施形態で用いるリレー駆動指令発生手段21B3は、スイッチ状態検出回路21Dが第1の信号を発生しているときメインスイッチ15が閉じていてポートP2の電位がLレベルであるとき、及び充電モードが第2のモードに設定がされている状態でスイッチ状態検出回路21Dが第2の信号を発生していてポートP2の電位がHレベルで回転速度検出手段により検出されたエンジンの回転速度が設定速度以上であるときに、ポートP1の電位をHレベルにしてリレー駆動指令を出力するように構成されている。本実施形態で用いるリレー駆動指令発生手段21B3はまた、充電モードが第1のモードに設定されている状態でスイッチ状態検出回路21Dが第2の信号を発生しているとき、及び充電モードが第2のモードに設定された状態でスイッチ状態検出回路が第2の信号を発生していて回転速度検出手段によりエンジンの回転速度が設定速度未満であることが検出されているとき又はエンジンが停止していることが検出されているときにポートP1の電位をLレベルにしてリレー駆動指令の出力を停止するように構成されている。マイクロプロセッサ21BがそのポートP1の電位をHレベルにしてリレー駆動指令を出力したときに、リレー駆動回路21CのMOSFETF1がオン状態になって充電リレー20の励磁コイル20Yに励磁電流を流し、接点20aをオン状態にする。またマイクロプロセッサ21BがそのポートP1の電位をLレベルにしてリレー駆動指令の出力を停止したときに、リレー駆動回路21CのMOSFETF1がオフ状態になって充電リレー20の励磁コイル20Yへの励磁電流の供給を停止し、接点20aをオフ状態にする。マイクロプロセッサはまた、電圧検出回路21Fにより検出された電圧からレギュレータ11A及び又はバッテリ13に異常があるか否かや、充電リレーに異常があるか否か等を診断する故障診断手段21B4を構成するようにプログラムされている。故障検出手段21B4は、例えば、エンジンを始動する前に電圧検出回路21Fが検出したバッテリ電圧が設定値未満であるとき例えば定格電圧が12Vのバッテリの電圧が8V未満になったときにバッテリが劣化していると判定してバッテリが異常であると診断する。また回転速度検出手段21B2により検出されるエンジンの回転速度が設定値を超えている状態で、電圧検出回路21Fにより検出される電圧が設定値を超えることができない場合に、バッテリ又はレギュレータが異常であると診断する。またスイッチ状態検出回路21Dによりメインスイッチが閉じられていることが検出されている状態で、レギュレータの出力電圧がバッテリ電圧の設定範囲の下限を与える設定値まで低下することがないときにバッテリの充電が行われていないこと、すなわち充電リレーに異常があってその接点が閉じていないことを診断することができる。上記のように故障診断手段を設ける場合、リレー駆動指令発生手段21B3は、リレー駆動指令を消滅させるマイクロプロセッサのポートP1の電位をLレベルにする前に故障診断手段による診断結果をメモリに記憶させる処理を行うように構成しておく。このような処理を行わせるようにしておけば、次にエンジンを運転した際にメモリに記憶された診断結果を読み出して、その診断結果に基づいて異常表示等を行わせることができる。上記の説明から明らかなように、本実施形態では、マイクロプロセッサ21Bが、交流発電機12の出力からエンジンの回転速度を検出する回転速度検出手段21B2と、スイッチ状態検出回路21Dが第1の信号を発生しているとき、及び充電モードが第2のモードに設定がされている状態でスイッチ状態検出回路21Dが第2の信号を発生していて回転速度検出手段によりエンジンの回転速度が設定速度以上であることが検出されているときにリレー駆動指令を発生し、充電モードが第1のモードに設定されている状態でスイッチ状態検出回路が第2の信号を発生しているとき、及び充電モードが第2のモードに設定された状態でスイッチ状態検出回路が第2の信号を発生していて回転速度検出手段によりエンジンの回転速度が設定速度未満であることが検出されているか又はエンジンが停止していることが検出されているときにリレー駆動指令を消滅させるリレー駆動指令発生手段21B3と、電圧検出回路21Fにより検出された電圧からレギュレータ及び又はバッテリに異常があるか否かを診断する故障診断手段21B4とを構成するようにプログラムされる。本実施形態のように、故障診断手段を設ける場合、リレー駆動指令発生手段は、リレー駆動指令の出力を停止する前に故障診断手段による診断結果をメモリに記憶させる処理を行うように構成される。上記の実施形態において、バッテリ13の向きが正しいとすると、キーを一段階操作してメインスイッチ15を閉じた際に、バッテリ13からメインスイッチ15と第2のダイオードD2とを通して制御用電源回路21Aに電圧が与えられる。このとき制御用電源回路21Aは安定化された直流電圧を出力するため、マイクロプロセッサ21Bに電源電圧が与えられて、マイクロプロセッサ21Bが起動する。またバッテリが正しく接続されている状態でメインスイッチ15が閉じられると、バッテリ13から第3のダイオードD3を通してリレー駆動回路21CのMOSFETF1のゲートに電圧が印加されるとともに、第2のダイオードD2を通してバッテリ電圧が充電リレー20の励磁コイル20YとMOSFETF1との直列回路に印加されるため、MOSFETF1がオン状態になって励磁コイル20Yに電流が流れる。これにより充電リレーの接点20aがオン状態になり、レギュレータ11Aの出力端子間にバッテリ13が接続された状態になる。またこのときスイッチ状態検出回路21Dが第1の信号を発生しマイクロプロセッサのポートP2の電位をLレベルにし、マイクロプロセッサ21BがそのポートP1の電位をHレベルとしてリレー駆動指令を発生するため、このリレー駆動指令によってもリレー駆動回路21Cが充電リレー20の励磁コイル20Yに励磁電流を流し、充電リレー20の常開接点20aをオン状態に保持する。またこのときバッテリ13及びレギュレータ11Aからメインスイッチ15を通して負荷14に電流が供給される。充電リレー20の接点20aをオン状態にしてレギュレータの出力でバッテリ13を充電し、メインスイッチ15を閉じて負荷14を駆動している状態で、キースイッチを操作してメインスイッチ15を開くと、スイッチ状態検出回路21DがマイクロプロセッサのポートP2に第2の信号を与えるため、マイクロプロセッサはリレー駆動指令の出力を停止する。またメインスイッチ15が開かれると、バッテリ13から第3のダイオードD3を通してリレー駆動回路21Cに入力されていた電圧が消滅する。従って、充電リレーの励磁コイル20Yへの励磁電流の供給が停止され、充電リレーの接点20aがオフ状態になる。充電モード設定手段21B1により、充電モードが第2のモードメインスイッチが開いている状態でも、エンジンの回転速度が設定速度以上であるときにはバッテリを充電するモードに設定されている場合には、メインスイッチ15を開いている状態でも交流発電機の回転速度が設定速度以上であることが検出されたときに、マイクロプロセッサ21BのポートP1からリレー駆動回路21Cにリレー駆動指令が与えられるため、リレー駆動回路から充電リレー20の励磁コイルに励磁電流が供給され、その接点20aがオン状態になる。これによりレギュレータ11Aの出力がバッテリ13に供給されるようになり、バッテリが充電されるようになる。バッテリ13が正しい向きと逆の向きに接続されている場合には、メインスイッチ15を閉じた際に、ダイオードD2によりバッテリ電圧が制御用電源回路21Aに入力されるのが阻止されるため、制御用電源回路21Aが安定化された直流電圧Vccを出力することがなく、マイクロプロセッサ21Bは起動しない。またバッテリ13が逆向きに接続されている場合には、ダイオードD2により、充電リレー20の励磁コイル20Yにバッテリ電圧が印加されるのが阻止されるため、充電リレー20の接点20aが閉じることはない。従って、バッテリの電圧がレギュレータ11Aに逆方向に印加されるのを防ぐことができ、バッテリからレギュレータ内のダイオードDx,Du及びDy,Dvを通して短絡電流が流れてレギュレータが破壊するのを防ぐことができる。またバッテリが逆向きに接続されているときには、第3のダイオードD3により、リレー駆動回路21Cにバッテリ電圧が逆方向に印加されるのを阻止することができるため、リレー駆動回路21Cが破損するのを防ぐことができる。同様に、ダイオードD5により、スイッチ状態検出回路21Dにバッテリ電圧が逆方向に入力されるのを阻止することができるため、スイッチ状態検出回路のトランジスタTR3が破損するのを防ぐことができる。またバッテリが逆向きに接続されている場合には、エンジンを始動させる位置までキースイッチを操作してもスタータモータは回転しないため、交流発電機12からレギュレータ11Aを通して制御用電源回路21Aに電圧が与えられることはない。従ってマイクロプロセッサ21Bは起動せず、マイクロプロセッサ21Bからリレー駆動回路21Cにリレー駆動指令が与えられることはないため、充電リレーの接点20aが閉じることはない。上記の説明では、エンジンを始動及び停止させる際に操作されるキースイッチにメインスイッチ15が組み込まれていて、メインスイッチ15を閉じた後にエンジンを始動させる操作が行われるとしたが、メインスイッチ15がキースイッチと別個に設けられていて、エンジンの始動がメインスイッチの状態とは無関係に行われる場合、及びバッテリ13がエンジンを動作させるために用いられるバッテリとは別のバッテリである場合には、メインスイッチ15を開いた状態でエンジンが始動させられることがあり得る。メインスイッチ15を開いた状態でエンジンを始動させた場合には、交流発電機12の出力電圧がレギュレータ11Aにより整流されて、第1のダイオードD1を通して制御用電源回路21Aに入力される。そのため、制御用電源回路21Aから安定化された直流電圧Vccが出力され、マイクロプロセッサ21Bが起動する。エンジンが始動した後、バッテリ13が正しく接続されている状態でメインスイッチ15が閉じられると、スイッチ状態検出回路21DがマイクロプロセッサのポートP2に第1の信号を与える。このときマイクロプロセッサ21BはポートP1からリレー駆動指令を発生するため、リレー駆動回路21Cから充電リレー20の励磁コイル20Yに励磁電流が供給されて、充電リレーの接点20aがオン状態になり、レギュレータ11Aからバッテリ13に充電電流を供給し得る状態になる。バッテリ13がエンジンを動作させるために用いられるバッテリとは別のバッテリである場合に、バッテリ13が逆向きに接続されている状態でエンジンが始動させられた後、メインスイッチ15が閉じられたときには、スイッチ状態検出回路21Dがマイクロプロセッサ21BのポートP2に第2の信号を与えるマイクロプロセッサはメインスイッチが閉じたことを検出できないため、マイクロプロセッサはリレー駆動指令を発生しない。従ってバッテリが逆向きに接続されている状態でエンジンが始動した後、メインスイッチ15が閉じられたときに、充電リレーの接点が閉じて、バッテリの電圧がレギュレータに逆方向に印加されるのを防ぐことができる。バッテリ13がエンジンを動作させるために用いるバッテリとは別のバッテリであって、充電モードが第2のモードに設定されている場合には、バッテリが逆接続されている状態でも、交流発電機の回転速度が設定速度以上になったときにマイクロプロセッサがリレー駆動指令を出力して充電リレー20を励磁することがあり得る。このような事態が生じるのを防ぐためには、エンジンを始動した後、メインスイッチが閉じられたことをマイクロプロセッサが少なく1回検出したことを条件として、メインスイッチ15が開いている状態で交流発電機の回転速度が設定速度以上になったときにリレー駆動指令を発生するように、マイクロプロセッサをプログラムしておくことが好ましい。このように構成しておけば、バッテリが逆向きに接続されているときには、エンジンを始動した後、メインスイッチが閉じられたことを検出することができないため、バッテリが逆向きに接続されている状態でエンジンを始動させた後、交流発電機の回転速度が設定速度に達したときにマイクロプロセッサがリレー駆動指令を発生するのを防ぐことができ、バッテリが逆向きに接続されている状態でエンジンが始動させられた後、充電リレーの接点がオン状態になってバッテリの電圧がレギュレータに逆方向に印加されるのを防ぐことができる。上記の実施形態において、回転速度検出手段21B2と、リレー駆動指令発生手段21B3とを構成するために、マイクロプロセッサ21Bに実行させるプログラムのアルゴリズムの一例を示したフローチャートを、図3ないし図6に示した。図3はマイクロプロセッサが起動した後に開始されるメインルーチンを示したものである。このメインルーチンが開始されると、先ずステップS101で入出力ポートやRAMの初期設定を行い、ステップS102で図5に示された充電電流ON判定処理を行う。次いでステップS103でインターバルタイマをセットして割り込みを許可する。割り込みを許可した後、ステップS104でインターバルタイマによる割り込みがかかるのを待ち、割り込みがかかったときにステップS105に移行する。ステップS105では、電圧検出回路21Fが検出しているバッテリ電圧を読み込む。次いでステップS106に進んで、図4に示した回転検出信号処理で検出された回転速度算出用データからエンジンの回転速度交流発電機12の回転速度を算出する。ステップS106で回転速度を算出した後、ステップS107に進んで充電リレーの接点がON状態にあるか否かを判定する。その結果充電リレーの接点がON状態にないと判定されたときには、ステップS108に進んで図5に示された充電リレーON判定処理を行った後ステップS104に戻る。またステップS107で充電リレーの接点がON状態にあると判定されたときには、ステップS109に進んで図6に示された充電リレーOFF判定処理を行った後ステップS104に戻る。図4に示された回転検出信号処理は、マイクロプロセッサが、波形整形回路21Eから与えられる矩形波信号の立ち上がりのレベル変化を検出する毎に実行される。図4の処理においては、先ずステップS201で前回の回転検出信号矩形波信号のレベル変化が入力された時刻から今回の回転検出信号が入力された時刻までの時間を、エンジンのクランク軸が1回転するのに要した時間に変換して、この時間を回転速度算出用データとしてRAMに記憶させる。図5の充電リレーON判定処理においては、先ずステップS301で充電リレーの接点がON状態にあるか否かを判定する。この判定の結果、充電リレーの接点がON状態にあると判定されたときには、以後何もしないでこの処理を抜ける。ステップS301で充電リレーの接点がON状態にないと判定されたときには、ステップS302に進んでスイッチ状態検出回路21Dの出力からメインスイッチがON状態にあることが検出されているか否かを判定する。その結果メインスイッチがON状態にあることが検出されている場合には、ステップS303に進んでリレー駆動指令を発生させた後メインルーチンに復帰する。ステップS302でメインスイッチがON状態でないと判定されたときには,ステップS304に進んでメインスイッチON時の充電が許可されているか否か充電モードが第2のモードであるか否かを判定し、メインスイッチON時の充電が許可されていない充電モードが第1のモードであると判定されたときには、以後何もしないでメインルーチンに復帰する。ステップS304でメインスイッチON時の充電が許可されている充電モードが第2のモードであると判定されたときには、ステップS305に進んで、回転速度検出手段により検出されたエンジンの回転速度が充電を許可する設定速度に達しているか否かを判定する。この判定の結果、エンジンの回転速度が充電を許可する設定速度に達していないと判定されたときには、以後何もしないでメインルーチンに復帰する。ステップS305でエンジンの回転速度が充電を許可する設定速度に達していると判定されたときにはステップS303に進んでリレー駆動指令を発生させた後メインルーチンに復帰する。図6に示された充電リレーOFF判定処理においては、先ずステップS401でメインスイッチが閉じているか否かを判定する。その結果メインスイッチが閉じていると判定されたときには以後何もしないでメインルーチンに復帰する。ステップS401でメインスイッチが閉じていないと判定されたときにはステップS402に進んでエンジンが停止しているか否か回転速度検出手段により検出された回転速度が零であるか否かを判定する。その結果エンジンが停止していないと判定されたときには以後何もしないでメインルーチンに復帰する。ステップS402でエンジンが停止していると判定されたときには、ステップS403に進んで故障診断手段による故障診断結果の記憶が完了しているか否かを判定し、完了していない場合には何もしないでメインルーチンに復帰する。ステップS403で、故障診断手段による故障診断結果の記憶が完了していると判定された場合には、ステップS404に進んでリレー駆動指令を停止させた後にメインルーチンに復帰する。図3ないし図6に示されたアルゴリズムによる場合には、図4の処理と、図3のメインルーチンのステップS106とにより、回転速度検出手段21B2が構成される。また図5に示した充電リレーON判定処理と、図6に示した充電リレーOFF判定処理とにより、リレー駆動指令発生手段21B3が構成される。上記の実施形態では、バッテリの充電モードを、メインスイッチが閉じているときにのみバッテリを充電する第1のモードと、メインスイッチが開いている状態でもエンジンの回転速度が設定速度以上であるときバッテリを充電する第2のモードとに設定する充電モード設定手段を設けて、交流発電機の出力からエンジンの回転速度を検出する回転速度検出手段21B2と、スイッチ状態検出回路21Dが第1の信号を発生しているとき、及び充電モードが第2のモードに設定がされている状態でスイッチ状態検出回路21Dが第2の信号を発生していて回転速度検出手段により検出されたエンジンの回転速度が設定速度以上であるときにリレー駆動指令を発生し、充電モードが第1のモードに設定されている状態でスイッチ状態検出回路が第2の信号を発生しているとき、及び充電モードが第2のモードに設定された状態でスイッチ状態検出回路が第2の信号を発生していて回転速度検出手段により検出されたエンジンの回転速度が設定速度未満であるときにリレー駆動指令を消滅させるリレー駆動指令発生手段とを構成するようにマイクロプロセッサがプログラムされているが、本発明に係る電源装置は、基本的には、メインスイッチが開いているときに充電リレーの接点をオフ状態にし、メインスイッチが閉じているときに充電リレーをオン状態にするように、メインスイッチの状態に応じて充電リレーを制御するように構成すればよく、充電モード設定手段は省略することができる。充電モード設定手段を省略する場合、マイクロプロセッサは、スイッチ状態検出回路が第1の信号を発生しているときにリレー駆動指令を発生し、スイッチ状態検出回路が第2の信号を発生しているときにリレー駆動指令を消滅させるリレー駆動指令発生手段を構成するようにプログラムされる。上記の実施形態ではまた、マイクロプロセッサ21Bが、電圧検出回路21Fにより検出された電圧からレギュレータ及び又はバッテリに異常があるか否かを診断する故障診断手段を構成するようにプログラムされるが、レギュレータ及び又はバッテリの異常の有無を特に診断する必要がない場合には、この故障診断手段を省略することができる。図6の充電リレーOFF判定処理では、ステップS402でエンジンが停止したことが検出された時にステップS403に進むようにしたが、ステップ402でエンジンの回転速度が設定速度未満であるか否かを判定して、エンジンの回転速度が設定速度未満であるとき交流発電機がバッテリを充電するために必要な出力を発生することができない状態にあるときにステップS403に進むようにしてもよい。上記の実施形態のように、アノードがメインスイッチを通してバッテリの正極端子に接続された第3のダイオードD3を設けて、バッテリ13の電圧がメインスイッチ15と第3のダイオードD3とを通してリレー駆動回路21Cに入力された場合にも充電リレーに励磁電流を供給するように構成しておくと、メインスイッチ15が閉じられたときに、マイクロプロセッサ21Bからリレー駆動指令が発生しなくても、充電リレーの接点をオン状態にすることができるため、マイクロプロセッサ21Bが起動しなかったり、スイッチ状態検出回路21Dが故障している場合にも充電リレー20の接点20aをオン状態にして負荷14を駆動したり、バッテリ13を充電したりすることができるという利点が得られる。しかしながら、本発明はこのように構成する場合に限定されるものではなく、第3のダイオードD3を省略して、マイクロプロセッサ21Bがリレー駆動指令を出力したときにのみ、充電リレーを励磁するように構成してもよい。上記の実施形態では,交流発電機12として単相交流発電機が用いられているが、三相交流発電機を用いる場合にも本発明を適用することができるのはもちろんである。上記の実施形態では、レギュレータとして短絡式のレギュレータを用いたが、レギュレータ11Aは、交流入力端子を通して入力された交流電圧を整流して電圧値が調整された直流電圧を直流出力端子間に出力する整流機能付きのレギュレータであればよく、他の形式のレギュレータを用いることもできる。例えば、フルブリッジ型の全波整流回路のブリッジの上側アーム及び又は下側アームをサイリスタ等の単方向性スイッチング素子により構成した制御整流回路と、バッテリ電圧が設定値を超えたときに制御整流回路の上側及び又は下側アームのスイッチング素子をオフ状態にしてバッテリへの電流の供給を停止するようにスイッチング素子を制御するオープンタイプのレギュレータを用いる場合にも本発明を適用することができる。オープンタイプのレギュレータを用いる場合には、その交流入力端子に電圧が印加された際に、オン状態にすべきスイッチング素子順方向電圧が印加されているスイッチング素子に直ちにトリガ信号を供給することができるように、各スイッチング素子のトリガ回路を構成して、交流入力端子に交流電圧が入力されたときにレギュレータが直ちに直流電圧を出力するように構成しておく。上記の実施形態では、マイクロプロセッサ21Bが主として充電リレーを制御するために設けられているが、マイクロプロセッサ21Bがレギュレータを制御するマイクロプロセッサを兼ねるように構成することもできる。この場合には、例えば図3のメインルーチンのステップS106とステップS107との間にレギュレータの制御を実行させるステップを設ける。上記の実施形態では、電圧検出回路21Fが、バッテリ電圧及びレギュレータの出力電圧の双方が反映された電圧を検出するように構成されているが、バッテリ電圧を検出する電圧検出回路と、レギュレータの出力電圧を検出する電圧検出回路とを個別に設けて、これらの電圧検出回路の出力から故障診断を行うように構成することもできる。"