(57)【要約】      （修正有）【課題】ＦＡ現場で発生したトラブルを現場で解決し易くするようにしたプログラマブル表示器を提供する。【解決手段】プログラマブル表示器５０は、複数の異なるページ識別子に対応する各ページの表示用データを生成する表示用データ生成部５１ａと、表示用データ生成部５１ａにより生成された表示用データに基づいて、ページ識別子に対応するページを該表示画面に表示する表示部５５と、表示部５５の表示画面に対するタッチ操作を検出するタッチ検出部５３とを備える。予め設定された第二のタッチ操作を、タッチ検出部５３により検出した場合には、ＰＬＣ１に保存された時系列データに基づいて、対象デバイス設定５２ｃにより特定されるデバイスのデバイス波形を表示させるための表示用データを生成し、表示部５５は、表示用データ生成部５１ａにより生成された表示用データに基づいて、デバイス波形を表示画面に表示するよう構成される。【選択図】図１１
2020166827.tif 000002
【特許請求の範囲】
【請求項１】
ユーザプログラムによって参照される記憶領域であるデバイスについて、予め定められた保存条件に基づいて該デバイスのデバイス値に関する時系列データを保存するプログラマブルロジックコントローラに接続されるプログラマブル表示器であって、
プログラマブルロジックコントローラのデバイスの状態をモニタする又は変化させるための部品が複数配置される一画面をページとして、該一画面に配置される部品の各々に対して該デバイスが割り当てられる部品設定、
該部品設定を、複数の異なるページを識別するページ識別子によりページ単位で管理するためのページ設定、及び
プログラマブルロジックコントローラに保存された時系列データを波形状に示したデバイス波形を表示させる対象デバイスを特定するための対象デバイス設定を記憶する設定記憶部と、
前記設定記憶部に記憶された部品設定及びページ設定に基づいて、前記複数の異なるページ識別子に対応する各ページの表示用データを生成する表示用データ生成部と、
表示画面を備え、前記表示用データ生成部により生成された表示用データに基づいて、前記ページ識別子に対応するページを該表示画面に表示する表示部と、
前記表示部の前記表示画面に対するタッチ操作を検出するタッチ検出部と、
を備え、
前記表示用データ生成部は、
前記表示画面において、予め設定された第一のタッチ操作を、前記タッチ検出部により検出した場合には、前記ページ設定に基づいて現在のページから他のページに切り替えるための表示用データを生成すると共に、
前記表示画面において、予め設定された第二のタッチ操作を、前記タッチ検出部により検出した場合には、プログラマブルロジックコントローラに保存された時系列データに基づいて、前記対象デバイス設定により特定されるデバイスの前記デバイス波形を表示させるための表示用データを生成し、
前記表示部は、前記表示用データ生成部により生成された表示用データに基づいて、前記他のページ又は前記デバイス波形を前記表示画面に表示するよう構成してなるプログラマブル表示器。
【請求項２】
請求項１に記載のプログラマブル表示器であって、
前記設定記憶部は、前記デバイス波形を表示させるためのフォーマットが予め定められた既定画面を示す既定画面情報を記憶しており、
前記表示用データ生成部は、
前記表示画面において、前記予め設定された第二のタッチ操作を、前記タッチ検出部により検出した場合には、前記既定画面情報と前記時系列データとに基づいて、前記既定画面上に該時系列データを重ね合わせることにより、前記対象デバイス設定により特定されるデバイスの前記デバイス波形を表示させるための表示用データを生成するプログラマブル表示器。
【請求項３】
請求項２に記載のプログラマブル表示器であって、
前記表示用データ生成部は、
前記表示部により前記表示画面に前記デバイス波形が表示された状態で、前記デバイス波形の表示範囲を変更するための変更操作を、前記タッチ検出部により検出した場合には、前記時系列データのうち、該変更操作により特定される変更後の表示範囲に対応する時系列データを抽出することにより、該変更後の表示範囲における前記デバイス波形を表示させるための表示用データを生成するプログラマブル表示器。
【請求項４】
請求項１〜３のいずれか一項に記載のプログラマブル表示器であって、
前記設定記憶部に保存される部品設定は、さらに、
前記デバイス波形を表示させるための波形表示部品の設定を含み、
前記第二のタッチ操作が、前記表示画面に表示された前記第一ページ上に配置された前記波形表示部品に対するタッチ操作であるプログラマブル表示器。
【請求項５】
請求項１〜３のいずれか一項に記載のプログラマブル表示器であって、
前記第二のタッチ操作が、前記表示画面において、前記第一ページ上で前記表示部品が配置された領域以外の非配置領域に対する特定の操作であるプログラマブル表示器。
【請求項６】
請求項５に記載のプログラマブル表示器であって、
前記特定の操作が、前記非配置領域に対する長押し、フリック、ピンチイン、ピンチアウトのいずれかであるプログラマブル表示器。
【請求項７】
請求項１〜６のいずれか一項に記載のプログラマブル表示器であって、
前記設定記憶部に保存される部品設定は、さらに、
プログラマブルロジックコントローラの一時記録部に一時記録されたデバイス値の時系列データを繰り返し取得する取得デバイスの設定と、
該取得デバイスの時系列データを逐次表示させるためのリアルタイム表示部品の設定を含み、
前記表示用データ生成部は、前記リアルタイム表示部品に対するタッチ操作を検出した場合には、プログラマブルロジックコントローラの一時記録部に一時記録された前記取得デバイスのデバイス値の時系列データに基づいて、該デバイス値を前記表示画面に順次表示させるための表示用データを生成するよう構成してなるプログラマブル表示器。
【請求項８】
請求項１〜７のいずれか一項に記載のプログラマブル表示器であって、
予め定められた保存条件が満たされると、プログラマブルロジックコントローラに接続された外部のカメラから入力された画像データを、該画像データが取得された取得時刻に関する情報と関連付けてプログラマブルロジックコントローラに一時記憶された状態で、前記プログラマブル表示器がプログラマブルロジックコントローラシステムに対し、前記運転記録データを取得して、前記運転記録データに含まれる取得時刻に関する情報に基づいて、該運転記録データに含まれる画像データに基づく画像を前記表示部に表示させるよう構成してなるプログラマブル表示器。
【請求項９】
請求項１〜８のいずれか一項に記載のプログラマブル表示器であって、
予め定められた保存条件が満たされると、該保存条件の成立時にプログラマブルロジックコントローラで実行されていたユーザプログラムを、前記運転記録データに関連付けて保存するよう構成しており、
前記プログラマブル表示器は、該保存された前記運転記録データをプログラマブルロジックコントローラから取得して、該運転記録データに含まれる前記取得時刻に関する情報に基づいて、該収集時刻に対応するデバイス値を、前記表示部において該運転記録データに含まれるユーザプログラム上に表示させるよう構成してなるプログラマブル表示器。
【請求項１０】
請求項１〜９のいずれか一項に記載のプログラマブル表示器であって、
プログラマブルロジックコントローラ又は該プログラマブルロジックコントローラにより制御される被制御装置にて発生した複数のイベントに応じたイベントデータを、プログラマブルロジックコントローラで収集し、該イベントの発生時刻と該イベントデータとを関連付けて時系列に記憶している状態で、予め定められた保存条件が満たされると、前記記憶されたイベントデータを、前記運転記録データに関連付けられるように前記運転記録データに含めて保存すると共に、前記プログラマブル表示器は、前記保存された前記運転記録データを取得して、該運転記録データに含まれる前記発生時刻に基づいて、該運転記録データに含まれるイベントデータに応じたイベントを前記表示部に表示させるよう構成されてなるプログラマブル表示器。
【請求項１１】
請求項１〜１０のいずれか一項に記載のプログラマブル表示器であって、
前記表示画面において前記デバイス波形を表示させる際の初期表示として、前記対象デバイスを選択する選択画面を表示可能としてなるプログラマブル表示器。
【請求項１２】
請求項１〜１１のいずれか一項に記載のプログラマブル表示器であって、
前記表示画面において前記デバイス波形を表示させる際、表示させるべき一以上の対象デバイスを特定するための識別情報に基づいて、該一以上の対象デバイスを表示可能としてなるプログラマブル表示器。
【請求項１３】
請求項１〜１２のいずれか一項に記載のプログラマブル表示器であって、
前記表示画面において前記デバイス波形を表示させる際、一以上の対象デバイスと、その表示形式を設定する設定画面を表示可能としてなるプログラマブル表示器。
【請求項１４】
請求項１〜１３のいずれか一項に記載のプログラマブル表示器であって、さらに、
プログラマブルロジックコントローラと通信を行う表示器側通信部を備えるプログラマブル表示器。
【請求項１５】
請求項１４に記載のプログラマブル表示器であって、さらに、
前記表示器側通信部を介してプログラマブルロジックコントローラと通信を行い、該プログラマブルロジックコントローラのデバイス値と同期させたデバイス値を保持する表示器側デバイス部を備えるプログラマブル表示器。
【請求項１６】
請求項１〜１５のいずれか一項に記載のプログラマブル表示器であって、さらに、
前記対象デバイス設定により特定されるデバイスに関連付けられ、前記保存条件が成立したときのエラーイベントを解消するための対処方法を誘導するガイダンス情報を記憶するガイダンス情報記憶部を備え、
前記表示用データ生成部は、
前記表示画面において、前記タッチ検出部が前記第二のタッチ操作を検出した場合には、前記ガイダンス情報記憶部に記憶され、前記対象デバイス設定により特定されるデバイスに関連付けられたガイダンス情報を表示させるための表示用データを生成するよう構成してなるプログラマブル表示器。
【請求項１７】
ユーザプログラムによって参照される記憶領域であるデバイスについて、予め定められた保存条件に基づいて該デバイスのデバイス値に関する時系列データを保存するプログラマブルロジックコントローラと、
前記プログラマブルロジックコントローラに接続されるプログラマブル表示器と
を備えるプログラマブルロジックコントローラシステムであって、
前記プログラマブルロジックコントローラは、
ユーザプログラムを繰り返し実行するプログラム実行部と、
前記プログラム実行部によって参照される記憶領域であるデバイスを有するデバイス部と、
前記デバイス部に記憶されているデバイスのデバイス値を収集し、該デバイス値の収集時刻に関する情報と該デバイス値とを関連付けて時系列に一時記録する一時記録部と、
予め定められた保存条件が満たされると、前記一時記録部に一時記録されているデバイス値に関する時系列データを運転記録データとして保存するための保存メモリと
を備え、
前記プログラマブル表示器は、
プログラマブルロジックコントローラのデバイスの状態をモニタする又は変化させるための部品が複数配置される一画面をページとして、該一画面に配置される部品の各々に対して該デバイスが割り当てられる部品設定、
該部品設定を、複数の異なるページを識別するページ識別子によりページ単位で管理するためのページ設定、及び
プログラマブルロジックコントローラに保存された時系列データを波形状に示したデバイス波形を表示させる対象デバイスを特定するための対象デバイス設定
を記憶する設定記憶部と、
前記設定記憶部に記憶された部品設定及びページ設定に基づいて、前記複数の異なるページ識別子に対応する各ページの表示用データを生成する表示用データ生成部と、
表示画面を備え、前記表示用データ生成部により生成された表示用データに基づいて、前記ページ識別子に対応するページを該表示画面に表示する表示部と、
前記表示部の前記表示画面に対するタッチ操作を検出するタッチ検出部と、
を備え、
前記表示用データ生成部は、
前記表示画面において、予め設定された第一のタッチ操作を、前記タッチ検出部により検出した場合には、前記ページ設定に基づいて現在のページから他のページに切り替えるための表示用データを生成すると共に、
前記表示画面において、予め設定された第二のタッチ操作を、前記タッチ検出部により検出した場合には、プログラマブルロジックコントローラに保存された時系列データに基づいて、前記対象デバイス設定により特定されるデバイスの前記デバイス波形を表示させるための表示用データを生成し、
前記表示部は、前記表示用データ生成部により生成された表示用データに基づいて、前記他のページ又は前記デバイス波形を前記表示画面に表示するよう構成してなるプログラマブルロジックコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル表示器及びこれを備えるプログラマブルロジックコントローラシステムに関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）システムでは、センサ、モータ、アクチュエータ等の入出力機器を制御する制御装置として、プログラマブルロジックコントローラ（Programmable Logic Controller：以下、「ＰＬＣ」という。）が用いられる。ＦＡシステムを構築するシステム設計者は、各入出力機器をどのようなシーケンスで動作させるべきかを検討し、そのシーケンスを実現するためのラダープログラムを作成する。ラダープログラムは、プログラム編集用の専用アプリケーションプログラムがインストールされた汎用パソコンを用いて設計される。システム設計者は、ラダープログラムを設計、デバッグして作成した後、完成したラダープログラムをＰＬＣに転送し、ＰＬＣに実行させる。
【０００３】
一方、ＰＬＣが稼働している際の入出力機器の状態は、ＰＬＣに接続されるプログラマブル表示器を用いることで、現場においてモニタリングされる。プログラマブル表示器の表示画面には、ランプやスイッチなどの各種機能部品が配置され、この各種機能部品に対して各機能が割り当てられている。表示画面の表示用データは、表示用データ編集用の専用アプリケーションプログラムがインストールされた汎用パソコンを用いて設計される。ＦＡシステムの保全を現場で行う現場担当者は、通常、上述したシステム設計者と同じように、各入出力機器をどのようなシーケンスで動作させるべきかを把握している。しかし、そのシーケンスを効率良く実現するためのラダープログラムの記述方法は多岐に亘るため、一般的な現場担当者は、ラダープログラムの記述を読解するのに時間を要する。
【０００４】
ＦＡシステムが構築された製造ラインの稼動中にトラブルが発生し、製造ラインが停止してしまうことがある。一般的なプログラマブル表示器は、トラブルが発生すると、その表示画面に配置されたアラームランプ（部品画像）を点灯又は点滅させ、現場担当者にトラブルの発生事実を報知する。
【０００５】
しかしながら、アラームランプの確認だけではトラブルの原因まで分からないケースが多々ある。この中には、現場ですぐに解決できるような簡単なトラブルも含まれており、このような場合は、現場担当者が現場ですぐに解決することが、システムの早期復旧に繋がる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−０２９８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的の一は、ＦＡ現場で発生したトラブルを現場で解決し易くするようにしたプログラマブル表示器及びこれを備えるプログラマブルロジックコントローラシステムを提供することにある。
【課題を解決するための手段及び発明の効果】
【０００８】
本発明の第１の態様に係るプログラマブル表示器は、ユーザプログラムによって参照される記憶領域であるデバイスについて、予め定められた保存条件に基づいて該デバイスのデバイス値に関する時系列データを保存するプログラマブルロジックコントローラに接続される。このプログラマブル表示器は、プログラマブルロジックコントローラのデバイスの状態をモニタする又は変化させるための部品が複数配置される一画面をページとして、該一画面に配置される部品の各々に対して該デバイスが割り当てられる部品設定、該部品設定を、複数の異なるページを識別するページ識別子によりページ単位で管理するためのページ設定、及びプログラマブルロジックコントローラに保存された時系列データを波形状に示したデバイス波形を表示させる対象デバイスを特定するための対象デバイス設定を記憶する設定記憶部と、前記設定記憶部に記憶された部品設定及びページ設定に基づいて、前記複数の異なるページ識別子に対応する各ページの表示用データを生成する表示用データ生成部と、表示画面を備え、前記表示用データ生成部により生成された表示用データに基づいて、前記ページ識別子に対応するページを該表示画面に表示する表示部と、前記表示部の前記表示画面に対するタッチ操作を検出するタッチ検出部とを備える。前記表示用データ生成部は、前記表示画面において、予め設定された第一のタッチ操作を、前記タッチ検出部により検出した場合には、前記ページ設定に基づいて現在のページから他のページに切り替えるための表示用データを生成すると共に、前記表示画面において、予め設定された第二のタッチ操作を、前記タッチ検出部により検出した場合には、プログラマブルロジックコントローラに保存された時系列データに基づいて、前記対象デバイス設定により特定されるデバイスの前記デバイス波形を表示させるための表示用データを生成する。前記表示部は、前記表示用データ生成部により生成された表示用データに基づいて、前記他のページ又は前記デバイス波形を前記表示画面に表示する。上記構成により、プログラマブル表示器に対するタッチ操作によって、異なるページに切り替える操作と、プログラマブルロジックコントローラに保存された時系列データのデバイス波形を表示させる操作とを選択的に実行することが可能となる。特に、プログラマブル表示器の表示画面においてデバイス波形を確認することができるので、ＦＡ現場で起きたトラブルを現場で速やかに解決するための情報を容易に取得できる。
【０００９】
また本発明の第２の態様に係るプログラマブル表示器は、上記構成に加えて、前記設定記憶部は、前記デバイス波形を表示させるためのフォーマットが予め定められた既定画面を示す既定画面情報を記憶しており、前記表示用データ生成部は、前記表示画面において、前記予め設定された第二のタッチ操作を、前記タッチ検出部により検出した場合には、前記既定画面情報と前記時系列データとに基づいて、前記既定画面上に該時系列データを重ね合わせることにより、前記対象デバイス設定により特定されるデバイスの前記デバイス波形を表示させるための表示用データを生成することができる。
【００１０】
さらに本発明の第３の態様に係るプログラマブル表示器は、上記いずれかの構成に加えて、前記表示用データ生成部は、前記表示部により前記表示画面に前記デバイス波形が表示された状態で、前記デバイス波形の表示範囲を変更するための変更操作（例えば時刻指定カーソルのスライド操作）を、前記タッチ検出部により検出した場合には、前記時系列データのうち、該変更操作により特定される変更後の表示範囲に対応する時系列データを抽出することにより、該変更後の表示範囲における前記デバイス波形を表示させるための表示用データを生成することができる。
【００１１】
さらにまた本発明の第４の態様に係るプログラマブル表示器は、上記いずれかの構成に加えて、前記設定記憶部に保存される部品設定は、さらに、前記デバイス波形を表示させるための波形表示部品の設定を含み、前記第二のタッチ操作が、前記表示画面に表示された前記第一ページ上に配置された前記波形表示部品に対するタッチ操作である。
【００１２】
さらにまた本発明の第５の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、前記第二のタッチ操作が、前記表示画面において、前記第一ページ上で前記表示部品が配置された領域以外の非配置領域に対する特定の操作である。
【００１３】
さらにまた本発明の第６の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、前記特定の操作が、前記非配置領域に対する長押し、フリック、ピンチイン、ピンチアウトのいずれかである。
【００１４】
さらにまた本発明の第７の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、前記設定記憶部に保存される部品設定は、さらに、プログラマブルロジックコントローラの一時記録部に一時記録されたデバイス値の時系列データを繰り返し取得する取得デバイスの設定と、該取得デバイスの時系列データを逐次表示させるためのリアルタイム表示部品の設定を含み、前記表示用データ生成部は、前記リアルタイム表示部品に対するタッチ操作を検出した場合には、プログラマブルロジックコントローラの一時記録部に一時記録された前記取得デバイスのデバイス値の時系列データに基づいて、該デバイス値を前記表示画面に順次表示させるための表示用データを生成するよう構成される。
【００１５】
さらにまた本発明の第８の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、予め定められた保存条件が満たされると、プログラマブルロジックコントローラに接続された外部のカメラから入力された画像データを、該画像データが取得された取得時刻に関する情報と関連付けてプログラマブルロジックコントローラに一時記憶された状態で、前記プログラマブル表示器がプログラマブルロジックコントローラシステムに対し、前記運転記録データを取得して、前記運転記録データに含まれる取得時刻に関する情報に基づいて、該運転記録データに含まれる画像データに基づく画像を前記表示部に表示させるよう構成される。
【００１６】
さらにまた本発明の第９の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、予め定められた保存条件が満たされると、該保存条件の成立時にプログラマブルロジックコントローラで実行されていたユーザプログラムを、前記運転記録データに関連付けて保存するよう構成している。前記プログラマブル表示器は、該保存された前記運転記録データをプログラマブルロジックコントローラから取得して、該運転記録データに含まれる前記取得時刻に関する情報に基づいて、該収集時刻に対応するデバイス値を、前記表示部において該運転記録データに含まれるユーザプログラム上に表示させるよう構成している。
【００１７】
さらにまた本発明の第１０の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、プログラマブルロジックコントローラ又は該プログラマブルロジックコントローラにより制御される被制御装置にて発生した複数のイベントに応じたイベントデータを、プログラマブルロジックコントローラで収集し、該イベントの発生時刻と該イベントデータとを関連付けて時系列に記憶している状態で、予め定められた保存条件が満たされると、前記記憶されたイベントデータを、前記運転記録データに関連付けられるように前記運転記録データに含めて保存すると共に、前記プログラマブル表示器は、前記保存された前記運転記録データを取得して、該運転記録データに含まれる前記発生時刻に基づいて、該運転記録データに含まれるイベントデータに応じたイベントを前記表示部に表示させるよう構成されている。
【００１８】
さらにまた本発明の第１１の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、前記表示画面において前記デバイス波形を表示させる際の初期表示として、前記対象デバイスを選択する選択画面を表示可能としている。
【００１９】
さらにまた本発明の第１２の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、前記表示画面において前記デバイス波形を表示させる際、表示させるべき一以上の対象デバイスを特定するための識別情報に基づいて、該一以上の対象デバイスを表示可能とすることができる。上記構成により、ＦＡシステムの運用時に何らかのトラブルが発生した際、トラブルの原因に関係しそうなデバイスのデバイス波形を選択的に表示させるようにすることで、トラブルの原因解明に有用な情報を提示して早期復旧に役立つプログラマブル表示器を実現できる。
【００２０】
さらにまた本発明の第１３の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、前記表示画面において前記デバイス波形を表示させる際、一以上の対象デバイスと、その表示形式を設定する設定画面を表示可能としている。上記構成により、ＦＡシステムの運用時に何らかのトラブルが発生した際、トラブルの原因に関係しそうなデバイスのデバイス波形を選択的に表示させるようにすることで、トラブルの原因解明に有用な情報を提示して早期復旧に役立つプログラマブル表示器を実現できる。
【００２１】
さらにまた本発明の第１４の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、さらにプログラマブルロジックコントローラと通信を行う表示器側通信部を備えている。
【００２２】
さらにまた本発明の第１５の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、さらに、前記表示器側通信部を介してプログラマブルロジックコントローラと通信を行い、該プログラマブルロジックコントローラのデバイス値と同期させたデバイス値を保持する表示器側デバイス部を備えている。
【００２３】
さらにまた本発明の第１６の態様に係るプログラマブル表示器は、上記何れかの構成に加えて、さらに、前記対象デバイス設定により特定されるデバイスに関連付けられ、前記保存条件が成立したときのエラーイベントを解消するための対処方法を誘導するガイダンス情報を記憶するガイダンス情報記憶部を備え、前記表示用データ生成部は、前記表示画面において、前記タッチ検出部が前記第二のタッチ操作を検出した場合には、前記ガイダンス情報記憶部に記憶され、前記対象デバイス設定により特定されるデバイスに関連付けられたガイダンス情報を表示させるための表示用データを生成するよう構成できる。
【００２４】
さらにまた本発明の第１７の態様に係るプログラマブルロジックコントローラシステムは、ユーザプログラムによって参照される記憶領域であるデバイスについて、予め定められた保存条件に基づいて該デバイスのデバイス値に関する時系列データを保存するプログラマブルロジックコントローラと、前記プログラマブルロジックコントローラに接続されるプログラマブル表示器とを備える。前記プログラマブルロジックコントローラは、ユーザプログラムを繰り返し実行するプログラム実行部と、前記プログラム実行部によって参照される記憶領域であるデバイスを有するデバイス部と、前記デバイス部に記憶されているデバイスのデバイス値を収集し、該デバイス値の収集時刻に関する情報と該デバイス値とを関連付けて時系列に一時記録する一時記録部と、予め定められた保存条件が満たされると、前記一時記録部に一時記録されているデバイス値に関する時系列データを運転記録データとして保存するための保存メモリとを備える。前記プログラマブル表示器は、プログラマブルロジックコントローラのデバイスの状態をモニタする又は変化させるための部品が複数配置される一画面をページとして、該一画面に配置される部品の各々に対して該デバイスが割り当てられる部品設定、該部品設定を、複数の異なるページを識別するページ識別子によりページ単位で管理するためのページ設定、及びプログラマブルロジックコントローラに保存された時系列データを波形状に示したデバイス波形を表示させる対象デバイスを特定するための対象デバイス設定を記憶する設定記憶部と、前記設定記憶部に記憶された部品設定及びページ設定に基づいて、前記複数の異なるページ識別子に対応する各ページの表示用データを生成する表示用データ生成部と、表示画面を備え、前記表示用データ生成部により生成された表示用データに基づいて、前記ページ識別子に対応するページを該表示画面に表示する表示部と、前記表示部の前記表示画面に対するタッチ操作を検出するタッチ検出部とを備える。前記表示用データ生成部は、前記表示画面において予め設定された第一のタッチ操作を、前記タッチ検出部により検出した場合には、前記ページ設定に基づいて現在のページから他のページに切り替えるための表示用データを生成すると共に、前記表示画面において、予め設定された第二のタッチ操作を、前記タッチ検出部により検出した場合には、プログラマブルロジックコントローラに保存された時系列データに基づいて、前記対象デバイス設定により特定されるデバイスの前記デバイス波形を表示させるための表示用データを生成し、前記表示部は、前記表示用データ生成部により生成された表示用データに基づいて、前記他のページ又は前記デバイス波形を前記表示画面に表示するよう構成している。上記構成により、プログラマブル表示器に対するタッチ操作によって、異なるページに切り替える操作と、プログラマブルロジックコントローラに保存された時系列データのデバイス波形を表示させる操作とを選択的に実行することが可能となる。特に、プログラマブル表示器の表示画面においてデバイス波形を確認することができるので、ＦＡ現場で起きたトラブルを現場で速やかに解決するための情報を容易に取得できる。
【００２５】
さらにまた本発明の第１８の態様に係るプログラマブルロジックコントローラシステムは、上記構成に加えて、前記設定記憶部に保存される部品設定は、さらに、前記デバイス波形を表示させるための波形表示部品の設定を含み、前記第二のタッチ操作が、前記表示画面に表示された前記第一ページ上に配置された前記波形表示部品に対するタッチ操作である。
【００２６】
さらにまた本発明の第１９の態様に係るプログラマブルロジックコントローラシステムは、上記何れかの構成に加えて、前記第二のタッチ操作が、前記表示画面において、前記第一ページ上で前記表示部品が配置された領域以外の非配置領域に対する特定の操作である。
【００２７】
さらにまた本発明の第２０の態様に係るプログラマブルロジックコントローラシステムは、上記何れかの構成に加えて、前記特定の操作が、前記非配置領域に対する長押し、フリック、ピンチイン、ピンチアウトのいずれかである。
【００２８】
さらにまた本発明の第２１の態様に係るプログラマブルロジックコントローラシステムは、上記何れかの構成に加えて、前記プログラマブル表示器の前記設定記憶部は、前記記録制御部により一時記録されたデバイス値の時系列データを繰り返し取得する取得デバイスを特定するための取得デバイス設定を記憶し、前記表示用データ生成部は、前記取得デバイス設定により特定される取得デバイスの時系列データを表示させるための部品に対するタッチ操作を検出した場合には、前記記録制御部により一時記録されたデバイス値の時系列データに基づいて、該取得デバイスのデバイス値を順次表示させるための表示用データを生成するよう構成している。
【００２９】
さらにまた本発明の第２２の態様に係るプログラマブルロジックコントローラシステムは、上記何れかの構成に加えて、プログラマブルロジックコントローラは、さらに、外部のカメラと接続され、該カメラから画像データが入力される外部インターフェースと、前記外部インターフェースを介して前記カメラから入力される画像データを一時的に記録する画像記録部と、前記外部インターフェースを介して前記カメラから入力される画像データを収集し、該画像データが取得された取得時刻に関する情報と該画像データとを関連付けて、前記画像記録部に一時記憶するカメラユニット処理部とを備えており、前記保存メモリは、前記保存条件が満たされると、前記カメラユニット処理部により前記画像記録部に一時記憶された画像データを、前記運転記録データと関連付けて保存し、前記プログラマブル表示器は、前記保存メモリに保存された前記運転記録データを取得して、前記運転記録データに含まれる取得時刻に関する情報に基づいて、該運転記録データに含まれる画像データに基づく画像を前記表示部に表示させるよう構成している。
【００３０】
さらにまた本発明の第２３の態様に係るプログラマブルロジックコントローラシステムは、上記何れかの構成に加えて、前記プログラマブルロジックコントローラは、前記保存条件が満たされると、該保存条件の成立時に前記プログラム実行部により実行されていたユーザプログラムを、前記運転記録データに関連付けられるように前記運転記録データに含めて前記保存メモリに保存するよう構成されており、前記プログラマブル表示器は、前記保存メモリに保存された前記運転記録データを取得して、該運転記録データに含まれる前記取得時刻に関する情報に基づいて、該収集時刻に対応するデバイス値を、前記表示部において該運転記録データに含まれるユーザプログラム上に表示させるよう構成されている。
【００３１】
さらにまた本発明の第２４の態様に係るプログラマブルロジックコントローラシステムは、上記何れかの構成に加えて、前記プログラマブルロジックコントローラは、さらに、プログラマブルロジックコントローラ又は該プログラマブルロジックコントローラにより制御される被制御装置にて発生した複数のイベントに応じたイベントデータを収集し、該イベントの発生時刻と該イベントデータとを関連付けて前記一時記録部に時系列に記憶するイベント収集部を備えており、前記保存メモリは、前記保存条件が満たされると、前記イベント収集部により記憶されたイベントデータを、前記運転記録データに関連付けられるように前記運転記録データに含めて保存し、前記プログラマブル表示器は、前記保存メモリに保存された前記運転記録データを取得して、該運転記録データに含まれる前記発生時刻に基づいて、該運転記録データに含まれるイベントデータに応じたイベントを前記表示部に表示させるよう構成されている。
【図面の簡単な説明】
【００３２】
【図１】プログラマブルロジックコントローラシステムの機能ブロック図である。
【図２】プログラマブル表示器にユーザ画面を表示させた例を示す模式図である。
【図３】プログラマブルロジックコントローラシステムの機能ブロック図である。
【図４】ラダープログラムの模式図である。
【図５】プログラム作成装置の機能ブロック図である。
【図６】ＰＬＣの機能ブロック図である。
【図７】ラダープログラムのスキャンを説明する模式図である。
【図８】ＣＰＵユニットの機能ブロック図である。
【図９】カメラユニットを備えるプログラマブルロジックコントローラシステムの機能ブロック図である。
【図１０】拡張ユニットの機能ブロック図である。
【図１１】プログラマブル表示器の機能ブロック図である。
【図１２】リプレイモードのデバイス波形表示画面を示す模式図である。
【図１３】画面データ作成装置のページ設定画面を示す模式図である。
【図１４】画面データ作成装置のスイッチ設定画面を示す模式図である。
【図１５】図１４のスイッチ設定画面で「リプレイモード起動」が選択された状態を示す模式図である。
【図１６】画面データ作成装置の対象デバイス設定画面を示す模式図である。
【図１７】ページ切替部品を配置した表示画面の一例を示す模式図である。
【図１８】ページ切替部品を配置した表示画面の他の例を示す模式図である。
【図１９】ページ切替部品を配置した表示画面の他の例を示す模式図である。
【図２０】ページ切替部品を配置した表示画面の他の例を示す模式図である。
【図２１】プログラマブル表示器のメニュー画面を示す模式図である。
【図２２】リプレイモードの初期画面を示す模式図である。
【図２３】リプレイモード画面でカメラ・イベント表示画面を選択した状態を示す模式図である。
【図２４】リプレイモード画面でビューワ表示画面を選択した状態を示す模式図である。
【図２５】リプレイモード画面でユニット表示画面を選択した状態を示す模式図である。
【図２６】リプレイモード画面でユニット表示画面を選択した状態を示す模式図である。
【図２７】リプレイモード画面でプログラム表示画面を選択した状態を示す模式図である。
【図２８Ａ】プログラマブル表示器の処理動作を示すフローチャートである。
【図２８Ｂ】図２８ＡのフローチャートのステップＳ２８０４の詳細を示すフローチャートである。
【図２８Ｃ】図２８ＡのフローチャートのステップＳ２８０９の詳細を示すフローチャートである。
【図２８Ｄ】図２８ＡのフローチャートのステップＳ２８１０の詳細を示すフローチャートである。
【図２９】モニタモードのデバイス波形表示画面を示す模式図である。
【図３０】プログラマブル表示器のリアルタイムチャートモニタをモニタモードとする場合の処理動作を示すフローチャートである。
【図３１】リプレイモードのデバイス波形表示画面のみを示す模式図である。
【図３２】保存条件に応じて表示させるデバイス波形を変更する様子を示す模式図である。
【図３３】トラブル発生時のアラームと表示用データの紐付けを行う画面データ作成装置のユーザインターフェース画面を示す模式図である。
【図３４Ａ】ユーザ画面の画面データのデータ構造を示す模式図である。
【図３４Ｂ】システム画面の画面データのデータ構造を示す模式図である。
【図３４Ｃ】ＲＴＣＭＩＤとデバイスの紐付けが行われたデータ構造の模式図である。
【図３５】プログラマブルロジックコントローラの機能ブロック図である。
【図３６】プログラマブル表示器が運転記録データを表示させる様子を示す模式図である。
【図３７】表示器処理部の機能ブロック図である。
【図３８】プログラム表示モジュールを説明する図である。
【図３９】プログラマブル表示器に表示されるユーザーインターフェース画面を説明する図である。
【図４０】プロジェクトデータとログデータの表示モジュールを説明する図である。
【図４１】デバイス値とワーク画像と他の画像の取得タイミングを示す模式図である。
【図４２】ログデータの表示タイミングと表示継続時間とを示す模式図である。
【図４３】画像データと時刻情報を紐付ける手順を示すフローチャートである。
【図４４】イベントデータの時刻情報とを紐付けする手順を示すフローチャートである。
【図４５】プログラマブル表示器がデバイス監視を行う基本処理動作を示すフローチャートである。
【図４６】実施形態２に係るプログラマブル表示器のユーザ画面を示す模式図である。
【図４７】実施形態３に係るプログラマブル表示器のユーザ画面を示す模式図である。
【図４８】実施形態４に係るプログラマブル表示器のユーザ画面を示す模式図である。
【図４９】実施形態５に係るプログラマブルロジックコントローラシステムの画面データ作成装置のスイッチ設定画面を示す模式図である。
【図５０】リプレイモードのデバイス波形表示画面の変形例を示す模式図である。
【発明を実施するための形態】
【００３３】
以下、本発明の実施形態を図面に基づいて説明する。ただし、以下に示す実施形態は、本発明の技術思想を具体化するための例示であって、本発明は以下のものに特定されない。また、本明細書は特許請求の範囲に示される部材を、実施形態の部材に特定するものでは決してない。特に実施形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一若しくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。
［実施形態１］
【００３４】
図１に、プログラマブルロジックコントローラシステム１０００の概要図を示す。この図に示すプログラマブルロジックコントローラシステム１０００は、ラインを流れる対象物ＷＫをカメラ部９８で撮像して、モータＭＴで加工し、センサ等の入出力機器ＳＳで検査するシステムを例示している。このプログラマブルロジックコントローラシステム１０００は、プログラマブルロジックコントローラ１と、プログラマブル表示器５０と、プログラム作成装置７０と、画面データ作成装置６０を備える。プログラマブルロジックコントローラ（以下「ＰＬＣ」ともいう。）１は、プログラム作成装置７０と接続されている。プログラム作成装置７０は、ＰＬＣ１で実行されるラダープログラム等のユーザプログラムの作成や編集を行う。またプログラマブル表示器５０は、画面データ作成装置６０と接続されている。画面データ作成装置６０は、プログラマブル表示器５０で表示される画面の設定、例えば表示画面上に表示されるページ毎に、配置される部品の選択やレイアウトなどの設定を行う。これらプログラム作成装置７０や画面データ作成装置６０は、専用の機器で構成する他、汎用のＰＣにインストールされたソフトウェアで実現することもできる。
［ＰＬＣのシステム構成］
【００３５】
ＰＬＣシステムは、工場等に設置される入出力機器を統括的に制御するＰＬＣ１、ＰＬＣ１を動作させるラダープログラムを作成するプログラム作成装置７０、ＰＬＣ１のデバイスの状態を監視したり変更させたりするプログラマブル表示器５０、及びプログラマブル表示器５０で表示用データを生成するための画面データを作成する画面データ作成装置６０を含む。
【００３６】
なお、デバイスとは、ラダープログラムによって参照されるＰＬＣ１内の記憶領域を指す名称である。デバイスのデバイス値は、入出力機器の入力状態又は出力状態、ラダープログラム上に記述される内部リレー（補助リレー）、タイマ、カウンタ等の状態を示す。
デバイス値の型には、ビット型とワード型があり、ビットデバイスは１ビットのデバイス値、ワードデバイスは１ワードのデバイス値を記憶する。
【００３７】
ＰＬＣ１は、ＣＰＵユニット３と拡張ユニット４に大別される。拡張ユニット４は、ＣＰＵユニット３の機能を拡張する機能拡張ユニットであり、図１では、センサなどの入力機器、警報ランプなどの出力機器を含む入出力機器が接続されるＩ／Ｏユニット４ｆ、製造ラインを流れるワークを所定タイミングで撮像するカメラが接続されるカメラユニット４ｃ、製造ラインやロボットを駆動するモータが接続されるモーションユニット４ｄを例示している。モーションユニット４ｄは、位置決めユニットとも呼ばれ、軸と呼ばれる制御対象の位置を制御し、一般に軸ごとにモータ等の駆動源が存在する。ＣＰＵユニット３は、これら拡張ユニット４からのデータを収集し、ラダープログラムを実行して必要な演算処理を行って、各拡張ユニット４を制御する。
【００３８】
プログラム作成装置７０は、ラダープログラムの作成、作成済みのラダープログラムの編集、修正を行うことができる。またプログラム作成装置７０は、ＣＰＵユニット３に接続される一又は複数の拡張ユニット４の構成や、拡張ユニット４の動作パラメータを編集することもできる。なおラダープログラムやユニット構成情報を含むデータを、プロジェクトデータと呼ぶ。プログラム作成装置７０は、ユーザ操作に基づいて、プロジェクトデータを作成し、作成したプロジェクトデータをニモニックコードに変換し、変換後のラダープログラムをＣＰＵユニット３に転送する。
【００３９】
ＣＰＵユニット３は、ラダープログラムをマシンコードに変換し、ＰＬＣ１の運転時、マシンコードからなるラダープログラムを繰返し周期的に実行する。ここで、ＣＰＵユニット３は、ラダープログラムを周期的に実行している際、複数のデバイスに記憶されているデバイス値を現在時刻と関連付けて収集し、リングバッファ等の一時記録部９１ａに一時的に記録する。リングバッファが一杯になると、古いデバイス値から上書きしていくため、リングバッファの記憶容量に応じて、一定期間分のデバイス値の時系列データが一時記憶される。そして、例えば製造ラインでトラブルが発生する等、予め定められた保存条件が成立すると、プログラム作成装置７０において予め保存対象として選択されたデバイスの時系列データが、ログデータとして、フラッシュメモリやＳＤカード等の保存メモリ３６に自動的に保存される（後述する図６を参照）。
【００４０】
このとき、デバイスの時系列データと共に、カメラユニット４ｃにて時系列に収集された画像データが、ログデータとして併せて保存される。また、保存条件が成立した際にＣＰＵユニット３で実行されていたラダープログラムや、その際のユニット構成情報も、ログデータと関連付けて保存される。このように、予め定められた保存条件が成立した際、デバイスの時系列データや時系列の画像データを含むログデータと、ラダープログラムやユニット構成情報とが、例えば共通の識別子を有するファイル群で管理される等、互いに関連付けられて保存メモリ３６に保存される。このファイル群を、「運転記録データ」と呼ぶ。本実施形態では、プログラム作成装置７０のみならず、プログラマブル表示器５０においても、運転記録データの中身を確認することができる。この詳細については後述する。
［プログラマブル表示器５０のシステム構成］
【００４１】
プログラマブル表示器５０は、ＰＬＣ１と通信ケーブルによって接続され、ＰＬＣ１のデバイスに記憶されているデバイス値は、通信ケーブルを介してプログラマブル表示器５０に転送される。プログラマブル表示器５０の表示画面には、図２に示すように、ランプやスイッチなどの各種の機能部品ＦＰが配置され、それぞれの機能部品ＦＰに対してデバイスが割り当てられる。一般に、各種機能部品ＦＰが一又は複数配置された一画面をページと呼び、複数のページは、それぞれ異なる画面ＩＤによって管理されている。プログラマブル表示器５０は、画面ＩＤに対応するページを表示画面に表示する。また、画面ＩＤを表示画面上に表示させてもよい。図２の例では、右上に画面ＩＤ表示欄ＩＡを設けている。なお画面ＩＤ表示欄ＩＡは、常時表示させる他、必要時にのみ表示させるようにしてもよい。例えば表示画面の何もないところを右クリックすることで、画面ＩＤ表示を呼び出すようにする。あるいはフリック動作でページを切り替える際に、表示画面上にオーバーレイ表示で大きく画面ＩＤを重ねて表示させてもよい。
【００４２】
ここで、図２に示す各種部品について、より詳細に説明する。図２に示す画面には、上述した各種機能部品ＦＰだけでなく、様々な部品が配置されている。上述した「画面ＩＤ表示欄１Ａ」に記載された“１”というテキストや、左上の「監視画面」というテキストは、いわゆるテキスト部品ＴＸである。テキスト部品ＴＸには、一般的にデバイスは割てられていない。
【００４３】
「監視画面」テキスト部品ＴＸ１の下には、「生産品番」というテキスト部品ＴＸ２が配置され、その下には、数値表示欄２４１として文字表示部品ＣＰが配置されている。文字表示部品ＣＰには、特定のデバイス（プログラマブル表示器５０内の内部デバイスであってもよいし、ＰＬＣ１内の外部デバイスであってもよい。以下同様）が割り当てられており、そのデバイスによって特定される文字又は文字列が、文字表示部品ＣＰに表示される。図２の例では、数値表示欄２４１に文字表示部品ＣＰとして「ＡＢＣ−１２３」という文字列が表示されている。
【００４４】
「監視画面」テキスト部品ＴＸ１の右には、「正常」と「異常」を示すランプ部品ＲＰ（機能部品ＦＰの一つ）が配置され、各ランプ部品ＲＰには、それぞれ特定のデバイスが割り当てられている。そして、デバイスのデバイス値に応じて、点灯状態を示す部品画像が表示されたり、消灯状態を示す部品画像が表示されたりする。図２では、「正常」を示すランプ部品ＲＰ１は、点灯状態を示す部品画像が表示され、「異常」を示すランプ部品ＲＰ２は、消灯状態を示す部品画像が表示されている。
【００４５】
ランプ部品ＲＰの右側には、「温度メータ」からなるメータ部品ＭＰが配置されている。メータ部品ＭＰにも、特定のデバイスが割り当てられている。そのデバイスのデバイス値に応じて、メータ部品ＭＰの指針の位置が動的に変わるようになっている。図２では、デバイス値が６０のときの状態を示している。
【００４６】
図２の中央には、「カウンタ  設定値  現在値  リセット  カウンタグラフ」というテキスト部品ＴＸ３が配置されている。そして、その下には、「製品Ａ」、「製品Ｂ」、「製品Ｃ」、「製品Ｄ」というテキスト部品ＴＸ４、ＴＸ５、ＴＸ６、ＴＸ７が配置されると共に、それらの右側に、各製品に対する設定値と現在値を表す数値表示部品ＮＰが配置されている。数値表示部品ＮＰには、特定のデバイスが割り当てられており、そのデバイスのデバイス値が、数値表示部品ＮＰに表示される。図２の例では、製品Ａに対して「１００」、「８０」、製品Ｂに対して「１００」、「１０」、製品Ｃに対して「１００」、「１００」、製品Ｄに対して「１００」、「８０」、の各数値表示部品ＮＰが、それぞれ対応付けて配置されている。
【００４７】
数値表示部品ＮＰの右側には、ＲＥＳＥＴスイッチ２４６として、「ＲＥＳＥＴ」と書かれたスイッチ部品ＳＰが配置されている。スイッチ部品ＳＰにも、特定のデバイスが割り当てられている。そのデバイスのデバイス値に応じて、スイッチＯＮかスイッチＯＦＦが切り替わるようになっている。図２では、ＲＥＳＥＴスイッチ２４６をタッチ操作することで、割り当てられた特定のデバイスの状態を変えることができる（例えば１→０）。これにより、各製品の現在値を０にリセットすることができる（すなわち、数値表示部品ＮＰに割り当てられたデバイスのデバイス値を０に書き換えることができる）。
【００４８】
ＲＥＳＥＴスイッチ２４６のスイッチ部品ＳＰの右側には、カウンタグラフを示すグラフ部品ＧＰが配置されている。グラフ部品ＧＰにも、特定のデバイスが割り当てられている。そのデバイスのデバイス値に応じて、バーグラフの状態が動的に変化するようになっている。図２では、各製品の現在値に応じて、バーの長さが変わるようになっている（つまり、現在値を示す数値表示部品ＮＰに割り当てられたデバイスと、カウンタグラフを示すグラフ部品ＧＰに割り当てられたデバイスとが同じになっている）。
【００４９】
このように、画面ＩＤによって識別される一画面（一ページ）上に配置された各種部品は、多種多様なものがあり、デバイスが割り付いる部品や、デバイスが割り付いていない部品、部品画像が割り付いている部品や、部品画像が割り付いていない部品などがある。一画面のデータ構造の詳細については後述する。
【００５０】
またプログラマブル表示器５０は、表示画面に設けられたタッチパネルを用いて、ユーザのタッチ操作を検出する。ユーザが任意の機能部品ＦＰをタッチすると、その機能部品ＦＰに対して割り当てられたデバイスの状態を変化させることができる。例えば、スイッチの機能部品をタッチした場合、そのスイッチに割り当てられたデバイスのＯＮ／ＯＦＦ状態を変化させ、スイッチの機能を実現することができる。ユーザのタッチの検出は、後述する図１１に示すタッチ検出部５３で行われる。
（ＰＬＣ１）
【００５１】
まずＰＬＣ１の構成について、説明する。図１に示すＰＬＣ１は、複数のユニットを接続して構成される。複数のユニット間は、ユニット間バス９０を介して通信可能に接続されている。ユニットは、ＣＰＵユニット３と拡張ユニット４に大別される。ＣＰＵユニット３はメインユニットや基本ユニットとも呼ばれ、ＰＬＣ１の基本動作を行う。また拡張ユニット４は、ＣＰＵユニット３の機能を拡張する機能拡張ユニットである。図１の例では、拡張ユニット４はカメラユニット４ｃと、モーションユニット４ｄと、通信ユニット４ｅと、Ｉ／Ｏユニット４ｆを含む。拡張ユニット４の一種であるカメラユニット４ｃは、カメラ部９８と接続されて、対象物ＷＫを所定のタイミングで撮像して、ＣＰＵユニット３に送出する。モーションユニット４ｄは、位置決めユニットとも呼ばれ、軸とよばれる制御対象の位置を制御する。一般に軸ごとにモータ等の駆動源が存在する。通信ユニット４ｅは、通信ユニット処理部４１ｅを備えており、外部機器と通信を行う。Ｉ／Ｏユニット４ｆは、Ｉ／Ｏユニット処理部４１ｆを備えており、センサ等の入出力機器ＳＳを接続している。またＣＰＵユニット３は、これら拡張ユニット４からのデータを収集して、必要な制御を行う。
（ＰＬＣシステムのシステム構成）
【００５２】
ここで、ＰＬＣ１を当業者にとってよりよく理解できるようにするために、一般的なＰＬＣ１の構成とその動作について説明する。
【００５３】
本発明の実施の形態によるプログラマブルロジックコントローラシステムの一構成例を図３に示す。この図に示すように、プログラマブルロジックコントローラシステムは、ラダープログラム等のユーザプログラムの編集を行うためのＰＣ２と、工場等に設置される各種制御装置を統括的に制御するためのＰＬＣ１とを備えている。ＰＣはパーソナルコンピュータの略称である。ユーザプログラムは、ラダー言語やＳＦＣ（シーケンシャルファンクションチャート）等のフローチャート形式のモーションプログラム等のグラフィカルプログラミング言語を用いて作成してもよいし、Ｃ言語等の高級プログラミング言語を用いて作成してもよい。以下では、説明の便宜上ユーザプログラムをラダープログラムとして説明するが、本発明はユーザプログラムをラダープログラムに限定しない。
【００５４】
ＰＬＣ１は、ＣＰＵが内蔵されたＣＰＵユニット３と、一乃至複数の拡張ユニット４を備えている。ＣＰＵユニット３に対して一乃至複数の拡張ユニット４が着脱可能となっている。例えば、拡張ユニット４ａはモータ（フィールドデバイス１０ａ）を駆動してワークの位置決めする位置決めユニットであり、拡張ユニット４ｂはカウンタユニットであってもよい。カウンタユニットは手動パルサ等のエンコーダ（フィールドデバイス１０ｂ）からの信号をカウントする。なお、参照符号の末尾に付与されているａ、ｂ、ｃ・・・の文字は省略されることがある。なお、ＰＬＣ１とＰＣ２とを含むシステムはプログラマブルロジックコントローラシステムと呼ばれてもよい。
【００５５】
ＣＰＵユニット３には、ＰＬＣ側表示部５及びＰＬＣ側操作部６が備えられている。ＰＬＣ側表示部５は、ＣＰＵユニット３に取り付けられている各拡張ユニット４の動作状況等を表示することができる。ＰＬＣ側操作部６の操作内容に応じてＰＬＣ側表示部５は表示内容を切り替える。またＰＬＣ側操作部６は、ＣＰＵユニット３と一体に組み込まれたボタン等とする他、、外付けのコンソールやマウスやキーボード等の入力装置としてもよい。あるいは、ＰＬＣ側表示部５をタッチパネルとして操作部の機能を兼用させることもできる。
【００５６】
ＰＬＣ側表示部５は、通常、ＰＬＣ１内のデバイスの現在値（デバイス値）やＰＬＣ１内で生じたエラー情報等を表示する。デバイスとは、デバイス値（デバイスデータ）を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリとも呼ばれる。デバイス値とは、入力機器からの入力状態、出力機器への出力状態及びユーザプログラム上で設定される内部リレー（補助リレー）、タイマ、カウンタ、データメモリ等の状態を示す情報である。デバイス値の型にはビット型とワード型がある。ビットデバイスは１ビットのデバイス値を記憶する。ワードデバイスは１ワードのデバイス値を記憶する。
【００５７】
拡張ユニット４は、ＰＬＣ１の機能を拡張するために用意されている。各拡張ユニット４には、その拡張ユニット４の機能に対応するフィールドデバイス（被制御装置）１０が接続され、これにより、各フィールドデバイス１０が拡張ユニット４を介してＣＰＵユニット３に接続される。フィールドデバイス１０は、センサやカメラ部等の入力機器であってもよいし、アクチュエータ等の出力機器であってもよい。また、一つの拡張ユニット４に対して複数のフィールドデバイス１０が接続されてもよい。
（プログラム作成装置７０）
【００５８】
ＰＣ２は、プログラム作成装置７０を実現する。プログラム作成装置７０は、ＰＬＣ１と接続して、その設定や、運用時の制御や動作確認等を行うための装置である。また、ＰＬＣ１やこれを含めたプログラマブルロジックコントローラシステムを動作させる各種プログラムの作成や、作成済みのプログラムの編集、修正を行うこともできる。この意味ではプログラム作成装置７０は、プログラム作成支援装置やプログラマブルロジックコントローラ用エンジニアリングツール等とも称される。さらにプログラム作成装置７０は、過去のプログラマブルロジックコントローラシステムの動作を記録した運転記録データに基づいて、その当時の各デバイスの動作状況を再現することもできる。運転記録データは、ラダープログラム等のユーザプログラムや、各ユニットのユニット構成情報などの設定データを含むプロジェクトデータ、及び運転当時の各デバイスのデバイス値やカメラ部の画像データ等の運用データであるログデータを含んでいる。このプログラム作成装置７０は、運転記録データの内、プロジェクトデータを読み込んで編集することも可能である。この意味でプログラム作成装置７０は、プロジェクトデータ編集プログラムとも呼ばれる。
【００５９】
ＰＣ２は、例えば携帯可能なノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部７及びＰＣ側操作部８を備えている。ＰＬＣ１を制御するためのユーザプログラムの一例であるラダープログラムは、ＰＣ２を用いて作成される。その作成されたラダープログラムは、ＰＣ２内でニモニックコードに変換される。ＰＣ２は、ＵＳＢ（Universal Serial Bus）等の通信ケーブル９を介してＰＬＣ１のＣＰＵユニット３に接続され、ニモニックコードに変換されたラダープログラムをＣＰＵユニット３に送る。ＣＰＵユニット３はラダープログラムをマシンコードに変換し、ＣＰＵユニット３に備えられたメモリ内に記憶する。なお、ここではニモニックコードがＣＰＵユニット３に送信されているが、本発明はこれに限られない。例えば、ＰＣ２は、ニモニックコードを中間コードに変換し、中間コードをＣＰＵユニット３に送信してもよい。
【００６０】
なお、ＰＣ２のＰＣ側操作部８には、ＰＣ２に接続されたマウス等のポインティングデバイスが含まれていてもよい。またＰＣ２は、ＵＳＢ以外の他の通信ケーブル９を介して、ＰＬＣ１のＣＰＵユニット３に対して着脱可能に接続されるような構成であってもよい。また、通信ケーブル９等の物理的なケーブルを介さず、ＰＬＣ１に対して無線で接続する態様としてもよい。
（ラダープログラム）
【００６１】
ラダープログラムの作成時にＰＣ２の表示部７に表示されるラダー図Ｌｄの一例を、図４に示す。ＰＣ２は、マトリックス状に配置された複数のセルを表示部７に表示する。各セルには、仮想デバイスのシンボルが配置される。シンボルは、入力リレーや出力リレー等を示している。このような複数のシンボルによってリレー回路が形成される。ラダー図Ｌｄには、例えば１０列×Ｎ行（Ｎは任意の自然数）のセルが配置されている。そして各行のセル内には、仮想デバイスのシンボルが適宜配置される。
【００６２】
図４が示すリレー回路は、入力装置からの入力信号に基づいてＯＮ／ＯＦＦされる３つの仮想デバイス（以下、「入力デバイス」と呼ぶ。）のシンボルと、出力装置の動作を制御するためにＯＮ／ＯＦＦされる仮想デバイス（以下、「出力デバイス」と呼ぶ。）のシンボルと、が適宜結合されることにより構成されている。
【００６３】
各入力デバイスのシンボルの上方に表示されている文字（「Ｒ０００１」、「Ｒ０００２」及び「Ｒ０００３」）は、その入力デバイスのデバイス名（アドレス名）を表している。各入力デバイスのシンボルの下方に表示されている文字（「フラグ１」、「フラグ２」及び「フラグ３」）は、その入力デバイスに対応付けられたデバイスコメントを表している。出力デバイスのシンボルの上方に表示されている文字（「原点復帰」）は、その出力デバイスの機能を表す文字列からなるラベルである。
【００６４】
図４に示す例では、デバイス名「Ｒ０００１」及び「Ｒ０００２」にそれぞれ対応する２つの入力デバイスのシンボルが直列的に結合されることにより、ＡＮＤ回路が構成されている。また、これらの２つの入力デバイスのシンボルからなるＡＮＤ回路に対して、デバイス名「Ｒ０００３」に対応する入力デバイスのシンボルが並列的に結合されることにより、ＯＲ回路が構成されている。すなわち、このリレー回路では、一行目の２つのシンボルに対応する入力デバイスがいずれもＯＮした場合、又は二行目のシンボルに対応する入力デバイスがＯＮした場合にのみ、一行目のシンボルに対応する出力デバイスがＯＮになる。
（プログラム作成装置７０）
【００６５】
プログラム作成装置７０を実現するＰＣ２のブロック図を、図５に示す。この図に示すように、ＰＣ２は、ＰＣ側メモリ部１１、ＰＣ側ＣＰＵ２１、表示部７、ＰＣ側操作部８、ＰＣ側記憶装置２２及びＰＣ側通信部２３を備えている。表示部７、ＰＣ側操作部８、ＰＣ側記憶装置２２及びＰＣ側通信部２３は、それぞれＰＣ側ＣＰＵ２１に対して電気的に接続されている。
【００６６】
ＰＣ側メモリ部１１は、ＰＣ側ＣＰＵ２１が処理を実行するための作業空間となる作業メモリであり、典型的にはＲＡＭ等で構成される。運転記録データは、プロジェクトデータを含んでいる。
【００６７】
ＰＣ側記憶装置２２はハードディスクや半導体メモリ、ＲＯＭ等を含み、さらに着脱可能なメモリカードを含んでもよい。ＣＰＵは中央演算処理装置の略称である。ＲＯＭはリードオンリーメモリの略称である。ＲＡＭはランダムアクセスメモリの略称である。
【００６８】
ユーザは、ＰＣ側記憶装置２２に記憶されているコンピュータプログラムである編集ソフトウエアをＰＣ側ＣＰＵ２１に実行させて、ＰＣ側操作部８を通じてプロジェクトデータを編集する。この編集ソフトウエアは、ＰＣ２で実行されるプロジェクトデータ編集プログラムにあたる。
（プロジェクトデータ）
【００６９】
プロジェクトデータは、一つ以上のユーザプログラム（例えばラダープログラム）と、ＣＰＵユニット３や拡張ユニット４のユニット構成情報等を含む。またプロジェクトデータは、ユーザプログラムがどのようなプログラム部品から構成されているかを示すプログラム構成情報を含めてもよい。さらにユニット構成情報は、ＣＰＵユニット３に対する複数の拡張ユニット４の接続位置や、ＣＰＵユニット３に備えられた機能（例えば通信機能や位置決め機能）を示す情報、拡張ユニット４の機能（例えば撮影機能）等を示す情報である。
【００７０】
ここで、プロジェクトデータの編集には、プロジェクトデータの作成及び変更が含まれる。プロジェクトデータ編集プログラムを用いて作成されたプロジェクトデータは、ＰＣ側記憶装置２２に記憶される。またユーザは、必要に応じてＰＣ側記憶装置２２に記憶されているプロジェクトデータを読み出し、そのプロジェクトデータを、プロジェクトデータ編集プログラムを用いて変更することができる。ＰＣ側通信部２３は、通信ケーブル９を介してＰＣ２をＣＰＵユニット３に通信可能に接続するためのものである。ＰＣ側ＣＰＵ２１はＰＣ側通信部２３を介してプロジェクトデータをＣＰＵユニット３に転送する。
【００７１】
プロジェクトデータ編集プログラムは、編集モードと監視モードと履歴再生モードを備える。編集モードはエディットモード等とも呼ばれ、プロジェクトデータを編集することができる。また監視モードは、ユーザプログラムの作成時にデバッグ等を行うためのシミュレーション動作や、ＦＡシステム運用時の被制御装置のデバイス値の変化を示すデバイス波形のリアルタイム表示を行うことができる。さらに履歴再生モードは、リプレイモードやタイムマシン再生等とも呼ばれ、再生表示を行うことができる。これらの編集モード、監視モード、履歴再生モードの切り替えは、モード切替部で行われる。
（ＰＬＣ１）
【００７２】
ＰＬＣ１の機能ブロック図を図６に示す。この図に示すように、ＣＰＵユニット３は、ＣＰＵユニット処理部３１、ＰＬＣ側表示部５、ＰＬＣ側操作部６、ＣＰＵユニット記憶部３２及びＰＬＣ側通信部３３を備えている。ＰＬＣ側表示部５、ＰＬＣ側操作部６、ＣＰＵユニット記憶部３２及びＰＬＣ側通信部３３は、それぞれＣＰＵユニット処理部３１に電気的に接続されている。
（ＣＰＵユニット記憶部３２）
【００７３】
ＣＰＵユニット記憶部３２は、プロジェクト記憶部３５、ＰＬＣ側デバイス部３４、一時記録部９１ａ、保存メモリ３６を備えている。
【００７４】
プロジェクト記憶部３５は、ＰＣ２から入力されたプロジェクトデータを記憶する。またＣＰＵユニット記憶部３２はＣＰＵユニット３用の制御プログラムも記憶する。
【００７５】
ＰＬＣ側デバイス部３４はビットデバイスやワードデバイス等を有し、各デバイスはデバイス値を記憶する。このＰＬＣ側デバイス部３４は、複数のデバイスの各デバイス値を記憶するデバイスメモリとして機能する。またユーザプログラムに従い参照される記憶領域として機能させてもよい。
【００７６】
一時記録部９１ａは、ＰＬＣ側デバイス部３４に記憶されているデバイス値を時系列に記録する。この一時記録部９１ａは、リングバッファ等で構成できる。
【００７７】
保存メモリ３６は、一時記録部９１ａに時系列に記録されたデバイス値を保存する。保存メモリ３６は、不揮発性メモリとして、内部メモリ３７や着脱可能なメモリカード３６Ａ等で構成される。
【００７８】
このようにＣＰＵユニット記憶部３２は複数の記憶領域を有している。このＣＰＵユニット記憶部３２はＲＡＭやＲＯＭ、メモリカード等を含んでもよい。例えば図６の例では、保存メモリ３６として着脱可能なメモリカード３６ＡであるＳＤカード（商品名）で構成されている。
（ＣＰＵユニット処理部３１）
【００７９】
ＣＰＵユニット処理部３１は、プログラム実行部４０と、保存条件設定部４５と、記録制御部３９と、保存制御部３９Ｃと、イベント収集部９２ｂを備えている。プログラム実行部４０は、ユーザプログラムを繰り返し実行する。ユーザプログラムに従い、プログラム実行部４０により参照される記憶領域であるＰＬＣ側デバイス部３４は、複数のデバイスの各デバイス値を記憶している。
【００８０】
保存条件設定部４５は、各種の条件を設定するための部材である。ここでは保存条件設定部４５は、一時記録部９１ａに記録するための記録トリガについての第１トリガ条件と、保存メモリ３６に保存するための保存トリガについての第２トリガ条件と、記録トリガが示す時点を基準時とし、この基準時までの期間及び該基準時からの期間の少なくとも一方を含む期間であって、一時記録部９１ａに一時的な記録を行う期間を示すバッファ記録期間を設定する。
【００８１】
保存条件設定部４５で、第１トリガ条件として、一時記録部９１ａへの記録を開始するための記録開始トリガについての条件を設定することができる。またバッファ記録期間として、この記録開始トリガが示す基準時からの期間を設定することができる。
【００８２】
記録制御部３９は、記録トリガについての第１トリガ条件が成立すると、この記録トリガが示す時点を基準時とするバッファ記録期間に対応した時系列のデバイス値をログデータとして一時記録部９１ａに記録する。また記録制御部３９は、保存トリガについての第２トリガ条件が成立する時点、又は次に記録トリガについての第１トリガ条件が成立する時点の、いずれか早い時点までの間、記録した該ログデータを一時記録部９１ａに保持させる。そして、次に記録トリガについての第１トリガ条件が成立すると、次に該記録トリガが示す時点を基準時とするバッファ記録期間に対応した時系列のデバイス値をログデータとして、一時記録部９１ａに記録する。
【００８３】
保存制御部３９Ｃは、保存トリガについての第２トリガ条件が成立すると、記録制御部３９により一時記録部９１ａに保持されたログデータを保存メモリ３６に保存する。ここで保存制御部３９Ｃは、保存トリガについての第２トリガ条件が成立すると、記録制御部３９により一時記録部９１ａに保持され、保存トリガからみて直前の記録トリガに対応するログデータを、保存メモリ３６に保存することが好ましい。このように保存制御部３９Ｃは、バッファ記録期間を経過した後も、バッファ記録期間中に記録したログデータを保持しておき、保存トリガが起動すると、記録トリガに対応付けて保持されたログデータを保存する。ただ記録制御部３９が保存するログデータは、直近の記録トリガに対応するログデータに限らず、２個前の記録トリガや、３回前の記録トリガとしてもよい。
【００８４】
イベント収集部９２ｂは、ＰＬＣ１又はＰＬＣ１により制御される被制御装置（フィールドデバイス１０）にて発生した複数のイベントに応じたイベントデータを収集し、このイベントの発生時刻とイベントデータとを関連付けて一時記録部９１ａに時系列に記憶する。
【００８５】
図６に示すように、ＣＰＵユニット３と拡張ユニット４とは拡張バスの一種であるユニット間バス９０を介して接続されている。なお、ユニット間バス９０に関する通信機能は、ＰＬＣ側通信部３３の一部として実装されてもよい。またＰＬＣ側通信部３３は、ネットワーク通信回路を有してもよい。ＣＰＵユニット処理部３１は、ＰＬＣ側通信部３３を介してログデータ等をＰＣ２やクラウド等に送信してもよい。
【００８６】
ここで、ユニット間バス９０について、補足説明する。このユニット間バス９０は、次に説明する入出力リフレッシュ等が行われるバスである。ユニット間バス９０における通信制御は、いわゆるバスマスタ３８によって実現される。なお、ＰＬＣ側通信部３３の一部としてバスマスタを設けてもよいし、ＣＰＵユニット処理部３１の一部としてバスマスタを設けてもよい。バスマスタ３８は、ユニット間バス９０での通信を制御するための制御回路であって、ＣＰＵユニット処理部３１からの通信要求を受けて、拡張ユニット４との間で、後述する入出力リフレッシュ等の通信を行う。
【００８７】
拡張ユニット４は、拡張ユニット処理部４１と拡張ユニットメモリ４２を備えている。拡張ユニット処理部４１は、デバイスに格納されたＣＰＵユニット３からの指示（デバイス値）に従って、フィールドデバイス１０を制御する。また拡張ユニット処理部４１は、フィールドデバイス１０の制御結果をバッファメモリとよばれるデバイスに格納する。デバイスに格納された制御結果は入出力リフレッシュによってＣＰＵユニット３に転送される。またデバイスに格納されている制御結果は、ＣＰＵユニット３からの読み出し命令に従って、入出力リフレッシュとは異なるタイミングであっても、ＣＰＵユニット３に転送される。拡張ユニットメモリ４２はＲＡＭやＲＯＭ等を含む。とりわけ、ＲＡＭにはバッファメモリとして使用される記憶領域が確保されている。また拡張ユニットメモリ４２は、フィールドデバイス１０によって取得されたデータ（例えば静止画データや動画データ）を一時的に保持するバッファを有してもよい。
（ＣＰＵユニット３のスキャンタイム）
【００８８】
ＣＰＵユニット３のスキャンタイムを図７の模式図に示す。この図に示すように一のスキャンタイムＳＴは、入出力のリフレッシュを行うためのユニット間通信２０１、プログラム実行２０２、ＥＮＤ処理２０４により構成されている。ユニット間通信２０１で、ＣＰＵユニット３は、ラダープログラムを実行して得られた出力データを、ＣＰＵユニット３内のＣＰＵユニット記憶部３２から拡張ユニット４等の外部機器に送信する。さらにＣＰＵユニット３は、拡張ユニット４等の外部機器から受信した入力データを、ＣＰＵユニット３内のＣＰＵユニット記憶部３２に取り込む。つまりＣＰＵユニット３のＰＬＣ側デバイス部３４に記憶されているデバイス値は、出力リフレッシュによって拡張ユニット４のデバイスに反映される。同様に、拡張ユニット４のデバイスに記憶されているデバイス値は、入力リフレッシュによってＣＰＵユニット３のデバイスに反映される。また同様に、プログラマブル表示器５０のデバイス（後述する図１１に示す表示器側デバイス部５６ａ）に記憶されているデバイス値も、入力リフレッシュによってＣＰＵユニット３のデバイスに反映される。このように入出力リフレッシュによって、ＣＰＵユニット３のデバイスと拡張ユニット４のデバイスが同期される、いわゆるミラーリングが実現される。
【００８９】
なお、リフレッシュ以外のタイミングでデバイス値をユニット間で更新する仕組み（ユニット間同期）を採用することもできる。ただ、ＣＰＵユニット３のデバイスは、ＣＰＵユニット３が随時書き換えており、同様に拡張ユニット４のデバイスは拡張ユニット４が随時書き換えている。つまりＣＰＵユニット３のデバイスは、ＣＰＵユニット３の内部の装置によって随時アクセス可能となっており、同様に拡張ユニット４のデバイスは拡張ユニット４の内部の装置によって随時アクセス可能となっている。ＣＰＵユニット３と拡張ユニット４との間では、基本的にリフレッシュのタイミングにおいて相互にデバイス値を更新して同期する。
【００９０】
ＣＰＵユニット３は、図７に示すプログラム実行２０２のタイミングで、更新された入力データを用いてプログラムを実行（演算）する。この図に示すように、プログラム実行２０２においては、複数のプログラムモジュール又はラダープログラムを、プロジェクトデータに従って順番に実行することもできる。なおプログラムモジュールとは、ユーザプログラムを構成する複数のプログラム部品の一である。例えばプログラムモジュールは、メインのラダープログラムとサブのラダープログラムを含む。またプログラムを機能毎にブロック化したファンクションブロックと呼ぶこともある。ＣＰＵユニット３は、このようなプログラムの実行によりデータを演算処理する。
【００９１】
またＥＮＤ処理２０４は、ＰＣ２やＣＰＵユニット３に接続されたプログラマブル表示器５０等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。
【００９２】
このように、ＰＣ２はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをＰＬＣ１に転送する。ＰＬＣ１は、入出力リフレッシュ、ラダープログラムの実行及びＥＮＤ処理を１サイクル（１スキャン）として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種の入力機器（センサ等）からのタイミング信号に基づいて、各種の出力機器（モータ等）を制御する。なお、スキャン周期とは別に、ＣＰＵユニット３や拡張ユニット４はそれぞれ内部制御周期を有している。ＣＰＵユニット３や拡張ユニット４は内部制御周期を基準としてフィールドデバイス１０等の機能を制御する。
（ロギング）
【００９３】
ユーザがユーザプログラムを改良したり、修正したりする際に、ＰＬＣがユーザプログラムを実行している際に取得されたデバイス値が役立つことがある。そこで、ＰＬＣは予め指定されたデバイス値を取得し、ログデータを作成する。ここで、ＰＬＣが管理するデバイスには、ユーザプログラムによって利用されるものだけでなく、ユーザプログラムによって利用されないものも存在する。また、ユーザプログラムを改良したり、修正したりする際に役立つデバイスもあれば、役に立たないデバイスもある。一般にデバイスの数は数千個に及ぶため、ユーザが必要なデバイスを指定することは大きな負担となっていた。そこでＰＣは、ユーザプログラムを解析し、ユーザプログラムに使用又は記述されているデバイスをロギング対象として抽出する。これにより、ユーザの負担が軽減される。
【００９４】
ＰＬＣが管理するすべてのデバイスをロギングの対象とすると、スキャンタイムが長くなってしまう。なぜなら、ロギングは、ユーザプログラムの一つとして実行されたり、入出力リフレッシュの際に実行されたりするからである。時には、ロギングのもたらす遅延によって、ユーザプログラムがユーザの希望通りに動作しないこともありうる。したがって、ロギング対象のデバイスの数は適切に維持されるべきであろう。
【００９５】
ユーザプログラムは、上述の通り複数のプログラム部品から構成されることがある。この内、ユーザが修正を希望するプログラム部品に関連したデバイスがロギングされれば、ユーザにとって十分な場合がある。また、複数のプログラム部品の内で、ユーザは特定のプログラム部品を抽出対象から除外したり、特定のプログラム部品を抽出対象に追加したりすることを希望することもあろう。よって、プログラム部品を単位として、ロギング対象からデバイスを追加又は削除できればユーザにとって便利であろう。
【００９６】
ここで、ＣＰＵユニット３のＣＰＵユニット処理部３１の詳細な機能ブロック図を図８に示す。上述した部材と同じ部材には同一の参照符号を付し、詳細説明を省略する。ここではＣＰＵユニット処理部３１は、ＰＣ２から受信したプロジェクトデータ７１とログ設定データ７２を、ＣＰＵユニット記憶部３２に記憶しているものとする。ＣＰＵユニット記憶部３２のＰＬＣ側デバイス部３４は、ＣＰＵユニットデバイス部３４ａと拡張ユニットデバイス部３４ｂを備える。
【００９７】
図８に示すＣＰＵユニット処理部３１は、プログラム実行部４０と、ユニット制御部８０ｂと、検知部８２と、記録部８１と、イベント収集部９２ａと、時刻管理部８３ａと、出力部８４を備える。検知部８２は、例えばＰＬＣ側デバイス部３４に含まれているいずれかのデバイスに対する外部機器からのデバイス値の書き換えを検知する。出力部８４は、ユーザプログラムの実行が終了したとき、或いはメモリカードへの保存トリガリレーがＯＮした場合等、所定の出力条件が満たされると、プロジェクトデータ７１、ログデータ７３、画像データを、保存メモリ３６を構成するメモリカード３６Ａや内部メモリ３７に書き込む。所定の出力条件が満たされるまでは、ログデータ７３がメモリ（例えばリングバッファ）に記録されていき、容量が一杯になると、一番古いログデータ７３が消去され、新しいログデータ７３が追加記録されていく（いわゆるＦＩＦＯ形式で記録する）。このメモリカード３６ＡはＣＰＵユニット３から取り外されて、ＰＣ２の装着部に装着される。これにより、ＰＣ２の表示部７にログデータ７３が表示されるようになる。なお、出力部８４は、ＰＬＣ側通信部３３を介してＰＣ２やクラウド等にログデータ７３を送信してもよい。
【００９８】
プログラム実行部４０は、上述の通りユーザプログラムを繰り返し実行する。ユニット制御部８０ｂは、このプログラム実行部４０を制御したり、拡張ユニット４との入出力リフレッシュを実行したりする。プログラム実行部４０は、プロジェクトデータ７１に含まれるユーザプログラムを繰り返し実行し、ユーザプログラムに従って拡張ユニット４を制御する。なお、プログラム実行部４０は、ユーザプログラムに従って、ＰＬＣ側デバイス部３４のＣＰＵユニットデバイス部３４ａに保持されている出力系のデバイスにデバイス値を書き込んだり、ＣＰＵユニットデバイス部３４ａに保持されている入力系のデバイスからデバイス値を読み込んだりする。
【００９９】
記録部８１は、ログ設定データ７２に従ってＰＬＣ側デバイス部３４（ＣＰＵユニットデバイス部３４ａ又は拡張ユニットデバイス部３４ｂ）からデバイス値を取得したり、拡張ユニット４のバッファメモリからデバイス値を取得したりして、一時記録部９１ａ（例えばリングバッファ）に書き込む。また記録部８１は、上述の通りＥＮＤ処理の際等、所定のタイミングでロギング処理を実行する。ログデータ７３やプロジェクトデータ７１は、保存メモリ３６（例えばメモリカード３６Ａや内部メモリ３７）に書き込まれる。
【０１００】
イベント収集部９２ａは、所定の保存条件、すなわちデータの収集を行う収集開始条件が満たされると、ＰＬＣ側デバイス部３４に保持されているデバイス値の内、ログ設定データ７２により指定されたデバイス値をデバイス部から読み出すと共に、時刻管理部８３ａから時刻情報を取得する。イベント収集部９２ａは、デバイス値と時刻情報とを関連付けて一時記録部９１ａに格納する。またイベント収集部９２ａは、ログ設定データ７２により指定された収集周期（例えばスキャン周期）毎に、デバイス値と時刻情報とを取得して一時記録部９１ａに格納してもよい。
【０１０１】
一時記録部９１ａには、リングバッファが好適に採用される。リングバッファが採用されている理由は、リングバッファに記憶されているすべてのデータがログデータ７３として保存メモリ３６に保存されるわけではないからである。例えば保存部９３は、所定の保存条件が満たされたときに、リングバッファの一時記録部９１ａからデバイス値と時刻情報を読み出し、ログデータ７３を作成して保存メモリ３６に保存してもよい。同様に保存部９３は、所定の保存条件が満たされたときに、拡張ユニット４から多くのデバイス値を含む大容量のデータと時刻情報とを読み出し、ログデータ７３を作成して保存メモリ３６に保存してもよい。
【０１０２】
保存部９３は、上述したデバイス値及び時刻情報と、上述した大容量データ及び時刻情報とを、対応付けて保存する。ここで、「対応付けて」保存とは、ＰＣ２にて再生しやすい形で保存されていればよく、例えば複数のファイルを対応付けたファイル管理がなされていてもよい。具体的に説明すると、保存メモリ３６において、特定のフォルダの下に、デバイス値及び時刻情報が格納された第１サブフォルダと、大容量データ及び時刻情報が格納された第２サブフォルダとが置かれている場合には、特定のフォルダまでのパス（ディレクトリパス）が共通フラグとなり、この共通フラグを使って、第１サブフォルダ内のファイルと第２サブフォルダ内のファイルを「対応付けて」保存することが可能になる。また、上述した特定のフォルダと同じレベル（ディレクトリ）に置かれた別フォルダがある場合、その別フォルダは、他のタイミングで保存されたデータパッケージを意味する。もちろん、この別フォルダの下にも上述同様のサブフォルダが置かれている。このように、保存部９３は、上述したデバイス値及び時刻情報と、上述したデータ（大容量データ）及び時刻情報とを、共通フラグ（所定のディレクトリパス）により識別される複数のファイルに格納し、それら複数のファイルを保存してもよい。その他、例えば共通フラグとしてファイル名を採用し、同一又は対応するファイル名を持つファイルを生成することで、「対応付けて」保存することも可能である。他にも、例えば時刻情報をキーとして、デバイス値とデータ（大容量データ）を対応付けてリスト化し、これを一のファイルに纏めることによっても、「対応付けて」保存することが可能である。
【０１０３】
なお本実施形態では、監視機器からのデータの一例として大容量データを考えたが、他にも、例えばモーションデータや通信データ、音声データ等の連続データであってもよいことは言うまでもない。送信部９４は、ＰＣ２やクラウド等にログデータ７３を送信してもよい。リングバッファの一時記録部９１ａが満杯になると、イベント収集部９２ａは、リングバッファに保持されている最も古い情報に対して、最も新しい情報を上書きする。ここでは一時記録部９１ａに、バッファの一例としてリングバッファが採用されているが、これは一例にすぎない。バッファとしては、ＦＩＦＯ形式のバッファが採用されれば十分であろう。さらに、上述した記録部８１とイベント収集部９２ａとは、個別の部材とする他、一の部材に統合してもよい。
【０１０４】
上述したように、ＣＰＵユニット３や拡張ユニット４は一つ以上の機能を有している。各機能には様々なデバイスが割り付けられている。よって、これらの機能を単位として、ロギング対象からデバイスを追加又は削除できれば、ユーザにとって便利であろう。例えば、ＣＰＵユニット３の通信機能に関する望ましくないイベントが発生した場合、ユーザはＣＰＵユニット３の通信機能に関するデバイスのデバイス値を参照することで、このイベントを解消することが容易になろう。
（カメラユニット４ｃ）
【０１０５】
ＰＬＣ１には、カメラを接続することができる。このためＰＬＣ１を構成する拡張ユニット４には、カメラを接続可能なカメラユニット４ｃを含めることができる。このようなＰＬＣ１の例を、図９の機能ブロック図に示す。この図に示すＰＬＣ１は、外部インターフェース９７と、画像記録部５２０と、カメラユニット処理部４１ｃを含んでいる。外部インターフェース９７は、外部のカメラと接続されており、このカメラから画像データの入力を受ける。また画像記録部は、外部インターフェース９７を介してカメラから入力される画像データを一時的に記録する。さらにカメラユニット処理部４１ｃは、外部インターフェース９７を介してカメラから入力される画像データを収集し、この画像データが取得された取得時刻に関する情報と、この画像データとを関連付けて、画像記録部に一時記憶する。
【０１０６】
ＰＬＣ１は、保存条件が満たされると、カメラユニット処理部４１ｃにより画像記録部に一時記憶された画像データを、運転記録データと関連付けて保存する。保存は、例えばＣＰＵユニット３側の保存メモリ３６としてもよいし、あるいはカメラユニット側のカメラ設定情報記憶部５３０としてもよい。
【０１０７】
プログラマブル表示器５０は、保存メモリ３６に保存された運転記録データを取得して、運転記録データに含まれる取得時刻に関する情報に基づいて、この運転記録データに含まれる画像データに基づく画像を表示部に表示させる。
【０１０８】
ここで、カメラ入力機能を有する拡張ユニット４であるカメラユニット４ｃの拡張ユニット処理部４１の機能を、図１０の機能ブロック図に基づいて説明する。時刻管理部８３ｂの時計は、図８に示したＣＰＵユニット３の時刻管理部８３ａの時計と同期している。例えば、ＣＰＵユニット３の時刻管理部８３ａは、ＥＮＤ処理の際に時刻情報を時刻管理部８３ｂに送信する。時刻管理部８３ｂは、受信した時刻情報に基づき、時刻管理部８３ｂの時計をＣＰＵユニット３の時刻管理部８３ａの時計に同期させる。時計は、時刻情報に基づき時間をカウントするカウンタにより実現されてもよい。イベント収集部９２ｂは、所定の収集条件（例えば所定のリレーデバイスがＯＮになったこと）が満たされると、例えば周期的にトリガ信号を出力する。時刻管理部８３ｂはトリガ信号が入力されたときの時刻情報を時計から取得し、時刻情報バッファ９５に格納する。拡張ユニットメモリ４２は時刻情報バッファ９５と一時記録部９１ａを有している。外部インターフェース９７はカメラ部９８をカメラユニット４ｃに接続するためのインターフェースである。外部インターフェース９７は、イベント収集部９２ｂにより発行されたトリガ信号をカメラ部９８に周期的に出力したり、カメラ部９８が出力する画像データを画像受信部９６ａに出力したりする。画像データは大容量データの一例である。外部インターフェース９７は、カメラ部９８等の監視機器と接続され、その監視機器からデータ（画像データ）が入力されるインターフェースの一例である。画像受信部９６ａは、外部インターフェース９７を介してカメラ部９８からの画像データの入力を伴う撮像機能を実行する機能実行部９６の全部又は一部となる。本実施形態では、機能実行部９６（画像受信部９６ａ）は、露光時間、ゲイン、ホワイトバランス、コントラスト等の撮像パラメータ（設定情報の一例）に基づいて、カメラ部９８の制御を実行する。このような撮像パラメータは、ＰＣ２において、所望のパラメータ値が設定され、図６に示すＣＰＵユニット３のＰＬＣ側通信部３３及びＣＰＵユニット処理部３１を介して、機能実行部９６に送られる。そのため、図６に示すＰＬＣ側通信部３３は、ＰＣ２や表示器等の外部設定機器から設定情報を受け付ける他のインターフェースの一例である。なお、ＰＬＣ側通信部３３は、上述したようにＰＣ２にて作成されたユーザプログラムも受け付ける。カメラ部９８は、トリガ信号に従って撮像を実行し、画像データを出力する。画像受信部９６ａは、画像データをイベント収集部９２ｂに転送する。イベント収集部９２ｂは、時刻情報バッファ９５に保持されている時刻情報と、画像受信部９６ａから出力された画像データとを関連付けてリングバッファ９１ｂに格納する。リングバッファ９１ｂが満杯になると、イベント収集部９２ｂは、リングバッファ９１ｂに保持されている最も古い情報に対して、最も新しい情報を上書きする。なお、本実施形態では、イベント収集部９２ｂが自動的かつ周期的に撮像トリガ信号をカメラ部９８に出力することとしたが、本発明はこれに限られず、イベント収集部９２ｂは、例えばユーザプログラムからの指令に基づいて撮像トリガ信号をカメラ部９８に出力してもよい。
【０１０９】
ところで、ＣＰＵユニット３は毎スキャンごとに実行するリフレッシュ通信と、いつでも実行可能なダイレクト通信と、イベント的にベストエフォートで実行されるメッセージ通信とのいずれかを用いて拡張ユニット４と通信する。保存部は、例えば、ダイレクト通信を使用して拡張ユニット４のリングバッファ９１ｂから画像データと時刻情報とを読み出して、ログデータ７３に追記する。なお、ダイレクト通信として、優先度つきの複数のダイレクト通信が実装されてもよい。この場合、ユーザプログラムに関連して実行されるダイレクト通信の優先度は相対的に高く設定され、ロギングのためのダイレクト通信の優先度は相対的に低く設定されてもよい。これにより、ロギングがユーザプログラムの実行に与える影響を小さくすることが可能となる。
【０１１０】
上述の通り図９は、カメラユニット４ｃを含むプログラマブルロジックコントローラシステムの機能ブロック図を示している。この図に示すプログラマブルロジックコントローラシステムは、ＣＰＵユニット３とカメラユニット４ｃと拡張ユニット４でＰＬＣ１を構成している。ＣＰＵユニット３とカメラユニット４ｃと拡張ユニット４とは、ユニット間バス９０を介して接続されている。またＣＰＵユニット３には、通信線ＣＬを介してＰＣ２を接続している。さらにカメラユニット４ｃには、撮像トリガラインを介してカメラ部９８が接続されている。カメラ部９８は、カメラ設定記録部５７５を備える。一方ＣＰＵユニット３は、デバイス部を備える。カメラ設定記録部５７５には、カメラ部９８の設定情報が記録される。
【０１１１】
図９のカメラユニット４ｃは、基本ユニットであるＣＰＵユニット３とユニット間バス９０で接続されている。カメラユニット４ｃにカメラ部９８を接続する外部インターフェース９７には、撮像トリガラインと画像通信ラインが接続されている。カメラ部９８に対して撮像トリガを規定するＯＮ／ＯＦＦ信号を、撮像トリガラインを介して送信することで、ユニット間バス９０における同期タイミングをカメラ部９８にまで拡張し、ひいてはデバイス値の記録時刻とカメラ画像データの取得時刻とを、精度よく同期させることができる。
（カメラユニット４ｃ）
【０１１２】
カメラユニット４ｃは、ＣＰＵユニット３とユニット間バス９０を介して電気的に接続される。このカメラユニット４ｃは、ＰＬＣ１からの撮像トリガに応じて所定領域を撮像し、撮像した該所定領域に対応する画像データを生成するカメラ部９８を接続するためのユニットである。図９に示すカメラユニット４ｃは、外部インターフェース９７と、カメラ設定情報記憶部５３０と、カメラユニット処理部４１ｃと、画像記録部５２０とを備える。
【０１１３】
カメラ設定情報記憶部５３０は、撮像トリガの条件を含むカメラ部９８の設定情報を記憶する。カメラ設定情報記憶部５３０に記憶されるカメラ部９８の設定情報は、プログラム作成装置７０により作成され、ＣＰＵユニット３を介して受信された設定情報を含む。なおＣＰＵユニット３により実行されるユーザプログラムは、ＣＰＵユニット３に接続されるプログラム作成装置７０によって作成される。
【０１１４】
カメラユニット処理部４１ｃは、カメラ設定情報記憶部５３０に記憶されたカメラ部９８の設定情報に基づいて、撮像トリガを規定するＯＮ／ＯＦＦ信号を生成し、このＯＮ／ＯＦＦ信号を撮像トリガとしてカメラ部９８で生成された画像データを処理する。
【０１１５】
画像記録部５２０は、カメラユニット処理部４１ｃで取得された画像データを記録する。また画像記録部５２０は、カメラユニット処理部４１ｃで取得された画像データを、この画像データが取得された時刻に関する情報と関連付けて時系列に記録する。さらに画像記録部５２０は、ＣＰＵユニット３からの指示に応じて、画像データ及び時刻に関する情報をＣＰＵユニット３に送信する。
【０１１６】
外部インターフェース９７は、カメラユニット処理部４１ｃとカメラ部９８との間に設けられる。この外部インターフェース９７は、撮像トリガラインと、画像通信ラインを含む。
【０１１７】
撮像トリガラインは、カメラユニット処理部４１ｃで生成され、カメラ部９８に撮像を実行させる撮像トリガを規定するＯＮ／ＯＦＦ信号をカメラ部９８に送るためのインターフェースである。この撮像トリガラインは、非通信ラインであることが好ましい。これにより、通信でなくＯＮ／ＯＦＦのＩ／Ｏで撮像トリガを指示できるため、通信による撮像コマンドの送信と比べて極めて高速な撮像トリガの指示が実現される。
【０１１８】
外部インターフェース９７とカメラ部９８とを接続するカメラ接続ケーブル５５０は、画像通信ライン５０２と、撮像トリガライン５０１とを束ねている。これにより、カメラユニット４ｃとカメラ部９８とを、外部インターフェース９７を接続するのみで、カメラ部９８を動作させるすべての電気信号のやりとりを実現でき、配線をシンプルとして構成の簡素化が図られる。
【０１１９】
カメラ設定情報記憶部５３０は、ＣＰＵユニット３からユニット間バス９０を介して受信した、カメラ部９８の設定情報を記憶している。カメラ部の設定情報は、例えば撮像時のフレームレート、画質、回転、露出、ゲイン、露光時間、ホワイトバランス、コントラスト、ガンマ、シャープネス、アンチフリッカーなど、各種情報が挙げられる。カメラユニット処理部４１ｃは、ユニット間バス９０を介してＣＰＵユニット３や拡張ユニット４と接続されている。このカメラユニット処理部４１ｃは、カメラ設定情報記憶部５３０に記憶されたカメラ部９８の設定情報に基づいて、外部インターフェース９７を介してカメラ部９８から画像データを取得する。画像記録部５２０は、カメラ部９８で取得された画像データを収集し、この画像データが取得された時刻に関する情報とこの画像データとを関連付けて記録する。この構成により、カメラ部９８で撮像した画像データに関するデバイス記録と高精度に時刻を同期させることが可能となる。特に撮像を指示する撮像トリガを通信線やコマンド解釈を介することなく、専用線の撮像トリガラインでＯＮ／ＯＦＦ信号として送出することで、時間遅れを避けた高精度な時刻の同期が実現できる。
（時系列データ）
【０１２０】
ここで図１に示すプログラマブルロジックコントローラシステムにおいて、デバイス値を時系列データとして保存すると共に、プログラマブル表示器５０でデバイス波形として表示させる構成を説明する。ＰＬＣ１は、ユーザプログラムによって参照される記憶領域であるデバイスについて、予め定められた保存条件に基づいて該デバイスのデバイス値に関する時系列データを保存する。このＰＬＣ１は、図６に示したように、ＣＰＵユニット処理部３１と、ＣＰＵユニット記憶部を備える。ＣＰＵユニット処理部３１は、ユーザプログラムを繰り返し実行するプログラム実行部４０と、記録制御部３９と、保存制御部３９Ｃを備える。ＣＰＵユニット記憶部は、プログラム実行部４０によって参照される記憶領域であるデバイスを有するデバイス部と、一時記録部９１ａと、保存メモリ３６を含んでいる。一時記録部９１ａは、記録制御部３９により記録を制御される。ここでは、記録制御部３９は、デバイス部に記憶されているデバイスのデバイス値を収集し、このデバイス値の収集時刻に関する情報とデバイス値とを関連付けて時系列に、一時記録部９１ａに一時記録する。また保存メモリ３６は、保存制御部３９Ｃにより保存を制御される。ここでは、保存制御部３９Ｃは、予め定められた保存条件が満たされると、一時記録部９１ａに一時記録されているデバイス値に関する時系列データを、運転記録データとして保存メモリ３６に保存する。
【０１２１】
一方で、このＰＬＣ１に接続されたプログラマブル表示器５０は、予め画面データ作成装置６０で設定された表示画面を、表示部５５に表示させる。ここで、画面データ作成装置６０に接続されたプログラマブル表示器５０の機能ブロック図を、図１１に示す。この図に示すように、プログラマブル表示器５０には、画面データ作成装置６０が接続可能となっており、プログラマブル表示器５０で表示させる各種画面データは、画面データ作成装置６０を用いて作成される。まず、画面データ作成装置６０について説明する。
（画面データ作成装置６０）
【０１２２】
画面データ作成装置６０は、例えば、パーソナルコンピュータ等の情報処理端末で動作する作画エディタプログラムを実行することによって、具現化される。ユーザは、各種機能部品ＦＰを所望レイアウトで配置した複数のページを作成する。画面データ作成装置６０は、ユーザの操作入力に基づいて、これら複数のページに対して行われた画面データをプログラマブル表示器５０に転送する。プログラマブル表示器５０は、転送された画面データをフラッシュメモリなどに記憶し、ユーザのタッチ操作に基づいて、画面ＩＤに応じたページを表示する。一例を挙げると、プログラマブル表示器５０の表示部５５の表示画面に、画面ＩＤ１に対応するページが表示され、そのページには、画面ＩＤ２に対応するページに切り替えるための切替部品が配置されているとする。この場合、ユーザによって、切替部品に対するタッチ操作が検出されると、画面ＩＤ２に対応するページの表示用データが生成され、生成された表示用データに基づいて、画面ＩＤ２に対応するページが表示される。
【０１２３】
ここで、本実施形態に係るプログラマブル表示器５０は、上述したように、ＰＬＣ１において保存された運転記録データの中身を確認できるようになっている。例えば、プログラマブル表示器５０の表示部５５の表示画面に、画面ＩＤ１に対応するページが表示され、そのページには、運転記録データに含まれるデバイスの時系列データからなるデバイス波形を表示させるための波形表示部品が配置されているとする。ユーザにより波形表示部品がタッチされると、ＰＬＣ１のＣＰＵユニット３から運転記録データが読み出され、デバイス波形を表示させるための表示用データが生成される。そして、生成された表示用データに基づいて、表示対象となるデバイスのデバイス波形がシステム画面に表示される。
【０１２４】
このとき、表示対象となるデバイスは、後述する対象デバイス設定５２ｃによって定まる。対象デバイス設定５２ｃは、デバイス波形を表示させる対象となるデバイスを特定するための設定である。すなわち、運転記録データのうち、ログデータに含まれるデバイスの種類は非常に多く、プログラマブル表示器５０に表示させるべきデバイス波形の種類や数は、プログラマブル表示器５０が設置された現場によって異なる。そこで、本実施形態に係るプログラマブル表示器５０では、画面データ作成装置６０を用いてユーザにより予め指定されたデバイスを、対象デバイス設定５２ｃとしてプログラマブル表示器５０に記憶させておく。これにより、ユーザにより波形表示部品がタッチされたとき、プログラマブル表示器５０は、ＰＬＣ１に保存された運転記録データのうち、現場に応じて最適な種類や数のデバイスのデバイス波形を表示させることができるので、ＦＡ現場で起きたトラブルを現場ですぐに解決しやすくなる。
（プログラマブル表示器５０）
【０１２５】
次にプログラマブル表示器５０について説明する。図１１に示すプログラマブル表示器５０は、設定記憶部５２と、表示器処理部５１と、タッチ検出部５３と、表示部５５と、データメモリ５６と、画面データ受信部５７と、表示器側通信部５８を備える。
（設定記憶部５２）
【０１２６】
設定記憶部５２は、部品設定５２ａ、ページ設定５２ｂ、対象デバイス設定５２ｃ、取得デバイス設定５２ｄ、システム既定画面情報５２ｆ、ガイダンス情報５２ｇなど、プログラマブル表示器５０において表示用データを生成するために必要な各種画面データを記憶するための部材である。なおガイダンス情報５２ｇとは、対象デバイス設定により特定されるデバイスに関連付けられ、保存条件が成立したときのエラーイベントを解消するための対処方法を誘導するための情報である。ガイダンス情報５２ｇを記憶する設定記憶部５２は、ガイダンス情報記憶部として機能する。
【０１２７】
部品設定５２ａは、ＰＬＣ１のデバイスの状態をモニタする、又は変化させるための部品が複数配置される一画面をページとして、この一画面に配置される部品の各々に対して、デバイスを割り当てる設定である。例えば部品設定５２ａとして、表示画面上に配置された各部品に対して割り当てられたデバイスや、各部品がタッチ操作されたときに実行される機能を設定する。また部品設定５２ａには、各部品を示す部品画像を含む。例えば、ランプの点灯状態を示す画像と、ランプの消灯状態を示す画像などが挙げられる。
【０１２８】
ページ設定５２ｂは、部品設定５２ａを、複数の異なるページを識別するページ識別子によりページ単位で管理するための設定である。ページ識別子は、例えばページ番号を示す画面ＩＤである。ページ設定５２ｂにより、一又は複数の部品が配置された一画面をページとして、複数の異なる画面ＩＤによりページ単位で管理する。
【０１２９】
対象デバイス設定５２ｃは、ＰＬＣ１に保存された時系列データを波形状に示したデバイス波形を表示させる対象デバイスを特定するための設定である。対象デバイス設定５２ｃにより、運転記録データのうち、プログラマブル表示器５０にデバイス波形を表示させる対象となる対象デバイスが選択され、設定される。
【０１３０】
取得デバイス設定５２ｄは、後述するリアルタイムチャートモニタのモニタモードで表示させるデバイス波形として、取得するデバイスを特定するため設定である。システム既定画面情報５２ｆは、予め用意されたシステム既定画面に関する情報である。
【０１３１】
表示器処理部５１は、ＣＰＵとプログラムによるソフトウェアによって実現してもよいし、ＦＰＧＡやＡＳＩＣ等のハードウェアによって実現してもよいし、両者の混在によって実現してもよい。もちろん、複数のＣＰＵや複数のハードウェアを用いるなど、表示器処理部５１を実現するための具体構成の如何は問わない。この表示器処理部５１は、表示用データ生成部５１ａと、運転記録データ解釈部５１ｂを備える。
【０１３２】
表示用データ生成部５１ａは、設定記憶部５２に記憶された部品設定５２ａ及びページ設定５２ｂに基づいて、複数の異なるページ識別子に対応する各ページの表示用データを生成するための部材である。この表示用データ生成部５１ａにより、表示部５５の表示画面に表示される表示用データが生成される。ここでは、タッチ検出部５３によりユーザのタッチ操作を有無を検出すると共に、タッチ操作があった場合は、このタッチ操作に応じた表示内容に変更する。ここでは、ユーザのタッチ操作により指示された表示画面上の位置に、特定の機能を割り当てられた部品（例えばスイッチ部品ＳＰなど）が存在するか否かを表示データ生成部で判定する。そして、タッチされた位置に部品が存在する場合には、その部品に応じた機能を実行する。具体的には、例えばスイッチ部品ＳＰであれば、スイッチ部品ＳＰに割り当てられたデバイスの状態を変化させると共に、デバイスの状態に応じた部品画像（例えばスイッチＯＮを示す部品画像またはスイッチＯＦＦを示す部品画像など）を表示画面に表示させる。
【０１３３】
一方で表示用データ生成部５１ａは、タッチ操作がない場合には、デバイス監視のための表示用データを生成する。例えば図２に示すようなページをＰＬＣ１の運転中に表示させるように、表示用データ生成部５１ａはＰＬＣ１のデバイスの状態を監視するための表示用データを生成する。具体的には、表示用データにおいて使用されるデバイスのデバイス値を一定周期でデータメモリ５６から読み出して、表示用データの内容を書き換えることにより新たな表示用データを生成する。表示部５５は、生成された新たな表示用データに応じたページを表示画面に表示する。データメモリ５６の内容は、後述する表示器側通信部５８によって、ＰＬＣ１のデバイスの内、表示用データで使用されるデバイスのデバイス値とミラーリングされている。そのため、ＰＬＣ１のデバイスの状態をリアルタイムでモニタしたり、リアルタイムで変化させたりすることができる。なおデバイス監視時の基本処理動作については、後述する。
【０１３４】
運転記録データ解釈部５１ｂは、運転記録データのうち管理情報データを読み出して、運転記録データに何が含まれているかを判断する（詳細は後述）。
（タッチ検出部５３）
【０１３５】
タッチ検出部５３は、表示部５５の表示画面に対するタッチ操作を検出するための部材である。このタッチ検出部５３は、表示画面に対するタッチ操作を、タッチパネル式に検出する。タッチ操作の種別としては、ロングタップ（長押し）、ダブルタップ、フリック、ピンチイン、ピンチアウト等が挙げられる。
（表示部５５）
【０１３６】
表示部５５は、表示画面を備えている。表示部５５には、表示用データ生成部５１ａにより生成された表示用データに基づいて、表示用データに応じたページ識別子に対応するページが表示される。この表示部５５は、例えばタッチパネル機能を有するＬＣＤや有機ＥＬ等で構成できる。
（データメモリ５６）
【０１３７】
データメモリ５６は、各種の設定を保持するための部材である。ここでは、デバイス値を保持する表示器側デバイス部５６ａを含んでいる。表示器側デバイス部５６ａは、ＰＬＣ１のデバイスの内、表示用データで使用されるデバイスのデバイス値を記憶している。後述する表示器側通信部５８によって内容が適宜更新されている。
（画面データ受信部５７）
【０１３８】
画面データ受信部５７は、画面データ作成装置６０で作成され転送される画面データを受信するインターフェースである。表示器処理部５１は、画面データ受信部５７を介して受信した画面データを設定記憶部５２に記憶させる。
（表示器側通信部５８）
【０１３９】
表示器側通信部５８は、外部の機器、例えばＰＬＣ１と通信を行うための通信インターフェースである。この表示器側通信部５８は、ＰＬＣ１と予め定められた周期（例えば１０ｍｓ）で通信を繰り返し、データメモリ５６の内容と、ＰＬＣ１のデバイスのうち表示用データで使用されるデバイスのデバイス値とを、同期（ミラーリング）させている。例えばラダープログラムの１スキャンが１００μｓ程度で、ＰＬＣ１とプログラマブル表示器５０との通信周期が１０ｍｓの場合は、ラダープログラムの１００スキャンに１度、プログラマブル表示器５０はＰＬＣ１のデバイスを読み出すことになる。また表示器側通信部５８は、必要に応じてプロトコル変換などを行うこともできる。
（表示用データ生成部５１ａ）
【０１４０】
表示用データ生成部５１ａは、表示画面に表示された第一ページに配置されたページ切替部品１３１に対する第一のタッチ操作を、タッチ検出部５３により検出した場合には、ページ設定５２ｂに基づいて該第二ページ識別子に対応する第二ページの表示用データを生成する。
【０１４１】
また表示用データ生成部５１ａは、表示画面において、予め設定された第二のタッチ操作を、タッチ検出部５３により検出した場合には、ＰＬＣ１に保存された時系列データに基づいて、対象デバイス設定５２ｃにより特定されるデバイスのデバイス波形を表示させるための表示用データを生成する。そして表示部５５は、表示用データ生成部５１ａにより生成された表示用データに基づいて、第二ページ又はデバイス波形を表示画面に表示するよう構成されている。
【０１４２】
例えば図１２に示すデバイス波形表示画面１６０では、予め設定されたデバイスのデバイス波形が、表示画面に表示される。図１２の例では、デバイスＤＭ１００、ＤＭ２００、Ｒ０００が、グラフとして表示されている。各デバイスの左側に設けられたチェックボックスをＯＮ／ＯＦＦすることにより、該当するデバイス波形の表示／非表示が切り替えられる。
【０１４３】
このような構成により、プログラマブル表示器５０に対するタッチ操作によって、異なるページに切り替える操作と、ＰＬＣ１に保存された時系列データのデバイス波形を表示させる操作とを選択的に実行することが可能となる。特に、プログラマブル表示器５０の表示画面においてデバイス波形を確認することができるので、ＦＡ現場で起きたトラブルを現場で速やかに解決するための情報を容易に取得できる。
【０１４４】
ここで、図１２に示すデバイス波形表示画面１６０は、プログラマブル表示器５０のシステム画面の一種であり、そのため、図１２の右上の「×」ボタン１６６をタッチ操作すると、システム画面から通常の監視画面（画面データ作成装置６０においてユーザが作画した画面）に戻るようになっている。また、図１２に示すデバイス波形表示画面１６０は、プログラマブル表示器５０の開発者によって予め用意されたシステム既定画面（いわゆる定型の既定仕様画面）上に、運転記録データから読み出した時系列データを重ね合わせることによって実現している。システム画面のデータ構造の詳細については、後述する。
【０１４５】
なお、以上の例ではページ切替部品をタッチする第一のタッチ操作でページを切り替える構成を説明したが、本発明はページを切り替える手段を、専用のページ切替部品を用いる方法に限定するものでない。例えばフリック操作など、予め設定された所定のタッチ操作でページを切り替えるよう構成してもよいことはいうまでもない。この場合においては、ページ切替を行うための所定の操作が、第一のタッチ操作となる。
（画面データ作成装置６０の機能ブロック図）
【０１４６】
次に、画面データ作成装置６０について説明する。図１１に示す画面データ作成装置６０は、画面データ作成側入力部６３と、画面データ作成側表示部６５と、画面データ作成部６１と、画面データ作成側記憶部６２と、画面データ転送部６７を備える。
【０１４７】
画面データ作成側入力部６３は、マウスやキーボード等の入力デバイスである。ユーザは、画面データ作成側入力部６３を介して画面データ作成装置６０を操作し、ページ内の部品のレイアウトを定めたり、部品に対してデバイスの割り当てを行うことができる。
【０１４８】
画面データ作成側表示部６５は、画面データ作成装置６０に接続されたディスプレイ等であり、画面データの確認を行う。
【０１４９】
画面データ作成部６１は、画面データ作成側入力部６３を介したユーザ操作入力に従って、部品設定５２ａ、ページ設定５２ｂ、対象デバイス設定５２ｃを含む画面データを作成する。編集中の画面データは、画面データ作成側表示部６５に表示させ、ユーザに確認させる。
【０１５０】
画面データ作成側記憶部６２は、部品設定５２ａ、ページ設定５２ｂ、対象デバイス設定５２ｃを含む画面データを記憶する。
【０１５１】
画面データ転送部６７は、画面データ作成部６１により作成された画面データを画面データ作成側記憶部６２から読み出して、プログラマブル表示器５０に転送する。
（画面データ作成装置６０のユーザインターフェース画面）
【０１５２】
画面データ作成装置６０のユーザインターフェース画面の例を、図１３〜図１６に示す。図１３は、メニュー画面などの設定を行うページ設定画面１１０を示している。このページ設定画面１１０から、ユーザはプログラマブル表示器５０の各画面（ページ）に配置されるボタンや、各ボタンの機能を設定する。ページ設定画面１１０の右側には、設定可能な画面をリストした画面選択欄１１１が、右側には画面表示欄１１２が、それぞれ設けられる。画面選択欄１１１では、設定可能な画面が、ページ識別子である画面ＩＤと共に表示されている。画面選択欄１１１で選択された画面が、画面表示欄１１２に表示される。図１３の例では、メニュー画面（画面ＩＤは０００１）が選択された状態を示している。また画面選択欄１１１の下部には「画面」タブ１１３と「システム設定」タブ１１４が設けられている。「システム設定」タブ１１４を選択すると、図１６のシステム設定画面１３０に切り替わる。また画面表示欄１１２に配置するスイッチ等の表示部品の設定は、図１４に示すスイッチ設定画面１２０から行われる。図１３のページ設定画面１１０の画面表示欄１１２において、任意のスイッチを選択、あるいは右クリックからプロパティを選択すると、図１４に示すスイッチ設定画面１２０に切り替わる。
【０１５３】
図１４に示すスイッチ設定画面１２０は、スイッチの機能を割り当てるスイッチ機能選択欄１２１を設けている。割り当て可能なスイッチとしては、「ビットセット」、「ページ切替」、「リプレイモード起動」、「リアルタイムチャートモニタ（リプレイモード）」、「リアルタイムチャートモニタ（モニタモード）」等が挙げられる。ここではスイッチ機能選択欄１２１は、ドロップダウンリストでスイッチ機能を選択可能としている。ユーザはドロップダウンリストに表示される複数の候補から、所望のスイッチ機能を選択する。またスイッチ機能選択欄１２１でスイッチ機能が選択されると、スイッチ設定画面１２０は図１５に示すように、選択されたスイッチ機能に応じた設定項目が表示される。ここではスイッチ機能選択欄１２１で「リプレイモード起動」が選択されており、これに応じて初期表示画面選択欄１２２、運転記録データ選択欄１２３、リアルタイムチャートモニタ（リプレイモード）詳細設定欄１２４が、それぞれ表示されている。
【０１５４】
一方、図１６はシステム設定画面１３０を示している。このシステム設定画面１３０では、リアルタイムチャートモニタ（この例ではリプレイモード）で表示させるデバイス波形の対象となる対象デバイスを設定する対象デバイス設定画面２２０を表示している。詳細は後述する。
【０１５５】
このようにして画面データ作成装置６０で作成された画面データは、画面データ転送部６７を通じてプログラマブル表示器５０側に送信される。プログラマブル表示器５０は、画面データ受信部５７で画面データを受信すると、設定記憶部５２に記憶する。
（部品設定５２ａ）
【０１５６】
図１１に示すプログラマブル表示器５０の設定記憶部５２に保存される部品設定５２ａは、波形表示部品の設定や、ページ切替部品１３１の設定、リアルタイム表示部品、リプレイ表示部品の設定の少なくともいずれかを含む。
（波形表示部品）
【０１５７】
波形表示部品は、デバイス波形を表示させるための表示部品である。ユーザは、図１１の画面データ作成装置６０を用いて、画面データ作成側入力部６３を操作して画面データ作成部６１からユーザ画面を定義する。ここでは、画面データ作成側表示部６５上にユーザ画面を表示させながら、画面データ作成側記憶部６２に保持された波形表示部品やページ切替部品１３１等の表示部品を選択して、ユーザ画面のページ上の所望の位置に波形表示部品やページ切替部品１３１等を配置する。このようにしてユーザ画面が作成されると、画面データ転送部６７から、プログラマブル表示器５０の画面データ受信部５７に対して、画面データが転送される。プログラマブル表示器５０では、転送された画面データに基づいて、画面表示に必要な情報、例えば対象デバイス設定５２ｃで指定されたデバイス値を、ＰＬＣ１側から表示器側通信部５８を介して取得し、表示器処理部５１の表示用データ生成部５１ａで表示用データを生成し、表示部５５に表示させる。そして、表示部５５の表示画面に表示された表示部品にユーザがタッチしたことをタッチ検出部５３で検出して、該当する処理を表示器処理部５１で行う。例えば、波形表示部品にタッチ操作が行われると、図１２のデバイス波形表示画面１２０を表示させる。
（ページ切替部品１３１）
【０１５８】
ページ切替部品１３１は、表示画面において、複数の異なるページ識別子の内、任意の第一ページ識別子に対応する第一ページに配置される、第一ページ識別子と異なる第二ページ識別子に対応する第二ページに切り替えるための部品である。
【０１５９】
ページ切替部品１３１を配置したユーザ画面の例を、図１７〜図２０に示す。図１７に示すユーザ画面１３０Ａの例では、ページ切替部品１３１は「次ページ」と表示されたボタン１３２であり、ユーザは表示画面上に表示されたこの「次ページ」ボタン１３２を押下することで、指定されたページ（例えば現在表示されているページをインクリメントした次のページ）に、表示画面における表示内容を切り替えることができる。また図１８に示すユーザ画面１３０Ｂの例では、ページ切替部品１３１として「→」、「←」の２つのボタン１３３、１３４を配置しており、「→」ボタン１３３を押下するとページ番号を増やした該当ページに、「←」ボタン１３４を押下するとページ番号を減らした該当ページに、それぞれ表示内容を切り替えることができる。さらに図１９に示すユーザ画面１３０Ｃの例では、ページ切替部品１３１として「△」、「▽」ボタン１３５、１３６とページ番号表示欄１３７を有している。ユーザは「△」ボタン１３５を押下すると、現在ページ番号表示欄１３７に表示されたページ番号を増やし、「▽」ボタン１３６を押下すると、現在ページ番号表示欄１３７に表示されたページ番号を減らすことができる。またページの切り替えは、これら「△」ボタン１３５や「▽」ボタン１３６を押してページ番号を増減させたタイミングで実行させてもよいし、あるいは「△」、「▽」ボタン１３５、１３６とは別に「移動」ボタン１３８を配置して、「△」、「▽」ボタン１３５、１３６でページ番号表示欄１３７に所望のページ番号を表示させた状態で、「移動」ボタン１３８を押下して移動させるようにしてもよい。さらに図２０に示すユーザ画面１３０Ｄの例では、ページ切替部品１３１として、各ページのサムネイル画面１３９を表示させており、ユーザは所望のページに該当するサムネイル画面１３９を押下することで、該当するページに表示内容を切り替えることができる。
（プログラマブル表示器５０のユーザインターフェース画面）
【０１６０】
プログラマブル表示器５０のユーザインターフェース画面の例を、図１２、図２１〜図２７に示す。これらの図において、図２１はプログラマブル表示器５０のメニュー画面１４０、図２２は図２１のメニュー画面１４０で「リプレイモード起動」ボタン１４１をタッチした場合に表示されるリプレイモードの初期画面１５０、図１２はリプレイモードで「リアルタイムチャートモニタ」タブ１６１を選択して表示されるデバイス波形表示画面１６０、図２３は「カメラ・イベント」タブ１６２を選択して表示されるカメラ・イベント表示画面１７０、図２４は「ビューワ」タブ１６３を選択して表示されるビューワ表示画面１８０、図２５は「ユニット」タブ１６４を選択して表示されるユニット表示画面１９０、図２６は図２５のユニット表示画面１９０で「詳細」ボタン１９１をタッチして表示されるユニット表示画面１９０Ｂ、図２７は「プログラム」タブ１６５を選択して表示されるプログラム表示画面２００を、それぞれ示している。図２４に示す「ビューワ」タブ１６３をタッチ操作したときに表示される「メンテナンス用画面」等のユーザ画面は、ユーザがプログラム作成装置７０を用いて作成したものである。
【０１６１】
図２３に示すカメラ・イベント表示画面１７０は、本実施形態ではシステム画面の一例であり、上述したデバイス波形表示画面１６０と同様に、システム既定画面上に、運転記録データから読み出したカメラ画像や、発生時刻と対応付けられたイベントが重ね合わせて表示されたものである。このカメラ・イベント表示画面１７０は、画面右側にカメラ画像表示欄１７２を設けている。イベント・エラー履歴欄１７１には、運転記録データに含まれる各イベントが、イベントの内容と発生日時と共に一覧表示される。図２３の例では、イベント・エラー履歴欄１７１に列挙されたイベント群ＥＶのうち、「モード切替（ＰＲＯＧ＞ＲＵＮ）」の行がハイライトされている。これは「モード切替（ＰＲＯＧ＞ＲＵＮ）」のイベントが発生した時刻にフォーカスしていることを示す。
【０１６２】
このとき、左方に設けられたカメラ画像表示欄１７２で表示されるカメラ画像は、このイベントが発生した時刻に最も近い時刻に取得されたカメラ画像が、運転記録データから抽出されて表示されている。さらにカメラ画像表示欄１７２の下方には、表示されているカメラ画像を撮像した日時や撮像枚数何枚中の何番目であるか等の画像情報ＩＸが表示される。
【０１６３】
また、時刻表示領域４０９には、「２０ＸＸ／４／２０  １１：２６：２３」と表示されているが、この時刻は、上述した「モード切替（ＰＲＯＧ＞ＲＵＮ）」のイベント発生時刻と同期している。つまり、イベント・エラー履歴欄１７１において、タッチ操作したイベントの発生時刻が、時刻表示領域４０９に表示されるようになっている。
【０１６４】
ここで、イベント・エラー履歴欄１７１のうち、「モード切替（ＰＲＯＧ＞ＲＵＮ）」と異なる任意のイベントをタッチ操作した場合には、任意のイベントがハイライトされる。これに伴って、その任意のイベントの発生時刻が、時刻表示領域４０９に表示される。加えて、カメラ画像表示欄１７２に表示されるカメラ画像も切り替わる。具体的には、その任意のイベントが発生した時刻に最も近い時刻に取得されたカメラ画像に切り替わる。
【０１６５】
また、時刻表示領域４０９の右方には、スライダ状に左右に移動可能な時刻指定カーソル４０４が表示されている。時刻指定カーソル４０４は、時刻表示領域４０９に表示された「２０ＸＸ／４／２０  １１：２６：２３」を示している。また、時刻指定カーソル４０４を左右に移動させると、この操作に追従して、カメラ画像が切り替わり、同時に、イベント・エラー履歴欄１７１のハイライト箇所も切り替わるようになっている。
【０１６６】
このように、カメラ画像の切り替え、ハイライトするイベントの切り替え、および時刻指定カーソルの位置は、互いに連動（同期）している。ユーザは、時刻指定カーソル４０４を左右にスライダ操作したり、イベント・エラー履歴欄１７１において特定のイベントにタッチ操作したりすることで、連動表示させる基準となる時刻を変更させることができる。連動表示の詳細については、後述する。
【０１６７】
図２４に示すビューワ表示画面１８０は、本実施形態ではシステム画面の一例であり、上述したデバイス波形表示画面１６０と同様に、システム既定画面上に、運転記録データから読み出したデバイス値が重ね合わされ表示されたものである。ビューワ表示画面１８０は、画面データ作成装置６０においてユーザが作画した「メンテナンス用画面」が、システム既定画面の中に組み込まれている。メンテナンス用画面には、図２を用いて詳述したように、「メンテナンス用画面」や「リプレイ再生中」といったテキスト部品ＴＸが配置されている。また、「全般」、「ＡＤ変換データ」、「特殊データ」、「オフセット値」、「アナログデータ」、「断線検知」、「スケーリング」、「上限値」、「下限値」、「コンパレータ」、「項目」、「値」、「リレー」、「上限値ＯＮレベル」、「上限値ＯＦＦレベル」、「下限値ＯＦＦレベル」、「下限値ＯＮレベル」といった文字表示部品ＣＰが配置されている。幾つかの文字表示部品ＣＰに対応して、数値表示部品ＮＰ（１２３４５や３４５２等を表示）又は文字表示部品ＣＰ（ＯＮやＯＦＦを表示）が配置されている。
【０１６８】
また、図２４に示すビューワ表示画面１８０では、時刻指定カーソル４０４の位置と、数値表示部品ＮＰによって表示されるデバイス値とが連動している。すなわち、時刻指定カーソル４０４を左右にスライダ操作することで、数値表示部品ＮＰ又は文字表示部品ＣＰの表示内容を変更させることができる。例えば、図２４では、時刻表示領域４０９に「２０ＸＸ／４／２０  １１：２６：２３」が表示されているので、数値表示部品ＮＰ又は文字表示部品ＣＰは、「２０ＸＸ／４／２０  １１：２６：２３」におけるデバイス値を表示している。
【０１６９】
さらに、図２４に示すビューワ表示画面１８０は、上述した図２３に示すカメラ・イベント表示画面１７０とも連動（同期）している。上述したように、図２３に示すカメラ・イベント表示画面１７０の時刻表示領域４０９には「２０ＸＸ／４／２０  １１：２６：２３」が表示されているところ、この状態で、ユーザが「ビューワ」タブ１６３をタッチ操作すると、時刻表示領域４０９に「２０ＸＸ／４／２０  １１：２６：２３」が表示され、かつ、この時刻に対応するデバイス値が数値表示部品ＮＰ又は文字表示部品ＣＰに表示されたビューワ表示画面１８０（図２４）が表示される。
【０１７０】
なお、図２４における「波形確認」ボタン１８１は、いわゆるスイッチ部品ＳＰであり、ユーザがこれをタッチ操作すると、図２４に示す「メンテナンス用画面」で使用されているデバイスを表示対象とするリアルタイムチャートモニタ（リプレイモード）が表示される。
【０１７１】
図２５に示すユニット表示画面１９０は、本実施形態ではシステム画面の一例であり、上述したデバイス波形表示画面１６０と同様に、システム既定画面上に、運転記録データから読み出したユニット構成が重ね合わされ表示されたものである。また、「詳細」ボタン１９１や「波形確認」ボタン１８１も、システム既定画面に予め組み込まれたものであり（ユーザが作画したものではない）、ユニット構成の数に応じて表示される。図２５では、運転記録データの中に含まれるユニット構成ＵＬとして、「ＣＰＵユニット」、「Ｉ／Ｏユニット」、「カメラユニット」、「モーションユニット」という４つのユニットが含まれると仮定している。そのため、「詳細」ボタン１９１や「波形確認」ボタン１８１も、４セット表示されている。例えば、「モーションユニット」に対応する「詳細」ボタン１９１をタッチ操作すると、図２６に示すユニット表示画面が表示される。
【０１７２】
図２６に示すユニット表示画面１９０Ｂは、本実施形態ではシステム画面の一例であり、上述したデバイス波形表示画面１６０と同様に、システム既定画面上に、運転記録データから読み出したモーションユニットにおけるデバイスであるバッファメモリ（ＵＧ）、及びそのデバイス値が表示される。図２６では、ＵＧの一例として、「現在座標」、「指令座標」、「現在速度」、「指令速度」、「帰還トルク」が表示され、各ＵＧの右側にはデバイス値が表示されている。
【０１７３】
図２６の時刻表示領域４０９には、「２０ＸＸ／４／２０  １１：２６：２３」が表示されており、この時刻は、上述した図２３〜図２５と同じ時刻である。つまり、図２６に示すユニット表示画面１９０Ｂに示す時刻も、上述した図２３に示すカメラ・イベント表示画面１７０に示す時刻や、図２４に示すビューワ表示画面１８０に示す時刻と連動（同期）している。また、図２６の時刻指定カーソル４０４を左右にスライダ操作させると、スライダ操作後の時刻指定カーソル４０４の位置によって時刻が特定され、特定された時刻におけるデバイス値が表示される。すなわち、時刻指定カーソル４０４のスライダ操作に応じて、運転記録データから、時刻指定カーソル４０４の位置に対応するデバイス値が読み出され、表示される。
【０１７４】
なお、図２６に示す「波形確認」ボタン１８１をタッチ操作すると、図２６に示すユニット表示画面１９０Ｂで使用されているデバイスを表示対象とするリアルタイムチャートモニタ（リプレイモード）が表示される。
【０１７５】
図２７に示すプログラム表示画面２００は、本実施形態ではシステム画面の一例であり、上述したデバイス波形表示画面１６０と同様に、システム既定画面上に、運転記録データから読み出したユニット構成やラダープログラムが重ね合わされ表示されたものである。図２７では、左側にユニット構成表示欄２０７、右側にラダープログラム表示欄２０８が設けられている。
【０１７６】
図２７の時刻表示領域４０９には、「２０ＸＸ／４／２０  １１：２６：２３」が表示されており、この時刻は、上述した図２３〜図２６と同じ時刻である。つまり、図２７のプログラム表示画面２００に示す時刻も、上述した図２３に示すカメラ・イベント表示画面１７０に示す時刻や図２４に示すビューワ表示画面１８０に示す時刻、図２５及び図２６に示すユニット表示画面１９０、１９０Ｂと連動（同期）している。また、図２７に示す時刻指定カーソル４０４を左右にスライダ操作させると、スライダ操作後の時刻指定カーソル４０４の位置によって時刻が特定され、特定された時刻におけるデバイス値が、ラダープログラム表示欄２０８で表示されるラダープログラム上に重畳表示される。すなわち、時刻指定カーソル４０４のスライダ操作に応じて、運転記録データから、時刻指定カーソル４０４の位置に対応するデバイス値が読み出され、ラダープログラム上に重畳表示される。
（プログラマブル表示器５０の処理動作）
【０１７７】
ここで、プログラマブル表示器５０で図１２のリプレイモードにおいてデバイス波形を表示させる処理動作を、図２８Ａのフローチャートに基づいて説明する。まずステップＳ２８０１において、ユーザのタッチ操作を受け付ける。次にステップＳ２８０２において、このタッチ操作が、波形表示部品に対するタッチ操作か否かを判定する。ここで、波形表示部品に対するタッチ操作でない場合は、ステップＳ２８０３に進み、スイッチ部品に対するタッチ操作か否かを判定する。ここで他の部品に対するタッチ操作でもない場合は、何も処理を行わずに処理を終了する。一方でステップＳ２８０３において、他の部品に対するタッチ操作である場合には、ステップＳ２８０４に進み、タッチされた部品に応じた機能を実行して処理を終了する。
【０１７８】
一方、ステップＳ２８０２において、波形表示部品に対するタッチ操作であると判定された場合は、ステップＳ２８０６に進み、運転記録データの選択を受け付ける。ここではユーザに対して、どの運転記録データの波形を表示させるかの選択を促す。そして、何れかの運転記録データが選択されると、ステップＳ２８０７において、該当する運転記録データの読み込みを行う。より具体的には、プログラマブル表示器５０の表示用データ生成部５１ａは、ＰＬＣ１の保存メモリに格納された運転記録データ、又は予めプログラマブル表示器５０のデータメモリ５６に保存された運転記録データから、運転記録データを取得する。
【０１７９】
さらにステップＳ２８０８において、表示対象となるデバイスを特定し、さらにステップＳ２８０９において、表示用データ生成部５１ａで表示用データを生成する。最後にステップＳ２８１０において、デバイス波形を表示部５５に表示させて処理を終了する。
（部品に応じた機能実行）
【０１８０】
ここで、図２８Ａに示すステップＳ２８０４の詳細を、図２８Ｂのフローチャートに基づいて説明する。図２８Ｂで行われる「部品に応じた機能実行」は、図２８ＡのステップＳ２８０３において、ユーザによってスイッチ部品がタッチ操作された場合に実行される。スイッチ部品の機能としては２種類あり、１つは、図２を用いて上述したビットセット機能である。もう１つは、ページ切替機能である。ビットセット機能が設定されたスイッチ部品は、特定のデバイスが割り付けられている一方、ページ切替機能が設定されたスイッチ部品は、特定のページ（画面ＩＤ）が割り付けられている。例えば、図２に示すＲＥＳＥＴスイッチ２４６は、ビットセット機能を有しており、特定のデバイスが割り付けられている。また、図１７に示すページ切替部品１３１は、ページ切替機能を有しており、切替先（ジャンプ先）のページ番号（画面ＩＤ）が割り付けられている。
【０１８１】
図２８Ｂにおいて、まずステップＳ２８０４−１において、スイッチ部品のもつ機能がビットセット機能か否かを判断する。ビットセット機能であれば、ステップＳ２８０４−２に進み、タッチ操作に応じて、スイッチ部品に割り付けられたデバイスのデバイス値を書き換える（１→０など）。一方でビットセット機能でなければ、ステップＳ２８０４−３に進み、スイッチ部品のもつ機能がページ切替機能か否かを判断する。ページ切替機能であれば、ステップＳ２８０４−４において、タッチ操作に応じて、スイッチ部品に割り付けられたページ番号（画面ＩＤ）にページ切替を行う。一方でページ切替機能でなければ、図２８Ａのフローチャートに戻り、処理を終了する。
（表示用データ生成）
【０１８２】
また、図２８に示すステップＳ２８０９の詳細を、図２８Ｃのフローチャートに基づいて説明する。図２８Ｃのフローチャートにおいては、表示用データの生成を行う。ここではまず、ステップＳ２８０９−１において、システム既定画面を表示するためのシステム既定画面情報５２ｆが読み出される。このシステム既定画面情報５２ｆは、プログラマブル表示器５０の開発者によって作られ、図１１に示す設定記憶部５２に記憶されている。プログラマブル表示器５０の表示用データ生成部５１ａは、設定記憶部５２からシステム既定画面情報５２ｆを読み出す。
【０１８３】
次にＳ２８０９−２において、運転記録データからデバイス値の時系列データが抽出される。より具体的には、プログラマブル表示器５０の表示用データ生成部５１ａが、ステップＳ２８０７において取得した運転記録データから、ステップＳ２８０８により特定されるデバイスのデバイス値の時系列データを抽出する。そしてＳ２８０９−３において、表示用データ生成部５１ａが、読み出したシステム既定画面情報５２ｆと、抽出したデバイス値の時系列データとに基づいて、システム既定画面に時系列データが重畳表示された表示用データを生成する。
（デバイス波形表示）
【０１８４】
さらに、図２８Ａに示すステップＳ２８１０の詳細を、図２８Ｄのフローチャートに基づいて説明する。図２８Ｄは、デバイス波形の表示を行う手順を示している。まずステップＳ２８１０−１において、表示器処理部５１は、ステップＳ２８０９で表示用データ生成部５１ａが生成した表示用データに基づいて、デバイス波形表示する。
【０１８５】
次にステップＳ２８１０−２において、表示器処理部５１は、デバイス波形が表示されているときに、時刻指定カーソル４０４が移動操作されたか否かを判断する。移動操作されていなければ、特に処理は行わず、ステップＳ２８１０−２の処理を繰り返す。
【０１８６】
一方で、時刻指定カーソル４０４が移動操作された場合は、ステップＳ２８１０−３に進み、表示器処理部５１の表示用データ生成部５１ａは、移動後の時刻指定カーソル４０４の時刻に応じた時系列データを、運転記録データから抽出する。抽出範囲については、例えば、移動後の時刻指定カーソルの時刻を中心として、波形表示可能な時間範囲の分だけ抽出すればよい。そしてステップＳ２８１０−４において、表示用データ生成部５１ａは、抽出した時系列データを用いて、表示用データを生成し、表示内容を更新する。
【０１８７】
例えば、図１２の例で言えば、時刻指定カーソル４０４は、「２０ＸＸ／４／２０  １１：２６：２３」の時刻（スキャン回数３５０００）に対応する位置にあるところ、ユーザがこれを右方へスライダ操作し、時刻を進めたとする。例えばスキャン回数３５０００からスキャン回数４００００に対応する時刻にまで進めたとする。そうすると、表示器処理部５１の表示用データ生成部５１ａは、スキャン回数４００００から前後に所定スキャン回数分に対応する時系列データを、運転記録データから抽出する。そして、表示用データ生成部５１ａは、抽出した時系列データを用いて、スキャン回数４００００が識別線ＩＬと重なるような表示用データを生成し、表示内容を更新する。
【０１８８】
なお、表示器処理部５１の表示用データ生成部５１ａは、ワンステップ再生ボタン４０８がタッチ操作されたとき、このタッチ操作によって特定される時刻を基準とし、この基準の前後所定スキャン回数分に対応する時系列データを抽出し、表示用データを生成し、表示内容を更新する。また表示用データ生成部５１ａは、再生ボタン４０６がタッチ操作されたときには、運転記録データから時系列データを順次抽出し、対応するデバイス波形が表示されるよう表示内容を順次更新する（これにより、デバイス波形が横方向スクロールする）。
【０１８９】
また、図２８Ｄでは、デバイス波形が表示されている際に時刻指定カーソルが移動操作されたときの処理動作について説明したが、例えば図２３に示すカメラ・イベント表示画面１７０に示すイベント・エラー履歴欄１７１において、複数のイベント群ＥＶ中から任意のイベントに対するタッチ操作の場合の処理も同様である。
【０１９０】
具体的には、表示器処理部５１の表示用データ生成部５１ａは、図２３に示すカメラ・イベント表示画面１７０が表示されている状態で、イベント・エラー履歴欄１７１の任意のイベントに対してタッチ操作されたか否かを判断する。タッチ操作されたと判断した場合、表示用データ生成部５１ａは、イベント・エラー履歴欄１７１におけるハイライト箇所をその任意のイベントに切り替えるだけでなく、その任意のイベントの発生時刻を特定して時刻表示領域４０９に表示させる。また、表示用データ生成部５１ａは、時刻指定カーソル４０４の表示位置も、その任意のイベントの発生時刻に合わせて変更させる。さらに、表示用データ生成部５１ａは、その任意のイベントが発生した時刻に最も近い時刻に取得されたカメラ画像を、運転記録データから抽出して、これをカメラ画像表示欄１７２に表示させる。
（リアルタイムチャートモニタ）
【０１９１】
またプログラマブル表示器５０は、ＰＬＣ１を介してデバイス波形を取得し、リアルタイムで表示させることもできる。このようなリアルタイム表示は、プログラマブル表示器５０で表示させるリアルタイムチャートモニタのモニタモードとして実現されている。なおリアルタイムチャートモニタでは、現在のデバイス値を逐次収集してリアルタイムに動画像で表示させるモニタモードの他、過去に取得した時系列データを読み出して表示させるリプレイモードを備えている。すなわちリアルタイムチャートモニタは、現在の様子をそのまま表示させるモニタモードと、過去のある時点の様子を再現するリプレイモードを有している。これらのモードの切り替えは、モード切替部で行うことができる。モード切替部は、例えば図２１のメニュー画面１４０において表示された表示部品である「リアルタイムチャートモニタ（リプレイモード）」ボタン１４２、「リアルタイムチャートモニタ（モニタモード）」ボタン１４３の切り替えによって実現できる。図２１の画面において「リアルタイムチャートモニタ（モニタモード）」ボタン１４３をタッチすると、プログラマブル表示器５０ではリアルタイムチャートモニタのモニタモードが実行され、図２９のデバイス波形表示画面２１０が表示される。図２９のデバイス波形表示画面２１０は、リアルタイムで表示内容が更新される動画像として表示される。
（取得デバイス設定５２ｄ）
【０１９２】
また図１１に示すプログラマブル表示器５０の設定記憶部５２は、リアルタイムチャートモニタのモニタモードで表示させるデバイス波形として、取得デバイスを特定するための取得デバイス設定５２ｄを記憶している。ＰＬＣ１は、取得デバイス設定５２ｄで特定されたデバイスのデバイス値を、時系列データとして記録制御部３９により一時記録部９１ａに一時記録する。そしてプログラマブル表示器５０は、表示器側通信部５８を介してこの時系列データを取得すると共に、図２９に示すデバイス波形表示画面２１０でそのデバイス値を逐次更新しながら動画像として表示する。
【０１９３】
このように設定記憶部５２は、デバイス値の時系列データを繰り返し取得する対象となる取得デバイスを特定する取得デバイス設定５２ｄを記憶している。また設定記憶部５２は、この取得デバイスの時系列データを逐次表示させるためのリアルタイム表示部品の設定を含む。
（モニタモード）
【０１９４】
上述の通り、リアルタイムチャートモニタのモニタモードにおいて、プログラマブル表示器５０は、ＰＬＣ１の一時記録部９１ａに一時記録されたデバイス値の時系列データを、表示部５５に逐次表示させる。このためプログラマブル表示器５０は、予め、繰り返し取得する取得デバイスを特定する取得デバイス設定５２ｄと、この取得デバイスの時系列データの逐次表示を行うリアルタイム表示部品の設定を行い、設定記憶部５２に保存しておく。これにより、ユーザがユーザ画面上でリアルタイム表示部品をタッチすると、タッチ検出部５３がこのタッチ操作を検出し、表示用データ生成部５１ａが、ＰＬＣ１の一時記録部９１ａに一時記録された取得デバイスのデバイス値の時系列データに基づいて、このデバイス値を表示画面に順次表示させる表示用データを生成する。なおリアルタイム表示部品は、図２１の例では「リアルタイムチャートモニタ（モニタモード）」ボタン１４３が該当する。
（対象デバイス設定画面）
【０１９５】
リアルタイムチャートモニタにおいて、モニタモードやリプレイモードで表示させるデバイス波形の対象となる対象デバイスは、対象デバイス設定画面で設定する。このような対象デバイスの設定を行う対象デバイス設定画面２２０の一例を、図１６に示す。対象デバイス設定画面２２０は、モード毎、すなわちリプレイモード用、モニタモード用に個別に設定できる。また各モードにおいて複数のユーザ画面を設定している場合は、ユーザが面ごと、すなわちＲＴＣＭＩＤ毎に行うことができる。図１６の例では、リプレイモードのＲＴＣＭＩＤ０について、表示される対象デバイスを設定している。ここでは、対象デバイスの候補をユニット選択欄２２１に一覧で表示させ、各デバイスについて、ユニット名、デバイス名、表示形式がそれぞれ表示される。また表示形式は、表示部５５に表示させる際の形式（例えば１０進数表示か２進数表示かの別、ビット数、正負の符号の有無など）を示している。表示形式は、予め設定された形式とする他、ユーザが各デバイスの表示形式を任意に指定できるようにしてもよい。例えば図１６の画面から、ユーザが所望のデバイスを選択して、表示形式を指定する。
【０１９６】
この対象デバイス設定画面２２０での設定に従い、リアルタイムチャートモニタでの表示が行われる。例えば図１６の例では、対象デバイスとしてＤＭ１００、ＤＭ２００、Ｒ０００が選択されているところ、図１２のリアルタイムチャートモニタのリプレイモードの表示に際しては、これら対象デバイスとして指定されたＤＭ１００、ＤＭ２００、Ｒ０００のデバイス波形が表示されている。
（リアルタイムチャートモニタ（モニタモード））
【０１９７】
本実施形態に係るプログラマブル表示器５０は、リアルタイムチャートモニタ（モニタモード）を表示させることができる。リアルタイムチャートモニタ（モニタモード）は、図６のＰＬＣ１において、ＣＰＵユニット記憶部３２にＰＬＤ側デバイス部３４とは別に設けられた一時記録部９１ａ（リングバッファ）を使用する。
【０１９８】
ここで、プログラマブル表示器５０のリアルタイムチャートモニタをモニタモードとする場合の処理動作を、図３０のフローチャートに基づいて説明する。まず、プログラマブル表示器５０の表示器処理部５１は、表示器側通信部５８を介して、ＰＬＣ１に対してデバイス波形の監視要求を行う（ステップＳ３００１）。ＣＰＵユニット処理部３１は、この監視要求を受け取ると、監視要求の対象となっているデバイスのデバイス値を一定期間、リングバッファに格納する。これにより、リングバッファには、監視要求の対象となっているデバイスについて、一定期間のデバイス値の時系列データが記憶される。
【０１９９】
表示器処理部５１は、表示器側通信部５８を介して、一定周期でＰＬＣ１に対してデータ転送要求を行う（ステップＳ３００２）。このデータ転送要求は、ＣＰＵユニット記憶部３２に設けられた一時記録部９１ａであるリングバッファに順次記憶されたデバイス値の時系列データのうち、前回読み出した位置から所定容量のデータ転送要求を行う。ＣＰＵユニット処理部３１は、リングバッファに記憶されているデバイス値の時系列データのうち、前回読み出した位置から所定容量分のデータをプログラマブル表示器５０に転送する（ステップＳ３００３）。また、プログラマブル表示器５０においてデバイス波形（横軸が時間軸）を表示するため、デバイス値をリングバッファに格納した時刻の情報を、内部時計（図８の時刻管理部８３ｂ）などから取得する。そして、デバイス値の時系列データと、各デバイス値がリングバッファに記憶された時刻の情報とを、プログラマブル表示器５０に転送する。そして表示器処理部５１は、これらのデータを受信し、時刻の情報に基づいて、デバイス波形の追加表示を行う（ステップＳ３００４）。このように、デバイス波形の追加表示を、デバイス波形の監視が終了するまで繰り返し行われる（ステップＳ３００５）。
（モニタモードの表示例）
【０２００】
次にリアルタイムチャートモニタ（モニタモード）の表示例を、図２９のデバイス波形表示画面２１０に示す。このように、リアルタイムチャートモニタのモニタモードにおいては、デバイス波形をグラフ状に表示させる。このグラフにおいて、時間軸はスキャン回数を示しており、時刻表示に切り替えてもよい。グラフの左方が時間的に古く、グラフの右方が時間的に新しい。図２９のデバイス波形表示画面２１０の例では、デバイスＤＭ１００、ＤＭ２００、Ｒ０００の各デバイス波形が表示されている。いずれのデバイス波形も、右端が最新のデバイス値を示している。この後、表示器処理部５１は、各デバイス波形の右端に、ＰＬＣから受信したデバイス値の時系列データを追加表示していく。これにより、各デバイス波形の右へ延びていく。デバイス波形がリアルタイムチャートモニタ欄の右端に到達したら、グラフを含むモニタ画面が左にスクロールするようになり、デバイス波形の左端から順次デバイス値が非表示になっていく。
【０２０１】
ここで、図２９に示したリアルタイムチャートモニタ（モニタモード）は、次のような設定を行うことにより、プログラマブル表示器５０の表示部５５に表示させることができる。すなわち、まず画面データ作成装置６０において、「リアルタイムチャートモニタ（モニタモード）」のスイッチ部品に、スイッチ機能として、「リアルタイムチャートモニタ（モニタモード）」を割り当てる。そして図１６に示すシステム設定画面１３０の対象デバイス設定画面２２０において、「リアルタイムチャートモニタ（モニタモード）」の際に表示させるＲＴＣＭＩＤを指定すると共に、そのＲＴＣＭＩＤに対応する画面にてデバイス波形を表示させるべきデバイスの種類や数を設定する。なお、デバイス波形を表示させるべきデバイスの種類や数については、上述した「リアルタイムチャートモニタ（リプレイモード）」において設定した内容と共通にしてもよい。このようにして作成された画面データを画面データ作成装置６０からプログラマブル表示器５０に転送する。これにより、図２１のメニュー画面１４０において「リアルタイムチャートモニタ（モニタモード）」ボタン１４３をタッチ操作することにより、プログラマブル表示器５０のシステム画面に、所望の種類や数のデバイスの時系列データ（デバイス波形）を表示させることができる。
（リプレイ表示部品）
【０２０２】
さらにリプレイモードに切り替える場合は、リプレイ表示部品をタッチする。なお上述した図２１のメニュー画面１４０の例では、リプレイ表示部品として「リアルタイムチャートモニタ（リプレイモード）」ボタン１４２と、「リプレイモード起動」ボタン１４１の２つが用意されている。「リプレイモード起動」ボタン１４１がタッチされると、事前の設定に従って、（例えば図１２、図２３〜図２７などの）リプレイモードの画面が表示される。これらのリプレイモード画面からユーザは、リプレイモードに関する各種の設定や表示内容の切り替え等を行える。具体的には、画面の上方に設けられたタブをタッチすることで、異なる表示画面に切り替えることができる。例えば「リアルタイムチャートモニタ」タブ１６１を選択すると、図１２のデバイス波形表示画面１６０が表示される。また「カメラ・イベント」タブ１６２を選択すると、図２３のカメラ・イベント表示画面１７０が表示される。さらに、「ビューワ」タブ１６３を選択すると、図２４のビューワ表示画面１８０が表示される。さらにまた、「ユニット」タブ１６４を選択すると、図２５や図２６のユニット表示画面１９０、１９０Ｂが表示される。さらに「プログラム」タブ１６５を選択すると、図２７のプログラム表示画面２００が表示される。
【０２０３】
一方、「リアルタイムチャートモニタ（リプレイモード）」ボタン１４２をタッチすると、図３１のデバイス波形表示画面１６０Ｂが表示される。この画面では、図１２や図２３〜図２７のような複数のタブが表示されず、デバイス波形表示画面のみの表示となる。
細かな設定等を行うことなく、リアルタイムのデバイス波形のみを表示させたい場合に、一発で呼び出せるようにしたものである。
（初期表示画面設定部）
【０２０４】
またリプレイモードにおいて初期表示される初期表示画面は、画面データ作成装置６０で設定される。ここで初期表示画面においてデバイス波形を表示させる際に、表示させる対象デバイスを選択することができる。加えて、条件に応じて初期表示される対象デバイスを変更させることもできる。リプレイモードは、トラブル発生時の原因究明に活用されるところ、トラブルの種類に応じて、発生原因と考えられるデバイスも異なることが多いと思われる。そこで、トラブルの発生時、すわなち保存条件の種類に応じて、リプレイモードで初期表示させる対象デバイスを変化させることで、速やかに対象デバイスの状態を検討できるようになって、トラブルの原因究明に資すると思われる。そこで、例えば図３２に示すように、トラブルの発生原因によって、リプレイモードでプログラマブル表示器５０に表示させるデバイス波形を変化させるよう、予め画面データ作成装置６０で設定しておく。これにより、ＦＡシステムの運用時に何らかのトラブルが発生した際、トラブルの原因に関係しそうなデバイスのデバイス波形を選択的に表示させるようにすることで、トラブルの原因解明に有用な情報を提示して早期復旧に役立つプログラマブル表示器５０を実現できる。また表示画面においてデバイス波形を表示させる際、一以上の対象デバイスと、その表示形式を設定する設定画面を表示可能とすることができる。
【０２０５】
このような設定は、図３３に示すような画面データ作成装置６０の初期表示画面設定部２３０から行う。この図に示す初期表示画面設定部２３０は、図１５に示したスイッチ設定画面１２０と共通であり、詳細説明は省略する。ここではリアルタイムチャートモニタ（リプレイモード）詳細設定欄１２４において「ＲＴＣＭＩＤの指定方法」欄１２６を設けている。ＲＴＣＭＩＤの指定方法は、外部指定とすることができる。外部指定の場合は、対象となるデバイスの場所とデバイス名を、それぞれ場所選択欄１２７、デバイス名選択欄１２８から指定する。図３３の例では、場所として「ＰＬＣ１」、デバイス名として「ＤＭ３００」のデバイス値を、ＲＴＣＭＩＤとして指定している。この場合において、ＤＭ３００のデバイス値が０であれば、ＲＴＣＭＩＤ＝０を指定したことになり、ＤＭ３００のデバイス値が１であれば、ＲＴＣＭＩＤ＝１を指定したことになる。このように、ＲＴＣＭＩＤの指定方法としてデバイス割り当ての仕組みを用いれば、トラブルが発生したときに、プログラマブル表示器５０に表示されるリアルタイムチャートモニタ（リプレイモード）のＲＴＣＭＩＤを動的に変更することができる。なお、「ＲＴＣＭＩＤの指定方法」欄１２６におけるＲＴＣＭＩＤの指定方法として「外部指定」と「内部指定」を選択できるようにし、上述したようにＲＴＣＭＩＤを固定値としたい場合には「内部指定」を選択してもよい。
（データ構造）
【０２０６】
次に、本実施形態において、画面データ作成装置６０において作成されたユーザ画面の画面データのデータ構造を図３４Ａに示し、プログラマブル表示器５０の開発者によって予め組み込まれたシステム画面のデータ構造を図３４Ｂに示し、上述したＲＴＣＭＩＤとデバイスの紐付けが行われたデータ構造の模式図を図３４Ｃに示す。
【０２０７】
図３４Ａに示すように、ユーザが作画した画面データのデータ構造は、画面ＩＤ（例えば０００１〜０００３）によって管理される各ページのページ設定と、１ページ内に配置される各種部品の部品設定とを有している。１ページ内に配置される部品の部品種別としては、図２を用いて詳述したように、テキスト部品ＴＸ、文字表示部品ＣＰ、数値表示部品ＮＰ、スイッチ部品ＳＰ（ページ切替部品を含む）、ランプ部品ＲＰ、メータ部品ＭＰ、グラフ部品ＧＰなどがある。また、同種の複数部品を見分けるために、部品ＩＤも割り付けられている。例えば、テキスト部品が２つある場合は、別々の部品ＩＤが割り付けられる。
【０２０８】
また、各部品には、テキスト部品ＴＸを除き、デバイスが割り当てられる。例えば図３４Ａの例では、部品ＩＤ０００２の文字表示部品ＣＰには、ＤＭ１００１のデバイスが割り当てられ、部品ＩＤ０００３の数値表示部品ＮＰには、ＤＭ１００２のデバイスが割り当てられ、部品ＩＤ０００４のスイッチ部品ＳＰには、Ｒ１００１のデバイスが割り当てられ、部品ＩＤ０００５のランプ部品ＲＰには、Ｒ１００２のデバイスが割り当てられ、部品ＩＤ０００６のメータ部品ＭＰには、ＤＭ１００３のデバイスが割り当てられ、部品ＩＤ０００７のグラフ部品ＧＰには、ＤＭ１００４のデバイスが割り当てられた様子を示している。
【０２０９】
また、全ての部品は、１ページにおいて配置されるＸＹ座標が対応付けられている。例えば、図３４Ａの例では、テキスト部品は１ページ内の座標（１０，１０）に配置される様子を示している。他の部品についても同様である。
【０２１０】
さらに、各部品には、テキスト部品を除き、一又は複数の部品画像が割り付けられている。例えば、図３４Ａの例では、文字表示部品ＣＰや数値表示部品ＮＰの場合、文字や数値を表示させる枠の部品画像が割り付けられ、この枠の太さや色は、ユーザが自由に設定可能である。他の部品についても同様である。
【０２１１】
図３４Ｂに示すように、システム既定画面を表示するための情報（システム既定画面情報５２ｆ）は、プログラマブル表示器５０の開発者によって、予め、設定記憶部５２に記憶されている（あるいは、データメモリ５６又はその他のシステムメモリに記憶されていてもよい）。図２８Ａを用いて説明したように、プログラマブル表示器５０の表示用データ生成部５１ａは、このシステム既定画面情報５２ｆを読み出すと共に、運転記録データから必要なデバイス値の時系列データ等を抽出し、システム既定画面にデバイス値の時系列データを重畳表示するための表示用データＤＰを生成する。そして、表示器処理部５１は、表示用データ生成部５１ａにより生成された表示用データＤＰに基づいて、所望の画面表示を行う。図３４Ｂでは、図１２に示すデバイス波形表示画面１６０を表示するためのデータ構造について説明したが、図２３〜図２７に示す各画面を表示するためのデータ構造についても同様である。
【０２１２】
図３４Ｃに示すように、ＲＴＣＭＩＤには、ＲＴＣＭＩＤを指定する指定デバイス、リアルタイムチャートモニタリプレイモードにて表示される対象デバイスが、異なるＲＴＣＭＩＤごとに割り当てられている。
【０２１３】
このようにして、トラブル発生時のアラームと表示用データを連動させることができる。例えば、図２１のシステム画面から「リプレイモード起動」ボタン１４１をタッチすると、図３３での設定に従い、指定された対象デバイス（ＤＭ３００）のデバイス値に従ったユーザ画面が表示される。上述の通り、ＤＭ３００のデバイス値が０のときはＲＴＣＭＩＤ０のページ、ＤＭ３００のデバイス値が１のときはＲＴＣＭＩＤ１のページが、リプレイモードの初期画面１５０（図２２）として選択される。これにより、トラブルの状態に応じて、適切なユーザ画面（表示されるデバイス）を選択して初期表示させることができ、トラブルの事象に応じて関連性の高いデバイスを予め紐付けておくことにより、スムーズなトラブル解決に役立てる。
（ラダーモニタ）
【０２１４】
またプログラマブル表示器５０は、リアルタイムチャートモニタのリプレイモードにおいて、図２７のプログラム表示画面２００に示すように、ラダープログラムを表示するラダーモニタ機能を備えてもよい。具体的には、ＰＬＣ１は、保存条件が満たされると、この保存条件の成立時にプログラム実行部４０により実行されていたユーザプログラムを、運転記録データに関連付けられるように運転記録データに含めて保存メモリ３６に保存する。そしてプログラマブル表示器５０は、ＰＬＣ１の保存メモリ３６に保存された運転記録データを取得して、この運転記録データに含まれる取得時刻に関する情報に基づいて、表示部５５にユーザプログラムを表示させる。この際、収集時刻に対応するデバイス値を、この運転記録データに含まれるユーザプログラム（例えばラダープログラム）上に表示させる。図２７に示すように、ラダー図表示欄２０６に示す各デバイスには、デバイス値がそれぞれ表示されている。
（イベントモニタ）
【０２１５】
さらにプログラマブル表示器５０は、イベントを表示させるイベントモニタ機能を備えてもよい。ＰＬＣ１のイベント収集部９２ｂは、ＰＬＣ１又はＰＬＣ１に制御される被制御装置で発生した複数のイベントに応じたイベントデータを収集し、イベントの発生時刻とイベントデータとを関連付けて一時記録部９１ａに時系列に記憶している。イベント収集部９２ｂにより記憶されたイベントデータは、保存条件が満たされると、運転記録データに関連付けられるように運転記録データに含めて保存メモリ３６に保存される。
【０２１６】
そしてプログラマブル表示器５０は、保存メモリ３６に保存された運転記録データを取得して、この運転記録データに含まれる発生時刻に基づいて、運転記録データに含まれるイベントデータに応じたイベントを表示部５５に表示させる。図２３に、リアルタイムチャートモニタのリプレイモードにおいて、イベントモニタ機能を実行した様子を示す。この例では、カメラ・イベント表示画面１７０の左にイベント・エラー履歴欄１７１、右にカメラ画像表示欄１７２を設けている。イベント・エラー履歴欄１７１には、運転記録データに含まれる各イベントが、イベントの内容と発生日時と共に一覧表示される。またイベント・エラー履歴欄１７１で所望のイベントを選択すると、このイベントと対応してカメラで撮像されたカメラ画像がカメラ画像表示欄１７２に表示される。
（再生制御欄４０２）
【０２１７】
さらに、カメラ・イベント表示画面１７０の下段には、保存されたデバイス値等のログデータの再生を操作するための再生制御欄４０２を設けている。スライダ状に表示された時刻指定カーソル４０４は左右に移動可能である。時刻指定カーソル４０４は、運転記録データに含まれる時刻情報に連動して、左ほど過去、右ほど未来となるように時間に応じて割り当てられている。時刻指定カーソル４０４をタップして移動させると、これに応じた時刻のイベントがイベント・エラー履歴欄１７１で選択され、またカメラ画像表示欄１７２のカメラ画像が切り替えられる。また時刻表示領域４０９には、現在選択されている時刻情報が表示される。
【０２１８】
再生ボタン４０６はデバイス値の時系列的な表示を指示するためのボタンである。再生ボタン４０６がタップされると、イベントが時間変化し、カメラ画像表示欄１７２のカメラ画像が動画像のように表示される。ワンステップ逆再生ボタン４０７は、表示時刻をワンステップずつ更新（巻き戻し）しながらデバイス値を時系列的に表示することを指示するためのボタンである。ワンステップ再生ボタン４０８は、表示時刻をワンステップずつ更新しながらデバイス値を時系列的に表示することを指示するためのボタンである。
（ＰＬＣ１の機能ブロック図）
【０２１９】
以上のＰＬＣ１で実行するラダープログラム等のユーザプログラムは、プログラム作成装置７０で作成する。プログラム作成装置７０で作成されたユーザプログラムは、ＰＬＣ１に転送される。プログラム作成装置７０にＰＬＣ１を接続した機能ブロック図を、図３５に示す。図３５に示すＰＬＣ１は、ＣＰＵユニット記憶部３２と、ＣＰＵユニット処理部３１と、バスマスタ３８と、ＰＬＣ側通信部３３と、プログラム受信部４７を備える。ＣＰＵユニット記憶部３２は、プロジェクト記憶部３５と、ＰＬＣ側デバイス部３４と、一時記録部９１ａと、保存メモリ３６を備える。
【０２２０】
プロジェクト記憶部３５は、プログラム作成装置７０から入力された、ラダープログラムを含むプロジェクトデータを記憶するための部材である。ＰＬＣ側デバイス部３４は、ビットデバイスやワードデバイスを有し、各デバイスはデバイス値を記憶するための部材である。ＰＬＣ側デバイス部３４は、複数のデバイスの各デバイス値を記憶するデバイスメモリとして機能する。このＰＬＣ側デバイス部３４は、ユーザプログラムに従い参照される記憶領域となる。一時記録部９１ａは、ＰＬＣ側デバイス部３４に記憶されているデバイス値を、スキャン毎に時系列に記録するための部材である。一時記録部９１ａは、リングバッファ等で構成される。保存メモリ３６は、所定の保存条件が成立したら、一時記録部９１ａに記憶されているデバイス値の時系列データを保存するための部材である。保存メモリ３６は、内部メモリや着脱可能なメモリカード等で構成される。
【０２２１】
ＣＰＵユニット処理部３１は、プログラム実行部４０と、記録制御部３９と、保存制御部３９Ｃと、イベント管理部７６を備える。プログラム実行部４０は、ラダープログラムの実行エンジンである。記録制御部３９は、一時記録部９１ａへの記録を開始するための記録開始トリガ条件が成立すると、予め定められたデバイスのデバイス値を収集し、デバイス値の収集時刻に関する情報（現在の時刻でもよいし、ラダープログラムのスキャン回数でもよい）と、そのデバイス値とを対応付けて一時記録部９１ａに記録する。ここで記録開始トリガ条件は、ＰＬＣ１が設定モードからＲＵＮモードに移行した時とすることができる。ただ記録開始トリガ条件は、これに限らず、その他の条件としてもよい。保存制御部３９Ｃは、保存メモリ３６への保存を行うための保存トリガ条件が成立すると、記録制御部３９に一時記録されているデバイス値を、収集時刻に関する情報と共にログデータとして保存する。イベント管理部７６は、イベントを検出するための部材である。イベント管理部７６の詳細は後述する。
【０２２２】
バスマスタ３８は、ＣＰＵユニット３と拡張ユニット４を接続するユニット間バスの通信制御を行う部材である。このバスマスタ３８によって、入出力リフレッシュが行われる。ＣＰＵユニット３は、入出力リフレッシュ、ラダープログラムの実行、ＥＮＤ処理を１スキャンとして、このスキャン処理を高速に繰り返し実行している。入出力リフレッシュによって、ＣＰＵユニット３のデバイスと拡張ユニット４のデバイスが同期される。またプログラム実行部４０によってラダープログラムが実行された結果が、入出力リフレッシュによって拡張ユニット４のデバイスに反映される。なおＥＮＤ処理は、システムのエラーチェック等の周辺サービスを行ったり、ＰＬＣ側通信部３３によってプログラマブル表示器５０とデータ通信を行ったりする。ＰＬＣ側通信部３３は、ＰＬＣ１と予め定められた周期で、プログラマブル表示器５０と通信を繰り返すための部材である。プログラム受信部４７は、プログラム作成装置７０から転送されるラダープログラムを含むプロジェクトデータを受信するための部材である。
（プログラム作成装置７０の機能ブロック図）
【０２２３】
一方で、図３５に示すプログラム作成装置７０は、プログラム作成側入力部７４と、プログラム作成側表示部７５と、プログラム作成側記憶部７６と、プログラム作成部７７と、プログラム転送部７８を備える。なお、プログラム作成装置７０は、インストールするＰＣを、画面データ作成装置６０と兼用してもよい。プログラム作成側入力部７４は、マウスやキーボード等が利用できる。ユーザはプログラム作成側入力部７４を介して、ラダープログラムの編集入力を行ったり、ユニット構成の設定を行ったりすることができる。プログラム作成側表示部７５は、ＰＣに接続されたディスプレイ等である。
【０２２４】
プログラム作成部７７は、プログラム作成側入力部７４を介したユーザの操作入力に従って、ラダープログラムを作成する。また、ユニット構成の設定も行う。ラダープログラムとユニット構成を併せて、プロジェクトデータと呼ぶ。プログラム作成側記憶部７６は、プログラム作成部７７により作成されたプロジェクトデータを記憶する。またプログラム作成側記憶部７６は、ＰＬＣ１の運転記録データも記憶する。プログラム転送部７８は、プログラム作成側記憶部７６に記憶されたラダープログラムを含むプロジェクトデータをＰＬＣ１に転送するための部材である。
（運転記録データ）
【０２２５】
ここで、保存メモリ３６に保存される運転記録データについて、詳述する。運転記録データは、プロジェクトデータとログデータを含む。運転記録データの構成の一例を、図３６に示す。運転記録データに含まれるプロジェクトデータは、保存トリガ条件が成立したときにプログラム実行部４０により実行されていた、運転時のプロジェクトデータである。ログデータは、収集時刻に関する情報と対応付けられたデバイス値の時系列データや、カメラユニット４ｃによる時系列の画像データ、イベントデータなどである。この画像データやイベントデータも、画像データの取得時刻やイベントデータの発生時刻に関する情報と対応付けられており、これらの対応付けの詳細については後述する。
【０２２６】
また、運転記録データは、複数のファイルをパッケージにしたものであり、管理情報データやプロジェクト識別情報を含む。ここで管理情報データは、運転記録データに何が含まれているかの情報である。その拡張子は、例えばＴＭＮとできる。運転記録データに含まれるプロジェクトデータの識別子は、例えばＴＰＪとできる。プロジェクト識別情報は、運転記録データを保存した際にプロジェクトデータを識別するための情報である。その拡張子は、例えばＴＰＩとできる。デバイス値の時系列データの拡張子は、例えばＴＤＶとできる。時系列の画像データの拡張子は、例えばＴＣＡとできる。イベントデータの拡張子は、例えばＴＥＶとできる。これら拡張子の例は例示であって、拡張子には任意の文字列等が利用できる。
【０２２７】
さらに、プロジェクトデータ（拡張子ＴＰＪ）には、プロジェクトファイル、モジュールファイル、ファンクションブロック、ユニット設定ファイル等が含まれる。プロジェクトファイルは、プロジェクトの設定に関する情報であり、その拡張子は、例えばｋｐｒとする。モジュールファイルは、いわゆるラダープログラムの情報であり、その拡張子は、例えばｍｏｄとする。ファンクションブロックは、部品化されたラダープログラムの情報であり、その拡張子は、例えばｋｆｂとする。ユニット設定ファイルは、ユニットの構成情報で、その拡張子はｕｅ２とする。これらのうち一部の情報のみをプロジェクトデータに含めてもよいし、あるいは、これ以外の情報を追加してもよい。図３５のプログラム作成部７７は、運転記録データに含まれる管理情報データを解釈し、プログラム作成側表示部７５上に運転記録データの内容を表示させることができる。
（運転記録データ解釈部５１ｂ）
【０２２８】
上述したように、ＰＬＣ１に限らず、プログラマブル表示器５０においても、運転記録データの内容を表示させることができる。このためプログラマブル表示器５０は、運転記録データ解釈部５１ｂを備えている。ここで、プログラマブル表示器５０側で運転記録データの内容を表示させる様子を、図３６に基づいて説明する。この図に示すプログラマブル表示器５０の表示器処理部５１は、運転記録データ解釈部５１ｂを備えている。運転記録データ解釈部５１ｂは、運転記録データのうち管理情報データを読み出して、運転記録データに何が含まれているかを判断する。また、プロジェクト識別情報に対応するプロジェクトデータを読み出して、プロジェクトデータを構成するプロジェクトファイル、モジュールファイル、ファンクションブロック、ユニット設定ファイル等を読み込む。これにより、表示器処理部５１は、リプレイモードにおいて、各種ユーザインターフェースを同期表示（連動表示）することができる。
（運転記録データの同期表示（連動表示））
【０２２９】
プログラマブル表示器５０の表示器処理部５１の機能ブロック図を、図３７に示す。この図に示すように、表示器処理部５１は、波形表示モジュール３２２、画像表示モジュール３２３、イベント表示モジュール３２６、ビューワ表示モジュール３２７、ユニット表示モジュール３２５、プログラム表示モジュール３２１、及びリプレイ同期制御モジュール３２４を有している。波形表示モジュール３２２は、ログデータに含まれるデバイス値の時系列データをデバイス波形として表示部５５に表示するモジュールである。
【０２３０】
図１２に示すデバイス波形表示画面１６０では、時刻指定カーソル４０４をドラッグして左右に移動させると、デバイス波形が連動して左右に動くようになっている。そして、デバイス波形表示画面１６０の中央（スキャン回数３５０００の位置）には、太縦線からなる識別線ＩＬが表示されており、時刻指定カーソル４０４によって特定される時刻（スキャン回数）が、識別線ＩＬと重なるように、デバイス波形が左右に移動する。例えば、時刻指定カーソル４０４を、図１２の状態から右方向に移動させ、スキャン回数４００００の位置に合わせると、デバイス波形のうちスキャン回数４００００の位置が識別線ＩＬに重なるように、デバイス波形が左に移動する。なお、デバイス波形のうち識別線ＩＬと重なったデバイス値を画面上に表示させてもよい。
【０２３１】
画像表示モジュール３２３、イベント表示モジュール３２６、ビューワ表示モジュール３２７、ユニット表示モジュール３２５、プログラム表示モジュール３２１の詳細を、図３７〜図４０に基づいて説明する。
【０２３２】
図３７に示す表示器処理部５１は、プログラム表示モジュール３２１を備えている。プログラム表示モジュール３２１は、プロジェクトデータ７１に含まれるユーザープログラムと共に、ログデータ７３に含まれるデバイス値を表示部５５に表示するモジュールである。またプログラム表示モジュール３２１は、ユーザープログラムのみならず、プロジェクトデータ７１に含まれるプログラム構成情報、複数のプログラム部品、ユニット構成、ユニット毎の機能設定等、ユーザがプロジェクトデータ７１の設定内容を視認するための各種情報を表示可能としてもよい。画像表示モジュール３２３は、ログデータ７３に含まれる時系列の画像データを表示部５５に表示する。
【０２３３】
波形表示モジュール３２２は、ログデータ７３に含まれる時系列のデバイス値を波形化して表示部５５に表示するモジュールである。リプレイ同期制御モジュール３２４は、プログラム表示モジュール３２１によって表示される情報と波形表示モジュール３２２によって表示される情報とを時間的に同期させる。リプレイ同期制御モジュール３２４によって、図１２のデバイス波形表示画面１６０にデバイス波形をリプレイ表示させることができる。またイベント表示モジュール３２６は、図２３に示すように運転記録データからイベントを時系列で抽出して、イベント・エラー履歴欄１７１に一覧表示させる。さらにビューワ表示モジュール３２７は、図２４に示すように運転記録データからメンテナンス用の情報を抽出して、メンテナンス用画面等を表示させる。
【０２３４】
これらのモジュールはエンジニアリングソフトウエアと呼ばれてもよい。なお、画像表示モジュール３２３は、プログラム表示モジュール３２１の一機能（画像表示部）として具現化されてもよいし、波形表示モジュール３２２の一機能（画像表示部）として具現化されてもよい。
（プログラム表示モジュール３２１）
【０２３５】
図３８はプログラム表示モジュール３２１の詳細を示している。時刻ＵＩ３３０ａは、ユーザープログラムと共に表示されるデバイスの取得時刻（表示時刻）を操作するためのＵＩ（例えばスライドバーやカーソル等）を提供する。表示時刻制御部３３１ａは時刻ＵＩ３３０ａにより指定された表示時刻をリプレイ同期制御モジュール３２４に送出したり、リプレイ同期制御モジュール３２４から通知された表示時刻を時刻ＵＩ３３０ａに設定したりする。プログラム表示部３３２は、プロジェクトデータ７１を表示部５５に表示したり、識別情報に対応したプロジェクトデータ７１をＰＣ側記憶装置２２から読み出して表示部５５に表示したりする。また、プログラム表示部３３２はデバイス値取得部３３３ａにより取得されたデバイス値を、ユーザープログラムに使用又は記述されているデバイスと関連付けて表示する。デバイス値取得部３３３ａは、リアルタイム再生モードと履歴再生モード（ログ再生モード）とを有している。デバイス値取得部３３３ａは、リアルタイム再生モードにおいて、ＰＬＣ１のリアルタイム送信部にアクセスし、デバイス値を取得し、プログラム表示部３３２に渡す。デバイス値取得部３３３ａは、ログ再生モードにおいて、図３７のリプレイ同期制御モジュール３２４にアクセスし、表示時刻とデバイス値を取得し、プログラム表示部３３２に渡す。
【０２３６】
図３９は、プログラム表示部３３２等によってプログラマブル表示器５０の表示部５５に表示されるユーザインターフェース画面１３００の一例を示す模式図である。図３９において、左欄のプロジェクト表示領域４２０には、プロジェクトデータ７１を構成する様々な情報が表示されている。上から順に、ユニット構成（ＣＰＵユニット３、モーションユニット４ｄ、アナログ入力ユニット、カメラユニット４ｃ）、プログラム構成（毎スキャンモジュール、定周期モジュール、ユニット間同期モジュール、ファンクションブロック、マクロ）が表示されている。モーションユニット４ｄについては、機能設定として軸構成や軸制御の設定パラメータが表示されている。ユーザは、図３９に示すユーザインターフェース画面１３００上において、軸構成や軸制御をダブルクリックすることで、これらの設定パラメータについて、どのような設定内容になっているかを確認することができる。また、プロジェクト表示領域４２０において、毎スキャンモジュールに対してＭａｉｎとＳｕｂが表示されているところ、ユーザがＭａｉｎをクリックすると、中央のラダーモニタ４５０のプログラム表示領域４１０に、Ｍａｉｎプログラムが表示される。
【０２３７】
図３７に示すプログラム表示モジュール３２１は、メモリカード３６Ａからプロジェクトデータ７１を読み出して、プロジェクト表示領域４２０に各種情報を表示したり、プログラム表示領域４１０に所望プログラムを表示したりする。
【０２３８】
ここで、プログラム表示領域４１０は、いわゆるラダーモニタ４５０の一部であり、リアルタイム再生モードにおいて単独で動作させることができるものである。×印をクリックすることで、ラダーモニタ４５０のみを非表示にすることも可能である。一方で、ログ再生モードでは、プログラム表示部３３２によって、運転記録を保存した際のプロジェクトに含まれるラダープログラムを再現することができるようになっている。また、プログラム表示部３３２は、ログ再生モードにおいて、デバイス値取得部３３３ａを介してログデータ７３に含まれるデバイス値を、Ｍａｉｎプログラムに記述されているデバイスと関連付けて表示する。表示対象となるデバイス値は、時刻指定カーソル４０４によって指定された時刻に対応するデバイス値となる。
【０２３９】
図３９でいえば、時刻表示領域４０９に表示されている２０ＸＸ／１０／０１の１８：５２：５４と対応付けられたデバイス値が、Ｍａｉｎプログラムに記述されているデバイスと関連付けて表示される。この日付の右側に表示された［３５０００／７４２８６］は、全スキャン回数７４２８６に対する現在のスキャン回数３５０００を示している。ユーザは、時刻指定カーソル４０４をドラッグして移動させることで、表示時刻及びスキャン回数の更新と共に、デバイス値の表示も更新される。例えば、更新後の表示時刻において、ＯＮしているリレーデバイスの箇所にはＯＮ表示（例えば色で塗潰す等）がなされ、ＯＦＦしているリレーデバイスの箇所にはＯＦＦ表示（例えば色抜き等）がなされる。
【０２４０】
図３９において、右上欄には、カメラモニタ４３０の画像表示領域が設けられている。画像表示モジュール３２３は、プログラム表示モジュール３２１によってラダーモニタ４５０に表示された表示時刻と同期して、ログデータ７３から画像データを読み出してカメラモニタ４３０の画像表示領域に表示する。図３９では、表示時刻である２０ＸＸ／１０／０１の１８：５２：５４と対応付けられた画像データが、カメラモニタ４３０に表示されている。また、この表示時刻の右側には、２８２／６０１と表示されているが、これは、全撮像枚数６０１に対する現在の画像データの順番（２８２枚目）を表している。ユーザは、カメラモニタ４３０において、時刻指定カーソル４０４ａをドラッグして移動させることで、表示時刻及び現在の画像データの順番を更新させることができる。
【０２４１】
このとき、時刻指定カーソル４０４ａの移動に伴って、上述したラダーモニタ４５０における時刻指定カーソル４０４も連動して移動する。例えば、時刻指定カーソル４０４ａを、表示時刻２０ＸＸ／１０／０１の１９：００：００に合わせた場合には、ラダーモニタ４５０における時刻指定カーソル４０４も、表示時刻２０ＸＸ／１０／０１の１９：００：００の位置に追従して移動する。そして、時刻指定カーソル４０４の移動に伴って、ラダーモニタ４５０におけるデバイス値も更新される。ここでは時刻指定カーソル４０４ａを移動させたが、逆も同様である。例えば、ラダーモニタ４５０における時刻指定カーソル４０４を移動させると、それに応じて、カメラモニタ４３０における時刻指定カーソル４０４ａも移動する。このような処理動作が可能になるのは、プログラム表示モジュール３２１と、画像表示モジュール３２３とが、リプレイ同期制御モジュール３２４を介して表示時刻に関する同期制御を実行しているからである。
【０２４２】
また、図３９において、右下欄には、ユニットモニタ４４０が表示されている。例えば、ユニットモニタ４４０は、モーションユニット４ｄにおけるバッファメモリ（ＵＧ）のデバイス値を表示する。より具体的には、表示器処理部５１のユニット表示モジュール３２５は、リプレイ同期制御モジュール３２４から現在再生すべき表示時刻を受け取ると、その時刻と対応付けられたデバイス値をメモリカード３６Ａから読み出して、ユニットモニタ４４０に表示させる。したがって、例えば図３９でいえば、表示時刻２０ＸＸ／１０／０１の１８：５２：５４と対応付けられたデバイス値の一覧が、ユニットモニタ４４０に表示される。
【０２４３】
図４０は、ログ再生モードにおけるユーザインターフェース画面を表示するためのデータソースを模式化した図である。図４０に示すように、プロジェクト表示領域４２０は、プロジェクトデータ７１に含まれるユニット構成、機能設定、プログラム構成、プログラム部品をメモリから読み出して、これらをツリー形式で表示する。ラダーモニタ４５０は、プログラム構成（どのようなプログラム部品からなるか）、プログラム部品をメモリから読み出して、ユーザによって指定されたプログラム部品を表示すると共に、ログデータ７３から表示時刻に対応するデバイス値を読み出して表示する。カメラモニタ４３０は、ユニット構成（カメラモニタがあるか否か）と機能設定（カメラモニタの機能。例えば複数ポートある場合にはポート番号、撮像周期やゲイン設定等）等の情報に基づいて、ログデータ７３から表示時刻に対応する画像データを読み出して表示する。ユニットモニタ４４０は、ユニット構成（どのようなユニットがあるか）と機能設定（モーションユニット４ｄであれば軸構成や軸制御等）等の情報に基づいて、ログデータ７３から表示時刻に対応するデバイス値を読み出して表示する。
【０２４４】
図３９や図４０から判るように、リプレイ同期制御モジュール３２４の機能によって、プログラム表示モジュール３２１、画像表示モジュール３２３、ユニット表示モジュール３２５を同期制御して、連携させることができる。なお、波形表示モジュール３２２の連携の詳細については後述する。
【０２４５】
ここで、本実施形態では、現在のプロジェクトデータが、実際のトラブル発生時のプロジェクトデータ７１と一致するか否かを検証できるようにしている。より具体的には、図３８に示すプログラム表示モジュール３２１の内の照合部３３４は、ＰＬＣ１から出力されるプロジェクトデータ７１（ユーザープログラム）の識別情報と、ＰＣ側記憶装置２２に記憶されているプロジェクトデータ７１（ユーザープログラム）の識別情報とを照合し、照合結果を警告部３３５に出力する。警告部３３５は、ＰＬＣ１から出力される、運転記録を保存した時のプロジェクトデータ７１（ユーザープログラム）の識別情報と、ＰＣ側記憶装置２２に記憶されているプロジェクトデータ（ユーザープログラム）の識別情報とが不一致である場合に、警告を表示部５５に表示させる。
【０２４６】
なお、本実施形態では、２つのプロジェクトデータの識別情報を比較して、一致・不一致を検証することとした。より詳細には、プロジェクトデータに含まれるプログラム構成、複数のプログラム部品、ユニット構成、ユニット毎に機能設定に対し、それぞれ識別情報が付加されており、それら全てが一致するか否かにより検証することとした。しかし、本発明はこれに限られず、少なくとも、複数のプログラム部品から構成されるユーザープログラムの識別情報を比較して、一致・不一致を検証すればよい。
【０２４７】
ログデータには、運転記録を保存した際のデバイス値やカメラ部９８の画像データに加えて、運転記録を保存した際のプロジェクトデータに含まれるラダープログラム等のユーザプログラムや、各ユニットの設定ファイルも含まれる。例えばトラブル発生時にカメラ部９８で撮像した画像データや、各ユニットの状態、モーションユニット４ｄの角度や座標等の情報が含まれる。これにより、ログデータに過去の各デバイスの状態や接続状態、各ユニットの情報等を保存できるので、ログデータを保存しておくことで、過去の状態を再現することができる。すなわち、トラブル発生時に遡って、どのような設定でどのような出力がなされていたのかを確認できるため、トラブルの原因解明に有益となる。またログデータは、プログラム作成装置７０で読み込むことで、ログデータに保存された各設定などを解析して、再現表示できる。
【０２４８】
図４１はログデータ７３の一例を示している。この例では、デバイス値ｄ１〜ｄ１０と、カメラ部９８ａにより取得されたワーク画像ｉ１〜ｉ３と、カメラ部９８ｂにより取得された他の画像ｊ１〜ｊ３の取得タイミングが示されている。デバイス値ｄ１〜ｄ１０はスキャン周期ごとに取得されている。ワーク画像ｉ１〜ｉ３はトリガ信号が発生したタイミングに取得されている。ワーク画像ｊ１〜ｊ３はトリガ信号が発生したタイミングに取得されている。各データの位置はそれぞれの時刻情報を示している。図４１が示すように、各データの取得時刻や取得周期は一致していない。そのため、表示器処理部５１は、各データの時刻情報に基づき各データの表示タイミングを調整する。
【０２４９】
図４２はログデータ７３の表示タイミングと表示継続時間とを説明する図である。表示器処理部５１は、各デバイス値の時刻情報に従って各デバイス値を表示部５５に表示する。例えば、表示器処理部５１は、デバイス値ｄ１の時刻情報とデバイス値ｄ２の時刻情報との差分時間をデバイス値ｄ１の表示継続時間に決定する。表示器処理部５１は、デバイス値ｄ１の表示を開始してから表示継続時間が経過すると、デバイス値ｄ２の表示を開始する。以下、同様に表示継続時間が求められ、表示されるデバイス値が時刻情報や表示継続時間に従って切り替えられて行く。
【０２５０】
すでに図４１が示したように、デバイス値ｄ１の取得時刻と、ワーク画像ｉ１の取得時刻とは一致していない。そこで表示器処理部５１は、ワーク画像ｉ１の取得時刻をデバイス値ｄ１乃至ｄ１０の取得時刻と比較し、ワーク画像ｉ１の取得時刻に最も近いデバイス値ｄｘの取得時刻を求める。この例では、ワーク画像ｉ１の取得時刻に最も近いのは、デバイス値ｄ１の取得時刻である。よって表示器処理部５１は、デバイス値ｄ１の表示を開始すると共に、ワーク画像ｉ１の表示を開始する。次に表示器処理部５１は、ワーク画像ｉ２の取得時刻に最も近いデバイス値ｄｘの取得時刻を求める。この例では、デバイス値ｄ４の取得時刻が、ワーク画像ｉ２の取得時刻が最も近い。そこで表示器処理部５１は、デバイス値ｄ４の表示タイミングが到来すると、デバイス値ｄ４とワーク画像ｉ２の表示を開始する。表示器処理部５１は、他の画像ｊ１の取得時刻に最も近いデバイス値ｄｘの取得時刻を求める。この例では、他の画像ｊ１の取得時刻に最も近いのは、デバイス値ｄ２の取得時刻である。よって表示器処理部５１は、デバイス値ｄ２の表示タイミングが到来すると、デバイス値ｄ２の表示を開始すると共に、他の画像ｊ１の表示を開始する。
【０２５１】
このようにログデータ７３に含まれる複数のデータの内、ロギングの周期がもっとも短いデータを基準として、各データの表示タイミングが調整されてもよい。
（画像データと取得時刻との紐づけ一例）
【０２５２】
本実施形態では、上述したように、カメラで撮像した画像データとイベントとを同期させて表示させることができる。リプレイモードの「カメラ・イベント」タブ１６２において、任意のイベントを選択すると、この選択されたイベントの時刻と対応する時刻に撮像された画像データに基づくカメラ画像が表示され、時刻指定カーソルも、対応する再生時刻に移動される。また、再生ボタンを押すと、カメラモニタ欄において動画が再生されると共に、時間の経過に応じてイベントの選択が切り替わっていく。また、「プログラム」タブ１６５におけるラダープログラムのデバイス値も更新されていく。このような同期表示が可能になるのは、画像データと取得時刻が紐付けられて記憶されているためである。以下、画像データと取得時刻やデバイス値との対応付けを、図４１及び図４２を用いて詳述する。
（ログデータ（デバイス値と画像データ）の一例）
【０２５３】
図１に示すようなカメラユニット４ｃで、デバイス値と画像を収集するロギングのタイミングを図４１に示す。なお、ここではカメラユニット４ｃには最大２個のカメラを接続可能としている。また各カメラは、撮像視野を異ならせてもよい。
【０２５４】
図４１は、デバイス値ｄ１〜ｄ１０と、カメラ１により取得されたワーク画像ｉ１〜ｉ３と、カメラ２により取得された他の画像ｊ１〜ｊ３の取得タイミングを示している。デバイス値ｄ１〜ｄ１０は、スキャン周期ごとに取得されている。ワーク画像ｉ１〜ｉ３はトリガ信号（画像取得信号）が発生したタイミングに取得されている。ワーク画像ｊ１〜ｊ３は別のトリガ信号が発生したタイミングに取得されている。各データの位置はそれぞれの時刻情報を示している。一般に、図４１で示すように、各データの取得時刻や取得周期は一致していない。そのため、プログラマブル表示器５０の表示器処理部５１は、各データの時刻情報に基づき各データの表示タイミングを調整する。
（ログデータの表示タイミングと表示継続時間との説明）
【０２５５】
ログデータの表示タイミングと表示継続時間とを図４２に示す。表示器処理部５１は、各デバイス値の時刻情報にしたがって、各デバイス値を表示部５５に表示する。例えば、表示器処理部５１は、デバイス値ｄ１の時刻情報とデバイス値ｄ２の時刻情報との差分時間をデバイス値ｄ１の表示継続時間に決定する。表示器処理部５１は、デバイス値ｄ１の表示を開始してから表示継続時間が経過すると、デバイス値ｄ２の表示を開始する。以下、同様に表示継続時間が求められ、表示されるデバイス値が時刻情報や表示継続時間にしたがって切り替えられて行く。
【０２５６】
既に説明したように、デバイス値ｄ１の取得時刻と、ワーク画像ｉ１の取得時刻とは一致していない。そこで、表示器処理部５１は、ワーク画像ｉ１の取得時刻をデバイス値ｄ１乃至ｄ１０の取得時刻と比較し、ワーク画像ｉ１の取得時刻に最も近いデバイス値ｄｘの取得時刻を求める。この例では、ワーク画像ｉ１の取得時刻に最も近いのは、デバイス値ｄ１の取得時刻である。よって、表示器処理部５１は、デバイス値ｄ１の表示を開始すると共に、ワーク画像ｉ１の表示を開始する。次に、表示器処理部５１は、ワーク画像ｉ２の取得時刻に最も近いデバイス値ｄｘの取得時刻を求める。この例では、デバイス値ｄ４の取得時刻は、ワーク画像ｉ２の取得時刻が最も近い。そこで、表示器処理部５１は、デバイス値ｄ４の表示タイミングが到来すると、デバイス値ｄ４とワーク画像ｉ２の表示を開始する。表示器処理部５１は、他の画像ｊ１の取得時刻に最も近いデバイス値ｄｘの取得時刻を求める。この例では、他の画像ｊ１の取得時刻に最も近いのは、デバイス値ｄ２の取得時刻である。よって、表示器処理部５１は、デバイス値ｄ２の表示タイミングが到来すると、デバイス値ｄ２の表示を開始すると共に、他の画像ｊ１の表示を開始する。このように、ログデータに含まれる複数のデータのうち、ロギングの周期がもっとも短いデータを基準として、各データの表示タイミングが調整される。
（画像データと時刻情報の連動）
【０２５７】
図２３のカメラ・イベント表示画面１７０においては、画像データと時刻情報を連動させて表示させている。ここで画像データと時刻情報を連動させる手順を、図４３のフローチャートに基づいて説明する。ここでは、カメラユニット４ｃにおいて、図１０に示すリングバッファ９１ｂを用いてロギングする手順を示している。まずステップＳ４３０１において、取得リレーがＯＮか否かを判定する。ここでは、カメラユニット４ｃのカメラユニット処理部４１ｃ（ＣＰＵ等）は、画像データの取得条件（例えば、ＰＬＣ１がＰＲＯＧモード（設定モード）からＲＵＮモード（実行モード）に切り替えられ、取得リレーがＯＮしたか等）が満たされたか否かを判定する。取得リレーがＯＮでない場合は、ステップＳ４３０１の処理を繰り返す。
【０２５８】
取得リレーがＯＮになると、ステップＳ４３０２に進み、取得タイミングの到来を判定する。ここでは、カメラユニット処理部４１ｃは、画像データの取得タイミングが到来したかどうかを判定する。取得タイミングは、例えばカメラユニット４ｃにおいて予め定められた撮像周期（内部制御周期）などである。取得タイミングでない場合は、ステップＳ４３０２に戻って処理を繰り返す。
【０２５９】
取得タイミングが到来すると、ステップＳ４３０３に進み画像データと時刻情報を取得してリングバッファに書き込む。ここでは、カメラに対して撮像指令を出し、カメラから画像データを取得する。また、画像データを取得した時刻を紐付けるために、内部タイマ等の時刻管理部から現在時刻情報を読み出して、画像データと時刻情報を関連づけてリングバッファに書き込む。
【０２６０】
次いで、ステップＳ４３０４において、読み出し要求の有無を判定する。ここでは、カメラユニット処理部４１ｃが、ＣＰＵユニット３からカメラユニット４ｃのリングバッファに対する読み出し要求（読み出し命令）が発行されたか否かを判定する。読み出し要求がない場合は、ステップＳ４３０２に戻って処理を繰り返す。
【０２６１】
一方、読み出し要求を受信したら、ステップＳ４３０５に進み、リングバッファにから画像データと時刻情報を取得して、ＣＰＵユニット３に送信する。ＣＰＵユニット３は、画像データと時刻情報とをログデータとして、運転記録データに追記する。このようにして、運転記録データにおいて、画像データと時刻情報の紐付けが行われる。
（モーションデータと時刻情報の紐付けについて）
【０２６２】
なお、上述した図４３では、カメラで撮像した画像データと時刻情報の紐付けについて説明したが、モーションデータと時刻情報についても、同様の手順で紐付けできる。具体的には、モーションユニット４ｄには、モーションユニット４ｄの動作を規定するプログラムやパラメータ（軸構成や軸制御に関するパラメータ等）の設定情報が記憶されている。図１に示すモーションユニット４ｄはモーションユニット処理部４１ｄを備えている。モーションユニット処理部４１ｄは、その設定情報に従って、外部に接続されたモータ（モータアンプ）に対して目標座標や目標速度などの動作指令値を送信する。モータアンプからは、エンコーダを介して、現在座標や現在速度などのモーションデータを受信する。現在座標や現在速度などのモーションデータを受信する制御周期は、ラダープログラムのスキャン周期よりも短く、ラダープログラムのスキャン周期と非同期である。そこで、モーションユニット処理部４１ｄは、所定の周期でモーションデータを収集し、モーションデータを受信した受信時刻に関する情報と該モーションデータと時刻情報（内部タイマ等の時刻管理部から読み出す）を関連付けて、自己のリングバッファに書き込む。その後、図４３で説明したカメラユニット４ｃの場合と同様に、保存タイミングになると、リングバッファからモーションデータ（現在座標や現在速度など）と時刻情報を取得して、ＣＰＵユニット３に送信する。ＣＰＵユニット３は、モーションデータと時刻情報とをログデータとして、運転記録データに追記する。このようにして、運転記録データにおいて、モーションデータと時刻情報の紐付けが行われる。
（イベントデータと時刻情報との連動）
【０２６３】
次に、図２３のカメラ・イベント表示画面１７０において、イベントデータと時刻情報とを連動させる手順を、図４４のフローチャートに基づいて説明する。まずステップＳ４４０１において、ＣＰＵユニット処理部３１のイベント管理部が、イベントを検出する。ここでいうイベントには、様々なものが含まれる。例えば、ＰＬＣ１のユーザプログラム及び各ユニットのユニット構成情報を含むプロジェクトデータの書き換え、入出力機器の電源のＯＮ／ＯＦＦ、ＰＬＣ１の設定を行うための設定モード又はＰＬＣ１を実行（運転）させるための運転モードのモード切替、各種履歴のクリア、記憶装置（メモリカード等）の挿抜、他の機器と通信を行うイーサネットケーブルの挿抜、ＰＬＣ１に接続されるプログラマブル表示器５０から要求されるデバイス書換信号、あるいはＰＬＣ１におけるモーションユニットのモーションエラー等である。
【０２６４】
なお、モーションユニットなどの拡張ユニット４において発生したイベントについて、例えば以下のようにして検出可能である。すなわち、モーションユニット処理部４１ｄは、イベントを入れたメッセージ通信コマンドを、ユニット間バスを介してＣＰＵユニット３に送信する。そして、ＣＰＵユニット処理部３１は、割込み処理を用いることで、イベントが入ったメッセージ通信コマンドを受信する。これを受信したＣＰＵユニット処理部３１は、メッセージ通信コマンドからイベントを抽出することによって、モーションユニットにおいて発生した各種イベントをタイムリーに認識することができる。
【０２６５】
次に、ステップＳ４４０２において、ＣＰＵユニット３のイベント管理部が、イベントログの残容量を確認する。本実施形態では、一時記録部９１ａの所定の記憶領域を、イベントログ用メモリとして使っている。一時記録部９１ａとは独立して、別途イベントログ用のメモリを設けてもよいことは言うまでもない。イベントログの残容量がない場合は、ステップＳ４４０３に進み、古いイベントをイベントログ用メモリから削除する。一方、残容量がある場合には、ステップＳ４４０４に進み、μｓオーダーの時刻情報を取得し、イベントと紐付けてイベントログメモリに格納する。
（プログラマブル表示器５０によるデバイス監視）
【０２６６】
ここで、プログラマブル表示器５０がデバイス監視を行う基本処理動作を、図４５のフローチャートに基づいて説明する。プログラマブル表示器５０は、ＰＬＣ１のデバイスを監視している。プログラマブル表示器５０に表示されるデバイスは、ＰＬＣ１側では判らない。このため、プログラマブル表示器５０の表示器側通信部５８は、一定の間隔（例えば１０ｍｓ）で、ＰＬＣ１にアクセスし、表示用データで使用されるデバイスのデバイス値を読み出している（ステップＳ４５０１）。読み出したデバイス値は、プログラマブル表示器５０のデータメモリ５６に格納される。
【０２６７】
そして、プログラマブル表示器５０の表示器処理部５１は、読み出したデバイス値が、現在のデバイス値から変化しているか否かを判断する（ステップＳ４５０２）。変化していなければ、いまの画面をそのまま維持すればよいので、特に何もしない。一方、変化していれば、読み出したデバイス値を用いて表示用データを生成し、読み出したデバイス値によって表示内容を更新する（ステップＳ４５０３）。
【０２６８】
以上が、基本処理動作である。なお、ここではデバイス値の読み出しに着目しているが、スイッチ部品のタッチ操作など、ＰＬＣ１との通信においてデバイス値の書き込みも行われる。つまり、プログラマブル表示器５０のデータメモリ５６においてデバイス値が変化したデバイスを認識すると、その情報をＰＬＣ１との通信によってＰＬＣ１側に送り、ＣＰＵユニット処理部３１は、ＣＰＵユニット記憶部３２のＰＬＣ側デバイス部３４に書き込む処理を行う。
【０２６９】
図２は、監視画面２４０のユーザインターフェース画面である。上述した図２１のメニュー画面１４０の中の「監視画面」ボタン１４４をタッチ操作することで、図２の監視画面２４０を表示させることができる。この監視画面２４０には、スイッチ、メータ、ランプ等の各種部品が配置されている。生産品番の数値表示欄２４１には、「ＡＢＣ−１２３」が表示されており、この数値表示欄２４１は、ＰＬＣ１のデバイスが割り当てられた欄である。その右には、正常または異常を示すランプ２４２、２４３が配置されており、図２の例では正常ランプ２４２が点灯し、異常ランプ２４３は消灯している。正常ランプ２４２、異常ランプ２４３には、それぞれ部品ラベル（部品識別番号）が付されると共に、それぞれデバイス及ぶ部品画像が割り当てられており、デバイスの状態によって部品の表示形態が変化する。つまり、正常ランプ２４２に対し、点灯状態の部品画像と、消灯状態の部品画像の２つが割り当てられており、デバイスの状態によっていずれの部品画像を表示するかが定められている。ランプ２４２、２４３の右には、温度メータ２４４が配置されており、６０℃を示している。温度メータ２４４にも部品ラベルが付されると共に、デバイス及び部品画像が割り当てられている。温度メータ２４４は、デバイスのデバイス値に応じて、メータの指示針が移動する。
【０２７０】
図２の下方には、製品Ａ〜製品Ｄの進捗管理表２４５が表示され、それぞれの製品に対する数値表示欄２４１には、設定値と現在値が表示されている。現在値の右側には、ＲＥＳＥＴスイッチ２４６が配置されている。ＲＥＳＥＴスイッチ２４６にも、部品ラベルが付され、デバイス及び部品画像が割り当てられている。部品画像として、ＲＥＳＥＴスイッチ２４６を押下した状態の画像と、ＲＥＳＥＴスイッチ２４６から指を離した状態の画像とが含まれる。ＲＥＳＥＴスイッチ２４６の右には、カウンタグラフが配置され、上述同様である。このように、各種部品は、部品ラベルが付されると共に、デバイスと部品画像が割り当てられている。
［実施形態２］
【０２７１】
以上の実施形態１では、プログラマブル表示器５０側で提供する規定のページであるシステム画面において、タッチ操作によりデバイス波形表示画面に切り替える構成について説明した。すなわち、システム画面に配置された波形表示部品に対してタッチ操作が行われたことをタッチ検出部５３で検出して、ＰＬＣ１に保存された時系列データに基づいて対象デバイスのデバイス波形を表示させるようにしている。具体的には、図２１に示すメニュー画面１４０上で波形表示部品に相当する「リプレイモード起動」ボタン１４１又は「リアルタイムチャートモニタ（リプレイモード）」をユーザがタッチすることで、図１２に示すデバイス波形表示画面１６０（リアルタイムチャートモニタ画面）を表示させ、過去に記録した運転記録データをリプレイモードで表示させている。
【０２７２】
ただ本発明は、必ずしもシステム画面のような、予め提供されたページ上からデバイス波形表示画面を呼び出す構成に限らず、例えばユーザが作成したユーザ画面にデバイス波形表示画面に切り替える波形表示部品を配置してもよい。このような例を実施形態２に係るプログラマブル表示器のユーザ画面２５０として、図４６に示す。この図に示すユーザ画面２５０では、ユーザが作成した各種の表示部品が配置されている。このユーザ画面２５０において右下に配置された波形表示部品である「リプレイモード起動」ボタン２５１を押下すると、図１２に示すデバイス波形表示画面１６０が表示される。このように、システム画面のみならず、ユーザが作成したユーザ画面においてもデバイス波形表示画面１６０に速やかに切り替えることが可能となり、トラブル解決に有益な情報を簡便に呼び出しやすくなって、復旧作業に移行し易くなり利便性が向上する。
［実施形態３］
【０２７３】
また、以上の実施形態１や２では、システム画面、ユーザ画面のいずれにおいても、表示画面に表示されたページ上に配置された波形表示部品に対してタッチ操作が行われたことをタッチ検出部５３で検出して、ＰＬＣ１に保存された時系列データに基づいて対象デバイスのデバイス波形を表示させるようにしている。
【０２７４】
ただ本発明はこの構成に限らず、予め定めた特殊なタッチ操作を検出することで、デバイス波形を表示させるように構成してもよい。このような例を、実施形態３に係るプログラマブル表示器のユーザ画面２６０として図４７に示す。プログラマブル表示器は、表示部にユーザが作成した任意のユーザ画面２６０を表示させている。この状態で、ページ中の表示部品が配置されていない非配置領域ＮＡ（図４７において斜線で示す領域）に対して、ユーザが特定の操作することで、デバイス波形表示画面１６０を呼び出すことができる。特定の操作は、例えば非配置領域ＮＡに対する長押し、フリック、ピンチイン、ピンチアウト等とできる。ここでは、図４７の状態から非配置領域ＮＡをユーザが上向きにフリックすることで、図１２のデバイス波形表示画面１６０に切り替えるように構成している。また元のページに戻る場合は、図１２の表示画面上でいずれかの位置を下向きにフリックすることで、図４７の画面に復帰される。さらに、表示画面に対するフリックの方向で、画面切替の動作を割り当ててもよい。例えば、任意のページにおいて、上向きのフリックでデバイス波形表示画面１６０を表示させ、下向きのフリックで元のページに復帰させる。
【０２７５】
さらにまた、左右のフリックをページ切替動作に割り当ててもよい。例えば右方向にフリックすれば、画面ＩＤを一増やしたページ（次ページ）を表示させ、左方向にフリックすれば画面ＩＤを一減らしたページ（前ページ）を表示させるようにする。このように構成することで、フリックの方向によって異なるページに切り替えることができ、ユーザは簡単な操作で感覚的にページ切り替えを行えるようになって利便性が向上する。
【０２７６】
また、以上の例では非配置領域へのタッチ操作を、デバイス波形表示画面の切り替えの条件としているが、これに限らず、表示部品が配置された領域を含めて、デバイス波形表示画面の切り替えを可能としてもよい。例えばフリック操作であれば、ユーザが指などで触れた位置が偶偶、表示部品の配置された配置領域であっても、この表示部品に対する操作とは見なさないようにすることで、この表示部品に対してユーザが意識的に選択する操作、例えば通常のタップや長押しがなされた場合と区別することが可能となる。
［実施形態４］
【０２７７】
さらに以上の実施形態１〜３では、表示部５５の表示内容をデバイス波形表示画面１６０に切り替える構成について説明した。ただ本発明は、必ずしも専用のデバイス波形表示画面に切り替えずとも、システム画面やユーザ画面などのページ上で、デバイス波形を表示させるように構成してもよい。このような例を実施形態４に係るプログラマブル表示器のユーザ画面２７０として、図４８に示す。ここでは、ユーザが選択、配置可能な表示部品の一として、表示部品そのものに、デバイス波形を表示する波形表示領域を有する波形領域表示部品２７１を提供している。図４８に示すユーザ画面は、右下に波形領域表示部品２７１を配置する例を示している。波形領域表示部品２７１は、表示部品の大きさを比較的大きくして、デバイス波形を視認できる大きさに表示させる波形表示領域を確保している。表示用データ生成部５１ａは、ＰＬＣ１から取得した運転記録データを、波形領域表示部品２７１の波形表示領域に、デバイス波形として表示させる。波形領域表示部品２７１に表示されるデバイス波形は、動画像として表示させることもできるし、特定の時刻の波形を静止画として表示させることもできる。
【０２７８】
また波形領域表示部品２７１は、デバイス波形として表示させるデバイスの選択や表示させる時刻を変更する機能を持たせてもよい。例えば図４８の例では、「詳細」ボタン２７２を備えており、この「詳細」ボタン２７２をタッチすることで、デバイスの選択メニューや時間軸を表すスライダ状の操作バーを表示させてもよい。あるいは「詳細」ボタン２７２をタッチすることで、図１２に示すリプレイモードのリアルタイムチャートモニタを表示させてもよい。
【０２７９】
このようにして、プログラマブル表示器５０上で、トラブル発生時のデバイス波形を容易に確認できるようにしたことで、トラブル発生時にはＦＡシステムのプログラムを設計したエンジニアに解析を依頼することなく、現場の担当者レベルでも解決可能なトラブルについては、その場で確認して解決策を検討することが可能となり、トラブル復旧までの時間を短縮化し、またトラブル原因の究明作業自体も、必要なデバイスのデバイス波形を選択的に表示させることで、トラブル原因の特定作業に資することが可能となる。
［実施形態５］
【０２８０】
また本発明に係るプログラマブル表示器は、トラブル発生時の対処法について、ユーザを誘導するよう構成してもよい。例えば、ガイダンス表示画面を準備し、トラブル発生時の対処法を表示させてユーザを誘導する。このような例を、実施形態５に係るプログラマブル表示器として、図４９に基づいて説明する。図４９は、プログラマブルロジックコントローラシステムを構成する画面データ作成装置に表示されるスイッチ設定画面１２０Ｂの例を示す模式図である。なお図４９のスイッチ設定画面１２０Ｂは、図１４に示す画面データ作成装置のスイッチ設定画面１２０において、スイッチ機能選択欄１２１で「リプレイモード起動」が選択されたときに表示させるように構成してもよい。
【０２８１】
図４９のスイッチ設定画面１２０Ｂにおいて、リアルタイムチャートモニタ（リプレイモード）詳細設定欄１２４で、「ＲＴＣＭ」タブ１２５ａをクリックすると、図１５におけるリアルタイムチャートモニタ（リプレイモード）の詳細設定に対応する内容が表示される。また図４９に示すスイッチ設定画面１２０Ｂは、リアルタイムチャートモニタ（リプレイモード）詳細設定欄１２４で、「ガイダンス」タブ１２５ｂをクリックした状態を示している。
【０２８２】
図４９において、リアルタイムチャートモニタ（リプレイモード）詳細設定欄１２４にはコンテンツ指定欄１２４Ａ、メッセージブロックＮｏ．指定欄１２４Ｂ、ブロックＮｏ．欄１２４Ｃが設けられる。コンテンツ指定欄１２４Ａにおいては、メッセージか画像を選択する。ここではメッセージを選択した例を示している。またメッセージブロックＮｏ．指定欄１２４Ｂでは、内部指定と外部指定を選択することができ、ここでは内部指定を選択した例を示している。内部指定を選択したときに用いるブロックＮｏ．として、ブロックＮｏ．欄１２４Ｃで０を選択する。すると、リアルタイムチャートモニタ（リプレイモード）詳細設定欄１２４の下方に設けられたガイダンスメッセージ表示欄１２４Ｄに、既に入力済みのガイダンスメッセージが表示される（初期状態は空欄である）。プログラマブル表示器５０におけるガイダンスメッセージの表示内容は、メッセージ編集ボタン１２９をクリックして、編集することができる。
【０２８３】
以上のようにして、図１３の画面表示欄１１２に表示されたメニュー画面に示す「リプレイモード起動」ボタン１４１ｂに対し、ガイダンスメッセージを予め図４９の画面から対応付けて設定しておくと、運転時のプログラマブル表示器５０では、図１２に示したようなリプレイモードの画面に重ねて、図５０に示すようなポップアップ表示（フローティングウィンドウ表示）２８０がなされた、デバイス波形表示画面１６０Ｃが表示される。換言すれば、このガイダンスメッセージは、保存条件が成立したときのエラーイベントを解消するための対処方法を誘導するためのガイダンス情報の一例である。このガイダンス情報は、例えば図１６に示すように、デバイス波形を表示するために予め設定されるデバイス（ＤＭ１００，ＤＭ２００，Ｒ０００）に関連付けられている。そして、図１３において、「リプレイモード起動」ボタン１４１ｂがクリックされると、このガイダンス情報を表示させるための表示用データが生成されるので、図５０のデバイス波形表示画面１６０Ｃには、デバイス波形と共にガイダンスメッセージが表示されることになる。
【０２８４】
図５０は、リプレイモードのデバイス波形表示画面の変形例を示す模式図である。この図に示すように、図４９のスイッチ設定画面１２０Ｂにて設定したガイダンスメッセージが、デバイス波形表示画面１６０Ｃの最前面にポップアップ表示される。図５０では、「リアルタイムチャートモニタ」タブ１６１が選択されたときに、デバイス波形に重畳的に表示されている。特に、図５０に示すポップアップ表示２８０で表示されるガイダンスメッセージの内、３．には、「Ｒ０００のデバイス波形において、最後のＯＮ周辺の状況をカメラで確認してください。」といったメッセージが表示されている。この表示を見た現場担当者は、Ｒ０００のデバイス波形のうち最後のＯＮ周辺の状況をカメラで確認することにより、トラブル解決を試みることができる。
【０２８５】
なお、例えば図４９のコンテンツ指定欄１２４Ａで、画像を選択したときは、メッセージブロックＮｏ．指定欄１２４Ｂの代わりに、ファイルＮｏ．指定欄が表示される。このファイルＮｏ．指定欄は、特定の画像ファイルを指定するための欄である。ファイルＮｏ．指定欄では、特定のディレクトリ内に配置された画像ファイルのファイル名を指定してもよいし、特定の画像ファイルを識別するための識別子を指定してもよいし、或いは画像ファイルが格納された場所を示すパスを指定してもよい。この場合、図５０のポップアップ表示２８０において、ガイダンスメッセージの代わりに、ファイルＮｏ．指定欄によって指定された画像がポップアップ表示されることになる。画像ファイルは、ユーザによって予め作成され、図４９のポップアップ表示２８０に示すようなメッセージや、トラブル発生時の対処法を誘導するイラストを含んでいてもよい。
【０２８６】
また、例えば図４９のメッセージブロックＮｏ．指定欄１２４Ｂで、外部指定を選択した場合には、ＰＬＣ内の特定デバイスのデバイス値を参照して、メッセージブロックＮｏ．を運転中のデバイス値で動的に指定することができる。これは、図３３の「ＲＴＣＭＩＤの指定方法」欄１２６におけるＲＴＣＭＩＤの指定方法で説明した外部指定と同様である。
【０２８７】
なお、図３４Ｃでは、ＲＴＣＭＩＤとデバイスの紐づけが行われたデータ構造の模式図を示したが、図４９に示す設定を行った場合も同様に、メッセージブロックＮｏ．とデバイスの紐づけ（対応付け）が行われる。すなわち、例えば指定デバイスＤＭ３００＝０に対し、ＲＴＣＭＩＤ＝０と併せて、図４９を用いて説明したメッセージブロックＮｏ．＝０が対応付けられる。コンテンツ指定で画像を選択した場合も同様に、ファイルＮｏ．とデバイスの紐づけ（対応付け）が行われる。
【０２８８】
また、図４９に示すスイッチ設定画面１２０Ｂにおいて、ガイダンス表示の表示／非表示を切り替えるための選択欄を設けてもよい。この場合において、ユーザがガイダンス表示を非表示に選択している場合には、図５０のポップアップ表示２８０に示すようなガイダンスメッセージは表示されない。
【０２８９】
上述した実施形態では、ＰＬＣ１において保存条件が満たされると、プログラマブル表示機５０は、ＰＬＣ１の保存メモリ３６に保存された運転記録データを取得する構成となっているが、この際に、予め定められた特定アドレスに、運転記録データを取得した旨を示すＥメールを自動送信してもよい（いわゆるメール通知機能）。これにより、例えば現場担当者は、生産ラインに何らかの異常が生じたことを把握することができる。また、このＥメールを外部に送信する際に、運転記録データを自動的に添付する構成としてもよい。さらに、運転記録データのデータ容量が大きい場合には、複数の運転記録データに分割して、各運転記録データを添付した複数のＥメールを順次送信する構成としてもよい。また、画面キャプチャした画像データを添付して送信する構成としてもよい。これにより、例えばシステム設計者は、異常が生じたことだけでなく、運転記録データを受け取って、原因を分析することができる。
【産業上の利用可能性】
【０２９０】
本発明に係るプログラマブル表示器及びこれを備えるプログラマブルロジックコントローラシステムは、ＦＡシステムにおけるトラブル発生時の原因究明作業、いわゆるシューティングに好適に利用できる。
【符号の説明】
【０２９１】
１…ＰＬＣ
２…ＰＣ
３…ＣＰＵユニット
４、４ａ、４ｂ…拡張ユニット
４ｃ…カメラユニット
４ｄ…モーションユニット
４ｅ…通信ユニット
４ｆ…Ｉ／Ｏユニット
５…ＰＬＣ側表示部
６…ＰＬＣ側操作部
７…表示部
８…ＰＣ側操作部
９…通信ケーブル
１０、１０ａ、１０ｂ…フィールドデバイス
１１…ＰＣ側メモリ部
２１、２１Ｂ…ＰＣ側ＣＰＵ
２２…ＰＣ側記憶装置
２３…ＰＣ側通信部
３１…ＣＰＵユニット処理部
３２…ＣＰＵユニット記憶部
３３…ＰＬＣ側通信部
３４…ＰＬＣ側デバイス部
３４ａ…ＣＰＵユニットデバイス部；３４ｂ…拡張ユニットデバイス部
３５…プロジェクト記憶部
３６…保存メモリ；３６Ａ…メモリカード
３７…内部メモリ
３８…バスマスタ
３９…記録制御部
３９Ｃ…保存制御部
４０…プログラム実行部
４１…拡張ユニット処理部
４１ｃ…カメラユニット処理部
４１ｄ…モーションユニット処理部
４１ｅ…通信ユニット処理部
４１ｆ…Ｉ／Ｏユニット処理部
４２…拡張ユニットメモリ
４５…保存条件設定部
４７…プログラム受信部
５０…プログラマブル表示器
５１…表示器処理部；５１ａ…表示用データ生成部；５１ｂ…運転記録データ解釈部
５２…設定記憶部；５２ａ…部品設定；５２ｂ…ページ設定；
５２ｃ…対象デバイス設定；５２ｄ…取得デバイス設定；５２ｆ…システム既定画面情報
５３…タッチ検出部
５５…表示部
５６…データメモリ；５６ａ…表示器側デバイス部
５７…画面データ受信部
５８…表示器側通信部
６０…画面データ作成装置
６１…画面データ作成部
６２…画面データ作成側記憶部
６３…画面データ作成側入力部
６５…画面データ作成側表示部
６７…画面データ転送部
７０…プログラム作成装置
７１…プロジェクトデータ
７２…ログ設定データ
７３…ログデータ
７４…プログラム作成側入力部
７５…プログラム作成側表示部
７６…プログラム作成側記憶部
７７…プログラム作成部
７８…プログラム転送部
８０ｂ…ユニット制御部
８１…記録部
８２…検知部
８３ａ…時刻管理部
８３ｂ…時刻管理部
８４…出力部
９０…ユニット間バス
９１ａ…一時記録部；９１ｂ…リングバッファ
９２ｂ…収集部
９２ａ…収集部
９３…保存部
９４…送信部
９５…時刻情報バッファ
９６…機能実行部
９６ａ…画像受信部
９７…外部インターフェース
９８…カメラ部
１１０…ページ設定画面
１１１…画面選択欄
１１２…画面表示欄
１１３…「画面」タブ
１１４…「システム設定」タブ
１２０、１２０Ｂ…スイッチ設定画面
１２１…スイッチ機能選択欄
１２２…初期表示画面選択欄
１２３…運転記録データ選択欄
１２４…リアルタイムチャートモニタ（リプレイモード）詳細設定欄
１２４Ａ…コンテンツ指定欄；１２４Ｂ…メッセージブロックＮｏ．指定欄；
１２４Ｃ…ブロックＮｏ．欄；１２４Ｄ…ガイダンスメッセージ表示欄
１２５ａ…「ＲＴＣＭ」タブ；１２５ｂ…「ガイダンス」タブ
１２６…「画面ＩＤの指定方法」欄
１２７…場所選択欄
１２８…デバイス名選択欄
１２９…メッセージ編集ボタン
１３０…システム設定画面
１３０Ａ、１３０Ｂ、１３０Ｃ、１３０Ｄ…ユーザ画面
１３１…ページ切替部品
１３２…「次ページ」ボタン
１３３…「→」ボタン
１３４…「←」ボタン
１３５…「△」ボタン
１３６…「▽」ボタン
１３７…ページ番号表示欄
１３８…「移動」ボタン
１３９…サムネイル画面
１４０…メニュー画面
１４１、１４１ｂ…「リプレイモード起動」ボタン
１４２…「リアルタイムチャートモニタ（リプレイモード）」ボタン
１４３…「リアルタイムチャートモニタ（モニタモード）」ボタン
１４４…「監視画面」ボタン
１５０…リプレイモードの初期画面
１６０、１６０Ｂ、１６０Ｃ…デバイス波形表示画面
１６１…「リアルタイムチャートモニタ」タブ
１６２…「カメラ・イベント」タブ
１６３…「ビューワ」タブ
１６４…「ユニット」タブ
１６５…「プログラム」タブ
１６６…「×」ボタン
１７０…カメラ・イベント表示画面
１７１…イベント・エラー履歴欄
１７２…カメラ画像表示欄
１８０…ビューワ表示画面
１８１…「波形確認」ボタン
１９０、１９０Ｂ…ユニット表示画面
１９１…「詳細」ボタン
２００…プログラム表示画面
２０１…ユニット間通信
２０２…プログラム実行
２０４…ＥＮＤ処理
２０６…ラダー図表示欄
２０７…ユニット構成表示欄
２０８…ラダープログラム表示欄
２１０…デバイス波形表示画面
２２０…対象デバイス設定画面
２２１…ユニット選択欄
２３０…初期表示画面設定部
２４０…監視画面
２４１…数値表示欄
２４２…正常ランプ
２４３…異常ランプ
２４４…温度メータ
２４５…進捗管理表
２４６…ＲＥＳＥＴスイッチ
２５０…ユーザ画面
２５１…「リプレイモード起動」ボタン
２６０…ユーザ画面
２７０…ユーザ画面
２７１…波形領域表示部品
２７２…「詳細」ボタン
２８０…ポップアップ表示
３２１…プログラム表示モジュール
３２２…波形表示モジュール
３２３…画像表示モジュール
３２４…再生制御モジュール
３２５…ユニット表示モジュール
３２６…イベント表示モジュール
３２７…ビューワ表示モジュール
３３０ａ…時刻ＵＩ
３３１ａ…表示時刻制御部
３３２…プログラム表示部
３３３ａ…デバイス値取得部
３３４…照合部
３３５…警告部
４０２…再生制御欄
４０４、４０４ａ…時刻指定カーソル
４０６…再生ボタン
４０７…ワンステップ逆再生ボタン
４０８…ワンステップ再生ボタン
４０９…時刻表示領域
４１０…プログラム表示領域
４２０…プロジェクト表示領域
４３０…カメラモニタ
４４０…ユニットモニタ
４５０…ラダーモニタ
５２０…画像記録部
５３０…カメラ設定情報記憶部
５５０…カメラ接続ケーブル
５７５…カメラ設定記録部
１０００…プログラマブルロジックコントローラシステム
１３００…ユーザインターフェース画面
ＷＫ…対象物
ＭＴ…モータ；ＳＳ…入出力機器
ＦＰ…機能部品
ＩＡ…画面ＩＤ表示欄
Ｌｄ…ラダー図
ｄ１〜ｄ１０…デバイス値
ＣＬ…通信線
ｉ１〜ｉ３…ワーク画像
ｊ１〜ｊ３…ワーク画像
ＳＴ…スキャンタイム
ＩＬ…識別線
ＮＡ…非配置領域
ＴＸ、ＴＸ１、ＴＸ２、ＴＸ３、ＴＸ４、ＴＸ５、ＴＸ６、ＴＸ７…テキスト部品
ＣＰ…文字表示部品
ＲＰ、ＲＰ１、ＲＰ２…ランプ部品
ＭＰ…メータ部品
ＮＰ…数値表示部品
ＳＰ…スイッチ部品
ＧＰ…グラフ部品
ＩＸ…画像情報
ＥＶ…イベント群
ＵＬ…ユニット構成
ＵＧ…バッファメモリ
ＤＰ…表示用データ
【図１】
2020166827.tif 000003
【図２】
2020166827.tif 000004
【図３】
2020166827.tif 000005
【図４】
2020166827.tif 000006
【図５】
2020166827.tif 000007
【図６】
2020166827.tif 000008
【図７】
2020166827.tif 000009
【図８】
2020166827.tif 000010
【図９】
2020166827.tif 000011
【図１０】
2020166827.tif 000012
【図１１】
2020166827.tif 000013
【図１２】
2020166827.tif 000014
【図１３】
2020166827.tif 000015
【図１４】
2020166827.tif 000016
【図１５】
2020166827.tif 000017
【図１６】
2020166827.tif 000018
【図１７】
2020166827.tif 000019
【図１８】
2020166827.tif 000020
【図１９】
2020166827.tif 000021
【図２０】
2020166827.tif 000022
【図２１】
2020166827.tif 000023
【図２２】
2020166827.tif 000024
【図２３】
2020166827.tif 000025
【図２４】
2020166827.tif 000026
【図２５】
2020166827.tif 000027
【図２６】
2020166827.tif 000028
【図２７】
2020166827.tif 000029
【図２８Ａ】
2020166827.tif 000030
【図２８Ｂ】
2020166827.tif 000031
【図２８Ｃ】
2020166827.tif 000032
【図２８Ｄ】
2020166827.tif 000033
【図２９】
2020166827.tif 000034
【図３０】
2020166827.tif 000035
【図３１】
2020166827.tif 000036
【図３２】
2020166827.tif 000037
【図３３】
2020166827.tif 000038
【図３４Ａ】
2020166827.tif 000039
【図３４Ｂ】
2020166827.tif 000040
【図３４Ｃ】
2020166827.tif 000041
【図３５】
2020166827.tif 000042
【図３６】
2020166827.tif 000043
【図３７】
2020166827.tif 000044
【図３８】
2020166827.tif 000045
【図３９】
2020166827.tif 000046
【図４０】
2020166827.tif 000047
【図４１】
2020166827.tif 000048
【図４２】
2020166827.tif 000049
【図４３】
2020166827.tif 000050
【図４４】
2020166827.tif 000051
【図４５】
2020166827.tif 000052
【図４６】
2020166827.tif 000053
【図４７】
2020166827.tif 000054
【図４８】
2020166827.tif 000055
【図４９】
2020166827.tif 000056
【図５０】
2020166827.tif 000057