(57)【要約】【課題】制御装置と情報処理装置とを備える制御システムにおいて、イベントの発生時において、そのイベントの要因の発生時における制御装置の状態を容易に知ることができる技術を提供する。【解決手段】制御装置は、予め定められた事象と、当該事象に関連する変数とを対応付けたリンク情報を記憶する。制御装置は、予め定められた事象の発生に応答して、発生した事象の情報と、リンク情報に示される、事象に関連する所定の変数の現在地とを、時刻情報と関連付けて第１のログ情報としてメモリに記憶させる。また、制御装置は、予め定められた周期に従って、所定の変数の値を含む情報と時刻情報とを関連付けて第２のログ情報としてメモリに記憶させる。情報処理装置は、リンク情報を制御装置から取得し、リンク情報と第２のログ情報とに基づいて、第１のログ情報に示される事象の情報と対応付けられる変数を示す情報をモニタ３１４に表示する。【選択図】図１１
2015176370.tif 000002
【特許請求の範囲】
【請求項１】
制御システムであって、
ユーザプログラムを周期的またはイベント的に実行する制御装置と、
前記制御装置に接続可能な情報処理装置とを備え、
前記制御装置は、
予め定められた事象と、当該事象に関連する変数とを対応付けたリンク情報を記憶するための第１の記憶部と、
予め定められた事象の発生に応答して、当該発生した事象の情報と、前記リンク情報に示される、当該事象に関連する所定の変数の現在値とを、時刻情報と関連付けて第１のログ情報として第１の記憶部に書き込むための第１の書き込み部と、
予め定められた周期に従って、前記所定の変数の値を含む情報と時刻情報とを関連付けて第２のログ情報として前記第１の記憶部に書き込むための第２の書き込み部とを備え、
前記情報処理装置は、
前記第１のログ情報および前記第２のログ情報を前記制御装置から取得する通信部と、
情報を表示するためのモニタと、
前記リンク情報を記憶するための第２の記憶部と、
前記情報処理装置の動作を制御する制御部とを備え、
前記制御部は、前記通信部により前記取得した前記第１のログ情報に示される前記発生した事象の情報及び前記リンク情報に示される、前記事象に関連する変数の、前記事象の発生の際の当該事象に関連する所定の変数の値を前記モニタに表示させるログ表示部と、
前記リンク情報と前記第２のログ情報とに基づいて、前記第１のログ情報に示される前記発生した事象の情報と対応付けられる前記所定の変数の値を示す情報を、前記モニタに表示させるリンク表示部とを含む、制御システム。
【請求項２】
前記情報処理装置の前記制御部は、前記事象と、前記変数の指定との対応関係を編集する入力操作に応じて前記リンク情報を生成するリンク情報生成部を含み、
前記通信部により前記生成した前記リンク情報を前記制御装置へ送信し、
前記制御装置は、前記情報処理装置から前記リンク情報を受信して記憶し、
前記情報処理装置から、前記第１のログ情報および前記第２のログ情報の要求を受け付けると、前記第１のログ情報、前記第２のログ情報および前記リンク情報を前記情報処理装置へ送信し、
前記情報処理装置の前記制御部は、前記制御装置から前記リンク情報を受信して、前記受信した前記リンク情報を前記第２の記憶部に記憶させる、請求項１に記載の制御システム。
【請求項３】
前記情報処理装置の前記リンク表示部は、
前記第１のログ情報に示される前記発生した事象の情報と対応付けられる前記変数の値を前記モニタに表示するための入力操作に応じて、当該変数の値を前記モニタに表示させる、請求項１または２に記載の制御システム。
【請求項４】
前記リンク情報は、前記事象と対応付けられる前記変数の値の時刻情報の範囲を含み、
前記制御部は、前記事象と、前記変数の指定との対応関係を編集する入力操作に応じて、前記事象と対応付けられる前記変数の値の時刻情報の範囲を含む前記リンク情報を生成し、
前記リンク表示部は、前記発生した事象の情報と対応付けられる前記変数の値を、前記リンク情報に示される前記時刻情報の範囲に従って前記モニタに表示させる、請求項１から３のいずれか１項に記載の制御システム。
【請求項５】
制御システムのログを表示するための方法であって、
前記制御システムは、ユーザプログラムを周期的またはイベント的に実行する制御装置と、前記制御装置に接続可能な情報処理装置とを備え、前記制御装置は、予め定められた事象と、当該事象に関連する変数とを対応付けたリンク情報を記憶するための第１の記憶部を備え、前記情報処理装置は、前記リンク情報を記憶するための第２の記憶部と、モニタとを備え、
前記方法は、
前記制御装置が、予め定められた事象の発生に応答して、当該発生した事象の情報と、前記リンク情報に示される、当該事象に関連する所定の変数の現在値とを、時刻情報と関連付けて第１のログ情報として第１の記憶部に書き込むステップと、
前記制御装置が、予め定められた周期に従って、前記所定の変数の値を含む情報と時刻情報とを関連付けて第２のログ情報として前記第１の記憶部に書き込むステップと、
前記情報処理装置が、第１のログ情報および前記第２のログ情報を前記制御装置から取得するステップと、
前記情報処理装置が、前記取得した前記第１のログ情報に示される前記発生した事象の情報及び前記リンク情報に示される、前記事象に関連する変数の、前記事象の発生の際の当該事象に関連する所定の変数の値をモニタに表示するステップと、
前記情報処理装置が、前記リンク情報と前記第２のログ情報とに基づいて、前記第１のログ情報に示される前記発生した事象の情報と対応付けられる前記所定の変数の値を示す情報を前記モニタに表示するステップとを含む、方法。
【請求項６】
ユーザプログラムを周期的またはイベント的に実行する制御装置と、前記制御装置に接続可能な情報処理装置とにより構成される制御システムの前記情報処理装置であって、
前記制御装置は、予め定められた事象と、当該事象に関連する変数とを対応付けたリンク情報を記憶するための第１の記憶部と、予め定められた事象の発生に応答して、当該発生した事象の情報と、前記リンク情報に示される、当該事象に関連する所定の変数の現在値と、時刻情報とを関連付けて第１のログ情報として第１の記憶部に書き込むための第１の書き込み部と、予め定められた周期に従って、前記所定の変数の値を含む情報と時刻情報とを関連付けて第２のログ情報として前記第１の記憶部に書き込むための第２の書き込み部とを備え、
前記情報処理装置は、
前記第１のログ情報および前記第２のログ情報を前記制御装置から取得する通信部と、
情報を表示するためのモニタと、
前記リンク情報を記憶するための第２の記憶部と、
前記情報処理装置の動作を制御する制御部とを備え、
前記制御部は、前記通信部により前記取得した前記第１のログ情報に示される前記発生した事象の情報及び前記リンク情報に示される、前記事象に関連する変数の、前記事象の発生の際の当該事象に関連する所定の変数の値を前記モニタに表示させるログ表示部と、
前記リンク情報と前記第２のログ情報とに基づいて、前記第１のログ情報に示される前記発生した事象の情報と対応付けられる前記所定の変数の値を示す情報を、前記モニタに表示させるリンク表示部とを含む、情報処理装置。
【請求項７】
ユーザプログラムを周期的またはイベント的に実行する制御装置と、前記制御装置に接続可能な情報処理装置とにより構成される制御システムの、前記情報処理装置の動作を制御するためのプログラムであって、
前記制御装置は、予め定められた事象と、当該事象に関連する変数とを対応付けたリンク情報を記憶するための第１の記憶部と、予め定められた事象の発生に応答して、当該発生した事象の情報と、前記リンク情報に示される、当該事象に関連する所定の変数の現在値と、時刻情報とを関連付けて第１のログ情報として第１の記憶部に書き込むための第１の書き込み部と、予め定められた周期に従って、前記所定の変数の値を含む情報と時刻情報とを関連付けて第２のログ情報として前記第１の記憶部に書き込むための第２の書き込み部とを備え、
前記情報処理装置は、前記事象と、前記変数の指定とを対応付けたリンク情報を記憶するための第２の記憶部、プロセッサ、およびモニタを備え、
前記プログラムは、前記プロセッサに、
第１のログ情報および前記第２のログ情報を前記制御装置から取得するステップと、
前記取得した前記第１のログ情報に示される前記発生した事象の情報をモニタに表示するステップと、
前記リンク情報と前記第２のログ情報とに基づいて、前記第１のログ情報に示される前記発生した事象の情報と対応付けられる前記変数を示す情報を前記モニタに表示するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザプログラムを周期的またはイベント的に実行する制御装置を含む制御システムおよび制御システムの情報処理装置に関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Programmable  Logic  Controller；以下「ＰＬＣ」とも称す）などの制御装置を主たる構成とした制御システムによって制御される。このような制御システムでは、システム構成時や運転時に発生した不具合を事後的に検証できるように、各種のログ出力機能が搭載されている。
【０００３】
また、ＰＬＣは、ユーザプログラムの実行に伴う変数の変化についてデータトレースすることを可能とするため、例えばユーザプログラムに含まれるトレースサンプリング命令が実行された場合に、ユーザプログラムにおいて参照および更新される変数を収集するよう構成されている。例えば、プログラミングのデバッグを目的に、変数のトレースが行われる。例えば、プログラムの実行に際し、プログラミング実行やデータの入力があったタイミングでデータを収集することが行われている。
【０００４】
このような機能を搭載した制御装置に関する先行技術文献として、特開２０１２−１９４６８０号公報（特許文献１）は、機器の動作を制御するＰＬＣにおいて、ユーザプログラムにトレースサンプリング命令が含まれている場合に、どのトレースサンプリング命令によりどの収集結果が得られたのかを利用者が判断することができる技術を記載している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１９４６８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
制御装置は、プログラムの実行や、ネットワークの通信状態や、外部環境の状況に応じて種々のイベントが発生する。イベントが発生した場合において、そのイベントの要因を特定し、そのイベント発生時のＰＬＣの動作状態を再現し、イベント発生の直前のＰＬＣの動作状態の確認すること等を目的に、変数の状態を知ることが必要となることがある。
【０００７】
しかし、従来の制御装置においては、イベント発生時刻を基準として、そのイベントに関連する変数の値のデータ列を参照し、イベントの発生時刻やイベントの内容と照合することでデータを確認する必要があり、煩雑な手順が必要となる。
【０００８】
そこで、本発明は、イベントの発生時において、そのイベントの要因の発生時における制御装置の状態を容易に知ることができる制御システム、方法、プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のある局面に係る制御システムは、ユーザプログラムを周期的またはイベント的に実行する制御装置と、制御装置に接続可能な情報処理装置とを備える。制御装置は、予め定められた事象と、当該事象に関連する変数とを対応付けたリンク情報を記憶するための第１の記憶部と、予め定められた事象の発生に応答して、当該発生した事象の情報と、リンク情報に示される、当該事象に関連する所定の変数の現在値とを、時刻情報と関連付けて第１のログ情報として第１の記憶部に書き込むための第１の書き込み部と、予め定められた周期に従って、所定の変数の値を含む情報と時刻情報とを関連付けて第２のログ情報として第１の記憶部に書き込むための第２の書き込み部とを備える。情報処理装置は、第１のログ情報および第２のログ情報を制御装置から取得する通信部と、情報を表示するためのモニタと、リンク情報を記憶するための第２の記憶部と、情報処理装置の動作を制御する制御部とを備える。制御部は、通信部により取得した第１のログ情報に示される発生した事象の情報及びリンク情報に示される、事象に関連する変数の、事象の発生の際の当該事象に関連する所定の変数の値をモニタに表示させるログ表示部と、リンク情報と第２のログ情報とに基づいて、第１のログ情報に示される発生した事象の情報と対応付けられる所定の変数の値を示す情報を、モニタに表示させるリンク表示部とを含む。
【００１０】
好ましくは、情報処理装置の制御部は、事象と、変数の指定との対応関係を編集する入力操作に応じてリンク情報を生成するリンク情報生成部を含み、通信部により生成したリンク情報を制御装置へ送信する。制御装置は、情報処理装置からリンク情報を受信して記憶し、情報処理装置から、第１のログ情報および第２のログ情報の要求を受け付けると、第１のログ情報、第２のログ情報およびリンク情報を情報処理装置へ送信し、情報処理装置の制御部は、制御装置からリンク情報を受信して、受信したリンク情報を第２の記憶部に記憶させる。
【００１１】
好ましくは、情報処理装置のリンク表示部は、第１のログ情報に示される発生した事象の情報と対応付けられる変数の値をモニタに表示するための入力操作に応じて、当該変数の値をモニタに表示させる。
【００１２】
好ましくは、リンク情報は、事象と対応付けられる変数の値の時刻情報の範囲を含み、制御部は、事象と、変数の指定との対応関係を編集する入力操作に応じて、事象と対応付けられる変数の値の時刻情報の範囲を含むリンク情報を生成し、リンク表示部は、発生した事象の情報と対応付けられる変数の値を、リンク情報に示される時刻情報の範囲に従ってモニタに表示させる。
【００１３】
別の実施形態に従うと、制御システムのログを表示するための方法が提供される。制御システムは、ユーザプログラムを周期的またはイベント的に実行する制御装置と、制御装置に接続可能な情報処理装置とを備える。制御装置は、予め定められた事象と、当該事象に関連する変数とを対応付けたリンク情報を記憶するための第１の記憶部を備え、情報処理装置は、リンク情報を記憶するための第２の記憶部と、モニタとを備える。方法は、制御装置が、予め定められた事象の発生に応答して、当該発生した事象の情報と、リンク情報に示される、当該事象に関連する所定の変数の現在値とを、時刻情報と関連付けて第１のログ情報として第１の記憶部に書き込むステップと、制御装置が、予め定められた周期に従って、所定の変数の値を含む情報と時刻情報とを関連付けて第２のログ情報として第１の記憶部に書き込むステップと、情報処理装置が、第１のログ情報および第２のログ情報を制御装置から取得するステップと、情報処理装置が、取得した第１のログ情報に示される発生した事象の情報及びリンク情報に示される、事象に関連する変数の、事象の発生の際の当該事象に関連する所定の変数の値をモニタに表示するステップと、情報処理装置が、リンク情報と第２のログ情報とに基づいて、第１のログ情報に示される発生した事象の情報と対応付けられる所定の変数の値を示す情報をモニタに表示するステップとを含む。
【００１４】
別の実施形態に従うと、ユーザプログラムを周期的またはイベント的に実行する制御装置と、制御装置に接続可能な情報処理装置とにより構成される制御システムの情報処理装置が提供される。制御装置は、予め定められた事象と、当該事象に関連する変数とを対応付けたリンク情報を記憶するための第１の記憶部と、予め定められた事象の発生に応答して、当該発生した事象の情報と、リンク情報に示される、当該事象に関連する所定の変数の現在値と、時刻情報とを関連付けて第１のログ情報として第１の記憶部に書き込むための第１の書き込み部と、予め定められた周期に従って、所定の変数の値を含む情報と時刻情報とを関連付けて第２のログ情報として第１の記憶部に書き込むための第２の書き込み部とを備える。情報処理装置は、第１のログ情報および第２のログ情報を制御装置から取得する通信部と、情報を表示するためのモニタと、リンク情報を記憶するための第２の記憶部と、情報処理装置の動作を制御する制御部とを備える。制御部は、通信部により取得した第１のログ情報に示される発生した事象の情報及びリンク情報に示される、事象に関連する変数の、事象の発生の際の当該事象に関連する所定の変数の値をモニタに表示させるログ表示部と、リンク情報と第２のログ情報とに基づいて、第１のログ情報に示される発生した事象の情報と対応付けられる所定の変数の値を示す情報を、モニタに表示させるリンク表示部とを含む。
【００１５】
別の実施形態に従うと、ユーザプログラムを周期的またはイベント的に実行する制御装置と、制御装置に接続可能な情報処理装置とにより構成される制御システムの、情報処理装置の動作を制御するためのプログラムが提供される。制御装置は、予め定められた事象と、当該事象に関連する変数とを対応付けたリンク情報を記憶するための第１の記憶部と、予め定められた事象の発生に応答して、当該発生した事象の情報と、リンク情報に示される、当該事象に関連する所定の変数の現在値と、時刻情報とを関連付けて第１のログ情報として第１の記憶部に書き込むための第１の書き込み部と、予め定められた周期に従って、所定の変数の値を含む情報と時刻情報とを関連付けて第２のログ情報として第１の記憶部に書き込むための第２の書き込み部とを備える。情報処理装置は、事象と、変数の指定とを対応付けたリンク情報を記憶するための第２の記憶部、プロセッサ、およびモニタを備える。プログラムは、プロセッサに、第１のログ情報および第２のログ情報を制御装置から取得するステップと、取得した第１のログ情報に示される発生した事象の情報をモニタに表示するステップと、リンク情報と第２のログ情報とに基づいて、第１のログ情報に示される発生した事象の情報と対応付けられる変数を示す情報をモニタに表示するステップとを実行させる。
【発明の効果】
【００１６】
本発明によれば、イベントの発生時において、そのイベントの発生時における制御装置の状態を容易に知ることができ、プログラムのデバッグ等を効率的に行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態に係る制御システム１のシステム構成を示す模式図である。
【図２】本実施の形態に係るＰＬＣ１００の主要部を示すハードウェア構成を示す模式図である。
【図３】本実施の形態に係るＰＬＣ１００のソフトウェア構成を示す模式図である。
【図４】本実施の形態に係るＰＬＣ１００に接続して用いられるサポート装置３００のハードウェア構成を示す模式図である。
【図５】本実施の形態に係るＣＰＵユニット１０４の、ログ出力機能の概要を説明するための図である。
【図６】リンク情報１８５を示す図である。
【図７】本実施の形態に係るサポート装置３００において提供される、リンク情報１８５の編集をするための入力操作を受け付けるユーザインターフェイスの一例を示す図である。
【図８】本実施の形態に係るＰＬＣ１００における処理手順を示すフローチャートである。
【図９】本実施の形態に係るＰＬＣ１００における処理手順を示すフローチャートである。
【図１０】本実施の形態に係るサポート装置３００において提供される稼働ログ１８４の取得および表示に係るユーザインターフェイスの一例を示す図である。
【図１１】ユーザインターフェイス画面の推移を示す図である。
【発明を実施するための形態】
【００１８】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１９】
＜Ａ．システム構成＞
まず、本実施の形態に係る制御システムのシステム構成について説明する。本実施の形態においては、機械や設備などの制御対象を制御するプログラマブルコントローラ（ＰＬＣ）を制御装置の典型例として説明を行う。但し、本発明に係る制御装置は、ＰＬＣに限られることなく、各種の制御装置へ適用可能である。
【００２０】
図１は、本実施の形態に係る制御システム１のシステム構成を示す模式図である。図１を参照して、制御システム１は、ＰＬＣ１００と、ＰＬＣ１００に接続されるサポート装置３００とを含む。ＰＬＣ１００は、後述するようなユーザプログラムを周期的またはイベント的に実行する。
【００２１】
サポート装置３００は、ＰＬＣ１００に接続可能な情報処理装置の典型例である。サポート装置３００は、接続ケーブル１１４を介してＰＬＣ１００に接続され、ＰＬＣ１００との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。ＰＬＣ１００とサポート装置３００との間は、典型的には、ＵＳＢ（Universal  Serial  Bus）規格に従って通信可能に構成される。
【００２２】
ＰＬＣ１００は、制御演算を実行するＣＰＵユニット１０４と、１つ以上のＩＯ（Input/Output）ユニット１０６とを含む。これらのユニットは、ＰＬＣシステムバス１０８を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット１０２によって適切な電圧の電源が供給される。
【００２３】
制御システム１において、ＰＬＣ１００は、（ＰＬＣシステムバス１０８を介して接続される）ＩＯユニット１０６を介して、および／または、フィールドバス１１０を介して、各種のフィールド機器との間でデータを遣り取りする。これらのフィールド機器は、制御対象に対して何らかの処理を行うためのアクチュエータや、制御対象から各種情報を取得するためのセンサなどを含む。図１には、このようなフィールド機器の一例として、検出スイッチ１０、リレー２０およびモータ３２を駆動するサーボモータドライバ３０を含む。また、ＰＬＣ１００は、フィールドバス１１０を介してリモートＩＯターミナル２００も接続されている。リモートＩＯターミナル２００は、基本的には、ＩＯユニット１０６と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートＩＯターミナル２００は、フィールドバス１１０でのデータ伝送に係る処理を行うための通信カプラ２０２と、１つ以上のＩＯユニット２０４とを含む。これらのユニットは、リモートＩＯターミナルバス２０８を介して、データを互いに遣り取りできるように構成される。
【００２４】
＜Ｂ．ＰＬＣ１００の構成＞
次に、本実施の形態に係るＰＬＣ１００の構成について説明する。図２は、本実施の形態に係るＰＬＣ１００の主要部を示すハードウェア構成を示す模式図である。図３は、本実施の形態に係るＰＬＣ１００のソフトウェア構成を示す模式図である。
【００２５】
図２を参照して、ＰＬＣ１００のＣＰＵユニット１０４のハードウェア構成について説明する。ＣＰＵユニット１０４は、プロセッサ１２０と、チップセット１２２と、システムクロック１２４と、主メモリ１２６と、不揮発性メモリ１２８と、ＵＳＢコネクタ１３０と、ＰＬＣシステムバスコントローラ１４０と、フィールドバスコントローラ１５０と、上位通信コントローラ１６０と、メモリカードインターフェイス１７０とを含む。チップセット１２２と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００２６】
プロセッサ１２０およびチップセット１２２は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ１２０は、チップセット１２２から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット１２２は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ１２０に必要な命令コードを生成する。システムクロック１２４は、予め定められた周期のシステムクロックを発生してプロセッサ１２０に提供する。チップセット１２２は、プロセッサ１２０での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【００２７】
ＣＰＵユニット１０４は、記憶手段として、主メモリ１２６および不揮発性メモリ１２８を有する。主メモリ１２６は、揮発性の記憶領域であり、プロセッサ１２０で実行されるべき各種プログラムを保持するとともに、各種プログラムの実行時の作業用メモリとしても使用される。不揮発性メモリ１２８は、ＯＳ（Operating System）、システムプログラム、ユーザプログラム、データ定義情報、ログ情報などを不揮発的に保持する。
【００２８】
ＵＳＢコネクタ１３０は、サポート装置３００とＣＰＵユニット１０４とを接続するためのインターフェイスである。典型的には、サポート装置３００から転送される実行可能なプログラムなどは、ＵＳＢコネクタ１３０を介してＣＰＵユニット１０４に取込まれる。
【００２９】
ＣＰＵユニット１０４は、通信手段として、ＰＬＣシステムバスコントローラ１４０、フィールドバスコントローラ１５０、および上位通信コントローラ１６０を有する。これらの通信回路は、データの送信および受信を行う。
【００３０】
ＰＬＣシステムバスコントローラ１４０は、ＰＬＣシステムバス１０８を介したデータの遣り取りを制御する。より具体的には、ＰＬＣシステムバスコントローラ１４０は、バッファメモリ１４２と、ＰＬＣシステムバス制御回路１４４と、ＤＭＡ（Dynamic  Memory  Access）制御回路１４６とを含む。ＰＬＣシステムバスコントローラ１４０は、ＰＬＣシステムバスコネクタ１４８を介してＰＬＣシステムバス１０８と接続される。
【００３１】
フィールドバスコントローラ１５０は、バッファメモリ１５２と、フィールドバス制御回路１５４と、ＤＭＡ制御回路１５６とを含む。フィールドバスコントローラ１５０は、フィールドバスコネクタ１５８を介してフィールドバス１１０と接続される。上位通信コントローラ１６０は、バッファメモリ１６２と、上位通信制御回路１６４と、ＤＭＡ制御回路１６６とを含む。上位通信コントローラ１６０は、上位通信コネクタ１６８を介してネットワーク１１２と接続される。
【００３２】
メモリカードインターフェイス１７０は、ＣＰＵユニット１０４に対して着脱可能なメモリカード１７２とプロセッサ１２０とを接続する。
【００３３】
次に、図３を参照して、本実施の形態に係るＰＬＣ１００が提供する各種機能を実現するためのソフトウェア構成について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、ＣＰＵユニット１０４のプロセッサ１２０によって実行される。
【００３４】
図３を参照して、ＣＰＵユニット１０４で実行されるソフトウェアとしては、ＯＳ１８０と、システムプログラム１８８と、ユーザプログラム１８６との３階層になっている。
【００３５】
ＯＳ１８０は、プロセッサ１２０がシステムプログラム１８８およびユーザプログラム１８６を実行するための基本的な実行環境を提供する。
【００３６】
システムプログラム１８８は、ＰＬＣ１００としての基本的な機能を提供するためのソフトウェア群である。具体的には、システムプログラム１８８は、シーケンス命令プログラム１９０と、入出力処理プログラム１９４と、Ｔｏｏｌインターフェイス処理プログラム１９６と、スケジューラ１９８とを含む。
【００３７】
これに対して、ユーザプログラム１８６は、制御対象に対する制御目的に応じて任意に作成されたプログラムである。すなわち、ユーザプログラム１８６は、制御システム１を用いて制御する対象のライン（プロセス）などに応じて、任意に設計される。
【００３８】
ユーザプログラム１８６は、シーケンス命令プログラム１９０と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム１８６は、シーケンス命令プログラム１９０によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム１８６およびシーケンス命令プログラム１９０を「制御プログラム」と総称する場合もある。
【００３９】
データ定義情報１８２は、ユーザプログラム１８６などが実行される際に、参照されるデータ（入力データ、出力データ、内部データ）をユニークな変数として扱うための定義を含む。稼働ログ１８４には、システムプログラム１８８およびユーザプログラム１８６の実行に伴って、予め定められた事象が発生した際に、当該発生した事象の情報が時刻情報と関連付けて格納される。すなわち、稼働ログ１８４には、システムプログラム１８８および／またはユーザプログラム１８６の実行に伴う各種情報がログ（履歴情報）として格納される。リンク情報１８５は、予め定められた事象と、この事象に関連する変数の指定とを対応付けた情報である。
【００４０】
以下、各プログラムについてより詳細に説明する。
シーケンス命令プログラム１９０は、ユーザプログラム１８６の実行に伴って、ユーザプログラム１８６内で指定されているシーケンス命令の実体を呼び出して、その命令の内容を実現するための命令コード群を含む。
【００４１】
入出力処理プログラム１９４は、ＩＯユニット１０６や各種のフィールド機器との間で、入力データの取得および出力データの送信を管理するためのプログラムである。
【００４２】
Ｔｏｏｌインターフェイス処理プログラム１９６は、サポート装置３００との間でデータを遣り取りするためのインターフェイスを提供する。
【００４３】
スケジューラ１９８は、予め定められた優先度やシステムタイマの値などに従って、制御プログラムを実行するためのスレッドやプロシージャを生成する。
【００４４】
ユーザプログラム１８６は、上述したように、ユーザにおける制御目的（たとえば、対象のラインやプロセス）に応じて作成される。ユーザプログラム１８６は、典型的には、ＣＰＵユニット１０４のプロセッサ１２０で実行可能なオブジェクトプログラム形式になっている。ユーザプログラム１８６は、サポート装置３００などにおいて、ラダー形式やファンクションブロック形式で記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラムは、サポート装置３００からＣＰＵユニット１０４へ転送され、不揮発性メモリ１２８などに格納される。
【００４５】
＜Ｃ．サポート装置３００の構成＞
次に、本実施の形態に係るサポート装置３００について説明する。サポート装置３００は、ＰＬＣ１００のＣＰＵユニット１０４の使用を支援するためのものであり、ＰＬＣ１００との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。
【００４６】
図４は、本実施の形態に係るＰＬＣ１００に接続して用いられるサポート装置３００のハードウェア構成を示す模式図である。サポート装置３００は、典型的には、汎用のコンピュータで構成される。
【００４７】
図４を参照して、サポート装置３００は、ＯＳを含む各種プログラムを実行するＣＰＵ３０２と、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）３０４と、ＣＰＵ３０２でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ３０６と、ＣＰＵ３０２で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）３０８とを含む。より具体的には、ハードディスク３０８には、サポート装置３００が提供する機能を実現するためのサポートプログラム３３０が格納されている。
【００４８】
サポート装置３００は、さらに、ユーザからの操作を受け付けるキーボード３１０およびマウス３１２と、情報をユーザに提示するためのモニタ３１４とを含む。さらに、サポート装置３００は、ＰＬＣ１００（ＣＰＵユニット１０４）などと通信するための通信インターフェイス（ＩＦ）３１８を含む。
【００４９】
サポート装置３００で実行されるサポートプログラム３３０などは、光学記録媒体３３２に格納されて流通する。光学記録媒体３３２に格納されたプログラムは、光学ディスク読取装置３１６によって読み取られ、ハードディスク３０８などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００５０】
＜Ｄ．ログ出力機能の概要＞
次に、本実施の形態に係る制御システム１により提供されるログ出力機能の概要について説明する。本実施の形態に係るログ出力機能は、通常のプログラムの実行に伴って出力されるログ（以下「実行ログ」とも称す。）や、プログラムの実行失敗やハードウェアの不具合の発生に伴って出力されるログ（以下「イベントログ」とも称す。）に加えて、ユーザプログラム１８６において任意に指定された位置および内容のログ（以下「デバッグログ」とも称す。）を出力することが可能になっている。稼働ログ１８４は、これらのすべてのログを含む。
【００５１】
イベントログは、指定された処理の実行が失敗したような場合に、その処理内容を時刻情報と関連付けて記録した情報である。典型的には、指定された処理がエラーなどで中断したような場合に、その内容がロギングされる。
【００５２】
ＣＰＵユニット１０４は、システムプログラム１８８を実行することで、予め定められた事象の発生に応答して、当該事象の発生を検出した場合に当該発生した事象の情報（イベントログ）を時刻情報とリンク情報１８５で設定された変数の現在値を関連付けて記憶する。ＣＰＵユニット１０４は、リンク情報１８５で設定されたユーザが指定した変数の値をユーザが指定した一定のタイミングで不揮発性メモリ１２８の所定の領域に格納する。この際不揮発性メモリ１２８は、リングバッファとして機能し循環的に変数の値を格納する。ＣＰＵユニット１０４は、予め定められた事象が発生した場合は、当該事象が発生した時刻を基準に順次格納していた変数の値についてリンク情報１８５で設定された時間分だけの変数の値を記憶する。
【００５３】
図５は、本実施の形態に係るＣＰＵユニット１０４の、ログ出力機能の概要を説明するための図である。図５に示すように、ＣＰＵユニット１０４は、制御部９０１と、ロギング部９０３と、設定部９０５と、イベントログ格納部９０７と、変数記憶部９０９と、記憶部９１１として機能する。記憶部９１１は、ロギング結果９１３と、イベントデータ９１５とを記憶する。
【００５４】
制御部９０１は、ＰＬＣ１００の動作全体を制御する。制御部９０１はプログラムの実行やフィールドネットワーク、上位ネットワーク、バスを介したデータ通信、ＰＬＣ１００自身の自己診断など、システム全体の動作を制御する。事象の発生としては、制御部自身が監視を行っている構成でも良いし、接続されている機器からのエラー情報の通知を行う構成としても良い。
【００５５】
ロギング部９０３は、設定部９０５によってサポート装置３００から受け付けた設定に従って、設定された変数の値を、記憶部９１１へ循環的に格納する。ロギング部９０３は、予め定められた事象の発生を検出すると、循環的に格納していた変数の値をロギング結果９１３に格納する。
【００５６】
イベントログ格納部９０７は、事象の発生を検出すると、記憶部９１１に、イベント種別と時刻情報とを対応づけて記憶する。イベントログ格納部９０７は、設定部９０５によって設定された事象の発生を検出すると、変数記憶部９０９にアクセスし、変数の現在値を読出し、イベント種別と発生時刻に加えて変数の現在値を記憶部９１１に記憶する。さらにロギング部９０３がロギング結果９１１に格納させるアドレスをアドレスリンク情報として格納する。
【００５７】
設定部９０５は、サポート装置３００から、イベントログとして記録する対象となる事象の情報の設定を受け付ける。また、設定部９０５は、サポート装置３００から、ロギングの対象となる変数の指定を受け付ける。設定部９０５は、ロギング部９０３、イベントログ格納部９０７に対して変数の値と対応づけて記憶する変数を設定する。
【００５８】
＜Ｅ．リンク情報１８５のデータ構造＞
図６を参照して、リンク情報１８５のデータ構造について説明する。
【００５９】
図６は、リンク情報１８５を示す図である。図６に示すように、リンク情報１８５の各レコードは、イベント名１８５Ａと、事象それぞれを識別するための識別情報であるイベントコード１８５Ｂと、変数１８５Ｃと、記録設定１８５Ｄとを含む。
【００６０】
イベント名１８５Ａは、予め定められた事象（例えば、通常のプログラムの実行、プログラムの実行失敗、ハードウェアの不具合の発生など）のそれぞれの名称を示す。
【００６１】
イベントコード１８５Ｂは、事象それぞれを識別するための情報である。
変数１８５Ｃは、事象に関連する変数としてユーザが指定した変数を示す。
【００６２】
記録設定１８５Ｄは、ユーザによって指定された変数の値の、モニタ３１４に表示すべき時刻情報の範囲を示す。時刻情報の範囲としては、例えば、事象が発生した時刻情報における変数の値を表示するか（記録設定「発生時のみ」）、事象が発生した時刻情報の前後の所定の時間内における変数の値を表示するか（記録設定「発生前Ｘ秒」、記録設定「発生後Ｘ秒」（”Ｘ”は任意の数））等がある。
【００６３】
＜Ｆ．ユーザインターフェイス（リンク情報１８５の設定）＞
次に、リンク情報１８５の設定に係るユーザインターフェイスについて説明する。このユーザインターフェイスは、本実施の形態に係るサポート装置３００により提供される。
【００６４】
図７は、本実施の形態に係るサポート装置３００において提供される、リンク情報１８５の編集をするための入力操作を受け付けるユーザインターフェイスの一例を示す図である。
【００６５】
図７に示すように、サポート装置３００は、モニタ３１４に、設定画面３４０を表示する。設定画面３４０は、予め定められた事象それぞれについて、ユーザにより変数の指定を受け付けて、変数の値を表示する時刻情報の範囲をユーザが設定するための画面である。
【００６６】
カテゴリ３４２は、予め定められた事象それぞれが含まれるカテゴリを示す。カテゴリとしては、例えば、制御機器を構成する各ユニットを示す。
【００６７】
イベント名３４３は、予め定められた事象のそれぞれの名称を示す。
イベントコード３４４は、事象それぞれを識別するための情報である。
【００６８】
設定３４６は、事象それぞれについて関連付けられた変数と、事象の時刻情報を基準とした変数の値を表示するための時刻情報の範囲とを示す。例えば、設定３４６に「発生時のみ」と示される場合、イベント名３４３およびイベントコード３４４が発生した時刻情報とほぼ同時刻における変数の値がモニタ３１４へ表示する対象となる。また、設定３４６に「発生前１０秒、発生後１０秒」と示される場合、イベント名３４３およびイベントコード３４４が発生した時刻情報の、前後それぞれ１０秒ずつの期間における変数の値が、事象と関連付けられる。このように、サポート装置３００は、事象と、変数の指定との対応関係を編集するための入力操作を受け付けて、入力操作に応じてリンク情報１８５を生成する。サポート装置３００は、生成したリンク情報１８５を、ＰＬＣ１００へ送信する。ＰＬＣ１００は、サポート装置３００からリンク情報１８５を受信すると、メモリカード１７２等に記憶する。ＰＬＣ１００は、サポート装置３００から、稼働ログ１８４の要求を受け付けると、稼働ログ１８４とリンク情報１８５とをサポート装置３００へ送信する。
【００６９】
サンプリングタイミング３４７は、事象発生前後の変数の値のサンプリング結果をモニタ３１４へ表示する対象とする場合に、そのサンプリングのタイミングの設定を示す。例えば、サンプリングのタイミングとしては、タスク周期に従ったタイミングや、ユーザが指定したタイミング（例えば、１００ｍｓごと）などがある。
【００７０】
＜Ｇ．処理手順＞
次に、本実施の形態に係るＰＬＣ１００におけるログ出力機能に係る処理手順について説明する。
【００７１】
図８は、本実施の形態に係るＰＬＣ１００における処理手順を示すフローチャートである。図８に示す各ステップは、ＣＰＵユニット１０４のプロセッサ１２０がユーザプログラム１８６およびシステムプログラム１８８をそれぞれ実行することで実現される。なお、ユーザプログラム１８６およびシステムプログラム１８８が互いに独立して実行される例を示すが、両プログラムを包含する単一のプログラムを実行するようにしてもよい。
【００７２】
図８を参照して、ユーザプログラム１８６の実行に関して、プロセッサ１２０は、予め格納されているユーザプログラム１８６をロードし、ロードしたユーザプログラム１８６を予め定められた周期で繰り返し実行する（ステップＳ１００）。なお、このロードされるユーザプログラム１８６は、コンパイルされて実行可能なオブジェクト形式になっているものとする。但し、ユーザプログラム１８６をソースコードのままロードする、あるいは、ユーザプログラム１８６を中間コードにコンパイルしたものをロードするようにしてもよい。この場合には、ロードされたコードを逐次コンパイルしつつ、プロセッサ１２０は、処理を実行することになる。
【００７３】
すなわち、プロセッサ１２０は、ユーザプログラム１８６に含まれる命令に従って、必要に応じてシステムプログラム１８８を呼び出しつつ、指定された処理を実行する（ステップＳ１０２）。
【００７４】
この実行にあたって、ユーザが指定した変数を記録する設定において、事象発生前後の変数の値をサンプリングする場合に、そのサンプリングのタイミングに該当するとき（ステップＳ１０４においてＹＥＳ）、プロセッサ１２０は、指定された変数の値を、サンプリングのタイミングに従って循環的に不揮発性のメモリに格納する。
【００７５】
また、この実行にあたって、エラーなどの予め定められた事象が発生すると（ステップＳ１０８においてＹＥＳ）、プロセッサ１２０は、当該エラーなどの情報を時刻情報と変数の値の現在値とを関連付けてイベントログとして出力する（ステップＳ１１０）。
【００７６】
一連のユーザプログラム１８６の実行が完了すると、ステップＳ１０２以下の処理が繰り返される。
【００７７】
図９は、本実施の形態に係るＰＬＣ１００における処理手順を示すフローチャートである。
【００７８】
図９を参照して、システムプログラム１８８の実行に関して、プロセッサ１２０は、予め格納されているシステムプログラム１８８をロードし、ロードしたシステムプログラム１８８を予め定められた周期で繰り返し実行する（ステップＳ２００）。なお、このロードされるシステムプログラム１８８は、コンパイルされて実行可能なオブジェクト形式になっているものとする。但し、ユーザプログラム１８６と同様に、システムプログラム１８８をソースコードのままロードする、あるいは、中間コードにコンパイルしたものをロードするようにしてもよい。
【００７９】
プロセッサ１２０は、稼働ログ１８４の送信がサポート装置３００から要求されたか否かを判断する（ステップＳ２０２）。稼働ログ１８４の送信がサポート装置３００から要求されていれば（ステップＳ２０２においてＹＥＳの場合）、プロセッサ１２０は、格納している稼働ログ１８４を読み出してサポート装置３００へ送信する（ステップＳ２０４）。ステップＳ２０６において、プロセッサ１２０は、リンク情報１８５をサポート装置３００へ送信する。
【００８０】
すなわち、ステップＳ２０２、Ｓ２０４およびＳ２０６の処理は、サポート装置３００から稼働ログ１８４の取得が要求された場合の処理である。
【００８１】
一連のシステムプログラム１８８の実行が完了すると、ステップＳ２０２以下の処理が繰り返される。
【００８２】
＜Ｈ．ユーザインターフェイス（ログの表示）＞
次に、本実施の形態に係るサポート装置３００により提供される稼働ログの取得および表示に係るユーザインターフェイスについて説明する。サポート装置３００は、稼働ログ１８４に含まれるイベントログをモニタ３１４に表示する。ユーザは、サポート装置３００に表示されるユーザインタフェイスを通じてイベントログを確認することができる。サポート装置３００は、ＰＬＣ１００の記憶部（メモリカード１７２など）に格納される情報を時系列に表示するユーザインターフェイスを提供する。
【００８３】
図１０は、本実施の形態に係るサポート装置３００において提供される稼働ログ１８４の取得および表示に係るユーザインターフェイスの一例を示す図である。
【００８４】
図１０に示すユーザインターフェイス画面３４１において、ユーザが更新ボタン３６２を押下する入力操作がなされると、サポート装置３００と接続されたＰＬＣ１００から稼働ログ１８４と、リンク情報１８５とが取得される。この稼働ログ１８４とリンク情報１８５とは、基本的には、ＵＳＢコネクタ１３０を介して、ＰＬＣ１００からサポート装置３００へ送信される。但しこれに限られるものではなく、ＰＬＣ１００が提供するＦＴＰ（File  Transfer  Protocol）サーバ機能やＨＴＴＰ（Hyper  Text  Transfer  Protocol）サーバ機能などを用いて、ネットワーク経由で送信してもよい。
【００８５】
図１０に示すユーザインターフェイス画面３４１には、イベントログが時系列に表示されている。一例として、図１０に示す稼働ログのうち、エントリ「１０１８」のログ３５４は、イベント名「電源断」によって生成されたものである。
【００８６】
具体的には、各ログは、エントリ、日時、重要度、発生源、発生源詳細、イベント名といった事項を含む。日時は、対応するイベントが発生した時刻を示す。エントリは、ログそれぞれを識別する情報である。日時は、イベントログにおいて各事象が発生した時刻情報を示す。重要度は、事象それぞれの重要度合いを示す。発生源は、事象が発生した発生源を示し、例えば装置全体、部品ユニット単位で発生源を示す。発生源詳細は、発生源において、より詳細な情報（部品、処理など）を示す。イベント名は、事象それぞれを識別するための情報である。例えば、エントリ「１０２１」のログ３５１は、イベント名「リンクオフ検知」にかかるログである。エントリ「１０２０」のログ３５２は、イベント名「運転開始」にかかるログである。エントリ「１０１９」のログ「３５３」は、イベント名「電源投入」にかかるログである。
【００８７】
図１０の例では、エントリ「１０１８」のログ３５４がユーザの入力操作によって選択されている。サポート装置３００は、リンク情報１８５を参照し、ユーザによって選択されたエントリに対応する事象について、事象に関連する変数が対応付けられている場合、ユーザインターフェイス画面３４１に、その変数を示す情報を「付属情報」として表示する。
【００８８】
サポート装置３００は、ログが選択された状態で（ログ３５４が選択されている）、表示切換ボタン３６１への入力操作を受け付けると、選択されたログに示される事象（イベント名）に関連する変数がある場合に、変数の値を表示する。
【００８９】
このように、サポート装置３００は、ＰＬＣ１００から稼働ログ１８４を取得し、取得した稼働ログ１８４に示される、ログとして記録された事象の情報をモニタ３１４に表示する。また、サポート装置３００は、リンク情報１８５に基づいて、稼働ログ１８４に示される、ログとして記録された事象の情報と対応付けられる変数を示す情報をモニタ３１４に表示する。
【００９０】
図１１は、ユーザインターフェイス画面の推移を示す図である。図１１（Ａ）は、ユーザインターフェイス画面３４１を示す図である。図１１（Ａ）に示すユーザインターフェイス画面３４１において、サポート装置３００は、リンク情報１８５を参照し、ログに示される事象（イベント名）に関連する変数があると、その変数を示す情報を「付属情報」として表示している。ここで、サポート装置３００は、表示切換ボタン３６１への入力操作を受け付けると、事象（イベント名）に関連する変数の値を表示する。図１１（Ｂ）は、事象に関連する変数の値を表示する例を示す図である。図１１（Ｂ）において、ユーザインターフェイス画面３５２は、事象に関連付けられた変数（例えば、「付属情報１」と「付属情報２」）について、事象がロギングされた時刻情報の、前後の一定期間にわたるデバッグログに示される値を表示している。
【００９１】
＜Ｉ．効果＞
本実施の形態に係る制御システム１によれば、ＰＬＣ１００は、イベントログを自動的に出力するようになっている。そして、このように時系列に格納された稼働ログをユーザは事後的に参照することができる。ここで、ＰＬＣ１００は、リンク情報１８５を記憶しており、サポート装置３００がＰＬＣ１００の稼働ログ１８４を要求した場合に、ＰＬＣ１００からサポート装置３００へ稼働ログ１８４およびリンク情報１８５が送信される。サポート装置３００は、稼働ログ１８４に含まれるイベントログをモニタ３４１に表示するとともに、稼働ログ１８４に含まれる事象に関連する変数が指定されていれば、その変数をもモニタ３４１に表示する。リンク情報１８５は、ユーザ自身によって、事象とユーザ変数との対応関係を定義するため、ユーザがイベントログを事後的に参照する場合、事象に関連するユーザ変数の値を確認することが容易となる。
【００９２】
このような構成を採用することで、ユーザは、予め定められた事象（例えば、プログラムの不具合、電源断など）が生じたときに、何が原因であるかを容易に特定できる。これによって、プログラムのデバッグや健全性のチェックを効率的に行うことができる。
【００９３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９４】
１  制御システム、１０  検出スイッチ、２０  リレー、３０  サーボモータドライバ、３２  モータ、１００  ＰＬＣ、１０２  電源ユニット、１０４  ＣＰＵユニット、１０６  ＩＯユニット、１０８  ＰＬＣシステムバス、１１０  フィールドバス、１１２  ネットワーク、１１４  接続ケーブル、１２０  プロセッサ、１２２  チップセット、１２４  システムクロック、１２６  主メモリ、１２８  不揮発性メモリ、１３０  ＵＳＢコネクタ、１４０  ＰＬＣシステムバスコントローラ、１４２，１５２，１６２  バッファメモリ、１４４  ＰＬＣシステムバス制御回路、１４６，１５６，１６６  ＤＭＡ制御回路、１４８  ＰＬＣシステムバスコネクタ、１５０  フィールドバスコントローラ、１５４  フィールドバス制御回路、１５８  フィールドバスコネクタ、１６０  上位通信コントローラ、１６４  上位通信制御回路、１６８  上位通信コネクタ、１７０  メモリカードインターフェイス、１７２  メモリカード、１８０  ＯＳ、１８２  データ定義情報、１８４  稼働ログ、１８４２  ログファイル、１８６  ユーザプログラム、１８８  システムプログラム、１９０  シーケンス命令プログラム、１９４  入出力処理プログラム、１９６  インターフェイス処理プログラム、１９８  スケジューラ、２００  リモートＩＯターミナル、２０２  通信カプラ、２０８  ターミナルバス、３００  サポート装置、３０２  ＣＰＵ、３０４  ＲＯＭ、３０６  ＲＡＭ、３０８  ハードディスク、３１０  キーボード、３１２  マウス、３１４  モニタ、３１６  光学ディスク読取装置、３３０  サポートプログラム、３３２  光学記録媒体、４００  データベース装置。
【図１】
2015176370.tif 000003
【図２】
2015176370.tif 000004
【図３】
2015176370.tif 000005
【図４】
2015176370.tif 000006
【図５】
2015176370.tif 000007
【図６】
2015176370.tif 000008
【図７】
2015176370.tif 000009
【図８】
2015176370.tif 000010
【図９】
2015176370.tif 000011
【図１０】
2015176370.tif 000012
【図１１】
2015176370.tif 000013