(57)【要約】【課題】  多様な環境下で使用されることが想定されるロボットコントローラの電源ユニットを、低コストで小形に構成する。【解決手段】  ロボットコントローラ２に内蔵される電源ボード１１を、強電系ブロック１１Ｈ，弱電系ブロック１１Ｌに分けて電気的に絶縁し、電源電圧の供給制御を及び監視を行うためのＣＰＵ２１，ＣＰＵ２２を夫々配置する。そして、両者が互いに通信を行うように構成すると共に、ＣＰＵ２２は、コントローラ２のエンジンボード２３とも通信を行う。【選択図】  図１
2007034697.tif 000002
【特許請求の範囲】
【請求項１】
ロボットコントローラに内蔵され、前記ロボットコントローラ並びにロボット本体を動作させるための電源を生成して供給する電源ユニットにおいて、
比較的高い電源電圧を生成供給する強電系ブロックと、
この強電系ブロックと電気的に絶縁されており、比較的低い電源電圧を生成供給する弱電系ブロックと、
前記強電系ブロックに配置され、電源電圧の供給制御を及び監視を行うための第１ＣＰＵと、
前記弱電系ブロックに配置され、電源電圧の供給制御を及び監視を行うための第２ＣＰＵとを備え、
前記第１，第２ＣＰＵは相互に通信を行うように構成され、
前記第２ＣＰＵは、前記ロボットコントローラに内蔵される制御ユニットとも通信を行うように構成されていることを特徴とするロボットコントローラの電源ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットコントローラに内蔵され、前記ロボットコントローラ並びにロボット本体を動作させるための電源を生成して供給する電源ユニットに関する。
【背景技術】
【０００２】
一般に、ロボットコントローラに内蔵される電源ユニットはハードウエアで構成されており、外部より供給される商用交流電源に基づき各レベルの直流電圧を生成して、コントローラ内部に供給したり、コントローラに接続されるロボット本体に供給するようになっている（例えば、特許文献１参照）。
【特許文献１】特開平９−２９８８７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、近年はロボット製品がより多くの国で使用される状況にあると共に各規格への対応やＰＬ法への対応なども必要となっており、様々な電源環境において使用される場合が想定される。すると、ユーザが電源ユニット側の電圧設定に対して、異なる電圧の電源を供給するなどの誤使用が発生する確率はより高くなるため、そのような誤使用が発生した場合のフェイルセーフ対策や、ロボットを緊急停止させるシステムを二重化することが要求される場合もある。
しかしながら、斯様な状況下に対応する電源ユニットをハードウエアで構成しようとすると、異なる電源環境に対応する構成が個別に必要となるため、電源ユニットのサイズが大型化すると共にコストアップを招くことが問題となる。
本発明は上記事情に鑑みてなされたものであり、その目的は、多様な環境下で使用されることが想定されるロボットコントローラの電源ユニットを、低コストで小形に構成することにある。
【課題を解決するための手段】
【０００４】
本発明によれば、電源ユニット内の強電系ブロック，弱電系ブロックに、電源電圧の供給制御を及び監視を行うための第１ＣＰＵ，第２ＣＰＵを夫々配置する。そして、両者は互いに通信を行うと共に、第２ＣＰＵは、ロボットコントローラに内蔵される制御ユニットとも通信を行う。即ち、ロボットコントローラに供給される商用交流電源環境が様々に異なる場合でも、第１ＣＰＵは、電源電圧を監視するためのしきい値を使用される環境に応じて適切に設定して対応することができる。従って、異なる電源環境に対応して異なる監視回路を用意する必要がなく、電源ユニット、ひいてはロボットコントローラを小型且つ低価格で構成することができる。また、強電系ブロックにおける電源電圧の監視結果は、第１ＣＰＵから第２ＣＰＵを介して制御ユニットに伝達されるので、制御ユニットは、自身とは電気的に絶縁されている強電系ブロックの電圧監視結果を、適切な状態で参照することができる。
【発明を実施するための最良の形態】
【０００５】
以下、本発明の一実施例について図面を参照して説明する。図４は、一般的な産業用ロボットの制御システム構成を示すものである。当該システムは、ロボット本体１と、このロボット本体１を制御するコントローラ２と、このコントローラ２に接続されたティーチングペンダント３とから構成されている。
上記ロボット本体１は多関節型として構成され、ベース４と、このベース４に水平方向に旋回可能に支持されたショルダ部５と、このショルダ部５に上下方向に旋回可能に支持された下アーム６と、この下アーム６に上下方向に旋回可能に支持された上アーム７と、この上アーム７に上下方向に旋回可能に支持された手首８とから構成されており、手首８は先端部に回転（捻り動作）可能なフランジ９を備えている。尚、図示はしないが、ワークを把持するハンドはフランジ９に取り付けられるようになっている。
【０００６】
図１は、コントローラ２の内部構成を、電源ボートを中心として示す機能ブロック図である。電源ボード（電源ユニット）１１には、例えば３相２００Ｖの商用交流電源１２がコンタクタ１３を介して供給されるようになっている。コンタクタ１３の出力側には、突入電流防止用のトライアック１４（Ａ）及び整流用のダイオードブリッジ１５が接続されており、ダイオードブリッジ１５の出力側である直流母線１６ａ，１６ｂ間には、平滑コンデンサ１７が接続されている。
直流母線１６ａ，１６ｂによって供給されるＤＣ２８０Ｖの電源は、図示しないロボット本体内部の各軸に配置されているＡＣサーボモータを駆動する、例えばインバータを内蔵して構成されるＩＰＭ（Intelligent Power Module，何れも図示せず）に供給される。また、直流母線１６ａ，１６ｂ間には、上記モータに制動をかけるダイレクトブレーキ（ＤＢ）用のＮＰＮトランジスタ１８，回生ブレーキ用の抵抗１９及びＮＰＮトランジスタ２０の直列回路が接続されている。
【０００７】
電源ボード１１は、比較的高い電源電圧を扱う強電系ブロック１１Ｈと、比較的低い電源電圧を扱う弱電系ブロック１１Ｌとに分かれている。そして、強電系ブロック１１Ｈ側にはＣＰＵ（＿Ａ）２１（第１ＣＰＵ）が配置されており、弱電系ブロック１１Ｌ側にはＣＰＵ（＿Ｂ）２２（第２ＣＰＵ）が配置されている。これらのＣＰＵ２１，２２は相互に通信を行うようになっているが、強電系ブロック１１Ｈと弱電系ブロック１１Ｌとの間は電気的に絶縁されており、ＣＰＵ２１，２２はフォトカプラ３９（図３参照）を介して信号やデータを伝送するようになっている。
【０００８】
また、コントローラ２には、ロボット本体１を制御するための機能を有するエンジンボード（制御ユニット）２３が内蔵されている。そのエンジンボード２３には、ＣＰＵ２４，ＦＰＧＡ（＿１）２５，ＦＰＧＡ（＿２）２６などが搭載されている。ＣＰＵ２４は、制御プログラムに基づいてロボット本体１を制御するものであり、ＦＰＧＡ２５，２６を介してＩＰＭにＰＷＭ制御信号を出力する。信号ＭＴＲ＿ＯＵＴは、ＦＰＧＡ２６がＰＷＭ制御信号をＩＰＭに出力するためのバッファのイネーブル制御を行う信号である。
電源ボード１１におけるコンタクタ１３の開閉制御は、ＣＰＵ２４がＦＰＧＡ２５及び負論理のＡＮＤゲート２７を介して、また、ＦＰＧＡ２６がＡＮＤゲート２７を介して行なうようになっている。ＣＰＵ２１，２２は夫々内部でウォッチドッグパルスＷＤＴ＿Ａ，ＷＤＴ＿Ｂを生成してＦＰＧＡ２５に出力する。
【０００９】
ＦＰＧＡ２５は、ＣＰＵ２１，２２が夫々出力するウォッチドッグパルスＷＤＴ＿Ａ，ＷＤＴ＿Ｂの出力状態を監視し、これらの出力状態に異常があることを検出すると、ＡＮＤゲート２７を介してコンタクタ１３を開くように制御する。また、ＦＰＧＡ２５，２６間においても、夫々が内蔵するウォッチドッグタイマによる相互監視を行なっている。更に、ＦＰＧＡ２５はＣＰＵ２４が使用するレジスタなどを提供し、ＦＰＧＡ２６には、ＩＰＭモジュールより外部異常モード信号ＦＯが入力されるようになっている。
また、ＣＰＵ２１は、トライアック１４，ダイレクトブレーキ用のトランジスタ１８及び電源回生用のトランジスタ２０をオンオフ制御するが、その制御信号はＦＰＧＡ２５にも与えられることで二重化されている。更に、ＣＰＵ２１，２２の何れかが監視している電源電圧の異常を示すＰＦＡＩＬ信号を出力すると、ＯＲゲート２８を介してＦＰＧＡ２５に出力される。
【００１０】
ＦＰＧＡ２５に内蔵されているウォッチドッグタイマがオーバーフローするか、又はＦＰＧＡ２６に与えられる外部異常モード信号ＦＯがアクティブになると、負論理のＡＮＤゲート２９を介してＣＰＵ２１，２２にＦＯ＿ＯＵＴ信号が出力される。また、ＦＰＧＡ２５，２６の何れか一方が何らかの要因の異常を検出すると、その異常検出信号は負論理のＡＮＤゲート３０を介してロボット本体１に出力され、内蔵されているＡＣサーボモータのブレーキ回路がＯＮされるようになっている。
【００１１】
図２は、電源ボード１１を中心とするより詳細な構成を示す機能ブロック図である。商用交流電源１２は、図１では図示しないノイズフィルタ３１を介して供給される。強電系ブロック１１Ｈ側では、ＡＵＸコンバータ３２により電圧５Ｖ，１１Ｖの電源５ＶＨ，１１ＶＨが生成され、ＣＰＵ２１等に供給されるようになっている。ＣＰＵ２１は、商用交流電源１２の電圧や５ＶＨ，１１ＶＨの電源電圧と共に、ＤＣバス（＝直流母線１６ａ）の電圧２８０Ｖを監視し、その監視結果をメモリ３３に書き込んで記憶させるようになっている。尚、ＣＰＵ２１や図示しないＡ／Ｄ変換器、及びメモリ３３を加えたものは、マイクロコンピュータを構成する。
【００１２】
一方、弱電系ブロック１１Ｌ側については、ノイズフィルタ３１の出力側より突入防止トライアック４１（Ｂ）、整流ダイオード３４及び平滑コンデンサ３５を介してDC＿Outputコンバータ３６に直流電源が供給されている。コンバータ３６は、５ＶＬ，１２ＶＬ，２４ＶＬ，２４ＶＬＩＯ，２４ＶＬＭＢ，２４ＶＬＦＢ，１８ＶＨの各電源電圧を生成し、ＣＰＵ２２を含む各部に供給するようになっている。
これらの電源のうち、５ＶＬ，１２ＶＬはＣＰＵ２２及びエンジンボード２３に供給され、２４ＶＬＦＢは図示しない空冷ファンの駆動用電源として供給される。また、２４ＶＬ，２４ＶＬＩＯ，２４ＶＬＭＢは、スイッチ３７を介してエンジンボード２３に供給されており、１８ＶＨは、ＩＰＭのゲート駆動用電源として供給されている。また、ＤＣバスに接続されている転流ダイオード３８は、電源瞬断などが発生した場合に、ロボット本体１の減速エネルギー、即ちモータの回生エネルギーをＤＣ＿ＯＵＴＰＵＴコンバータ３６に導くことで、エンジンボード２３に供給される制御電源を確保するために配置されている。
【００１３】
そして、ＣＰＵ２２は、コンバータ３６により生成出力される電源のうち、５ＶＬ，１２ＶＬ，２４ＶＬ，２４ＶＬＩＯの電圧を周期的に監視しており、その監視結果をメモリ３８に書き込んで記憶させる。この場合も、ＣＰＵ２２や図示しないＡ／Ｄ変換器、及びメモリ３８を加えたものは、マイクロコンピュータを構成する。
また、図３は、電源ボード１１の一構成例を示すものである。図３の場合、強電系ブロック１１Ｈと弱電系ブロック１１Ｌとは、夫々独立した基板で構成され、両者を上下に重ねた構造となっている。そして、両者の間は、フォトカプラ３９を介して信号等が伝送される。
【００１４】
次に、本実施例の作用について図５乃至図１４も参照して説明する。
＜強電系ブロック１１Ｈ側：ＣＰＵ２１による処理＞
図５乃至図１０は、強電系ブロック１１Ｈ側のＣＰＵ２１による制御内容を示すフローチャートであり、図５は起動時に行なわれるイニシャライズ処理ルーチンを示す。ＣＰＵ２１は、レジスタ及び制御に使用する各種変数の初期化を行ない（ステップＡ１，Ａ２）、電源ボード１１のハードウエアリビジョン（仕様番号）を取得する（ステップＡ３）。また、取得した仕様が標準（わが国向け）であれば、交流入力電圧が１００／２００Ｖの何れに設定されているかを、例えば図示しないディップスイッチの設定を読み込むなどして取得する（ステップＡ５）。
次に、ＣＰＵ２１は、ユーザによりティーチングペンダント３を介して入力設定された電源監視条件（所定条件）を、ＣＰＵ２２及びエンジンボード２３を介して取得する（ステップＡ５ａ）。ここで、「電源監視条件」とは、例えば監視する電源電圧の種類、サンプリング周期及びサンプリングを行なう期間などである。尚、メモリ３３の容量には自ずと限りがあるため、サンプリング期間は（サンプリング周期にもよるが）高々数秒程度であり、その期間を超えると最新のデータを順次オーバーライトして記録する。
【００１５】
続いて、ＣＰＵ２１は、通常の起動であるか否かを例えばステップＡ５と同様にして判断する（ステップＡ６）。通常の起動でなければ（「ＮＯ」）ソフトウエアの書き込み処理を行なう場合であるからその処理ループを実行し、通常の起動であれば（「ＹＥＳ」）コンタクタ１３をＯＮにすると（ステップＡ７）商用交流電源１２の３相（Ｒ，Ｓ，Ｔ）電圧を夫々検出する（ステップＡ８）。
そして、それらの交流電圧が正常か否か、即ちユーザが入力したＡＣ電圧がハードウエア仕様と整合しているか否かを判断し（ステップＡ９）、正常であれば（「ＹＥＳ」）初期状態でＯＦＦとなっているトライアック４１（Ｂ）をＯＮにする（ステップＡ１０）。それから、メインループの実行を開始する。尚、メインループでは、ＣＰＵ２１は以降の図に示す処理以外の制御に関するコマンドを実行する。
【００１６】
また、ステップＡ８，Ａ９をループしている場合に、所定時間を経過してもステップＡ９における判断が「ＹＥＳ」とならなければ（ステップＡ９ａ，「ＹＥＳ」）、ユーザが入力したＡＣ電圧がハードウエア仕様と相違していることが推定される。従って、その場合には「ＡＣ誤入力」と判定してトライアック４１（Ｂ）をＯＮせず回路を保護し、且つ、各種ＤＣ＿ＯＵＴＰＵＴ電圧を出力しないことでシステムの起動を不能とする（ステップＡ９ｂ）。
【００１７】
図６は、２００μｓ毎に発生するタイマ割込み処理であり、ＣＰＵ２１は、この処理においてウォッチドッグタイマパルスＷＤＴ＿Ａを生成出力する。先ず、自身の出力ポートＰ００の出力レベル設定を「０（Ｌ）」にしているか否かを判断し（ステップＡ１１）、設定が「０」であれば（「ＹＥＳ」）出力レベル設定を「１（Ｈ）」に反転させて（ステップＡ１２）リターンする。一方、ステップＡ１１において、出力ポートＰ００の出力レベル設定が「０」でなく「１」であれば（「ＮＯ」）出力レベル設定を「０」に反転させて（ステップＡ１３）リターンする。
図７は、ＣＰＵ２１の出力ポートＰ００より出力されるウォッチドッグタイマパルスＷＤＴ＿Ａの波形を、エンジンボード２３側で見た状態で示すタイミングチャートである。即ち、パルス波形は数１００μｓ周期となるが、フォトカプラ３９による信号遅延が数１０μｓあるため、波形の立上り，立下りが鈍ることで図７に示すような波形となる。
【００１８】
ここで、ＦＰＧＡ２５は、上述したようにウォッチドッグタイマパルスＷＤＴ＿Ａ，ＷＤＴ＿Ｂを監視しており、これらのパルスがレベル変化しなくなり、ハイ又はロウレベルに固定された状態が一定時間継続すると、ＣＰＵ２１，２２に問題が発生したと判断する。そして、エンジンボード２３上のＣＰＵ２４によって監視されているＷＤＴ異常フラグをセットする。すると、ＣＰＵ２４は、ロボット本体１側のモータ駆動制御を停止する。また、ＦＰＧＡ２５は、コンタクタ１３を開くように制御する。
【００１９】
図８は、５００μｓ毎に発生するタイマ割込み処理である。ＣＰＵ２１は、この割込み処理（ステップＡ２１〜Ａ２８）で、ＦＯ監視，ＡＣ電圧監視，ＤＣバス電圧監視，DC＿Output電圧監視，１８ＶＨ及び１１ＶＨ電圧監視を行なう。尚、ステップＡ２２における「ＡＣ電圧監視」は、Ｒ，Ｓ，Ｔ各相について行い、ステップＡ２３における「バス電圧監視」は、ＤＣバスに出力される２８０Ｖと、その２８０Ｖを出力するための入力レベルとを検出する。
【００２０】
図９は、図８のステップＡ２１における「ＦＯ監視」の処理内容を示すフローチャートである。ＡＮＤゲート２９の出力端子は、ＣＰＵ２１の入力ポートＰ４１に接続されているので、ＣＰＵ２１は、入力ポートＰ４１のレベルが「０」か否かを判断する（ステップＡ３１）。「０」であれば（「ＹＥＳ」）外部異常又はウォッチドッグオーバーフローは発生していないのでカウンタＦｏを「０」にセットして（ステップＡ４０）リターンする。
一方、ステップＡ３１において、入力ポートＰ４１のレベルが「１」であれば（「ＮＯ」）カウンタＦｏをインクリメントし（ステップＡ３２）、カウンタＦｏの値が「３」になっていなければ（ステップＡ３３，「ＮＯ」）そのままリターンする。そして、図９の処理を５００μｓ毎に繰り返すことでカウンタＦｏの値が「３」になると（「ＹＥＳ」）、ＣＰＵ２１は、外部異常が発生したことを示すＦＯ発生フラグをセットする（ステップＡ３４）。
【００２１】
それから、ＣＰＵ２１は、トライアック１４（Ａ）をＯＦＦにすると（ステップＡ３５）トランジスタ１９（回生スイッチ）をＯＮにする（ステップＡ３７）。すると、モータが回転していることで回生される電力は抵抗２０を介して消費される。続いて、ある電圧以下ではトランジスタ１８（ＤＢスイッチ）もＯＮにすると（ステップＡ３８）直流母線１６ａ，１６ｂ間は短絡されるのでモータの回転は停止する。そして、
カウンタＦｏをゼロクリアして（ステップＡ３９）リターンする。これにより、ロボット本体１側のＡＣサーボモータは停止するようになる。
【００２２】
図１０は、２５０ｍｓ毎に発生するタイマ割込み処理であり、ＣＰＵ２１は、この割込み処理で、「電源」及び「回生抵抗」の温度監視を行なう。ここでの「電源」とは、強電系ブロック１１Ｈであり、その基板の温度を監視する。尚、温度センサはサーミスタなどであり、ＣＰＵ２１は、サーミスタの抵抗変化による電圧の変化をＡ／Ｄ変換して読み込む。先ず、ＣＰＵ２１は、変数ｉを「０」に初期化すると（ステップＡ４１）、その変数ｉの値に応じて温度測定対象を選択する（ステップＡ４２）。即ち、変数ｉが「０」であれば測定対象を「電源」とし、変数ｉが「１」であれば測定対象を「回生抵抗」とするので、最初は「電源」を選択することになる。
【００２３】
選択した対象について測定した温度が異常設定値未満であれば（ステップＡ４３，「ＮＯ」）、カウンタＰＦＡＩＬ＿ＨＴ［ｉ］を「０」とし（ステップＡ４７）、次に、測定温度が警告設定値異常か否かを判断する（ステップＡ４８）。測定温度が警告設定値未満であれば（「ＮＯ」）、カウンタＡＬＡＲＭ＿ＨＴ［ｉ］を「０」とし（ステップＡ５２）、変数ｉが「１」か否かを判断する（ステップＡ５３）。変数ｉが「０」であれば（「ＮＯ」）変数ｉをインクリメントして（ステップＡ５４）ステップＡ４２に移行し、「ＩＰＭハーネスボード」について温度測定を行う。そして、変数ｉが「１」であれば（ステップＡ５３，「ＹＥＳ」）処理を終了しリターンする。
【００２４】
また、ステップＡ４８において、測定した温度が警告設定値以上であれば（「ＹＥＳ」）、カウンタＡＬＡＲＭ＿ＨＴ［ｉ］をインクリメントし（ステップＡ４９）、そのカウンタ値が「３」に等しいか否かを判断する（ステップＡ５０）。上記カウンタ値が「３」に達してなければ（「ＮＯ」）ステップＡ５３に移行し、上記カウンタ値が「３」に達していれば（「ＹＥＳ」）測定対象が高温状態であることを警告出力するためのコマンドをＣＰＵ２２側に送信し（ステップＡ５１）、ステップＡ５３に移行する。
【００２５】
また、ステップＡ４３において、測定した温度が異常設定値以上であれば（「ＹＥＳ」）、ステップＡ４９，Ａ５０の処理と同様に、カウンタＰＦＡＩＬ＿ＨＴ［ｉ］をインクリメントし（ステップＡ４４）、そのカウンタ値が「３」に等しいか否かを判断する（ステップＡ４５）。上記カウンタ値が「３」に達していなければ（「ＮＯ」）ステップＡ４８に移行し、上記カウンタ値が「３」に達していれば（「ＹＥＳ」）ＰＦＡＩＬを出力するため出力ポートＰ１０のレベルを「１」にセットすると共に、カウンタＰＦＡＩＬ＿ＨＴ［ｉ］をゼロクリアし（ステップＡ４６）、ステップＡ５３に移行する。
【００２６】
＜弱電系ブロック１１Ｌ側：ＣＰＵ２２による処理＞
図１１乃至図１４は、弱電系ブロック１１Ｌ側のＣＰＵ２２による制御内容を示すフローチャートであり、図１１は起動時に行なわれるイニシャライズ処理ルーチンを示す。ＣＰＵ２２は、レジスタの初期化を行ない（ステップＢ１）、電源ボード１１のハードウエアリビジョンを取得する（ステップＢ２）。また、ＣＰＵ２２は、ＣＰＵ２１と同様に、ユーザによりティーチングペンダント３を介して入力設定された電源監視条件を、ＣＰＵエンジンボード２３を介して取得する（ステップＢ２ａ）。
【００２７】
続いて、ＣＰＵ２２は、通常の起動であるか否かを判断し（ステップＢ３）、通常の起動でなければ（「ＮＯ」）ソフトウエアの書き込み処理を行なう場合であるからその処理ループを実行し、通常の起動であれば（「ＹＥＳ」）シリアル通信／書込みの切替えスイッチをＯＮにする（ステップＢ４）。次に、ＣＰＵ２２は、スイッチ３７及び４０をＯＮにして、２４ＶＬ，２４ＶＬＭＢ，２４ＶＬＩＯ，１８ＶＨの供給を開始させる（ステップＢ５）。
それから、ＣＰＵ２２は、電源ボード１１の使用が標準仕様か、特定客先向けの仕様かを判断し（ステップＢ６）、標準仕様であれば（「ＹＥＳ」）そのままメインループの実行を開始する。また、特定仕様であれば（「ＮＯ」）、特定仕様フラグをセットしてから（ステップＢ７）メインループの実行を開始する。
【００２８】
図１２は、「５００μｓ処理」の内容を示すフローチャートである。ＣＰＵ２２は、先ず、ＦＯ入力に対応するポートＰ１６のレベルが「１（Ｈ）」であるか否かを確認し（ステップＢ２１）、レベルが「０（Ｌ）」であれば（「ＮＯ」）そのまま、レベルが「１」であれば（「ＹＥＳ」）「ＦＯ発生フラグ」をセットしてから（ステップＢ２２）リターンする。
【００２９】
尚、図１３及び図１４は、Ａ／Ｄ変換処理に関するフローであり、Ａ／Ｄ変換対象とするアナログ信号入力チャネルＡＤ０〜８は、夫々以下のように対応する。
入力チャネル          変換対象
ＡＤ０          信号電圧レベル検出
ＡＤ１            ５ＶＬレベル検出
ＡＤ２          １２ＶＬレベル検出
ＡＤ３          ２４ＶＬレベル検出
ＡＤ４          バッテリレベル検出
ＡＤ５          温度検出（１）
ＡＤ６          温度検出（２）
ＡＤ７          温度検出（３）
ＡＤ８          ２４ＶＬＩＯレベル検出
【００３０】
図１３は、１ｍｓ毎に実行される処理ルーチンである。ＣＰＵ２２は、このルーチンでは入力チャネルＡＤ０〜８について順次Ａ／Ｄ変換処理を行なう。先ず、入力チャネルＡＤ０を選択してＡ／Ｄ変換処理を行ない（ステップＢ３１）、制御レジスタＡＤＣＯＮのビット４が立つことでそのＡ／Ｄ変換処理が終了すると（ステップＢ３２，「ＹＥＳ」）、Ａ／Ｄ変換結果のデータを入力チャネルＡＤ０に対応する変数に格納する（ステップＢ３３）。次に、入力チャネルＡＤ０を選択して上記と同様の処理を行ない（ステップＢ３４〜Ｂ３６）、以下同様の処理を入力チャネルＡＤ８まで繰り返し実行する。
【００３１】
そして、ＣＰＵ２２は、ＣＰＵ２１が行う図１０のフローチャートと同様に、温度監視処理を行なうようになっている（図１４参照）。但し、ステップＢ５２における温度測定対象は「電源」及び「ＩＰＭハーネスボード」となっており、前者は弱電系ブロック１１Ｌの基板温度である。後者の「ＩＰＭハーネスボード」とは、ロボット本体１の各ＡＣサーボモータに対応するＩＰＭが接続される基板（ハーネスに替わる基板）である。
また、ＣＰＵ２１，２２が上記の処理を行なうことで各測定対象につきＡ／Ｄ変換して得たデータは、夫々のメモリ３３，３８に随時書き込まれて記憶されるようになっている。尚、ＣＰＵ２１，２２間、又はＣＰＵ２２とエンジンボード２３との間における通信処理は、ＣＰＵ２１，２２が上記の処理を行なっている間に送受信割込みを互いに発生させ、その割込み処理として行なわれる。
【００３２】
以上のように本実施例によれば、ロボットコントローラ２に内蔵される電源ボード１１を、強電系ブロック１１Ｈ，弱電系ブロック１１Ｌに分けて電気的に絶縁し、電源電圧の供給制御を及び監視を行うためのＣＰＵ２１，ＣＰＵ２２を夫々配置する。そして、両者が互いに通信を行うように構成すると共に、ＣＰＵ２２は、コントローラ２のエンジンボード２３とも通信を行うようにした。
即ち、コントローラ２に供給される商用交流電源の環境（例えば、電源波形やノイズの重畳状態等）が様々に異なる場合でも、ＣＰＵ２１は、電源電圧を監視するためのしきい値を定格電圧に応じて適切に設定して対応することができ、異なる電源環境に対応して異なる監視回路を用意する必要がなく、電源ボード１１、ひいてはコントローラ２を小型且つ低価格で構成することができる。例えば、コントローラ２が様々な国で使用される場合において、コントローラ２側の電源電圧設定と、実際に入力された商用交流電源電圧とが異なることで「ＡＣ誤入力」検出を行なうことも簡単に対応することができる。
また、強電系ブロック１１Ｈにおける電源電圧の監視結果は、ＣＰＵ２１からＣＰＵ２２を介してエンジンボード２３に伝達されるので、エンジンボード２３は、自身とは電気的に絶縁されている強電系ブロック１１Ｈの電圧監視結果を適切な状態で参照することができる。
【００３３】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
ＣＰＵ２１，２２が行なう処理内容は、個別の設計に応じて必要となるものを適宜選択して実行すればよい。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施例であり、ロボットコントローラの内部構成を、電源ボートを中心として示す機能ブロック図
【図２】電源ボードを中心とするより詳細な構成を示す機能ブロック図
【図３】電源ボードの一構成例を示す概略的な斜視図
【図４】一般的な産業用ロボットの制御システム構成を示す図
【図５】強電系ブロック側のＣＰＵにより、起動時に行なわれるイニシャライズ処理ルーチンを示すフローチャート
【図６】２００μｓ毎に発生するタイマ割込み処理を示すフローチャート
【図７】強電系ブロック側ＣＰＵの出力ポートＰ００より出力されるウォッチドッグタイマパルスの波形を、エンジンボード側で見た状態で示すタイミングチャート
【図８】５００μｓ毎に発生するタイマ割込み処理を示すフローチャート
【図９】図８のステップＡ２１における「ＦＯ監視」の処理内容を示すフローチャート
【図１０】２５０ｍｓ毎に発生するタイマ割込み処理を示すフローチャート
【図１１】弱電系ブロック側ＣＰＵにより起動時に行なわれるイニシャライズ処理ルーチンを示すフローチャート
【図１２】５００μｓ処理の内容を示すフローチャート
【図１３】１ｍｓ毎に実行される処理ルーチンを示すフローチャート
【図１４】弱電系ブロック側ＣＰＵにより実行される図１０と同様の処理内容を示すフローチャート
【符号の説明】
【００３５】
図面中、１はロボット本体、２はコントローラ、１１は電源ボード（電源ユニット）、１１Ｈは強電系ブロック、１１Ｌは弱電系ブロック、２１はＣＰＵ（第１ＣＰＵ）、２２はＣＰＵ（第２ＣＰＵ）を示す。
【図１】
2007034697.tif 000003
【図２】
2007034697.tif 000004
【図３】
2007034697.tif 000005
【図４】
2007034697.tif 000006
【図５】
2007034697.tif 000007
【図６】
2007034697.tif 000008
【図７】
2007034697.tif 000009
【図８】
2007034697.tif 000010
【図９】
2007034697.tif 000011
【図１０】
2007034697.tif 000012
【図１１】
2007034697.tif 000013
【図１２】
2007034697.tif 000014
【図１３】
2007034697.tif 000015
【図１４】
2007034697.tif 000016