(57)【要約】【課題】ユーザが模擬プログラム等を作成する必要も探す必要もなく、以ってデバッグ時間を短縮できるようにする。【解決手段】シミュレーション情報ＤＢ１２ｂには、予め作成されている模擬プログラム群、模擬画面群とその管理情報等が格納されている。この管理情報と、例えばユーザによって入力されるシステム定義データ３１とに基づいて、シミュレータ４０で実行させるべき模擬プログラム４４等を示すシミュレーション情報３２を生成する。【選択図】図１
2012168900.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラで実行させる任意の制御プログラムと外部機器の動作を模擬する任意の模擬プログラムとを実行するシミュレータ手段と、
任意の模擬画面を表示する模擬画面表示手段と、
予め作成されている、各種外部機器に対応する複数の前記模擬プログラムが記憶された模擬プログラム群格納手段と、
予め作成されている、前記各種外部機器に対応する複数の前記模擬画面が記憶された模擬画面群格納手段と、
前記各種外部機器の識別情報に対応付けて、その外部機器に対応する前記模擬プログラムの識別情報と前記模擬画面の識別情報とが登録された管理情報を記憶する管理情報記憶手段と、
ユーザに任意のデータを入力させることで、または前記プログラマブルコントローラから取得した所定のデータに基づいて、前記プログラマブルコントローラに接続されている１以上の前記外部機器に関する定義データを生成する定義データ生成手段と、
前記管理情報と前記定義データとに基づいて、前記プログラマブルコントローラに接続されている１以上の前記外部機器に対応する前記模擬プログラムと前記模擬画面とを示すシミュレーション情報を生成するシミュレーション情報生成手段とを有し、
該シミュレーション情報が示す模擬プログラム／模擬画面を、前記シミュレータ手段／前記模擬画面表示手段で実行／表示させることを特徴とするプログラミング装置。
【請求項２】
前記シミュレーション情報生成・記憶手段は、前記プログラマブルコントローラに接続されている外部機器毎にフォルダを生成して、該フォルダにその外部機器に対応する前記模擬プログラムと前記模擬画面とを格納したものを前記シミュレーション情報に基づいて生成し表示することを特徴とする請求項１記載のプログラミング装置。
【請求項３】
前記シミュレーション情報が示す模擬プログラムを、前記模擬プログラム群格納手段から取得して前記シミュレータ手段にダウンロードすることで、該模擬プログラムを該シミュレータ手段で実行させるダウンロード手段を更に有することを特徴とする請求項１記載のプログラミング装置。
【請求項４】
シミュレーション装置のコンピュータを、
予め各種外部機器毎に対応して作成されている、外部機器の動作を模擬する模擬プログラムが記憶された模擬プログラム群格納手段と、
予め各種外部機器毎に対応して作成されている、外部機器の入出力を模擬する模擬画面が記憶された模擬画面群格納手段と、
前記各種外部機器の識別情報に対応付けて、その外部機器に対応する前記模擬プログラムの識別情報と前記模擬画面の識別情報とが登録された管理情報を記憶する管理情報記憶手段と、
ユーザに任意のデータを入力させることで、または前記プログラマブルコントローラから取得した所定のデータに基づいて、プログラマブルコントローラに接続されている１以上の前記外部機器に関する定義データを生成する定義データ生成手段と、
前記管理情報と前記定義データとに基づいて、前記プログラマブルコントローラに接続されている１以上の前記外部機器に対応する前記模擬プログラムと前記模擬画面とを示すシミュレーション情報を生成するシミュレーション情報生成手段と、
前記プログラマブルコントローラで実行させる任意の制御プログラムと、前記シミュレーション情報が示す模擬プログラムとを実行するシミュレータ手段と、
前記シミュレーション情報が示す模擬画面を表示する模擬画面表示手段、
として機能させる為のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＬＣに係わるシミュレーションによるデバッグ機能を有するプログラミング装置に関する。
【背景技術】
【０００２】
制御システムのＰＬＣプログラムを開発する場合、対象となる制御システム（外部機器等）を模擬した実機デバッグシステムでプログラムのデバッグを行っていた。
実機デバッグシステムを利用できない場合、実際の制御システムでデバッグを行っていた。
【０００３】
シミュレーション機能を使ってデバッグする場合、ユーザが外部機器の模擬動作プログラムと模擬画面を作成していた。
また、例えば特許文献１，２等に開示されている従来技術が知られている。
【０００４】
特許文献１には、制御対象物（外部機器等）の入出力動作を模擬しつつシーケンスプログラムのシミュレーションを行うシミュレータが開示されている。シーケンスプログラムの制御対象物への出力信号に対応し、該出力信号発生から所定時間経過後に制御対象物のセンサ出力信号を模擬的に生成するセンサ信号生成プログラムが開示されている。
【０００５】
また、特許文献２には、ＰＬＣシミュレータと、ＰＴ（プログラマブル表示器）シミュレータとが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平４−２１５１０５号公報
【特許文献２】特開２００９−２２３４７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
（１）制御システムのＰＬＣプログラムを開発する場合、対象となる制御システムを模擬した実機デバッグシステムによって、プログラムのデバッグを行うが制御システムの規模が大きくなると下記の問題が発生する。
・実機デバッグシステムを製作するコストが大きくなる。
・製作に時間が掛かり、デバッグ期間が長くなってしまう。
・実機デバッグシステムのサイズが大きくなり、デバッグスペースの確保が困難となる。
【０００８】
（２）実機デバッグシステムを利用できない場合、実際の制御システムでデバッグを行う必要があるが、下記の問題が発生する。
・実際の制御システムが出来るまでデバッグできないので、全体の開発期間が長くなってしまう。
・あまりデバッグされていないプログラムを、実際の制御システムで動作させるので、危険度が高くなる。
【０００９】
（３）シミュレーション機能を使ってデバッグする場合、下記の問題が生じる。
・ユーザが外部機器の模擬動作プログラムと模擬画面を作成する必要があるので、この作成期間によりデバッグ期間が長くなる。
・上記模擬動作プログラム等の作成を行うユーザは、外部機器の動作仕様と入出力仕様を理解する必要があり、理解する為に要する時間の分だけデバッグ期間が長くなる。
【００１０】
現状では、上記シミュレーション機能を使ってデバッグする方法が望ましい方法であるが、上述した問題がある。
本発明の課題は、ユーザが模擬動作プログラムと模擬画面を作成する必要がなく、更に必要な模擬動作プログラムと模擬画面をデータベースから探す必要もなく、以ってデバッグ時間を短縮できるプログラミング装置等を提供することである。
【課題を解決するための手段】
【００１１】
本発明のプログラミング装置は、プログラマブルコントローラで実行させる任意の制御プログラムと外部機器の動作を模擬する任意の模擬プログラムとを実行するシミュレータ手段と、任意の模擬画面を表示する模擬画面表示手段と、予め作成されている、各種外部機器に対応する複数の前記模擬プログラムが記憶された模擬プログラム群格納手段と、予め作成されている、前記各種外部機器に対応する複数の前記模擬画面が記憶された模擬画面群格納手段と、前記各種外部機器の識別情報に対応付けて、その外部機器に対応する前記模擬プログラムの識別情報と前記模擬画面の識別情報とが登録された管理情報を記憶する管理情報記憶手段と、ユーザに任意のデータを入力させることで、または前記プログラマブルコントローラから取得した所定のデータに基づいて、前記プログラマブルコントローラに接続されている１以上の前記外部機器に関する定義データを生成する定義データ生成手段と、前記管理情報と前記定義データとに基づいて、前記プログラマブルコントローラに接続されている１以上の前記外部機器に対応する前記模擬プログラムと前記模擬画面とを示すシミュレーション情報を生成するシミュレーション情報生成手段とを有し、該シミュレーション情報が示す模擬プログラム／模擬画面を、前記シミュレータ手段／前記模擬画面表示手段で実行／表示させる。
【００１２】
上記プログラミング装置では、各種外部機器に応じた模擬プログラムや模擬画面が、予め作成されてデータベースに記憶されている。よって、ユーザは、模擬プログラムや模擬画面を作成する必要はない。更に、上記プログラミング装置では、プログラマブルコントローラに接続されている１以上の外部機器に対応する模擬プログラムや模擬画面を示すシミュレーション情報を生成する。よって、ユーザは、プログラマブルコントローラに対する現在の外部機器の接続状況に応じて該当する模擬プログラム等をデータベースから探す作業等も、行う必要がない。
【発明の効果】
【００１３】
本発明のプログラミング装置等によれば、ユーザが模擬動作プログラムと模擬画面を作成する必要がなく、更に必要な模擬動作プログラムと模擬画面をデータベースから探す必要もなく、以ってデバッグ時間を短縮できる。また、ユーザの作業負担を軽減できる。
【図面の簡単な説明】
【００１４】
【図１】本例のＰＬＣシステムのシステム構成図である。
【図２】ユーザインタフェース画面の一例である。
【図３】（ａ）〜（ｃ）は、別ウィンドウの一例である。
【図４】（ａ）、（ｂ）は、シミュレーション情報について説明する為の図である。
【図５】（ａ）、（ｂ）は、シミュレーション情報ＤＢについて説明する為の図である。
【図６】（ａ）、（ｂ）は、システム定義データについて説明する為の図である。
【図７】シミュレーション情報の自動生成・登録処理のフローチャート図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本例のＰＬＣシステムのシステム構成図である。
図示のＰＬＣシステムは、プログラミング装置１０、プログラマブルコントローラ５０、各種外部機器２（２ａ、２ｂ、２ｃ等）を有する。
【００１６】
プログラミング装置１０とプログラマブルコントローラ（ＰＬＣ）５０は、信号線１に接続しており、信号線１を介して相互に通信可能である。但し、図示の例は、例えばプログラミング装置１０からプログラマブルコントローラ５０へ新たなユーザプログラム（制御プログラム）をダウンロードするときの状態等を示していると考えても良い。それ以外のときは、必ずしも信号線１に接続している必要はない。すなわち、プログラミング装置１０は、信号線１に接続していない状態で（単独で）後述するユーザプログラムの生成やデバッグ等に係る処理を実行しても構わない。
【００１７】
プログラマブルコントローラ（ＰＬＣ）５０は、特に図示しないがＣＰＵ／ＭＰＵ等の演算処理プロセッサや各種メモリやＩ／Ｏ（入出力インタフェース）等を備えており、メモリにはユーザプログラム５１等が格納される。不図示の演算処理プロセッサは、このユーザプログラム５１を実行することで、各種外部機器２（２ａ，２ｂ，２ｃ等）を制御する。これは、換言すれば、ＰＬＣ５０は、上記ＣＰＵ／ＭＰＵ等がユーザプログラム５１を実行することで、不図示の制御機能部を実現するものと言うこともできる。尚、各種メモリとしてはデータメモリ５２、Ｉ／Ｏメモリ５３等もある。
【００１８】
ＰＬＣ５０と各種外部機器２（２ａ，２ｂ，２ｃ等）は、Ｉ／Ｏバス３に接続しており、Ｉ／Ｏバス３を介して通信可能となっている。上記制御機能部による各種外部機器２（２ａ，２ｂ，２ｃ等）の制御の際には、制御機能部と各外部機器（２ａ，２ｂ，２ｃ等）との入出力データ交換が行われる。制御機能部と各外部機器（２ａ，２ｂ，２ｃ等）との入出力データ交換は、Ｉ／Ｏメモリ５３を介して行われる。
【００１９】
プログラミング装置１０は、例えば、ＣＰＵ（中央演算処理装置）１１、システムメモリ１２、システムプログラムメモリ１３、入力装置１４、表示器１５、Ｉ／Ｏ（入出力インタフェース）１６等を有し、これらが共通バス１７に接続された構成である。入力装置１４は、例えばキーボード、マウス、タッチパネル等である。表示器は、例えば液晶ディスプレイ等である。
【００２０】
ＣＰＵ１１は、システムプログラムメモリ１３に予め記憶されているシステムプログラム（アプリケーションプログラム等）を実行することで、ユーザプログラム（制御プログラム）の作成支援、ＰＬＣ５０へのユーザプログラム等のダウンロード処理、ＰＬＣ５０の動作中のモニタ処理等の既存の処理を行う。
【００２１】
ＣＰＵ１１は、更に、本例のシミュレーション支援（デバッグ支援）に係る処理（例えば後述する図２の画面表示、モニタ、編集等の処理）を実行する。この処理（不図示のモニタ制御機能部の処理）は、例えば、システムプログラムメモリ１３またはシステムメモリ１２に格納されている不図示のアプリケーションプログラムを読出し・実行することにより実現される。また、ＣＰＵ１１は、更に、プロジェクトデータ３０を生成する処理を実行するものであってもよい。この処理（不図示のプロジェクトデータ生成機能部の処理）は、例えば、システムプログラムメモリ１３またはシステムメモリ１２に格納されている不図示のアプリケーションプログラムを読出し・実行することにより実現される。
【００２２】
尚、上記不図示のプロジェクトデータ生成機能部は、特にシステム定義データ３１やシミュレーション情報３２を生成するものであり、不図示のシステム定義データ生成機能部、シミュレーション情報生成機能部を含むものと見做すこともできる。
【００２３】
システムメモリ１２には、ＰＬＣ５０のプログラムの開発に係わる各種データの集合体であるプロジェクトデータ３０を格納する記憶領域がある。プロジェクトデータ３０は、システム定義データ３１、シミュレーション情報３２、ユーザプログラム３３、模擬画面３４、模擬プログラム３５等である。
【００２４】
システム定義データ３１は、ＰＬＣ５０に接続する外部機器２（２ａ，２ｂ，２ｃ等）の構成を定義するデータである。システム定義データ３１は、例えば後述するように、ユーザが任意に入力・定義するが、この例に限らない。
【００２５】
シミュレーション情報３２は、外部機器２のシミュレーション（模擬動作等）に係るデータである。このシミュレーション情報３２によって、後述するシミュレータ４０で実行させる模擬プログラム４４や模擬画面３４等が決定されることになる。このシミュレーション情報３２は、後述する図７の処理によって自動的に生成される。詳しくは後述する。
【００２６】
ユーザプログラム３３は、ＰＬＣ５０で実行させる、外部機器２等の制御を行うための制御プログラムである。この様な制御プログラムは、ユーザ側で任意に作成／更新されるものである為、ユーザプログラムと呼ばれている。プログラミング装置１０は、ユーザに任意のユーザプログラム３３を作成させる為のユーザプログラム作成支援機能（不図示）も有していてもよいが、これは既存の一般的な機能であり、ここでは特に説明しない。
【００２７】
模擬画面３４は、外部機器２（２ａ，２ｂ，２ｃ等）への入力信号（含む入力データ）、外部機器２からの出力信号（含む出力データ）を模擬する画面の画面データである。模擬画面３４によって表示器１５に表示される画面の一例は、図２に示し、後に説明する。ここでは簡単に説明するならば、模擬画面３４は、例えば不図示のスイッチやランプ、データ入力部、データ出力部等から成る。
【００２８】
ユーザが任意のスイッチ等を操作したりデータ入力部で所望の数値を入力することで、外部機器２の模擬動作に対する所望の指示／入力を行うことができる。また、外部機器の模擬動作に応じた外部機器２の模擬的な状態等（例えば温度やＯＮ／ＯＦＦ状態等）を示す情報が、ランプやデータ出力部に表示される。これらの入出力は、例えば、データメモリ４２やＩ／Ｏメモリ４３に対するデータ・リード／ライトにより実現される。
【００２９】
模擬プログラム（模擬動作プログラム）３５は、外部機器の動作を模擬するプログラムである。
ここで、従来でも、上記模擬プログラムや模擬画面を用いたユーザプログラムのシミュレーションは、行われていた。但し、既に述べたように、ユーザプログラムだけでなく、模擬プログラムや模擬画面までもユーザ側で作成していた為、ユーザ側の負担が大きかった。
【００３０】
これに対して、本例では、上記模擬プログラムや模擬画面を、多数、予め作成してある。すなわち、ＰＬＣ５０に接続し得る各種外部機器２（２ａ，２ｂ，２ｃ等だけでなく、未接続の他の外部機器も存在する）毎に、その動作を模擬する模擬プログラムやその入力／出力を模擬する模擬画面を、予め例えばシステム開発者側等で作成している（少なくともユーザ側では作成しない）。そして、これら作成してある各模擬プログラムや模擬画面を、これらの管理テーブル（後述する）と共に、予めシステムメモリ１２のシミュレーション情報ＤＢ１２ｂに格納してある。これは、例えば外部機器が１００種類ある場合には、１００種類の模擬プログラム及び模擬画面データが、シミュレーション情報ＤＢ１２ｂに登録されていることになる。
【００３１】
また、システムメモリ１２には、ユーザプログラムの動作と外部機器の動作をシミュレートするシミュレーション装置としての機能を実現させるプログラムであるシミュレータ４０も格納されている。但し、本説明では、シミュレータ４０は、この様なプログラムをＣＰＵ１１が実行することで実現されるシミュレーション機能部と見做すものとする。
【００３２】
シミュレータ４０は、ＰＬＣ５０の動作と外部機器２（２ａ，２ｂ，２ｃ等）の動作を模擬する。その為に、シミュレータ４０は、ＰＬＣ５０のデータメモリ５２、Ｉ／Ｏメモリ５３に相当するデータメモリ４２、Ｉ／Ｏメモリ４３を保持すると共に、ＰＬＣ５０に新たにダウンロードすべきユーザプログラムと同じユーザプログラム４１を、実行するものである。更に、ＰＬＣ５０に接続されている各外部機器の動作を模擬する模擬プログラム４４を、実行するものである。
【００３３】
また、上記不図示のモニタ制御機能部は、シミュレータ４０を実行中に、上記表示器１５上にユーザインタフェース画面６０を表示する（例えば模擬画面３４やデータメモリ４２やＩ／Ｏメモリ４３の内容を表示する）。詳しくは後述する。尚、このモニタ制御機能部の機能は、シミュレータ４０が有するものとしてもよい。
【００３４】
ここで、既に述べたように、本例では、ＰＬＣ５０に接続し得る各種外部機器２の模擬プログラムや模擬画面が、予めシミュレーション情報ＤＢ１２ｂに格納されている。
例えば、外部機器２が、図示の外部機器２ａ，２ｂ，２ｃだけでなく、更に外部機器２ｄ，２ｅ，２ｆ・・・２ｒ、２ｓ・・・２ｘ、２ｙ、２ｚがあり、このなかで現在ＰＬＣ５０に接続されている外部機器２が図示の外部機器２ａ，２ｂ，２ｃだけであるものとする。この例の場合、シミュレーション情報ＤＢ１２ｂには、外部機器２ａ〜２ｚの各外部機器２毎に、それに対応する模擬プログラムや模擬画面が格納されていることになる。
【００３５】
そして、例えば、上記不図示のプロジェクトデータ生成機能部が、ユーザに任意の入力を行わせてシステム定義データ３１を生成・記憶したり、このシステム定義データ３１等に基づいてシミュレーション情報３２を生成・記憶する。そして、不図示のプロジェクトデータ生成機能部は、例えば更に、シミュレーション情報３２に基づいて、シミュレーション情報ＤＢ１２ｂから該当する模擬プログラムや模擬画面を取得して、これらを図１に示す模擬プログラム３５、模擬画面３４として記憶する処理も行うようにしてもよい。尚、ユーザプログラム３３は、上記のように別途作成されて記憶されているものとする。
【００３６】
また、上記不図示のモニタ制御機能部は、例えば更に、シミュレーション実行時には、シミュレータ４０を起動すると共に、模擬プログラム３５、ユーザプログラム３３等を、シミュレータ４０にダウンロードするダウンロード機能部も備えていてもよい。シミュレータ４０は、これらダウンロードされた模擬プログラム３５、ユーザプログラム３３等を、図１に示す模擬プログラム４４、ユーザプログラム４１として保持する。そして、シミュレータ４０は、これら模擬プログラム４４、ユーザプログラム４１を実行することで、ユーザプログラム４１（３３）のシミュレーションを実行し、以ってユーザにデバック作業を行わせる。
【００３７】
尚、既に述べたように、模擬画面の表示もシミュレータ４０が行うようにしてもよく、この場合には模擬画面３４もシミュレータ４０にダウンロードされて保持・実行（表示）されることになる。
【００３８】
本手法の主な特徴は、上記のように、予め全ての外部機器２に対応する模擬プログラムや模擬画面をシステム開発者側で作成しておくと共に、これらをシミュレーション情報ＤＢ１２ｂに格納しておくこと、及び現在の外部機器のＰＬＣへの接続状況に応じたプロジェクトデータ３０を、自動的に作成することである。この様なプロジェクトデータが作成されることで、上述したように、現在ＰＬＣ５０に接続されている外部機器２に対応する模擬プログラムの実行や模擬画面の表示が行われつつ、デバッグ対象であるユーザプログラム４１（３３）が実行されることになる。
【００３９】
尚、上記模擬プログラム４４、ユーザプログラム４１実行時のこれらプログラム間のデータ入出力は、実機におけるデータメモリ５２、Ｉ／Ｏメモリ５３と同様、シミュレータ４０内のデータメモリ４２、Ｉ／Ｏメモリ４３を介して行われる。
【００４０】
これより、ユーザプログラム４１や模擬プログラム４４の動作のモニタリング（後述するユーザインタフェース画面６０の表示等）は、例えば、シミュレータ４０内のデータメモリ４２とＩ／Ｏメモリ４３のデータをモニタすることで実現する。
【００４１】
ユーザは、入力装置１４を操作することで、ＣＰＵ１１に対する様々な動作指示や、任意のユーザプログラム作成を行える。ユーザプログラムは、既存のユーザプログラム作成支援画面（不図示）上で、一般的なＰＬＣプログラム言語であるラダー言語やＳＴ言語（Structured Text）等を用いて作成される。そして、上記ユーザプログラム３３として記憶され、上記シミュレータ４０によるシミュレーション等によってデバッグが行われた後、ＰＬＣ５０にダウンロードされることになる。
【００４２】
また、ユーザは、入力装置１４を操作することで、後述するシステム定義データの入力等を行う。また、ユーザは、入力装置１４を操作することで、例えば、後述する図２に示す画面上で、ユーザプログラムや模擬プログラムや模擬画面の修正／変更等を行うこともできる。
【００４３】
表示器１５は、例えば後述する図２に示す画面６０や、既存のユーザプログラム作成支援画面（不図示）等の各種画面を表示するディスプレイである。図２の画面６０については後に説明する。
【００４４】
Ｉ／Ｏ（入出力インタフェース）１６は、信号線１に接続しており、プログラミング装置１０がＰＬＣ５０との通信を行えるようにするインタフェースである。プログラミング装置１０は（そのＣＰＵ１１等は）、Ｉ／Ｏ（入出力インタフェース）１６、信号線１を介して、ＰＬＣ５０へ新たなユーザプログラムをダウンロードする。これは、例えば、プロジェクトデータのユーザプログラム３３を、ＰＬＣ５０へダウンロードするものである。これによって、ＰＬＣ５０が保持するユーザプログラム５１は、当該新たなユーザプログラム３３に更新される。但し、本手法では、ダウンロード前に、シミュレータ４０等によって上記新たなユーザプログラム３３の動作をチェックして、問題ないことを確認する。
【００４５】
尚、既に述べた通り、必ずしもＩ／Ｏ（入出力インタフェース）１６が信号線１に接続しているものではない。例えば、シミュレータ４０によるシミュレーション動作時には、プログラミング装置１０は、ＰＬＣ５０の設置場所とは異なる場所に存在するかもしれない（よって、信号線１に接続することはできない）。
【００４６】
また、尚、プログラミング装置１０は、所謂“プログラマブル表示器”としての機能も備えるものであってもよい。この場合には、不図示の操作・監視画面（上記模擬画面であってもよい）上で、ユーザが任意のスイッチ操作等を行うことで、ＰＬＣ５０に対する動作指示が、Ｉ／Ｏ（入出力インタフェース）１６と信号線１を介してＰＬＣ５０へ送信されることになる。
【００４７】
尚、模擬画面３４（６４）は、プログラマブル表示器の一般的な操作表示画面を模擬するものと見做してもよい。すなわち、基本的には、模擬画面３４（６４）は上記操作表示画面と同じであってよく、違いとしては、操作表示画面は実機のデータメモリ５２、Ｉ／Ｏメモリ５３に対してリード／ライトを行うのに対して、模擬画面３４（６４）はシミュレータ４０のデータメモリ４２、Ｉ／Ｏメモリ４３に対してリード／ライトを行うものと考えてもよい。
【００４８】
図２は、上記表示器１５上に表示されるユーザインタフェース画面６０の一例である。この画面６０は、シミュレータ４０によるシミュレーションを実行前、実行中等に表示させるものである。
【００４９】
図示の例のユーザインタフェース画面６０は、プロジェクトビュー６１、ユーザプログラム表示領域６２、模擬プログラム表示領域６３、模擬画面表示領域６４等から成る。
プロジェクトビュー６１は、プロジェクトデータ３０（特にシステム定義データ３１やシミュレーション情報３２）を、アイコンと文字列で表現した表示を行う、プロジェクトデータ全体の状態を管理するためのウィンドウである。プロジェクトビュー６１には、システム定義情報６１ａやシミュレーション情報６１ｂ等が表示される。これらは、上記システム定義データ３１やシミュレーション情報３２が、予め設定されている所定のアイコン等と共に表示される。
【００５０】
ここで、システム定義情報６１ａ上の所定のアイコン（特に図示・説明はしない）を選択して開くと、別ウィンドウが表示されて編集を行うことが可能となる。また、シミュレーション情報６１ｂに関しても同様に、シミュレーション情報６１ｂの表示を行うだけでなく、新規データの登録や既存データの削除等の編集作業を、ユーザが任意に行うことができる。但し、既に述べた通り、シミュレーション情報３２は自動的に生成されるものであり、その表示を見てユーザが任意の編集を行うことも出来るというものである。
【００５１】
これについて、システム定義情報６１ａを例にして、図３に別ウィンドウの一例を示して説明するものとする。
図３（ａ）〜（ｃ）は、上記別ウィンドウの一例である。
【００５２】
上記システム定義情報６１ａ上の所定のアイコンを選択して開くと、まず、図３（ａ）に示す別ウィンドウ７０が表示される。この別ウィンドウ７０には、上記システム定義データ３１が図示のように所定のアイコン等と共にツリー表示されると共に、図示の挿入ボタン７１等の各種機能ボタンが表示される。そして、例えば、ユーザが、上記入力装置１４を操作して、上記ツリー表示されるアイコン・データのうち、図示の“サーボ”に関するアイコン・データをクリックすると共に、上記挿入ボタン７１を操作したものとする。尚、これは、図示の“サーボ”の下に新たなデータを追加したい場合の操作である。
【００５３】
この操作に応じて、例えば図３（ｂ）に示すようなモジュール挿入ダイアログ８０が表示される。
このモジュール挿入ダイアログ８０には、局番選択領域８１、モジュール属性選択領域８２、モジュール種別選択領域８３、名称入力領域８４、仕様選択領域８５等がある。ユーザは、上記入力装置１４を操作して、この様なモジュール挿入ダイアログ８０上で所望の入力・選択を行う。
【００５４】
図示の例では、局番選択領域８１では局番＝‘２’、モジュール属性選択領域８２では「個別モジュール」、モジュール種別選択領域８３では「インバータ」、仕様選択領域８５では「ＶＧ７Ｓ」が、ユーザによって選択されている。また、ユーザは、名称入力領域８４において任意の名称「外部機器２」を入力している。これは、例えば、後述するフォルダ名をユーザが任意に付けることができることを意味している。
【００５５】
ユーザがモジュール挿入ダイアログ８０上で上記選択・入力を行ったうえで図示の「ＯＫ」ボタンを操作することで、図３（ｃ）に示すように、別ウィンドウ７０上には、新たなデータが追加された新たなシステム定義データ３１に応じたツリー表示が成されることになる。
【００５６】
尚、新たなデータは、図示のように「サーバ」のデータの下に追加された「インバータ；ＳＸ局番−２；外部機器２；ＶＧ７Ｓ」である。尚、もしモジュール属性選択領域８２において「ベースボード集合形モジュール」が選択されていた場合には、この新データは図示の「ＣＰＵ」のデータの下に追加されることになる。
【００５７】
図２の説明に戻る。
ユーザプログラム表示領域６２には、上記ユーザプログラム４１（３３）が表示される。
【００５８】
ユーザプログラム４１（３３）は、上記の通り、ＰＬＣ５０で実行させる制御プログラムであり、不図示の別画面（制御プログラム作成画面）上でラダー図やＳＴ等を用いてユーザが任意に作成／編集したものである。また、表示するだけでなく、上記制御プログラム作成画面と同様の機能により、ユーザプログラム４１の修正をユーザが任意に行うこともできる。また、ユーザプログラム４１の実行中には、現在の実行状況を示す表示等を行うこともできる。これらの機能は、既存の機能であり、これ以上詳細には説明しないものとする。
【００５９】
模擬プログラム表示領域６３には、上記模擬プログラム４４（３５）が表示される。
模擬プログラム４４（３５）は、上記の通り、ＰＬＣ５０による現在の制御対象である各外部機器２の動作を模擬するプログラムであり、従来ではユーザ側で作成する必要があった。これに対して、本システムでは、予めシステム開発者側で作成されて記憶されている模擬プログラムのなかから、現在ＰＬＣ５０に接続されている各外部機器２に対応する模擬プログラムが、ほぼ自動的に選択されて上記模擬プログラム３５として記憶されている。そして、模擬プログラム３５は、シミュレーション実行時には、シミュレータ４０にダウンロードされて実行されると共に、模擬プログラム表示領域６３に表示されることになる。
【００６０】
よって、ユーザによる模擬プログラム等の作成や選択の手間が掛からず、ユーザの負担を軽減でき、以ってデバッグ時間を短縮できる。
また、模擬プログラム表示領域６３上では、模擬プログラム４４（３５）の表示だけでなく、編集（追加、修正、一部削除等）をユーザが任意に行うこともできる。また、模擬プログラム４４の実行中には、現在の実行状況を示す表示等を行うこともできる。これらの機能は、既存の機能であり、これ以上詳細には説明しないものとする。尚、模擬プログラム４４も、ラダー図やＳＴ等で作成可能である。
【００６１】
模擬画面表示領域６４には、上記外部機器２の模擬入出力画面である模擬画面３４が表示される。模擬画面も、従来ではユーザが作成する必要があった。これに対して、本システムでは、予めシステム開発者側で作成されて記憶されている模擬画面のなかから、現在ＰＬＣ５０に接続されている各外部機器２に対応する模擬画面が、ほぼ自動的に選択されて上記模擬画面３４として保持される。そして、シミュレーション実行時には、模擬画面３４が模擬画面表示領域６４に表示されることになる。
【００６２】
尚、上述したユーザプログラム表示領域６２、模擬プログラム表示領域６３、模擬画面表示領域６４の表示や編集は、シミュレーション実行時に限らず、任意のときに行ってよい。
【００６３】
上記のように、ユーザによる模擬画面の作成や選択の手間が掛からず、ユーザの負担を軽減でき、以ってデバッグ時間を短縮できる。
また、模擬画面表示領域６４上では、模擬画面３４の表示だけでなく、編集（追加、修正、一部削除等）をユーザが任意に行うこともできる。例えば、模擬画面表示領域６４上でユーザがスイッチ６４ａを配置すると外部機器２に対するＯＮ／ＯＦＦ指示等が行え、ランプ６４ｂを配置すると外部機器２の動作（出力信号）をモニタ可能である。また、数値入力６４ｃや数値出力６４ｄを配置すると、外部機器２に対するデータの入力や出力データのモニタが可能となる。これらの機能は、既存の機能であり、これ以上詳細には説明しないものとする。
【００６４】
また、上記ユーザプログラム表示領域６２、模擬プログラム表示領域６３、模擬画面表示領域６４に表示させるユーザプログラム、模擬プログラム、模擬画面は、上記プロジェクトビュー６１でユーザが任意に選択・指定してよい。
【００６５】
図４（ａ）、（ｂ）は、シミュレーション情報について説明する為の図である。
図５（ａ）、（ｂ）は、シミュレーション情報ＤＢについて説明する為の図である。
図６（ａ）、（ｂ）は、システム定義データについて説明する為の図である。
【００６６】
図７は、シミュレーション情報の自動生成・登録処理のフローチャート図である。
図７の処理は、概略的には、システム定義データとシミュレーション情報ＤＢとに基づいて、シミュレーション情報３２の生成と、模擬画面３４と模擬プログラム３５の取得・登録を行う処理である。
【００６７】
以下、図４〜図７に示す一例を参照して、本手法のシミュレーション情報、模擬画面、模擬プログラムの生成／登録について説明する。
まず、図４を参照してシミュレーション情報について説明する。
【００６８】
図４（ｂ）に示すように、シミュレーション情報３２は、各レコード毎にデータ種別９１とデータ名称９２とから成る。１つの外部機器に対して３つのレコードが格納される。すなわち、データ種別９１が“フォルダ”と“プログラム”と“画面”の３つの連続するレコードによって、１つの外部機器に関するシミュレーション情報が表される。
【００６９】
図示の例では、任意の外部機器２に応じて、上記３種類のデータ種別９１（“フォルダ”と“プログラム”と“画面”）それぞれに対応するデータ名称９２として、図示の“外部機器１”、“サーボプログラム”、“サーボ画面”が格納されている。また、不図示の別の外部機器に応じて、上記３種類のデータ種別９１（“フォルダ”と“プログラム”と“画面”）それぞれに対応するデータ名称９２として、図示の“外部機器２”、“インバータプログラム”、“インバータ画面”が格納されている。
【００７０】
尚、図示の例では、６つのレコードより成るが、図１に示すように３つの外部機器２（２ａ，２ｂ，２ｃ）がある場合には、３×３＝９つのレコードより成ることになる。
そして、特に図示しないが、この様なシミュレーション情報３２に基づいて、後に図５で説明するシミュレーション情報ＤＢ１２ｂに記憶されている模擬プログラム群１１０、模擬画面群１２０のなかから、該当する１以上の模擬プログラム、該当する１以上の模擬画面を取得することになる。シミュレーション情報ＤＢ１２ｂから取得した１以上の模擬プログラム、模擬画面が、上記模擬プログラム３５、模擬画面３４となり、これらがシミュレータ４０にダウンロードされて実行されることになる。
【００７１】
また、シミュレーション情報３２によって、図２のシミュレーション情報６１ｂの表示も行われても良い。図４（ｂ）に示す例に応じた表示例を、図４（ａ）に示す。図示のように、各外部機器毎に、そのデータ種別９１が“フォルダ”のレコードのデータ名称９２をフォルダ名とするフォルダが設けられると共に、このフォルダ内にそのデータ種別９１が“プログラム”、“画面”のレコードのデータ名称９２が格納される。尚、データ名称だけでなく、このデータ名称の模擬プログラム、模擬画面を、模擬プログラム群１１０、模擬画面群１２０から取得して、フォルダ内に格納するようにしてもよい。この場合、図４（ａ）は、上記模擬プログラム３５と模擬画面３４の格納形式を示すものと言うこともできる。例えば、現在ＰＬＣ５０に接続されている各外部機器２毎に、ユーザが任意に付けたフォルダ名のフォルダ内に、その外部機器２に対応する模擬プログラムと模擬画面が格納される形式となり、これが図４（ｂ）に示す例のようにツリー表示されることになる。
【００７２】
また、ユーザは、例えばシミュレーションの必要がないと判断した外部機器に関しては、その模擬プログラム、模擬画面を、フォルダごと消去することができる。そして、この消去操作によって、シミュレーション情報３２から該当する情報が消去されるようにしてもよい。この様に、シミュレーション情報３２は自動的に作成されるだけでなく、ユーザが後から自由に変更・編集可能である。
【００７３】
次に、図５（ａ）、（ｂ）を参照して、シミュレーション情報ＤＢ１２ｂについて説明する。
シミュレーション情報ＤＢ１２ｂには、図５（ｂ）に示す模擬プログラム群１１０、模擬画面群１２と、これらの管理情報である図５（ａ）に示す管理テーブル１００とが、予め格納されている。これらの模擬プログラム、模擬画面、管理テーブルは、予めシステム開発者等が作成して格納している（少なくともユーザが作成するものではない）。
【００７４】
まず、図５（ａ）に示す管理テーブル１００について説明する。
図示の管理テーブル１００は、各レコード毎にデータ種別１０１とデータ名称１０２から成る。１つの外部機器に対して４つのレコードが格納される。すなわち、データ種別１０１が“製品コード”と“フォルダ”と“プログラム”と“画面”の４つの連続するレコードによって、１つの外部機器に関する管理情報が表される。
【００７５】
これは、例えば、“製品コード”によって示される外部機器２に対応する“プログラム”と“画面”が、“フォルダ”内に格納されていることが表される。“プログラム”には当該外部機器の動作を模擬する模擬プログラムの名称（または識別コード等）が格納され、“画面”には当該外部機器の模擬画面の名称（または識別コード等）が格納される。例えば、シミュレーション情報ＤＢ１２ｂにおいては、“製品コード”＝“０ｘＢ０２０”の外部機器２に対応する模擬プログラムである“サーボプログラム”と模擬画面である“サーボ画面”とが、フォルダ名＝“サーボ：ＲＹＳ−ＶＳ／ＲＹＴ−ＶＳ”のフォルダ内に格納されていることになる。
【００７６】
あるいは、例えば“製品コード”が“０ｘＢ０４０”である外部機器２に関しては、フォルダ名が“インバータ：ＶＧ７Ｓ”のフォルダ内に、名称が“インバータプログラム”の模擬プログラムと、名称が“インバータ画面”の模擬画面とが格納されていることになる。
【００７７】
図５（ｂ）に示す模擬プログラム群１１０における“サーボプログラム”１１１と模擬画面群１２０における“サーボ画面”１２１が、上記“製品コード”＝“０ｘＢ０２０”の外部機器２に対応して予め作成されて登録されていた模擬プログラムと模擬画面である。同様に、図５（ｂ）に示す模擬プログラム群１１０における“インバータプログラム”１１２と模擬画面群１２０における“インバータ画面”１２２が、上記“製品コード”＝“０ｘＢ０４０”の外部機器に対応して予め作成されて登録されていた模擬プログラムと模擬画面である。
【００７８】
そして、上記図４（ｂ）に示す例では、これら“サーボプログラム”１１１と“サーボ画面”１２１と“インバータプログラム”１１２と“サーボ画面”１２１とが、選択・取得されて、上記模擬プログラム３５、模擬画面３４として保持され（その際、フォルダ名がユーザによって任意に指定されたものとなる）、またシミュレータ４０で実行されることになる。
【００７９】
次に、図６（ａ）、（ｂ）を参照して、システム定義データについて説明する。
図６（ａ）は、システム定義情報６１ａの一例であり、上記図３で説明した例を示している。よって、図示の通り、インバータが追加された状態となっている。
【００８０】
この例のようにユーザによって定義されたシステム定義情報６１ａは、上記システム定義データ３１としてシステムメモリ１２に格納される。図６（ｂ）は、この例のシステム定義データ３１の具体例を示す図である。
【００８１】
システム定義データ３１は、製品コード１３１、局番１３２、名称１３３、形式１３４から成る。局番１３２、名称１３３、形式１３４には、上記図３で説明したユーザが任意に選択／入力したデータが格納される。
【００８２】
ここで、特に図示しないが、各外部機器の管理テーブルが存在している。この不図示の外部機器管理テーブルには、各外部機器毎に、製品コードと形式等とを対応付けたレコードが格納されている。上記図３（ｂ）で説明したように、ユーザが任意の形式等を選択するので、これら形式等を用いて上記不図示の外部機器管理テーブルを検索することで、該当する製品コードを取得できる。
【００８３】
以上の不図示のテーブルと処理によって得た製品コード、局番、名称、形式を、上記システム定義データ３１の新規レコードにおける製品コード１３１、局番１３２、名称１３３、形式１３４に格納することで、システム定義データ３１が作成されることになる。
【００８４】
尚、システム定義データ３１の生成方法は、上記のようにユーザが任意にデータ入力する例に限らず、自動的に生成されるものであってもよい。すなわち、近年のＰＬＣシステムでは、ＰＬＣ本体が、自己に接続している外部機器に関する情報を、自動的に収集して記憶している場合がある。これは、例えば、各外部機器それぞれが、メモリ等を有しており、このメモリにその外部機器の製品コードや局番等が記憶されているものであるが、この例に限らない。
【００８５】
これより、ＰＬＣ５０が、Ｉ／Ｏバス３を介して、当該Ｉ／Ｏバス３に接続している各外部機器２から、その製品コード等を取得して記憶している場合には、システム定義データ３１を自動生成することが可能となる。すなわち、この場合、プログラミング装置１０は信号線１を介してＰＬＣ５０から上記各外部機器２の製品コード等を取得する。そして、プログラミング装置１０は、上記不図示の外部機器管理テーブルを参照することで、取得した製品コードに対応する形式等を取得することができる。そして、これらをシステム定義データ３１として登録する。
【００８６】
何れにしても、システム定義データ３１のテーブルには、現在ＰＬＣ５０に接続されている（制御対象の）外部機器２に関する所定のデータが格納されることになる。つまり、システム定義データ３１は、現在、ＰＬＣ５０に接続されている外部機器２を、登録したものである。そして、図７の処理によって、ＰＬＣ５０に接続されている外部機器２に対応する模擬プログラムと模擬画面とを選択・取得することができる。
【００８７】
以下、図７を参照して、シミュレーション情報の自動生成・登録処理について説明する。
図７の処理は、例えば、ＣＰＵ１１が、システムプログラムメモリ１３に予め格納されている所定のアプリケーションプログラムを読出し、実行することにより実現される。これは、換言すれば、上記のように不図示のプロジェクトデータ生成機能部が図７の処理を実行するものと言える。
【００８８】
尚、図７の説明において、上記図４、図５、図６に示す例を用いて説明する場合がある。尚、この場合、上記図４（ｂ）に示すシミュレーション情報３２は、初期状態ではデータ種別９１に図示の予め決まったデータ種別（“フォルダ”、“プログラム”、“画面”）が格納されており、データ名称９２にはデータは格納されていないものとする。図７の処理では、データ名称９２に自動的にデータを格納していくことで、シミュレーション情報３２を生成する。
【００８９】
図７において、まず最初に、上記図６（ｂ）に示す例のようなシステム定義データ３１のテーブルにおける現在のレコード選択位置を示すポインタ（ポインタＡと記すものとする）を、初期位置である１レコード目に設定する（ステップＳ１）。
【００９０】
同様に、上記図４（ｂ）に示す例のようなシミュレーション情報３２のテーブルにおける現在のレコード選択位置を示すポインタ（ポインタＢと記すものとする）を、初期位置である１レコード目に設定する（ステップＳ２）。
【００９１】
同様に、上記図５（ａ）に示す例のようなシミュレーション情報ＤＢ１２ｂの管理テーブル１００における現在のレコード選択位置を示すポインタ（ポインタＣと記すものとする）を、初期位置である１レコード目に設定する（ステップＳ３）。
【００９２】
そして、まず最初は、ポインタＡ，Ｂは初期位置のままでポインタＣを移動させながら、ポインタＡが示すレコードの製品コード１３１と、ポインタＣが示す製品コード（データ名称１０２）とが、一致するか否かを判定する（ステップＳ４）。尚、ポインタＣは、図５（ａ）に示すテーブル構成と上記初期位置と後述するステップＳ６の操作により、必ず、データ種別１０１が“製品コード”であるレコードの位置を示すものとなる。尚、上記ポインタＡが示すレコードの製品コード１３１は、ＰＬＣ５０に接続されている外部機器２の製品コードである。
【００９３】
上記ステップＳ４で一致すると判定された場合には（ステップＳ４、ＹＥＳ）、ステップＳ７の処理を実行する。
ステップＳ７の処理では、まず最初に、上記ポインタＡが示すレコードの名称１３３を、上記ポインタＢが示すレコードのデータ名称９２に格納する。尚、ポインタＢは、図４（ｂ）に示すテーブル構成と上記初期位置と後述するステップＳ９の操作により、必ず、データ種別９１が“フォルダ”であるレコードの位置を示すものとなる。つまり、上記ステップＳ７の最初の処理は、フォルダ管理するシミュレーション情報３２において、フォルダ名を上記図３（ｂ）の名称入力領域８４でユーザが任意に入力していた名称とするものである。尚、ユーザが入力しない例（システム定義データ３１の自動生成の例）の場合には、名称１３３には例えば製品名（これも外部機器２のメモリに記憶されているものとする）を格納するように処理実行することで、フォルダ名が製品名となる。何れにしても、ユーザにとって分かり易いフォルダ名となるようにすることが望ましい。
【００９４】
ここで、図示していないが、例えばステップＳ３の処理の直前または直後に、上記ポインタＡが示すレコードの局番１３２を参照して、局番１３２が“なし”であるか否かをチェックし、“なし”である場合にはそのままステップＳ８の処理へ移行するようにしてもよい。局番“なし”であるので、ＰＬＣ５０との通信は行われないからである。図６（ｂ）に示す例では、１１スロットベースやＡＣ電源等が、局番“なし”となっている。また、更に、局番１３２が予め決められている特定の局番（本例では“０ｘ００”とする）である場合も、そのままステップＳ８の処理へ移行するようにしてもよい（理由は特に述べない）。
【００９５】
上記の例によれば、図６（ｂ）に示す例では、上記ステップＳ４の判定が最初に行われるのは、４レコード目となり、図示の通りその名称１３３は“外部機器１”となっている。現在のポインタＢは１レコード目であるので、図４（ｂ）に示すように１レコード目のデータ名称９２に“外部機器１”が格納されることになる。
【００９６】
ステップＳ７の処理では、上記最初の処理を実行したら、続いて、ポインタＣの位置の２つ下のレコード（本例では３レコード目）のデータ名称１０２を、ポインタＢの位置の次のレコード（本例では２レコード目）のデータ名称９２にコピーする。
【００９７】
ステップＳ７の処理では、更に、ポインタＣの位置の３つ下のレコード（本例では４レコード目）のデータ名称１０２を、ポインタＢの位置の２つ下のレコード（本例では３レコード目）のデータ名称９２にコピーする。
【００９８】
以上の処理により、図４（ｂ）に示す例のように、２レコード目のデータ名称９２には“サーボプログラム”が格納され、３レコード目のデータ名称９２には“サーボ画面”が格納された状態となる。
【００９９】
尚、上記ステップＳ４の判定が“不一致”である場合には（ステップＳ４，ＮＯ）、現在のポインタＣの位置が、最後のレコードであるか否かを判定する（ステップＳ５）。但し、「最後のレコード」とは、図５（ａ）の例では「ｎレコード目」ではなく「ｎ−３レコード目」を意味する。そして、最後のレコードである場合には（ステップＳ５，ＹＥＳ）、そのままステップＳ８へ移行する。未だ最後のレコードではない場合には（ステップＳ５，ＮＯ）、ポインタＣを次の処理対象レコードへ移動させる（ステップＳ６）。これは、ポインタＣを＋４レコード移動させることで、例えば現在が１レコード目である場合には５レコード目に移動させるものである。そして、ステップＳ４に戻る。
【０１００】
ステップＳ７の処理を実行した場合またはステップＳ５の判定がＹＥＳの場合、続いて、現在のポインタＡの位置が、最後のレコードであるか否かを判定する（ステップＳ８）。これは、文字通り最後のレコードか否かを判定するものであり、図６（ｂ）に示す例では５レコード目が最後のレコードである。ステップＳ８の判定がＹＥＳならば本処理を終了する。
【０１０１】
一方、ステップＳ８の判定がＮＯならば、ポインタＡとポインタＢを、それぞれ、次の処理対象レコードへ移動させる。これは、ポインタＢは＋３レコード移動させることで、例えば現在が１レコード目である場合には４レコード目に移動させるものである（ステップＳ９）。また、ポインタＡは＋１レコード移動させることで、例えば現在が４レコード目である場合には５レコード目に移動させるものである（ステップＳ１０）。そして、ステップＳ３に戻り、ポインタＣを初期位置（１レコード目）に戻したうえで、新たな処理対象外部機器に関して上記と同様の処理を行う。
【０１０２】
本例では、ポインタＡは図６（ｂ）に示す５レコード目となり、図５（ａ）に示す例ではポインタＣがｎ−３レコード目のときにステップＳ４の判定がＹＥＳとなる。よって、図４（ｂ）に示すように、４，５，６レコード目にそれぞれ“外部機器２”、“インバータプログラム”、“インバータ画面”が格納される。本例では、これによって、図４（ｂ）に示す例のシミュレーション情報９２の生成が完了することになる。
【０１０３】
尚、上記予め作成されて記憶されている模擬プログラム群１１０の各模擬プログラム（１１１，１１２等）、模擬画面群１２０の各模擬画面（１２１，１２２等）には、予め一意の名称が付されており、この名称が上記データ名称１０２に格納されている。よって、上記生成されたシミュレーション情報９２を参照すれば、シミュレータ４０で実行させるべき模擬プログラムと模擬画面を特定することができる。これより、例えば、これらシミュレータ４０で実行させるべき模擬プログラムと模擬画面を、シミュレーション情報ＤＢ１２ｂに記憶されている模擬プログラム群１１０、模擬画面群１２０のなかから選択・取得して、上記プロジェクトデータ３０の模擬プログラム３５、模擬画面３４として記憶する。
【０１０４】
シミュレータ４０は、例えば上記プロジェクトデータ３０からユーザプログラム３３、模擬プログラム３５等を取得して上記ユーザプログラム４１、模擬プログラム４４等として保持する。そして、ユーザからシミュレーション実行の指示があると、ユーザプログラム４１、模擬プログラム４４等を実行する。そして、シミュレータ４０または上記不図示のモニタ制御機能部などは、例えば上記図２に示すような画面を表示して、外部機器２の模擬動作状況を表示しつつユーザプログラム４１のデバッグを行えるようにする。尚、シミュレーション結果に応じてユーザがユーザプログラム４１を任意に変更した場合、上記プロジェクトデータ３０からユーザプログラム３３を、ユーザプログラム４１によって更新するようにしてもよい。
【０１０５】
あるいは、上記ＣＰＵ１１は、不図示のダウンロード機能部を有するものであってもよい。このダウンロード機能部は、シミュレーション情報３２が示す模擬プログラムと模擬画面を、模擬プログラム群１１０と模擬画面群１２０から取得して、これらをシミュレータ４０にダウンロードする。これによって、シミュレータ４０は、ＰＬＣ５０に接続されている（制御対象の）１以上の外部機器２に対応する模擬プログラムと模擬画面を、実行することになる。
【０１０６】
上記ＣＰＵ１１は、上記ダウンロードされた模擬プログラムの動作をモニタする機能や、上記模擬画面で任意の出力信号に割り付けられたＩ／Ｏメモリ４３をモニタする機能や、任意の入力信号に割り付けられたＩ／Ｏメモリ４３へ任意のデータを入力させる機能等を有する。尚、これらの機能もシミュレータ４０が有するものとしてもよい。
【０１０７】
尚、上記データ名称９２やデータ名称１０２における“サーボプログラム”や“インバータ画面”等は、模擬プログラムの識別情報の一例、模擬画面の識別情報の一例であるが、この例に限らない。
【０１０８】
上述したように、本例のプログラミング装置１０によれば、まず、制御システムの実機がなくても、プログラミング装置１０だけで、任意に作成されたユーザプログラム（制御プログラム）のデバッグが可能となる。
【０１０９】
制御システムのＰＬＣプログラムを開発する場合、制御システムの規模が大きくなっても、外部機器を含めたシミュレーションが容易に実現可能となるから、実機デバッグシステムの製作が不要となり、開発コストの削減、デバッグ期間の短縮、デバッグスペースの省スペース化が可能となる。また、シミュレーションによる事前デバッグが十分可能になるので、現地調整時の安全性が向上し、調整時間の短縮が可能となる。
【０１１０】
そして、特に、ユーザが模擬動作プログラムと模擬画面を作成する必要がなく、更に必要な模擬動作プログラムと模擬画面をデータベースから探す必要もなく、以ってデバッグ時間を短縮できる。また、ユーザの作業負担を軽減できる。また、ユーザは、模擬動作プログラムや模擬画面を作成できるスキルを有する必要がなくなる。
【０１１１】
また、外部機器毎の模擬プログラムと模擬画面とをフォルダ管理できるようになることから、シミュレーションする外部機器が増大した場合に、模擬プログラムや模擬画面の探索時間が短縮され、削除等の編集作業が容易となり、デバッグ時間を短縮できる。
【符号の説明】
【０１１２】
１  信号線
２（２ａ、２ｂ、２ｃ）  外部機器
３  Ｉ／Ｏバス
１０  プログラミング装置
１１  ＣＰＵ（中央演算処理装置）
１２  システムメモリ
１２ｂ  シミュレーション情報ＤＢ（データベース）
１３  システムプログラムメモリ
１４  入力装置
１５  表示器
１６  Ｉ／Ｏ（入出力インタフェース）
１７  共通バス
３０  プロジェクトデータ
３１  システム定義データ
３２  シミュレーション情報
３３  ユーザプログラム
３４  模擬画面
３５  模擬プログラム
４０  シミュレータ
４１  ユーザプログラム
４２  データメモリ
４３  Ｉ／Ｏメモリ
４４  模擬プログラム
５０  プログラマブルコントローラ（ＰＬＣ）
５１  ユーザプログラム
５２  データメモリ
５３  Ｉ／Ｏメモリ
６０  ユーザインタフェース画面
６１  プロジェクトビュー
６１ａ  システム定義情報
６１ｂ  シミュレーション情報
６２  ユーザプログラム表示領域
６３  模擬プログラム表示領域
６４  模擬画面表示領域
７０  別ウィンドウ
７１  挿入ボタン
８０  モジュール挿入ダイアログ
８１  局番選択領域
８２  モジュール属性選択領域
８３  モジュール種別選択領域
８４  名称入力領域
８５  仕様選択領域
９１  データ種別
９２  データ名称
１００  管理テーブル
１０１  データ種別
１０２  データ名称
１１０  模擬プログラム群
１１１  “サーボプログラム”
１１２  “インバータプログラム”
１２０  模擬画面群
１２１  “サーボ画面”
１２２  “インバータ画面”
１３１  製品コード
１３２  局番
１３３  名称
１３４  形式
【図１】
2012168900.tif 000003
【図５】
2012168900.tif 000004
【図７】
2012168900.tif 000005
【図２】
2012168900.tif 000006
【図３】
2012168900.tif 000007
【図４】
2012168900.tif 000008
【図６】
2012168900.tif 000009