(57)【要約】制御システムにおいて、装置の調整を容易にする。制御システム（１００）において、ＰＬＣシステム（１）の入力ユニット（１３）は実サンプリングデータ（１１３７ｂ）を取得する。出力ユニット（１５）は、出力指示時刻と指示出力信号値とを含む出力指示データに基づいて出力信号を出力する。制御装置（１１）のタスク実行部（１１１１）は、タスクを所定の周期にて繰り返し実行する。サンプリング部（１１１３）は、変数サンプリングデータ（１１３７ａ）を取得する。開発支援装置（３）の同一時系列データ作成部（３１３）は、同一時系列データを作成する。同一時系列データ表示部（３１５）は、同一時系列データを、同一時間軸上に表示する。
2015136971.tif 000002
【特許請求の範囲】
【請求項１】
入力信号を第１タイミングにおいてサンプリングした第１サンプリング値と、前記入力信号をサンプリングした時刻である第１サンプリング時刻とを関連づけて記憶する実サンプリングデータを取得する入力ユニットと、
出力指示時刻と前記出力指示時刻において出力すべき指示出力信号値とを含む出力指示データに基づいて、出力信号を出力する出力ユニットと、
前記入力信号に関連づけられた入力変数の値を前記入力信号に基づいて更新し、前記出力信号に関連づけられた出力変数に基づいて前記出力信号を更新するＩ／Ｏリフレッシュ処理と、前記入力変数に基づいてユーザプログラムを実行することにより前記出力変数の値を算出し、前記出力変数の値に基づいて前記出力指示時刻と前記指示出力信号値とを算出し、前記出力指示データを前記出力ユニットに送信するユーザプログラム実行処理とを含むタスクを、所定の周期にて繰り返し実行するタスク実行部と、
前記入力変数、前記出力変数、及び／又は前記ユーザプログラムにおいて用いられた内部変数を第２タイミングにおいてサンプリングした第２サンプリング値と、前記入力変数、前記出力変数、及び／又は前記内部変数をサンプリングした時刻である第２サンプリング時刻とを関連づけて記憶する変数サンプリングデータとして取得するサンプリング部と、
を有する制御装置と、
を有するＰＬＣシステムと、
前記第１サンプリング時刻と前記第２サンプリング時刻と前記出力指示時刻とが同一時系列上に配置され、前記第１サンプリング値と前記第２サンプリング値と前記指示出力信号値とが、それぞれ、前記第１サンプリング時刻と前記第２サンプリング時刻と前記出力指示時刻に対応する前記同一時系列上の時刻に関連づけられて記憶される同一時系列データを作成する同一時系列データ作成部と、
前記同一時系列データを、同一時間軸上に表示する同一時系列データ表示部と、
を有する開発支援装置と、
を備える制御システム。
【請求項２】
前記入力ユニットは、前記タスクが実行される前記所定の周期より短い高速サンプリング周期毎に前記第１サンプリング値をサンプリングし、前記高速サンプリング周期により決定される時刻を前記第１サンプリング時刻とする高速サンプリング入力ユニットを含む、請求項１に記載の制御システム。
【請求項３】
前記入力ユニットは、前記入力信号が所定の変化をしたタイミングを前記第１タイミングとし、前記所定の変化をした後の前記入力信号の信号値を前記第１サンプリング値とし、前記第１タイミングにより決定される時刻を前記第１サンプリング時刻とする変化時刻取得入力ユニットを含む、請求項１又は２に記載の制御システム。
【請求項４】
前記入力ユニットは、指示された入力指示時刻において前記入力信号を入力する、請求項１〜３のいずれかに記載の制御システム。
【請求項５】
前記入力ユニットは、前記所定の周期よりも短い高速入力周期により決定される時刻を前記入力指示時刻として入力信号を入力する、請求項４に記載の制御システム。
【請求項６】
前記出力ユニットは、前記タスクが実行される前記所定の周期より短い高速出力周期により決定される時刻を前記出力指示時刻とし、前記高速出力周期毎に出力すべき信号値を前記指示出力信号値として前記出力信号を出力する、高速出力ユニットを含む請求項１〜５のいずれかに記載の制御システム。
【請求項７】
前記出力ユニットは、予め決められた時刻を前記出力指示時刻とし、前記予め決められた時刻に出力すべき信号値を前記指示出力信号値として前記出力信号を出力する、時刻指定出力ユニットを含む請求項１〜６のいずれかに記載の制御システム。
【請求項８】
前記第１サンプリング時刻と、前記第２サンプリング時刻と、前記出力指示時刻とを共通時刻にて計数する共通時刻計数部をさらに備える、請求項１〜７のいずれかに記載の制御システム。
【請求項９】
前記出力ユニットは、さらに、所定のタイミングにおいて前記出力信号をサンプリングしたサンプリング出力信号値と、前記所定のタイミングによって決定される出力サンプリング時刻とを関連づけて前記実サンプリングデータに記憶する、請求項１〜８のいずれかに記載の制御システム。
【請求項１０】
前記同一時系列データ作成部は、さらに、前記同一時系列上に前記出力サンプリング時刻を配置し、前記サンプリング出力信号値を前記出力サンプリング時刻に対応する前記同一時系列上の時刻に関連づけて記憶して前記同一時系列データを作成する、請求項９に記載の制御システム。
【請求項１１】
入力信号を入力する入力ユニットと、
出力信号を出力する出力ユニットと、
前記入力信号に関連づけられた入力変数を前記入力信号に基づいて更新し、前記出力信号に関連づけられた出力変数に基づいて前記出力信号を更新するＩ／Ｏリフレッシュ処理と、前記入力変数に基づいてユーザプログラムを実行することにより前記出力変数の値を算出するユーザプログラム実行処理とを含むタスクを、所定の周期にて繰り返し実行するタスク実行部と、
前記入力変数、前記出力変数、及び／又は前記ユーザプログラムにおいて用いられた内部変数を第２タイミングにおいてサンプリングした第２サンプリング値と、前記入力変数、前記出力変数、及び／又は前記内部変数をサンプリングした時刻である第２サンプリング時刻とを変数サンプリングデータとして取得するサンプリング部と、を有する制御装置と、
を有するＰＬＣシステムと、
前記入力信号の信号値が前記第２サンプリング時刻における前記入力変数の値に対応する値となる入力変化時刻、及び／又は、前記出力信号の信号値が前記第２サンプリング時刻における前記出力変数の値に対応する値となる出力変化時刻を、前記入力ユニット及び／又は前記出力ユニットと前記制御装置との接続関係、通信速度、前記入力ユニット及び／又は前記出力ユニットにおける所定の動作を行う動作速度、及び前記第２サンプリング時刻に基づいて予測する、入出力変化時刻予測部と、
前記入力変化時刻に前記第２サンプリング時刻における前記入力変数の値を関連づけて予測入力信号データを生成し、及び／又は、前記出力変化時刻に前記第２サンプリング時刻における前記出力変数の値を関連づけて予測出力信号データを生成する、予測入出力信号生成部と、
前記変数サンプリングデータ、前記予測入力信号データ、及び／又は前記予測出力信号データを同一時間軸上に表示する同一時系列データ表示部と、
を有する開発支援装置と、
を備える制御システム。
【請求項１２】
前記開発支援装置は、前記入力変化時刻及び／又は前記出力変化時刻を調整する入出力時刻調整部をさらに有する、請求項１１に記載の制御システム。
【請求項１３】
前記出力ユニットは、出力指示時刻と前記出力指示時刻において出力すべき指示出力信号値とを含む出力指示データに基づいて前記出力信号を出力する、請求項１１又は１２に記載の制御システム。
【請求項１４】
前記出力指示時刻を前記出力変化時刻とし、前記指示出力信号を前記第２サンプリング時刻における前記出力変数の値とする、請求項１３に記載の制御システム。
【請求項１５】
前記出力ユニットは、前記タスクが実行される前記所定の周期より短い高速出力周期により決定される時刻を前記出力指示時刻とし、前記高速出力周期毎に出力すべき信号値を前記指示出力信号値として前記出力信号を出力する、高速出力ユニットを含む請求項１３又は１４に記載の制御システム。
【請求項１６】
前記出力ユニットは、予め決められた時刻を前記出力指示時刻とし、前記予め決められた時刻に出力すべき信号値を前記指示出力信号値として前記出力信号を出力する、時刻指定出力ユニットを含む請求項１３〜１５のいずれかに記載の制御システム。
【請求項１７】
前記出力ユニットは、所定のタイミングにおいて前記出力信号をサンプリングしたサンプリング出力信号値と、前記所定のタイミングによって決定される出力サンプリング時刻とを関連づけて実サンプリングデータに記憶する、請求項１１〜１６のいずれかに記載の制御システム。
【請求項１８】
前記入力ユニットは指示された入力指示時刻において前記入力信号を入力する、請求項１１〜１７のいずれかに記載の制御システム。
【請求項１９】
前記入力指示時刻は前記入力変化時刻である、請求項１８に記載の制御システム。
【請求項２０】
前記入力ユニットは、前記所定の周期よりも短い高速入力周期により決定される時刻を前記入力指示時刻として入力信号を入力する、請求項１８又は１９に記載の制御システム。
【請求項２１】
前記入力変化時刻と、前記出力変化時刻と、前記第２サンプリング時刻とを共通時刻にて計数する共通時刻計数部をさらに備える、請求項１１〜２０のいずれかに記載の制御システム。
【請求項２２】
前記入力ユニットは、前記入力信号を第１タイミングにおいてサンプリングした第１サンプリング値と、前記入力信号をサンプリングした時刻である第１サンプリング時刻とを関連づけて記憶する実サンプリングデータを取得する、請求項１１〜２１のいずれかに記載の制御システム。
【請求項２３】
前記入力ユニットは、前記タスクが実行される前記所定の周期より短い高速サンプリング周期毎に前記第１サンプリング値をサンプリングし、前記高速サンプリング周期により決定される時刻を前記第１サンプリング時刻とする高速サンプリング入力ユニットを含む、請求項２２に記載の制御システム。
【請求項２４】
前記入力ユニットは、前記入力信号が所定の変化をしたタイミングを前記第１タイミングとし、前記所定の変化をした後の前記入力信号の信号値を前記第１サンプリング値とし、前記第１タイミングにより決定される時刻を前記第１サンプリング時刻とする時刻取得入力ユニットを含む、請求項２２又は２３のいずれかに記載の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力信号及び内部変数をサンプリング可能な制御システムに関する。
【背景技術】
【０００２】
従来、ユーザプログラムを含むタスクを所定の周期にて実行することにより、外部からの入力信号に基づいて出力信号を算出及び出力し制御対象機器を制御する制御装置（ＰＬＣシステム）が知られている。このような制御装置において、上記の入力信号及び出力信号（入出力信号）の時間的な変化を追跡する機能（トレース機能）が知られている。
例えば、特許文献１には、ユーザプログラムを含むタスクを実行しているときに、ユーザプログラムにおいて参照および更新される変数を収集する制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５２５２０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の制御装置のトレース機能は、制御装置内部において用いられ、上記の入出力信号に関連づけられた変数をサンプリングすることにより、上記の入出力信号を取得している。一方、制御装置に入力される実際の入力信号、及び、制御装置から出力される実際の出力信号は、上記のトレース機能とは個別にサンプリングされていた。そのため、トレース機能により得られたデータと、実際の入力信号及び出力信号のサンプリング結果（サンプリングデータ）とを比較して、制御装置内部において用いられている変数の変化と、実際の入力信号及び出力信号とを比較することが困難であった。【０００５】
上記のように、制御装置内部において用いられている変数と実際の入力信号及び出力信号とを比較することが困難であると、制御装置、入力信号を取得する装置（例えば、入力ユニット）、及び出力信号を出力する装置（例えば、出力ユニット）の調整の効率が低くなる。また、機器の調整を行うのは、装置（制御システム）の完成後であるため、機構や制御対象機器の変更は避けることが好ましい。そのため、ＰＬＣシステム上の入力ユニット、制御装置、及び、出力ユニットの範囲内にて調整を行うことが重要である。この問題は、制御装置にて制御されるシステムが大規模化すると、無視できない問題となる。【０００６】
本発明の課題は、制御システムにおいて、装置の調整を容易にすることにある。
【課題を解決するための手段】
【０００７】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
本発明の一見地に係る制御システムは、ＰＬＣシステムと開発支援装置とを備える。
ＰＬＣシステムは、入力ユニットと、出力ユニットと、制御装置と、を有する。入力ユニットは、第１サンプリング値と第１サンプリング時刻とを関連づけて記憶する実サンプリングデータを取得する。第１サンプリング値は、入力信号を第１タイミングにおいてサンプリングした値である。第１サンプリング時刻は、入力信号をサンプリングした時刻である。
出力ユニットは、出力指示時刻と指示出力信号値とを含む出力指示データに基づいて、出力信号を出力する。指示出力信号値は、出力指示時刻において出力すべき出力信号値である。【０００８】
制御装置は、タスク実行部とサンプリング部とを有する。
タスク実行部は、Ｉ／Ｏリフレッシュ処理とユーザプログラム実行処理とを含むタスクを、所定の周期にて繰り返し実行する。Ｉ／Ｏリフレッシュ処理は、入力信号に関連づけられた入力変数の値を入力信号に基づいて更新し、出力信号に関連づけられた出力変数に基づいて出力信号を更新する処理のことである。ユーザプログラム実行処理は、入力変数に基づいてユーザプログラムを実行することにより出力変数の値を算出し、出力変数の値に基づいて出力指示時刻と指示出力信号値とを算出し、出力指示データを出力ユニットに送信する処理である。【０００９】
サンプリング部は、第２サンプリング値と第２サンプリング時刻とを関連づけて記憶する変数サンプリングデータを取得する。第２サンプリング値は、入力変数、出力変数、及び／又は内部変数を第２タイミングにおいてサンプリングした値である。内部変数は、ユーザプログラムにおいて用いられた変数である。第２サンプリング時刻は、入力変数、出力変数、及び／又は内部変数をサンプリングした時刻である。【００１０】
開発支援装置は、同一時系列データ作成部と同一時系列データ表示部と、を有する。
同一時系列データ作成部は、同一時系列データを作成する。同一時系列データは、第１サンプリング時刻と第２サンプリング時刻と出力指示時刻とが同一時系列上に配置され、第１サンプリング値と第２サンプリング値と指示出力信号値とが、それぞれ、第１サンプリング時刻と第２サンプリング時刻と出力指示時刻に対応する同一時系列上の時刻に関連づけられて記憶されるデータである。
同一時系列データ表示部は、同一時系列データを、同一時間軸上に表示する。【００１１】
上記の制御システムにおいては、入力ユニットが、入力信号を第１タイミングにおいてサンプリングして第１サンプリング値とするとともに、入力信号をサンプリングした時刻を第１サンプリング時刻としてサンプリングし、第１サンプリング値と第１サンプリング時刻とを関連づけて記憶して実サンプリングデータを取得する。【００１２】
また、その一方、制御装置のサンプリング部が、入力変数、出力変数、及び／又は内部変数を第２タイミングにおいてサンプリングした値を第２サンプリング値とするとともに、上記の変数をサンプリングした時刻を第２サンプリング時刻としてサンプリングし、第２サンプリング時刻と第２サンプリング時刻とを関連づけて記憶して変数サンプリングデータを取得する。【００１３】
さらに、制御装置のタスク実行部がユーザプログラム実行処理を実行する際に、ユーザプログラムが入力変数に基づいて出力変数の値を算出し、当該出力変数の値に基づいて出力指示時刻と、出力指示時刻において出力すべき指示出力信号値とを算出し、出力指示時刻及び指示出力信号値とを含んだ出力指示データを出力ユニットに送信する。【００１４】
開発支援装置においては、同一時系列データ作成部が、第１サンプリング時刻と第２サンプリング時刻と出力指示時刻とを同一時系列上に配置し、第１サンプリング値と第２サンプリング値と指示出力信号値とを、それぞれ、第１サンプリング時刻と第２サンプリング時刻と出力指示時刻に対応する同一時系列上の時刻に関連づけて記憶して同一時系列データを作成する。そして、同一時系列データ表示部が、同一時系列データを表示する。【００１５】
このように、上記の制御システムにおいては、実サンプリングデータと、変数サンプリングデータと、出力指示データとが、同一時系列上にまとめられて、１つの同一時系列データが作成される。そして、開発支援装置において、同一時系列データが同一時間軸上に表示される。これにより、個別のデータを整理する手順を経ることなく、上記のサンプリング結果と、指示出力信号値との関係を同一の時間軸上にて確認できる。その結果、システム開発者などに大きな負担をかけることなく、容易に装置を調整できる。【００１６】
入力ユニットは、高速サンプリング入力ユニットを含んでいてもよい。高速サンプリング入力ユニットは、タスクが実行される所定の周期より短い高速サンプリング周期毎に第１サンプリング値をサンプリングし、高速サンプリング周期により決定される時刻を第１サンプリング時刻とする入力ユニットである。これにより、タスクの実行周期である所定の周期よりも短い周期にて、より高精度に入力信号をサンプリングできる。【００１７】
入力ユニットは、変化時刻取得入力ユニットを含んでいてもよい。変化時刻取得入力ユニットは、入力信号が所定の変化をしたタイミングを第１タイミングとし、所定の変化をした後の入力信号の信号値を第１サンプリング値とし、第１タイミングにより決定される時刻を第１サンプリング時刻とする入力ユニットである。これにより、タスクの実行周期（所定の周期）に束縛されず、入力信号が所定の変化をした時刻を、当該変化をしたときの入力信号値とともに正確にサンプリングできる。【００１８】
入力ユニットは指示された入力指示時刻において入力信号を入力してもよい。これにより、タスクの実行周期（所定の周期）に束縛されることなく、入力信号を入力できる。【００１９】
入力ユニットは、所定の周期よりも短い高速入力周期により決定される時刻を入力指示時刻として入力信号を入力してもよい。これにより、タスクの実行周期（所定の周期）に束縛されることなく、タスクの実行周期よりも高速に入力信号を入力できる。【００２０】
出力ユニットは、高速出力ユニットを含んでいてもよい。高速出力ユニットは、タスクが実行される所定の周期より短い高速出力周期により決定される時刻を出力指示時刻とし、高速出力周期毎に出力すべき信号値を指示出力信号値として出力信号を出力する出力ユニットのことである。これにより、タスクの実行周期（所定の周期）に束縛されず、所定の周期よりも短い周期にてより細かく出力信号を制御して出力できる。【００２１】
出力ユニットは、時刻指定出力ユニットを含んでいてもよい。時刻指定出力ユニットは、予め決められた時刻を出力指示時刻とし、予め決められた時刻に出力すべき信号値を指示出力信号値として出力信号を出力する出力ユニットである。これにより、タスクの実行周期（所定の周期）に束縛されず、予め決められた任意の時刻にて、任意の信号値の出力信号を出力できる。【００２２】
上記の制御システムは、共通時刻計数部をさらに備えていてもよい。共通時刻計数部は、第１サンプリング時刻と、第２サンプリング時刻と、出力指示時刻と、を共通時刻にて計数する。これにより、上記の制御システムにおいて、入力ユニットにおいて計数される時刻と、出力ユニットにおいて計数される時刻と、制御装置において計数される時刻とのずれが少なくなる。【００２３】
出力ユニットは、所定のタイミングにおいて出力信号をサンプリングしたサンプリング出力信号値と、所定のタイミングによって決定される出力サンプリング時刻とを関連づけて実サンプリングデータに記憶してもよい。これにより、実際の出力信号をサンプリングできる。【００２４】
時系列データ作成部は、さらに、同一時系列上に出力サンプリング時刻を配置し、サンプリング出力信号値を出力サンプリング時刻に対応する同一時系列上の時刻に関連づけて記憶して同一時系列データを作成してもよい。これにより、実際の出力信号のサンプリング結果を同一時間軸上に表示できる。【００２５】
本発明の他の見地に係る制御システムは、ＰＬＣシステムと開発支援装置とを備える。
ＰＬＣシステムは、入力ユニットと、出力ユニットと、制御装置とを有する。入力ユニットは入力信号を入力する。出力信号は、出力信号を出力する。【００２６】
制御装置は、タスク実行部とサンプリング部とを有する。
タスク実行部は、Ｉ／Ｏリフレッシュ処理とユーザプログラム実行処理とを含むタスクを、所定の周期にて繰り返し実行する。Ｉ／Ｏリフレッシュ処理は、入力信号に関連づけられた入力変数の値を入力信号に基づいて更新し、出力信号に関連づけられた出力変数の値に基づいて出力信号を更新する処理のことである。ユーザプログラム実行処理は、入力変数に基づいてユーザプログラムを実行することにより出力変数の値を算出する処理である。【００２７】
サンプリング部は、第２サンプリング値と第２サンプリング時刻とを関連づけて記憶する変数サンプリングデータを取得する。第２サンプリング値は、入力変数、出力変数、及び／又は内部変数を第２タイミングにおいてサンプリングした値である。内部変数は、ユーザプログラムにおいて用いられた変数である。第２サンプリング時刻は、入力変数、出力変数、及び／又は内部変数をサンプリングした時刻である。【００２８】
開発支援装置は、入出力変化時刻予測部と、予測入出力信号生成部と、同一時系列データ表示部と、を有する。
入出力変化時刻予測部は、入力変化時刻及び／又は出力変化時刻を、入力ユニット及び／又は出力ユニットと制御装置との接続関係、通信速度、入力ユニット及び／又は出力ユニットにおける所定の動作を行う動作速度、及び第２サンプリング時刻に基づいて予測する。入力変化時刻は、入力信号の信号値が第２サンプリング時刻における入力変数の値に対応する値となる時刻である。出力変化時刻は、出力信号の信号値が第２サンプリング時刻における出力変数の値に対応する値となる時刻である。【００２９】
予測入出力信号生成部は、予測入力信号データ及び／又は予測出力信号データを生成する。予測入力信号データは、入力変化時刻に第２サンプリング時刻における入力変数の値を関連づけて生成されたデータである。予測出力信号データは、出力変化時刻に第２サンプリング時刻における出力変数の値を関連づけて生成されたデータである。
同一時系列データ表示部は、変数サンプリングデータ、予測入力信号データ、及び／又は予測出力信号データを同一時間軸上に表示する。【００３０】
上記の制御システムにおいては、制御装置において、サンプリング部が、入力変数、出力変数、及び／又は内部変数を第２タイミングにおいてサンプリングして第２サンプリングとし、入力変数、出力変数、及び／又は内部変数をサンプリングした時刻を第２サンプリング時刻としてサンプリングし、変数サンプリングデータを取得する。【００３１】
一方、開発支援装置において、入出力変化時刻予測部が、入力信号の信号値が第２サンプリング時刻における入力変数の値に対応する値となる時刻である入力変化時刻、及び／又は、出力信号の信号値が第２サンプリング時刻における出力変数の値に対応する値となる時刻である出力変化時刻を、入力ユニット及び／又は出力ユニットと制御装置との接続関係、通信速度、入力ユニット及び／又は出力ユニットにおける所定の動作を行う動作速度、及び第２サンプリング時刻に基づいて予測する。【００３２】
また、予測入出力信号生成部が、入力変化時刻に第２サンプリング時刻における入力変数の値を関連づけて予測入力信号データを作成し、出力変化時刻に第２サンプリング時刻における出力変数の値を関連づけて予測出力信号データを作成する。
さらに、同一時系列データ表示部が、変数サンプリングデータ、予測入力信号データ、及び／又は予測出力信号データを同一時間軸上に表示する。【００３３】
これにより、入力信号及び／又は出力信号をサンプリングすることなく、制御装置において用いられている変数に基づいて、入力ユニットに入力される入力信号の取込／ラッチのタイミング及び／又は出力ユニットから出力される実際の出力信号を予測でき、個別のデータを整理する手順を経ることなく、変数のサンプリング結果と、予測された入力信号及び／又は出力信号との関係を同一の時間軸上にて確認できる。その結果、システム開発者などに大きな負担をかけることなく、容易に装置を調整できる。【００３４】
開発支援装置は、入出力時刻調整部をさらに有していてもよい。入出力時刻調整部は、入力変化時刻及び／又は出力変化時刻を調整する。これにより、入力ユニット及び出力ユニット単位にて、それぞれ、入力信号が入力される時刻（入力変化時刻）及び出力信号を出力する時刻（出力変化時刻）を調整できる。その結果、制御システムにおいて、より精度よく、かつ、より細かく装置を調整できる。【００３５】
出力ユニットは、出力指示時刻と出力指示時刻において出力すべき指示出力信号値とを含む出力指示データに基づいて出力信号を出力してもよい。これにより、タスクの実行周期（所定の周期）に束縛されることなく、出力信号を出力できる。【００３６】
出力指示時刻を出力変化時刻とし、指示出力信号を第２サンプリング時刻における出力変数の値としてもよい。これにより、入出力時刻調整部において調整した出力変化時刻を出力ユニットにおいて反映できる。【００３７】
入力指示時刻は入力変化時刻であってもよい。これにより、入出力時刻調整部において調整された入力変化時刻を入力ユニットにおいて反映できる。
【発明の効果】
【００３８】
制御システムにおいて、容易に装置を調整できる。
【図面の簡単な説明】
【００３９】
【図１】制御システムの全体構成を示す図。
【図２Ａ】Ｉ／Ｏバス上に配置された入力ユニット及び出力ユニットを示す図。
【図２Ｂ】通信ネットワークにより制御装置と接続された入力ユニット及び出力ユニット１５を示す図。
【図３】制御装置及び開発支援装置の構成を示す図。
【図４】制御装置の詳細構成を示す図。
【図５】開発支援装置の詳細構成を示す図。
【図６Ａ】入力ユニット及び出力ユニットの構成を示す図。
【図６Ｂ】入力ユニット及びサンプリング機能を有する出力ユニットの構成を示す図。
【図７】制御システムにおけるデータサンプリング動作を示すフローチャート。
【図８】同一時系列データを同一時間軸上に表示したときの表示例を示す図。
【図９】第２実施形態に係る制御システムの開発支援装置の詳細構成を示す図。
【図１０】予測入出力信号の生成を模式的に示す図。
【図１１】予測入力信号及び予測入力信号を同一時間軸上に表示した例を示す図。
【図１２】入出力変化時刻の調整方法を模式的に示す図。
【図１３】調整後入出力変化時刻を、実際の制御システムの動作に反映させるための方法を示す図。
【発明を実施するための形態】
【００４０】
１．第１実施形態
（１）制御システムの全体構成
まず、第１実施形態に係る制御システム１００の全体構成について、図１を用いて説明する。図１は、制御システムの全体構成を示す図である。制御システム１００は、ＰＬＣシステム１と開発支援装置３とを備える。
ＰＬＣシステム１は、例えば、センサやスイッチなどにより構成される信号入力部５から信号を入力する。また、ＰＬＣシステム１は、信号入力部５（後述）からの入力信号を必要の応じて用いプログラム（ユーザプログラム１１３１）を実行して、制御対象機器７を制御する出力信号を算出する。
【００４１】
開発支援装置３は、ＰＬＣシステム１の制御装置１１において実行されるユーザプログラム１１３１（図４）を作成するための各種機能を実現する。また、ＰＬＣシステム１に接続可能な開発支援装置３の数は１に限られず、例えば、開発支援装置３に割当可能なアドレス数などが許す限り、任意の数の開発支援装置３を接続できる。
以下に、ＰＬＣシステム１、制御装置１１、及び開発支援装置３の詳細な構成についてそれぞれ説明する。
【００４２】
（２）ＰＬＣシステムの構成
次に、ＰＬＣシステム１の詳細な構成について図１を用いて説明する。本実施形態に係るＰＬＣシステム１は、制御装置１１と、入力ユニット１３と、出力ユニット１５と、電源ユニット１７と、を有する。
【００４３】
本実施形態に係る制御装置１１は、プログラマブル・ロジック・コントローラ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ、ＰＬＣ）のＣＰＵユニットである。制御装置１１においては、入力ユニット１３（後述）に入力される入力信号が制御装置１１内部において用いられる入力変数に関連づけられている。また、出力ユニット１５（後述）への出力信号が制御装置１１内部において用いられる出力変数に関連づけられている。
【００４４】
また、制御装置１１においては、所定のタスクが所定の周期にて繰り返し実行されている。ここで、タスクとは、入力ユニット１３からの入力信号に基づいて入力変数を更新し、出力変数に基づいて出力ユニット１５へ出力する出力信号を更新するＩ／Ｏリフレッシュ処理と、ユーザプログラム１１３１及び／又はシステムプログラム１１５ａ（後述）を実行する処理とを含む処理単位のことである。
【００４５】
制御装置１１において実行されるユーザプログラム１１３１は、上記の入力変数と必要に応じて内部変数とを用いて、上記の出力変数を算出している。そのため、タスクが所定の周期にて繰り返し実行されることにより、入力信号及び出力信号（入出力信号）、及び、入力変数と出力変数と内部変数とを含む変数は時間的に変化している。
また、ユーザプログラム実行処理中、ユーザプログラム１１３１は、上記の出力変数を用いて出力指示データ（後述）を作成している。出力指示データは、出力ユニット１５（後述）においてどのタイミングにおいて、どのような出力信号値を出力するかを指示するデータである。
【００４６】
よって、実行中のユーザプログラムが適切に動作しているかどうかを確認することを主な目的として、制御装置１１は、入出力信号に関連づけられた入力変数値及び出力変数値と、内部変数値の時間的な変化を、上記の変数をサンプリングして記憶することにより追跡する機能（トレース機能）を有している。
【００４７】
入力ユニット１３は、センサやスイッチなどの信号入力部５から入力信号を入力し、制御装置１１に当該入力信号を出力する。入力ユニット１３としては、信号入力部５から入力される信号種類に応じた入力ユニットを使用できる。具体的には、例えば、信号入力部５が温度を測定する熱電対により構成されている場合には、熱電対において発生する電圧を入力信号とする入力ユニットを入力ユニット１３として用いることができる。また、例えば、信号入力部５が電気スイッチにより構成されている場合には、当該スイッチのＯＮ／ＯＦＦ状態を入力信号とする入力ユニットを入力ユニット１３として用いることができる。
【００４８】
また、入力ユニット１３は、入力信号の入力のみでなく、上記の入力信号をサンプリングする機能を有している。これにより、入力ユニット１３において、入力ユニット１３における実際の入力信号の時間的変化をサンプリングできる。なお、入力ユニット１３の構成の詳細は、後ほど説明する。
【００４９】
さらに、入力ユニット１３は、指示された時刻（入力指示時刻）において入力信号を入力できる。これにより、タスクの実行周期（所定の周期）に束縛されることなく、入力信号を入力できる。
【００５０】
出力ユニット１５は、制御装置１１の出力変数に関連づけられた出力信号を、対応する制御対象機器７に出力する。これにより、制御装置１１は、プログラムを実行することにより算出された出力変数に基づいて、制御対象機器７を制御できる。
また、出力ユニット１５は、制御装置１１から送信される出力指示データにおいて指示された時刻（出力指示時刻）に指示された信号値（指示出力信号値）の出力信号を出力する。これにより、タスクの実行周期（所定の周期）に束縛されることなく、出力信号を出力できる。
【００５１】
出力ユニット１５は、出力信号の種類に応じた出力ユニットとして構成できる。例えば、制御対象機器７がモータであり、モータの位置制御などを行う場合には、モーションコントローラ機能を有した出力ユニットを用いることができる。また、例えば、制御対象機器７が電気炉である場合には、電気炉を制御するリレーを制御する信号（例えば、ＯＮ／ＯＦＦデューティ比を制御する信号）を出力する出力ユニットを用いることができる。
【００５２】
さらに、出力ユニット１５は、入力ユニット１３と同様、出力信号の出力のみでなく、上記の出力信号をサンプリングする機能を有していてもよい。これにより、出力ユニット１５において、出力ユニット１５における実際の出力信号の時間的変化をサンプリングできる。なお、出力ユニット１５の構成の詳細は、後ほど説明する。
【００５３】
電源ユニット１７は、制御装置１１、入力ユニット１３、及び出力ユニット１５に電力を供給する。
なお、ＰＬＣシステム１は、上記の構成要素の全てを１の筐体内に組み込んだシステムであってもよいし、各構成要素を個別の筐体に組み込んで当該構成要素を接続してＰＬＣシステムとしてもよい。特に、入力ユニット１３及び出力ユニット１５を個別の構成要素とすることにより、ＰＬＣシステム１は、所望する制御対象機器及び信号入力部を所望の数接続できる。
【００５４】
なお、ＰＬＣシステム１における入力ユニット１３及び出力ユニット１５は、図２Ａに示すように、制御装置１１のＩ／ＯバスＢ上に制御装置１１と通信可能に配置されていてもよい。図２Ａは、Ｉ／Ｏバス上に配置された入力ユニット及び出力ユニットを示す図である。
【００５５】
または，図２Ｂに示すように、入力ユニット１３及び出力ユニット１５は、制御装置１１の通信インターフェース１１７（後述）を介して、通信ネットワークＮＷにより制御装置１１と通信可能に接続されていてもよい。図２Ｂは、通信ネットワークにより制御装置と接続された入力ユニット及び出力ユニット１５を示す図である。
【００５６】
（３）制御装置の構成
次に、制御装置１１の構成の詳細について、図３及び図４を用いて説明する。図３は、制御装置及び開発支援装置の構成を示す図である。図４は、制御装置の詳細構成を示す図である。
上記のように、制御装置１１はＰＬＣシステムにおけるＣＰＵユニットである。図３に示すように、制御装置１１は、プログラムの実行などの演算処理を行うＣＰＵ１１１と、書き込みと読み出しとが可能な記憶領域を提供するＲＡＭ１１３と、読み出しのみを主目的としている記憶領域を提供するＲＯＭ１１５と、開発支援装置３、及び／又は、入力ユニット１３及び出力ユニット１５とデータ通信を行う通信インターフェース１１７と、を有する。
【００５７】
通信インターフェース１１７は、例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などのデータ通信プロトコルを用いてデータ送受信を実行する。
【００５８】
次に、制御装置１１の各種機能を実現する各部について、図４を用いてさらに詳しく説明する。本実施形態において、以下に説明する制御装置１１の各部の機能は、図３に示す制御装置１１のＣＰＵ１１１において、ＲＯＭ１１５に記憶されたシステムプログラム１１５ａを実行することにより実現されている。
【００５９】
図４に示すように、制御装置１１は、タスク実行部１１１１と、サンプリング部１１１３と、共通時刻計数部１１１７と、送受信部１１１９と、を有する。
タスク実行部１１１１は、ＲＡＭ１１３に記憶されたユーザプログラム１１３１を参照し、ユーザプログラム１１３１の実行処理と上記のＩ／Ｏリフレッシュ処理とを含んだ所定のタスクを所定の周期にて繰り返し実行する。
【００６０】
なお、上記のＩ／Ｏリフレッシュ処理の実行時には、入力ユニット１３（場合によっては、出力ユニット１５も）においてサンプリングされた入力信号データ１３５ａ（後述）（場合によって、出力信号データ１５５ａ）が、入力ユニット１３（及び出力ユニット１５）から制御装置１１へと送信される。
【００６１】
また、タスク実行部１１１１は、タスクを実行することにより、入力ユニット１３から入力した入力信号に基づいて入力信号に関連づけられた入力変数の値と、ユーザプログラム１１３１の実行により算出された出力信号に関連づけられた出力変数の値と、必要に応じて、ユーザプログラム１１３１において用いられる内部変数の値とを、ＲＡＭ１１３の記憶領域の一部に確保された変数格納領域１１３５に格納する。
【００６２】
すなわち、上記のタスクを所定の周期にて繰り返し実行することにより、入力ユニット１３からの入力信号に基づいて入力変数が更新された際、及び／又は、ユーザプログラム１１３１の実行により出力変数及び／又は内部変数が更新された際に、更新されたこれらの変数値は、変数格納領域１１３５に格納される。
【００６３】
一方、タスク実行部１１１１がユーザプログラム１１３１の実行処理を行っているとき、ユーザプログラム１１３１は、変数格納領域１１３５に格納されている出力変数の値に基づいて、出力指示時刻と指示出力信号値とを算出し出力指示データを作成する。そして、ユーザプログラム１１３１は、作成した出力指示データを出力ユニット１５に送信する。
【００６４】
ユーザプログラム１１３１は、出力ユニット１５の種類に応じた出力指示データを作成する。高速出力ユニット１５（後述）のための出力指示データは、次のようにして作成できる。例えば、出力指示時刻は、タスクの実行周期（所定の周期）を所定の数だけ分割して、分割することにより決定される時刻を出力指示時刻とする。具体的には、例えば、所定の周期をｎ分割する場合は、最初の出力指示時刻を所定の周期／ｎとし、次の出力指示時刻を２×（所定の周期／ｎ）とし、・・・と、ｎ個の出力指示時刻が生成される。
【００６５】
一方、それぞれの出力指示時刻における指示出力信号値は、前回のタスク実行時の出力変数値と今回のタスク実行時の出力変数値とを線形補完することにより算出できる。
【００６６】
一方、時刻指定出力ユニット１５（後述）のための出力指示データは、例えば、今回のタスク実行時の出力変数値を指示出力信号値とし、当該指示出力信号値を出力したい時刻を出力指示時刻とすることにより作成できる。
【００６７】
また、入力ユニット１３が指示された時刻（入力指示時刻）において入力信号を入力できる場合、ユーザプログラム１１３１は、入力指示時刻を算出して入力ユニット１３に送信する。このとき、ユーザプログラム１１３１は、入力ユニット１３の種類に応じた入力指示時刻を算出する。
【００６８】
高速入力ユニット１３（後述）及び高速サンプリング入力ユニット１３（後述）のための入力指示時刻は、タスクの実行周期（所定の周期）を所定の数だけ分割して、分割することにより決定される時刻を入力指示時刻とする。具体的には、例えば、所定の周期をｎ分割する場合は、最初の入力指示時刻を所定の周期／ｎとし、次の入力指示時刻を２×（所定の周期／ｎ）とし、・・・と、ｎ個の入力指示時刻が算出される。
【００６９】
一方、時刻指定入力ユニット１３（後述）のための入力指示時刻は、入力信号を入力したい時刻を入力指示時刻とする。
また、変化時刻取得入力ユニット１３（後述）の場合は、入力指示時刻として、変化時刻を取得したい入力信号値の変化を指定する。
【００７０】
サンプリング部１１１３は、上記の入力変数、出力変数、及び／又は内部変数を第２タイミングにおいてサンプリングする。また、サンプリング部１１１３は、サンプリングした変数の値（第２サンプリング値）と、入力変数、出力変数、及び／又内部変数をサンプリングした時刻である第２サンプリング時刻とを関連づけて、変数サンプリングデータ１１３７ａに記憶する。
【００７１】
具体的には、サンプリング部１１１３は、第２タイミングにおいて、変数格納領域１１３５に格納されている上記の入力変数、出力変数、及び／又は内部変数の変数値を取得し、第２サンプリング値とする。次に、サンプリング部１１１３は、上記の変数値を変数格納領域１１３５から取得した時刻を、第２サンプリング時刻とする。なお、サンプリング部１１１３は、変数をサンプリングした際の共通時刻計数部１１１７（後述）において計数される共通時刻を、上記の第２サンプリング時刻とする。これにより、入出力信号の時間的変化と上記の変数の時間的変化との関係を、より正確に比較できる。
【００７２】
その後、サンプリング部１１１３は、取得した第２サンプリング値と第２サンプリング時刻とを関連づけて、ＲＡＭ１１３に領域が確保されたサンプリングデータ格納領域１１３７に記憶する。サンプリング部１１１３が上記の動作を繰り返すことにより、第２サンプリング時刻の時間列と第２サンプリング値のサンプリング値列とにより構成される変数サンプリングデータ１１３７ａが取得される。
【００７３】
なお、本実施形態において、上記の第２タイミングは、タスクが実行される所定の周期毎である。しかし、第２タイミングはこれに限られず、例えば、所定のトリガが発生したタイミング、ユーザプログラム１１３１中の指定されたタイミングなど、所望のタイミングとすることができる。
【００７４】
また、サンプリング部１１１３は、Ｉ／Ｏリフレッシュ処理の実行時に、入力ユニット１３（出力ユニット１５）から送信された入力信号データ１３５ａ（出力信号データ１５５ａ）を、実サンプリングデータ１１３７ｂとして、サンプリングデータ格納領域１１３７に格納する。
【００７５】
共通時刻計数部１１１７は、共通時刻を計数する。後述するように、入力ユニット１３及び出力ユニット１５においても、共通時刻計数部１１１７と同様の機能を有する共通時刻計数部１３３、１５３（図６Ａ）が備わっており、制御装置１１の共通時刻計数部１１１７と、入力ユニット１３における共通時刻計数部１３３（図６Ａ）と、出力ユニットにおける共通時刻計数部１５３（図６Ａ）とは、互いに同期が取られている。これにより、制御装置１１と、入力ユニット１３と、出力ユニット１５とにおいて、同一の時刻（共通時刻）にて時刻が計数される。その結果、制御装置１１において計数される時刻と、入力ユニット１３において計数される時刻と、出力ユニット１５において計数とのずれが少なくなる。
【００７６】
送受信部１１１９は、通信インターフェース１１７を用いて、開発支援装置３とデータの送受信を行う。なお、入力ユニット１３及び出力ユニット１５が通信ネットワークＮＷにより制御装置１１と接続されている場合には、送受信部１１１９は、入力ユニット１３及び出力ユニット１５ともデータの送受信を行う。
【００７７】
本実施形態の制御装置１１が上記の構成要素を有することにより、制御装置１１は、内部において用いられている、入力信号に関連づけられている入力変数と、出力信号に関連づけられている出力変数と、ユーザプログラム１１３１において用いられている内部変数とを、第２タイミングにおいてサンプリングできる。また、実サンプリングデータ１１３７ｂを取得することにより、入力ユニット１３及び出力ユニット１５における入力信号及び出力信号のサンプリング結果を、制御装置１１内に保持できる。その結果、実サンプリングデータ１１３７ｂを、開発支援装置３に出力できる。
【００７８】
（４）開発支援装置の構成
Ｉ．全体構成
次に、開発支援装置３の構成の詳細について、図３及び図５を用いて説明する。図５は、開発支援装置の詳細構成を示す図である。
開発支援装置３は、例えば、パーソナルコンピュータなどのコンピュータである。よって、図３に示すように、開発支援装置３は、プログラムの実行などの演算処理を行うＣＰＵ３１と、記憶領域を提供する記憶部３３と、キーボードやマウスなどの入力手段により構成されている操作部３５と、制御装置１１との通信を行う通信インターフェース３７と、トレース結果などを表示する表示部３９と、を有する。
【００７９】
次に、開発支援装置３の詳細構成について、図５を用いて説明する。以下に説明する開発支援装置３の各部の機能は、図２に示す開発支援装置３のＣＰＵ３１において、記憶部３３に記憶された開発支援プログラム３３ａを実行することにより実現されている。
図５に示すように、開発支援装置３は、サンプリングデータ受信部３１１と、同一時系列データ作成部３１３と、同一時系列データ表示部３１５と、を有する。
【００８０】
サンプリングデータ受信部３１１は、通信インターフェース３７に接続された制御装置１１から、サンプリングデータ格納領域１１３７に格納された変数サンプリングデータ１１３７ａと実サンプリングデータ１１３７ｂとを受信し、開発支援装置３の記憶部３３に記憶する。
【００８１】
同一時系列データ作成部３１３は、同一時系列データを作成する。同一時系列データは、変数サンプリングデータ１１３７ａ中のサンプリング値と、実サンプリングデータ１１３７ｂ中の第１サンプリング値と、出力指示データ中の指示出力信号値（又は、実サンプリングデータ１１３７ｂのサンプリング出力信号値）とを、同一時系列に並び替えたデータである。具体的には、同一時系列データは、第１サンプリング時刻（後述）と第２サンプリング時刻と出力指示時刻（又は、出力サンプリング時刻）とが同一時系列上に配置され、第１サンプリング値（後述）と第２サンプリング値と指示出力信号値（又は、サンプリング出力信号値）とが、それぞれ、第１サンプリング時刻と第２サンプリング時刻と出力指示時刻（又は、出力サンプリング時刻）に対応する同一時系列上の時刻に関連づけられて記憶されるデータである。
【００８２】
これにより、実サンプリングデータ１１３７ｂと、変数サンプリングデータ１１３７ａと、出力指示データとが、同一時系列上にまとめられて、１つの同一時系列データが作成できる。
【００８３】
同一時系列データ表示部３１５は、同一時系列データを同一時間軸上に表示する。具体的には、同一時系列データ表示部３１５は、同一時系列データを時間−サンプリング値座標のグラフとして表示する。これにより、個別のデータ（実サンプリングデータ１１３７ｂ、変数サンプリングデータ１１３７ａ、及び出力指示データ）を整理する手順を経ることなく、上記のサンプリング結果と、指示出力信号値との関係を同一の時間軸上にて確認できる。その結果、システム開発者などに大きな負担をかけることなく、容易に制御システム１００における各装置を調整できる。
【００８４】
（５）入力ユニット及び出力ユニットの構成
次に、ＰＬＣシステム１における入力ユニット１３及び出力ユニット１５の構成について、図６Ａ及び６Ｂを用いて説明する。図６Ａは、入力ユニット及び出力ユニットの構成を示す図である。図６Ｂは、入力ユニット及びサンプリング機能を有する出力ユニットの構成を示す図である。
【００８５】
Ｉ．入力ユニットの構成
まず、入力ユニット１３の構成について説明する。入力ユニット１３は、入力信号入力部１３１と、共通時刻計数部１３３と、入力データ保存部１３５と、入力信号サンプリング部１３７と、を有する。
入力信号入力部１３１は、信号入力部５に接続されており、信号入力部５から入力信号を入力する。入力信号入力部１３１は、制御装置１１のタスク実行部１１１１においてＩ／Ｏリフレッシュ処理が実行された際に、入力した入力信号を、制御装置１１へ送信する。これにより、制御装置１１においては、Ｉ／Ｏリフレッシュ処理時において、入力した入力信号の値を入力変数へ反映できる。
【００８６】
また、入力信号入力部１３１は、指示された入力指示時刻において入力信号を入力可能となっている。これにより、タスクの実行周期（所定の周期）に束縛されることなく、入力信号を入力できる。入力信号入力部１３１は、以下の２つの方法のいずれかにより、指示された時刻において入力信号を入力できる。
【００８７】
１つめは、所定の周期よりも短い高速入力周期により決定される時刻を入力指示時刻として入力信号を入力する方法である。この方法においては、タスクの実行周期よりも高速に入力信号を入力できる。この方法にて入力信号を入力する入力ユニットを、「高速入力ユニット」と呼ぶことにする。
２つめは、予め決められた時刻を入力指示時刻とする方法である。この方法においては、指定された任意の時刻にて入力信号を入力できる。この方法にて入力信号を入力する入力ユニットを、「時刻指定入力ユニット」と呼ぶことにする。これにより、タスクの実行周期（所定の周期）に束縛されることなく、タスクの実行周期よりも高速に入力信号を入力できる。
【００８８】
共通時刻計数部１３３は、共通時刻を計数する。共通時刻計数部１３３は、制御装置１１の共通時刻計数部１１１７と出力ユニットの共通時刻計数部１５３（後述）と互いに同期を取られており、制御装置１１と、入力ユニット１３と、出力ユニット１５との間で同じ時刻（共通時刻）を共有できる。
【００８９】
入力データ保存部１３５は、入力信号データ１３５ａを保存する。入力データ保存部１３５に保存された入力信号データ１３５ａは、制御装置１１のＩ／Ｏリフレッシュ処理の実行時に制御装置１１へと送信される。
【００９０】
入力信号サンプリング部１３７は、入力信号取得タイミング（第１タイミングの一例）において、入力信号をサンプリングして入力信号サンプリング値（第１サンプリング値の一例）とする。また、入力信号サンプリング部１３７は、入力信号サンプリング値をサンプリングした時刻を入力信号サンプリング時刻（第１サンプリング時刻の一例）とする。ここで、上記の入力信号サンプリング時刻は、共通時刻計数部１３３において計数されている共通時刻にて取得する。
【００９１】
さらに、入力信号サンプリング部１３７は、上記の入力信号サンプリング値と入力信号サンプリング時刻とを、入力データ保存部１３５に送信する。送信された入力信号サンプリング値と入力信号サンプリング時刻とは、関連づけられて、入力信号データ１３５ａに保存される。
【００９２】
なお、入力信号サンプリング部１３７は、以下の２つの方法のいずれかにより入力信号をサンプリングする。
１つめは、タスクが実行される所定の周期より短い周期（高速サンプリング周期）毎に入力信号サンプリング値をサンプリングし、高速サンプリング周期により決定される時刻を入力信号サンプリング時刻としてサンプリングする方法（高速サンプリング方法）である。このように、所定の周期よりも短い周期にて入力信号をサンプリングする入力ユニットを、「高速サンプリング入力ユニット」と呼ぶことにする。
２つめは、入力信号取得タイミングを入力信号が所定の変化をしたタイミングとし、所定の変化をした後の入力信号の信号値を入力信号サンプリング値とし、入力信号が所定の変化をしたタイミングである入力信号取得タイミングにより決定される時刻を入力信号サンプリング時刻としてサンプリングする方法（変化時刻取得サンプリング方法）である。このように、入力信号が所定の変化をした際の時刻と所定の変化をした後の入力信号の値をサンプリングする入力ユニットを、「変化時刻取得入力ユニット」と呼ぶことにする。
【００９３】
上記の高速サンプリング入力ユニット１３により入力信号をサンプリングすることにより、タスクの実行周期である所定の周期よりも短い周期にて、より高精度に入力信号をサンプリングできる。
一方、変化時刻取得入力ユニット１３により入力信号をサンプリングすることにより、タスクの実行周期（所定の周期）に束縛されず、入力信号が所定の変化をした時刻を、当該変化をしたときの入力信号値とともに正確にサンプリングできる。
【００９４】
ＩＩ．出力ユニットの構成
次に、出力ユニット１５の構成について説明する。出力ユニット１５は、信号出力部１５１と、共通時刻計数部１５３と、を有する。
【００９５】
信号出力部１５１は、制御装置１１のタスク実行部１１１１においてＩ／Ｏリフレッシュ処理が実行された際に、上記の出力変数に基づいて、制御対象機器７に出力信号を出力する。本実施形態においては、信号出力部１５１は、Ｉ／Ｏリフレッシュ処理の実行時に制御装置１１から送信される、上記の出力信号に基づき生成された出力指示データに基づいて、出力信号を出力する。本実施形態においては、以下の２つの方法のいずれかにより出力信号を出力する。
【００９６】
１つめは、出力指示データにおいて、所定の周期より短い高速出力周期により決定される時刻を出力指示時刻とし、高速出力周期毎に出力すべき信号値を指示出力信号値として出力信号を出力する方法である。この方法により出力信号を出力する出力ユニットを、「高速出力ユニット」と呼ぶことにする。
２つめは、予め決められた時刻を出力指示時刻とし、予め決められた時刻に出力すべき信号値を指示出力信号値として出力信号を出力する方法である。この方法により出力信号を出力する出力ユニットを、「時刻指定出力ユニット」と呼ぶことにする。
【００９７】
高速出力ユニット１５により出力信号を出力することにより、タスクの実行周期（所定の周期）に束縛されず、所定の周期よりも短い周期にてより細かく出力信号を制御して出力できる。
一方、時刻指定出力ユニット１５により出力信号を出力することにより、タスクの実行周期（所定の周期）に束縛されず、予め決められた任意の時刻にて、任意の信号値の出力信号を出力できる。
【００９８】
共通時刻計数部１５３は、入力ユニット１３の共通時刻計数部１３３に対応する構成であるため、説明を省略する。
【００９９】
なお、本実施形態の出力ユニット１５はサンプリング機能を有さないが、これに限られない。変形例として、図６Ｂに示すように、出力ユニット１５はサンプリング機能を有してもよい。
【０１００】
この場合、出力ユニット１５は、出力データ保存部１５５と、出力信号サンプリング部１５７をさらに有する。出力データ保存部１５５は、出力信号データ１５５ａを保存する。出力データ保存部１５５に保存された出力信号データ１５５ａは、Ｉ／Ｏリフレッシュ処理の実行時に、制御装置１１へと送信される。
【０１０１】
出力信号サンプリング部１５７は、所定のタイミングにおいて、出力信号をサンプリングしてサンプリング出力信号値とする。また、出力信号サンプリング部１５７は、所定のタイミングによって決定される、サンプリング出力信号値をサンプリングした時刻を出力サンプリング時刻とする。
【０１０２】
さらに、出力信号サンプリング部１５７は、上記のサンプリング出力信号値と出力サンプリング時刻とを、出力データ保存部１５５に送信する。送信されたサンプリング出力信号値と出力サンプリング時刻とは、関連づけられて、出力信号データ１５５ａに保存される。
【０１０３】
なお、出力ユニット１５においても入力ユニット１３と同様、上記の高速サンプリング出力ユニット１５と、変化時刻取得出力ユニット１５とが存在する。
【０１０４】
入力ユニット１３及び出力ユニット１５が上記の構成を有することにより、入力ユニット１３及び出力ユニットにおいて、入力信号及び出力信号をサンプリングするとともに、当該信号をサンプリングした時刻をサンプリングできる。
【０１０５】
（６）制御システムにおけるデータサンプリング動作
次に、本実施形態に係る制御システム１００におけるデータサンプリング動作について、図７を用いて説明する。図７は、制御システムにおけるデータサンプリング動作を示すフローチャートである。
制御システム１００においてデータサンプリングが開始されると、まず、入力ユニット１３において、入力信号サンプリング部１３７が入力信号をサンプリングする（ステップＳ１）。
【０１０６】
入力ユニット１３においては、上記の高速サンプリング方法、及び／又は、変化時刻取得サンプリング方法により、入力信号がサンプリングされている。また、入力ユニット１３が複数ある場合などは、それぞれの入力ユニット１３において、入力信号をサンプリングする周期（タイミング）を異ならせてもよい。
【０１０７】
例えば、変化が遅いか反応が遅い信号入力部５の入力信号をサンプリング場合にはサンプリング周期を大きくする一方、変化が速い又は反応が速い信号入力部５の入力信号をサンプリング場合にはサンプリング周期を小さくできる。
これにより、全ての入力信号に対して周期の短いサンプリング周期にて入力信号を取得することを避けられる。その結果、入力ユニット１３における動作負荷が無駄に上昇することを低減できる。
【０１０８】
一方、制御装置１１においては、サンプリング部１１１３が、変数格納領域１１３５に格納された、入力変数の値、出力変数の値、及び／又は出力変数の値をサンプリングする（ステップＳ２）。ここで説明する例においては、サンプリング部１１１３は、タスクが実行される所定の周期毎に上記の変数をサンプリングしている。また、制御装置１１においては、出力信号のサンプリング値のサンプリングデータとしてユーザプログラム１１３１により作成された出力指示データを用いる。
なお、図６Ｂの変形例に示したように、出力ユニット１５がサンプリング機能を有する場合には、サンプリング機能にて得られたサンプリングデータ（出力信号データ１５５ａ）を出力信号のサンプリング値のサンプリングデータとしてもよい。
【０１０９】
また、サンプリング部１１１３は、Ｉ／Ｏリフレッシュ処理の実行時に送信される入力信号データ１３５ａ（出力信号データ１５５ａ）を、実サンプリングデータ１１３７ｂとして、サンプリングデータ格納領域１１３７に格納する。この結果、入力信号（出力信号）のサンプリングデータが取得される。
【０１１０】
次に、制御装置１１がサンプリングを終了したかどうかを確認する（ステップＳ３）。例えば、サンプリングを開始してから、予め決められたサンプリング時間だけ経過したかどうかにより、サンプリングが終了したかどうかを判断できる。
【０１１１】
制御装置１１がサンプリングを終了していないと判断した場合（ステップＳ３において「Ｎｏ」の場合）、ステップＳ１に戻り、データのサンプリングを継続する。
【０１１２】
一方、制御装置１１がサンプリングを終了したと判断した場合（ステップＳ３において「Ｙｅｓ」の場合）、ステップＳ４（同一時系列データ作成）に進む。
【０１１３】
変数サンプリングデータ１１３７ａ及び実サンプリングデータ１１３７ｂを生成後、同一時系列データを作成する（ステップＳ４）。具体的には、まず、サンプリングデータ格納領域１１３７に格納された変数サンプリングデータ１１３７ａと実サンプリングデータ１１３７ｂと出力指示データとが、送受信部１１１９を介して、開発支援装置３へと送信される。
【０１１４】
開発支援装置３において、変数サンプリングデータ１１３７ａと実サンプリングデータ１１３７ｂ（と必要に応じて出力指示データ）とが受信されると、同一時系列データ作成部３１３が、同一時系列データを作成する。具体的には、まず、同一時系列データ作成部３１３が、実サンプリングデータ１１３７ｂにおける入力信号サンプリング時刻（第１サンプリング時刻）と第２サンプリング時刻と出力指示時刻（又は、実サンプリングデータ１１３７ｂにおける出力サンプリング時刻）とを同一時系列上に配置する。すなわち、入力信号サンプリング時刻と、第２サンプリング時刻と、出力指示時刻（又は、出力サンプリング時刻）とを、時刻順に並び替えて、同一時系列データにおける時刻データとする。
【０１１５】
次に、同一時系列データ作成部３１３が、時刻順に並べ替えられた入力信号サンプリング時刻、第２サンプリング時刻、及び出力指示時刻（又は、出力サンプリング時刻）のそれぞれに、実サンプリングデータ１１３７ｂ、変数サンプリングデータ１１３７ａ、及び出力指示データの対応するサンプリング値及び指示出力信号値を関連づけて記憶する。これにより、実サンプリングデータ１１３７ｂ、変数サンプリングデータ１１３７ａ、及び出力指示データを同一時系列データに統一できる。
【０１１６】
上記のステップＳ１〜Ｓ４を実行することにより生成された同一時系列データは、必要に応じて、同一時系列データ表示部３１５において表示できる。
例えば、図８に示す例においては、実信号が時刻ｔ０のときに０から１へと変化している場合に、実サンプリングデータにおいては、時刻ｔ０のときに信号値が０から１へと変化している。一方、上記の実信号に関連づけられている変数（入力変数）は、時刻ｔ０の後の次のタスクの実行周期が開始されるときに、値が０から１へと変化している。
図８は、同一時系列データを同一時間軸上に表示したときの表示例を示す図である。
【０１１７】
このように、同一時系列データを同一時間軸上に表示することにより、個別のデータを整理する手順を経ることなく、上記のサンプリング結果と、指示出力信号値との関係を同一の時間軸上にて確認できる。その結果、システム開発者などに大きな負担をかけることなく、容易に装置を調整できる。
【０１１８】
２．第２実施形態
第１実施形態に係る制御システム１００においては、入力ユニット１３において入力信号のサンプリング時刻とサンプリング値とを取得することにより、入力ユニット１３における実際の入力信号の時間的変化を確認していた。
しかし、これに限られず、第２実施形態に係る制御システム２００においては、実際の入力信号及び出力信号を取得することなく、実際の入力信号及び出力信号を予測している。以下に、第２実施形態に係る制御システム２００について説明する。なお、第２実施形態に係る制御システム２００において、開発支援装置３以外の構成については、第１実施形態に係る制御システム１００と同じであるため、ここでは説明を省略し、開発支援装置３の構成についてのみ、図９を用いて説明する。図９は、第２実施形態に係る制御システムの開発支援装置の詳細構成を示す図である。
【０１１９】
なお、第１実施形態に係る入力ユニット１３及び出力ユニットの構成のうち、入力信号及び出力信号をサンプリングするための構成（入力信号サンプリング部１３７、出力信号サンプリング部１５７、入力データ保存部１３５、出力データ保存部１５５）は有していてもよいし有していなくてもよい。
【０１２０】
図９に示すように、第２実施形態に係る開発支援装置３は、サンプリングデータ受信部３１１’と、入出力変化時刻予測部３１３’と、予測入出力信号生成部３１５’と、同一時系列データ表示部３１７’と、入出力時刻調整部３１９’を有する。
サンプリングデータ受信部３１１’は、通信インターフェース３７に接続された制御装置１１から、サンプリングデータ格納領域１１３７に格納された変数サンプリングデータ１１３７ａを受信し、開発支援装置３の記憶部３３に記憶する。
【０１２１】
入出力変化時刻予測部３１３’は、入力変化時刻及び／又は出力変化時刻を、それぞれ、入力ユニット及び／又は出力ユニットと制御装置との接続関係、通信速度、及び第２サンプリング時刻に基づいて予測する。入力変化時刻は、入力信号の信号値が第２サンプリング時刻における入力変数の値に対応する値となる時刻である。出力変化時刻は、出力信号の信号値が第２サンプリング時刻における出力変数の値に対応する値となる時刻である。
【０１２２】
入出力変化時刻予測部３１３’においては、上記の接続関係及び通信速度により、制御装置１１と入力ユニット１３及び出力ユニット１５との間の通信遅れが算出される。また、入出力変化時刻予測部３１３’は、入力ユニット１３及び／出力ユニット１５における所定の動作を行う動作時間も加味して入力変化時刻及び出力変化時刻を算出する。
例えば、入力ユニット１３において所定のサンプリング時間だけ入力信号をサンプリングする際に、入力信号データ１３５ａの送信を要求する信号を受信した時点から、入力ユニット１３においてサンプリング時間と入力信号データ１３５ａを作成するために必要な動作時間より時間的に前の時刻において、入力信号のサンプリングが開始されると予測される。また、入力ユニット１３が入力信号データ１３５ａの送信要求信号をある決まった時刻（送信要求信号受信時刻）に受信するためには、制御装置１１から送信要求信号を送信しなくてはならない時刻（第２サンプリング時刻に対応）は、送信要求信号受信時刻から通信遅れ時間だけ前の時刻となる。
このようにして、制御装置１１と入力ユニット１３及び／又は出力ユニット１５との間の通信遅れ（制御装置１１と入力ユニット１３及び／又は出力ユニット１５との接続関係と、通信速度により決定される）と、入力ユニット１３及び／又は出力ユニット１５における動作時間とを考慮して、入力変化時刻及び出力変化時刻を予測できる。
【０１２３】
予測入出力信号生成部３１５’は、予測入出力信号データを生成する。予測入力信号データは、入力変化時刻に、第２サンプリング時刻における入力変数の値を関連づけて生成されたデータである。具体的には、予測入出力信号生成部３１５’は、例えば、図１０に示すように、変数サンプリングデータ１１３７ａの時刻を上記の通信遅れ及び動作時間分時間的に前へシフトさせて第２サンプリング時刻を入力変化時刻に一致させることにより得られる。
一方、予測出力信号は、出力変化時刻に第２サンプリング時刻における出力変数の値を関連づけて生成されたデータである。具体的には、予測入出力信号生成部３１５’は、例えば、変数サンプリングデータ１１３７ａの時刻を上記の通信遅れ及び動作時間分時間的に後ろへシフトさせて第２サンプリング時刻を入出力変化時刻に一致させることにより得られる。図１０は、予測入出力信号の生成を模式的に示す図である。
【０１２４】
入出力変化時刻予測部３１３’において予測した入力変化時刻及び／又は出力変化時刻を用いて、予測入出力信号生成部３１５’において予測入力信号データ及び／又は予測出力信号データを生成することにより、入力信号及び出力信号をサンプリングすることなく、制御装置１１において用いられている変数に基づいて、入力ユニット１３に入力される実際の入力信号及び／又は出力ユニットから出力される実際の出力信号を予測できる。
【０１２５】
同一時系列データ表示部３１７’は、変数サンプリングデータ１１３７ａ、予測入力信号データ、及び／又は予測出力信号データを同一時間軸上に表示する。これにより、個別のデータを整理する手順を経ることなく、変数のサンプリング結果と、予測された入力信号及び／又は出力信号との関係を同一の時間軸上にて確認できる。その結果、システム開発者などに大きな負担をかけることなく、容易に装置を調整できる。
【０１２６】
例えば、図１１に示すように、信号入力部５に接続された入力ユニット１３に入力変数ａが関連づけられ、モータ（制御対象機器７）に接続された出力ユニット１５に出力変数ｂが関連づけられており、モータの回転軸に接続されたエンコーダからのエンコーダ入力信号に基づいて、回転数をサンプリングする場合を考える。図１１は、予測入力信号及び予測入力信号を同一時間軸上に表示した例を示す図である。
入力変数ａ及び出力変数ｂのサンプリングデータと、入力信号のサンプリングデータと、予測入力信号データ及び／又は予測出力信号データとを同一時間軸上に表示することにより、例えば、出力ユニット１５からの出力信号に対する制御対象機器の応答時間（制御遅れ）、及び、信号入力部５からの入力信号に対する、変数の値の変化、出力信号タイミング、及び、入力信号に対する制御対象機器の応答時間を視覚的に確認できる。
また、後述するように、入力変化時刻及び／又は出力変化時刻を調整する際にも、上記のデータを同一時間軸上に表示することにより、調整をしやすくなる。
【０１２７】
入出力時刻調整部３１９’は、入力変化時刻及び／又は出力変化時刻を調整する。具体的には、図１２に示すように、入出力時刻調整部３１９’は、予測入力信号における信号変化タイミングを、予測入力信号の信号変化タイミングよりも前の時刻側にずらず、又は、予測出力信号における信号変化タイミングを、予測出力信号の信号変化タイミングよりも後の時刻側にずらす。ここれにより、入力ユニット１３及び出力ユニット１５単位にて、それぞれ、入力信号が入力される時刻（入力変化時刻）及び出力信号を出力する時刻（出力変化時刻）を調整できる。その結果、制御システムにおいて、より精度よく、かつ、より細かく装置を調整できる。図１２は、入出力変化時刻の調整方法を模式的に示す図である。
【０１２８】
なお、上記の入出力時刻調整部３１９’における信号変化タイミングの調整は、予測入力信号データ及び／又は予測出力信号データと、変数サンプリングデータ１１３７ａとを、同一時系列データ表示部３１７’において同一時間軸上に表示して行ってもよい。また、予測入力信号データ及び／又は予測出力信号データと、変数サンプリングデータ１１３７ａとを、同一時系列データ表示部３１７’において表示する際に、入出力変化時刻の調整可能範囲を表示しておいてもよい（図１２）。これにより、どの程度の範囲にて入出力変化時刻が調整できるかを視覚的に知ることができる。
【０１２９】
上記の入出力時刻調整部３１９’において調整した入力変化時刻及び／又は出力変化時刻（調整後入力変化時刻／調整後出力変化時刻）を、実際の制御システム２００の動作に反映させるためには、入力ユニット１３及び出力ユニット１５として、時刻指定入力ユニット１３及び時刻指定出力ユニット１５を用いる。
【０１３０】
時刻指定出力ユニット１５を用いて、所定の出力信号を出力変化時刻において出力する場合について、図１３を用いて説明すると、例えば、タスク開始時刻Ｔから調整後時間差ｄだけ後の時刻を出力指示時刻とし、上記の所定の出力信号を指示出力信号値として出力指示データを作成し、時刻指定出力ユニット１５に送信する。
この出力指示データ受信した時刻指定出力ユニット１５は、タスク開始時刻Ｔから時間差ｄだけ後ろの時刻（調整後入出力変化時刻ｔＡ）において、出力信号を出力する。図１３は、調整後出力変化時刻を、実際の制御システムの動作に反映させるための方法を示す図である。
【０１３１】
このように、入出力時刻調整部３１９’が入力変化時刻及び／又は出力変化時刻を調整可能となり、時刻指定入力ユニット１３及び／又は時刻指定出力ユニット１５により調整後の入力変化時刻及び／又は調整後の出力変化時刻を制御システム２００の動作に反映させることにより、入力ユニット１３及び出力ユニット１５単位にて、それぞれ、入力信号が入力される時刻（入力変化時刻）及び出力信号を出力する時刻（出力変化時刻）を調整できる。その結果、制御システムにおいて、より精度よく、かつ、より細かく装置を調整できる。すなわち、各入力ユニット１３及び出力ユニット１５の動作などの速度に基づいて、各入力ユニット１３及び出力ユニット１５毎に個別に入力変化時刻及び出力変化時刻を調整できる。
例えば、入力ユニット１３における入力信号取得タイミング、及び、出力ユニット１５における出力信号出力タイミングなどを調整する場合に、制御システム２００における、最終的な処理が終了するまでに最も時間がかかる入力ユニット１３及び／又は出力ユニット１５（これは、予測入力信号データ、予測出力信号データ、変数サンプリングデータ１１３７ａを同一時間軸上に表示することにより視覚的に確認できる）に合わせて、上記のタイミングを容易に調整できる。
【０１３２】
３．実施形態の効果
第１実施形態及び第２実施形態は、下記の構成及び機能を有している。
第１実施形態の制御システム１００（制御システムの一例）は、ＰＬＣシステム１（ＰＬＣシステムの一例）と開発支援装置３（開発支援装置の一例）とを備える。
ＰＬＣシステム１は、入力ユニット１３（入力ユニットの一例）と、出力ユニット１５（出力ユニットの一例）と、制御装置１１（制御装置の一例）と、を有する。入力ユニット１３は、第１サンプリング値と第１サンプリング時刻とを関連づけて記憶する実サンプリングデータ１１３７ｂ（実サンプリングデータの一例）を取得する。第１サンプリング値は、入力信号を第１タイミングにおいてサンプリングした値である。第１サンプリング時刻は、入力信号をサンプリングした時刻である。
出力ユニット１５は、出力指示時刻と指示出力信号値とを含む出力指示データに基づいて、出力信号を出力する。指示出力信号値は、出力指示時刻において出力すべき出力信号値である。
【０１３３】
制御装置１１は、タスク実行部１１１１（タスク実行部の一例）と、サンプリング部１１１３（サンプリング部の一例）と、を有する。
タスク実行部１１１１は、Ｉ／Ｏリフレッシュ処理とユーザプログラム実行処理とを含むタスクを、所定の周期にて繰り返し実行する。Ｉ／Ｏリフレッシュ処理は、入力信号に関連づけられた入力変数の値を入力信号に基づいて更新し、出力信号に関連づけられた出力変数に基づいて出力信号を更新する処理のことである。ユーザプログラム実行処理は、入力変数に基づいてユーザプログラム１１３１（ユーザプログラムの一例）を実行することにより出力変数の値を算出するし、出力変数の値に基づいて出力指示時刻と指示出力信号値とを算出し、出力指示データを出力ユニット１５に送信する処理である。
【０１３４】
サンプリング部１１１３は、第２サンプリング値と第２サンプリング時刻とを関連づけて記憶する変数サンプリングデータ１１３７ａ（変数サンプリングデータの一例）を取得する。第２サンプリング値は、入力変数、出力変数、及び／又は内部変数を第２タイミングにおいてサンプリングした値である。内部変数は、ユーザプログラム１１３１において用いられた変数である。第２サンプリング時刻は、入力変数、出力変数、及び／又は内部変数をサンプリングした時刻である。
【０１３５】
開発支援装置３は、同一時系列データ作成部３１３（同一時系列データ作成部の一例）と同一時系列データ表示部３１５（同一時系列データ表示部の一例）と、を有する。
同一時系列データ作成部３１３は、同一時系列データを作成する。同一時系列データは、第１サンプリング時刻と第２サンプリング時刻と出力指示時刻とが同一時系列上に配置され、第１サンプリング値と第２サンプリング値と指示出力信号値とが、それぞれ、第１サンプリング時刻と第２サンプリング時刻と出力指示時刻に対応する同一時系列上の時刻に関連づけられて記憶されるデータである。
同一時系列データ表示部３１５は、同一時系列データを、同一時間軸上に表示する。
【０１３６】
制御システム１００においては、入力ユニット１３が、入力信号を第１タイミングにおいてサンプリングして第１サンプリング値とするとともに、入力信号をサンプリングした時刻を第１サンプリング時刻としてサンプリングし、第１サンプリング値と第１サンプリング時刻とを関連づけて記憶して実サンプリングデータを取得する。
【０１３７】
また、その一方、制御装置１１のサンプリング部１１１３が、入力変数、出力変数、及び／又は内部変数を第２タイミングにおいてサンプリングした値を第２サンプリング値とするとともに、上記の変数をサンプリングした時刻を第２サンプリング時刻としてサンプリングし、第２サンプリング時刻と第２サンプリング時刻とを関連づけて記憶して変数サンプリングデータ１１３７ａを取得する。
【０１３８】
さらに、制御装置１１のタスク実行部１１１１がユーザプログラム実行処理を実行する際に、ユーザプログラムが入力変数に基づいて出力変数の値を算出し、当該出力変数の値に基づいて、出力指示時刻と、出力指示時刻において出力すべき指示出力信号値とを算出し、出力指示時刻及び指示出力信号値とを含んだ出力指示データを出力ユニット１５に送信する。
【０１３９】
開発支援装置３においては、同一時系列データ作成部３１３が、第１サンプリング時刻と第２サンプリング時刻と出力指示時刻とを同一時系列上に配置し、第１サンプリング値と第２サンプリング値と指示出力信号値とを、それぞれ、第１サンプリング時刻と第２サンプリング時刻と出力指示時刻に対応する同一時系列上の時刻に関連づけて記憶して同一時系列データを作成する。そして、同一時系列データ表示部３１５が、同一時系列データを表示する。
【０１４０】
このように、上記の制御システムにおいては、実サンプリングデータ１１３７ｂと、変数サンプリングデータ１１３７ａと、出力指示データとが、同一時系列上にまとめられて、１つの同一時系列データが作成される。そして、開発支援装置３において、同一時系列データが同一時間軸上に表示される。これにより、個別のデータを整理する手順を経ることなく、上記のサンプリング結果と、指示出力信号値との関係を同一の時間軸上にて確認できる。その結果、システム開発者などに大きな負担をかけることなく、容易に装置を調整できる。
【０１４１】
入力ユニット１３は、高速サンプリング入力ユニット１３（高速サンプリング入力ユニットの一例）を含んでいてもよい。高速サンプリング入力ユニット１３は、タスクが実行される所定の周期より短い高速サンプリング周期毎に第１サンプリング値をサンプリングし、高速サンプリング周期により決定される時刻を第１サンプリング時刻とする入力ユニットである。これにより、タスクの実行周期である所定の周期よりも短い周期にて、より高精度に入力信号をサンプリングできる。
【０１４２】
入力ユニット１３は、変化時刻取得入力ユニット１３（変化時刻取得入力ユニットの一例）を含んでいてもよい。変化時刻取得入力ユニット１３は、入力信号が所定の変化をしたタイミングを第１タイミングとし、所定の変化をした後の入力信号の信号値を第１サンプリング値とし、第１タイミングにより決定される時刻を第１サンプリング時刻とする入力ユニットである。これにより、タスクの実行周期（所定の周期）に束縛されず、入力信号が所定の変化をした時刻を、当該変化をしたときの入力信号値とともに正確にサンプリングできる。
【０１４３】
入力ユニット１３は指示された入力指示時刻において入力信号を入力してもよい。これにより、タスクの実行周期（所定の周期）に束縛されることなく、入力信号を入力できる。
【０１４４】
入力ユニット１３は、所定の周期よりも短い高速入力周期により決定される時刻を入力指示時刻として入力信号を入力してもよい。これにより、タスクの実行周期（所定の周期）に束縛されることなく、タスクの実行周期よりも高速に入力信号を入力できる。
【０１４５】
出力ユニット１５は、高速出力ユニット１５（高速出力ユニットの一例）を含んでいてもよい。高速出力ユニット１５は、タスクが実行される所定の周期より短い高速出力周期により決定される時刻を出力指示時刻とし、高速出力周期毎に出力すべき信号値を指示出力信号値として出力信号を出力する出力ユニットのことである。これにより、タスクの実行周期（所定の周期）に束縛されず、所定の周期よりも短い周期にてより細かく出力信号を制御して出力できる。
【０１４６】
出力ユニット１５は、時刻指定出力ユニット１５（時間し低出力ユニットの一例）を含んでいてもよい。時刻指定出力ユニット１５は、予め決められた時刻を出力指示時刻とし、予め決められた時刻に出力すべき信号値を指示出力信号値として出力信号を出力する出力ユニットである。これにより、タスクの実行周期（所定の周期）に束縛されず、予め決められた任意の時刻にて、任意の信号値の出力信号を出力できる。
【０１４７】
第１実施形態の制御システム１００は、共通時刻計数部１１１７、１３３、１５３（共通時刻計数部の一例）をさらに備えていてもよい。共通時刻計数部１１１７、１３３、１５３は、第１サンプリング時刻と、第２サンプリング時刻と、出力指示時刻と、を共通時刻にて計数する。これにより、上記の制御システムにおいて、入力ユニット１３において計数される時刻と、出力ユニット１５において計数される時刻と、制御装置１１において計数される時刻とのずれが少なくなる。
【０１４８】
出力ユニット１５は、所定のタイミングにおいて出力信号をサンプリングしたサンプリング出力信号値と、所定のタイミングによって決定される出力サンプリング時刻とを関連づけて実サンプリングデータ１１３７ｂに記憶してもよい。これにより、実際の出力信号をサンプリングできる。
【０１４９】
同一時系列データ作成部３１３は、さらに、同一時系列上に出力サンプリング時刻を配置し、サンプリング出力信号値を出力サンプリング時刻に対応する同一時系列上の時刻に関連づけて記憶して同一時系列データを作成してもよい。これにより、実際の出力信号のサンプリング結果を同一時間軸上に表示できる。
【０１５０】
第２実施形態の制御システム２００（制御システムの一例）は、ＰＬＣシステム１（ＰＬＣシステムの一例）と開発支援装置３（開発支援装置の一例）とを備える。
ＰＬＣシステム１は、入力ユニット１３（入力ユニットの一例）と、出力ユニット１５（出力ユニットの一例）と、制御装置１１（制御装置の一例）とを有する。入力ユニット１３は入力信号を入力する。出力ユニット１５は、出力信号を出力する。
【０１５１】
制御装置１１は、タスク実行部１１１１（タスク実行部の一例）とサンプリング部１１１３（サンプリング部の一例）とを有する。
タスク実行部１１１１は、Ｉ／Ｏリフレッシュ処理とユーザプログラム実行処理とを含むタスクを、所定の周期にて繰り返し実行する。Ｉ／Ｏリフレッシュ処理は、入力信号に関連づけられた入力変数の値を入力信号に基づいて更新し、出力信号に関連づけられた出力変数の値に基づいて出力信号を更新する処理のことである。ユーザプログラム実行処理は、入力変数に基づいてユーザプログラム１１３１（ユーザプログラムの一例）を実行することにより出力変数の値を算出する処理である。
【０１５２】
サンプリング部１１１３は、第２サンプリング値と第２サンプリング時刻とを関連づけて記憶する変数サンプリングデータ１１３７ａ（変数サンプリングデータの一例）を取得する。第２サンプリング値は、入力変数、出力変数、及び／又は内部変数を第２タイミングにおいてサンプリングした値である。内部変数は、ユーザプログラムにおいて用いられた変数である。第２サンプリング時刻は、入力変数、出力変数、及び／又は内部変数をサンプリングした時刻である。
【０１５３】
開発支援装置３は、入出力変化時刻予測部３１３’（入出力変化時刻湯側部の一例）と、予測入出力信号生成部３１５’（予測入出力信号生成部の一例）と、同一時系列データ表示部３１７’（同一時系列データ表示部の一例）と、を有する。
入出力変化時刻予測部３１３’は、入力変化時刻及び／又は出力変化時刻を、入力ユニット１３及び／又は出力ユニット１５と制御装置１１との接続関係、通信速度、入力ユニット１３及び／又は出力ユニット１５における所定の動作を行う動作速度、及び第２サンプリング時刻に基づいて予測する。入力変化時刻は、入力信号の信号値が第２サンプリング時刻における入力変数の値に対応する値となる時刻である。出力変化時刻は、出力信号の信号値が第２サンプリング時刻における出力変数の値に対応する値となる時刻である。
【０１５４】
予測入出力信号生成部３１５’は、予測入力信号データ及び／又は予測出力信号データを生成する。予測入力信号データは、入力変化時刻に第２サンプリング時刻における入力変数の値を関連づけて生成されたデータである。予測出力信号データは、出力変化時刻に第２サンプリング時刻における出力変数の値を関連づけて生成されたデータである。
同一時系列データ表示部３１７’は、変数サンプリングデータ、予測入力信号データ、及び／又は予測出力信号データを同一時間軸上に表示する。
【０１５５】
上記の制御システムにおいては、制御装置１１において、サンプリング部１１１３が、入力変数、出力変数、及び／又は内部変数を第２タイミングにおいてサンプリングして第２サンプリングとし、入力変数、出力変数、及び／又は内部変数をサンプリングした時刻を第２サンプリング時刻としてサンプリングし、変数サンプリングデータ１１３７ａを取得する。
【０１５６】
一方、開発支援装置３において、入出力変化時刻予測部３１３’が、入力信号の信号値が第２サンプリング時刻における入力変数の値に対応する値となる時刻である入力変化時刻、及び／又は、出力信号の信号値が第２サンプリング時刻における出力変数の値に対応する値となる時刻である出力変化時刻を、入力ユニット及び／又は出力ユニットと制御装置との接続関係、通信速度、及び第２サンプリング時刻に基づいて予測する。
【０１５７】
また、予測入出力信号生成部３１５’が、入力変化時刻に第２サンプリング時刻における入力変数の値を関連づけて予測入力信号データを作成し、出力変化時刻に第２サンプリング時刻における出力変数の値を関連づけて予測出力信号データを作成する。
さらに、同一時系列データ表示部３１７’が、変数サンプリングデータ１１３７ａ、予測入力信号データ、及び／又は予測出力信号データを同一時間軸上に表示する。
【０１５８】
これにより、入力信号及び／又は出力信号をサンプリングすることなく、制御装置１１において用いられている変数に基づいて、入力ユニット１３に入力される入力信号の取込／ラッチのタイミング及び／又は出力ユニット１５から出力される実際の出力信号を予測でき、個別のデータを整理する手順を経ることなく、変数のサンプリング結果と、予測された入力信号及び／又は出力信号との関係を同一の時間軸上にて確認できる。その結果、システム開発者などに大きな負担をかけることなく、容易に装置を調整できる。
【０１５９】
開発支援装置３は、入出力時刻調整部３１９’（入出力時刻調整部の一例）をさらに有していてもよい。入出力時刻調整部３１９’は、入力変化時刻及び／又は出力変化時刻を調整する。これにより、入力ユニット１３及び出力ユニット１５単位にて、それぞれ、入力信号が入力される時刻（入力変化時刻）及び出力信号を出力する時刻（出力変化時刻）を調整できる。その結果、制御システム２００において、より精度よく、かつ、より細かく装置を調整できる。
【０１６０】
出力ユニット１５は、出力指示時刻と出力指示時刻において出力すべき指示出力信号値とを含む出力指示データに基づいて出力信号を出力してもよい。これにより、タスクの実行周期（所定の周期）に束縛されることなく、出力信号を出力できる。
【０１６１】
出力指示時刻を出力変化時刻とし、指示出力信号を第２サンプリング時刻における出力変数の値としてもよい。これにより、入出力時刻調整部３１９’において調整した出力変化時刻を出力ユニットにおいて反映できる。
【０１６２】
入力指示時刻は入力変化時刻であってもよい。これにより、入出力時刻調整部３１９’において調整された入力変化時刻を入力ユニットにおいて反映できる。
【０１６３】
４．他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
【産業上の利用可能性】
【０１６４】
入出力信号及び内部変数をサンプリング可能なＰＬＣシステム及び制御システムに広く適用できる。
【符号の説明】
【０１６５】
１００、２００       制御システム
１     ＰＬＣシステム
１１   制御装置
１１１ ＣＰＵ
１１１１      タスク実行部
１１１３      サンプリング部
１１１７      共通時刻計数部
１１１９      送受信部
１１３ ＲＡＭ
１１３１      ユーザプログラム
１１３５      変数格納領域
１１３７      サンプリングデータ格納領域
１１３７ａ    変数サンプリングデータ
１１３７ｂ    実サンプリングデータ
１１５ ＲＯＭ
１１５ａ      システムプログラム
１１７ 通信インターフェース
１３   入力ユニット
１３１ 入力信号入力部
１３３ 共通時刻計数部
１３５ 入力データ保存部
１３５ａ      入力信号データ
１３７ 入力信号サンプリング部
１５   出力ユニット
１５１ 信号出力部
１５３ 共通時刻計数部
１５５ 出力データ保存部
１５５ａ      出力信号データ
１５７ 出力信号サンプリング部
１７   電源ユニット
３     開発支援装置
３１   ＣＰＵ
３１１        サンプリングデータ受信部
３１１’      サンプリングデータ受信部
３１３        同一時系列データ作成部
３１３’      入出力変化時刻予測部
３１５        同一時系列データ表示部
３１５’      予測入出力信号生成部
３１７’      同一時系列データ表示部
３１９’      入出力時刻調整部
３３   記憶部
３３ａ 開発支援プログラム
３５   操作部
３７   通信インターフェース
３９   表示部
５     信号入力部
７     制御対象機器
ａ     入力変数
ｂ     出力変数
Ｂ     Ｉ／Ｏバス
ＮＷ   通信ネットワーク
Ｔ     タスク開始時刻
ｄ     調整後時間差
ｔＡ   調整後入出力変化時刻
【図１】
2015136971.tif 000003
【図２Ａ】
2015136971.tif 000004
【図２Ｂ】
2015136971.tif 000005
【図３】
2015136971.tif 000006
【図４】
2015136971.tif 000007
【図５】
2015136971.tif 000008
【図６Ａ】
2015136971.tif 000009
【図６Ｂ】
2015136971.tif 000010
【図７】
2015136971.tif 000011
【図８】
2015136971.tif 000012
【図９】
2015136971.tif 000013
【図１０】
2015136971.tif 000014
【図１１】
2015136971.tif 000015
【図１２】
2015136971.tif 000016
【図１３】
2015136971.tif 000017
【国際調査報告】
2015136971.tif 000018
2015136971.tif 000019