制御対象装置の制御および制御対象装置の制御シミュレーションを行うプログラマブルロジックコントローラであって、前記制御対象装置の制御を行う通常動作用ラダープログラムと、前記制御対象装置の制御のシミュレーションを行うシミュレーション用ラダープログラムとが配備されるとともに、前記制御対象装置から入力される入力値、および前記制御対象装置への出力値が格納される通常動作用データレジスタと、入力部から入力される模擬入力値、および前記シミュレーションの結果である模擬出力値が格納されるシミュレーション用データレジスタとが配備される主メモリと、前記通常動作用ラダープログラム、および前記シミュレーション用ラダープログラムの双方を、前記主メモリに常駐させるように配備する制御部と、を備え、前記制御部は、前記入力部を介して、前記通常動作用ラダープログラムが選択されると、前記通常動作用データレジスタに格納されている入力値および出力値を使用しての前記通常動作用ラダープログラムによる前記制御対象装置の制御を行い、前記入力部を介して、前記シミュレーション用ラダープログラムが選択されると、前記通常動作用データレジスタに格納されている入力値、およびシミュレーション用データレジスタに格納されている模擬入力値を使用しての前記シミュレーション用ラダープログラムによる前記シミュレーションを行うことを特徴とするプログラマブルロジックコントローラ。前記通常動作用ラダープログラムで使用されるパラメータと、前記シミュレーション用ラダープログラムで使用されるパラメータと、は対応付けられて設定されており、前記シミュレーション用データレジスタには、前記通常動作用ラダープログラムで使用されるパラメータと対応付けられている前記パラメータの値が、前記通常動作用データレジスタの領域とは別の領域に格納されていることを特徴とする請求項1に記載のプログラマブルロジックコントローラ前記シミュレーション用ラダープログラムは、前記通常動作用データレジスタにおいて、前記入力値を読み込むことはできるが、前記出力値を書き込むことはできないことを特徴とする請求項1または請求項2に記載のプログラマブルロジックコントローラ。前記シミュレーション用ラダープログラムによる前記シミュレーションが行われている間にも、前記通常動作用ラダープログラムによる前記制御対象装置の制御が行われていることを特徴とする請求項1から請求項3のいずれか一項に記載のプログラマブルロジックコントローラ。PLCによる制御対象装置の制御を行ったまま、自由なシミュレーションを行うためには、実際の制御対象装置との入出力インターフェースとは別にシミュレーション用の入出力インタフェースを用意する必要がある。このような設定変更は、運用中の実行環境と、シミュレーションとの実行環境とが混在し、繁雑で、間違いを招きやすいという課題がある。さらに、実行中の運用状態とは異なる条件でシミュレーションを行う際に、外部ツールから、ユーザが想定した入出力値を用いる場合がある。そのような場合にも、外部ツールを柔軟にPLCに接続する機構が必要である。また、特許文献1に記載の技術では、通常動作用ラダープログラムと、シミュレーション用ラダープログラムとを、実行の都度、切り替えて主メモリにロードする必要があるため、その切替のための時間を要するという課題がある。このような背景に鑑みて本発明がなされたのであり、本発明は、シミュレーション用ラダープログラムと通常動作用ラダープログラムとの切替を素早く行うことを課題とする。前記課題を解決するため、本発明は、制御対象装置の制御および制御対象装置の制御シミュレーションを行うプログラマブルロジックコントローラであって、前記制御対象装置の制御を行う通常動作用ラダープログラムと、前記制御対象装置の制御のシミュレーションを行うシミュレーション用ラダープログラムとが配備されるとともに、前記制御対象装置から入力される入力値、および前記制御対象装置への出力値が格納される通常動作用データレジスタと、入力部から入力される模擬入力値、および前記シミュレーションの結果である模擬出力値が格納されるシミュレーション用データレジスタとが配備される主メモリと、前記通常動作用ラダープログラム、および前記シミュレーション用ラダープログラムの双方を、前記主メモリに常駐させるように配備する制御部と、を備え、前記制御部は、前記入力部を介して、前記通常動作用ラダープログラムが選択されると、前記通常動作用データレジスタに格納されている入力値および出力値を使用しての前記通常動作用ラダープログラムによる前記制御対象装置の制御を行い、前記入力部を介して、前記シミュレーション用ラダープログラムが選択されると、前記通常動作用データレジスタに格納されている入力値、およびシミュレーション用データレジスタに格納されている模擬入力値を使用しての前記シミュレーション用ラダープログラムによる前記シミュレーションを行うことを特徴とする。その他の解決手段は実施形態中で後記する。本発明によれば、シミュレーション用ラダープログラムと通常動作用ラダープログラムとの切替を素早く行うことができる。次に、本発明を実施するための形態実施形態というについて、適宜図面を参照しながら詳細に説明する。システム構成図1は、本実施形態に係るPLCシステムの構成例を示す図である。PLCシステム10は、演算装置1と、制御対象装置2と、シミュレーションツール3と、リモート入力装置4と、リモート出力装置5とを有している。制御対象装置2は、PLCによる制御が行われる装置であり、制御対象装置2からの信号値は、リモート入力装置4を介して、制御値として演算装置1に入力される。また、制御対象装置2への信号値は、リモート出力装置5を介して、制御値として演算装置1から制御対象装置2へ送信される。シミュレーションツール3は、ユーザの入力によって、後記するシミュレーションパラメータを生成し、それを演算装置1へ送る。なお、本実施形態では、制御対象装置2から送信されるデータを信号値と称し、演算装置1内で使用されるデータを制御値と称することとする。また、制御値のうち、外部から入力されたものを入力値、外部へ出力されるものを出力値と、適宜称することとする。演算装置1は、PLC本体である。演算装置1は、通信制御部205を介してリモート入力装置4およびリモート出力装置5と制御値信号値のやりとりを行い、制御対象装置2の制御を行う。また、演算装置1は、リモート入力装置4を介した信号値の収集や、入力部203から模擬入力された入力値や、演算結果をデータエリア120に格納し、さらに制御出力を決定出力する。つまり、演算装置1は、通常動作用ラダープログラム111による制御対象装置2の制御を行うとともに、シミュレーション用ラダープログラム112によるシミュレーションを行う。ここで、通常動作用ラダープログラム111とは、制御対象装置2を実際に制御するものであり、シミュレーション用ラダープログラム112とは、実際に制御対象装置2を制御することはなく、通常動作用ラダープログラム111の動作のシミュレーションを行うものである。演算装置1は、主メモリ100、ラダー演算プロセッサ制御部201、マイクロプロセッサ202、入力部203、出力部204、通信制御部205を有している。ラダー演算プロセッサ201は、ラダー図で表現したプログラムラダープログラムを専用に実行処理するプロセッサである。これに対し、マイクロプロセッサ202は、シミュレーションツール3などの外部のツールと接続し、このようなツールとのインターフェース情報をやりとりする。また、マイクロプロセッサ202には、シミュレーションのための模擬入力を行なう入力部203や、シミュレーション結果を模擬出力するための出力部204が接続されている。主メモリ100は、プログラムエリア110と、データエリア120とに分けられており、プログラムエリア110には、通常動作用ラダープログラム111、シミュレーション用ラダープログラム112および制御プログラム113がロードされ、ラダー演算プロセッサ201によって実行されている。以降、通常動作用ラダープログラム111およびシミュレーション用ラダープログラム112の総称として、ラダープログラムと称することがある。制御プログラム113は、通常動作用ラダープログラム111およびシミュレーション用ラダープログラム112を起動実行したり、入力部203を介して入力された入力値をシミュレーション用データレジスタ122に格納したりする。また、データエリア120は、通常動作用データレジスタ121、シミュレーション用データレジスタ122およびパラメータ対応テーブル123が格納されている。通常動作用データレジスタ121は、制御対象装置2からの入力値や、制御対象装置2への出力値が格納されており、通常動作用ラダープログラム111が読み書きできるが、シミュレーション用ラダープログラム112が入力値の読み込みしかできない領域である。シミュレーション用データレジスタ122は、入力部203から模擬入力された入力値や、出力部204へ模擬出力される出力値が格納されており、シミュレーション用ラダープログラム112は読み書き可能であるが、通常動作用ラダープログラム111は読み込みも書き込みも不可能な領域である。以降、通常動作用データレジスタ121と、シミュレーション用データレジスタ122の総称としてデータレジスタと称することがある。通常動作用データレジスタ121およびシミュレーション用データレジスタ122については、後記して説明する。パラメータ対応テーブル123は、後記して説明するが、通常動作用ラダープログラム111およびシミュレーション用ラダープログラム112が使用するパラメータの対応表である。なお、プログラムエリア110における通常動作用ラダープログラム111およびシミュレーション用ラダープログラム112は、主メモリ100上における独立した区画に格納され、それぞれのラダープログラムは独立して機能する。同様に、データエリア120における通常動作用データレジスタ121と、シミュレーション用データレジスタ122は、主メモリ100上における独立した区画に格納され、それぞれのデータレジスタは独立して読み書きされる。以下、本実施形態の具体例について説明する。ラダー図図2は、本実施形態に係るラダー図の具体例を示す図である。図2aは、通常動作用ラダープログラム111で使用するラダー図通常動作用ラダー図の具体例であり、図2bは、シミュレーション用ラダープログラム112で使用するラダー図シミュレーション用ラダー図の具体例である。図2aおよび図2bにおけるラダー図は、ほぼ同様の構成を有している。つまり、図2aを参照して、説明すると、図2におけるラダー図は接点X100、接点X200の入力値ここでは、1または0を積演算し、その演算結果をコイル要素への出力値Y300として出力する。ここで、X100、X200などがパラメータ名である。図2bに示すシミュレーション用ラダープログラム112で使用するラダー図では、図2aの接点X200が接点R600となり、出力Y300が出力M700となっている。図2で示した、通常動作用ラダープログラム111で使用するラダー図のパラメータと、シミュレーション用ラダープログラム112で使用するラダー図のパラメータの対応関係を保持するのが、図3に示すパラメータ対応テーブル123である。なお、パラメータ対応テーブル123は、後記する図7のステップS102で登録されるものである。図4は、動作モードによるラダープログラムの切替を説明するための図である。なお、動作モードは、通常動作用ラダープログラム111による制御を行う通常動作、およびシミュレーション用ラダープログラム112によるシミュレーションを行うシミュレーションの2つである。この例では、動作モードが通常動作である場合、プログラムエリア110でロード実行されている通常動作用ラダープログラム111は、図4に示すように図2aに示すラダー図に従って動作するものとする。また、この例では、動作モードがシミュレーションである場合、プログラムエリア110でロード実行されているシミュレーション用ラダープログラム112は、図4に示すように図2bに示すラダー図に従って動作するものとする。データエリア図5は、本実施形態に係るデータエリアの構成例を示す図である。データエリア120は、各アドレスに制御値が格納されている。図2におけるX100において、Xはデバイス修飾文字を示し、100がアドレスを示している。従って、アドレス100には、図2におけるX100の入力値が格納される。同様に、アドレス200には、図2におけるX200の入力値が格納され、アドレス300には、図2におけるY300の出力値が格納される。また、アドレス600には、図2におけるR600の入力値が格納され、アドレス700には、図2におけるM700の出力値が格納される。本実施形態では、データエリア120を通常動作用データレジスタ121と、シミュレーション用データレジスタ122とに分けている。図5では、アドレス100~300までが通常動作用データレジスタ121であり、アドレス600~700までがシミュレーション用データレジスタ122となる。通常動作用データレジスタ121と、シミュレーション用データレジスタ122の主メモリ100上における各区画は独立している。前記したように、通常動作用ラダープログラム111は、通常動作用データレジスタ121に対する読み書きは可能であるが、シミュレーション用データレジスタ122に対する読み書きはできない。そして、シミュレーション用ラダープログラム112は、シミュレーション用データレジスタ122に対する読み書きは可能であるが、通常動作用データレジスタ121からは入力値の読み込みしかできない。なお、本実施形態において、データエリア120の区画を、レジスタと称しているが、それは計算機アーキテクチャにより異なる。各ラダープログラムとデータエリアとの関係図6は、本実施形態に係る各ラダープログラムとデータエリアとの関係例を示す図である。図6に示すように、通常動作用ラダープログラム111では、X100の入力値として、データエリア120のアドレス100に制御対象装置2から転写入力された制御値が使用され、X200の入力値として、アドレス200に制御対象装置2から転写入力された制御値が使用され、Y300の出力値として、アドレス300の制御値が制御対象装置2へ転写出力される。また、シミュレーション用ラダープログラム112において、X100の入力値として、データエリア120のアドレス100に制御対象装置2から転写入力された制御値が使用され、R600の入力値として、アドレス600に入力部203から模擬入力された制御値が使用され、M700の出力値として、アドレス700の制御値が出力部204へ模擬出力される。このように、同一のデータエリア120を通常動作用データレジスタ121およびシミュレーション用データレジスタ122に分けて、制御値の管理をし、通常動作用ラダープログラム111や、シミュレーション用ラダープログラム112は、それぞれのデータレジスタに対して読込書込を行う。ここで、X100のように、シミュレーション用ラダープログラム112において、制御対象装置2から転写入力される制御値を使用することもできる。フローチャート図7は、本実施形態に係るPLC制御処理の手順を示すフローチャートである。まず、ユーザは、制御プログラム113を起動し、実行するS101。次に、ユーザは、シミュレーションツール3を用いて、シミュレーションに使用するパラメータであるシミュレーションパラメータを作成し、作成したシミュレーションパラメータを、対応する通常動作用パラメータとともに演算装置1へ送信する。ここで、通常動作用パラメータとは、通常動作用ラダープログラム111が参照する変数のことである。シミュレーションパラメータと、通常動作用パラメータを受信した演算装置1の制御プログラム113は、受信した各パラメータを、通常動作用ラダープログラム111のパラメータと、シミュレーション用ラダープログラム112のパラメータとで対応付けてデータエリア120のパラメータ対応テーブル123に登録するS102。このようにすることで、通常動作用ラダー図の各パラメータに、シミュレーション用ラダー図の各パラメータが対応付けられ、シミュレーション用ラダー図シミュレーション用ラダープログラム112が生成されることになる。ここでは、シミュレーション用ラダープログラム112で使用するパラメータが、パラメータ対応テーブル123に対応付けられることで、通常動作用ラダー図に対応するシミュレーション用ラダー図が生成されているが、これに限らず、ユーザが、通常動作用ラダー図をコピーし、そのパラメータを書き換えることで、直接シミュレーション用ラダー図を作成するようにしてもよい。そして、制御プログラム113は、主メモリ100のプログラムエリア110に通常動作用ラダープログラム111をロードし、ロードした通常動作用ラダープログラム111を起動し、実行するS103。次に、制御プログラム113は、主メモリ100のプログラムエリア110にシミュレーション用ラダープログラム112をロードし、ロードしたシミュレーション用ラダープログラム112を起動し、実行するS104。ステップS103とステップS104の順序は逆でもよい。次に、ユーザは、入力部203を介して、動作モードを入力するS105。ここで入力される動作モードは、シミュレーションまたは通常動作である。制御プログラム113は、入力された動作モードが、シミュレーションか否かを判定するS106。ステップS106の結果、動作モードがシミュレーションである場合S106→Yes、入力部203を介して、入力値が入力模擬入力されるS111。模擬入力はシミュレーションツール3を介して行われてもよい。模擬入力された入力値は、該当するパラメータ名R600などとともに入力され、制御プログラム113は、パラメータに該当するシミュレーション用データレジスタ122に模擬入力された入力値模擬入力値を格納する。前記したようにパラメータ名にはアドレスが付随しているのでパラメータ名R600では600がアドレスを示す、制御プログラム113は、このアドレスに模擬入力された入力値を格納する。そして、ステップS104の段階で実行されているシミュレーション用ラダープログラム112が、主メモリ100のデータエリア120の通常動作用データレジスタ121またはシミュレーション用データレジスタ122から制御値を取得するS112。シミュレーション用ラダープログラム112は、パラメータ名に付随するアドレスから制御値を取得する。続いて、シミュレーション用ラダープログラム112は、取得した制御値を基に、演算を行いS113、演算結果を模擬出力値として、シミュレーション用データレジスタ122の該当するアドレスに書き込んだ後、出力部204に出力模擬出力するS114。模擬出力は、シミュレーションツール3に対して行われてもよい。つまり、シミュレーション用ラダープログラム112は、通常動作用データレジスタ121またはシミュレーション用データレジスタ122から取得した制御値を使用してシミュレーションを行う。なお、シミュレーション用ラダープログラム112によるシミュレーションが行われている間でも、通常動作用ラダープログラム111による制御対象装置2の制御が継続実行されていてもよい。そして、制御プログラム113は、入力部203を介して動作モードの変更が入力されたか否かを判定するS115。ステップS115の結果、動作モードの変更が入力されている場合S115→Yes、つまり、動作モードが通常動作に変更された場合、制御プログラム113は、ステップS121へ処理を進める。ステップS115の結果、動作モードの変更が入力されていない場合S115→No、つまり、動作モードはシミュレーションのままである場合、制御プログラム113は、ステップS111へ処理を戻す。ステップS106の結果、動作モードがシミュレーションではない場合S106→No、つまり、動作モードが通常動作である場合、リモート入力装置4を介して、制御対象装置2から、該当するパラメータ名とともに制御値が入力転写入力されるとS121、制御プログラム113は、入力された制御値を該当するパラメータとともに通常動作用レジスタ121に格納する。そして、ステップS103の段階で実行されている通常動作用ラダープログラム111が、データエリア120の通常動作用データレジスタ121から制御値を取得するS122。続いて、通常動作用ラダープログラム111は、取得した制御値を基に、演算を行いS123、演算結果を出力値として通常動作用データレジスタ121の該当するアドレスに書き込んだ後、リモート出力装置5を介して制御対象装置2へ出力転写出力するS124。つまり、通常動作用ラダープログラム111は、通常動作用データレジスタ121から取得した制御値を使用して制御対象装置2の制御を行う。そして、制御プログラム113は、入力部203を介して動作モードの変更が入力されたか否かを判定するS125。ステップS125の結果、動作モードの変更が入力された場合S125→Yes、つまり、動作モードがシミュレーションに変更された場合、制御プログラム113は、ステップS111へ処理を進める。ステップS125の結果、動作モードの変更が入力されていない場合S125→No、つまり、動作モードは通常動作のままである場合、制御プログラム113は、ステップS121へ処理を戻す。まとめ本実施形態によれば、予め通常動作用ラダープログラム111およびシミュレーション用ラダープログラム112をロード実行しておいて、入力部203から入力される動作モードに応じて切り替えるので、切替時間を短縮することができる。つまり、シミュレーション用ラダープログラムと通常動作用ラダープログラムとの切替を素早く行うことができる。また、シミュレーション用ラダープログラム112を、通常動作用ラダープログラム111とは別に実行しておき、また、それぞれのラダープログラムが使用するデータエリア120の区画を区別することで、通常動作用ラダープログラム111による制御対象装置2への制御を実行したままで、シミュレーション用ラダープログラム112によるシミュレーションを行うことができる。