(57)【特許請求の範囲】
【請求項１】
機械の動きを制御するコントローラにおいて制御周期ごとに実行される第１の制御プログラムをシミュレーションする情報処理装置であって、
任意のタイミングにおける前記第１の制御プログラムに対して入力された入力変数の値および当該入力変数を識別するための第１の識別情報と、前記任意のタイミングにおける前記第１の制御プログラムの実行により出力された出力変数の値および当該出力変数を識別するための第２の識別情報とを、前記コントローラから取得する取得手段と、
前記第１の制御プログラムと同じ処理を実行する第２の制御プログラムを記憶した記憶手段と、
前記記憶手段に記憶された第２の制御プログラムをシミュレーションするシミュレーション手段と、
前記シミュレーションの結果を表示装置に表示させる表示制御手段とを備え、
前記シミュレーション手段は、前記第２の制御プログラムの実行を停止させた状態で、前記取得された入力変数の値を前記第１の識別情報で特定される変数の値とし、前記取得された出力変数の値を前記第２の識別情報で特定される変数の値として、前記第２の制御プログラムに入力し、
前記表示制御手段は、前記取得された入力変数の値と出力変数の値との前記第２の制御プログラムへの入力の結果を、前記第２の制御プログラムを可視化した状態で前記表示装置に表示させる、情報処理装置。
【請求項２】
前記取得手段は、前記コントローラから当該コントローラにおける設定情報をさらに取得し、
前記シミュレーション手段は、前記第２の制御プログラムに前記取得された設定情報をさらに入力し、
前記表示制御手段は、前記取得された入力変数と出力変数と前記設定情報とが前記第２の制御プログラムに入力された場合、前記第２の制御プログラムを可視化した状態で当該入力変数と出力変数との状態を前記表示装置に表示させる、請求項１に記載の情報処理装置。
【請求項３】
前記制御プログラムは、ラダープログラムであって、
前記表示制御手段は、前記取得された入力変数と出力変数とを含むラダー図を前記表示装置に表示させる、請求項１または２に記載の情報処理装置。
【請求項４】
前記シミュレーション手段は、
動作モードとして、前記ラダープログラムを実行する第１の動作モードと、前記ラダープログラムのロジックの実行を停止する第２の動作モードとを含み、
前記動作モードが前記第２の動作モードである場合に、前記取得された入力変数と出力変数との前記ラダ―プログラムへの入力を行なう、請求項３に記載の情報処理装置。
【請求項５】
前記任意のタイミングは、前記コントローラによる前記機械の制御に不具合が生じたときである、請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記取得手段は、前記任意のタイミングにおける前記第１の制御プログラムの内部変数と、当該内部変数を識別するための第３の識別情報とを、前記コントローラからさらに取得し、
前記シミュレーション手段は、前記第２の制御プログラムの実行を停止させた状態で、前記取得された内部変数の値を前記第３の識別情報で特定される変数の値として、前記第２の制御プログラムに入力し、
前記表示制御手段は、前記取得された入力変数の値と出力変数の値と内部変数の値との前記第２の制御プログラムへの入力の結果を、前記第２の制御プログラムを可視化した状態で前記表示装置に表示させる、請求項１から５のいずれか１項に情報処理装置。
【請求項７】
機械の動きを制御するコントローラにおいて制御周期ごとに実行される第１の制御プログラムをシミュレーションする情報処理装置における情報処理方法であって、
任意のタイミングにおける前記第１の制御プログラムに対して入力された入力変数の値および当該入力変数を識別するための第１の識別情報と、前記任意のタイミングにおける前記第１の制御プログラムの実行により出力された出力変数の値および当該出力変数を識別するための第２の識別情報とを、前記コントローラから取得するステップと、
前記情報処理装置において前記第１の制御プログラムと同じ処理を実行する第２の制御プログラムの実行を停止させた状態で、前記取得された入力変数の値を前記第１の識別情報で特定される変数の値とし、前記取得された出力変数の値を前記第２の識別情報で特定される変数の値として、前記第２の制御プログラムに入力するステップと、
前記取得された入力変数の値と出力変数の値との前記第２の制御プログラムへの入力の結果を前記第２の制御プログラムを可視化した状態で表示装置に表示させるステップとを備える、情報処理方法。
【請求項８】
機械の動きを制御するコントローラにおいて制御周期ごとに実行される第１の制御プログラムをシミュレーションする情報処理装置を制御するためのプログラムであって、
任意のタイミングにおける前記第１の制御プログラムに対して入力された入力変数の値および当該入力変数を識別するための第１の識別情報と、前記任意のタイミングにおける前記第１の制御プログラムの実行により出力された出力変数の値および当該出力変数を識別するための第２の識別情報とを、前記コントローラから取得するステップと、
前記情報処理装置において前記第１の制御プログラムと同じ処理を実行する第２の制御プログラムの実行を停止させた状態で、前記取得された入力変数の値を前記第１の識別情報で特定される変数の値とし、前記取得された出力変数の値を前記第２の識別情報で特定される変数の値として、前記第２の制御プログラムに入力するステップと、
前記取得された入力変数の値と出力変数の値との前記第２の制御プログラムへの入力の結果を前記第２の制御プログラムを可視化した状態で表示装置に表示させるステップとを、前記情報処理装置のプロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関し、特に、制御プログラムをシミュレーション実行することができる情報処理装置、情報処理装置における情報処理方法、および情報処理装置を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、シミュレーション実行することができるコントローラサポート装置が知られている。
【０００３】
たとえば、特許文献１には、モーション制御を含む制御プログラムをシミュレーション実行する場合に、実行の開始から終了までの間の途中の制御周期からの再実行を可能にするコントローラサポート装置が開示されている。具体的には、当該コントローラサポート装置は、制御プログラムのシーケンス制御部分を１周期分シミュレーション実行し、シーケンス制御部分に関する実行結果を生成する。コントローラサポート装置は、モーション制御部分を１周期分シミュレーション実行し、モーション制御部分に関する実行結果を生成する。そして、次に、コントローラサポート装置は、制御周期番号をインクリメント更新する。コントローラサポート装置は、再開可能制御周期かどうかを判断し、再開可能制御周期であると判断した場合には、前の制御周期で更新された再開用データバッファの内容を再開用データ記憶部に保存する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１９２０１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１等の技術では、任意のタイミングにおいてコントローラで入出力されている変数の状態を、コントローラサポート装置（情報処理装置）側においてユーザにとって確認が容易な状態で表示させることはできない。
【０００６】
本願発明は、上記問題点に鑑みなされたものであって、その目的は、任意のタイミングにおいてコントローラで入出力されている変数の状態を、ユーザにとって確認が容易な状態で表示可能な情報処理装置、情報処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある局面に従うと、情報処理装置は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される第１の制御プログラムをシミュレーションする。情報処理装置は、任意のタイミングにおける第１の制御プログラムに対して入力された入力変数の値および当該入力変数を識別するための第１の識別情報と、任意のタイミングにおける第１の制御プログラムの実行により出力された出力変数の値および当該出力変数を識別するための第２の識別情報とを、コントローラから取得する取得手段と、第１の制御プログラムと同じ処理を実行する第２の制御プログラムを記憶した記憶手段と、記憶手段に記憶された第２の制御プログラムをシミュレーションするシミュレーション手段と、シミュレーションの結果を表示装置に表示させる表示制御手段とを備える。シミュレーション手段は、第２の制御プログラムの実行を停止させた状態で、取得された入力変数の値を第１の識別情報で特定される変数の値とし、取得された出力変数の値を第２の識別情報で特定される変数の値として、第２の制御プログラムに入力する。表示制御手段は、取得された入力変数の値と出力変数の値との第２の制御プログラムへの入力の結果を、第２の制御プログラムを可視化した状態で表示装置に表示させる。
【０００８】
好ましくは、取得手段は、コントローラから当該コントローラにおける設定情報をさらに取得する。シミュレーション手段は、第２の制御プログラムに取得された設定情報をさらに入力する。表示制御手段は、取得された入力変数と出力変数と設定情報とが第２の制御プログラムに入力された場合、第２の制御プログラムを可視化した状態で当該入力変数と出力変数との状態を表示装置に表示させる。
【０００９】
好ましくは、制御プログラムは、ラダープログラムである。表示制御手段は、取得された入力変数と出力変数とを含むラダー図を表示装置に表示させる。
【００１０】
好ましくは、シミュレーション手段は、動作モードとして、ラダープログラムを実行する第１の動作モードと、ラダープログラムのロジックの実行を停止する第２の動作モードとを含む。シミュレーション手段は、動作モードが第２の動作モードである場合に、取得された入力変数と出力変数とのラダ―プログラムへの入力を行なう。
【００１１】
好ましくは、任意のタイミングは、コントローラによる機械の制御に不具合が生じたときである。
【００１２】
好ましくは、取得手段は、任意のタイミングにおける第１の制御プログラムの内部変数と、当該内部変数を識別するための第３の識別情報とを、コントローラからさらに取得する。シミュレーション手段は、第２の制御プログラムの実行を停止させた状態で、取得された内部変数の値を第３の識別情報で特定される変数の値として、第２の制御プログラムに入力する。表示制御手段は、取得された入力変数の値と出力変数の値と内部変数の値との第２の制御プログラムへの入力の結果を、第２の制御プログラムを可視化した状態で表示装置に表示させる。
【００１３】
本発明の他の局面に従うと、情報処理方法は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される第１の制御プログラムをシミュレーションする情報処理装置において実行される。情報処理方法は、任意のタイミングにおける第１の制御プログラムに対して入力された入力変数の値および当該入力変数を識別するための第１の識別情報と、任意のタイミングにおける第１の制御プログラムの実行により出力された出力変数の値および当該出力変数を識別するための第２の識別情報とを、コントローラから取得するステップと、情報処理装置において第１の制御プログラムと同じ処理を実行する第２の制御プログラムの実行を停止させた状態で、取得された入力変数の値を第１の識別情報で特定される変数の値とし、取得された出力変数の値を第２の識別情報で特定される変数の値として、第２の制御プログラムに入力するステップと、取得された入力変数の値と出力変数の値との第２の制御プログラムへの入力の結果を第２の制御プログラムを可視化した状態で表示装置に表示させるステップとを備える。
【００１４】
本発明のさらに他の局面に従うと、プログラムは、機械の動きを制御するコントローラにおいて制御周期ごとに実行される第１の制御プログラムをシミュレーションする情報処理装置を制御する。プログラムは、任意のタイミングにおける第１の制御プログラムに対して入力された入力変数の値および当該入力変数を識別するための第１の識別情報と、任意のタイミングにおける第１の制御プログラムの実行により出力された出力変数の値および当該出力変数を識別するための第２の識別情報とを、コントローラから取得するステップと、情報処理装置において第１の制御プログラムと同じ処理を実行する第２の制御プログラムの実行を停止させた状態で、取得された入力変数の値を第１の識別情報で特定される変数の値とし、取得された出力変数の値を第２の識別情報で特定される変数の値として、第２の制御プログラムに入力するステップと、取得された入力変数の値と出力変数の値との第２の制御プログラムへの入力の結果を第２の制御プログラムを可視化した状態で表示装置に表示させるステップとを、情報処理装置のプロセッサに実行させる。
【発明の効果】
【００１５】
本発明によれば、任意のタイミングにおいてコントローラで入出力されている変数の状態を、ユーザにとって確認が容易な状態で表示可能となる。
【図面の簡単な説明】
【００１６】
【図１】制御システムの構成を説明する図である。
【図２】コントローラの概略構成を表した図である。
【図３】ＣＰＵユニットのハードウェア構成を示す模式図である。
【図４】ＣＰＵユニットで実行されるソフトウェア構成を示す模式図である。
【図５】ＰＣのハードウェア構成を説明する図である。
【図６】ＣＰＵがコントローラサポートプログラムを実行することにより実現される機能ブロックを説明する図である。
【図７】バックアップとリストアとにおける処理の流れを説明するためのシーケンスチャートである。
【図８】バックアップファイルの構成を説明するための図である。
【図９】制御プログラムを可視化した状態で、バックアップファイルにおける入力変数と出力変数との制御プログラムへの入力結果をモニタに表示させた状態を表した図である。
【図１０】ＰＣにおける処理の流れを示したフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照しつつ、本発明の実施の形態に係る制御システムについて説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１８】
また、「＜Ｄ．バックアップおよびリストア＞」に記載の処理を説明するに先立ち、「＜Ａ．システム構成＞」、「＜Ｂ．コントローラ１４＞」、および「＜Ｃ．ＰＣ６＞」の項目において、制御システムの全体構成、制御システムに含まれるコントローラの構成、および制御システムに含まれるＰＣ（パーソナルコンピュータ）の構成を説明する。
【００１９】
＜Ａ．システム構成＞
図１は、制御システムの構成を説明する図である。図１を参照して、本発明の実施の形態に従う制御システム１は、サーバ２と、ネットワーク４と、ＰＣ（パーソナルコンピュータ）６と、コントローラ１４と、制御対象装置１６とから構成されている。
【００２０】
サーバ２は、ネットワーク４を介してＰＣ６と接続されている。ＰＣ６は、接続ケーブル２２を介して、制御対象装置１６を制御するコントローラ１４と通信可能に接続されている。
【００２１】
情報処理装置であるＰＣ６は、コントローラサポート装置として機能する。ＰＣ６には、コントローラサポートプログラム８がインストールされており、また、ユーザが作成した制御プログラム１０が記憶されている。ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）１２は、コントローラサポートプログラム８を格納している。ＰＣ６にインストールされているコントローラサポートプログラム８は、このＣＤ−ＲＯＭ１２からインストールされたものである。
【００２２】
コントローラ１４は、制御対象装置１６とはフィールドネットワーク２４により通信可能に接続されている。コントローラ１４は、制御対象装置１６の動きを制御する。本発明の実施の形態においては、コントローラ１４として一例として、ＰＬＣ（Programmable Logic Controller）が用いられる。すなわち、このＰＬＣには、いわゆるモーションコントロール機能が備えられている。コントローラ１４は、制御対象装置１６に対する制御内容を規定する制御プログラム１５を記憶している。コントローラ１４は、制御周期ごとに制御プログラム１５を一巡実行する。ここで、コントローラ１４に記憶されている制御プログラム１５は、ＰＣ６に記憶されている制御プログラム１０をコピーしたコピーデータであり、ＰＣ６から送信されたものである。
【００２３】
制御対象装置１６は、サーボモータ、ステッピングモータなどのモータ１８を駆動するモータドライバ１７を含む。
【００２４】
モータ１８はモータドライバ１７から駆動電流を供給される。モータドライバ１７は、制御プログラム１５を実行するコントローラ１４から制御周期ごとに位置の指令値を与えられ、それに応じた駆動電流をモータ１８に供給する。モータ１８がサーボモータである場合、モータ１８にはエンコーダが備えられており、モータ１８の回転位置の実測値がエンコーダによって検出される。モータの回転位置の実測値は、モータドライバ１７がフィードバック制御に利用する。
【００２５】
なお、上記においては、ＣＤ−ＲＯＭ１２を介して、ＰＣ６にコントローラサポートプログラムをインストールする場合について説明したが、特にこれに限られず、サーバ２からネットワーク４を介してコントローラサポートプログラムをＰＣ６にダウンロードするようにしても良い。制御プログラムについても同様である。
【００２６】
＜Ｂ．コントローラ１４＞
（ｂ１．全体構成）
図２は、コントローラ１４の概略構成を表した図である。図２を参照して、コントローラ１４は、主たる演算処理を実行するＣＰＵユニット４１３と、１つ以上のＩＯユニット４１４と、特殊ユニット４１５とを含む。これらのユニットは、ＰＬＣシステムバス４１１を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット４１２によって適切な電圧の電源が供給される。なお、コントローラ１４として構成される各ユニットは、ＰＬＣメーカーが提供するものであるので、ＰＬＣシステムバス４１１は、一般にＰＬＣメーカーごとに独自に開発され、使用されている。これに対して、後述するようにフィールドネットワーク２４については、異なるメーカーの製品同士が接続できるように、その規格などが公開されている場合も多い。
【００２７】
ＣＰＵユニット４１３の詳細については、図３を参照して後述する。
ＩＯユニット４１４は、一般的な入出力処理に関するユニットであり、オン／オフといった２値化されたデータの入出力を司る。すなわち、ＩＯユニット４１４は、検出スイッチ（図示せず）などのセンサが何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニット４１４は、リレー（図示せず）やアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）のいずれかを出力する。
【００２８】
特殊ユニット４１５は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、ＩＯユニット４１４ではサポートしない機能を有する。
【００２９】
（ｂ２．ＣＰＵユニットのハードウェア構成）
図３は、ＣＰＵユニット４１３のハードウェア構成を示す模式図である。図３を参照して、ＣＰＵユニット４１３は、マイクロプロセッサ１００と、チップセット１０２と、メインメモリ１０４と、不揮発性メモリ１０６と、システムタイマ１０８と、ＰＬＣシステムバスコントローラ１２０と、フィールドネットワークコントローラ１４０と、ＵＳＢコネクタ１１０とを含む。チップセット１０２と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００３０】
マイクロプロセッサ１００およびチップセット１０２は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ１００は、チップセット１０２から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット１０２は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ１００に必要な命令コードを生成する。さらに、チップセット１０２は、マイクロプロセッサ１００での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【００３１】
ＣＰＵユニット４１３は、記憶手段として、メインメモリ１０４および不揮発性メモリ１０６を有する。
【００３２】
メインメモリ１０４は、揮発性の記憶領域（ＲＡＭ）であり、ＣＰＵユニット４１３への電源投入後にマイクロプロセッサ１００で実行されるべき各種プログラムを保持する。また、メインメモリ１０４は、マイクロプロセッサ１００による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ１０４としては、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）といったデバイスが用いられる。
【００３３】
一方、不揮発性メモリ１０６は、リアルタイムＯＳ（Operating System）、コントローラ１４のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ１００がアクセスできるようにメインメモリ１０４にコピーされる。このような不揮発性メモリ１０６としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、ＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）のような光学記録媒体などを用いることもできる。
【００３４】
システムタイマ１０８は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ１００に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、ＯＳ（Operating System）やＢＩＯＳ（Basic Input Output System）などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ１０８が発生する割り込み信号を利用して、後述するようなモーション制御サイクルごとの制御動作が実現される。
【００３５】
ＣＰＵユニット４１３は、通信回路として、ＰＬＣシステムバスコントローラ１２０およびフィールドネットワークコントローラ１４０を有する。
【００３６】
バッファメモリ１２６は、ＰＬＣシステムバス４１１を介して他のユニットへ出力されるデータ（以下「出力データ」とも称す。）の送信バッファ、および、ＰＬＣシステムバス４１１を介して他のユニットから入力されるデータ（以下「入力データ」とも称す。）の受信バッファとして機能する。なお、マイクロプロセッサ１００による演算処理によって作成された出力データは、原始的にはメインメモリ１０４に格納される。そして、特定のユニットへ転送されるべき出力データは、メインメモリ１０４から読み出されて、バッファメモリ１２６に一次的に保持される。また、他のユニットから転送された入力データは、バッファメモリ１２６に一次的に保持された後、メインメモリ１０４に移される。
【００３７】
ＤＭＡ制御回路１２２は、メインメモリ１０４からバッファメモリ１２６への出力データの転送、および、バッファメモリ１２６からメインメモリ１０４への入力データの転送を行なう。
【００３８】
ＰＬＣシステムバス制御回路１２４は、ＰＬＣシステムバス４１１に接続される他のユニットとの間で、バッファメモリ１２６の出力データを送信する処理および入力データを受信してバッファメモリ１２６に格納する処理を行なう。典型的には、ＰＬＣシステムバス制御回路１２４は、ＰＬＣシステムバス４１１における物理層およびデータリンク層の機能を提供する。
【００３９】
フィールドネットワークコントローラ１４０は、フィールドネットワーク２４を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ１４０は、用いられるフィールドネットワーク２４の規格に従い、出力データの送信および入力データの受信を制御する。上述したように、本実施の形態においてはＥｔｈｅｒＣＡＴ（登録商標）規格に従うフィールドネットワーク２４が採用されるので、通常のイーサネット（登録商標）通信を行なうためのハードウェアを含む、フィールドネットワークコントローラ１４０が用いられる。ＥｔｈｅｒＣＡＴ（登録商標）規格では、通常のイーサネット（登録商標）規格に従う通信プロトコルを実現する一般的なイーサネット（登録商標）コントローラを利用できる。但し、フィールドネットワーク２４として採用される産業用イーサネット（登録商標）の種類によっては、通常の通信プロトコルとは異なる専用仕様の通信プロトコルに対応した特別仕様のイーサネット（登録商標）コントローラが用いられる。また、産業用イーサネット（登録商標）以外のフィールドネットワークを採用した場合には、当該規格に応じた専用のフィールドネットワークコントローラが用いられる。
【００４０】
ＤＭＡ制御回路１４２は、メインメモリ１０４からバッファメモリ１４６への出力データの転送、および、バッファメモリ１４６からメインメモリ１０４への入力データの転送を行なう。
【００４１】
フィールドネットワーク制御回路１４４は、フィールドネットワーク２４に接続される他の装置との間で、バッファメモリ１４６の出力データを送信する処理および入力データを受信してバッファメモリ１４６に格納する処理を行なう。典型的には、フィールドネットワーク制御回路１４４は、フィールドネットワーク２４における物理層およびデータリンク層の機能を提供する。
【００４２】
ＵＳＢコネクタ１１０は、ＰＣ６とＣＰＵユニット４１３とを接続するためのインターフェイスである。典型的には、ＰＣ６から転送される、ＣＰＵユニット４１３のマイクロプロセッサ１００で実行可能なプログラムなどは、ＵＳＢコネクタ１１０を介してコントローラ１４に取込まれる。
【００４３】
（ｂ３．ＣＰＵユニットのソフトウェア構成）
次に、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、ＣＰＵユニット４１３のマイクロプロセッサ１００によって実行される。
【００４４】
図４は、ＣＰＵユニット４１３で実行されるソフトウェア構成を示す模式図である。図４を参照して、ＣＰＵユニット４１３で実行されるソフトウェアとしては、リアルタイムＯＳ２００と、システムプログラム２１０と、ユーザプログラム２３６との３階層になっている。
【００４５】
リアルタイムＯＳ２００は、ＣＰＵユニット４１３のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ１００がシステムプログラム２１０およびユーザプログラム２３６を実行するための基本的な実行環境を提供する。このリアルタイムＯＳは、典型的には、ＰＬＣのメーカーあるいは専門のソフトウェア会社などによって提供される。
【００４６】
システムプログラム２１０は、コントローラ１４としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム２１０は、スケジューラプログラム２１２と、出力処理プログラム２１４と、入力処理プログラム２１６と、シーケンス命令演算プログラム２３２と、モーション演算プログラム２３４と、その他のシステムプログラム２２０とを含む。なお、一般には出力処理プログラム２１４および入力処理プログラム２１６は、連続的（一体として）に実行されるので、これらのプログラムを、ＩＯ処理プログラム２１８と総称する場合もある。
【００４７】
ユーザプログラム２３６は、ユーザにおける制御目的に応じて作成される。すなわち、制御システム１を用いて制御する対象のライン（プロセス）などに応じて、任意に設計されるプログラムである。
【００４８】
後述するように、ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム２３６、シーケンス命令演算プログラム２３２、およびモーション演算プログラム２３４を、制御プログラム１５と総称する場合もある。
【００４９】
このように、ＣＰＵユニット４１３のマイクロプロセッサ１００は、記憶手段に格納されたシステムプログラム２１０およびユーザプログラム２３６を実行する。
【００５０】
以下、各プログラムについてより詳細に説明する。
ユーザプログラム２３６は、上述したように、ユーザにおける制御目的（たとえば、対象のラインやプロセス）に応じて作成される。ユーザプログラム２３６は、典型的には、ＣＰＵユニット４１３のマイクロプロセッサ１００で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム２３６は、ＰＣ６などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム２３６は、ＰＣ６から接続ケーブル２２を介してＣＰＵユニット４１３へ転送され、不揮発性メモリ１０６などに格納される。
【００５１】
スケジューラプログラム２１２は、出力処理プログラム２１４、入力処理プログラム２１６、および制御プログラム１５について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム２１２は、ユーザプログラム２３６およびモーション演算プログラム２３４の実行を制御する。
【００５２】
本実施の形態に係るＣＰＵユニット４１３では、モーション演算プログラム２３４に適した一定周期の実行サイクル（モーション制御サイクル）を処理全体の共通サイクルとして採用する。そのため、１つのモーション制御サイクル内で、すべての処理を完了することは難しいので、実行すべき処理の優先度などに応じて、各モーション制御サイクルにおいて実行を完了すべき処理と、複数のモーション制御サイクルに亘って実行してもよい処理とが区分される。スケジューラプログラム２１２は、これらの区分された処理の実行順序などを管理する。より具体的には、スケジューラプログラム２１２は、各モーション制御サイクル期間内において、より高い優先度が与えられているプログラムほど先に実行する。
【００５３】
出力処理プログラム２１４は、ユーザプログラム２３６（制御プログラム１５）の実行によって生成された出力データを、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０へ転送するのに適した形式に再配置する。ＰＬＣシステムバスコントローラ１２０またはフィールドネットワークコントローラ１４０が、マイクロプロセッサ１００からの、送信を実行するための指示を必要とする場合は、出力処理プログラム２１４がそのような指示を発行する。
【００５４】
入力処理プログラム２１６は、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０によって受信された入力データを、制御プログラム１５が使用するのに適した形式に再配置する。
【００５５】
シーケンス命令演算プログラム２３２は、ユーザプログラム２３６で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
【００５６】
モーション演算プログラム２３４は、ユーザプログラム２３６による指示に従って実行され、モータドライバ１７に対して出力する指令値を算出するプログラムである。
【００５７】
その他のシステムプログラム２２０は、図４に個別に示したプログラム以外の、コントローラ１４の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム２２０は、モーション制御サイクルの周期を設定するプログラム２２２を含む。
【００５８】
モーション制御サイクルの周期は、制御目的に応じて適宜設定することができる。典型的には、モーション制御サイクルの周期を指定する情報をユーザがＰＣ６へ入力する。すると、その入力された情報は、ＰＣ６からＣＰＵユニット４１３へ転送される。モーション制御サイクルの周期を設定するプログラム２２２は、ＰＣ６からの情報を不揮発性メモリ１０６に格納させるとともに、システムタイマ１０８から指定されたモーション制御サイクルの周期で割り込み信号が発生されるように、システムタイマ１０８を設定する。ＣＰＵユニット４１３への電源投入時に、モーション制御サイクルの周期を設定するプログラム２２２が実行されることで、モーション制御サイクルの周期を指定する情報が不揮発性メモリ１０６から読み出され、読み出された情報に従ってシステムタイマ１０８が設定される。
【００５９】
モーション制御サイクルの周期を指定する情報の形式としては、モーション制御サイクルの周期を示す時間の値や、モーション制御サイクルの周期に関する予め用意された複数の選択肢のうちから１つを特定する情報（番号または文字）などを採用することができる。
【００６０】
本実施の形態に係るＣＰＵユニット４１３において、モーション制御サイクルの周期を設定する手段としては、モーション制御サイクルの周期を指定する情報を取得するために用いられるＰＣ６との通信手段、モーション制御サイクルの周期を設定するプログラム２２２、ならびにモーション制御サイクルを規定する割り込み信号の周期を任意に設定可能に構成されているシステムタイマ１０８の構成といった、モーション制御サイクルの周期を任意の設定するために用いられる要素が該当する。
【００６１】
リアルタイムＯＳ２００は、複数のプログラムを時間の経過に従い切り換えて実行するための環境を提供する。本実施の形態に係るコントローラ１４においては、ＣＰＵユニット４１３のプログラム実行によって生成された出力データを他のユニットまたは他の装置へ出力（送信）するためのイベント（割り込み）として、出力準備割り込み（Ｐ）およびフィールドネットワーク送信割り込み（Ｘ）が初期設定される。リアルタイムＯＳ２００は、出力準備割り込み（Ｐ）またはフィールドネットワーク送信割り込み（Ｘ）が発生すると、マイクロプロセッサ１００での実行対象を、割り込み発生時点で実行中のプログラムからスケジューラプログラム２１２に切り換える。なお、リアルタイムＯＳ２００は、スケジューラプログラム２１２およびスケジューラプログラム２１２がその実行を制御するプログラムが何ら実行されていない場合に、その他のシステムプログラム２１０に含まれているプログラムを実行する。このようなプログラムとしては、たとえば、ＣＰＵユニット４１３とＰＣ６との間の接続ケーブル２２（ＵＳＢ）などを介した通信処理に関するものが含まれる。
【００６２】
＜Ｃ．ＰＣ６＞
（ｃ１．ハードウェア構成）
図５は、ＰＣ６のハードウェア構成を説明する図である。図５を参照して、本発明の実施の形態に従うＰＣ６は、ＣＰＵ９０１と、ＲＯＭ９０２、ＲＡＭ９０３、およびＨＤＤ９０４と、ＣＤ−ＲＯＭ駆動装置９０８と、通信ＩＦ９０９と、モニタ９０７と、キーボード９０５およびマウス９０６とを含む。なお、これらの部位は、内部バス９１０を介して互いに接続される。
【００６３】
ＨＤＤ９０４は、典型的には不揮発性の磁気メモリであり、ＣＤ−ＲＯＭ駆動装置９０８によりＣＤ−ＲＯＭ１２から読取られたコントローラサポートプログラムを格納する。また、制御プログラム１５も格納している。
【００６４】
ＣＰＵ９０１は、ＨＤＤ９０４に格納されている、本実施の形態に従うコントローラサポートプログラム８をＲＡＭ９０３などに展開して実行する。
【００６５】
ＲＡＭ９０３は、揮発性メモリであり、ワークメモリとして使用される。ＲＯＭ９０２は、一般的に、オペレーティングシステム（ＯＳ：Operating System）等のプログラムを格納している。
【００６６】
通信ＩＦ９０９は、典型的にはイーサネット（登録商標）およびＵＳＢ（Universal Serial Bus）といった汎用的な通信プロトコルをサポートし、ネットワーク４を介してサーバ２との間でデータ通信を提供するとともに、コントローラ１４との間でデータ通信を提供する。
【００６７】
モニタ９０７は、液晶表示装置、ＣＲＴ（Cathode Ray Tube）、プラズマディスプレイ装置などで構成され、ＰＣ６による処理結果などを表示する。キーボード９０５は、ユーザによるキー入力を受付け、マウス９０６は、ユーザによるポインティング操作を受付ける。
【００６８】
（ｃ２．機能的構成）
図６は、ＣＰＵ９０１がコントローラサポートプログラム８を実行することにより実現される機能ブロックを説明する図である。図６を参照して、ここでは、ユーザインターフェイス部８０２と、表示データ作成部８０４と、シミュレーション部８０６と、制御プログラム記憶部８０８と、制御プログラム編集部８１０と、コントローラインターフェイス部８１２と、バックアップファイル作成部８１４とが示されている。
【００６９】
ユーザインターフェイス部８０２は、ＰＣ６のモニタ９０７に表示するウインドウ画面の内容を作成し、また、キーボード９０５やマウス９０６によるユーザの操作を受け付ける部位である。
【００７０】
制御プログラム編集部８１０は、制御プログラムの入力および編集をユーザに行わせる。制御プログラム編集部８１０は、制御プログラムを実行するためにコンパイルが必要である場合はコンパイルも行う。作成された制御プログラムは、コントローラインターフェイス部８１２を介してコントローラ１４に送られる。また、作成された制御プログラムは、ＨＤＤ９０４の所定領域である制御プログラム記憶部８０８に格納される。また、制御プログラム編集部８１０は、コントローラインターフェイス部８１２を介してコントローラ１４に記憶されている制御プログラム１５を読み出して編集することもできる。制御プログラム編集部８１０は、たとえば、ユーザからの制御プログラムの変更（たとえば修正）指示を受け付け、当該指示に基づいて制御プログラムを変更する。
【００７１】
シミュレーション部８０６は、コントローラ１４のシミュレータである。シミュレーション部８０６は、制御プログラム記憶部８０８に記憶された制御プログラム１０に従ってコントローラ１４が制御プログラム１５を実行する動作をシミュレートし、コントローラ１４が制御周期ごとに出力するはずの位置の指令値を算出する。
【００７２】
また、シミュレーション部８０６は、外部からの信号が到来して制御プログラムの動作に影響を与える状態をシミュレートしたり、制御プログラム１５の実行自体によってコントローラ１４のメモリの記憶内容などのコントローラ１４の内部状態が変化して、その変化が制御プログラム１５の動作に影響を与える状態をシミュレートしたりすることができる。
【００７３】
また、シミュレーション部８０６は、ユーザインターフェイス部８０２を介してシミュレーション実行に関するユーザの指示を受け付ける。すなわち、ユーザインターフェイス部８０２は、シミュレーション部８０６に対するユーザの指示を受け付ける手段としても働く。
【００７４】
表示データ作成部８０４は、シミュレーション部８０６によって作成された実行結果データの時間的な変化を表示するための表示データを作成する。表示データ作成部８０４は、作成した表示データをユーザインターフェイス部８０２に送ることによりＰＣ６のモニタ９０７に表示データをグラフや文字の態様で表示する。
【００７５】
また、コントローラインターフェイス部８１２は、コントローラ１４からバックアップデータを取得する。なお、バックアップデータの取得は、コントローラインターフェイス部８１２を介したものに限定されない。たとえば、ＰＣ６のバックアップファイル作成部８１４は、ＳＤ（Secure Digital）カード等のメモリカードを用いて、コントローラ１４からバックアップデータを取得してもよい。以下では、説明の便宜上、コントローラインターフェイス部８１２がコントローラ１４からバックアップデータを取得する構成を例に挙げて説明する。つまり、ＳＤカードを用いない構成を例に挙げて説明する。また、バックアップデータの詳細については、後述する。
【００７６】
バックアップファイル作成部８１４は、複数種類のバックアップデータを用いて１つのバックアップファイルを生成する。
【００７７】
シミュレーション部８０６は、後述するリストアの指示がユーザインターフェイス部８０２を介して入力された場合、バックアップファイルを用いてリストアを実行する。
【００７８】
表示データ作成部８０４は、制御プログラム１０を可視化した状態で、リストアの結果をモニタ９０７に表示させる。
【００７９】
バックアップファイルの生成、リストアの詳細、および表示データ作成部８０４によるリストアの結果表示については、以下の「＜Ｄ．バックアップおよびリストア＞」の項目で説明する。
【００８０】
以下では、バックアップデータの取得前において、ＰＣ６が、制御プログラム１０と、設定情報と、制御システム１におけるユニットの構成およびスレーブの構成を表した情報（以下、ユニットおよびスレーブ情報）とを有していない場合を例に挙げて説明する。なお、「設定情報」とは、モーション軸の設定、タスクの設定等を表した情報である。
【００８１】
また、以下では、説明の便宜上、制御プログラムの一例としてラダープログラムを例に挙げて説明する。また、ラダープログラムによるラダー図には、ファンクションブロックが含まれるものとして説明する。また、バックアップを行なうタイミングとして、コントローラ１４で異常が発生した場合を例に挙げて説明する。なお、バックアップを行なうタイミングは、コントローラ１４で異常が発生した場合に限定されず、ユーザの所望する任意のタイミングで実行可能である。
【００８２】
＜Ｄ．バックアップおよびリストア＞
（ｄ１．概要）
図７は、上述したバックアップとリストアとにおける処理の流れを説明するためのシーケンスチャートである。図７を参照して、シーケンスＳＱ２において、コントローラ１４において異常が発生したとする。
【００８３】
シーケンスＳＱ４において、ＰＣ６のコントローラインターフェイス部８１２は、コントローラ１４から複数種類のバックアップデータを取得する。バックアップデータの種類としては、たとえば、変数情報が挙げられる。「変数情報」とは、変数の識別情報、変数の型、変数の値等を含む情報である。「変数の識別情報」とは、たとえば、変数名である。変数の型としては、たとえば、ｂｏｏｌ、ｉｎｔ、ｓｔｒｉｎｇが挙げられる。
【００８４】
シーケンスＳＱ６において、コントローラインターフェイス部８１２は、取得した複数種類のバックアップデータをバックアップファイル作成部８１４に送る。シーケンスＳＱ８において、バックアップファイル作成部８１４は、複数のバックアップデータから１つのバックアップファイルを作成する。具体的には、バックアップファイル作成部８１４は、複数種類のバックアップデータをアーカイブすることにより、１つのバックアップファイルを生成する。バックアップファイルの構成については、後述する（図８）。
【００８５】
シーケンスＳＱ１０において、バックアップファイル作成部８１４は、生成されたバックアップファイルを、シミュレーション部８０６に送る。シーケンスＳＱ１２において、シミュレーション部８０６は、バックアップファイルを利用して、リストアを行なう。
【００８６】
「リストア」とは、バックアップファイルに格納された各変数の全部または一部を、シミュレーションの変数として利用（変数を戻す）ことをいう。本実施の形態では、「リストア」とは、特に、バックアップファイルに格納された各変数のうちの入力変数の全部または一部をミュレーションの入力変数として利用し、バックアップファイルに格納された各変数のうちの出力変数の全部または一部をミュレーションの出力変数として利用することをいう。より詳しくは、「リストア」とは、制御プログラムを停止させた状態で、コントローラ１４から取得された入力変数をＰＣ６の制御プログラム１０の入力変数とし、コントローラ１４から取得された出力変数をＰＣ６の制御プログラム１０の出力変数として、制御プログラム１０に入力することをいう。当該入力は、変数名毎に行なわれる。
【００８７】
ここで、シミュレーション部８０６は、動作モードとして、制御プログラム（たとえばラダープログラム）を実行するランモードと、制御プログラムのロジックの実行を停止するプログラムモードとを有している。上記リストアは、動作モードがプログラムモードである場合に、実行される。つまり、上記制御プログラムを停止させた状態とは、プログラムモードであることを意味する。
【００８８】
シーケンスＳＱ１４において、シミュレーション部８０６は、変数の入力により得られた入力結果を表示データ作成部８０４に送る。シーケンスＳＱ１６において、表示データ作成部８０４は、入力結果に基づいた表示をモニタ９０７に表示させる。詳しくは、表示データ作成部８０４は、制御プログラム１０を可視化した状態で、バックアップファイルにおける入力変数と出力変数との制御プログラム１０への入力結果を、モニタ９０７に表示させる。具体的な表示内容については、後述する（図９）。
【００８９】
以上により、ユーザは、コントローラ１４でバックアップを実施したときの状態のスナップショット（静止状態）をＰＣ６のモニタ９０７で確認することができる。なお、「スナップショット」とは、ある時点におけるメモリ内の状態（変数の状態）を取得して、データとして別途保存する処理である。
【００９０】
なお、たとえばラダー図では、それぞれの要素（接点等）が変数に割り当てられているため、任意のタイミングにおける変数の値および当該変数の変数名（識別情報）が分かれば、バックアップファイルにおける入力変数と出力変数とを制御プログラム１０に入力でき、パワーフロー図（各接点のＯＮ／ＯＦＦなどを表示したラダー図）を表示できる。また、プログラムに属するローカル変数の場合には、プログラム名が変数情報に含まれることになる。
【００９１】
（ｄ２．データ）
図８は、バックアップファイルの構成を説明するための図である。図８を参照して、バックアップファイル８９０は、バックアップデータ８９１と、バックアップデータ８９２と、バックアップデータ８９３とを含んで構成されている。つまり、バックアップファイル８９０は、複数種類のバックアップデータ８９１〜８９３をアーカイブしたものである。バックアップデータ８９１は、制御プログラム１５と、設定情報とを含んでいる。バックアップデータ８９２は、変数情報である。変数情報は、上述したように、変数名と、変数の型と、変数の値とを含む。バックアップデータ８９３は、ユニットおよびスレーブ情報である。
【００９２】
バックアップファイル８９０における制御プログラム１５は、ＰＣ６においてシミュレーションに用いられる。つまり、バックアップファイル８９０における制御プログラム１５は、図１における制御プログラム１０として用いられる。
【００９３】
なお、バックアップデータの取得前において、ＰＣ６が、制御プログラム１０と、設定情報と、ユニットおよびスレーブ情報とを有している場合には、バックアップファイルには、こららのプログラムおよび各情報は含まれている必要はない。つまり、バックアップファイルには、変数情報のみが含まれていればよい。
【００９４】
（ｄ３．表示画面）
図９は、制御プログラム１０を可視化した状態で、バックアップファイルにおける入力変数と出力変数との制御プログラム１０への入力結果をモニタ９０７に表示させた状態を表した図である。図９を参照して、画面９０７０には、２つの回路（つまりロジック）が含まれている。
【００９５】
１つ目（上側）のラダーにおいては、名称が“ａａａ”である変数（program0.aaa）の現在値および名称が“ｂｂｂ”である変数（program0.bbb）の現在値が、ともに“Ｔｒｕｅ”となっている。当該ラダーにおいては、名称が“ａａａ”である変数（program0.aaa）の現在値（つまりＴｒｕｅ）が入力となり、名称が“ｂｂｂ”である変数（program0.bbb）の現在値（つまりＴｒｕｅ）が出力となっている。
【００９６】
また、２つ目（下側）のラダーにおいては、名称が“ｂｂｂ”である変数（program0.bbb）の現在値が“Ｔｒｕｅ”であり、名称が“ｃｃｃ”である変数（program0.ccc）の現在値が“ＦＡＬＳＥ”となっている。当該ラダーにおいては、名称が“ｂｂｂ”である変数（program0.bbb）の現在値（つまりＴｒｕｅ）が入力となり、名称が“ｃｃｃ”である変数（program0.ccc）の現在値（つまりＦａｌｓｅ）が出力となっている。なお、“ＭＣＰＷ”との名称が付されたブロック（ＭＣ＿ＰＯＷＥＲ）は、ファンクションブロックである。
【００９７】
ユーザは、画面９０７０を確認することにより、どこで問題が生じているのかを容易に判断できる。たとえば、制御プログラム１０，１５に問題がない場合、変数（program0.bbb）の値がＴｒｕｅであれば、変数（program0.ccc）の値がＴｒｕｅとなるとする。この場合、ユーザは、ラダー図を見れば、変数（program0.ccc）の値が間違った結果（つまりＦａｌｓｅ）となっていることを、容易かつ迅速に判断できる。つまり、ユーザは、２つ目のラダーにおいて問題が生じていることを、容易かつ迅速に判断できる。
【００９８】
なお、画面９０７０のウォッチウィンドウ９０７１にもラダー図と同じ結果が異なる表示形式で表示される。したがって、ユーザは、ウォッチウィンドウ９０７１を確認することによっても、制御プログラムに問題が生じているか否かを判断できる。
【００９９】
（ｄ４．制御構造）
図１０は、ＰＣ６における処理の流れを示したフローチャートである。図１０を参照して、ステップＳ２において、ＰＣ６のＣＰＵ９０１は、コントローラ１４において制御プログラム１５に対して入力された入力変数および入力変数名と、制御プログラム１５の実行により出力された出力変数および出力変数名とを、コントローラ１４から取得する。
【０１００】
ステップＳ４において、ＣＰＵ９０１は、制御プログラム１０の実行を停止させた状態で、取得された入力変数を入力変数名の入力変数とし、取得された出力変数を出力変数名の出力変数として、制御プログラム１０に入力する。ステップＳ６において、ＣＰＵ９０１は、制御プログラム１０を可視化した状態で、取得された入力変数と出力変数との制御プログラム１０への入力結果をモニタ９０７に表示させる。
【０１０１】
＜Ｅ．変形例＞
（１）上記においては、ラダープログラムを例に挙げて説明したが、これに限定されるものではない。たとえば、ＰＬＣ用のプログラム言語であるストラクチャードテキスト（ＳＴ：Structured Text）に対しても適用できる。
【０１０２】
（２）また、入力変数および出力変数だけではなく、内部変数を表示するように、ＰＣ６を構成してもよい。なお、「内部変数」とは、入出力される変数ではなく、内部で使用される変数をいう。内部変数としては、たとえば、一時的な値を格納する変数が挙げられる。
【０１０３】
この場合、具体的には、ＰＣ６を以下のように構成すればよい。ＰＣ６のコントローラインターフェイス部８１２は、複数種類のバックアップデータとして、任意のタイミングにおける制御プログラム１５に対して入力された入力変数の値および当該入力変数を識別するための識別情報と、当該タイミングにおける制御プログラム１５の実行により出力された出力変数の値および当該出力変数を識別するための識別情報と、当該タイミングにおける制御プログラム１５の内部変数および当該内部変数を識別するための識別情報とを、コントローラ１４からさらに取得する。シミュレーション部８０６は、制御プログラム１０の実行を停止させた状態で、取得された内部変数の値を、当該内部変数の識別情報で特定される変数の値として、制御プログラム１０に入力する。表示データ作成部８０４は、取得された入力変数の値と出力変数の値と内部変数の値との制御プログラム１０への入力の結果を、制御プログラム１０を可視化した状態でモニタ９０７に表示させる。
【０１０４】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０５】
１  制御システム、２  サーバ、４  ネットワーク、６  ＰＣ、８  コントローラサポートプログラム、１０，１５  制御プログラム、１２  ＣＤ−ＲＯＭ、１４  コントローラ、１６  制御対象装置、１７  モータドライバ、１８  モータ、２２  接続ケーブル、２４  フィールドネットワーク、２１２  スケジューラプログラム、２３２  シーケンス命令演算プログラム、２３４  モーション演算プログラム、２３６  ユーザプログラム、４１１  システムバス、４１２  電源ユニット、４１３  ＣＰＵユニット、４１４  ＩＯユニット、４１５  特殊ユニット、８０２  ユーザインターフェイス部、８０４  表示データ作成部、８０６  シミュレーション部、８０８  制御プログラム記憶部、８１０  制御プログラム編集部、８１２  コントローラインターフェイス部、８１４  バックアップファイル作成部、８９０  バックアップファイル、８９１〜８９３  バックアップデータ、９０１  ＣＰＵ、９０３  ＲＡＭ、９０７  モニタ、９０９  通信ＩＦ、９０７０  画面、９０７１  ウォッチウィンドウ。
【図１】
0005891891.tif 000002
【図２】
0005891891.tif 000003
【図３】
0005891891.tif 000004
【図４】
0005891891.tif 000005
【図５】
0005891891.tif 000006
【図６】
0005891891.tif 000007
【図７】
0005891891.tif 000008
【図８】
0005891891.tif 000009
【図９】
0005891891.tif 000010
【図１０】
0005891891.tif 000011