JP6252269B2 - 制御装置、制御システム、データトレース方法、及びプログラム - Google Patents

制御装置、制御システム、データトレース方法、及びプログラム Download PDF

Info

Publication number
JP6252269B2
JP6252269B2 JP2014052814A JP2014052814A JP6252269B2 JP 6252269 B2 JP6252269 B2 JP 6252269B2 JP 2014052814 A JP2014052814 A JP 2014052814A JP 2014052814 A JP2014052814 A JP 2014052814A JP 6252269 B2 JP6252269 B2 JP 6252269B2
Authority
JP
Japan
Prior art keywords
trace
sampling data
storage area
execution
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014052814A
Other languages
English (en)
Other versions
JP2015176387A (ja
Inventor
裕 阿部
裕 阿部
矢尾板 宏心
宏心 矢尾板
良峰 武内
良峰 武内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2014052814A priority Critical patent/JP6252269B2/ja
Publication of JP2015176387A publication Critical patent/JP2015176387A/ja
Application granted granted Critical
Publication of JP6252269B2 publication Critical patent/JP6252269B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、入出力信号及び内部変数をトレース可能な制御装置、制御システム、データトレース方法、及び、プログラムに関する。
従来、所定のタスクを所定の周期にて繰り返し実行することにより入出力信号及び/又は制御装置内部において使用される内部変数が時間的に変化する制御装置において、入出力信号及び/又は内部変数の時間的変化を追跡(トレース)する制御装置が知られている。例えば、特許文献1には、トレースを実行可能な制御用マイクロコンピュータ装置が開示されている。
特許文献1の制御用マイクロコンピュータ装置は、トレース条件データによるサンプリングデータ収集周期になると、設定された入力点のアドレス情報に従って演算用メモリの該当するデータを読み出しサンプリングデータ格納メモリへ順次書込む。
特開平10−91477号公報
制御装置においてはこれらの上記のトレースの機能は主にプログラミングのデバッグのシーンで用いられる。これらのデバッグのシーンにおいてはタスクに割り当てられたプログラムを実行しながらデバッグを行う。
これらの制御装置においては、タスクの実行周期のさらなる短縮が求められており、デバッグについては通常の制御動作に対して影響がされないようにする必要がある。そのため従来の制御装置(制御用マイクロコンピュータ装置)においては、取得可能なデータ量及び同時に実行可能なトレース数は固定されていた。そのため、制御装置(制御用マイクロコンピュータ装置)の記憶領域に十分な空き容量があるにもかかわらず、サンプリングされたデータを蓄積したサンプリングデータの最大値は予め制限されており、又は、同時に実行できるトレース数も制限されていた。
特に、同時に実行できるトレースの数が制限されることは、制御装置において実行される大規模なユーザプログラムを多人数にて開発する際には、ユーザプログラムの開発の効率を低下させる。なぜなら、同時に実行できるトレースの数以上のプログラム開発者が存在する場合には、各プログラム開発者がいつトレースを実行するかの計画を立てる必要があるからである。すなわち、同時に実行できるトレース数に制限があると、各プログラム開発者が自由にトレースを実行できない。
本発明の課題は、所定のタスクを所定の周期にて繰り返し実行することにより入出力信号及び/又は制御装置内部において使用される内部変数が時間的に変化する制御装置、又は、当該制御装置を有する制御システムにおいて、所望のデータ量及び/又は数のトレースを実行することにある。
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
本発明の一形態に係る制御装置は、メモリと、タスク実行部と、トレース実行管理部と、メモリ管理部と、トレース実行部と、を備える。
メモリは、サンプリングデータ格納領域を有する。タスク実行部は、所定のタスクを所定の周期にて繰り返し実行する。トレース実行管理部は、トレースの実行要求を外部から受信した際に、サンプリングデータをサンプリングデータ格納領域内の空き領域に格納可能であれば、トレースを実行可能と判断する。
トレースとは、タスクを実行することによる入出力信号及び/又は内部変数の時間的な変化を、サンプリングデータを用いて追跡することを言う。サンプリングデータは、入出力信号及び/又は内部変数をサンプリングして記憶したデータである。
メモリ管理部は、サンプリングデータ格納領域内の空き領域を検出する。また、メモリ管理部は、トレースが実行可能であると判断されたときに、記憶領域を空き領域に確保する。記憶領域は、サンプリングデータを格納するための領域である。トレース実行部は、トレースが実行可能であると判断されたときに、サンプリングデータを取得し記憶領域に格納する。
上記の制御装置においては、タスク実行部によって所定のタスクが所定の周期にて繰り返し実行されている。タスクが所定の周期にて繰り返し実行されることにより、制御装置における入出力信号及び/又は内部変数は時間的に変化する。タスクが繰り返し実行されているときに、トレースの実行要求が外部から受信されると、トレース実行管理部が、メモリ管理部に対してサンプリングデータ格納領域内の空き領域を検出するように指令する。
メモリ管理部がサンプリングデータ格納領域内の空き領域を検出後、トレース実行管理部が、検出された空き領域にサンプリングデータを格納可能かどうか判断する。サンプリングデータを空き領域に格納できると判断した場合には、トレース実行管理部は、実行要求されたトレースが実行可能であると判断する。
トレース実行管理部においてトレースが実行可能と判断された場合、メモリ管理部が、サンプリングデータを格納する記憶領域を空き領域に確保する。その後、トレース実行部が、サンプリングデータを取得し、確保された記憶領域にサンプリングデータを記憶する。
上記の制御装置においては、トレース実行管理部が、トレースの実行要求を外部から受信した際に、サンプリングデータをサンプリングデータ格納領域内の空き領域に格納可能であれば、トレースを実行可能と判断する。そして、トレースが実行可能であると判断されたときに、メモリ管理部がサンプリングデータを記憶する記憶領域を空き領域に確保する。
これにより、上記の制御装置は、メモリ中(サンプリングデータ格納領域内)の空き領域をサンプリングデータのデータ量に応じて任意のサイズにて効率よく確保して、サンプリングデータをサンプリングデータ格納領域内に格納できる。その結果、上記の制御装置においては、所望のデータ量及び/又は数のトレースを実行できる。
メモリ管理部は、サンプリングデータ格納領域中の複数の空き領域を1つの記憶領域として確保してもよい。これにより、上記の制御装置においては、サンプリングデータ格納領域中の空き領域を無駄なく使用できる。
メモリ管理部は、トレースの終了後、終了したトレースのサンプリングデータを記憶していた記憶領域を空き領域としてもよい。これにより、上記の制御装置においては、以後実行されるトレースのための記憶領域をサンプリングデータ格納領域内により多く確保できる。
本発明の他の見地に係る制御システムは、上記の制御装置と開発支援装置とを備える。
開発支援装置は、サンプリングデータ受信部と、トレース監視部と、トレース実行状態表示部と、を有する。サンプリングデータ受信部は、制御装置からサンプリングデータを受信する。トレース監視部は、制御装置におけるトレースの実行状態を監視する。トレース実行状態表示部は、トレースの実行状態を表示する。
上記の制御システムにおいては、開発支援装置がサンプリングデータ受信部を有することにより、制御装置において取得したサンプリングデータを開発支援装置において取得し参照できる。その結果、開発支援装置においてトレース結果を参照できる。
また、上記の制御システムにおいては、開発支援装置がトレース監視部を有することにより、開発支援装置においてトレースの実行状態を監視できる。さらに、開発支援装置がトレース実行状態表示部を有することにより、開発支援装置においてトレースの実行状態を視覚的に確認できる。
トレース監視部は、空き領域のサイズをトレースの実行状態として監視してもよい。これにより、開発支援装置において、サンプリングデータ格納領域の空き領域のサイズを確認しながらトレース条件を設定できる。
トレース監視部は、現在の空き領域に格納可能なデータ量を、トレースの実行状態として監視してもよい。これにより、開発支援装置において、どの程度のサンプリングデータが取得可能であるかを確認しながらトレース条件を設定できる。
トレース監視部は、制御装置における実行トレース数と、制御装置において現在登録されている登録トレース数とを、トレースの実行状態として監視してもよい。これにより、自身および他の開発支援装置から要求されたトレースの実行状態を確認できる。
トレース監視部は、実行中のトレースの設定状態を、トレースの実行状態として監視してもよい。これにより、どの設定のトレースが実行中であるかを確認できる。
本発明のさらに他の見地に係るデータトレース方法は、以下のステップを含む。
◎タスクを所定の周期にて繰り返し実行するステップ。
◎トレースの実行要求を外部から受信した際に、メモリに確保されたサンプリングデータ格納領域内の空き領域を検出するステップ。
◎サンプリングデータをサンプリングデータ格納領域内の空き領域に格納可能であれば、トレースを実行可能と判断するステップ。
◎トレースが実行可能であると判断されたときに、サンプリングデータを格納する記憶領域を空き領域に確保するステップ。
◎トレースが実行可能であると判断されたときに、サンプリングデータを取得し記憶領域に格納するステップ。
上記のデータトレース方法においては、トレースの実行要求を外部から受信した際に、サンプリングデータをサンプリングデータ格納領域内の空き領域に格納可能であれば、トレースを実行可能と判断する。そして、トレースが実行可能であると判断されたときに、サンプリングデータを記憶する記憶領域を空き領域に確保する。
これにより、上記のデータトレース方法においては、メモリ中(サンプリングデータ格納領域内)の空き領域をトレースのデータ量に応じて任意のサイズにて効率よく確保して、サンプリングデータをサンプリングデータ格納領域内に格納できる。その結果、所望のデータ量及び/又は数のトレースを実行できる。
記憶領域を空き領域に確保するステップにおいて、サンプリングデータ格納領域中の複数の空き領域が1つの記憶領域として確保されてもよい。これにより、より効率よくサンプリングデータ領域中の空き領域を使用できる。
上記のデータトレース方法は、さらに、終了したトレースのサンプリングデータを記憶していた記憶領域を空き領域とするステップをさらに含んでもよい。これにより、以後実行されるトレースのための記憶領域をサンプリングデータ格納領域内により多く確保できる。
本発明のさらに他の見地に係るプログラムは、上記のデータトレース方法をコンピュータに実行させるためのプログラムである。
上記の制御装置、制御システム、及びデータトレース方法によって、所望のデータ量及び/又は数のトレースを実行できる。
制御システムの全体構成を示す図。 制御装置及び開発支援装置の構成を示す図。 制御装置の詳細構成を示す図。 トレース管理テーブルの一例を示す図。 トレースIDnのトレース情報が追加されたトレース管理テーブルを示す図。 サンプリングデータ取得終了後のトレース管理テーブル一例を示す図。 開発支援装置の詳細構成を示す図。 トレース実行表示画面の一例を示す図。 実行トレースの実行状態と、登録トレースの実行状態とをトレースの実行状態として表示したときのトレース実行表示画面の一例を示す図。 タスクの実行処理を示すフローチャート。 トレース実行処理の概略を示すフローチャート。 トレースの実行状態表示処理時の動作を示すフローチャート。 制御装置においてトレースデータ格納領域の使用量を算出する場合のトレース条件設定処理時の動作を示すフローチャート。 開発支援装置においてトレースデータ格納領域の使用量を算出する場合のトレース条件設定処理時の動作を示すフローチャート。 サンプリングデータ取得処理時の動作を示すフローチャート。 サンプリングデータ取得終了処理時の動作を示すフローチャート。 サンプリングデータ格納領域の使用状況の一例を示す図。 トレースIDnのトレースのために新たに記憶領域を確保した後のサンプリングデータ格納領域の使用状況を示す図。 サンプリングデータ取得終了後のサンプリングデータ格納領域の使用状況の一例を示す図。
1.第1実施形態
(1)制御システムの全体構成
まず、第1実施形態に係る制御システム100の全体構成について、図1を用いて説明する。図1は、制御システムの全体構成を示す図である。制御システム100は、PLCシステム1と開発支援装置3とを備える。
PLCシステム1は、例えば、センサやスイッチなどにより構成される信号入力部5から信号を入力する。また、PLCシステム1は、信号入力部5(後述)からの入力信号を必要の応じて用いプログラムを実行して、制御対象機器7を制御する出力信号を算出する。
開発支援装置3は、PLCシステム1の制御装置11において実行されるユーザプログラム1131(図3)を作成するための各種機能を実現する。また、PLCシステム1に接続可能な開発支援装置3の数は1に限られず、例えば、開発支援装置3に割当可能なアドレス数などが許す限り、任意の数の開発支援装置3を接続できる。
以下に、PLCシステム1、制御装置11、及び開発支援装置3の詳細な構成についてそれぞれ説明する。
(2)PLCシステムの構成
次に、PLCシステム1の詳細な構成について図1を用いて説明する。本実施形態に係るPLCシステム1は、制御装置11と、入力ユニット13と、出力ユニット15と、電源ユニット17と、を有する。
本実施形態に係る制御装置11は、プログラマブル・ロジック・コントローラ(Programmable Logic Controller、PLC)のCPUユニットである。制御装置11においては、入力ユニット13(後述)に入力される入力信号が制御装置11内部において用いられる入力変数に関連づけられている。また、出力ユニット15(後述)への出力信号が制御装置11内部において用いられる出力変数に関連づけられている。
また、制御装置11においては、所定のタスクが所定の周期にて繰り返し実行されている。ここで、タスクとは、入力ユニット13からの入力信号に基づいて入力変数を更新し、出力変数に基づいて出力ユニット15へ出力する出力信号を更新するI/Oリフレッシュ処理と、ユーザプログラム1131及び/又はシステムプログラム115a(後述)を実行する処理とを含む処理単位のことである。なお、タスクには、モーションコントロール処理などの他の処理がさらに含まれていてもよく、また、プログラムの実行処理のみが含まれていてもよい。
また、以下に説明するトレース機能によるサンプリングデータの取得は、タスク実行中の所定のタイミングにおいて行われる。なお、具体的にどのタイミングにおいてサンプリングデータの取得が行われるかは、後ほど説明する。
制御装置11において実行されるプログラムは、上記の入力変数と必要に応じて内部変数とを用いて、上記の出力変数を算出している。そのため、タスクが所定の周期にて繰り返し実行されることにより、入力信号及び出力信号(入出力信号)、及び/又は、入力変数と出力変数と内部変数とを含む変数は時間的に変化している。
よって、実行中のユーザプログラムが適切に動作しているかどうかを確認することを主な目的として、制御装置11は、上記の信号値(入出力信号に関連づけられた入力変数値及び出力変数値)及び内部変数値の時間的な変化を、当該信号値及び内部変数値をサンプリングして記憶することにより追跡する機能(トレース機能)を有している。
入力ユニット13は、センサやスイッチなどの信号入力部5から入力信号を入力し、制御装置11に当該入力信号を出力する。入力ユニット13としては、信号入力部5から入力される信号種類に応じた入力ユニットを使用できる。具体的には、例えば、信号入力部5が温度を測定する熱電対により構成されている場合には、熱電対において発生する電圧を入力信号とする入力ユニットを入力ユニット13として用いることができる。また、例えば、信号入力部5が電気スイッチにより構成されている場合には、当該スイッチのON/OFF状態を入力信号とする入力ユニットを入力ユニット13として用いることができる。
出力ユニット15は、制御装置11の出力変数に関連づけられた出力信号を、対応する制御対象機器7に出力する。これにより、制御装置11は、プログラムを実行することにより算出された出力変数に基づいて、制御対象機器7を制御できる。
出力ユニット15は、出力信号の種類に応じた出力ユニットとして構成できる。例えば、制御対象機器7がモータであり、モータの位置制御などを行う場合には、モーションコントローラ機能を有した出力ユニットを用いることができる。また、例えば、制御対象機器7が電気炉である場合には、電気炉を制御するリレーを制御する信号(例えば、ON/OFFデューティ比を制御する信号)を出力する出力ユニットを用いることができる。
電源ユニット17は、制御装置11、入力ユニット13、及び出力ユニット15に電力を供給する。
なお、PLCシステム1は、上記の構成要素の全てを1の筐体内に組み込んだシステムであってもよいし、各構成要素を個別の筐体に組み込んで当該構成要素を接続してPLCシステムとしてもよい。特に、入力ユニット13及び出力ユニット15を個別の構成要素とすることにより、PLCシステム1は、所望する制御対象機器及び信号入力部を所望の数接続できる。
(3)制御装置の構成
I.全体構成
次に、制御装置11の構成の詳細について、図2及び図3を用いて説明する。図2は、制御装置及び開発支援装置の構成を示す図である。図3は、制御装置の詳細構成を示す図である。
上記のように、制御装置11はPLCシステムにおけるCPUユニットである。図2に示すように、制御装置11は、プログラムの実行などの演算処理を行うCPU111と、書き込みと読み出しとが可能な記憶領域を提供するRAM113と、読み出しのみを主目的としている記憶領域を提供するROM115と、開発支援装置3との通信を行う通信インターフェース117と、を有する。
通信インターフェース117は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)などのデータ通信プロトコルを用いてデータ送受信を実行する。これにより、制御装置11と、開発支援装置3に割当可能なアドレス数分の開発支援装置3との間にてデータ送受信できる。
次に、制御装置11の各種機能を実現する各部について、図3を用いてさらに詳しく説明する。本実施形態において、以下に説明する制御装置11の各部の機能は、図2に示す制御装置11のCPU111において、ROM115に記憶されたシステムプログラム115aを実行することにより実現されている。
図3に示すように、制御装置11は、タスク実行部1111と、トレース実行管理部1113と、メモリ管理部1115と、トレース実行部1117と、を有する。
タスク実行部1111は、RAM113に記憶されたユーザプログラム1131を参照し、ユーザプログラム1131の実行処理を含んだ所定のタスクを所定の周期にて繰り返し実行する。なお、タスク実行部1111において実行されるタスクの数は複数であってもよい。
トレース実行管理部1113は、通信インターフェース117(図2)に接続された開発支援装置3からトレースの実行要求(後述)を受信した際に、トレースの実行要求により実行すべきトレースが実行可能かどうかを判断する。トレースが実行可能かどうかを判断は、メモリ管理部1115(後述)が検出したサンプリングデータ格納領域内の空き領域に、サンプリングデータを格納可能かどうかにより判断される。
トレース実行管理部1113は、RAM113に確保されているサンプリングデータ格納領域1137内の空き領域のサイズがサンプリングデータのデータサイズ(サンプリングデータ格納領域1137(後述)の使用量と呼ばれることもある)以上であれば、サンプリングデータを上記の空き領域に格納可能と判断する。
その後、トレース実行管理部1113は、サンプリングデータ格納領域1137内の空き領域にサンプリングデータを格納可能であると判断したときに、トレースの実行要求があったトレースを実行可能と判断する。
さらに、トレース実行管理部1113は、現在の実行トレース及びトレース実行のために現在登録されている登録トレースに関する情報を、例えば、RAM113に記憶されたトレース管理テーブル1133(図4A)に記憶して管理している。これにより、トレース実行管理部1113は、複数の実行トレース及び登録トレースに関する情報(トレース情報)を参照して一元管理できる。
メモリ管理部1115は、サンプリングデータ格納領域1137の使用状況を確認する。具体的には、メモリ管理部1115は、トレース実行管理部1113からの空き領域検出要求に対して、サンプリングデータ格納領域1137内の空き領域の検出を行う。本実施形態においては、メモリ管理部1115は、サンプリングデータ格納領域1137のメモリアドレスをスキャンして、スキャンしたメモリアドレスにおける記憶内容が未使用状態(例えば、“00”又は“FF”(16進数表示)を記憶)であれば、当該メモリアドレスの記憶領域は空き領域と判断する。
また、メモリ管理部1115は、トレース実行管理部1113においてトレースが実行可能と判断されたときに、検出した空き領域に、トレースに用いるサンプリングデータのデータ量に対応する記憶領域を確保する。なお、トレースに用いるサンプリングデータのデータ量は、入出力信号(入力変数、出力変数)及び内部変数のサンプリング数により決定される。なお、上記のサンプリング数は、トレース条件のサンプリング時間(後述)と収集タイミング(サンプリングタイミング)により決定される。
トレース実行部1117は、トレース実行管理部1113においてトレースが実行可能と判断されたときに、サンプリングデータを取得し、取得したサンプリングデータをサンプリングデータ格納領域1137に確保した記憶領域に格納する。具体的には、トレース実行部1117は、変数格納領域1135から、トレース条件においてトレース対象として指定されている入力変数の変数値、出力変数の変数値、及び/又は内部変数(トレース対象変数)の変数値を、予め設定されたタイミング(収集タイミング)において、トレース条件において指定されたサンプリング時間の期間中サンプリングし、サンプリングした変数値を上記の記憶領域に格納する。
本実施形態の制御装置11が上記の構成要素を有することにより、制御装置11は、サンプリングデータ格納領域1137の空き領域をサンプリングデータのデータ量に応じて任意のサイズにて効率よく確保して、サンプリングデータをサンプリングデータ格納領域1137内に格納できる。その結果、制御装置11は、サンプリングデータ格納領域1137内の空き領域のサイズに応じて、所望のデータ量及び/又は数のトレースを実行できる。
II.トレース管理テーブルの構成
ここで、トレース実行管理部1113において用いられるトレース管理テーブル1133の例について、図4Aを用いて説明する。図4Aは、トレース管理テーブルの一例を示す図である。図4Aに示すトレース管理テーブル1133においては、n−1個のトレースが登録されている。
トレース管理テーブル1133は、トレースID記録領域1133−1と、トレース要求元記録領域1133−2と、トレース条件記録領域1133−3と、データ格納領域記録領域1133−4と、トレース実行状態記録領域1133−5と、を有する。
トレースID記録領域1133−1は、実行中のトレース(実行トレース)及び登録トレースに割り当てられた識別番号であるトレースIDが記録される。トレース要求元記録領域1133−2は、トレースIDにより示されたトレースの実行を要求した開発支援装置に関する情報(例えば、開発支援装置のIPアドレスなど)を記録している。
トレース条件記録領域1133−3は、各トレースのトレース条件(後述)を記録している。トレース条件として、例えば、トレースの対象となる変数(トレース対象変数)の種類と、各トレース対象変数のサンプリングタイミングである収集タイミングと、トレース対象変数をサンプリングする時間であるサンプリング時間とが存在する。
データ格納領域記録領域1133−4は、記憶領域(後述)に関する情報を記録している。図4Aに示す例では、データ格納領域記録領域1133−4には、記憶領域の開始メモリアドレスと終了メモリアドレスとが記憶されている。しかし、これに限られず、データ格納領域記録領域1133−4は、記憶領域の開始メモリアドレスと記憶領域サイズとを記憶していてもよい。
トレース実行状態記録領域1133−5は、各トレースが実行されているかどうかを記録している。例えば、「実行中」と記録されたトレースは、実行されている状態のトレース(実行トレース)である。一方、「待機中」と記録されたトレースは、サンプリングデータ格納領域1137内に記憶領域が確保されているが、まだ実行されていない登録トレースである。
図4Aに示すようなトレース管理テーブル1133を用いることにより、トレース実行管理部1113は、各トレースのトレースに関する情報を、トレースIDに基づいて管理できる。
(4)開発支援装置の構成
I.全体構成
次に、開発支援装置3の構成の詳細について、図2及び図5を用いて説明する。図5は、開発支援装置の詳細構成を示す図である。なお、図1及び図2においては、開発支援装置3は制御装置11に複数台接続されているが、以下においては、1個の開発支援装置3−nの構成について説明する。
開発支援装置3は、例えば、パーソナルコンピュータなどのコンピュータである。よって、図2に示すように、開発支援装置3−nは、プログラムの実行などの演算処理を行うCPU31と、記憶領域を提供する記憶部33と、キーボードやマウスなどの入力手段により構成されている操作部35と、制御装置11との通信を行う通信インターフェース37と、トレース実行表示画面D(後述)などを表示する表示部39と、を有する。
なお、通信インターフェース37は、制御装置11におけるデータ通信プロトコルと同一のプロトコルを用いて、制御装置11とデータ送受信を行う。従って、本実施形態において、通信インターフェース37は、例えば、TCP/IPプロトコルにて通信可能なインターフェースである。
次に、開発支援装置3−nにおける各種機能を実現する各部について図5を用いて説明する。以下に説明する開発支援装置3の各部の機能は、図2に示す開発支援装置3のCPU31において、記憶部33に記憶された開発支援プログラム33aを実行することにより実現されている。
図5に示すように、開発支援装置3−nは、プログラミング部311と、デバッグ部313と、トレース部315と、を有する。
プログラミング部311は、ユーザプログラム1131を編集する。具体的には、プログラミング部311は、操作部35のユーザによる操作により、ユーザプログラム1131を新たに作成し、又は、制御装置11に記憶されているユーザプログラム1131を修正する。また、プログラミング部311は、ユーザにより作成又は修正されたユーザプログラム1131から制御装置11において実行可能なユーザプログラムを生成する。
デバッグ部313は、ユーザにより作成又は修正されたユーザプログラム1131が正常に動作するかどうかを確認する(デバッグ機能)。
例えば、デバッグ部313は、ユーザが作成又は修正したユーザプログラム1131から制御装置11にて実行可能なユーザプログラムを生成する際に、プログラミング部311から出力されたエラーコードを表示するデバッグ機能を提供する。
また、デバッグ部313は、トレース部315(後述)において取得したサンプリングデータを用いて、入出力信号(入力変数、出力変数)及び/又は内部変数の時間的変化(トレース結果)を確認することにより、作成又は修正したユーザプログラム1131が正常に動作しているかどうかを確認するデバッグ機能を提供する。
さらに、デバッグ部313は、制御装置11の動作中に、ユーザプログラム1131の実際の実行状態を表示することによるデバッグ機能を提供する。
上記のトレース結果を用いたデバッグ機能、及び/又は、上記のプログラムの実行状態の表示を用いたデバッグ機能により、ユーザプログラム1131を作成又は修正するユーザは、ユーザプログラム1131中のエラー発生箇所を視覚的に確認できる。
トレース部315は、実行したいトレースのトレース条件を設定し、制御装置11に対してトレース条件に設定したトレースを実行するよう指示する。また、トレース部315は、制御装置11において取得されたサンプリングデータを受信し、サンプリングデータを時間軸上に表示することにより、トレース結果を表示する。
また、トレース部315は、制御装置11における現在のトレースの実行状態をモニター(監視)し、トレースの実行状態を視覚的に示す。これにより、ユーザは、トレースの実行状態を確認して、実行したいトレースのトレース条件を決定でき、又は、トレースを実行するか中止するかを決定できる。
以下に、トレース部315のさらに詳細な構成ついて説明する。
II.トレース部の構成
ここで、開発支援装置3におけるトレース部315のさらに詳細な構成について図5を用いて説明する。
図5に示すように、トレース部315は、サンプリングデータ受信部315−1と、トレース結果表示部315−3と、トレース条件設定部315−5と、トレース開始指示部315−7と、トレース監視部315−9と、トレース実行状態表示部315−11と、を有する。
サンプリングデータ受信部315−1は、通信インターフェース37に接続された制御装置11から、サンプリングデータ格納領域1137に格納されたサンプリングデータを受信し、開発支援装置3の記憶部33に記憶する。サンプリングデータ受信部315−1が、制御装置11からサンプリングデータを受信し記憶部33に記憶することにより、開発支援装置3においてサンプリングデータを参照できる。
トレース結果表示部315−3は、制御装置11から受信し記憶部33に記憶したサンプリングデータを表示する。トレース結果表示部315−3は、例えば、入出力信号(入力変数、出力変数)及び/又は内部変数をサンプリングした時刻を横軸とし、当該サンプリングした時刻に対応する上記の変数値を縦軸としたグラフ上に、サンプリングデータをプロットする。これにより、トレース結果表示部315−3は、入出力信号及び/又は内部変数の時間的変化(トレース結果)を視覚的に表示できる。
トレース条件設定部315−5は、実行したいトレースのトレース条件を設定する。具体的には、トレース条件設定部315−5は、例えば、トレースしたいトレース対象変数(入出力信号及び内部変数)と、各トレース対象変数のサンプリング(収集)タイミングと、トレース結果を表示するためのサンプリングデータの取得時間(サンプリング時間)と、をトレース条件として設定する。
また、トレース条件設定部315−5は、トレースを開始したいタイミング(トレース開始トリガー)をトレース条件として設定可能となっていてもよい。
トレース開始指示部315−7は、トレースの開始を制御装置11に対して指令する。トレース監視部315−9は、制御装置11におけるトレースの実行状態を監視する。
本実施形態においては、トレース監視部315−9は、サンプリングデータ格納領域1137内の空き領域のサイズ、及び、現在の領域に格納可能なデータ量を、トレースの実行状態として監視している。
また、トレース監視部315−9は、制御装置11における実行トレース数と登録トレース数とを、トレースの実行状態として監視してもよい。さらに、トレース監視部315−9は、実行中のトレースの実行状態をトレースの実行状態として監視してもよい。
トレース実行状態表示部315−11は、トレース監視部315−9において監視されているトレースの実行状態をトレース実行表示画面D(図6A、図6B)に表示する。トレースの実行状態をトレース実行表示画面Dに表示することにより、開発支援装置3においてトレースの実行状態を視覚的に確認できる。
III.トレース実行表示画面
次に、トレース部315によりトレースが開始された際に、開発支援装置3−nの表示部39に表示されるトレース実行表示画面Dについて、図6A及び図6Bを用いて説明する。図6Aは、トレース実行表示画面の一例を示す図である。図6Bは、実行トレースの実行状態と、登録トレースの実行状態とをトレースの実行状態として表示したときのトレース実行表示画面の一例を示す図である。
図6Aに示すように、トレース実行表示画面Dは、空き領域サイズ表示領域D1と、格納可能データ量表示領域D2と、サンプリング時間設定値表示領域D3と、トレース対象変数設定表示領域D4と、トレース開始ボタン表示領域D5と、メモリ使用量表示領域D6と、収集タイミング設定表示領域D7と、を有する。
空き領域サイズ表示領域D1は、サンプリングデータ格納領域1137の空き領域のサイズを、トレースの実行状態として表示する。
格納可能データ量表示領域D2は、現在の空き領域に格納可能なデータ量を、トレースの実行状態として表示する。図6Aに示す格納可能データ量表示領域D2は、現在の空き領域に格納可能なデータ量として、トレース対象変数設定表示領域D4(後述)に示されたトレース対象変数を選択したときに、サンプリング時間として設定可能な最大値(最大サンプリング可能時間)を表示している。
最大サンプリング可能時間は、空き領域のサイズと、トレース対象変数の選択数と、選択されているトレース対象変数のデータ型と、トレース対象変数の収集タイミング(サンプリングタイミング、又は、サンプリング周期)により決定される。従って、トレース条件設定部315−5によりトレース対象変数の設定条件が変更されると、トレース対象変数設定表示領域D4の表示は変化する。
サンプリング時間設定値表示領域D3は、現在のトレース条件におけるサンプリング時間の設定値を表示する。サンプリング時間設定値表示領域D3に表示されているサンプリング時間は、操作部35の操作により変更可能となっている。そして、当該表示領域においてサンプリング時間が変更されたことを検知すると、トレース条件設定部315−5は、サンプリング時間を変更した新たなトレース条件を設定し直す。
トレース対象変数設定表示領域D4は、現在のトレース条件におけるトレース対象変数の設定を表示する。トレース対象変数設定表示領域D4においては、各トレース対象変数名と各トレース対象変数のデータ型とが表示されている。
また、サンプリング時間設定値表示領域D3と同様に、トレース対象変数設定表示領域D4に表示されているトレース対象変数の設定条件は、操作部35の操作により変更可能となっている。そして、当該表示領域においてトレース対象変数の設定条件が変更されたことを検知すると、トレース条件設定部315−5は、トレース対象変数の設定条件を変更した新たなトレース条件を設定し直す。
なお、トレース対象変数設定表示領域D4に表示されているトレース対象変数名及びトレース対象変数のデータ型と、収集タイミング設定表示領域D7(後述)に表示されている収集タイミング(サンプリングタイミング)とが、上記のトレース管理テーブル1133のトレース条件記録領域1133−3に記録されている「設定」を構成する情報となる。
トレース開始ボタン表示領域D5は、トレース開始ボタンを表示する。操作部35によりトレース開始ボタンが押されたことが検知されると、トレース開始指示部315−7は、トレースの開始を制御装置11に対して指令する。
メモリ使用量表示領域D6は、現在表示されているトレース条件を実行したときに使用される空き領域(メモリ)の使用量を表示する。トレース条件を設定するユーザは、メモリ使用量表示領域D6に表示されている使用量と、空き領域サイズ表示領域D1に表示されている空き領域のサイズとを比較しながら、トレース条件を設定できる。
収集タイミング設定表示領域D7は、トレース対象変数設定表示領域D4に表示されたトレース対象変数をサンプリングするタイミング(収集タイミング、又は、サンプリングタイミング)を表示する。
上記のトレース実行表示画面Dを開発支援装置3の表示部39に表示することにより、ユーザは、表示された情報を確認しながら、トレース条件を設定できる。
また、トレース実行表示画面Dの格納可能データ量表示領域D2に現在の空き領域に格納可能なデータ量(最大サンプリング可能時間)を表示することにより、ユーザは、どの程度のサンプリングデータが取得可能であるかを確認しながらトレース条件を設定できる。
上記のトレース実行表示画面Dは、図6Aに示した表示例に限られない。変形例として、例えば、図6Bに示すように、トレース監視部315−9が制御装置11における実行トレース数及び登録トレース数の実行状態をトレースの実行状態として監視している場合には、トレース実行表示画面Dは、さらに、トレース数表示領域D8と、トレース実行状態表示領域D9と、現在表示トレース設定名表示領域D10を有していてもよい。
トレース数表示領域D8は、現在トレースIDが割り当てられており、トレース実行のために現在登録されているトレースの数(登録トレース数)と、制御装置11において実行中の実行トレースの数(実行トレース数)とを、トレースの実行状態として表示する。トレース実行表示画面Dのトレース数表示領域D8に、実行トレース数と登録トレース数とをトレースの実行状態として表示することにより、自身および他の開発支援装置3から要求されたトレースの実行状態を確認できる。
トレース実行状態表示領域D9は、トレースの実行状態を表示する。図6Bに示すトレース実行状態表示領域D9においては、各トレースが、自身の開発支援装置3−nにより設定されたトレースであるかどうか(○印がついた実行トレースが、自身の開発支援装置3において設定されたトレース)と、各トレースのトレース設定(トレース条件)と、各トレースが実行中であるか待機中であるかを示す実行状態と、が表示されている。トレース実行表示画面Dのトレース実行状態表示領域D9に、トレースの実行状態を表示することにより、どの設定(トレース条件)のトレースが実行中であるかを確認できる。
現在表示トレース設定名表示領域D10は、トレース実行表示画面Dに現在表示されているトレース条件の設定名が表示される。例えば、図6Bに示す例においては、「設定E」が設定名として表示されている。なお、「番号」に表示されている番号は、トレースIDであるとは限らない。
(5)制御システムの動作
I.タスク実行処理
次に、本実施形態における制御システム100の動作について説明する。まず、制御システム100におけるタスクの実行処理について、図7Aを用いて説明する。図7Aは、タスクの実行処理を示すフローチャートである。図7Aに示すフローチャートにより説明する制御システム100のタスクの実行処理は、制御装置11において、I/Oリフレッシュ処理とユーザプログラムなどの実行処理とを含むタスクが所定の周期にて繰り返し実行される場合の動作である。
制御システム100が動作を開始すると、まず、タスク実行部1111は、I/Oリフレッシュ処理を実行する(ステップS1001)。具体的には、タスク実行部1111は、入力ユニット13から受信した入力信号値を、変数格納領域1135に格納され当該入力信号に関連づけられた入力変数に反映させる。また、変数格納領域1135に格納された出力変数の値を、当該出力変数に関連づけられている出力信号値に反映させて、出力ユニット15に出力する。
ステップS1001においてI/Oリフレッシュ処理を実行した段階においては、入力信号値が変更していれば、関連づけられた入力変数値が前回のタスク実行時の値から変化する。
次に、タスク実行部1111は、ユーザプログラム1131を実行する(ステップS1002)。ステップS1002におけるユーザプログラム1131の実行後の時点おいて、出力変数の値とユーザプログラム1131などにおいて用いられた内部変数の値が、前回のタスク実行時の値から変化している(場合がある)。
なぜなら、入力変数が前回のタスク実行時から変化していれば、ユーザプログラム1131などを値変化後の入力変数を用いて実行した結果、出力変数及び/又は内部変数の算出結果も変化する(ことがある)からである。
ステップS2においてプログラムを実行後、タスク実行部1111は、再びステップS1001に戻り、I/Oリフレッシュ処理を行う。
制御システム100の動作を継続する間、制御システム100(制御装置11)は、図7Aに示すフローチャートに示すタスク実行処理を所定の周期にて繰り返し実行している。その結果、タスクが繰り返し実行されている間に入力信号値が時間的に変化した場合には、関連づけられた入力変数が時間的に変化する。また、入力変数の時間的な変化に伴って、出力信号に関連づけられる出力変数の値、場合によっては、プログラム内部において用いられた内部変数の値も時間的に変化する。
図7Aに示すタスクの実行時において、トレース対象変数の収集タイミングとしては、タスク実行周期(すなわし、所定の周期毎)(図7Aにおいて(1)にて示すタイミング)と、ユーザプログラム1131中の所定のタイミング(図7Aにおいて(2)にて示すタイミング)と、所定の時刻又は所定のトリガタイミング(図7Aにおいて(3)にて示すタイミング)とがある。
どのタイミングにおいてトレース対象変数を取得するかは、トレース条件の設定時に設定する。また、収集タイミングは、トレース対象変数ごとに個別に指定できる。
II.トレース実行処理の概略
次に、トレース実行処理の概略について図7Bを用いて説明する。図7Bは、トレース実行処理の概略を示すフローチャートである。
なお、以下のトレース実行処理の詳細説明においては、制御装置11に接続されたn−1個の開発支援装置3−1、3−2、・・・3−(n−1)(図1〜図3)からトレースが実行されている(あるいは実行予定とされている(登録されている))状態において、n個目の開発支援装置3−n(図1〜図3)からトレースの実行が要求される場合を例にとって説明する。
まず、開発支援装置3−nにおいてトレースの実行が開始されると、開発支援装置3−nは、表示部39にトレース実行表示画面Dを表示する。このとき、上記のように、トレース実行表示画面Dには、トレースの実行状態が表示される(ステップS1)。これにより、開発支援装置3−nを使用してトレースを実行しようとしているユーザは、現在のトレースの実行状態を確認しながら、トレース条件の設定等ができる。
トレースの実行状態を表示後、開発支援装置3−nにおいてトレース条件が設定される(ステップS2)。トレース条件の設定は、開発支援装置3−nにおいて、トレース実行表示画面Dに表示されたトレース条件を、操作部35を用いて変更することにより設定できる。トレース実行表示画面D上のトレース条件の設定内容が変更されると、トレース条件設定部315−5が、変更されたトレース条件を新たなトレース条件として設定する。
トレース条件の設定を完了して開発支援装置3からトレースの実行要求を送信後、実行指令されたトレースが実行可能である場合には、制御装置11は、トレース条件に示されたトレース対象変数をトレース条件の上記の収集タイミングにてサンプリングし、サンプリングデータを取得する(ステップS3)。
サンプリングデータの取得後、サンプリングデータ取得終了処理を実行する(ステップS4)。具体的には、制御装置11において取得したサンプリングデータを開発支援装置3−nにおいて受信して、トレースを終了する。
その後、トレース結果表示部315−3を用いて、受信したサンプリングデータを表示する。これにより、サンプリングデータを用いて、取得したトレース対象変数の時間的変化(すなわち、トレース結果)を視覚的に確認できる。
III.トレース実行処理において実行される各処理の詳細
(i)トレースの実行状態表示処理の動作
図7Bに示したフローチャートの各処理の詳細について、図7C〜図7Gを用いて説明する。図7Cは、トレースの実行状態表示処理時の動作を示すフローチャートである。図7Dは、制御装置においてトレースデータ格納領域の使用量を算出する場合のトレース条件設定処理時の動作を示すフローチャートである。図7Eは、開発支援装置においてトレースデータ格納領域の使用量を算出する場合のトレース条件設定処理時の動作を示すフローチャートである。図7Fは、サンプリングデータ取得処理時の動作を示すフローチャートである。図7Gは、サンプリングデータ取得終了処理時の動作を示すフローチャートである。
まず、トレースの実行状態表示処理時の動作について、図7Cを用いて説明する。
開発支援装置3−nにおいて、トレース実行プログラムが実行され、トレース実行表示画面Dが表示部39に表示されると、まず、開発支援装置3−nのトレース監視部315−9から制御装置11へ、トレース実行状態送信要求が送信される(ステップS101)。
制御装置11がトレース実行状態送信要求を受信すると、トレース実行管理部1113は、制御装置11におけるトレースの実行状態を監視する(ステップS102)。具体的には、トレース実行管理部1113は、メモリ管理部1115に対して、RAM113に確保されたサンプリングデータ格納領域1137内の空き領域を検出するよう指令する。その後、メモリ管理部1115は、検出した空き領域のサイズをトレース実行管理部1113に通知する。これにより、トレース実行管理部1113は、サンプリングデータ格納領域1137内の空き領域のサイズをトレースの実行状態として取得できる。
なお、開発支援装置3−nのトレース実行表示画面Dにおいて、実行トレースと登録トレースの実行状態(具体的には、実行トレース数、登録トレース数、実行トレースの実行状態)を表示する場合には、トレース実行管理部1113は、トレース管理テーブル1133を参照し、上記の実行トレースと登録トレースの実行状態を取得する。
トレースの実行状態を取得後、トレース実行管理部1113は、開発支援装置3−nにトレースの実行状態を送信する(ステップS103)。
開発支援装置3−nがトレースの実行状態を受信後、トレース監視部315−9は、受信したトレースの実行状態をトレースの実行状態として保持する。また、トレース監視部315−9は、トレース実行状態表示部315−11に対して、トレース実行表示画面Dの所定の表示領域に、各トレースの実行状態を表示するよう指令する(ステップS104)。これにより、トレース実行表示画面Dには、制御装置11におけるトレースの実行状態を表示できる。
なお、トレース実行表示画面Dに格納可能データ量(最大サンプリング可能時間)を表示する場合、トレース監視部315−9は、サンプリングデータ格納領域1137内の空き領域のサイズと、トレース対象変数のデータ型と、トレース対象変数の収集タイミング(サンプリングタイミング)と、サンプリング時間と、に基づいて、最大サンプリング可能時間を算出する。
トレース実行表示画面Dにトレースの実行状態を表示することにより、ユーザは、表示されたトレースの実行状態を参考にしながらトレース条件を設定できる。特に、サンプリングデータ格納領域1137の空き領域のサイズ、及び/又は、現在の空き領域に格納可能なデータ量をトレース実行表示画面Dに表示することにより、ユーザは、どのような(どのような、サンプリング時間、トレース対象変数の種類及び数、及び/又は収集タイミングをトレース条件とした)サンプリングデータを取得可能であるかを確認しながら、トレース条件を設定できる。
(ii)トレース条件設定処理の動作
次に、トレース条件設定処理の動作について、図7D及び図7Eを用いて説明する。トレース条件設定処理が開始されると、まず、開発支援装置3−nにおいてトレース条件が入力される(ステップS201)。上記のように、トレース条件の入力は、トレース実行表示画面Dのサンプリング時間設定値表示領域D3及びトレース対象変数設定表示領域D4などの表示内容を、操作部35を用いて入力又は変更することにより実行できる。上記の表示領域の内容が変更されたことを検出すると、トレース条件設定部315−5が、入力又は変更されたトレース条件を新たなトレース条件とする。
次に、開発支援装置3−nにおいて、トレース条件の設定が完了したかどうかを判断する(ステップS202)。開発支援装置3−nは、例えば、トレース実行表示画面Dのトレース開始ボタンが押されたかどうかにより、トレース条件の設定が完了したかどうかを判断できる。
トレース開始ボタンが押されてトレース条件の設定が完了したと判断された場合(ステップS202において「Yes」の場合)、トレース開始指示部315−7が、制御装置11に対して、設定が確定されたトレース条件を送信する(ステップS203)。
これにより、開発支援装置3―nにおいて確定したトレース条件を制御装置11に通知できる。また、ステップS203におけるトレース条件の送信が、トレースの実行要求となる。
一方、トレース開始ボタンが押されていないために、トレース条件の設定が終了していないと判断された場合(ステップS202において「No」の場合)、ステップS201に戻る。これにより、開発支援装置3−nにおいては、トレース開始ボタンが押されることによりトレース条件の設定が確定されるまで、トレース条件の設定を実行できる。
上記のステップS201〜S203が実行される間、制御装置11は、トレースの実行要求としてのトレース条件が受信されたかどうかを判断する(ステップS204)。トレース条件が制御装置11において受信されたと判断された場合(ステップS204において「Yes」の場合)、次のステップS205に進む。
一方、トレース条件が制御装置11において受信されていないと判断された場合(ステップS204において「No」の場合)、ステップS204に戻り、制御装置11はトレース条件が受信されるまで待機する。
トレース条件を受信後、トレース実行管理部1113は、サンプリングデータ格納領域1137の使用量を算出する(ステップS205)。サンプリングデータ格納領域の使用量とは、トレースを実行するために取得すべきトレース対象変数のデータ量に対応する。すなわち、サンプリングデータ格納領域1137の使用量は、サンプリングデータのデータサイズに対応する。従って、サンプリングデータ格納領域1137に使用量は、例えば、トレース条件に基づいて、各トレース対象変数のデータ型とサンプリング中に取得されるデータ数(例えば、サンプリング時間/サンプリング周期)との積を、トレース対象変数分合計することにより算出できる。
サンプリングデータ格納領域1137の使用量を算出後、トレース実行管理部1113は、サンプリングデータ格納領域1137の使用量と、ステップS102において検出されたサンプリングデータ格納領域1137の空き領域のサイズとを比較する(ステップS206)。
サンプリングデータ格納領域1137の空き領域のサイズが上記の使用量(サンプリングデータのデータサイズ)よりも小さいと判定された場合(ステップS206において「Yes」の場合)、トレース実行管理部1113は、トレースの実行要求(トレース条件の送信)により開始すべきトレースが実行できないと判定する。なぜなら、後の処理によって得られるサンプリングデータを、サンプリングデータ格納領域1137の空き領域に格納できないからである。
このように、トレース実行管理部1113は、サンプリングデータの取得前に、サンプリングデータ格納領域1137に十分な空き領域がなく、トレース結果を表示するためのサンプリングデータを取得できないことを判断できる。また、トレース実行管理部1113は、サンプリングデータの取得前に、上記のトレース実行指令とともに送信されてきたトレース条件の適否を判断できる。
トレース実行管理部1113が開始したいトレースの実行が不可能であると判定した場合、トレース実行管理部1113は、開発支援装置3−nにトレース実行不可通知を送信(ステップS207)し、ステップS204に戻る。
一方、サンプリングデータ格納領域1137の空き領域のサイズが上記の使用量以上の場合(ステップS206において「No」の場合)、すなわち、サンプリングデータをサンプリングデータ格納領域1137の空き領域に格納可能であると判定された場合、トレース実行管理部1113は、トレースの実行要求により開始したいトレースが実行可能であると判定する。
開始したいトレースが実行可能であると判定されると、トレース実行管理部1113は、開始したいトレースにトレースIDを割り当てる(ステップS208)。ここで説明する例においては、開発支援装置3−nから今回開始されるトレースに対して、トレースID「n」が割り当てられたとする。
トレースIDを割当後、トレース実行管理部1113は、トレース管理テーブル1133に、割り当てたトレースIDと、当該トレースIDのためのトレース実行指令を送信した開発支援装置3−nに関する情報(例えば、開発支援装置3−nのIPアドレス)と、トレースIDnのトレースのトレース条件と、を追加する(図4B)。
その後、トレース実行管理部1113は、メモリ管理部1115に対して、サンプリングデータ格納領域1137の空き領域に、サンプリングデータを記憶する記憶領域を確保するよう指令する(ステップSS209)。
記憶領域の確保を指令されたメモリ管理部1115は、検出したサンプリングデータ格納領域1137の空き領域に記憶領域を確保する処理を行う。
例えば、今、図8Aに示すように、サンプリングデータ格納領域1137が、RAM113のメモリアドレスaからメモリアドレスend(最終アドレス)まで確保されている場合を考える。図8Aは、サンプリングデータ格納領域の使用状況の一例を示す図である。今、トレース管理テーブル1133に登録されているトレースID1、2、・・・n−1のトレースが、図4Aに示すデータ格納領域記録領域1133−4に記録されているアドレスに記憶領域を確保しているとする。
すなわち、図8Aに示すように、トレースID1のトレースが開始アドレスaから終了アドレスbまでの領域Aを記憶領域として確保し、トレースID2のトレースが開始アドレスb+1から終了アドレスcまでの領域Bと、開始アドレスd+1から終了アドレスeまでの領域Cとを記憶領域として確保し、トレースIDn−1のトレースが開始アドレスc+1から終了アドレスdまでの領域Eを記憶領域として確保しているとする。また、トレース管理テーブルに登録された他のトレースが、アドレスd〜fまでの領域を記憶領域として確保しているとする。
サンプリングデータ格納領域1137において、開始アドレスfから最終アドレスendまでの領域は、未使用の空き領域となる。なお、サンプリングデータ格納領域1137において記憶領域として確保されている領域を「確保領域」と呼び、未使用の空き領域を「確保可能領域」と呼ぶこともある。
また、上記のように、トレースID2のトレースに対しては、連続していない2つの領域(領域B及び領域C)が1つの記憶領域として確保されている。このように、メモリ管理部1115は、複数の空き領域(空き領域のそれぞれが、連続していても連続していなくてもよい)を1つの記憶領域として確保できる。これにより、制御装置11においては、サンプリングデータ格納領域中の空き領域を無駄なく使用できる。
サンプリングデータ格納領域1137の確保領域と確保可能領域(空き領域)とが、図8Aに示すように確保されているときに、メモリ管理部1115は、トレースIDnとして割り当てられたトレースに対して、アドレスf+1から最終アドレスendまでの所定の位置に、トレースIDnのトレースのためのサンプリングデータを格納する記憶領域を確保する。
例えば、メモリ管理部1115は、図8Bに示すように、アドレスf+1からアドレスgまでの領域Nを、トレースIDnのトレースのための記憶領域として確保する。図8Bは、トレースIDnのトレースのために新たに記憶領域を確保した後のサンプリングデータ格納領域の使用状況を示す図である。本実施形態において、メモリ管理部1115は、トレース条件に基づいて算出されたサンプリングデータのデータ量分の領域を記憶領域として新たに確保する。これにより、メモリ管理部1115は、サンプリングデータ格納領域1137に無駄な空き領域を形成しないように記憶領域を確保できる。
なお、開発支援装置3−n又は他の開発支援装置3から他のトレース実行指令がさらに送信された場合、メモリ管理部1115は、サンプリングデータ格納領域1137のアドレスg+1から最終アドレスendまでの空き領域に、当該他のトレース実行指令により開始すべきトレースのためのサンプリングデータが格納可能であれば、当該空き領域に記憶領域を確保する。
すなわち、メモリ管理部1115は、サンプリングデータ格納領域1137の空き領域が許す限り、いくつでも記憶領域を確保できる。その結果、制御装置11においては、サンプリングデータ格納領域1137の空き領域が存在する限り、いくつでも(任意の数の)トレースを実行できる。
又は、例えば、全空き領域を1つのトレースのための記憶領域とするというように、サンプリングデータ格納領域1137の空き領域が許す限り、任意のサンプリング数(任意のデータ量)のサンプリングデータを取得できる。
記憶領域を確保後、メモリ管理部1115は、トレースIDnのトレースのために確保した記憶領域の開始アドレス(アドレスf+1)と終了アドレス(アドレスg)とを、トレース実行管理部1113に通知する。
その後、トレース実行管理部1113は、通知された開始アドレスf+1と終了アドレスgとを、トレース管理テーブル1133のデータ格納領域記録領域1133−4に記録する。その結果、図4Bに示すような、トレースIDnのトレースに関する情報(トレース情報)を追加したトレース管理テーブル1133が新たに生成される。図4Bは、トレースIDnのトレース情報が追加されたトレース管理テーブルを示す図である。
トレースIDの割当及び記憶領域の確保後、トレース実行管理部1113は、開発支援装置3−nに、割り当てたトレースIDを送信する(ステップS210)。これにより、開発支援装置3−nは、今回開始したいトレースに割り当てられたトレースIDを知ることができる。
なお、以後、開発支援装置3−nと制御装置11との間でトレースの実行に関する通信を行う場合、トレースIDを通信内容と一緒に送信する。これにより、開発支援装置3−n及び制御装置11は、受信したトレースに関する通信内容が、どのトレースに関する通信内容であるかを判定できる。
上記のステップS201〜S210を実行することにより、制御装置11において、サンプリングデータ取得準備が完了する。
一方、制御装置11においてトレースの実行可否を判断し、サンプリングデータ格納領域1137に記憶領域を確保する間、開発支援装置3−nのトレース部315は、制御装置11からトレース実行不可通知又はトレースID(トレース実行可否結果)の受信を検出した場合、例えばトレース実行表示画面Dに、受信結果を表示する(ステップS211)。
例えば、トレース実行表示画面Dのトレース実行状態表示領域D9の「実行状態」に「実行中」又は「待機中」と表示できる。その他、受信結果に基づいて、トレース実行表示画面Dの一部の表示色を変化させてもよい。
制御装置11からの受信結果を表示後、トレース部315は、制御装置11からの受信結果がトレース実行不可通知であるかトレースIDであるかどうかを判断する(ステップS212)。
トレース部315がトレース実行不可通知を受信したと判断した場合(ステップS212において「トレース実行不可」の場合)、ステップS201に戻る。すなわち、トレースが実行不可である間、開発支援装置3−nは待機状態となる。開発支援装置3−nが待機状態にある間、開発支援装置3−nの操作が可能であってもよい。この場合、例えば、トレース条件を新たに設定し直してもよい。これにより、開発支援装置3−nにおいて新たにトレース条件を設定可能となり、その後、新たに設定したトレース条件に基づいてトレースの実行可否を改めて判断できる。
一方、トレース部315が、トレース実行指令を送信した開始したいトレースに割り当てられたトレースIDを取得した場合、トレース部315は開始したいトレースが実行可能であると判断し、制御装置11に対してトレース実行指令を送信する(ステップS213)。そして、次のステップS3(サンプリングデータ取得)へ進む。
なお、上記の図7Dに示したトレース条件設定処理においては、制御装置11のトレース実行管理部1113がサンプリングデータ格納領域1137の使用量を算出していた。しかし、これに限られない。変形例として、図7Eに示すように、サンプリングデータ格納領域1137の使用量を、開発支援装置3−nのトレース部315において算出してもよい(ステップS203’)。この場合、開発支援装置3−nから、トレース条件に加えて、サンプリングデータ格納領域1137の使用量も制御装置11に送信される(ステップS204’)。
トレース条件を受信後は、制御装置11は、空き領域のサイズと上記の使用量との大小関係の比較のみを実行している(ステップS205’)。これにより、制御装置11における計算負荷を軽減できる。
(iii)サンプリングデータ取得処理の動作
次に、サンプリングデータ取得処理の動作について、図7Fを用いて説明する。
サンプリングデータの取得処理を開始すると、開発支援装置3−nにおいて、トレースの実行状態が監視される。サンプリングデータ取得処理時におけるトレースの実行状態の監視方法(ステップS301〜S304)は、図7Cを用いて説明したトレースの実行状態の表示方法(ステップS101〜S104)と同じであるため、説明を省略する。
トレースの実行状態を表示後、制御装置11において、サンプリングデータの取得が開始される。具体的には、トレース対象変数がサンプリングされ、サンプリングされたトレース対象変数が記憶領域に格納(記憶)される。さらに具体的には、以下のようにしてトレース対象変数がサンプリングされ記憶領域に格納される。
まず、トレース実行部1117が、トレース条件において設定されたタイミング(収集タイミング)にて、変数格納領域1135に格納されているトレース対象変数を取得(サンプリング)する(ステップS305)。その後、トレース実行部1117は、サンプリングしたトレース対象変数を対応する記憶領域に格納する(ステップS306)。
なお、トレース対象変数をサンプリングする際、トレース実行部1117は、トレース対象変数をサンプリングした時刻を取得して記憶領域に格納してもよい。この場合、トレース実行部1117は、サンプリングしたトレース対象変数と上記の時刻とを関連づけて記憶領域に格納する。これにより、サンプリングデータをグラフ上に表示する際に実時間のグラフ上にプロットしやすくなる。
ステップS306において、トレース実行部1117は、トレース管理テーブル1133の内容を参照して、サンプリングしたトレース対象変数をどの記憶領域に格納するか決定する。具体的には、トレースIDnのトレースのためのトレース対象変数を記憶領域に格納する場合には、トレース実行部1117は、トレース管理テーブル1133のトレースIDnのトレース情報を記録した行のデータ格納領域記録領域1133−4の内容を参照することにより、サンプリングデータ格納領域1137のアドレスf+1からアドレスgの範囲に、サンプリングしたトレース対象変数を格納すべき記憶領域が確保されていると判断できる。
なお、記憶領域にすでにいくつかのトレース対象変数が格納されている場合には、トレース実行部1117は、すでに格納されたデータの終端の直後に、取得したトレース対象変数値を格納する。
トレース対象変数を記憶領域に格納後、トレース実行管理部1113は、サンプリングデータの取得が終了したかどうかを確認する(ステップS307)。トレース実行管理部1113は、例えば、現在時刻が、サンプリングデータの取得(トレース対象変数のサンプリング)の開始時刻からトレース条件に示されていたサンプリング時間だけ経過した時刻となっているかどうかを判断することにより、サンプリングデータの取得が終了したかどうかを確認できる。
あるいは、トレース実行管理部1113は、取得したトレース対象変数の個数をカウントしておき、カウントされた個数がサンプリング時間内に取得されるトレース対象変数の個数と一致する場合に、サンプリングデータの取得が終了したと判断してもよい。
トレース実行管理部1113が、サンプリングデータの取得が完了していないと判断した場合(ステップS307において「No」の場合)、ステップS301に戻る。これにより、制御装置11においては、サンプリングデータの取得が完了するまで、トレースの実行状態の表示(監視)と、トレース対象変数のサンプリングを継続できる。
一方、サンプリングデータの取得が完了したと判断された場合(ステップS307において「Yes」の場合)、トレース実行管理部1113は、開発支援装置3−nに、サンプリングデータ取得終了通知を送信し(ステップS308)、次のステップS4(サンプリングデータ取得終了処理)に進む。
制御装置11においてトレース対象変数をサンプリングし記憶領域に格納する間、開発支援装置3−nのトレース部315は、サンプリングデータ取得終了通知を受信したかどうかを確認する(ステップS309)。トレース部315がサンプリングデータ取得終了通知を受信していないと判断した場合(ステップS309において「No」の場合)、ステップS301へ戻る。すなわち、トレース部315は、サンプリングデータ取得終了通知を受信するまで、トレースの実行状態を表示(監視)しつつ、サンプリングデータ取得の終了まで待機する。
一方、トレース部315がサンプリングデータ取得終了通知を受信したと判断した場合(ステップS309において「Yes」の場合)、次のステップS4(サンプリングデータ取得終了処理)に進む。
(iv)サンプリングデータ取得終了処理の動作
次に、サンプリングデータ取得終了処理の動作について、図7Gを用いて説明する。制御装置11においてサンプリングデータの取得が終了し、開発支援装置3−nがサンプリングデータ取得終了通知を受信後、サンプリングデータ受信部315−1が、制御装置11に対して、サンプリングデータ送信要求を送信する(ステップS401)。
制御装置11がサンプリングデータ送信要求を受信後、トレース実行管理部1113は、開発支援装置3−nにサンプリングデータを送信する(ステップS402)。
このとき、トレース実行管理部1113は、サンプリングデータ送信要求とともに送信されてきたトレースIDと、トレース管理テーブル1133に登録されているトレースIDとを比較して、一致するトレースIDのトレース情報に記録された開発支援装置(開発支援装置3−n)に、当該トレースIDのトレース情報に記録されている記憶領域に格納されているサンプリングデータを送信する。
サンプリングデータを送信中、サンプリングデータ受信部315−1が、サンプリングデータを受信し、開発支援装置3−nの記憶部33などに記憶する(ステップS403)。また、サンプリングデータ受信部315−1は、サンプリングデータの受信が完了したかどうかを判断する(ステップS404)。
サンプリングデータの受信が完了していないと判断された場合(ステップS404において「No」の場合)、ステップS402に戻り、サンプリングデータ受信部315−1は、サンプリングデータの受信を継続する。
一方、サンプリングデータの受信が完了したと判断された場合(ステップS404において「Yes」の場合)、サンプリングデータ受信部315−1は、サンプリングデータ受信完了通知を、制御装置11に送信する(ステップS405)。そして、開発支援装置3−nにおいて、サンプリングデータ取得を完了する。
このように、サンプリングデータ受信部315−1は、制御装置11において取得したサンプリングデータを開発支援装置3−nにおいて取得し参照できる。その結果、開発支援装置3−nにおいてサンプリングデータ(トレース結果)を参照できる。
一方、サンプリングデータを開発支援装置3−nに送信中、トレース実行管理部1113は、サンプリングデータ受信完了通知を受信したかどうかを判断する(ステップS406)。サンプリングデータ受信完了通知を受信していないと判断された場合(ステップS406において「No」の場合)、ステップS402に戻り、トレース実行管理部1113は、サンプリングデータの送信を継続する。
一方、サンプリングデータ受信完了通知を受信したと判断された場合(ステップS406において「Yes」の場合)、次のステップS407に進む。
制御装置11においてサンプリングデータ受信完了通知が受信された後、トレース実行管理部1113は、メモリ管理部1115に対して、送信が完了したサンプリングデータが格納されていた記憶領域を開放するように指令する(ステップS407)。
具体的には、メモリ管理部1115は、トレース実行管理部1113から受信した開始アドレスから終了アドレスまでの記憶領域を、空き領域とする。
すなわち、メモリ管理部1115は、トレース(サンプリングデータ取得)の終了後、終了したトレース(サンプリングデータの取得が終了したトレース)のサンプリングデータを記憶していた記憶領域を空き領域とする。
これにより、制御装置11においては、以後実行されるトレースのための記憶領域をサンプリングデータ格納領域1137内により多く確保できる。
例えば、次のようにして、メモリ管理部1115は、トレース実行管理部1113から受信した開始アドレスから終了アドレスまでの記憶領域を、空き領域とする。
まず、トレースIDnのトレースのためのサンプリングデータが開発支援装置3−nにおいて受信が完了した後、トレース実行管理部1113は、トレース管理テーブル1133において、トレースIDnのトレースのために確保されていた記憶領域の開始アドレス(アドレスf+1)と終了アドレス(アドレスg)とを参照する。
その後、トレース実行管理部1113は、当該開始アドレス(アドレスf+1)と終了アドレス(アドレス)gを、メモリ管理部1115に対して通知して、開始アドレスと終了アドレスとにより定められる記憶領域を空き領域にするように指令する。これにより、メモリ管理部1115は、開始アドレスと終了アドレスとにより定められる記憶領域を空き領域にできる。なお、メモリ管理部1115は、例えば、空き領域とするサンプリングデータ格納領域1137内の領域に、上記の空き領域を表す記憶値(“00”又は“FF”(16進数表示))を書き込むことにより、当該領域を空き領域とできる。
記憶領域を開放後、トレース実行管理部1113は、トレース実行状態を更新する(ステップS408)。具体的には、トレース実行管理部1113は、サンプリングデータの送信が完了したトレースIDnのトレース情報を、トレース管理テーブル1133から削除する。トレース管理テーブル1133からトレースIDnのトレース情報が削除されることに伴い、割り当てられていたトレースIDも削除(開放)される(ステップS409)。そして、制御装置11おいても、トレースIDnのトレースのためのサンプリングデータ取得が終了する。
なお,開発支援装置3−nにおいては、サンプリングデータ受信完了通知を送信後、サンプリングデータを受信完了したトレースのトレースIDを削除する。
上記において説明したステップS409後のトレース管理テーブル1133は、例えば、図4Cに示すようになっている。図4Cは、サンプリングデータ取得終了後のトレース管理テーブルの一例を示す図である。
図4Cに示すように、トレースIDnのトレース情報は、サンプリングデータ取得終了後に削除されている。また、トレースIDn−1のトレース以外のトレース情報も削除されている(すなわち、サンプリングデータの取得が完了している)。
トレースの実行状態が、図4Cのトレース管理テーブル1133に示す実行状態である場合、サンプリングデータ格納領域1137の使用状況は、図8Cとなっている。図8Cは、サンプリングデータ取得終了後のサンプリングデータ格納領域の使用状況の一例を示す図である。
図8Cに示すように、実行中のトレースIDn−1のトレースのための記憶領域(領域E)以外は、空き領域となっている。すなわち、サンプリングデータの取得が終了した記憶領域は、新たに記憶領域を確保可能(サンプリングデータを格納可能)な領域となっており、以後新たなトレース条件が送信され、サンプリングデータを格納可能と判断されたときは、新たな記憶領域が確保される。
図8A〜図8Cに示すように、本実施形態の制御装置11においては、実行中(または実行予定)のトレースの数及び確保されている記憶領域に応じて、記憶領域を確保可能な空き領域のサイズが動的に変化している。このように、本実施形態の制御装置11においては、未使用又は使用済みとなったサンプリングデータ格納領域1137内の領域に新たに記憶領域を確保して、効率よくサンプリングデータ格納領域1137を使用できる。
その結果、未使用又は使用済みとなった領域の許す限り、任意のデータ量のサンプリングデータを取得でき、又は、任意の数の記憶領域を確保できる。すなわち、任意のデータ量のサンプリングデータを取得でき、又は、任意の数のトレースを実行できる。
2.実施形態の効果
第1実施形態の効果は、下記のように記載できる。
制御装置11(制御装置の一例)は、RAM113(メモリの一例)と、タスク実行部1111(タスク実行部の一例)と、トレース実行管理部1113(トレース実行管理部の一例)と、メモリ管理部1115(メモリ管理部の一例)と、トレース実行部1117(トレース実行部の一例)と、を備える。
RAM113は、サンプリングデータ格納領域1137(サンプリングデータ格納領域の一例)を有する。タスク実行部1111は、所定のタスクを所定の周期にて繰り返し実行する。トレース実行管理部1113は、トレースの実行要求(トレースの実行要求の一例)を外部から受信した際に、サンプリングデータ(サンプリングデータの一例)をサンプリングデータ格納領域1137内の空き領域(空き領域の一例)に格納可能であれば、トレースを実行可能と判断する。
メモリ管理部1115は、サンプリングデータ格納領域1137内の空き領域を検出する。また、メモリ管理部1115は、トレースが実行可能であると判断されたときに、記憶領域(記憶領域の一例)を空き領域に確保する。トレース実行部1117は、トレースが実行可能であると判断されたときに、サンプリングデータを取得し記憶領域に格納する。
制御装置11においては、タスク実行部1111によって所定のタスクが所定の周期にて繰り返し実行されている。タスクが所定の周期にて繰り返し実行されることにより、制御装置11における入出力信号及び/又は内部変数は時間的に変化する。タスクが繰り返し実行されているときに、トレースの実行要求が外部から受信されると、トレース実行管理部1113が、メモリ管理部1115に対してサンプリングデータ格納領域1137内の空き領域を検出するように指令する。
メモリ管理部1115がサンプリングデータ格納領域1137内の空き領域を検出後、トレース実行管理部1113が、検出された空き領域にサンプリングデータを格納可能かどうか判断する。サンプリングデータを空き領域に格納できると判断した場合には、トレース実行管理部1113は、実行要求されたトレースが実行可能であると判断する。
トレース実行管理部1113においてトレースが実行可能と判断された場合、メモリ管理部1115が、サンプリングデータを格納する記憶領域を空き領域に確保する。その後、トレース実行部1117が、サンプリングデータを取得し、確保された記憶領域にサンプリングデータを記憶する。
制御装置11においては、トレース実行管理部1113が、トレースの実行要求を外部から受信した際に、サンプリングデータをサンプリングデータ格納領域1137内の空き領域に格納可能であれば、トレースを実行可能と判断する。そして、トレースが実行可能であると判断されたときに、メモリ管理部1115がサンプリングデータを記憶する記憶領域を空き領域に確保する。
これにより、制御装置11は、RAM113中(サンプリングデータ格納領域1137内)の空き領域をサンプリングデータのデータ量に応じて任意のサイズにて効率よく確保して、サンプリングデータをサンプリングデータ格納領域内に格納できる。その結果、制御装置11においては、所望のデータ量及び/又は数のトレースを実行できる。
本実施形態において、メモリ管理部1115は、サンプリングデータ格納領域1137中の複数の空き領域を1つの記憶領域として確保している。これにより、制御装置11においては、サンプリングデータ格納領域1137内の空き領域を無駄なく使用できる。
本実施形態において、メモリ管理部1115は、トレースの終了後、終了したトレースのサンプリングデータを記憶していた記憶領域を空き領域としている。これにより、制御装置11においては、以後実行されるトレースのための記憶領域をサンプリングデータ格納領域1137内により多く確保できる。
制御システム100(制御システムの一例)は、制御装置11と開発支援装置3(又は、開発支援装置3−n)(開発支援装置の一例)とを備える。
開発支援装置3は、サンプリングデータ受信部315−1(サンプリングデータ受信部の一例)と、トレース監視部315−9(トレース監視部の一例)と、トレース実行状態表示部315−11(トレース実行状態表示部の一例)と、を有する。サンプリングデータ受信部315−1は、制御装置11からサンプリングデータを受信する。トレース監視部315−9は、制御装置11におけるトレースの実行状態を監視する。トレース実行状態表示部315−11は、トレースの実行状態を表示する。
制御システム100においては、開発支援装置3(又は、開発支援装置3−n)がサンプリングデータ受信部315−1を有することにより、制御装置11において取得したサンプリングデータを開発支援装置3(又は、開発支援装置3−n)において取得し参照できる。その結果、開発支援装置3(又は、開発支援装置3−n)においてトレース結果を参照できる。
また、制御システム100においては、開発支援装置3(又は、開発支援装置3−n)がトレース監視部315−9を有することにより、開発支援装置3(又は、開発支援装置3−n)においてトレースの実行状態を監視できる。さらに、開発支援装置3(又は、開発支援装置3−n)がトレース実行状態表示部315−11を有することにより、開発支援装置3(又は、開発支援装置3−n)においてトレースの実行状態を視覚的に確認できる。
制御システム100において、トレース監視部315−9は、空き領域のサイズをトレースの実行状態として監視している。これにより、開発支援装置3(又は、開発支援装置3−n)において、サンプリングデータ格納領域の空き領域のサイズを確認しながらトレース条件を設定できる。
制御システム100において、トレース監視部315−9は、現在の空き領域に格納可能なデータ量を、トレースの実行状態として監視している。これにより、開発支援装置3(又は、開発支援装置3−n)において、どの程度のサンプリングデータが取得可能であるかを確認しながらトレース条件を設定できる。
制御システム100において、トレース監視部315−9は、制御装置11における実行トレース数(実行トレース数の一例)と、制御装置11において現在登録されているトレース数である登録トレース数(登録トレース数の一例)とを、トレースの実行状態として監視している。これにより、開発支援装置3(又は、開発支援装置3−n)(自身の開発支援装置の一例)および開発支援装置3(又は,開発支援装置3−1、3−2、・・・3−(n−1))(他の開発支援装置の一例)から要求されたトレースの実行状態を確認できる。
トレース監視部315−9は、実行中のトレースの設定状態を、トレースの実行状態として監視してもよい。これにより、どの設定のトレースが実行中であるかを確認できる。
3.他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
本発明は、入出力信号及び内部変数をトレース可能な制御装置、制御システム、データトレース方法、及び、プログラムに広く適用できる。
100 制御システム
1 PLCシステム
11 制御装置
111 CPU
1111 タスク実行部
1113 トレース実行管理部
1115 メモリ管理部
1117 トレース実行部
113 RAM
1131 ユーザプログラム
1133 トレース管理テーブル
1133−1 トレースID記録領域
1133−2 トレース要求元記録領域
1133−3 トレース条件記録領域
1133−4 データ格納領域記録領域
1133−5 トレース実行状態記録領域
1135 変数格納領域
1137 サンプリングデータ格納領域
115 ROM
115a システムプログラム
117 通信インターフェース
13 入力ユニット
15 出力ユニット
17 電源ユニット
3、3−1、3−2、・・・、3−n 開発支援装置
31 CPU
311 プログラミング部
313 デバッグ部
315 トレース部
315−1 サンプリングデータ受信部
315−3 トレース結果表示部
315−5 トレース条件設定部
315−7 トレース開始指示部
315−9 トレース監視部
315−11 トレース実行状態表示部
33 記憶部
33a 開発支援プログラム
35 操作部
37 通信インターフェース
39 表示部
5 信号入力部
7 制御対象機器
A、B、C、E、N 領域
D トレース実行表示画面
D1 空き領域サイズ表示領域
D2 格納可能データ量表示領域
D3 サンプリング時間設定値表示領域
D4 トレース対象変数設定表示領域
D5 トレース開始ボタン表示領域
D6 メモリ使用量表示領域
D7 収集タイミング設定表示領域
D8 トレース数表示領域
D9 トレース実行状態表示領域
D10 現在表示トレース設定名表示領域

Claims (15)

  1. サンプリングデータ格納領域を有するメモリと、
    所定のタスクを所定の周期にて繰り返し実行するタスク実行部と、
    前記タスクを実行することによる入出力信号及び/又は内部変数の時間的な変化を前記入出力信号及び/又は前記内部変数をサンプリングして記憶したサンプリングデータを用いて追跡するトレースの実行要求を外部から受信した際に、前記サンプリングデータを前記サンプリングデータ格納領域内の空き領域に格納可能であれば、前記トレースを実行可能と判断するトレース実行管理部と、
    前記空き領域を検出し、前記トレースが実行可能であると判断されたときに、前記サンプリングデータを格納する記憶領域を前記空き領域に確保するメモリ管理部と、
    前記トレースが実行可能であると判断されたときに、前記サンプリングデータを取得し前記記憶領域に格納するトレース実行部と、
    を備える制御装置。
  2. 前記メモリ管理部は、前記サンプリングデータ格納領域中の複数の空き領域を1つの記憶領域として確保する、請求項1に記載の制御装置。
  3. 前記メモリ管理部は、前記トレースの終了後、終了したトレースのサンプリングデータを記憶していた記憶領域を空き領域とする、請求項1又は2に記載の制御装置。
  4. サンプリングデータ格納領域を有するメモリと、
    タスクを所定の周期にて繰り返し実行するタスク実行部と、
    前記タスクを実行することによる入出力信号及び/又は内部変数の時間的な変化を前記入出力信号及び/又は前記内部変数をサンプリングして記憶したサンプリングデータを用いて追跡するトレースの実行要求を外部から受信した際に、前記入出力信号及び/又は前記内部変数をサンプリングして記憶したサンプリングデータを前記サンプリングデータ格納領域内の空き領域に格納可能であれば、前記トレースを実行可能と判断するトレース実行管理部と、
    前記空き領域を検出し、前記トレースが実行可能であると判断されたときに、前記サンプリングデータを格納する記憶領域を前記空き領域に確保するメモリ管理部と、
    前記トレースが実行可能であると判断されたときに、前記サンプリングデータを取得し前記記憶領域に格納するトレース実行部と、を有する制御装置と、
    前記制御装置から前記サンプリングデータを受信するサンプリングデータ受信部と、前記制御装置におけるトレースの実行状態を監視するトレース監視部と、前記トレースの実行状態を表示するトレース実行状態表示部と、を有する開発支援装置と、
    を備える制御システム。
  5. 前記メモリ管理部は、前記サンプリングデータ格納領域中の複数の空き領域を1つの記憶領域として確保する、請求項4に記載の制御システム。
  6. 前記メモリ管理部は、前記トレースの終了後、終了したトレースのサンプリングデータを記憶していた記憶領域を空き領域とする、請求項4又は5に記載の制御システム。
  7. 前記トレース監視部は、前記空き領域のサイズを前記トレースの実行状態として監視する、請求項4〜6のいずれかに記載の制御システム。
  8. 前記トレース監視部は、現在の空き領域に格納可能なデータ量を、前記トレースの実行状態として監視する、請求項4〜7のいずれかに記載の制御システム。
  9. 前記トレース監視部は、前記制御装置における実行トレース数と、前記制御装置において現在登録されている登録トレース数とを、前記トレースの実行状態として監視する、請求項4〜8のいずれかに記載の制御システム。
  10. 前記トレース監視部は、実行中のトレースの設定状態を、トレースの実行状態として監視する、請求項4〜9のいずれかに記載の制御システム。
  11. タスクを所定の周期にて繰り返し実行するステップと、
    前記タスクを実行することによる入出力信号及び/又は内部変数の時間的な変化を前記入出力信号及び/又は前記内部変数をサンプリングして記憶したサンプリングデータを用いて追跡するトレースの実行要求を外部から受信した際に、メモリに確保されたサンプリングデータ格納領域内の空き領域を検出するステップと、
    前記入出力信号及び/又は前記内部変数をサンプリングして記憶したサンプリングデータを前記サンプリングデータ格納領域内の空き領域に格納可能であれば、前記トレースを実行可能と判断するステップと、
    トレースが実行可能であると判断されたときに、前記サンプリングデータを格納する記憶領域を前記空き領域に確保するステップと、
    トレースが実行可能であると判断されたときに、前記サンプリングデータを取得し前記記憶領域に格納するステップと、
    を含むデータトレース方法。
  12. 前記記憶領域を前記空き領域に確保するステップにおいて、前記サンプリングデータ格納領域中の複数の空き領域が1つの記憶領域として確保される、請求項11に記載のデータトレース方法。
  13. 終了したトレースのサンプリングデータを記憶していた記憶領域を空き領域とするステップをさらに含む、請求項11又は12に記載のデータトレース方法。
  14. 前記トレースの実行状態を監視し表示するステップをさらに含む、請求項11〜13のいずれかに記載のデータトレース方法。
  15. 請求項11〜14のいずれかに記載のデータトレース方法をコンピュータに実行させるためのプログラム。
JP2014052814A 2014-03-14 2014-03-14 制御装置、制御システム、データトレース方法、及びプログラム Active JP6252269B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014052814A JP6252269B2 (ja) 2014-03-14 2014-03-14 制御装置、制御システム、データトレース方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014052814A JP6252269B2 (ja) 2014-03-14 2014-03-14 制御装置、制御システム、データトレース方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2015176387A JP2015176387A (ja) 2015-10-05
JP6252269B2 true JP6252269B2 (ja) 2017-12-27

Family

ID=54255517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014052814A Active JP6252269B2 (ja) 2014-03-14 2014-03-14 制御装置、制御システム、データトレース方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6252269B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7159016B2 (ja) * 2018-11-20 2022-10-24 キヤノン株式会社 ネットワーククライアント及びその制御方法
JP7282287B1 (ja) * 2022-08-17 2023-05-26 三菱電機株式会社 制御装置、制御方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01223504A (ja) * 1988-03-02 1989-09-06 Mitsubishi Electric Corp プログラマブルコントローラのサンプリングトレース方式
JP4881168B2 (ja) * 2007-01-17 2012-02-22 株式会社リコー ログ情報管理方法および情報機器
JP5252014B2 (ja) * 2011-03-15 2013-07-31 オムロン株式会社 制御装置、制御システム、ツール装置および収集指示プログラム

Also Published As

Publication number Publication date
JP2015176387A (ja) 2015-10-05

Similar Documents

Publication Publication Date Title
WO2015136959A1 (ja) 制御システム、方法、プログラムおよび情報処理装置
US9984244B2 (en) Controller, information processing apparatus, and recording medium
JP6493506B1 (ja) 産業用制御システムとその支援装置、制御支援方法およびプログラム
JP5701458B1 (ja) 作画装置および制御システム
JP2015125654A (ja) 制御装置および通信制御方法
TW201833696A (zh) 資料處理裝置、資料處理方法、設定管理裝置及資料處理系統
JP4883314B2 (ja) Plcを用いたデータトレースシステム
JP2016110460A (ja) プログラマブルコントローラ、プログラマブルコントローラの制御方法およびプログラム
JP6252269B2 (ja) 制御装置、制御システム、データトレース方法、及びプログラム
JP6744557B2 (ja) 動作データ収集システム、動作データ収集方法、及びプログラム
WO2019167512A1 (ja) 表示装置、画面生成方法、および画面生成プログラム
JP2020061055A (ja) 制御システム、制御装置および制御方法
CN111142469B (zh) 一种plc的组态程序的调试方法及调试系统
TWI550372B (zh) 可程式控制器及可程式控制器之控制方法
JP6169306B2 (ja) 制御システム及びプログラマブルロジックコントローラ
JP4811678B2 (ja) Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体
JP6198628B2 (ja) 自立制御システム、自立制御装置、自立制御方法およびプログラム
JPWO2016071974A1 (ja) リモート制御装置および制御システム
CN114424175A (zh) 设备管理装置以及软件生成方法
JP2017111563A (ja) 情報表示装置、方法及びプログラム
JP6746003B2 (ja) 管理装置、管理方法及びプログラム
CN113661451B (zh) 程序创建辅助装置、程序创建辅助方法及计算机可读取的记录介质
WO2022190427A1 (ja) 開発支援装置、開発支援方法、及び、開発支援プログラム
WO2022190428A1 (ja) 開発支援装置、開発支援方法、及び、開発支援プログラム
WO2020026738A1 (ja) サポート装置およびサポートプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161213

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170124

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171023

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171113

R150 Certificate of patent or registration of utility model

Ref document number: 6252269

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150