(57)【特許請求の範囲】
【請求項１】
制御対象機器と前記制御対象機器を制御する制御装置とを含んだ制御システムの前記制御装置が実行する制御プログラムに基づいて、前記制御システムの稼働時の状態を示すデータを格納する領域であるデバイスと、前記デバイスが保持する値であるデバイス値とを対応付けして表示させるプログラム作成支援プログラムであって、
前記制御プログラムに記述されている、前記デバイス間で一方のデバイスが他方のデバイスに影響を与える関係である前記デバイス間の依存関係を抽出する依存関係抽出ステップと、
前記デバイス値のログデータの情報であるログデータ情報の収集条件を記述したレコーディング設定情報に基づいて前記制御システムの稼働時に前記制御装置で収集されたログデータを、前記ログデータ情報として取得するログデータ入力ステップと、
前記依存関係を可視化するとともに、前記デバイスに対応する前記デバイス値を可視化した第１の表示情報を、前記依存関係および前記ログデータ情報に基づいて生成する第１の表示情報生成ステップと、
前記第１の表示情報を表示させる第１の生成結果出力ステップと、
をコンピュータに実行させることを特徴とするプログラム作成支援プログラム。
【請求項２】
前記ログデータ情報の収集対象となる前記デバイス、および前記依存関係に基づいて、前記レコーディング設定情報を生成するレコーディング設定情報生成ステップと、
をさらにコンピュータに実行させることを特徴とする請求項１に記載のプログラム作成支援プログラム。
【請求項３】
前記制御システムの稼働時におけるリアルタイムのデバイス値であるリアルタイムデータを前記制御装置から取得するリアルタイムデータ入力ステップと、
前記デバイスと前記リアルタイムデータとの対応関係および前記依存関係を可視化した第２の表示情報を、前記依存関係および前記リアルタイムデータに基づいて生成する第２の表示情報生成ステップと、
前記第２の表示情報を表示させる第２の生成結果出力ステップと、
をさらにコンピュータに実行させることを特徴とする請求項１または２に記載のプログラム作成支援プログラム。
【請求項４】
前記リアルタイムデータを記憶しておくリアルタイムデータ記憶ステップをさらにコンピュータに実行させ、
前記第２の表示情報生成ステップでは、前記リアルタイムデータ記憶ステップで記憶しておいた前記リアルタイムデータを用いて前記第２の表示情報を生成する、
ことを特徴とする請求項３に記載のプログラム作成支援プログラム。
【請求項５】
前記第２の表示情報生成ステップでは、前記制御システムの稼働時においてユーザが入力したデバイス値を用いて前記第２の表示情報を生成する、
ことを特徴とする請求項３に記載のプログラム作成支援プログラム。
【請求項６】
前記第１の生成結果出力ステップでは、ユーザによって指定された時刻の前記第１の表示情報を表示させる、
ことを特徴とする請求項１から５の何れか１つに記載のプログラム作成支援プログラム。
【請求項７】
前記第１の表示情報生成ステップでは、前記デバイス値のモニタ中に前記デバイス値が変化したことを検知すると、前記デバイス値が変化したことを示す情報を含んだ前記第１の表示情報を生成する、
ことを特徴とする請求項１から６の何れか１つに記載のプログラム作成支援プログラム。
【請求項８】
前記デバイスのうちユーザによって選択されたデバイスの前記制御プログラム内での位置を示す位置情報を保存する第１の保存ステップと、
前記位置情報がユーザによって指定されると前記制御プログラムの表示領域を、指定された前記位置情報に対応する位置にジャンプさせる、
ことを特徴とする請求項１から７の何れか１つに記載のプログラム作成支援プログラム。
【請求項９】
前記デバイスは、前記制御システムの稼働時に動的に変化し、
前記第１の表示情報生成ステップでは、動的に変化した前記デバイスに対応する前記第１の表示情報を生成する、
ことを特徴とする請求項１から８の何れか１つに記載のプログラム作成支援プログラム。
【請求項１０】
ユーザから保存指示があると、前記第１の生成結果出力ステップにて表示中の前記第１の表示情報の表示状態を保存する第２の保存ステップと、
ユーザから表示指示があると、前記第２の保存ステップで保存しておいた前記第１の表示情報を前記表示状態で表示させる第３の生成結果出力ステップと、
をさらにコンピュータに実行させることを特徴とする請求項１から９の何れか１つに記載のプログラム作成支援プログラム。
【請求項１１】
前記第１の生成結果出力ステップでは、前記第１の表示情報の前記デバイス値をユーザから指定されたデータ型および進数表示で表示させる、
ことを特徴とする請求項１から１０の何れか１つに記載のプログラム作成支援プログラム。
【請求項１２】
前記第１の生成結果出力ステップでは、ユーザによって前記制御プログラムに含まれるファンクションブロックに対応するインスタンスが指定されると、前記ファンクションブロックに対応するメンバのデバイス値を表示させる、
ことを特徴とする請求項１から１０の何れか１つに記載のプログラム作成支援プログラム。
【請求項１３】
前記制御プログラムは、複数であり、
前記依存関係抽出ステップでは、前記制御プログラムに記述されている前記デバイス間の連携を示す情報に基づいて、前記依存関係を抽出する、
ことを特徴とする請求項１から１２の何れか１つに記載のプログラム作成支援プログラム。
【請求項１４】
制御対象機器と前記制御対象機器を制御する制御装置とを含んだ制御システムの前記制御装置が実行する制御プログラムに基づいて、前記制御システムの稼働時の状態を示すデータを格納する領域であるデバイスと、前記デバイスが保持する値であるデバイス値とを対応付けして表示させるプログラム作成支援装置であって、
前記制御プログラムに記述されている、前記デバイス間で一方のデバイスが他方のデバイスに影響を与える関係である前記デバイス間の依存関係を抽出する依存関係抽出部と、
前記デバイス値のログデータの情報であるログデータ情報の収集条件を記述したレコーディング設定情報に基づいて前記制御システムの稼働時に前記制御装置で収集されたログデータを、前記ログデータ情報として取得するログデータ入力部と、
前記依存関係を可視化するとともに、前記デバイスに対応する前記デバイス値を可視化した表示情報を、前記依存関係および前記ログデータ情報に基づいて生成する表示情報生成部と、
前記表示情報を表示させる生成結果出力部と、
を備えることを特徴とするプログラム作成支援装置。
【請求項１５】
制御対象機器と前記制御対象機器を制御する制御装置とを含んだ制御システムの前記制御装置が実行する制御プログラムに基づいて、前記制御システムの稼働時の状態を示すデータを格納する領域であるデバイスと、前記デバイスが保持する値であるデバイス値とを対応付けして表示させるプログラム作成支援方法であって、
プロセッサが、前記制御プログラムに記述されている、前記デバイス間で一方のデバイスが他方のデバイスに影響を与える関係である前記デバイス間の依存関係を抽出する依存関係抽出ステップと、
前記プロセッサが、前記デバイス値のログデータの情報であるログデータ情報の収集条件を記述したレコーディング設定情報に基づいて前記制御システムの稼働時に前記制御装置で収集されたログデータを、前記ログデータ情報として取得するログデータ入力ステップと、
前記プロセッサが、前記依存関係を可視化するとともに、前記デバイスに対応する前記デバイス値を可視化した表示情報を、前記依存関係および前記ログデータ情報に基づいて生成する表示情報生成ステップと、
前記プロセッサが、前記表示情報を表示させる生成結果出力ステップと、
を含むことを特徴とするプログラム作成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、プログラムの作成を支援するプログラム作成支援プログラム、プログラム作成支援装置、およびプログラム作成支援方法に関する。
【背景技術】
【０００２】
ロボットなどの制御対象機器を制御する制御装置は、制御プログラムを用いて制御対象機器を制御する。この制御プログラムで定義されている制御アルゴリズムと、制御対象機器の状態との関係を、理解しやすい形式で可視化する技術がある。【０００３】
特許文献１に記載の情報処理装置は、制御プログラムに記述されているデバイスの依存関係を解析しグラフとして可視化している。デバイスは、制御装置と制御対象機器との間で入出力されるデータを格納する領域である。また、特許文献１に記載の情報処理装置は、制御プログラムを実行している制御装置から、制御対象機器の状態を示すデータであるデバイス値を取得し、デバイス間の依存関係を可視化したグラフ上に表示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２２５２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１の技術では、制御装置が制御対象機器から情報処理装置にリアルタイムデータが送信されている状態でのデバイス値のモニタリング処理であるオンラインモニタによってリアルタイムのデバイス値を取得することはできる。しかしながら、上記特許文献１の技術では、デバイス値のログデータを収集する方法についての記載がなく、デバイス値のログデータを取得することができないので、デバイス値のログデータを表示することができないという問題があった。【０００６】
本開示は、上記に鑑みてなされたものであって、デバイス間の依存関係を可視化した情報とともにデバイス値のログデータを提供することができるプログラム作成支援プログラムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本開示は、制御対象機器と制御対象機器を制御する制御装置とを含んだ制御システムの制御装置が実行する制御プログラムに基づいて、制御システムの稼働時の状態を示すデータを格納する領域であるデバイスと、デバイスが保持する値であるデバイス値とを対応付けして表示させるプログラム作成支援プログラムであって、制御プログラムに記述されている、デバイス間で一方のデバイスが他方のデバイスに影響を与える関係であるデバイス間の依存関係を抽出する依存関係抽出ステップをコンピュータに実行させる。また、本開示のプログラム作成支援プログラムは、デバイス値のログデータの情報であるログデータ情報の収集条件を記述したレコーディング設定情報に基づいて制御システムの稼働時に制御装置で収集されたログデータを、ログデータ情報として取得するログデータ入力ステップと、依存関係を可視化するとともに、デバイスに対応するデバイス値を可視化した第１の表示情報を、依存関係およびログデータ情報に基づいて生成する第１の表示情報生成ステップと、第１の表示情報を表示させる第１の生成結果出力ステップと、をコンピュータに実行させる。
【発明の効果】
【０００８】
本開示にかかるプログラム作成支援プログラムは、デバイス間の依存関係を可視化した情報とともにデバイス値のログデータを提供することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態にかかるプログラム作成支援装置の構成を示す図
【図２】実施の形態にかかるプログラム作成支援装置による、レコーディング設定情報の生成処理手順を示すフローチャート
【図３】実施の形態にかかるプログラム作成支援装置によるオフラインモニタの処理手順を示すフローチャート
【図４】実施の形態にかかるプログラム作成支援装置がモニタに表示させる表示情報の例を示す図
【図５】実施の形態にかかるプログラム作成支援装置が、デバイスを表示するブロック上にデバイス値を表示させる処理を説明するための図
【図６】実施の形態にかかるプログラム作成支援装置によるオンラインモニタの処理手順を示すフローチャート
【図７】実施の形態にかかるプログラム作成支援装置による、過去に格納しておいたリアルタイムデータの表示処理手順を示すフローチャート
【図８】実施の形態にかかるプログラム作成支援装置が、ユーザに指定されたデバイス値を受付けて表示させる処理の処理手順を示すフローチャート
【図９】実施の形態にかかるプログラム作成支援装置が、動的に変化する抽出対象デバイスのデバイス値を表示させる処理を説明するための図
【図１０】実施の形態にかかるプログラム作成支援装置が、モニタに表示中のデバイス値のデータ型および進数表示を変更する処理を説明するための図
【図１１】実施の形態にかかるプログラム作成支援装置が、ユーザによって指定されたＦＢ（Function  Block）のメンバのデバイス値を表示する処理を説明するための図
【図１２】実施の形態にかかるプログラム作成支援装置が、保存要求があったデバイスの制御プログラム内での位置情報を保存し、表示要求があったデバイスの制御プログラム内での位置を表示する処理を説明するための図
【図１３】実施の形態にかかるプログラム作成支援装置が、ユーザによって指定された時刻における表示状態を保存する処理を説明するための図
【図１４】実施の形態にかかるプログラム作成支援装置を実現するハードウェア構成例を示す図
【発明を実施するための形態】
【００１０】
以下に、本開示の実施の形態にかかるプログラム作成支援プログラム、プログラム作成支援装置、およびプログラム作成支援方法を図面に基づいて詳細に説明する。
【００１１】
実施の形態．
図１は、実施の形態にかかるプログラム作成支援装置の構成を示す図である。プログラム作成支援装置１は、プログラムであるエンジニアリングツールを実行するコンピュータである。エンジニアリングツールは、ロボットなどの制御対象機器を制御する制御装置が、制御対象機器を制御する際に用いる制御プログラム２の作成を支援するプログラム作成支援プログラムである。制御装置は、例えば、プログラマブルロジックコントローラ（ＰＬＣ：Programmable  Logic  Controller）である。
【００１２】
制御プログラム２は、例えば、ラダー言語で作成されたラダープログラム、またはＳＴ（Structured  Text、ストラクチャードテキスト）言語で作成されたストラクチャードテキストプログラムである。制御プログラム２には、デバイスと、デバイス間の依存関係と、制御装置が有するＣＰＵ（Central  Processing  Unit）などのプロセッサを動作させるためのパラメータとが記述されている。デバイス間の依存関係は、一方のデバイスが他方のデバイスに影響を与える関係である。なお、一方のデバイスは、１つであっても複数であってもよい。また、他方のデバイスは、１つであっても複数であってもよい。例えば、シーケンスプログラムであるラダープログラムは、主に変数、デバイス、および数値を用いて記述される。デバイスは、制御プログラム２を実行する制御装置と制御対象機器との間で入出力されるデータを格納する領域である。換言すると、デバイスは、デバイス値を格納しておくブロックのメモリアドレスである。
【００１３】
プログラム作成支援装置１は、制御プログラム２が実行されている間のデバイス値をログデータとして収集する場合、事前に収集対象となるデバイスを設定しておく必要がある。実施の形態では、プログラム作成支援装置１が、制御プログラム２に記述されているデバイス間の依存関係を抽出し、抽出結果に基づいて、ログデータの収集対象となるデバイスを設定することで、ユーザのエンジニアリング工数を削減する。
【００１４】
プログラム作成支援装置１は、ログデータの収集対象となるデバイスが設定された後述のレコーディング設定情報３を作成して制御装置に送ることで、制御装置にログデータを要求する。制御装置のプロセッサは、レコーディング設定情報３に従って、ログデータを収集し、プログラム作成支援装置１に送る。これにより、プログラム作成支援装置１は、レコーディング設定情報３に対応するログデータを制御装置から取得する。ログデータでは、デバイスとデバイス値とが対応付けされている。
【００１５】
プログラム作成支援装置１は、ログデータとして取得したデバイス値を、デバイスとの対応関係およびデバイス間の依存関係を可視化したグラフ上に表示することでオフラインモニタを実行する。すなわち、プログラム作成支援装置１は、デバイス間の依存関係を可視化するとともに、デバイスに対応するログデータとしてのデバイス値を可視化した表示情報を表示することでオフラインモニタを実行する。
【００１６】
また、プログラム作成支援装置１は、後述するリアルタイムデータとして取得したデバイス値を、デバイスとの対応関係およびデバイス間の依存関係を可視化したグラフ上に表示することでオンラインモニタを実行する。すなわち、プログラム作成支援装置１は、デバイス間の依存関係を可視化するとともに、デバイスに対応するリアルタイムデータとしてのデバイス値を可視化した表示情報を表示することでオンラインモニタを実行する。デバイスおよび、デバイスに記憶されている値であるデバイス値についての詳細は後述する。また、オンラインモニタについても後述する。
【００１７】
プログラム作成支援装置１は、制御プログラム２で定義されている制御アルゴリズムと、制御対象機器の状態との関係を、理解しやすい形式で可視化する。具体的には、プログラム作成支援装置１は、制御プログラム２に記述されているデバイスの依存関係を解析し、依存関係に基づいて、制御プログラム２をグラフとして可視化する。
【００１８】
制御装置が備える記憶部は、制御対象機器の情報である制御情報を格納するデバイスメモリを有している。デバイスメモリは、制御装置が制御プログラム２を実行すると実行内容に従って値が更新される各種のデバイス値を保持するメモリである。このメモリの記憶領域は、デバイスと称される複数の領域に区切られている。
【００１９】
デバイスは、制御装置が有するデバイスメモリのアドレスに割りつけられる。デバイスの割り付けは制御プログラム２に従って行われる。制御装置がＰＬＣの場合、例えば、入力をＸデバイス、出力をＹデバイス、内部的に使用するビット型のデータをＭデバイス、ワード型のデータをＤデバイス、というように、データ種別によってデバイス文字が予め決められている。デバイスは、デバイス文字とアドレスとにより表記され、入力デバイスのアドレス０のものは「Ｘ０」と表記される。このように、デバイスは、制御装置が有する共有メモリの領域であるデバイスメモリにおける領域を規定する名称である。
【００２０】
デバイス値は、制御装置が制御対象機器を制御する際に使用する制御情報の値を示すデータであり、制御装置および制御対象機器を含んで構成された制御システムの稼働時の状態を示すデータである。デバイス値は、装置状態情報とも呼ばれる。デバイス値は、制御プログラム２が制御装置で実行されている間は適宜更新される情報であり、制御プログラム２の動作状況、すなわち制御システムの動作状態に合わせて値が変化する。ユーザは、デバイス値を確認することにより制御プログラム２の動作状況を知ることができる。
【００２１】
プログラム作成支援装置１は、制御プログラム２内でユーザに指定されたデバイスと依存関係を持つデバイスを、制御プログラム２内から検索する。ユーザに指定されたデバイスと依存関係を持つデバイスは、ユーザに指定されたデバイスから影響を受けるデバイスである。ユーザに指定されたデバイスと、このデバイスと直接的または間接的に依存関係を持つデバイスとが、ログデータの抽出対象となるデバイスである。以下、ログデータの抽出対象となるデバイスを抽出対象デバイスという。プログラム作成支援装置１は、抽出対象デバイスを、レコーディング設定情報３に設定する。
【００２２】
レコーディング設定情報３は、プログラム作成支援装置１が制御装置からデバイス値を取得する際に、制御装置で用いられる情報である。レコーディング設定情報３には、収集されるデバイスを識別する情報、デバイス値の収集周期、収集タイミングなどが含まれている。収集されるデバイスを識別する情報は、デバイスの名称であってもよいしデバイスの識別番号であってもよい。
【００２３】
制御装置は、制御対象機器などから、特定のタイミングでデバイス値の収集を開始し、収集したデバイス値をログデータとして保管しておく。ログデータは、制御装置が制御対象機器の制御で使用した制御情報の値を示す時系列データである。制御装置は、例えば、制御装置が稼働を開始するとログデータの収集を開始してもよいし、特定のデバイスがオンになるとログデータの収集を開始してもよい。
【００２４】
プログラム作成支援装置１は、レコーディング設定情報３を制御装置に送信することによって、制御対象機器のデバイス値のログデータを制御装置から取得する。このとき、制御装置は、レコーディング設定情報３に基づいて収集したログデータをプログラム作成支援装置１に送信する。
【００２５】
このように、プログラム作成支援装置１は、ユーザによって指定されたデバイスのデバイス値を、制御装置が保管しておいたデバイス値のログデータをオフラインで取得し表示させる。また、プログラム作成支援装置１は、ユーザによって指定されたデバイスのデバイス値を、オンラインで制御装置から取得し表示させることも可能である。
【００２６】
以下、プログラム作成支援装置１が備える各構成要素について説明する。プログラム作成支援装置１は、ログデータ入力部１１と、リアルタイムデータ入力部１２と、書込デバイス値入力部１３と、デバイス値制御部１４とを備えている。また、プログラム作成支援装置１は、依存関係抽出部１５と、レコーディング設定情報生成部１６と、表示時刻設定部１７と、生成結果出力部１８と、表示情報生成部１９と、通信部２０とを備えている。
【００２７】
プログラム作成支援装置１は、リアルタイムデータ記憶部２１、表示情報記憶部２２、制御装置、およびモニタ４に接続されている。表示装置であるモニタ４は、例えば液晶モニタである。
【００２８】
ログデータ入力部１１は、ユーザからオフラインモニタの指示があると、制御装置からレコーディング設定情報３に対応するログデータを受け付ける。オフラインモニタは、制御装置からプログラム作成支援装置１にリアルタイムデータが送信されていない状態でのデバイス値のモニタリング処理である。
【００２９】
ログデータ入力部１１が制御装置から取得するデバイス値は、制御プログラム２の実行が開始されてからの時刻に対応付けされている。すなわち、ログデータ入力部１１は、時刻とデバイス値とが対応付けされたログデータの情報を、ログデータ情報として制御装置から取得する。時刻は、制御プログラム２の実行が開始されてからの時間、すなわち経過時間である。
【００３０】
ログデータ情報には、種々の時刻におけるデバイス値が含まれている。換言すると、ログデータ情報には、変化するログデータの経緯の情報が含まれている。ログデータ入力部１１は、受付けたログデータ情報をデバイス値制御部１４に入力する。
【００３１】
リアルタイムデータ入力部１２は、ユーザからオンラインモニタの指示があると、制御装置からリアルタイムデータを受付ける。リアルタイムデータ入力部１２が受付けるリアルタイムデータは、リアルタイムのデバイス値である。リアルタイムデータでは、デバイスとデバイス値とが対応付けされている。オンラインモニタは、制御装置が制御対象機器からプログラム作成支援装置１にリアルタイムデータが送信されている状態でのデバイス値のモニタリング処理である。リアルタイムデータ入力部１２は、受付けたリアルタイムデータをデバイス値制御部１４に入力する。また、リアルタイムデータ入力部１２は、受付けたリアルタイムデータをリアルタイムデータ記憶部２１に格納する。リアルタイムデータ記憶部２１は、リアルタイムデータを格納するメモリなどである。
【００３２】
書込デバイス値入力部１３は、ユーザから入力されたデバイス値であるユーザ入力値を受け付ける。書込デバイス値入力部１３がユーザ受け付けるデバイス値は、制御システムに書込みが可能なデバイス値である。デバイスにデバイス値が書き込まれると、デバイス値が書き込まれたデバイスと依存関係のあるデバイスのデバイス値も変化する。プログラム作成支援装置１は、ユーザから入力されたデバイス値をデバイスに書き込んだ場合に、各デバイスのデバイス値がどのように変化するかをモニタ４に表示させる。
【００３３】
依存関係抽出部１５は、ユーザからレコーディング設定情報３の生成処理が指示された場合には、ユーザに指定された抽出対象デバイスと依存関係を持つデバイスを制御プログラム２から検索し、検索したデバイスを抽出対象デバイスに追加する。
【００３４】
同様に、依存関係抽出部１５は、ユーザからオフラインモニタまたはオンラインモニタが指示された場合には、ユーザに指定された抽出対象デバイスと依存関係を持つデバイスを制御プログラム２から検索し、検索したデバイスを抽出対象デバイスに追加する。依存関係抽出部１５は、オフラインモニタまたはオンラインモニタが実行される際には、抽出対象デバイスおよび依存関係を表示情報記憶部２２に格納する。
【００３５】
レコーディング設定情報生成部１６は、レコーディング設定情報３を生成する際には、依存関係抽出部１５が設定した抽出対象デバイスを、レコーディング設定情報３に設定する。レコーディング設定情報生成部１６は、ユーザから指定されたデバイス値の収集周期および収集タイミングをレコーディング設定情報３に設定してもよいし、デフォルトの収集周期および収集タイミングをレコーディング設定情報３に設定してもよい。
【００３６】
デバイス値制御部１４は、ログデータ入力部１１、リアルタイムデータ入力部１２、リアルタイムデータ記憶部２１、または書込デバイス値入力部１３から、デバイス値を含んだログデータ情報を取得して、表示情報記憶部２２に格納する。
【００３７】
表示情報記憶部２２は、ログデータ情報、抽出対象デバイス、および依存関係を格納するメモリなどである。
【００３８】
表示情報生成部１９は、表示情報記憶部２２に格納されている、ログデータ情報、抽出対象デバイス、および依存関係に基づいて、デバイス間の依存関係を可視化した情報と、各デバイスに対応付けられたデバイス値と含んだ表示情報を生成する。表示情報生成部１９は、表示情報を生成結果出力部１８に送る。実施の形態では、オフラインモニタで生成される表示情報が第１の表示情報であり、オンラインモニタで生成される表示情報が第２の表示情報である。
【００３９】
表示時刻設定部１７は、ユーザによってプログラム作成支援装置１に入力される時刻を受け付ける。なお、ユーザは、ログデータを見たい時刻を、モニタ４を制御する制御部に入力してもよい。この場合、ユーザは、例えば、モニタ４が表示している画面上で、ログデータを見たい時刻を指定する。これにより、モニタ４を制御する制御部が、ユーザに指定された時刻を表示時刻設定部１７に通知する。表示時刻設定部１７は、ユーザによって指定された時刻を生成結果出力部１８に送る。
【００４０】
生成結果出力部１８は、表示情報をモニタ４に出力することで、表示情報をモニタ４に表示させる。生成結果出力部１８は、最初に、表示情報に含まれる時刻のうち、最も時刻の早い状態におけるデバイス値をモニタ４に表示させる。
【００４１】
モニタ４によって表示される各デバイスのデバイス値は、時刻の進行とともに、すなわち経過時間とともに変化する。生成結果出力部１８は、表示時刻設定部１７から時刻を受付けると、この時刻に対応するデバイス値をモニタ４に表示させる。このように、モニタ４が表示する表示情報では、時刻とデバイス値とが対応付けされており、プログラム作成支援装置１は、ユーザによって指定された時刻に対応するデバイス値をモニタ４に表示させることができる。
【００４２】
図２は、実施の形態にかかるプログラム作成支援装置による、レコーディング設定情報の生成処理手順を示すフローチャートである。プログラム作成支援装置１の依存関係抽出部１５は、依存関係の抽出対象である抽出対象デバイスおよびログデータの収集条件を、ユーザから受け付ける（ステップＳ１０）。ここでの抽出対象デバイスは、ユーザが取得したいログデータに対応するデバイスであり、ユーザによって指定される。
【００４３】
ログデータの収集条件は、制御装置がログデータを収集する条件である。ログデータの収集条件には、例えば、１秒毎といった特定の収集周期のログデータを制御装置が収集すること、特定のデバイスのデバイス値が変化した場合の変化後のデバイス値を制御装置が収集することなどが規定されている。また、ログデータの収集条件には、特定のデバイスがオンになった後のログデータを制御装置が収集することが規定されていてもよい。なお、収集条件には、ログデータの収集期間が含まれていてもよい。ログデータの収集期間は、制御装置がログデータを収集する期間であり、制御プログラム２の実行中における特定期間である。
【００４４】
この後、依存関係抽出部１５は、抽出対象デバイスの数だけステップＳ２０およびステップＳ３０の処理を繰り返す。
【００４５】
すなわち、依存関係抽出部１５は、制御プログラム２に含まれるデバイスの中から、これまでに設定済みの抽出対象デバイスと依存関係を持つデバイスを検索する（ステップＳ２０）。依存関係抽出部１５は、検索したデバイスを、抽出対象デバイスに設定する（ステップＳ３０）。これにより、抽出対象デバイスの数が増加する。
【００４６】
依存関係抽出部１５は、ユーザに指定された抽出対象デバイスと、ステップＳ３０で設定した抽出対象デバイスと、に対して、ステップＳ２０，Ｓ３０の処理を繰り返す。
【００４７】
依存関係抽出部１５が全ての抽出対象デバイスを設定すると、レコーディング設定情報生成部１６は、抽出対象デバイスおよび収集条件をレコーディング設定情報３に設定する（ステップＳ４０）。このように、プログラム作成支援装置１は、デバイス間の依存関係に基づいて、ログデータの収集対象となる抽出対象デバイスが記述されたレコーディング設定情報３を生成する。
【００４８】
プログラム作成支援装置１は、オフラインモニタの準備を開始すると、上述した図２の処理手順に従って、レコーディング設定情報３を生成する。レコーディング設定情報生成部１６は、レコーディング設定情報３を通信部２０に送る。通信部２０は、レコーディング設定情報３を、制御装置に送信する。制御装置は、レコーディング設定情報３に基づいて、ログデータを保管する。制御装置は、レコーディング設定情報３に対応するログデータを用いてログデータ情報を生成する。レコーディング設定情報３に対応するログデータは、収集条件を満たした、抽出対象デバイスのデバイス値である。
【００４９】
制御装置は、生成したログデータ情報をログデータ入力部１１に送信する。これにより、ログデータ入力部１１は、ログデータ情報を受け付けて、ログデータ情報をデバイス値制御部１４に送る。デバイス値制御部１４は、ログデータ情報を表示情報記憶部２２に格納する。この後、プログラム作成支援装置１は、ログデータ情報を用いてオフラインモニタを開始する。以下、プログラム作成支援装置１によるオフラインモニタの詳細な処理手順について説明する。
【００５０】
図３は、実施の形態にかかるプログラム作成支援装置によるオフラインモニタの処理手順を示すフローチャートである。プログラム作成支援装置１の依存関係抽出部１５は、依存関係の抽出対象である抽出対象デバイスをユーザから受け付ける（ステップＳ１０１）。ここでの抽出対象デバイスは、ユーザがオフラインモニタによって表示させたいログデータに対応するデバイスである。
【００５１】
この後、依存関係抽出部１５は、図２で説明したステップＳ２０，Ｓ３０の処理と同様に、抽出対象デバイスの数だけステップＳ１０２およびステップＳ１０３の処理を繰り返す。
【００５２】
すなわち、依存関係抽出部１５は、制御プログラム２に含まれるデバイスの中から、これまでに設定済みの抽出対象デバイスと依存関係を持つデバイスを検索する（ステップＳ１０２）。依存関係抽出部１５は、検索したデバイスを、抽出対象デバイスに設定する（ステップＳ１０３）。これにより、抽出対象デバイスの数が増加する。
【００５３】
依存関係抽出部１５は、ユーザに指定された抽出対象デバイスと、ステップＳ１０３で設定した抽出対象デバイスと、に対して、ステップＳ１０２，Ｓ１０３の処理を繰り返す。
【００５４】
依存関係抽出部１５は、全ての抽出対象デバイスを設定すると、抽出対象デバイスおよび依存関係を表示情報記憶部２２に格納する（ステップＳ１１０）。
【００５５】
ログデータ入力部１１は、制御装置がレコーディング設定情報３に基づいて生成したログデータ情報を、制御装置から受け付ける。すなわち、ログデータ入力部１１は、レコーディング設定情報３に対応するログデータ情報を、制御装置から受け付ける（ステップＳ１２０）。ログデータ入力部１１は、ログデータ情報を、デバイス値制御部１４に入力する。
【００５６】
デバイス値制御部１４は、ログデータ入力部１１から送られてくるログデータ情報を受け付けて、表示情報記憶部２２に格納する（ステップＳ１３０）。なお、ログデータ情報は、デバイス値制御部１４が、ログデータ入力部１１から読み出してもよい。
【００５７】
表示情報生成部１９は、表示情報記憶部２２内の、抽出対象デバイス、依存関係、およびログデータ情報に基づいて、デバイスとデバイス値とを対応付けした表示情報を生成する（ステップＳ１４０）。この表示情報には、デバイス間の依存関係を可視化した情報が含まれている。
【００５８】
生成結果出力部１８は、表示情報生成部１９が生成した表示情報をモニタ４に表示させる（ステップＳ１５０）。なお、上述したステップＳ１２０，Ｓ１３０の処理は、ステップＳ１４０の処理よりも前であれば、何れのタイミングで実行されてもよい。
【００５９】
プログラム作成支援装置１がオフラインモニタ時に、現在表示中の時刻とは異なる時刻のデバイス値の状態を表示させる場合には、表示情報生成部１９が、表示時刻設定部１７に設定された時刻に基づいて、表示情報を再生成する。例えば、表示時刻設定部１７に対し、生成済みの表示情報に含まれる時刻よりも古い時刻がユーザによって指定された場合、表示情報生成部１９は、表示情報記憶部２２からユーザによって指定された時刻のログデータ情報を新たに読み込んで、表示情報を再生成する。
【００６０】
なお、プログラム作成支援装置１がオフラインモニタを実行する場合において、制御装置は、ユーザによる手作業で作成されたレコーディング設定情報３に基づいてログデータ情報を収集してもよい。この場合、制御装置が手作業で作成されたレコーディング設定情報３に基づいて収集したログデータ情報を、ログデータ入力部１１が制御装置から受け付ける。
【００６１】
ここで、デバイス間の依存関係を可視化したグラフについて説明する。図４は、実施の形態にかかるプログラム作成支援装置がモニタに表示させる表示情報の例を示す図である。表示情報は、例えば図４に示すグラフ４０Ａとしてモニタ４に表示される。
【００６２】
図４に示すグラフ４０Ａは、ブロック３１Ａ，３１Ｂと、プログラム部品３３，３４とを含んでいる。プログラム部品３４は、プログラム部品３３に依存し、プログラム部品３３は、ブロック３１Ｂに依存し、ブロック３１Ｂはブロック３１Ａに依存している。
【００６３】
ブロック３１Ａは、デバイスＤ１０を表示するブロックであり、ブロック３１Ｂは、デバイスＤ０を表示するブロックである。図４に示す例では、デバイスを表示しているブロックの周辺にデバイス値を表示するブロックが表示されている。
【００６４】
例えば、デバイスＤ１０を表示するブロック３１Ａの周辺に、デバイスＤ１０のブロック３１Ａに対応するデバイス値のブロック３２Ａが表示される。また、デバイスＤ０を表示するブロック３１Ｂの周辺に、デバイスＤ０のブロック３１Ｂに対応するデバイス値のブロック３２Ｂが表示される。
【００６５】
プログラム部品３３には、転送命令ＭＯＶのファンクションブロック、デバイスＤ２を表示するブロック、およびラベルを表示するブロックが含まれている。ラベルの例は、変位センサの現在値である。プログラム部品３４には、ラベルのブロックおよびデバイスＤ１１のブロックが含まれている。ラベルを表示するブロックの周辺でも、ラベルのブロックに対応するデバイス値のブロックが表示される。
【００６６】
例えば、図４のグラフ４０Ａでは、ブロック３２Ａ，３２Ｂによってデバイス値の「１．２３４５」が示されている。すなわち、グラフ４０Ａでは、デバイスＤ１０のブロック３１Ａにおけるデバイス値が「１．２３４５」であり、デバイスＤ０のブロック３１Ｂにおけるデバイス値が「１．２３４５」である。
【００６７】
このように、プログラム作成支援装置１は、抽出対象デバイスが、複数のプログラム部品に跨って影響を与える場合であっても、または影響を受ける場合であっても、デバイス間の依存関係を表示させることができる。一方、ラダープログラムに含まれる特定のデバイスの近傍にデバイス値を表示させるだけの場合、一部の依存関係を表示することは可能であるが、複雑な依存関係までは表示することはできない。この場合、ユーザは、依存関係を有するデバイスを探し出して表示する必要がある。本実施の形態では、プログラム作成支援装置１が、依存関係を抽出して表示するので、ユーザは、依存関係を抽出する必要がない。
【００６８】
また、プログラム作成支援装置１は、特定のデバイスに対して依存関係を有したデバイスのみを可視化して表示することができる。一方、ラダープログラムを表示するだけの場合、依存関係を有していないデバイスも表示されるので、ユーザはデバイス間の依存関係を容易に把握することが困難である。本実施の形態では、プログラム作成支援装置１が、依存関係を有したデバイスのみを表示するため、ユーザは、デバイス間の依存関係を容易に把握することが可能となる。
【００６９】
また、グラフ４０Ａは、シークバー６０を含んでいる。プログラム作成支援装置１は、シークバー６０で指定された時刻の各デバイスのデバイス値をグラフ４０Ａとして表示させる。シークバー６０の長さは、ログデータが収集された期間に対応し、シークバー６０上の位置は、ログデータが取得された時刻に対応している。
【００７０】
ユーザによってシークバー６０上の位置が指定されると、モニタ４の制御部が、シークバー６０上の位置に対応する時刻を算出し、算出した時刻を表示時刻設定部１７に送る。これにより、プログラム作成支援装置１は、シークバー６０上の位置に対応する時刻のログデータ値をグラフ４０Ａに表示させる。なお、シークバー６０は、再生ボタン６１、先頭に戻るためのボタン６２、最後に進むためのボタン６３などを備えていてもよい。また、プログラム作成支援装置１は、再生スピードを任意に調整可能となっている。
【００７１】
プログラム作成支援装置１は、制御プログラム２が複数存在する場合もデバイス間の依存関係およびデバイス値をグラフ４０Ａ上に表示可能である。制御プログラム２が複数存在する場合、依存関係抽出部１５は、制御プログラム２に記述されているパラメータであるネットワーク設定情報に基づいて、複数の制御プログラム２を跨いだデバイス間の依存関係を抽出する。ネットワーク設定情報は、デバイス間の連携を示す情報である。例えば、制御装置が、２つのプロセッサで２つの制御プログラム２を実行する場合、ネットワーク設定情報には、１つ目の制御プログラム２のデバイスと、２つ目の制御プログラム２のデバイスとの間の依存関係を示す情報が含まれている。制御プログラム２が複数存在する場合も、レコーディング設定情報生成部１６は、レコーディング設定情報３を生成する。
【００７２】
生成結果出力部１８は、デバイスを表示するブロック上にデバイス値を表示させてもよい。図５は、実施の形態にかかるプログラム作成支援装置が、デバイスを表示するブロック上にデバイス値を表示させる処理を説明するための図である。
【００７３】
生成結果出力部１８は、デバイス値の値に応じて、デバイスＭ１を表示するブロック３１Ｃ，３１Ｄの表示形態を変更する。生成結果出力部１８は、例えば、デバイス値が「ＴＲＵＥ」であるブロック３１Ｃに、デバイス値が「ＦＡＬＳＥ」であるブロック３１Ｄとは異なる色を付けてモニタ４に表示させる。図５では、特定の色によって塗りつぶされているブロック３１Ｃが「ＴＲＵＥ」であり、塗りつぶしのないブロック３１Ｄが「ＦＡＬＳＥ」である場合を示している。このように、生成結果出力部１８は、ブロック３１Ｃ，３１Ｄの塗りつぶし状態でデバイス値を表現する。
【００７４】
図６は、実施の形態にかかるプログラム作成支援装置によるオンラインモニタの処理手順を示すフローチャートである。プログラム作成支援装置１の依存関係抽出部１５は、依存関係の抽出対象である抽出対象デバイスをユーザから受け付ける（ステップＳ２０１）。ここでの抽出対象デバイスは、ユーザがオンラインモニタによって表示させたいログデータに対応するデバイスである。
【００７５】
この後、依存関係抽出部１５は、図２で説明したステップＳ２０，Ｓ３０の処理と同様に、抽出対象デバイスの数だけステップＳ２０２およびステップＳ２０３の処理を繰り返す。
【００７６】
すなわち、依存関係抽出部１５は、制御プログラム２に含まれるデバイスの中から、これまでに設定済みの抽出対象デバイスと依存関係を持つデバイスを検索する（ステップＳ２０２）。依存関係抽出部１５は、検索したデバイスを、抽出対象デバイスに設定する（ステップＳ２０３）。これにより、抽出対象デバイスの数が増加する。
【００７７】
依存関係抽出部１５は、ユーザに指定された抽出対象デバイスと、ステップＳ２０３で設定した抽出対象デバイスと、に対して、ステップＳ２０２，Ｓ２０３の処理を繰り返す。
【００７８】
依存関係抽出部１５は、全ての抽出対象デバイスを設定すると、抽出対象デバイスおよび依存関係を表示情報記憶部２２に格納する（ステップＳ２１０）。
【００７９】
リアルタイムデータ入力部１２は、制御装置が保持しているリアルタイムのデバイス値であるリアルタイムデータを、制御装置から受け付ける（ステップＳ２２０）。リアルタイムデータ入力部１２は、リアルタイムデータを、デバイス値制御部１４に入力する。
【００８０】
デバイス値制御部１４は、リアルタイムデータ入力部１２から送られてくるリアルタイムデータを受け付け、表示情報記憶部２２に格納する（ステップＳ２３０）。なお、リアルタイムデータは、デバイス値制御部１４が、リアルタイムデータ入力部１２から読み出してもよい。
【００８１】
表示情報生成部１９は、表示情報記憶部２２内の、抽出対象デバイス、依存関係、およびリアルタイムデータに基づいて、デバイスとデバイス値とを対応付けした表示情報を生成する（ステップＳ２４０）。この表示情報には、デバイス間の依存関係を可視化した情報が含まれている。生成結果出力部１８は、表示情報生成部１９が生成した表示情報をモニタ４に表示させる（ステップＳ２５０）。
【００８２】
プログラム作成支援装置１は、オンラインモニタ時に、ユーザからリアルタイムデータを格納させておく指示があると、リアルタイムデータを格納しておく。この場合、リアルタイムデータ入力部１２は、制御装置から受け付けたリアルタイムデータをリアルタイムデータ記憶部２１に格納する。これにより、プログラム作成支援装置１は、ユーザから過去に格納しておいたリアルタイムデータの表示指示があった場合には、過去に格納しておいたリアルタイムデータを表示することが可能となる。
【００８３】
図７は、実施の形態にかかるプログラム作成支援装置による、過去に格納しておいたリアルタイムデータの表示処理手順を示すフローチャートである。プログラム作成支援装置１は、ユーザによって表示時刻が指定されるたびに以下のステップＳ３１０からステップＳ３５０の処理を繰り返す。
【００８４】
表示時刻設定部１７は、ユーザによって入力される表示時刻を受け付ける。ここでの表示時刻は、過去に格納しておいたリアルタイムデータに対応している。過去に格納しておいたリアルタイムデータ、すなわち過去のデバイス値は、種々の時刻で種々の値を示すので、ユーザは、過去に格納しておいたリアルタイムデータを表示させたい場合には、表示時刻を指定する。これにより、表示時刻設定部１７は、デバイス値を表示する時刻を受け付ける（ステップＳ３１０）。表示時刻設定部１７は、受け付けた時刻をデバイス値制御部１４に送る。
【００８５】
デバイス値制御部１４は、ユーザによって指定された時刻のデバイス値を、リアルタイムデータ記憶部２１から検索する（ステップＳ３２０）。デバイス値制御部１４は、検索したデバイス値を表示情報記憶部２２に格納する（ステップＳ３３０）。
【００８６】
表示情報生成部１９は、表示情報記憶部２２内の、抽出対象デバイス、依存関係、およびデバイス値に基づいて、ユーザによって指定された時刻のデバイスとデバイス値とを対応付けした表示情報を生成する（ステップＳ３４０）。この表示情報には、デバイス間の依存関係を可視化した情報が含まれている。生成結果出力部１８は、表示情報生成部１９が生成した表示情報をモニタ４に表示する（ステップＳ３５０）。
【００８７】
ユーザは、制御プログラム２のデバッグ作業時などに、制御装置に仮のデバイス値を書込みたい場合がある。このような場合、プログラム作成支援装置１は、ユーザに指定されたデバイス値を制御装置に書き込むことができる。また、プログラム作成支援装置１は、ユーザに指定されたデバイス値を受付けて表示させることができる。
【００８８】
図８は、実施の形態にかかるプログラム作成支援装置が、ユーザに指定されたデバイス値を受付けて表示させる処理の処理手順を示すフローチャートである。プログラム作成支援装置１は、オンラインモニタ時に、ユーザによってデバイス値がプログラム作成支援装置１に書き込まれるたびに以下のステップＳ４１０からステップＳ４４０の処理を繰り返す。
【００８９】
ユーザが制御システムに書き込むデバイス値をプログラム作成支援装置１に入力すると、書込デバイス値入力部１３が、制御システムに書き込むデバイス値を受け付ける（ステップＳ４１０）。書込デバイス値入力部１３は、受け付けたデバイス値をデバイス値制御部１４に送る。このデバイス値は、実際に制御装置に送られてもよいし、送られなくてもよい。
【００９０】
デバイス値制御部１４は、制御システムに書き込まれたデバイス値を表示情報記憶部２２に格納する（ステップＳ４２０）。
【００９１】
表示情報生成部１９は、表示情報記憶部２２内の、抽出対象デバイス、依存関係、およびユーザが指定したデバイス値に基づいて、デバイスとデバイス値とを対応付けした表示情報を生成する（ステップＳ４３０）。この表示情報には、デバイス間の依存関係を可視化した情報が含まれている。生成結果出力部１８は、表示情報生成部１９が生成した表示情報をモニタ４に表示する（ステップＳ４４０）。この後、時間の経過とともに各デバイス値は、変化していく。
【００９２】
つぎに、プログラム作成支援装置１が、オフラインモニタおよびオンラインモニタの際に共通して使用可能な機能について説明する。
【００９３】
プログラム作成支援装置１のデバイス値制御部１４は、デバイス値のモニタ中にデバイス値が変化したことを検知してもよい。この場合、表示情報生成部１９は、変化後のデバイス値を用いた表示情報を生成し、生成結果出力部１８は、変化後のデバイス値を用いた表示情報をモニタ４に表示する。この場合において、生成結果出力部１８は、デバイス値が変化したことを示す情報を含んだ表示情報を生成する。生成結果出力部１８は、例えば、デバイス値が変化したデバイスのブロックを、他のブロックと異なる表示態様で強調表示させてもよい。例えば、生成結果出力部１８は、デバイス値が変化したデバイスのブロックを、点滅表示させてもよいし、他のブロックの色と異なる色で表示させてもよい。
【００９４】
また、デバイス値制御部１４は、ユーザによって設定された任意の時刻間で、デバイス値が変化したことを検知してもよい。この場合も、表示情報生成部１９は、変化後のデバイス値を用いた表示情報を生成し、生成結果出力部１８は、変化後のデバイス値を用いた表示情報をモニタ４に表示する。
【００９５】
また、デバイス値制御部１４は、動的に変化する抽出対象デバイスのデバイス値を検知してもよい。例えば、制御プログラム２にインデックスレジスタ（Ｚ，ＬＺ）が使用される場合、抽出対象デバイスの番号は以下のようになる。
抽出対象デバイスの番号＝［指定されているデバイス番号］＋［インデックスレジスタのデバイス値］
【００９６】
図９は、実施の形態にかかるプログラム作成支援装置が、動的に変化する抽出対象デバイスのデバイス値を表示させる処理を説明するための図である。図９では、「Ｘ０Ｚ０」のデバイスを示すブロック３１Ｅと、「Ｘ０Ｚ０」のデバイスと依存関係を持つデバイスを示すブロック３１Ｆとを示している。例えば、制御プログラム２に「Ｘ０Ｚ０」が記述されていて、「Ｚ０」のデバイス値が「３」である場合、抽出対象デバイスは「Ｘ３」となる。
【００９７】
この場合において、「Ｚ０」のデバイス値が制御プログラム２の実行中に変更されると、「Ｘ０Ｚ０」が意味するデバイスも変更される。このような場合であっても、デバイス値制御部１４は、抽出対象デバイスのデバイス値を検知する。
【００９８】
「Ｘ０Ｚ０」が意味するデバイスが変更されると、ブロック３１Ｅの周辺に表示されるブロック３１Ｅに対応するデバイス値も、「Ｘ０Ｚ０」が意味するデバイスのデバイス値に変更される。これにより、「Ｘ０Ｚ０」のデバイスと依存関係を持つデバイスのデバイス値も変化する。
【００９９】
また、生成結果出力部１８は、ユーザからの指示に従って、モニタ４に表示中のデバイス値のデータ型および進数表示を変更してもよい。図１０は、実施の形態にかかるプログラム作成支援装置が、モニタに表示中のデバイス値のデータ型および進数表示を変更する処理を説明するための図である。
【０１００】
図１０に示すグラフ４０Ｂには、デバイスＤ１１を示すブロック３１Ｇと、ブロック３１ＧのデバイスＤ１１に対応するデバイス値を示すブロック３２Ｃとが含まれている。図１０に示すグラフ４０Ｂにおいて、ユーザがブロック３１ＧのデバイスＤ１１を指定すると、生成結果出力部１８は、ブロック３１Ｇを他のブロックと比べて強調表示する。また、ユーザがブロック３１ＧのデバイスＤ１１を指定すると、生成結果出力部１８は、ブロック３２Ｃに表示させるデバイス値の表示態様の表示候補４１をグラフ４０Ｂに表示させる。
【０１０１】
表示候補４１は、データ型の候補および進数表示の候補である。表示候補４１には、例えば、１６ビット整数（符号付き）、６４ビット整数（符号なし）などのデータ型の候補が含まれている。また、表示候補４１には、２進数、１０進数などのデータ型の進数表示の候補が含まれている。
【０１０２】
ユーザによって、表示候補４１の中から特定のデータ型および特定の進数表示が指定されると、生成結果出力部１８は、表示中のデバイス値を、指定されたデータ型および進数表示でグラフ４０Ｂ上に表示する。すなわち、生成結果出力部１８は、デバイス値の表示を、ユーザによって指定されたデータ型および進数表示に変更する。なお、ユーザによってデータ型および進数表示のうちの一方が指定されてもよい。
【０１０３】
また、生成結果出力部１８は、ユーザによってファンクションブロック（ＦＢ）のインスタンスが指定された場合に、指定されたＦＢのメンバのデバイス値を表示してもよい。ＦＢは制御プログラム２内のプログラム部品上に多数貼り付けが可能となっている。プログラム部品上に貼り付けられたＦＢがインスタンスである。メンバは、ＦＢでしか使用することができないラベルである。
【０１０４】
図１１は、実施の形態にかかるプログラム作成支援装置が、ユーザによって指定されたＦＢのメンバのデバイス値を表示する処理を説明するための図である。図１１に示すように、モニタ４は、プログラム表示用のウィンドウに制御プログラム２を表示し、データ解析用のウィンドウにグラフ４０Ｃを表示する。
【０１０５】
制御プログラム２には、種々のインスタンスが含まれている。図１１では、制御プログラム２にインスタンス４２が含まれている場合を示している。制御プログラム２に含まれるインスタンスでは、インスタンス毎（ラベル毎）にメンバのデバイス値が異なるので、ユーザは、データ解析用のウィンドウに表示されるグラフ４０Ｃに対し、デバイス値を表示させるインスタンスを指定する。この場合において、生成結果出力部１８は、データ解析用のウィンドウ上で右クリックなどによって特定のＦＢがユーザによって指定されると、インスタンスの候補を表示させる。
【０１０６】
生成結果出力部１８は、モニタ４が、データ解析用のウィンドウにグラフ４０Ｃを表示している場合において、ユーザによってＦＢに対応するインスタンスが指定されると、指定されたＦＢに対応するメンバ４３のデバイス値を表示させる。
【０１０７】
また、デバイス値制御部１４は、ユーザから保存要求があったデバイスの制御プログラム２内での位置情報を保存してもよい。この場合、ユーザは、デバイスの依存関係を可視化したグラフ４０Ｃ上の任意のデバイスの保存を、プログラム作成支援装置１に要求する。デバイス値制御部１４は、グラフ４０Ｃ上でユーザによって保存要求されたデバイスの制御プログラム２内での位置情報を表示情報記憶部２２に格納する。
【０１０８】
デバイス値制御部１４は、表示情報記憶部２２に位置情報が格納されているデバイスの表示要求をユーザから受け付けると、表示情報記憶部２２に格納している位置情報、すなわち表示要求のあったデバイスの制御プログラム２内での位置情報を読み出す。デバイス値制御部１４は、読み出した位置情報に基づいて、表示要求のあったデバイスの制御プログラム２内での位置をモニタ４に表示する。
【０１０９】
図１２は、実施の形態にかかるプログラム作成支援装置が、保存要求があったデバイスの制御プログラム内での位置情報を保存し、表示要求があったデバイスの制御プログラム内での位置を表示する処理を説明するための図である。
【０１１０】
図１２に示すグラフ４０Ｄには、デバイスＭ１０１６を示すブロック３１Ｈが含まれている。デバイス値制御部１４は、グラフ４０Ｄ上で、ユーザによってブロック３１Ｈが指定され、ユーザからブロック３１Ｈの制御プログラム２での位置情報を保存する要求を受け付けると（ＳＴ１）、この保存要求のあった位置情報（ここでは８６０８ステップ）を表示情報記憶部２２に格納する。
【０１１１】
デバイス値制御部１４は、モニタ４が、データ解析用のウィンドウにグラフ４０Ｄを表示している場合に、任意のタイミングで位置情報の保存要求を受け付ける。この場合において、デバイス値制御部１４は、例えば、ユーザによってブロック３１Ｈが右クリックによって指定され、ブロックの位置情報を保存するボタンがクリックされると、ブロック３１Ｈの制御プログラム２での位置情報を表示情報記憶部２２に格納する。
【０１１２】
生成結果出力部１８は、位置情報を識別する識別情報５１をグラフ４０Ｄのブックマークウィンドウに表示させる（ＳＴ２）。生成結果出力部１８は、グラフ４０Ｄ上で、ユーザによって位置情報の識別情報５１が指定されると（ＳＴ３）、表示情報記憶部２２に格納されている位置情報を読み出す。そして、生成結果出力部１８は、識別情報５１の位置情報に対応する位置を制御プログラム２上で強調表示する（ＳＴ４）。例えば、グラフ４０Ｄ上で、ユーザによって識別情報５１を示すボタンがダブルクリックされると、生成結果出力部１８は、制御プログラム２の表示領域を、識別情報５１の位置情報に対応する位置にジャンプさせる。生成結果出力部１８は、例えば、制御プログラム２上で位置情報に対応する箇所を強調表示させる。図１２では、表示要求のあったブロック３１Ｈに対応するデバイスＭ１０１６が強調表示されている場合を示している。
【０１１３】
また、デバイス値制御部１４は、ユーザによって指定された任意の時刻における任意の表示状態を、表示情報記憶部２２に保存してもよい。この場合、生成結果出力部１８は、ユーザから特定時刻における表示状態の表示要求を任意のタイミングで受け付けると、表示要求に対応する時刻の表示状態をモニタ４に表示させる。
【０１１４】
図１３は、実施の形態にかかるプログラム作成支援装置が、ユーザによって指定された時刻における表示状態を保存する処理を説明するための図である。図１３に示す表示状態５２は、ユーザによって指定された時刻Ｔ１におけるグラフ４０Ｅの表示状態である。表示状態５２には、グラフ４０Ｅで表示されている時刻Ｔ１におけるデバイス値が含まれている。
【０１１５】
デバイス値制御部１４は、ユーザによって指定された時刻Ｔ１における表示状態５２を表示情報記憶部２２に保存しておく。生成結果出力部１８は、ユーザから時刻Ｔ１における表示状態５２の表示要求を受け付けると、表示状態５２をモニタ４に表示させる。
【０１１６】
図１４は、実施の形態にかかるプログラム作成支援装置を実現するハードウェア構成例を示す図である。プログラム作成支援装置１は、入力装置３００、プロセッサ１００、メモリ２００、出力装置４００、および通信装置５００により実現することができる。プロセッサ１００の例は、ＣＰＵ（中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、ＤＳＰ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。メモリ２００の例は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）である。
【０１１７】
プログラム作成支援装置１は、プロセッサ１００が、メモリ２００で記憶されているプログラム作成支援装置１の動作を実行するための、コンピュータで実行可能な、プログラム作成支援プログラムを読み出して実行することにより実現される。プログラム作成支援装置１の動作を実行するためのプログラムであるプログラム作成支援プログラム、すなわちエンジニアリングツール１０は、プログラム作成支援装置１の手順または方法をコンピュータに実行させるものであるともいえる。
【０１１８】
プログラム作成支援装置１で実行されるプログラム作成支援プログラムは、デバイス値制御部１４と、依存関係抽出部１５と、レコーディング設定情報生成部１６と、表示時刻設定部１７と、生成結果出力部１８と、表示情報生成部１９とを含むモジュール構成となっており、これらが主記憶装置上にロードされ、これらが主記憶装置上に生成される。
【０１１９】
入力装置３００は、制御プログラム２、ログデータ情報５、リアルタイムデータ６、ユーザからの指示などを受け付けてプロセッサ１００に送る。メモリ２００は、制御プログラム２、エンジニアリングツール１０が生成したレコーディング設定情報３、ログデータ情報５、リアルタイムデータ６などを記憶する。また、図１４では図示していないが、メモリ２００は、抽出対象デバイス、依存関係などを記憶する。また、メモリ２００は、プロセッサ１００が各種処理を実行する際の一時メモリに使用される。メモリ２００は、表示情報記憶部２２、リアルタイムデータ記憶部２１などである。
【０１２０】
出力装置４００は、生成結果出力部１８が生成した表示情報をモニタ４に出力する。また、通信装置５００は、通信部２０から出力されるレコーディング設定情報３を制御装置に送信する。
【０１２１】
プログラム作成支援プログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータが読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されてもよい。また、プログラム作成支援プログラムは、インターネットなどのネットワーク経由でプログラム作成支援装置１に提供されてもよい。なお、プログラム作成支援装置１の機能について、一部を専用回路などの専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【０１２２】
このように実施の形態では、依存関係抽出部１５が、制御プログラム２に記述されているデバイス間の依存関係を抽出している。また、ログデータ入力部１１が、レコーディング設定情報３に基づいて制御装置で収集された収集対象のログデータ情報５を制御装置から取得している。また、表示情報生成部１９が、デバイス間の依存関係を可視化するとともに、デバイスに対応するデバイス値を可視化した表示情報を、依存関係およびログデータ情報５に基づいて生成し、生成結果出力部１８が、表示情報をモニタ４に表示させている。これにより、エンジニアリングツール１０は、デバイス間の依存関係を可視化した情報とともにデバイス値のログデータを提供することができる。
【０１２３】
また、レコーディング設定情報生成部１６が、ログデータ情報５の収集対象となるデバイス、および抽出された依存関係に基づいて、ログデータ情報５の収集条件を記述したレコーディング設定情報３を生成している。これにより、ユーザは、レコーディング設定情報３を生成する必要がなくなるので、レコーディング設定情報３を生成する手間を低減することが可能となる。
【０１２４】
また、リアルタイムデータ記憶部２１が、リアルタイムデータ６を記憶しておき、表示情報生成部１９が、リアルタイムデータ６を用いて、デバイスとリアルタイムデータ６との対応関係および依存関係を可視化した表示情報を生成している。そして、生成結果出力部１８が、表示情報をモニタ４に表示させている。これにより、エンジニアリングツール１０は、リアルタイムデータ６を、任意のタイミングで表示させることができる。
【０１２５】
また、生成結果出力部１８は、ユーザによって指定された時刻の表示情報を表示させている。これにより、ユーザは、所望時刻の表示情報を確認することが可能となる。
【０１２６】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１２７】
１  プログラム作成支援装置、２  制御プログラム、３  レコーディング設定情報、４  モニタ、５  ログデータ情報、６  リアルタイムデータ、１０  エンジニアリングツール、１１  ログデータ入力部、１２  リアルタイムデータ入力部、１３  書込デバイス値入力部、１４  デバイス値制御部、１５  依存関係抽出部、１６  レコーディング設定情報生成部、１７  表示時刻設定部、１８  生成結果出力部、１９  表示情報生成部、２０  通信部、２１  リアルタイムデータ記憶部、２２  表示情報記憶部、３１Ａ〜３１Ｈ，３２Ａ〜３２Ｃ  ブロック、３３，３４  プログラム部品、４０Ａ〜４０Ｅ  グラフ、４１  表示候補、４２  インスタンス、４３  メンバ、５１  識別情報、５２  表示状態、６０  シークバー、１００  プロセッサ、２００  メモリ、３００  入力装置、４００  出力装置、５００  通信装置。
【要約】
制御装置が実行する制御プログラム（２）に基づいて、制御システムの稼働時の状態を示すデータを格納するデバイスと、デバイス値とを対応付けして表示させるプログラム作成支援プログラムが、制御プログラム（２）に記述されているデバイス間の依存関係を抽出する依存関係抽出ステップと、ログデータ情報の収集条件を記述したレコーディング設定情報（３）に基づいて制御システムの稼働時に制御装置で収集されたログデータを、ログデータ情報として取得するログデータ入力ステップと、依存関係を可視化するとともに、デバイスに対応するデバイス値を可視化した表示情報を、依存関係およびログデータ情報に基づいて生成する表示情報生成ステップと、表示情報を表示させる生成結果出力ステップと、をコンピュータに実行させる。【図１】
0006854996.tif 000002
【図２】
0006854996.tif 000003
【図３】
0006854996.tif 000004
【図４】
0006854996.tif 000005
【図５】
0006854996.tif 000006
【図６】
0006854996.tif 000007
【図７】
0006854996.tif 000008
【図８】
0006854996.tif 000009
【図９】
0006854996.tif 000010
【図１０】
0006854996.tif 000011
【図１１】
0006854996.tif 000012
【図１２】
0006854996.tif 000013
【図１３】
0006854996.tif 000014
【図１４】
0006854996.tif 000015