(57)【要約】【課題】制御対象物のモデルを精度よく作成することが可能な情報処理装置を提供する。【解決手段】シミュレーション手段は、一連の模擬指令値を入力し、一連の模擬指令値に応答して動作する制御対象物の位置または速度の一連の模擬値を算出し、一連の模擬値を出力する。制御手段は、シミュレーション手段に対して一連の模擬指令値を与えるとともに、シミュレーション手段が出力した一連の模擬値をディスプレイに表示させる。制御手段は、制御装置が制御対象物の動作を制御するために予め定められた制御周期毎に出力する一連の実指令値および制御装置が制御周期毎に取得した制御対象物の位置または速度の一連の実値とを制御装置から取得し、一連の実指令値を一連の模擬指令値としてシミュレーション手段に与える。制御手段は、一連の実指令値を用いてシミュレーション手段が算出した一連の模擬値と対比可能な態様で一連の実値をディスプレイに表示させる。【選択図】図１１
2016012191.tif 000002
【特許請求の範囲】
【請求項１】
制御装置によって制御される制御対象物の動作を模擬し、模擬結果を表示手段に表示させる情報処理装置であって、
一連の模擬指令値を入力し、前記一連の模擬指令値に応答して動作する前記制御対象物の位置または速度の一連の模擬値を算出し、前記一連の模擬値を出力するシミュレーション手段と、
前記シミュレーション手段に対して前記一連の模擬指令値を与えるとともに、前記シミュレーション手段が出力した前記一連の模擬値を前記表示手段に表示させる制御手段と、
前記制御装置と通信するための通信手段とを備え、
前記制御手段は、さらに、
前記制御装置が前記制御対象物の動作を制御するために予め定められた制御周期毎に出力する一連の実指令値および前記制御装置が前記制御周期毎に取得した前記制御対象物の位置または速度の一連の実値とを、前記通信手段を介して前記制御装置から取得し、
前記一連の実指令値を前記一連の模擬指令値として前記シミュレーション手段に与え、
前記一連の実指令値を用いて前記シミュレーション手段が算出した前記一連の模擬値と対比可能な態様で、前記一連の実値を前記表示手段に表示させる、情報処理装置。
【請求項２】
前記一連の実指令値は、第１の時間間隔で前記制御装置から前記制御対象物に送信されるものであり、
前記制御手段は、前記第１の時間間隔よりも長い第２の時間間隔毎に、当該第２の時間において前記制御装置から送信された前記一連の実指令値および前記一連の実値とを、前記制御装置から取得する、請求項１に記載の情報処理装置。
【請求項３】
前記制御装置は、複数の変数についての前記指令値を前記制御対象物に送信するものであり、
前記制御手段は、
前記複数の変数のうちから、前記モデルに入力する変数を指定するための入力操作を受け付け、
前記指定された変数についての前記一連の実指令値および当該一連の実指令値に基づいた前記一連の実値とを、前記制御装置から取得する、請求項１または２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記一連の実指令値に関連付けて、前記一連の模擬値と前記一連の実値とを前記表示手段にグラフ表示させる、請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記制御手段は、コンピュータと、前記コンピュータで実行されるシミュレーション制御プログラムとにより構成される、請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記シミュレーション手段は、コンピュータと、前記コンピュータで実行されるシミュレーションプログラムと、前記制御対象物を定義したデータとにより構成される、請求項１から４のいずれか１項に記載の情報処理装置。
【請求項７】
前記シミュレーションプログラムは、複数の前記制御対象物で共通のプログラムであり、
前記シミュレーション手段は、
前記複数の制御対象物の各々についての前記データを有し、
前記複数の制御対象物の各々について前記一連の模擬値を算出して当該一連の模擬値を出力する、請求項６に記載の情報処理装置。
【請求項８】
前記シミュレーション手段は、コンピュータと、前記コンピュータで実行される前記制御対象物用のシミュレーションプログラムとにより構成される、請求項１から４のいずれか１項に記載の情報処理装置。
【請求項９】
前記シミュレーション手段は、
前記シミュレーションプログラムを、複数の前記制御対象物の各々に対応して有しており、
前記複数の制御対象物の各々について前記一連の模擬値を算出して当該一連の模擬値を出力する、請求項８に記載の情報処理装置。
【請求項１０】
制御装置によって制御される制御対象物の動作を模擬し、模擬結果を表示手段に表示させる情報処理装置における情報処理方法であって、
一連の模擬指令値を入力し、前記一連の模擬指令値に応答して動作する前記制御対象物の位置または速度の一連の模擬値を算出し、前記一連の模擬値を出力するステップと、
前記シミュレーション手段に対して前記一連の模擬指令値を与えるとともに、前記シミュレーション手段が出力した前記一連の模擬値を前記表示手段に表示させるステップと、
前記制御装置と通信するステップと、
前記制御装置が前記制御対象物の動作を制御するために予め定められた制御周期毎に出力する一連の実指令値および前記制御装置が前記制御周期毎に取得した前記制御対象物の位置または速度の一連の実値とを、前記通信手段を介して前記制御装置から取得するステップと、
前記一連の実指令値を前記一連の模擬指令値として前記シミュレーション手段に与えるステップと、
前記一連の実指令値を用いて前記シミュレーション手段が算出した前記一連の模擬値と対比可能な態様で、前記一連の実値を前記表示手段に表示させるステップとを備える、情報処理方法。
【請求項１１】
制御装置によって制御される制御対象物の動作を模擬し、模擬結果を表示手段に表示させる情報処理装置を制御するためのプログラムであって、
一連の模擬指令値を入力し、前記一連の模擬指令値に応答して動作する前記制御対象物の位置または速度の一連の模擬値を算出し、前記一連の模擬値を出力するステップと、
前記シミュレーション手段に対して前記一連の模擬指令値を与えるとともに、前記シミュレーション手段が出力した前記一連の模擬値を前記表示手段に表示させるステップと、
前記制御装置と通信するステップと、
前記制御装置が前記制御対象物の動作を制御するために予め定められた制御周期毎に出力する一連の実指令値および前記制御装置が前記制御周期毎に取得した前記制御対象物の位置または速度の一連の実値とを、前記通信手段を介して前記制御装置から取得するステップと、
前記一連の実指令値を前記一連の模擬指令値として前記シミュレーション手段に与えるステップと、
前記一連の実指令値を用いて前記シミュレーション手段が算出した前記一連の模擬値と対比可能な態様で、前記一連の実値を前記表示手段に表示させるステップとを、前記情報処理装置のプロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象物の動作を制御する制御装置と通信する情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、生産ライン等ではシーケンス制御が用いられている。当該シーケンス制御には、プログラマブル・ロジック・コントローラ（ＰＬＣ：Programmable Logic Controller）が利用される。また、ＰＬＣに接続されるとともに、ＰＬＣの開発をサポートするサポート装置が知られている。なお、サポート装置は、典型的には、ＰＣ（Personal Computer）にて実現される。
【０００３】
特許文献１には、ＰＬＣ等のコントローラが正しく動作しているかをデバックするための機能として、サンプリングトレース機能が開示されている。サンプリングトレース機能とは、詳しくは、指定されたタイミングで指定されたデバイスの状態を示すデータ（トレースデータ）を一定周期（サンプリング周期）で取得（サンプリング）し、取得したトレースデータを所定のメモリ（サンプリングトレースメモリ）に格納するものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２８９１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、実機で構成されるＰＬＣシステムをＰＣ等の情報処理装置上でシミュレートする場合を検討する。この場合には、制御対象物（実機）を数式等で表したモデルをＰＣ（Personal Computer）で生成し、当該ＰＣにおいて、予め用意したＰＬＣのモデルを用いて制御対象機械の動作のシミュレーションがなされることになる。
【０００６】
しかしながら、ＰＬＣのモデルから制御対象物のモデルに送信（出力）される指令値または出力値（操作量）と、ＰＬＣ（実機）から制御対象物（実機）に送信される指令値または出力値（操作量）とは必ずしも一致しない。これは、ＰＬＣ（実機）がフィードバック制御により、補正後の指令値を制御対象物に送信することがなされるためである。
【０００７】
それゆえ、上記のような場合には、ユーザは、シミュレーション結果を参照しても、制御対象物のモデルを精度よく作成（修正）することは困難である。
【０００８】
本願発明は、上記の問題点に鑑みなされたものであって、その目的は、制御対象物のモデルを精度よく作成することが可能な情報処理装置、情報処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明のある局面に従うと、情報処理装置は、制御装置によって制御される制御対象物の動作を模擬し、模擬結果を表示手段に表示させる。情報処理装置は、一連の模擬指令値を入力し、一連の模擬指令値に応答して動作する制御対象物の位置または速度の一連の模擬値を算出し、一連の模擬値を出力するシミュレーション手段と、シミュレーション手段に対して一連の模擬指令値を与えるとともに、シミュレーション手段が出力した一連の模擬値を表示手段に表示させる制御手段と、制御装置と通信するための通信手段とを備える。制御手段は、さらに、制御装置が制御対象物の動作を制御するために予め定められた制御周期毎に出力する一連の実指令値および制御装置が制御周期毎に取得した制御対象物の位置または速度の一連の実値とを、通信手段を介して制御装置から取得し、一連の実指令値を一連の模擬指令値としてシミュレーション手段に与え、一連の実指令値を用いてシミュレーション手段が算出した一連の模擬値と対比可能な態様で、一連の実値を表示手段に表示させる。
【００１０】
好ましくは、一連の実指令値は、第１の時間間隔で制御装置から制御対象物に送信されるものであり、制御手段は、第１の時間間隔よりも長い第２の時間間隔毎に、当該第２の時間において制御装置から送信された一連の実指令値および一連の実値とを、制御装置から取得する。
【００１１】
好ましくは、制御装置は、複数の変数についての指令値を制御対象物に送信するものである。制御手段は、複数の変数のうちから、モデルに入力する変数を指定するための入力操作を受け付け、指定された変数についての一連の実指令値および当該一連の実指令値に基づいた一連の実値とを、制御装置から取得する。
【００１２】
好ましくは、制御手段は、一連の実指令値に関連付けて、一連の模擬値と一連の実値とを表示手段にグラフ表示させる。
【００１３】
好ましくは、制御手段は、コンピュータと、コンピュータで実行されるシミュレーション制御プログラムとにより構成される。
【００１４】
好ましくは、シミュレーション手段は、コンピュータと、コンピュータで実行されるシミュレーションプログラムと、制御対象物を定義したデータとにより構成される。
【００１５】
好ましくは、シミュレーションプログラムは、複数の制御対象物で共通のプログラムである。シミュレーション手段は、複数の制御対象物の各々についての前記データを有し、
複数の制御対象物の各々について一連の模擬値を算出して当該一連の模擬値を出力する。
【００１６】
好ましくは、シミュレーション手段は、コンピュータと、コンピュータで実行される制御対象物用のシミュレーションプログラムとにより構成される。
【００１７】
好ましくは、シミュレーション手段は、シミュレーションプログラムを、複数の制御対象物の各々に対応して有しており、複数の制御対象物の各々について一連の模擬値を算出して当該一連の模擬値を出力する。
【００１８】
本発明の他の局面に従うと、情報処理方法は、制御装置によって制御される制御対象物の動作を模擬し、模擬結果を表示手段に表示させる情報処理装置において実行される。情報処理方法は、一連の模擬指令値を入力し、一連の模擬指令値に応答して動作する制御対象物の位置または速度の一連の模擬値を算出し、一連の模擬値を出力するステップと、シミュレーション手段に対して一連の模擬指令値を与えるとともに、シミュレーション手段が出力した一連の模擬値を表示手段に表示させるステップと、制御装置と通信するステップと、制御装置が制御対象物の動作を制御するために予め定められた制御周期毎に出力する一連の実指令値および制御装置が制御周期毎に取得した制御対象物の位置または速度の一連の実値とを、通信手段を介して制御装置から取得するステップと、一連の実指令値を一連の模擬指令値としてシミュレーション手段に与えるステップと、一連の実指令値を用いてシミュレーション手段が算出した一連の模擬値と対比可能な態様で、一連の実値を表示手段に表示させるステップとを備える。
【００１９】
本発明のさらに他の局面に従うと、プログラムは、制御装置によって制御される制御対象物の動作を模擬し、模擬結果を表示手段に表示させる情報処理装置を制御する。プログラムは、一連の模擬指令値を入力し、一連の模擬指令値に応答して動作する制御対象物の位置または速度の一連の模擬値を算出し、一連の模擬値を出力するステップと、シミュレーション手段に対して一連の模擬指令値を与えるとともに、シミュレーション手段が出力した一連の模擬値を表示手段に表示させるステップと、制御装置と通信するステップと、制御装置が制御対象物の動作を制御するために予め定められた制御周期毎に出力する一連の実指令値および制御装置が制御周期毎に取得した制御対象物の位置または速度の一連の実値とを、通信手段を介して制御装置から取得するステップと、一連の実指令値を一連の模擬指令値としてシミュレーション手段に与えるステップと、一連の実指令値を用いてシミュレーション手段が算出した一連の模擬値と対比可能な態様で、一連の実値を表示手段に表示させるステップとを、情報処理装置のプロセッサに実行させる。
【発明の効果】
【００２０】
本発明によれば、制御対象物のモデルを精度よく作成することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態に係るＰＬＣシステムの概略構成を示す模式図である。
【図２】本発明の実施の形態に係るＣＰＵユニット１３のハードウェア構成を示す模式図である。
【図３】本発明の実施の形態に係るＣＰＵユニット１３に接続して用いられるＰＣ８のハードウェア構成を示す模式図である。
【図４】本発明の実施の形態に係るＣＰＵユニット１３で実行されるソフトウェア構成を示す模式図である。
【図５】本発明の実施の形態に係るＣＰＵユニット１３に接続して用いられるＰＣ８のソフトウェア構成を示す模式図である。
【図６】ＰＬＣシステムＳＹＳの機能的構成を説明するためのブロック図である。
【図７】ユーザの指示によってＰＬＣシステムＳＹＳが実行する各種の処理を説明するためのフローチャートである。
【図８】図７のステップＳ１２における処理の詳細を説明するためのフローチャートである。
【図９】図７のステップＳ１４における処理の詳細を説明するためのフローチャートである。
【図１０】ディスプレイ８７に表示させる画像の例を説明するための図である。
【図１１】発明の技術思想を説明するための模式図である。
【図１２】シミュレーション制御手段の具体的形態を説明するための図である。
【図１３】シミュレーション実行手段の第１の形態を説明するための図である。
【図１４】シミュレーション実行手段の第２の形態を説明するための図である。
【発明を実施するための形態】
【００２２】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２３】
＜Ａ．発明の技術思想＞
図１１は、本実施の形態における発明の技術思想を説明するための模式図である。図１１を参照して、情報処理装置（ＰＣ）は、制御装置（ＰＬＣ）によって制御される制御対象物の動作を模擬し、模擬結果を表示手段であるディスプレイに表示させる。情報処理装置は、シミュレーション実行手段と、シミュレーション制御手段と、通信手段とを備える。
【００２４】
シミュレーション実行手段は、一連の模擬指令値を入力し、当該一連の模擬指令値に応答して動作する制御対象物の位置または速度の一連の模擬値を算出し、当該一連の模擬値を出力する。シミュレーション制御手段は、シミュレーション実行手段に対して上記一連の模擬指令値を与えるとともに、シミュレーション実行手段が出力した上記一連の模擬値をディスプレイに表示させる。通信手段は、制御装置と通信する。
【００２５】
シミュレーション制御手段は、さらに、以下の処理を実行する。シミュレーション制御手段は、制御装置が制御対象物の動作を制御するために予め定められた制御周期毎に出力する一連の実指令値および制御装置が当該制御周期毎に取得した制御対象物の位置または速度の一連の実値とを、通信手段を介して制御装置から取得する。シミュレーション制御手段は、上記一連の実指令値を上記一連の模擬指令値としてシミュレーション実行手段に与える。シミュレーション制御手段は、上記一連の実指令値を用いてシミュレーション実行手段が算出した上記一連の模擬値と対比可能な態様で、上記一連の実値をディスプレイに表示させる。
【００２６】
上記の構成によれば、ユーザは、ディスプレイに表示されたシミュレーション結果を参照することにより、情報処理装置を用いて制御対象物のモデルを精度よく作成（修正）することが可能となる。
【００２７】
図１２は、シミュレーション制御手段の具体的形態を説明するための図である。図１２を参照して、シミュレーション制御手段は、シミュレーションを制御するシミュレーション制御プログラムと、コンピュータとで構成される。当該コンピュータは、ＯＳ（Operating System）と、コンピュータハードウェアとで構成される。なお、コンピュータハードウェアとは、ＣＰＵやメモリ等のプログラムやＯＳを実行するためのハードウェアである。
【００２８】
図１３は、シミュレーション実行手段の第１の具体的形態を説明するための図である。図１３（ａ）は、上記第１の形態における第１の例であり、図１３（ｂ）は、上記第１の形態における第２の例である。
【００２９】
図１３（ａ）を参照して、シミュレーション実行手段は、制御対象物の定義データと、各制御対象物に対して共通して使用される共通シミュレーションプログラムと、コンピュータとで構成される。なお、コンピュータも、ＯＳと、コンピュータハードウェアとで構成される。また、当該ＯＳおよびコンピュータハードウェアは、シミュレーション制御手段におけるＯＳおよびコンピュータハードウェア（図１２）と共通のものでよい。当該構成においては、シミュレーションする制御対象物を変更するときには、制御対象物の定義データを入れ替えることになる。
【００３０】
図１３（ｂ）を参照して、シミュレーション実行手段は、複数の制御対象物の定義データ（制御対象物Ａの定義データ，制御対象物Ｂの定義データ）と、各制御対象物に対して共通して使用される共通シミュレーションプログラムと、コンピュータとで構成してもよい。当該構成の場合には、複数の制御対象物を同時にシミュレーションすることができる。
【００３１】
図１４は、シミュレーション実行手段の第２の形態を説明するための図である。図１４（ａ）は、上記第２の形態における第１の例であり、図１４（ｂ）は、上記第２の形態における第２の例である。
【００３２】
図１４（ａ）を参照して、シミュレーション実行手段は、制御対象物のシミュレーションプログラムと、コンピュータとで構成される。なお、コンピュータも、ＯＳと、コンピュータハードウェアとで構成される。また、当該ＯＳおよびコンピュータハードウェアは、シミュレーション制御手段におけるＯＳおよびコンピュータハードウェア（図１２）と共通のものでよい。当該構成においては、シミュレーションする制御対象物を変更するときには、制御対象物のシミュレーションプログラムを入れ替えることになる。
【００３３】
図１４（ｂ）を参照して、シミュレーション実行手段は、複数の制御対象物のシミュレーションプログラム（制御対象物Ａのシミュレーションプログラム，制御対象物Ｂのシミュレーションプログラム）と、コンピュータとで構成してもよい。当該構成の場合には、複数の制御対象物を同時にシミュレーションすることができる。
【００３４】
＜Ｂ．ＰＬＣシステムの構成＞
図１は、本発明の実施の形態に係るＰＬＣシステムの概略構成を示す模式図である。図１を参照して、ＰＬＣシステムＳＹＳは、ＰＬＣ１と、フィールドネットワーク２と、モータドライバ３と、モータ４１と、機械４２と、検出器６１と、検出器６９とを含む。また、ＰＬＣ１には、接続ケーブル１０などを介してＰＣ８が接続される。なお、モータ４１は、たとえば、ステッピングモータ（パルスモータ）である。
【００３５】
ＰＬＣ１は、主たる演算処理を実行するＣＰＵユニット１３と、ＩＯユニット１４Ａ，１４Ｂ，１４Ｃと、特殊ユニット１５とを含む。これらのユニットは、ＰＬＣシステムバス１１を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット１２によって適切な電圧の電源が供給される。なお、以下では、ＩＯユニット１４Ａ，１４Ｂ，１４Ｃを区別せずに任意の１つを表す場合には、「ＩＯユニット１４」と記載する。
【００３６】
ＩＯユニット１４は、入出力処理に関するユニットであり、データの入出力を司る。
特殊ユニット１５は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、ＩＯユニット１４ではサポートしない機能を有する。本実施の形態では、特殊ユニット１５は、パルスを出力する。なお、特殊ユニット１５は、広義には、ＩＯユニットの一種である。
【００３７】
フィールドネットワーク２は、ＣＰＵユニット１３と遣り取りされる各種データを伝送する。フィールドネットワーク２としては、典型的には、各種の産業用イーサネット（登録商標）を用いることができる。
【００３８】
なお、図１には、ＰＬＣシステムバス１１およびフィールドネットワーク２の両方を有するＰＬＣシステムＳＹＳを例示するが、一方のみを搭載するシステム構成を採用することもできる。たとえば、フィールドネットワーク２ですべてのユニットを接続してもよい。
【００３９】
モータドライバ３は、ＰＬＣシステムバス１１を介して特殊ユニット１５と接続されるとともに、ＣＰＵユニット１３からの指令値に従ってモータ４１を駆動する。より具体的には、モータドライバ３は、ＰＬＣ１から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。詳しくは、モータドライバ３は、ＣＰＵユニット１３から、ＰＬＣシステムバス１１および特殊ユニット１５を介して、上記指令値を受け取る。
【００４０】
検出器６１は、ＩＯユニット１４Ｂと通信可能に接続されている。検出器６１は、位置センサ（ロータリーエンコーダ）やトルクセンサである。検出器６１は、位置、速度（典型的には、今回位置と前回位置との差から算出される）、トルクといった機械４２の動作に係る各種の値を検出する。検出器６１は、検出した値（実測値）を、ＩＯユニット１４Ｂに送る。この場合、ＩＯユニット１４Ｂは、当該実測値をＣＰＵユニット１３に送る。
【００４１】
ＣＰＵユニット１３は、ＩＯユニット１４Ｂから実測値を受け取ると、当該実測値に基づいて、以降に送信する指令値の値を基準となる値から補正する。つまり、ＣＰＵユニット１３は、検出器６１から取得した実測値を利用してフィードバック制御を行なう。一例として、ＣＰＵユニット１３は、ＰＩＤ（Proportional Integral Derivative）制御を行なう。ＣＰＵユニット１３の詳細については、図２を参照して後述する。
【００４２】
検出器６９は、ＩＯユニット１４Ａと通信可能に接続されている。検出器６９は、たとえば、機械４２によって加工されるワークが予め定められた位置に到達したか否かを検出する。検出器６９は、検出結果（オンまたたオフ）を、ＩＯユニット１４Ａに送る。なお、ＩＯユニット１４Ａは、ＰＬＣシステムバス１１を介して、検出器６９から受け付けた検出結果をＣＰＵユニット１３に送る。
【００４３】
ところで、図１には、ステッピングモータ（モータ４１）とステッピングモータドライバ（モータドライバ３）とを組み合わせたシステム例を示しているが、その他の構成、たとえば、サーボモータとサーボモータドライバとを組み合わせたシステムを採用することもできる。
【００４４】
また、ＰＬＣシステムＳＹＳが導入される制御対象物４としては、たとえば、包装機、マスキング装置、焼成炉、移動用チャンバと複数の処理用チャンバとを備えたウェーハカセット等の様々な装置が挙げられる。
【００４５】
ＰＣ８は、（i）ＰＬＣ１のサポート装置としての機能と、（ii）マルチドメインシミュレーションおよびモデルベースデザイン（ＭＢＤ：Model Based Design）のためのブロック線図によるアルゴリズム開発環境とを提供する。当該環境として、動的システムのモデル化およびシミュレーションのためのグラフィカルエディタ、カスタマイズ可能なブロックライブラリ、ならびにソルバが用意されている。当該環境は、たとえば、ＭａｔｈＷｏｒｋｓ社のＳｉｍｕｌｉｎｋ（登録商標）といったソフトウェア製品によって提供される。
【００４６】
＜Ｃ．ハードウェア構成＞
（ｃ１．ＣＰＵユニット１３）
次に、図２を参照して、ＣＰＵユニット１３のハードウェア構成について説明する。図２は、本発明の実施の形態に係るＣＰＵユニット１３のハードウェア構成を示す模式図である。図２を参照して、ＣＰＵユニット１３は、マイクロプロセッサ１００と、チップセット１０２と、メインメモリ１０４と、不揮発性メモリ１０６と、システムタイマ１０８と、ＰＬＣシステムバスコントローラ１２０と、フィールドネットワークコントローラ１４０と、ＵＳＢコネクタ１１０とを含む。チップセット１０２と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００４７】
ＣＰＵユニット１３は、記憶手段として、メインメモリ１０４および不揮発性メモリ１０６を有する。メインメモリ１０４は、揮発性の記憶領域（ＲＡＭ）であり、ＣＰＵユニット１３への電源投入後にマイクロプロセッサ１００で実行されるべき各種プログラムを保持する。不揮発性メモリ１０６は、リアルタイムＯＳ（Operating System）、ＰＬＣ１のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。システムタイマ１０８は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ１００に提供する。
【００４８】
ＣＰＵユニット１３は、通信回路として、ＰＬＣシステムバスコントローラ１２０およびフィールドネットワークコントローラ１４０を有する。バッファメモリ１２６は、図１に示したＰＬＣシステムバス１１を介して他のユニットへ出力されるデータ（以下「出力データ」とも称す。）の送信バッファ、および、ＰＬＣシステムバス１１を介して他のユニットから入力されるデータ（以下「入力データ」とも称す。）の受信バッファとして機能する。ＤＭＡ制御回路１２２は、メインメモリ１０４からバッファメモリ１２６への出力データの転送、および、バッファメモリ１２６からメインメモリ１０４への入力データの転送を行なう。ＰＬＣシステムバス制御回路１２４は、ＰＬＣシステムバス１１に接続される他のユニットとの間で、バッファメモリ１２６の出力データを送信する処理および入力データを受信してバッファメモリ１２６に格納する処理を行なう。
【００４９】
フィールドネットワークコントローラ１４０は、図１に示したフィールドネットワーク２を介したデータの遣り取りを制御する。ＤＭＡ制御回路１４２は、メインメモリ１０４からバッファメモリ１４６への出力データの転送、および、バッファメモリ１４６からメインメモリ１０４への入力データの転送を行なう。フィールドネットワーク制御回路１４４は、フィールドネットワーク２に接続される他の装置との間で、バッファメモリ１４６の出力データを送信する処理および入力データを受信してバッファメモリ１４６に格納する処理を行なう。ＵＳＢコネクタ１１０は、ＰＣ８とＣＰＵユニット１３とを接続するためのインターフェイスである。
【００５０】
（ｃ２．ＰＣ８）
図３は、本発明の実施の形態に係るＣＰＵユニット１３に接続して用いられるＰＣ８のハードウェア構成を示す模式図である。図３を参照して、ＰＣ８は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【００５１】
図３を参照して、ＰＣ８は、ＯＳを含む各種プログラムを実行するＣＰＵ８１と、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）８２と、ＣＰＵ８１でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ８３と、ＣＰＵ８１で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）８４とを含む。
【００５２】
ＰＣ８は、さらに、ユーザからの操作を受け付けるキーボード８５およびマウス８６と、情報をユーザに提示するためのディスプレイ８７とを含む。さらに、ＰＣ８は、図１に示したＰＬＣ１（ＣＰＵユニット１３）などと通信するための通信インターフェイス（ＩＦ）を含む。
【００５３】
後述するように、ＰＣ８で実行される各種プログラムは、ＤＶＤ−ＲＯＭ９に格納されて流通する。このＤＶＤ−ＲＯＭ９に格納されたプログラムは、ＤＶＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ８８によって読取られ、ハードディスク（ＨＤＤ）８４などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００５４】
上述したように、ＰＣ８は、汎用的なコンピュータを用いて実現されるので、これ以上の詳細な説明は行わない。
【００５５】
＜Ｄ．ソフトウェア構成＞
（ｄ１．ＣＰＵユニット１３）
次に、図４を参照して、ＣＰＵユニット１３の各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、ＣＰＵユニット１３における図２に示したマイクロプロセッサ１００によって実行される。
【００５６】
図４は、本発明の実施の形態に係るＣＰＵユニット１３で実行されるソフトウェア構成を示す模式図である。図４を参照して、ＣＰＵユニット１３で実行されるソフトウェアとしては、リアルタイムＯＳ２００と、システムプログラム２１０と、ユーザプログラム２３６との３階層になっている。
【００５７】
リアルタイムＯＳ２００は、ＣＰＵユニット１３のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ１００がシステムプログラム２１０およびユーザプログラム２３６を実行するための基本的な実行環境を提供する。このリアルタイムＯＳは、典型的には、ＰＬＣのメーカーあるいは専門のソフトウェア会社などによって提供される。
【００５８】
システムプログラム２１０は、ＰＬＣ１としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム２１０は、スケジューラプログラム２１２と、出力処理プログラム２１４と、入力処理プログラム２１６と、シーケンス命令演算プログラム２３２と、モーション演算プログラム２３４と、その他のシステムプログラム２２０とを含む。なお、一般には出力処理プログラム２１４および入力処理プログラム２１６は、連続的（一体として）に実行されるので、これらのプログラムを、ＩＯ処理プログラム２１８と総称する場合もある。
【００５９】
ユーザプログラム２３６は、ユーザにおける制御目的に応じて作成される。すなわち、ＰＬＣシステムＳＹＳを用いて制御する対象のライン（プロセス）などに応じて、任意に設計されるプログラムである。
【００６０】
後述するように、ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム２３６、シーケンス命令演算プログラム２３２、およびモーション演算プログラム２３４を、制御プログラム２３０と総称する場合もある。
【００６１】
このように、ＣＰＵユニット１３のマイクロプロセッサ１００は、記憶手段に格納されたシステムプログラム２１０およびユーザプログラム２３６を実行する。
【００６２】
以下、各プログラムについてより詳細に説明する。
ユーザプログラム２３６は、上述したように、ユーザにおける制御目的（たとえば、対象のラインやプロセス）に応じて作成される。ユーザプログラム２３６は、典型的には、ＣＰＵユニット１３のマイクロプロセッサ１００で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム２３６は、ＰＣ８などにおいて、ＳＴ（Structured Text）言語等のＩＥＣ（International Electrotechnical Commission）  ６１１３１−３標準で定義される言語によって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム２３６は、ＰＣ８から接続ケーブル１０を介してＣＰＵユニット１３へ転送され、不揮発性メモリ１０６などに格納される。
【００６３】
スケジューラプログラム２１２は、出力処理プログラム２１４、入力処理プログラム２１６、および制御プログラム２３０について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム２１２は、ユーザプログラム２３６およびモーション演算プログラム２３４の実行を制御する。
【００６４】
出力処理プログラム２１４は、ユーザプログラム２３６（制御プログラム２３０）の実行によって生成された出力データを、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０へ転送するのに適した形式に再配置する。ＰＬＣシステムバスコントローラ１２０またはフィールドネットワークコントローラ１４０が、マイクロプロセッサ１００からの、送信を実行するための指示を必要とする場合は、出力処理プログラム２１４がそのような指示を発行する。
【００６５】
入力処理プログラム２１６は、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０によって受信された入力データを、制御プログラム２３０が使用するのに適した形式に再配置する。
【００６６】
シーケンス命令演算プログラム２３２は、ユーザプログラム２３６で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
【００６７】
モーション演算プログラム２３４は、ユーザプログラム２３６による指示に従って実行され、モータドライバ３やパルスモータドライバといったモータドライバに対して出力する指令値を算出するプログラムである。
【００６８】
その他のシステムプログラム２２０は、図４に個別に示したプログラム以外の、ＰＬＣ１の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム２２０は、モーション制御サイクルの周期を設定するプログラム２２２を含む。
【００６９】
（ｄ２．ＰＣ８）
図５は、本発明の実施の形態に係るＣＰＵユニット１３に接続して用いられるＰＣ８のソフトウェア構成を示す模式図である。図５を参照して、ＰＣ８ではＯＳ３１０が実行され、ＰＬＣサポートモジュール３２０に含まれる各種のプログラムおよびシミュレーションモジュールに含まれる各種のプログラムを実行可能な環境が提供される。
【００７０】
ＰＬＣサポートモジュール３２０は、エディタプログラム３２１と、コンパイラプログラム３２２と、デバッガプログラム３２３と、通信プログラム３２６とを含む。ＰＬＣサポートモジュール３２０に含まれるそれぞれのプログラムは、典型的には、ＣＤ−ＲＯＭ９に格納された状態で流通して、ＰＣ８にインストールされる。
【００７１】
エディタプログラム３２１は、実行可能なオブジェクトプログラム形式のユーザプログラム２３６を作成するための入力および編集といった機能を提供する。より具体的には、エディタプログラム３２１は、ユーザがキーボード８５やマウス８６を操作してユーザプログラム２３６のソース形式のユーザプログラム３３０を作成する機能に加えて、作成したユーザプログラム３３０の保存機能および編集機能を提供する。また、エディタプログラム３２１は、外部からのユーザプログラム３３０の入力を受け付ける。
【００７２】
コンパイラプログラム３２２は、ユーザプログラム３３０をコンパイルして、ＣＰＵユニット１３のマイクロプロセッサ１００で実行可能なオブジェクトプログラム形式のユーザプログラム２３６を生成する機能を提供する。
【００７３】
デバッガプログラム３２３は、ユーザプログラムのソースプログラムに対してデバッグを行なうための機能を提供する。このデバッグの内容としては、ソースプログラムのうちユーザが指定した範囲を部分的に実行する、ソースプログラムの実行中における変数値の時間的な変化を追跡する、といった動作を含む。
【００７４】
通信プログラム３２６は、ＰＬＣ１のＣＰＵユニット１３へユーザプログラム２３６を転送する機能を提供する。
【００７５】
シミュレーションモジュール３９０は、上述したブロック線図環境（Ｓｉｍｕｌｉｎｋ）用のプログラムで構成される。シミュレーションモジュール３９０は、ユーザプログラム３３０を作成するため、および当該ユーザプログラム３３０をシミュレートするために用いられる。シミュレーションモジュール３９０は、典型的には、ＣＤ−ＲＯＭ９に格納された状態で流通して、ＰＣ８にインストールされる。
【００７６】
＜Ｅ．ＰＬＣシステムＳＹＳにおけるデータ処理＞
（ｅ１．処理の概要）
処理の詳細を説明する前に、ＰＬＣシステムＳＹＳにおけるデータ処理の概要について説明する。
【００７７】
ＰＣ８は、ＰＬＣ１から制御対象物４に送られる指令値（正確には、ＣＰＵユニット１３によって特殊ユニット１５からモータドライバ３に送信される指令値）を、ＣＰＵユニット１３から受け取る。その際、ＰＣ８は、指令値（位置指令値、速度指令値、トルク指令値等）の種別を識別可能とするために、指令値を指令値の識別情報とともに受け取る。さらに、ＰＣ８は、当該指令値に基づいた制御対象物４の制御結果を、ＰＬＣ１から取得する。詳しくは、ＰＣ８は、当該指令値に基づいて制御対象物４が動作したときにＩＯユニット１４Ｂを介して検出器６１からＣＰＵユニット１３に対して送信される制御結果を受け取る。
【００７８】
ＰＣ８は、ＰＬＣ１から制御対象物４に送られる指令値を制御対象物４のモデルに入力することによって、シミュレーションを実行する。なお、制御対象物４のモデルは、変数の値が入力されると、当該入力された値に応じた出力を行なう構成を有する。制御対象物４のモデルは、典型的には、関数によって記述される。なお、制御対象物４のモデル以外の後述する各モデルも、典型的には、入力に応じた出力を行なう構成を有する。
【００７９】
さらに、ＰＣ８は、上記制御結果と上記シミュレーションの結果とをディスプレイ８７に表示させる。
【００８０】
ここで、上記のようにＰＬＣ１が出力した指令値を用いてシミュレーションを実行する場合と、ＰＬＣ１のモデル（正確には、ＰＣ８内で用意されたＣＰＵユニット１３についてのシミュレーション用のモデル（一例として、Ｓｉｍｕｌｉｎｋによるモデル））から制御対象物４のモデルに指令値を送信（出力）することによってシミュレーションを実行する場合と比較する。
【００８１】
ＰＬＣ１のモデルから制御対象物４のモデルに送信される指令値と、ＰＬＣ１（実機）から制御対象物４（実機）に送信される指令値とは必ずしも一致しない。これは、ＰＬＣ１（実機）がフィードバック制御により、補正後の指令値を制御対象物４に送信することがなされるためである。
【００８２】
それゆえ、ＰＬＣ１のモデルから制御対象物４のモデルに指令値を送信することによってシミュレーションを実行する構成の場合には、ユーザは、実機での制御結果とシミュレーション結果とを比較しても、制御対象物のモデルを精度よく作成（修正）することは困難である。
【００８３】
その一方、上記のようにＰＬＣ１が出力した指令値を用いてシミュレーションを実行する場合には、ＰＬＣ１のモデルから制御対象物４のモデルに指令値を送信する構成に比べて、ユーザは、制御対象物４のモデルを実機である制御対象物４に精度よく近づけることができる。
【００８４】
つまり、ユーザは、実機である制御対象物４と制御対象物のモデルＭ４との差異を精度よく確認することができる。その結果、ユーザは、制御対象物４のモデルを精度よく作成することが可能となる。
【００８５】
さらに、ユーザは、上記のように精度の高いモデルが得られることにより、精度の高いモデルが得られない場合に比べ、ＰＣ８のＰＬＣ１のモデルにおいて、ＰＬＣ１における制御用のパラメータ（ＰＩＤ制御における各パラメータ）の値を適切に設定することができる。この場合、当該設定された値は実機であるＰＬＣ１に転送され、ＰＬＣ１においてもパラメータの値として当該設定された値が利用されることになる。それゆえ、ユーザが意図する動作を実機で行わせることが可能となる。
【００８６】
以下、データ処理の詳細について、図６から図１０に基づいて説明する。
（ｅ２．機能的構成）
図６は、ＰＬＣシステムＳＹＳの機能的構成を説明するためのブロック図である。図６を参照して、ＰＬＣシステムＳＹＳは、ＰＬＣ１と、ＰＣ８と、モータドライバ３と、制御対象物４と、検出器６１とを備える。
【００８７】
ＰＬＣ１は、上述したように、少なくともＣＰＵユニット１３と特殊ユニット１５とＩＯユニット１４Ｂとを含む。なお、ＣＰＵユニット１３と特殊ユニット１５とＩＯユニット１４Ｂとは、上述したようにＰＬＣシステムバス１１（図６では図示せず）によって通信可能に接続されている（図１）。制御対象物４は、モータ４１と、機械４２とを含む。
【００８８】
ＰＣ８は、ディスプレイ８７と、シミュレーション実行部８０１と、ＰＬＣサポート部８０２と、モデル記憶部８０３とを備える。シミュレーション実行部８０１は、通信ＩＦ部８１１と、表示制御部８１２と、ＰＬＣシステムＳＹＳにおける各実機のシミュレーション用のモデルを含む。当該モデルとして、シミュレーション実行部８０１は、ＰＬＣ１のシミュレーション用のモデルＭ１（以下、「ＰＬＣのモデルＭ１」と称する）と、モータドライバ３のシミュレーション用のモデルＭ３（以下、「モータドライバのモデルＭ３」）と、検出器６１のシミュレーション用のモデルＭ６１（以下、検出器のモデルＭ６１）と、制御対象物４のシミュレーション用のモデルＭ４（以下、「制御対象物のモデルＭ４」）とを含む。
【００８９】
ＰＬＣのモデルＭ１は、ＰＬＣ１の制御プログラムに対応するシミュレーション用のモデルＭ１３（以下、「コントローラモデルＭ１３」と称する）と、特殊ユニット１５のシミュレーション用のモデルＭ１５（以下、「特殊ユニットのモデルＭ１５」と称する）と、ＩＯユニット１３のシミュレーション用のモデルＭ１３（以下、「ＩＯユニットのモデルＭ１３」と称する）とを含む。
【００９０】
制御対象物のモデルＭ４は、モータ４１のシミュレーション用のモデルＭ４１（以下、「モータのモデルＭ４１」と称する）と、機械４２のシミュレーション用のモデルＭ４２（以下、「機械のモデルＭ４２」と称する）とを含む。
【００９１】
ＰＬＣサポート部８０２は、ＰＬＣ１のサポート装置としての機能を実行するためのブロックである。ＰＬＣサポート部８０２は、制御プログラムと、通信ＩＦ部８２１とを含む。
【００９２】
通信ＩＦ部８２１は、ＰＬＣ１（詳しくは、ＣＰＵユニット１３）およびシミュレーション実行部８０１の通信ＩＦ部８１１と通信するためのインターフェイスである。
【００９３】
表示制御部８１２は、ディスプレイ８７にグラフ等の各種の描画を実行する。以下、ＰＬＣシステムＳＹＳにおける各部の動作について説明する。
【００９４】
＜動作＞
ＣＰＵユニット１３は、制御プログラム２３０（図４）を実行することにより、指令値を特殊ユニット１５を介して、モータドライバ３に送る。ＣＰＵユニット１３は、一例として、１ミリ秒（１ｍｓｅｃ）毎に指令値を送信する。モータドライバ３は、受け付けた指令値に基づいてモータ４１の動作を制御する。これにより、機械４２（たとえば、機械４２のアーム）が稼働する。
【００９５】
検出器６１は、上述したように、モータ４１の動作に係る各種の値を検出する。検出器６１は、検出した値（実測値）としての制御結果をＩＯユニット１４Ｂに送る。ＩＯユニット１４Ｂは、制御結果をＣＰＵユニット１３に送る。ＣＰＵユニット１３は、制御結果を用いて、フィードバック制御を行なう。
【００９６】
ユーザからの指示に基づきシミュレーションが行われる場合（シミュレーションモードの場合）には、モータドライバ３に送った指令値を、ＰＬＣサポート部８０２が通信ＩＦ部８２１を介してＣＰＵユニット１３から取得する。通信ＩＦ部８２１は、当該指令値を、シミュレーション実行部８０１に送る。
【００９７】
より詳しくは、特殊ユニット１５への指令値の送信間隔（１ミリ秒）よりも長い時間間隔（たとえば、２秒）毎に、当該時間間隔（２秒）において特殊ユニット１５へ送信された各指令値がまとめて通信ＩＦ部８２１に送られる。２秒の間に１ミリ秒毎に送信される指令値は２０００個（＝２ｓｅｃ／１ｍｓｅｃ）存在するので、通信ＩＦ部８２１は、当該２０００個の指令値をまとめて取得する。その結果、シミュレーション実行部８０１は、２秒毎に、２０００個の指令値を受け取ることになる。
【００９８】
さらに、ＩＯユニット１４Ｂから受信した制御結果は、２秒毎に通信ＩＦ部８２１に送られる。具体的には、通信ＩＦ部８２１は、２秒間における２０００個の指令値に対応した２０００個の制御結果（実測値）を、２秒間隔で取得する。通信ＩＦ部８２１は、ＣＰＵユニット１３から受信した制御結果をシミュレーション実行部８０１に送る。
【００９９】
以上のように、ＰＬＣサポート部８０２は、通信ＩＦ部８２１を介して一定間隔で、指令値および制御結果をＣＰＵユニット１３から取得する。より詳細には、ＣＰＵユニット１３は指令値などの変数の値を一定間隔（本実施の形態では１ミリ秒)でロギングする機能があり、ＰＬＣサポート部８０２がＣＰＵユニット１３のロギングデータを一定間隔（本実施の形態では２秒)で読み出す。
【０１００】
なお、ＣＰＵユニット１３は、通信ＩＦ部８２１に対して、指令値と制御結果とを同時に送信してもよいし、別々に送信してもよい。また、制御結果を２秒毎にまとめずに、制御結果を逐次通信ＩＦ部８２１に送信するように、ＣＰＵユニット１３を構成してもよい。
【０１０１】
次に、シミュレーション実行部８０１の動作について説明する。通信ＩＦ部８１１は、通信ＩＦ部８２１を介してＣＰＵユニット１３から送られてくる指令値と制御結果とを受信する。つまり、通信ＩＦ部８１１は、２秒毎に、指令値と制御結果との各々を受信する。詳しくは、通信ＩＦ部８１１は、２秒間においてＰＬＣ１のＣＰＵユニット１３から送信された各指令値と、ＩＯユニット１４Ｂを介して検出器６１からＣＰＵユニット１３に対して送信された各制御結果を、ＣＰＵユニット１３から取得する。通信ＩＦ部８１１は、制御結果（つまり、実測値）を表示制御部８１２に送る。
【０１０２】
シミュレーション実行部８０１は、通信ＩＦ部８１１が受信した指令値を、シミュレーションの指令値として用いる。つまり、シミュレーション実行部８０１は、受信した指令値と、実機のモデルとを利用して、実機についてのシミュレーションを実行する。その際、シミュレーション実行部８０１は、１回に受信した２０００個の指令値のうち、ＣＰＵユニット１３から特殊ユニット１５に送られた時間が古いのもから順に、シミュレーションの指令値として用いる。
【０１０３】
具体的には、シミュレーション実行部８０１は、受信した指令値を特殊ユニットのモデルＭ１５に送り、特殊ユニットのモデルＭ１５はモータドライバのモデルＭ３に指令値を出力する。モータドライバのモデルＭ３は、受信した指令値を用いてモータのモデルＭ４１を制御する。検出器のモデルＭ６１は、機械のモデルＭ４２の各種の出力を取得し、出力値をシミュレーション結果としてＩＯユニットのモデルＭ１４Ｂに送る。ＩＯユニットのモデルＭ１４Ｂは、シミュレーション結果を表示制御部８１２に送る。
【０１０４】
表示制御部８１２は、通信ＩＦ部８１１から受信した制御結果と、シミュレーション結果（つまり、ＩＯユニットのモデルＭ１４Ｂから受け付けたシミュレーション結果）とを、予め定められた表示態様でディスプレイ８７に表示させる。なお、ユーザは、当該表示を確認することにより、機械のモデルＭ４２を修正することになる。
【０１０５】
また、制御結果およびシミュレーション結果に、当該結果の元となった指令値とを対応付けてディスプレイに表示させるように、表示制御部８１２を構成してもよい。どのデータを表示させるかは、ユーザからの指示基づき決定される。
【０１０６】
さらに詳しく説明すると、以下のとおりである。ＣＰＵユニット１３からは、数多くの種別の指令値（複数の変数（入力変数等）についての指令値）が出力される。たとえば、ＣＰＵユニット１３から特殊ユニット１５に送られる指令値についても、複数のモータドライバ３毎に、位置指令値、速度指令値、トルク指令値等の各種の指令値が送られる。
【０１０７】
ところで、ＰＣ８においてシミュレーションを実行する場合には、全ての種別の指令値が必要となるわけではない。このような観点から、シミュレーション実行部８０１は、以下の構成を有している。シミュレーション実行部８０１は、複数の変数のうちから、制御対象物のモデルＭ４（正確には、モータのモデルＭ４１）に入力する変数を指定するための入力操作を受け付ける。シミュレーション実行部８０１は、指定された変数についての指令値および当該指令値に対する制御結果とを、ＰＬＣサポート部８０２を介してＰＬＣ１から取得する。
【０１０８】
当該構成によれば、ＰＣ８は、シミュレーションの実行に必要な変数の指令値と、当該指令値に基づく制御結果のみを得ることができる。それゆえ、ＰＣ８は、不要なデータを取得せずに済む。
【０１０９】
（ｅ３．制御構造）
図７は、ユーザの指示によってＰＬＣシステムＳＹＳが実行する各種の処理を説明するためのフローチャートである。図７を参照して、ステップＳ２において、ユーザは、ＰＣ８のシミュレーション実行部８０１によって、コントローラモデルＭ１３を作成する。なお、コントローラモデルＭ１３が既に作成されている場合には、ステップＳ２の処理は不要である。
【０１１０】
ステップＳ４において、ユーザは、シミュレーション実行部８０１によって、制御対象物のモデルＭ４（シミュレーション用の制御対象物４のモデル）を作成する。ステップＳ６において、シミュレーション実行部８０１は、コントローラモデルＭ１３を制御プログラムに変換する。これにより、ＰＬＣサポート部８０２は、コントローラモデルＭ１３のソースプログラムを得る。ステップＳ１０において、ＰＬＣサポート部８０２は、ソースプログラムをコンパイルした後、当該コンパイルにより得られたオブジェクトプログラムをＣＰＵユニット１３に送信する。
【０１１１】
ステップＳ１２において、ユーザの指示に基づき、ＰＬＣ１による制御対象物４の制御が開始される。つまり、実機での動作が開始される。ステップＳ１４において、ユーザの指示に基づき、ＰＣ８は、シミュレーション実行部８０１によるシミュレーションを開始する。
【０１１２】
ステップＳ１６において、ユーザは、制御結果（実測値）とシミュレーション結果とを確認（検証）し、シミュレーション実行部８０１によって制御対象物のモデルＭ４（特に、機械のモデルＭ４２）の修正を行なう。また、ユーザは、必要に応じて、ステップＳ１８において、シミュレーション実行部８０１によって、コントローラモデルＭ１３のパラメータの値を修正する。具体的には、ユーザは、ＰＩＤ制御の制御パラメータを変更する。
【０１１３】
図８は、図７のステップＳ１２における処理の詳細を説明するためのフローチャートである。図８を参照して、ステップＳ２０２において、ＣＰＵユニット１３は、制御プログラム２３０（図４）の実行開始に基づき、指令値を１ミリ秒毎に制御対象物４に送信する。詳しくは、ＣＰＵユニット１３は、指令値を用いてモータ４１を制御することにより、機械４２を動作させる。
【０１１４】
ステップＳ２０４において、ＣＰＵユニット１３は、指令値に基づく制御結果（実測値）を指令値毎に受信し、当該制御結果に基づき指令値を修正する。つまり、ＣＰＵユニット１３は、ＩＯユニット１４Ｂを介して検出器６１から制御結果を順次受信し、フィードバック処理を実行する。
【０１１５】
ステップＳ２０６において、複数の連続する２０００個の指令値（２秒間に送信された指令値）を２秒間隔毎にまとめて、ＰＣ８が取得する。ステップＳ２０８において、複数の連続する２０００個の制御結果（実測値）を２秒間隔毎にまとめて、ＰＣ８が取得する。
【０１１６】
図９は、図７のステップＳ１４における処理の詳細を説明するためのフローチャートである。図９を参照して、ステップＳ４０２において、ＰＣ８は、複数の連続する指令値を２秒間隔毎にＰＬＣ１（詳しくは、ＣＰＵユニット１３）から受信する。ステップＳ４０４において、ＰＣ８は、複数の連続する制御結果を２秒間隔毎にＰＬＣ１（詳しくは、ＣＰＵユニット１３）から受信する。
【０１１７】
ステップＳ４０６において、シミュレーション実行部８０１は、ＰＬＣ１から受信した各指令値を用いて、シミュレーションを開始する。ステップＳ４０８において、シミュレーション実行部８０１は、指令値毎のシミュレーション結果を算出する。ステップＳ４１０において、シミュレーション実行部８０１は、ＰＬＣ１から受信した各制御結果（各実測値）と、各シミュレーション結果とを対比可能にグラフを用いて、ディスプレイ８７に表示させる。
【０１１８】
（ｅ４．ユーザインターフェイス）
図１０は、ディスプレイ８７に表示させる画像の例を説明するための図である。図１０を参照して、ＰＣ８のシミュレーション実行部８０１は、制御結果と、シミュレーション結果とを１つのグラフに表示させる。なお、ＰＬＣシステムＳＹＳにおいては、制御結果とシミュレーション結果とは、同一の指令値に基づいた結果であるため、一対一で対応する。それゆえ、グラフの始点を時間軸で容易に一致させることができる。したがって、ユーザは、制御結果とシミュレーション結果と対比が容易となる。
【０１１９】
（ｅ５．比較例との対比）
次に、ＰＬＣシステムＳＹＳを、他の構成と比較する。たとえば、以下では、ＰＬＣから、トレーサビリティ等のために記憶されている指令値および制御結果をメモリカードを用いて読み出す構成が考えられる。
【０１２０】
通常、指令値および制御結果は、予め定められたファイルに他のデータとともに一緒に格納されている。典型的には、指令値および制御結果は、ＣＳＶ（Comma-Separated Values）形式で日時のデータ等の様々なデータとともにファイルに格納される。
【０１２１】
このような構成では、ユーザは、ＰＣ８でシミュレーションを実行しようとする場合、メモリカード等を用いてＣＳＶ形式のファイルを、ＰＣ８にコピーする操作を行なわなければならない。さらに、ユーザは、ＰＣ８において、ＣＳＶ形式のファイルから必要なデータ（指令値および制御結果）を見つけ出し、当該データをコピーするとともに当該コピーしたデータを他のファイルにペーストする必要がある。
【０１２２】
つまり、ユーザ自身による複数の操作工程が多数あり、ユーザにとっては不便である。特に、機械のモデルＭ４２の修正が１回で終わらない場合には、当該複数の操作工程をさらに、何度も繰り返す必要がある。
【０１２３】
その一方、上述したＰＬＣシステムＳＹＳを用いれば、上記比較例として挙げた構成において説明した操作工程は必要なくなる。それゆえ、ＰＬＣシステムＳＹＳは、比較例に比べて、非常に利便性が高い。
【０１２４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示さ
れ、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２５】
２  フィールドネットワーク、３  モータドライバ、４  制御対象物、８  ＰＣ、１０  接続ケーブル、１１  ＰＬＣシステムバス、１２  電源ユニット、１３  ＣＰＵユニット、１４Ａ，１４Ｂ，１４Ｃ  ＩＯユニット、１５  特殊ユニット、４１  モータ、４２  機械、６１，６９  検出器、８７  ディスプレイ、１００  マイクロプロセッサ、１０２  チップセット、１０４  メインメモリ、１０６  不揮発性メモリ、２３０  制御プログラム、２３６，３３０  ユーザプログラム、３２０  サポートモジュール、３２１  エディタプログラム、３２２  コンパイラプログラム、３２３  デバッガプログラム、３２６  通信プログラム、３９０  シミュレーションモジュール、８０１  シミュレーション実行部、８０２  ＰＬＣサポート部、８０３  モデル記憶部、８１１，８２１  通信ＩＦ部、８１２  表示制御部、ＳＹＳ  ＰＬＣシステム。
【図１】
2016012191.tif 000003
【図２】
2016012191.tif 000004
【図３】
2016012191.tif 000005
【図４】
2016012191.tif 000006
【図５】
2016012191.tif 000007
【図６】
2016012191.tif 000008
【図７】
2016012191.tif 000009
【図８】
2016012191.tif 000010
【図９】
2016012191.tif 000011
【図１０】
2016012191.tif 000012
【図１１】
2016012191.tif 000013
【図１２】
2016012191.tif 000014
【図１３】
2016012191.tif 000015
【図１４】
2016012191.tif 000016