商用電源から内部電源を生成して前記生成した内部電源を出力し、前記商用電源の供給停止後にコンデンサによって前記内部電源の出力を保持する電源回路と、デバイスデータが格納される、前記内部電源を用いて記憶内容を保持する揮発性のデバイスメモリと、前記内部電源の供給停止後に記憶内容を保持可能な退避メモリと、ユーザプログラムを実行して前記デバイスメモリ内のデバイスデータを更新するスキャン処理を実行する、前記内部電源を用いて動作する演算部と、前記商用電源の供給停止を検出する停電検出部と、前記コンデンサの容量を検出するコンデンサ容量検出部と、を備え、前記演算部は、前記デバイスメモリ内のデバイスデータのうちの一部を前記退避メモリに退避させる第1の退避処理をスキャン処理毎に実行し、前記停電検出部が前記商用電源の供給停止を検出した時、前記コンデンサにより保持される内部電源を用いて前記デバイスメモリ内のデバイスデータのうちの残りのデータを退避させる第2の退避処理を実行し、前記コンデンサ容量検出部が検出した前記コンデンサの容量が減ると前記第1の退避処理で退避させるデバイスデータのサイズを増やすように、前記コンデンサ容量検出部が検出した前記コンデンサの容量に応じて前記第1の退避処理で退避させるデバイスデータのサイズを変化させる、ことを特徴とするプログラマブルコントローラ。前記コンデンサ容量検出部が検出した前記コンデンサの容量から前記商用電源の供給停止後の前記内部電源の出力の保持時間を算出する保持時間算出部をさらに備え、前記演算部は、前記デバイスメモリ内のデバイスデータの合計サイズから前記保持時間算出部が算出した保持時間内に退避可能なサイズを減算して前記第1の退避処理で退避させるデバイスデータのサイズを算出する、ことを特徴とする請求項1に記載のプログラマブルコントローラ。しかしながら、上記特許文献1に示されているような電源装置は、主電源停電時に電源電圧を保持するため、一般に、電解コンデンサを具備する。電解コンデンサは経年劣化により容量が少なくなる性質があるため、初期段階では、主電源停電時に揮発性メモリのデータを退避させるだけの電圧保持時間を確保出来るが、電解コンデンサの容量が劣化していくに従い、主電源停電時の電圧保持時間が短くなり、揮発性メモリのデータを退避させることが出来なくなるという問題点があった。また、前述のようにPLCは、ユーザプログラムを繰り返し実行するシーケンス制御を行っている。したがって、特許文献2にかかる技術は、PLCはシーケンス制御とデータの退避処理とを行うため、PLCにおける処理量が増え、結果としてPLCのシーケンス制御を実行する処理能力が低下するという問題点があった。本発明は、上記に鑑みてなされたものであって、経年劣化により電源電圧の保持時間が短くなっても、主電源停電時に退避対象のデータを確実に退避させることが可能となるプログラマブルコントローラを得ることを目的とする。上述した課題を解決し、目的を達成するために、本発明は、商用電源から内部電源を生成して前記生成した内部電源を出力し、前記商用電源の供給停止後にコンデンサによって前記内部電源の出力を保持する電源回路と、デバイスデータが格納される、前記内部電源を用いて記憶内容を保持する揮発性のデバイスメモリと、前記内部電源の供給停止後に記憶内容を保持可能な退避メモリと、ユーザプログラムを実行して前記デバイスメモリ内のデバイスデータを更新するスキャン処理を実行する、前記内部電源を用いて動作する演算部と、前記商用電源の供給停止を検出する停電検出部と、前記コンデンサの容量を検出するコンデンサ容量検出部と、を備え、前記演算部は、前記デバイスメモリ内のデバイスデータのうちの一部を前記退避メモリに退避させる第1の退避処理をスキャン処理毎に実行し、前記停電検出部が前記商用電源の供給停止を検出した時、前記コンデンサにより保持される内部電源を用いて前記デバイスメモリ内のデバイスデータのうちの残りのデータを退避させる第2の退避処理を実行し、前記コンデンサ容量検出部が検出した前記コンデンサの容量が減ると前記第1の退避処理で退避させるデバイスデータのサイズを増やすように、前記コンデンサ容量検出部が検出した前記コンデンサの容量に応じて前記第1の退避処理で退避させるデバイスデータのサイズを変化させる、ことを特徴とする。本発明にかかるプログラマブルコントローラは、演算部は、デバイスデータのうちの一部を退避させる第1の退避処理をスキャン処理毎に実行し、商用電源の供給停止時にはコンデンサにより保持される内部電源を用いて残りのデータを退避させる第2の退避処理を実行し、コンデンサの容量が減ると第1の退避処理で退避させるデバイスデータのサイズを増やすので、経年劣化により電源電圧の保持時間が短くなっても主電源停電時に退避対象のデータを確実に退避させることが可能となるという効果を奏する。以下に、本発明にかかるプログラマブルコントローラの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。実施の形態.図1は、本発明の実施の形態のプログラマブルコントローラPLCの構成を示す図である。図示するように、PLC1は、商用電源10からPLC1全体に供給する主電源を生成する電源装置2と、PLC1全体の動作を制御するCPUユニット3とを備える。なお、PLC1は、電源装置2とCPUユニット3のほかに、CPUユニット3による制御の下でFA機器との間で入出力を実行するサブユニット図示せずが装着される。PLC1に装着可能なサブユニットには、例えば温度制御ユニット、ネットワークユニット、D/A変換を行うアナログユニットなどがあり、ユーザは用途に応じてPLC1に装着するサブユニットを選択することができる。電源装置2は、商用電源10から供給される電源4aからCPUユニット3に供給する電源内部電源4dを生成する電源回路21を備えている。電源回路21は、商用電源10からの電源4aの供給が途絶えた際でも電源4dの電圧をしばらく保持するための電解コンデンサコンデンサ22を備えている。なお、以降、商用電源10からの電源4aが途絶えることを主電源停電と表現することもある。電源装置2は、上記電解コンデンサ22の残存容量を検出して、残存容量情報4bを出力するコンデンサ容量検出回路コンデンサ容量検出部23と、電源回路21に供給する商用電源10からの出力の供給有無を検出して停電検出信号4cを出力する停電検出回路停電検出部24とを備えている。なお、コンデンサ容量検出回路23による電解コンデンサ22の残存容量の検出手法は特に限定されるものではない。例えば、特許文献3に開示されているように、電解コンデンサ22の残存容量をユーザプログラム実行中RUN中に検出するために、電解コンデンサ22を二重化しておき、そのうちの一方の電解コンデンサ22の放電時間を測定して、測定した放電時間から残存容量を検出する技術を採用することができる。CPUユニット3は、マイコン31と、電圧保持時間算出回路32と、退避メモリ33と、バックアップ電源回路34と、補助電源35とを備えている。電圧保持時間算出回路保持時間算出部32は、コンデンサ容量検出回路23が出力した残存容量情報4bに基づいて、主電源停電後から電源4dがPLC1の動作可能電圧まで低下するまでの時間である電圧保持時間を算出する。以下に、電圧保持時間算出回路32が電圧保持時間を算出する計算式の一例を示す。残存容量情報4bにより通知される残存容量をC、電源装置2の入力電圧をV1とすると、主電源停電直後に電解コンデンサ22に蓄えられている電荷量Q1は次の式で求められる。Q1=1/2CV121電圧保持時間T1は、PLC1の動作停止時に電解コンデンサ22に残存する電荷量をQ2、商用電源10の電源効率をη、電源装置2の出力電力をPとすると、T1=Q1-Q2/Pη2により求められる。なお、コンデンサ容量検出回路23により残存容量の検出は、所定の頻度例えば1日に1回などで実行され、結果として電圧保持時間算出回路32が出力する電圧保持時間は前記所定の頻度で変化する。一般に、電解コンデンサ22は、経年劣化により容量が小さくなっていくので、電圧保持時間は時間の経過とともに減少してゆく傾向がある。退避メモリ33は、主電源停電時におけるデバイスデータの退避先となる揮発性のメモリである。補助電源35は、二次電池などで構成される。バックアップ電源回路34は、電源回路21から電源4dが供給されている際には、供給されている電源4dを用いて補助電源35を充電するとともに退避メモリ33に電源4eを供給する。そして、主電源停電時には、補助電源35から放電される電力を用いて退避メモリ33に電源4eを供給する。退避メモリ33は、自メモリ33に退避されてきたデバイスデータを電源4eを利用して保持する。マイコン31は、ユーザプログラム361およびシステムプログラム362を実行するCPU演算部36と、デバイスデータ371を保持する揮発性のメモリであるデバイスメモリ37を備えている。CPU36は、システムプログラム362を実行することによりCPUユニット3を制御するための基本的なソフトウェア環境を実現する。CPU36は、システムプログラム362により実現されたソフトウェア環境上でユーザプログラム361の実行とデバイスメモリ37内のデバイスデータ371の更新とを含むスキャン処理を繰り返し実行する。ここで、電解コンデンサ22の劣化により電圧保持時間が出荷時の状態から短くなっていたとしてもデバイスデータ371を取りこぼすことなく退避させることができるように、CPU36はスキャン処理毎にデバイスメモリ37内のデバイスデータ371のうちの一部を退避メモリ33に退避させ第1の退避処理、停電検出回路24が主電源停電を検出した時、電解コンデンサ22により保持される電源4dを用いてデバイスメモリ37内のデバイスデータ371のうちの残りのデータを退避させる第2の退避処理。CPU36は、コンデンサ容量検出回路23が検出した電解コンデンサ22の容量が減るとスキャン処理毎に退避させるデバイスデータ371のサイズを増やすように、コンデンサ容量検出回路23が検出した電解コンデンサ22の容量に応じてスキャン処理毎の退避処理で退避させるデバイスデータのサイズを変化させる。より具体的には、CPU36は、電圧保持時間算出回路32が算出した電圧保持時間T1の間にデバイスデータ371のうちの一度に退避可能なサイズ退避可能サイズを算出する。退避可能サイズがデバイスデータ371の合計サイズよりも小さい場合、デバイスデータ371のうちの電圧保持時間T1の間に退避できないサイズの部分を予め退避させる。CPU36は、上記の退避可能サイズの算出から一部のデバイスデータ371の退避までの処理をスキャン処理毎に実行する。そして、停電検出回路24が出力する停電検出信号4cにより主電源停電を感知すると、デバイスデータ371のうちのスキャン処理毎の退避により退避されていない残りの部分を退避メモリ33に退避させる。例えば、図2のタイミングチャートに示すように、主電源停電が起こってから停電検出回路24が主電源停電を検出して停電検出信号4cにその旨を出力するまでの時間をT2とすると、実際にデバイスデータ371の退避に使用できる時間退避可能時間T3は、電圧保持時間T1からT2を減算した値となる。したがって、PLC1の動作停止時に電解コンデンサ22に残存する電荷量をQ2、商用電源10の電源効率をηとすると、T3=[{1/2CV12-Q2}/Pη]-T23となる。なお、P、Q2、η、T2は測定などにより予め求めておくとよい。退避可能サイズは、例えば、式3により求めた退避可能時間T3を、デバイスメモリ37から退避メモリ33にデータ転送する際の転送速度で除算することで得られる。図3は、本発明の実施の形態のPLC1の通常動作時の処理を説明するフローチャートである。図示するように、CPU36は、ユーザプログラム361のチェックを実行するステップS1。チェックの後、CPU36は、ユーザプログラム361の実行とデバイスデータ371の更新とを実行するステップS2。続いて、CPU36は、電圧保持時間算出回路32が出力した電圧保持時間を取得しステップS3、取得した電圧保持時間から退避可能サイズを求めるステップS4。そして、CPU36は、前記求めた退避可能サイズがデバイスデータ371の合計サイズよりも大きいか否かを判定するステップS5。退避可能サイズがデバイスデータ371の合計サイズよりも小さい場合ステップS5、No、CPU36は、デバイスデータ371の合計サイズから退避可能サイズを減算して、電圧保持時間内に退避させることができない合計サイズ退避不可能サイズを算出するステップS6。そして、CPU36は、デバイスデータ371のうちの退避不可能サイズのサイズ分を退避メモリ33へ退避させるステップS7。なお、デバイスデータ371の退避対象の部分の決め方は特に限定されない。例えばステップS2の処理で更新された部分を優先的に退避させるようにしてよい。前記求めた退避可能サイズがデバイスデータ371の合計サイズよりも大きい場合ステップS5、Yes、またはステップS7の処理の後、CPU36は、動作を継続するか否かを判定するステップS8。特に停止指示が内部発行されていないなどの場合、CPU36は、動作を継続すると判定しステップS8、Yes、ステップS2の処理に移行する。動作を継続しない場合ステップS8、No、CPU36は動作を停止しステップS9、通常動作が終了となる。図4は、本発明の実施の形態のPLC1の主電源停電時の動作を説明するフローチャートである。主電源の停電が発生すると、まず、停電検出回路24は主電源停電を検出するステップS11。主電源停電を検出した停電検出回路24は停電検出信号4cを用いて主電源停電が発生した旨をCPU36に通知するステップS12。すると、CPU36は、通知を受信した時点でステップS7の処理を経ていた場合にはデバイスデータ371のうちのステップS7の処理により退避されていない残りの部分を、ステップS7の処理を経ていない場合にはデバイスデータ371の全部を、デバイスメモリ37から退避メモリ33に退避させるステップS13。そして、CPU36は、動作を停止しステップS14、主電源停電時の動作が終了となる。なお、図3および図4に示した動作のうちのCPU36の動作は、システムプログラム362により実現される。なお、以上の説明において、電圧保持時間算出回路32が電圧保持時間を算出し、CPU36が当該電圧保持時間に基づいて退避可能時間を算出するようにしたが、CPU36が電解コンデンサ22の検出値に基づいて電圧保持時間を算出し、算出した電圧保持時間から退避可能時間を算出するようにしてもよい。また、電圧保持時間算出回路32が退避可能時間を算出してCPU36に入力するようにしてもよい。このように、本発明の実施の形態によれば、CPU36はスキャン処理毎にデバイスメモリ37内のデバイスデータ371のうちの一部を退避メモリ33に退避させ、停電検出回路24が主電源停電を検出した時、電解コンデンサ22により保持される電源4dを用いてデバイスメモリ37内のデバイスデータ371のうちの残りのデータを退避させ、コンデンサ容量検出回路23が検出した電解コンデンサ22の容量が減るとスキャン処理毎に退避させるデバイスデータ371のサイズを増やすように、コンデンサ容量検出回路23が検出した電解コンデンサ22の容量に応じてスキャン処理毎の退避処理で退避させるデバイスデータのサイズを変化させる、ように構成したので、電解コンデンサ22の経年劣化により内部電源の保持時間が短くなっても、主電源停電時に退避対象のデータを確実に退避させることが可能となる。また、電解コンデンサ22の容量に応じてスキャン処理毎の退避処理による退避対象のデータサイズを変化させるので、単に更新されたデバイスデータをスキャン毎の退避処理の対象とする場合に比べてスキャン処理毎の退避処理にかかる時間を低減することができるので、スキャン毎の退避処理に起因するシーケンス制御の処理能力の低下を抑えることができる。また、コンデンサ容量検出回路23が検出した電解コンデンサ22の容量から主電源停電後の電源4dの出力の保持時間を算出する電圧保持時間算出回路32をさらに備え、CPU36は、デバイスメモリ37内のデバイスデータ371の合計サイズから電圧保持時間算出回路32が算出した保持時間内に退避可能なサイズを減算してスキャン処理毎の退避処理で退避させるデバイスデータ371のサイズを算出する、ように構成したので、電解コンデンサ22の経年劣化により内部電源の保持時間が短くなっても、主電源停電時に退避対象のデータを確実に退避させることが可能となるとともに、退避処理に起因するシーケンス制御の処理能力の低下を抑えることができる。