(57)【要約】【課題】オンラインモニタを表示装置上で容易に実現できる構成を提供する。【解決手段】制御装置は、シーケンスプログラムを含む第１のユーザプログラムから生成されたネイティブコードを格納する記憶部と、記憶部に格納されたネイティブコードを実行する演算処理部とを含む。表示装置は、第１のユーザプログラムから生成され、シーケンスプログラムの回路構成を規定するシーケンス回路情報を格納する記憶部と、制御装置からネイティブコードの実行状態を示す回路出力状態を取得するとともに、シーケンス回路情報および取得した回路出力状態に基づいて、制御装置におけるシーケンスプログラムの実行状態を視覚化するモニタ機能部とを含む。【選択図】図１
2019197407.tif 000002
【特許請求の範囲】
【請求項１】
制御システムであって、
制御対象を制御するための制御装置と、
前記制御装置と接続された表示装置とを備え、
前記制御装置は、
シーケンスプログラムを含む第１のユーザプログラムから生成されたネイティブコードを格納する記憶部と、
前記記憶部に格納されたネイティブコードを実行する演算処理部とを含み、
前記表示装置は、
前記第１のユーザプログラムから生成され、前記シーケンスプログラムの回路構成を規定するシーケンス回路情報を格納する記憶部と、
前記制御装置から前記ネイティブコードの実行状態を示す回路出力状態を取得するとともに、前記シーケンス回路情報および前記取得した回路出力状態に基づいて、前記制御装置における前記シーケンスプログラムの実行状態を視覚化するモニタ機能部とを含む、制御システム。
【請求項２】
前記回路出力状態は、前記演算処理部において実行されるネイティブコードで利用されている各変数の値を含む、請求項１に記載の制御システム。
【請求項３】
前記シーケンス回路情報は、前記シーケンスプログラムに規定される回路毎に、規定されている回路部品の種類および各回路部品に対応付けられている変数の情報を含む、請求項２に記載の制御システム。
【請求項４】
前記表示装置の記憶部は、前記表示装置において画面表示を実現するための第２のユーザプログラムから生成されたオブジェクトコードをさらに格納する、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
ユーザ操作に従って、前記第１のユーザプログラムおよび前記第２のユーザプログラムを作成するとともに、前記第１のユーザプログラムから前記ネイティブコードおよび前記シーケンス回路情報の生成、ならびに、前記第２のユーザプログラムから前記オブジェクトコードを生成するサポート装置をさらに備える、請求項４に記載の制御システム。
【請求項６】
制御対象を制御するための制御装置と、前記制御装置と接続された表示装置とを含む、制御システムに向けられたサポート装置であって、
ユーザ操作に従って、前記制御装置において実行される、シーケンスプログラムを含む第１のユーザプログラムを生成する手段と、
ユーザ操作に従って、前記表示装置において画面表示を実現するための第２のユーザプログラムを生成する手段と、
前記第１のユーザプログラムから、前記制御装置の演算処理部が実行するネイティブコード、および、前記シーケンスプログラムの回路構成を規定するシーケンス回路情報を生成する手段と、
前記第２のユーザプログラムから前記表示装置の演算処理部が実行するオブジェクトコードを生成する手段と、
前記ネイティブコードを前記制御装置へ転送する手段と、
前記オブジェクトコードおよび前記シーケンス回路情報を前記表示装置へ転送する手段とを備える、サポート装置。
【請求項７】
制御対象を制御するための制御装置と、前記制御装置と接続された表示装置とを含む、制御システムに向けられたサポートプログラムであって、前記サポートプログラムはコンピュータに
ユーザ操作に従って、前記制御装置において実行される、シーケンスプログラムを含む第１のユーザプログラムを生成するステップと、
ユーザ操作に従って、前記表示装置において画面表示を実現するための第２のユーザプログラムを生成するステップと、
前記第１のユーザプログラムから、前記制御装置の演算処理部が実行するネイティブコード、および、前記シーケンスプログラムの回路構成を規定するシーケンス回路情報を生成するステップと、
前記第２のユーザプログラムから前記表示装置の演算処理部が実行するオブジェクトコードを生成するステップと、
前記ネイティブコードを前記制御装置へ転送するステップと、
前記オブジェクトコードおよび前記シーケンス回路情報を前記表示装置へ転送するステップとを実行させる、サポートプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンラインモニタの実現に向けられた制御システム、サポート装置、サポートプログラムに関する。
【背景技術】
【０００２】
ＦＡ（ファクトリオートメーション）の分野では、ＰＬＣ（プログラマブルロジックコントローラ）などの制御装置を用いて設備や機械などの制御対象を制御することが一般的である。このような制御装置には、通常、ユーザに各種情報を提示するとともに、ユーザからの操作を受付ける表示装置が接続される。制御装置により制御される制御対象の状態などが表示装置上に表示される。
【０００３】
一方、デバッグなどのために、制御装置で実行される制御対象に応じて任意に作成されるプログラム（以下、「シーケンスプログラム」とも称す。）の実行状態を確認したいというニーズがある。このようなシーケンスプログラムの実行状態を確認する機能（以下、「オンラインモニタ」とも称す。）を表示装置上で実現することも実現されている。
【０００４】
例えば、特開２００３−０４４２７７号公報（特許文献１）は、プログラムの開発環境と実行環境とを共存させてプログラム開発の効率を向上させる構成を開示する。より具体的には、制御ランタイム部を用いて、ＰＬＣと同様の実行環境をコンピュータ装置上に実現し、制御ランタイム部による実行結果をプログラマブル表示器に戻すことで、プログラマブル表示器でラダープログラムの実行状態を表示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−０４４２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の特開２００３−０４４２７７号公報（特許文献１）に開示される構成においては、ＰＬＣと同一の実行環境を実現するために、コンピュータ装置上にランタイム部を設ける必要があり、コンピュータ装置の構成が複雑化するという課題がある。
【０００７】
本発明の一つの目的は、オンラインモニタを表示装置上で容易に実現できる構成を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一つの実施の形態に係る制御システムは、制御対象を制御するための制御装置と、制御装置と接続された表示装置とを含む。制御装置は、シーケンスプログラムを含む第１のユーザプログラムから生成されたネイティブコードを格納する記憶部と、記憶部に格納されたネイティブコードを実行する演算処理部とを含む。表示装置は、第１のユーザプログラムから生成され、シーケンスプログラムの回路構成を規定するシーケンス回路情報を格納する記憶部と、制御装置からネイティブコードの実行状態を示す回路出力状態を取得するとともに、シーケンス回路情報および取得した回路出力状態に基づいて、制御装置におけるシーケンスプログラムの実行状態を視覚化するモニタ機能部とを含む。
【０００９】
この実施の形態によれば、制御装置がネイティブコードの形でユーザプログラムを実行するために、ユーザプログラムに含まれるシーケンスプログラムの回路部品を復元できない場合であっても、オンラインモニタを提供できる。
【００１０】
上述の実施の形態において、回路出力状態は、演算処理部において実行されるネイティブコードで利用されている各変数の値を含むようにしてもよい。この実施の形態によれば、制御装置は、ネイティブコードの実行結果のみを表示装置に提供すればよく、処理負荷の増大を抑制できる。
【００１１】
上述の実施の形態において、シーケンス回路情報は、シーケンスプログラムに規定される回路毎に、規定されている回路部品の種類および各回路部品に対応付けられている変数の情報を含むようにしてもよい。この実施の形態によれば、表示装置が利用可能なリソースに制限がある場合であっても、オンラインモニタに必要な解釈を容易に実現できる。
【００１２】
上述の実施の形態において、表示装置の記憶部は、表示装置において画面表示を実現するための第２のユーザプログラムから生成されたオブジェクトコードをさらに格納するようにしてもよい。この実施の形態によれば、表示装置での処理を高速化できる。
【００１３】
上述の実施の形態において、制御システムは、ユーザ操作に従って、第１のユーザプログラムおよび第２のユーザプログラムを作成するとともに、第１のユーザプログラムからネイティブコードおよびシーケンス回路情報の生成、ならびに、第２のユーザプログラムからオブジェクトコードを生成するサポート装置をさらに含むようにしてもよい。
【００１４】
この実施の形態によれば、制御装置および表示装置の別にサポート装置を用意する必要はなく、また、制御装置および表示装置を連係させて必要なデータをそれぞれの装置に提供できる。
【００１５】
本発明の別の一つの実施の形態に従えば、制御対象を制御するための制御装置と、制御装置と接続された表示装置とを含む、制御システムに向けられたサポート装置が提供される。サポート装置は、ユーザ操作に従って、制御装置において実行される、シーケンスプログラムを含む第１のユーザプログラムを生成する手段と、ユーザ操作に従って、表示装置において画面表示を実現するための第２のユーザプログラムを生成する手段と、第１のユーザプログラムから、制御装置の演算処理部が実行するネイティブコード、および、シーケンスプログラムの回路構成を規定するシーケンス回路情報を生成する手段と、第２のユーザプログラムから表示装置の演算処理部が実行するオブジェクトコードを生成する手段と、ネイティブコードを制御装置へ転送する手段と、オブジェクトコードおよびシーケンス回路情報を表示装置へ転送する手段とを含む。
【００１６】
この実施の形態によれば、制御装置がネイティブコードの形でユーザプログラムを実行するために、ユーザプログラムに含まれるシーケンスプログラムの回路部品を復元できない場合であっても、オンラインモニタを提供できる。
【００１７】
本発明のさらに別の一つの実施の形態に従えば、制御対象を制御するための制御装置と、制御装置と接続された表示装置とを含む、制御システムに向けられたサポートプログラムが提供される。サポートプログラムはコンピュータに、ユーザ操作に従って、制御装置において実行される、シーケンスプログラムを含む第１のユーザプログラムを生成するステップと、ユーザ操作に従って、表示装置において画面表示を実現するための第２のユーザプログラムを生成するステップと、第１のユーザプログラムから、制御装置の演算処理部が実行するネイティブコード、および、シーケンスプログラムの回路構成を規定するシーケンス回路情報を生成するステップと、第２のユーザプログラムから表示装置の演算処理部が実行するオブジェクトコードを生成するステップと、ネイティブコードを制御装置へ転送するステップと、オブジェクトコードおよびシーケンス回路情報を表示装置へ転送するステップとを実行させる。
【００１８】
この実施の形態によれば、制御装置がネイティブコードの形でユーザプログラムを実行するために、ユーザプログラムに含まれるシーケンスプログラムの回路部品を復元できない場合であっても、オンラインモニタを提供できる。
【発明の効果】
【００１９】
本発明によれば、オンラインモニタを表示装置上で容易に実現できる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態に係る制御システムの機能的な構成例を示す模式図である。
【図２】本実施の形態に係る制御システムの構成例を示す模式図である。
【図３】本実施の形態に係るＰＬＣのハードウェア構成の一例を示す模式図である。
【図４】本実施の形態に係るＨＭＩのハードウェア構成の一例を示す模式図である。
【図５】本実施の形態に係るサポート装置のハードウェア構成の一例を示す模式図である。
【図６】本実施の形態に係るＨＭＩにおいて提供されるオンラインモニタの一例を示す模式図である。
【図７】本発明の関連技術に係るオンラインモニタの実現例を説明するための図である。
【図８】本発明の関連技術に係るオンラインモニタを実現するための実装例を説明するための図である。
【図９】本発明の関連技術に係るオンラインモニタにおける課題を説明するための図である。
【図１０】インタプリタ方式およびコンパイラ方式の実装例の相違を説明するための図である。
【図１１】本実施の形態に係るオンラインモニタの実現例を説明するための図である。
【図１２】本実施の形態に係るオンラインモニタを実現するための処理手順の一例を説明するための図である。
【図１３】本実施の形態に係る制御システムにおいて用いられるシーケンス回路情報の一例を示す模式図である。
【図１４】本実施の形態に係るサポート装置により提供されるインターフェイス画面の一例を示す模式図である。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２２】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。図１は、本実施の形態に係る制御システム１の機能的な構成例を示す模式図である。図１を参照して、制御システム１は、制御対象を制御する制御装置と、制御装置と接続された表示装置とを含む。以下の説明においては、制御装置の典型例としてＰＬＣ１００と、表示装置の典型例としてＨＭＩ（Human Machine Interface）２００とを含む制御システム１を示す。
【００２３】
本明細書において、制御対象に応じて任意に作成されるユーザプログラム（シーケンスプログラム）の制御装置における実行状態を確認する機能を「オンラインモニタ」とも称する。本実施の形態に係る表示装置（ＨＭＩ２００）は、１または複数の制御装置（ＰＬＣ１００）から必要な情報を取得して、オンラインモニタを提供する。
【００２４】
国際規格ＩＥＣ６１１３１−３においては、ＰＬＣアプリケーションのプログラミング言語として、ラダーダイアグラム（ＬＤ：Ladder Diagram）、ファンクションブロックダイアグラム（ＦＢＤ：Function Block Diagram）、シーケンシャルファンクションチャート（ＳＦＣ：Sequential Function Chart）、インストラクションリスト（ＩＬ：Instruction List）、ストラクチャードテキスト（ＳＴ：Structured Text）の５種類を規定する。本実施の形態に係るオンラインモニタは、いずれのプログラミング言語で記述されたシーケンスプログラムであってもよい。以下では、典型例として、ラダーダイアグラムで記述されたシーケンスプログラムについて説明する。
【００２５】
本明細書においては、制御装置（ＰＬＣ１００）および表示装置（ＨＭＩ２００）において実行される、制御対象や制御システム１に応じて任意に作成されるアプリケーションプログラムを「ユーザプログラム」とも称す。制御装置（ＰＬＣ１００）で実行されるユーザプログラムは、制御対象に応じて作成されるシーケンスプログラムやモーションプログラムなどを含む。表示装置（ＨＭＩ２００）で実行されるユーザプログラムは、画面表示を実現するためのオブジェクトのレイアウト・属性や表示を制御するためのロジックなどを含む。
【００２６】
図１に示すように、ＰＬＣ１００は、ＰＬＣ用のユーザプログラム（シーケンスプログラムを含む）から生成されたネイティブコード１５４を格納する記憶部を有している。ＰＬＣ１００の演算処理部は、記憶部に格納されたネイティブコード１５４を実行する。ネイティブコード１５４の実行により、制御対象に対する制御が実現される。このネイティブコード１５４は、サポート装置３００からＰＬＣ１００に対して書込まれる。
【００２７】
また、ＨＭＩ２００は、ＨＭＩ２００において画面表示を実現するためのＨＭＩ用のユーザプログラム２５０から生成されたオブジェクトコード２５２を格納する記憶部を有している。ＨＭＩ２００の記憶部には、さらに、ＰＬＣ用のユーザプログラムから生成され、シーケンスプログラムの回路構成を規定するシーケンス回路情報１５６が格納される。
【００２８】
ＨＭＩ２００は、オンラインモニタを提供するためのオンラインモニタモジュール２６０を有している。オンラインモニタモジュール２６０は、ＰＬＣ１００からネイティブコード１５４の実行状態を示す回路出力状態を取得する。すなわち、ＨＭＩ２００（オンラインモニタモジュール２６０）は、ＰＬＣ１００との間で、回路出力状態を遣り取りする。そして、ＨＭＩ２００のオンラインモニタモジュール２６０は、シーケンス回路情報１５６および取得した回路出力状態に基づいて、ＰＬＣ１００におけるシーケンスプログラムの実行状態を視覚化する（すなわち、オンラインモニタを提供する）。
【００２９】
このような構成を採用することで、ＰＬＣ１００で実行されるシーケンスプログラムを含むユーザプログラムがネイティブコードのような、元のシーケンスプログラムを再現できない形式であっても、ＨＭＩ２００においてオンラインモニタを提供できる。
【００３０】
＜Ｂ．制御システムの構成例＞
まず、本実施の形態に係る制御システムの構成例について説明する。図２は、本実施の形態に係る制御システム１の構成例を示す模式図である。図２を参照して、制御システム１は、制御装置の典型例であるＰＬＣ１００と、表示装置の典型例であるＨＭＩ２００と、サポート装置３００とを含む。これらの装置はネットワーク２を介して互いに接続されている。
【００３１】
ＰＬＣ１００は、予め作成されたユーザプログラム（シーケンスプログラムやモーションプログラムを含む）に従って制御演算を実行することで、制御対象を制御する。ＨＭＩ２００は、予め作成されたユーザプログラムに従って、ユーザに各種情報を提示するとともに、ユーザからの操作を受付ける。サポート装置３００は、ＰＬＣ１００およびＨＭＩ２００で実行されるユーザプログラムの作成やデバッグなどの機能を提供する。
【００３２】
＜Ｃ．制御システム１に含まれる各装置のハードウェア構成＞
次に、制御システム１に含まれる各装置のハードウェア構成の一例について説明する。
【００３３】
（ｃ１：ＰＬＣ１００）
図３は、本実施の形態に係るＰＬＣ１００のハードウェア構成の一例を示す模式図である。図３を参照して、ＰＬＣ１００は、プロセッサ１０２と、メインメモリ１０４と、ストレージ１０６と、ネットワークコントローラ１０８と、フィールドネットワークコントローラ１１０，１１２と、ＵＳＢ（Universal Serial Bus）コントローラ１１４と、メモリカードインターフェイス１１６と、ローカルバスコントローラ１２０とを含む。これらのコンポーネントは、プロセッサバス１３０を介して接続されている。
【００３４】
プロセッサ１０２は、制御演算などを実行する演算処理部に相当し、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。具体的には、プロセッサ１０２は、ストレージ１０６に格納されたプログラム（一例として、システムプログラム１０６０およびネイティブコード１５４（ユーザプログラム１５０から生成））を読出して、メインメモリ１０４に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。
【００３５】
メインメモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。ストレージ１０６は、記憶部に相当し、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置などで構成される。
【００３６】
ストレージ１０６には、基本的な機能を実現するためのシステムプログラム１０６０に加えて、設備や機械などの制御対象に応じて作成されるネイティブコード１５４が格納される。
【００３７】
ネットワークコントローラ１０８は、ネットワーク２を介して、ＨＭＩ２００を含む任意の情報処理装置との間でデータを遣り取りする。フィールドネットワークコントローラ１１０，１１２は、フィールドネットワークを介して、任意のリモートＩＯデバイスや外部装置との間でデータを遣り取りする。図３には、２つのフィールドネットワークコントローラ１１０，１１２を図示するが、単一のフィールドネットワークコントローラを採用してもよい。ＵＳＢコントローラ１１４は、ＵＳＢ接続を介して、任意の外部装置などとの間でデータを遣り取りする。
【００３８】
メモリカードインターフェイス１１６は、着脱可能な記録媒体の一例であるメモリカード１１８を受付ける。メモリカードインターフェイス１１６は、メモリカード１１８に対してデータを書込み、メモリカード１１８から各種データ（ログやトレースデータなど）を読出すことが可能になっている。
【００３９】
ローカルバスコントローラ１２０は、ローカルバス１２を介して、任意のローカルＩＯユニットとの間でデータを遣り取りする。
【００４０】
図３には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、ＰＬＣ１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００４１】
（ｃ２：ＨＭＩ２００）
図４は、本実施の形態に係るＨＭＩ２００のハードウェア構成の一例を示す模式図である。図４を参照して、ＨＭＩ２００は、プロセッサ２０２と、メインメモリ２０４と、ストレージ２０６と、ネットワークコントローラ２０８と、入力部２１０と、表示部２１２と、ＵＳＢコントローラ２１４と、メモリカードインターフェイス２１６とを含む。これらのコンポーネントは、プロセッサバス２３０を介して接続されている。
【００４２】
プロセッサ２０２は、表示処理や入力処理などを実行する演算処理部に相当し、ＣＰＵやＧＰＵなどで構成される。具体的には、プロセッサ２０２は、ストレージ２０６に格納されたプログラム（一例として、システムプログラム２０６０およびオブジェクトコード２５２（ユーザプログラム２５０から生成））を読出して、メインメモリ２０４に展開して実行することで、ＰＬＣ１００に対応する表示処理および入力処理を実現する。
【００４３】
メインメモリ２０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ２０６は、記憶部に相当し、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００４４】
ストレージ２０６には、基本的な機能を実現するためのシステムプログラム２０６０に加えて、設備や機械などの制御対象に応じて作成されるオブジェクトコード２５２、ならびに、シーケンス回路情報１５６が格納される。
【００４５】
入力部２１０は、タッチパネル、マウス、キーボードなどで構成され、ユーザ操作を受付ける。表示部２１２は、液晶ディスプレイなどで構成され、プロセッサ２０２によるオブジェクトコード２５２による実行結果に応じた画像などを表示する。入力部２１０および表示部２１２が一体化して構成されてもよい。
【００４６】
ネットワークコントローラ２０８は、ネットワーク２を介して、ＰＬＣ１００を含む任意の情報処理装置との間でデータを遣り取りする。ＵＳＢコントローラ２１４は、ＵＳＢ接続を介して、任意の外部装置などとの間でデータを遣り取りする。
【００４７】
メモリカードインターフェイス２１６は、着脱可能な記録媒体の一例であるメモリカード２１８を受付ける。メモリカードインターフェイス２１６は、メモリカード２１８に対してデータを書込み、メモリカード２１８から各種データ（ログやトレースデータなど）を読出すことが可能になっている。
【００４８】
図４には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、ＨＭＩ２００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００４９】
（ｃ３：サポート装置３００）
図５は、本実施の形態に係るサポート装置３００のハードウェア構成の一例を示す模式図である。図５を参照して、サポート装置３００は、一例として、汎用的なアーキテクチャに従うコンピュータがプログラムを実行することで実現される。
【００５０】
より具体的には、サポート装置３００は、プロセッサ３０２と、メインメモリ３０４と、ストレージ３０６と、入力部３０８と、表示部３１０と、光学ドライブ３１２と、ＵＳＢコントローラ３１６とを含む。これらのコンポーネントは、プロセッサバス３１８を介して接続されている。
【００５１】
プロセッサ３０２は、ＣＰＵやＧＰＵなどで構成され、ストレージ３０６に格納されたプログラム（一例として、ＯＳ３０６０およびサポートプログラム３０６２）を読出して、メインメモリ３０４に展開して実行することで、後述するような各種処理を実現する。
【００５２】
メインメモリ３０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ３０６は、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００５３】
ストレージ３０６には、基本的な機能を実現するためのＯＳ３０６０に加えて、サポート装置３００としての機能を提供するためのサポートプログラム３０６２が格納される。サポートプログラム３０６２は、後述するように、ＰＬＣ用ツールおよびＨＭＩ用ツールとしての機能を有している。
【００５４】
入力部３０８は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。表示部３１０は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ３０２からの処理結果などを出力する。
【００５５】
ＵＳＢコントローラ３１６は、ＵＳＢ接続を介して、任意の外部装置などとの間でデータを遣り取りする。
【００５６】
サポート装置３００は、光学ドライブ３１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体３１４（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られてストレージ３０６などにインストールされる。
【００５７】
サポート装置３００で実行されるサポートプログラム３０６２などは、コンピュータ読取可能な記録媒体３１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置３００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００５８】
図５には、プロセッサ３０２がプログラムを実行することで、サポート装置３００として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００５９】
＜Ｄ．オンラインモニタ＞
次に、本実施の形態に係るＨＭＩ２００において提供されるオンラインモニタの一例について説明する。
【００６０】
図６は、本実施の形態に係るＨＭＩ２００において提供されるオンラインモニタの一例を示す模式図である。図６を参照して、ＨＭＩ２００の表示部には、対象のＰＬＣ１００で実行されるシーケンスプログラムにより規定されるシーケンス回路２７０が視覚化されて提供される。シーケンス回路２７０は、１または複数の回路部品が結合されたものであり、入力値に相当する接点および出力値に相当するコイルを含み得る。
【００６１】
図６に示すシーケンス回路２７０は、回路部品として、接点２７２およびファンクション２７３，２７４，２７５，２７６を含む。オンラインモニタにおいては、シーケンスプログラムの状態値に応じて、回路部品に対応付けて状態値表示２７１が付加される。図６に示す例では、接点２７２の直前までは回路が活性化されているものの、接点２７２自体はオフ（すなわち、活性化されていない）であることが示されている。
【００６２】
本実施の形態においては、ＰＬＣ１００と通信可能に接続されたＨＭＩ２００において、図６に示すようなオンラインモニタが提供される。
【００６３】
＜Ｅ．関連技術＞
次に、本発明の関連技術に係るオンラインモニタの実現例について説明する。
【００６４】
図７は、本発明の関連技術に係るオンラインモニタの実現例を説明するための図である。図７を参照して、本発明の関連技術においては、ＰＬＣ１００用のサポート装置４００およびＨＭＩ２００用のサポート装置５００が用意される。
【００６５】
ＰＬＣ１００用のサポート装置４００では、ＰＬＣ１００で実行されるユーザプログラム（シーケンスプログラムなど）を作成するための開発環境（以下、「ＰＬＣ用ツール」とも称す。）が提供されており、ユーザは、制御対象に応じてＰＬＣ用のユーザプログラム１５０を作成する（（１）プログラム作成）。
【００６６】
一方、ＨＭＩ２００用のサポート装置５００では、ＨＭＩ２００で実行されるユーザプログラム（画面表示を実現するためのオブジェクトのレイアウト・属性や表示を制御するためのロジックなど）を作成するための開発環境（以下、「ＨＭＩ用ツール」とも称す。）が提供されており、ユーザは、制御対象に応じてＨＭＩ用のユーザプログラム２５０を作成する（（２）プログラム作成）。
【００６７】
サポート装置４００において作成されたＰＬＣ用のユーザプログラム１５０は、ＰＬＣ１００へ転送される（（３）ユーザプログラム（中間コード）の書込み）。同様に、サポート装置５００において作成されたＨＭＩ用のユーザプログラム２５０は、ＨＭＩ２００へ転送される（（４）ユーザプログラム（オブジェクトコード）の書込み）。なお、ＨＭＩ用のユーザプログラム２５０は、サポート装置５００においてオブジェクトコードに変換されて転送されてもよい。
【００６８】
上述の（１）〜（４）は、制御システム１による処理を実現するための処理である。制御システム１における処理が実現されると、以下に示すようなオンラインモニタに係る処理が実行できる。
【００６９】
すなわち、ユーザがＨＭＩ２００に対してオンラインモニタの実行を指示すると、ＨＭＩ２００は、対象のＰＬＣ１００に対して、シーケンス回路情報を要求する（（５）シーケンス回路情報の要求）。この要求に応答して、ＰＬＣ１００は、予め格納されているシーケンスプログラムに基づいて、シーケンス回路情報を応答するとともに、シーケンスプログラムの実行状態を示す回路出力状態をＨＭＩ２００へ送信する（（６）シーケンス回路情報＋回路出力状態）。回路出力状態は、シーケンスプログラムに規定されている回路部品の状態値（オン／オフあるいは値）を含む。なお、ＨＭＩ２００からＰＬＣ１００に対するシーケンス回路情報の要求は、ＰＬＣ１００に格納されているユーザプログラムのすべてではなく、その一部のみが対象とされることもある。
【００７０】
ＨＭＩ２００は、ＰＬＣ１００からのシーケンス回路情報および回路出力状態に基づいて、シーケンス回路２７０（図６参照）を視覚化する（（７）オンラインモニタ）。
【００７１】
このような処理手順を採用することで、ＰＬＣ１００で実行されるユーザプログラムをＨＭＩ２００に格納していなくとも、ＨＭＩ２００においてオンラインモニタを実現できる。
【００７２】
＜Ｆ．関連技術における課題＞
図７に示すような本発明の関連技術に係るオンラインモニタの実現例は、ＰＬＣ１００に格納されているユーザプログラム（シーケンスプログラム）からシーケンス回路を構成する回路部品および接続関係を一意に特定できることが前提となる。
【００７３】
図８は、本発明の関連技術に係るオンラインモニタを実現するための実装例を説明するための図である。図８を参照して、本発明の関連技術においては、ＰＬＣ１００は、一種のインタプリタ方式でユーザプログラムを実行する。より具体的には、ＰＬＣ１００は、ＰＬＣ１００用のサポート装置４００から書込まれるユーザプログラムを逐次解釈してネイティブコードを生成する。図８に示す構成例においては、ユーザが作成したユーザプログラムから生成された中間コード１５２がサポート装置４００からＰＬＣ１００に書込まれる。ＰＬＣ１００は、ユーザプログラムの実行時において、サポート装置４００により書込まれた中間コード１５２を逐次解釈して、ＰＬＣ１００のプロセッサ１０２が解釈できるネイティブコード（マシン語により記述された命令）を生成することで、ユーザプログラムを実行する。
【００７４】
なお、例えば、ＩＥＣ６１１３１−３に従って記述されたユーザプログラムを逐次解釈するような実装形態を採用してもよい。
【００７５】
このような中間コード１５２は、ＩＥＣ６１１３１−３に従って記述されたユーザプログラムを予め定められた規則に従って変換したコードに相当するので、シーケンス回路と双方向に変換可能である。すなわち、中間コード１５２の各コードに対応する回路部品を一意に決定できるので、中間コード１５２から対応するシーケンス回路を復元できる。
【００７６】
ＨＭＩ２００は、ＰＬＣ１００から必要に応じて中間コード１５２を取得し、その取得した中間コード１５２に含まれる各コードに対応する回路部品からシーケンス回路を復元し、オンラインモニタを実現できる。そのため、ＨＭＩ２００用のサポート装置５００からＰＬＣ１００で実行されるユーザプログラムのシーケンス回路などをＨＭＩ２００へ書込む必要はない。
【００７７】
図９は、本発明の関連技術に係るオンラインモニタにおける課題を説明するための図である。図９を参照して、ＰＬＣ１００の実行環境によっては、ＰＬＣ１００用のサポート装置４００から、中間コード１５２ではなく、ネイティブコード１５４がＰＬＣ１００に書込まれる場合がある。すなわち、ＰＬＣ１００は、コンパイラ方式でユーザプログラムを実行することもある。
【００７８】
この場合には、サポート装置４００は、ユーザにより作成されたユーザプログラム（ＩＥＣ６１１３１−３に従って記述されたコード）をビルド処理（パース、最適化、コンパイルなどを含む）してネイティブコード１５４を生成する。ネイティブコード１５４は、ＰＬＣ１００のプロセッサ１０２により直接解釈できるため、中間コード１５２を用いる場合に比較して、処理を高速化できるという利点がある。
【００７９】
一方で、このようなネイティブコード１５４は、ＩＥＣ６１１３１−３に従って記述されたユーザプログラムを最適化した上で生成されるものであり、基本的には、シーケンス回路への逆変換は不可能である。すなわち、ネイティブコード１５４の各コードに対応する回路部品を一意に特定することはできず、ネイティブコード１５４から対応するシーケンス回路を復元できない。
【００８０】
そのため、ＨＭＩ２００は、ＰＬＣ１００からネイティブコード１５４を取得したとしても、その取得したネイティブコード１５４からシーケンス回路を復元できないため、上述したような方法でオンラインモニタを実現できない。
【００８１】
図１０は、インタプリタ方式およびコンパイラ方式の実装例の相違を説明するための図である。図１０を参照して、インタプリタ方式およびコンパイラ方式のいずれにおいても、各回路部品に対応するネイティブコードが生成されることになる。
【００８２】
インタプリタ方式においては、各回路部品に対応する中間コードが生成される。中間コードは、ＰＬＣ１００のプロセッサ１０２により直接解釈することはできないものの、回路部品には一対一で結びついている。すなわち、回路部品から中間コードへの変換は双方向の変換であり、中間コードから回路部品に逆変換することができる。そして、中間コードからネイティブコードが生成される。中間コードからネイティブコードへの変換は一方向の変換であり、基本的には、ネイティブコードから中間コードに逆変換することはできない。
【００８３】
コンパイラ方式においては、各回路部品からネイティブコードが生成される。ネイティブコードは、ＰＬＣ１００のプロセッサ１０２が直接解釈できるコードである。コンパイラ方式においては、コンパイラにより最適化などが行なわれるため、同一の回路部品から、全く同じネイティブコードが生成される保証はない。このため、ネイティブコードから確実に回路部品に戻すことができない。すなわち、回路部品からネイティブコードへの変換は一方向の変換であり、基本的には、ネイティブコードから回路部品に逆変換することはできない。
【００８４】
上述したように、図７に示す本発明の関連技術に係るオンラインモニタは、インタプリタ方式のＰＬＣ１００においては実現可能であるものの、コンパイラ方式のＰＬＣ１００においては実現が難しい。そこで、本実施の形態に係る制御システム１においては、コンパイラ方式のＰＬＣ１００に対しても、オンラインモニタを実現できる構成を提供する。
【００８５】
＜Ｇ．本実施の形態＞
次に、本実施の形態に係るオンラインモニタについて説明する。
【００８６】
（ｇ１：オンラインモニタの実現例）
図１１は、本実施の形態に係るオンラインモニタの実現例を説明するための図である。図１１を参照して、本実施の形態においては、図７に示すＰＬＣ１００用のサポート装置４００およびＨＭＩ２００用のサポート装置５００が提供するそれぞれの開発環境を提供するサポート装置３００が提供されている。すなわち、サポート装置３００は、ＰＬＣ用ツールおよびＨＭＩ用ツールを提供する統合ツールとして機能する。
【００８７】
ユーザは、サポート装置３００を操作して、制御対象に応じたＰＬＣ用のユーザプログラム１５０、および、ＨＭＩ２００で実行されるユーザプログラム２５０を作成する（（１）プログラム作成）。
【００８８】
プログラム作成が完了すると、サポート装置３００は、ユーザプログラム１５０およびユーザプログラム２５０をビルド処理して、ユーザプログラム１５０に対応するネイティブコードおよびユーザプログラム２５０に対応するオブジェクトコードを生成する（（２）ビルド処理）。このとき、サポート装置３００は、ユーザプログラム１５０からシーケンス回路情報１５６を併せて生成する。シーケンス回路情報１５６は、ＨＭＩ２００においてオンラインモニタを提供するために用いられる表示用の情報である。シーケンス回路情報１５６の詳細については、後述する。
【００８９】
サポート装置３００において作成されたユーザプログラム１５０に対応するネイティブコードはＰＬＣ１００へ転送される（（３）ユーザプログラム（ネイティブコード）の書込み）。同様に、サポート装置３００において作成された、ユーザプログラム２５０に対応するオブジェクトコード、および、ユーザプログラム１５０に対応するシーケンス回路情報１５６は、ＨＭＩ２００へ転送される（（４）ユーザプログラム（オブジェクトコード）＋シーケンス回路情報の書込み）。
【００９０】
上述の（１）〜（４）は、制御システム１による処理を実現するための処理である。このように、サポート装置３００は、ユーザ操作に従って、ＰＬＣ用のユーザプログラム１５０およびＨＭＩ用のユーザプログラム２５０を作成するとともに、ユーザプログラム１５０からネイティブコード１５４およびシーケンス回路情報１５６の生成、ならびに、ユーザプログラム２５０からオブジェクトコード２５２を生成する。
【００９１】
制御システム１における処理が実現されると、以下に示すようなオンラインモニタに係る処理が実行できる。
【００９２】
すなわち、ユーザがＨＭＩ２００に対してオンラインモニタの実行を指示すると、ＨＭＩ２００は、対象のＰＬＣ１００に対して、回路出力状態を要求する（（５）回路出力状態の要求）。この要求に応答して、ＰＬＣ１００は、実行しているネイティブコードの実行状態を示す回路出力状態をＨＭＩ２００へ送信する（（６）回路出力状態）。回路出力状態は、シーケンスプログラムに規定されている回路部品の状態値（オン／オフあるいは値）を含む。なお、ＰＬＣ１００からＨＭＩ２００に送信される回路出力状態は、ＰＬＣ１００において実行されているネイティブコードの状態値の一部のみを含むようにすることもある。
【００９３】
ＨＭＩ２００は、サポート装置３００からのシーケンス回路情報１５６、および、ＰＬＣ１００からの回路出力状態に基づいて、シーケンス回路２７０（図６参照）を視覚化し、オンラインモニタを提供する（（７）オンラインモニタ）。
【００９４】
図１１に示すように、本実施の形態においては、ＰＬＣ用ツールおよびＨＭＩ用ツールを統合したサポート装置３００を用いることで、ＨＭＩ２００用のユーザプログラム２５０をＨＭＩ２００へ書込む際に、ＰＬＣ用のユーザプログラム１５０から生成されたオンラインモニタに必要な情報を併せてＨＭＩ２００へ書込むことができる。これによって、ＰＬＣ１００にネイティブコードの形でユーザプログラム１５０が格納される場合であっても、ＨＭＩ２００においてオンラインモニタを提供できる。
【００９５】
（ｇ２：オンラインモニタの処理手順）
図１２は、本実施の形態に係るオンラインモニタを実現するための処理手順の一例を説明するための図である。図１２を参照して、統合ツールであるサポート装置３００においては、必要なデータを生成する処理が実行される。図１２に示される各ステップは、コンピュータであるサポート装置３００のプロセッサ３０２がサポートプログラム３０６２（図５など参照）を実行することで実現される。
【００９６】
具体的には、ＰＬＣ１００に関して、サポート装置３００は、ユーザ操作に従って、ＰＬＣ用のユーザプログラムを作成する（ステップＳ２）。すなわち、サポート装置３００は、ユーザ操作に従って、ＰＬＣ１００において実行される、シーケンスプログラムを含むユーザプログラム１５０を生成する。
【００９７】
続いて、サポート装置３００は、作成されたＰＬＣ用のユーザプログラムに対してビルド処理を実行し（ステップＳ４）、ユーザプログラムに対応するネイティブコードに加えて、シーケンス回路情報１５６を生成する。すなわち、サポート装置３００は、ＰＬＣ用のユーザプログラム１５０から、ＰＬＣ１００の演算処理部であるプロセッサ１０２が実行するネイティブコード１５４、および、シーケンスプログラムの回路構成を規定するシーケンス回路情報１５６を生成する。
【００９８】
そして、サポート装置３００は、生成したネイティブコードをＰＬＣ１００へ転送する（ステップＳ６）。最終的に、ＰＬＣ１００は、サポート装置３００から転送されたネイティブコードを実行する（ステップＳ８）。
【００９９】
一方、ＨＭＩ２００に関して、サポート装置３００は、ユーザ操作に従って、ＨＭＩ用のユーザプログラム２５０を作成する（ステップＳ１２）。すなわち、サポート装置３００は、ユーザ操作に従って、ＨＭＩ２００において画面表示を実現するためのユーザプログラム２５０を生成する。
【０１００】
続いて、サポート装置３００は、作成されたＨＭＩ用のユーザプログラム２５０に対してビルド処理を実行し（ステップＳ１４）、ユーザプログラムに対応するオブジェクトコードを生成する。すなわち、サポート装置３００は、ＨＭＩ用のユーザプログラム２５０からＨＭＩ２００の演算処理部であるプロセッサ２０２が実行するオブジェクトコード２５２を生成する。
【０１０１】
そして、サポート装置３００は、生成したオブジェクトコードに加えて、ステップＳ４において生成されたシーケンス回路情報１５６をＨＭＩ２００へ転送する（ステップＳ１６）。すなわち、サポート装置３００は、オブジェクトコード２５２およびシーケンス回路情報１５６をＨＭＩ２００へ転送する。
【０１０２】
最終的に、ＨＭＩ２００は、サポート装置３００から転送されたオブジェクトコード２５２を実行して画面表示を実現するとともに、ユーザ操作に応答して、シーケンス回路情報１５６に基づいてオンラインモニタを提供する（ステップＳ１８）。
【０１０３】
（ｇ３：シーケンス回路情報１５６）
本実施の形態に係るオンラインモニタにおいては、ＨＭＩ２００にシーケンス回路情報１５６を提供することで、対象のＰＬＣ１００で実行されるシーケンスプログラムの内容を示すシーケンス回路を視覚化する。
【０１０４】
シーケンス回路情報１５６は、シーケンス回路を視覚化するための情報であり、統合ツールであるサポート装置３００がシーケンス回路の情報を維持するために作成されるデータである。シーケンス回路情報１５６は、使用できるリソースに制限のあるＨＭＩであっても容易に処理できるように、コンパクトであり、かつ、解釈の処理負担が小さいフォーマットで作成されることが好ましい。
【０１０５】
図１３は、本実施の形態に係る制御システム１において用いられるシーケンス回路情報１５６の一例を示す模式図である。図１３を参照して、例えば、ＰＬＣ用のユーザプログラムの規定される回路毎に含まれる回路部品の情報が記述される。
【０１０６】
図１３には、１つの接点２７８と１つのコイル２７９とからなる回路の例を示す。この例において、シーケンス回路情報１５６の回路定義２８１は、「回路」などの種別を示す種別情報２８２と、各回路に含まれる回路部品の情報を示す回路部品情報２８３，２８４とを含む。図１３に示される回路定義２８１が、ユーザプログラムに規定される回路の数だけ繰返されることになる。
【０１０７】
このように、シーケンス回路情報１５６は、シーケンスプログラムに規定される回路毎に、規定されている回路部品の種類および各回路部品に対応付けられている変数の情報を含む。
【０１０８】
なお、図１３に示す回路定義２８１は一例であり、どのようなフォーマットを用いてもよい。また、シーケンス回路情報１５６は、ＸＭＬなどのメタ形式言語で記述されてもよい。
【０１０９】
（ｇ４：回路出力状態）
ＰＬＣ１００からＨＭＩ２００に提供される回路出力状態は、ＰＬＣ１００におけるシーケンスプログラムの実行状態を示すものである。回路出力状態は、基本的には、ＰＬＣ１００において実行されるユーザプログラムで利用されている各変数の値を含む。すなわち、回路出力状態は、ＰＬＣ１００の演算処理部であるプロセッサ１０２において実行されるネイティブコード１５４で利用されている各変数の値を含む。
【０１１０】
さらに、ＰＬＣ１００において実行されるユーザプログラムにおいてファンクションやファンクションブロックが利用されている場合には、内部変数の値を含むようにしてもよい。このとき、単なる変数の値を用いてもよいし、構造体などを用いてもよい。
【０１１１】
ＰＬＣ１００からＨＭＩ２００に提供される回路出力状態は、予め定められた周期または要求される毎に更新されるようにしてもよい。
【０１１２】
＜Ｈ．インターフェイス画面例＞
次に、本実施の形態に係るサポート装置３００により提供されるインターフェイス画面の一例について説明する。
【０１１３】
図１４は、本実施の形態に係るサポート装置３００により提供されるインターフェイス画面３６０の一例を示す模式図である。図１４には、サポート装置３００からＨＭＩ２００への転送処理を実行する段階で表示されるインターフェイス画面例を示す。
【０１１４】
図１４を参照して、インターフェイス画面３６０においては、ＨＭＩ２００への転送対象となる、プロジェクトデータ項目３６１と、設定データ項目３６２と、ユーザデータ項目３６３と、シーケンス回路情報項目３６４とを含むリストが表示されている。
【０１１５】
プロジェクトデータ３６１項目は、画面表示を実現するためのオブジェクトのレイアウト・属性や表示を制御するためのロジックなどを含む。設定データ項目３６２は、ＨＭＩ２００自体の設定値や実行環境についての設定値を含む。ユーザデータ項目３６３は、ユーザの認証情報やユーザ自身が規定する情報を含む。シーケンス回路情報項目３６４は、オンラインモニタを提供する対象となるＰＬＣ１００のユーザプログラムから生成された情報を含む。
【０１１６】
シーケンス回路情報項目３６４をＨＭＩ２００へ転送する対象となるＰＬＣ１００は、サポート装置３００が自動的に選択してもよいし、ユーザが任意に選択するようにしてもよい。
【０１１７】
ユーザが転送ボタン３６６を押下することで、サポート装置３００から対象のＨＭＩ２００に対して、選択されているデータが転送される。本実施の形態においては、ＨＭＩ２００において画面表示などを実現するためのデータに加えて、オンラインモニタを提供するためのシーケンス回路情報が転送される。
【０１１８】
＜Ｉ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
制御システム（１）であって、
制御対象を制御するための制御装置（１００）と、
前記制御装置と接続された表示装置（２００）とを備え、
前記制御装置は、
シーケンスプログラムを含む第１のユーザプログラム（１５０）から生成されたネイティブコード（１５４）を格納する記憶部（１０６）と、
前記記憶部に格納されたネイティブコードを実行する演算処理部（１０２）とを含み、
前記表示装置は、
前記第１のユーザプログラムから生成され、前記シーケンスプログラムの回路構成を規定するシーケンス回路情報（１５６）を格納する記憶部（２０６）と、
前記制御装置から前記ネイティブコードの実行状態を示す回路出力状態を取得するとともに、前記シーケンス回路情報および前記取得した回路出力状態に基づいて、前記制御装置における前記シーケンスプログラムの実行状態を視覚化するモニタ機能部（２６０）とを含む、制御システム。
［構成２］
前記回路出力状態は、前記演算処理部において実行されるネイティブコードで利用されている各変数の値を含む、構成１に記載の制御システム。
［構成３］
前記シーケンス回路情報は、前記シーケンスプログラムに規定される回路毎に、規定されている回路部品の種類および各回路部品に対応付けられている変数の情報（２８１）を含む、構成２に記載の制御システム。
［構成４］
前記表示装置の記憶部は、前記表示装置において画面表示を実現するための第２のユーザプログラム（２５０）から生成されたオブジェクトコード（２５２）をさらに格納する、構成１〜３のいずれか１項に記載の制御システム。
［構成５］
ユーザ操作に従って、前記第１のユーザプログラムおよび前記第２のユーザプログラムを作成するとともに、前記第１のユーザプログラムから前記ネイティブコードおよび前記シーケンス回路情報の生成、ならびに、前記第２のユーザプログラムから前記オブジェクトコードを生成するサポート装置（３００）をさらに備える、構成４に記載の制御システム。
［構成６］
制御対象を制御するための制御装置（１００）と、前記制御装置と接続された表示装置（２００）とを含む、制御システム（１）に向けられたサポート装置（３００）であって、
ユーザ操作に従って、前記制御装置において実行される、シーケンスプログラムを含む第１のユーザプログラム（１５０）を生成する手段（Ｓ２）と、
ユーザ操作に従って、前記表示装置において画面表示を実現するための第２のユーザプログラム（２５０）を生成する手段（Ｓ１２）と、
前記第１のユーザプログラムから、前記制御装置の演算処理部が実行するネイティブコード（１５４）、および、前記シーケンスプログラムの回路構成を規定するシーケンス回路情報（１５６）を生成する手段（Ｓ４）と、
前記第２のユーザプログラムから前記表示装置の演算処理部が実行するオブジェクトコード（２５２）を生成する手段（Ｓ１４）と、
前記ネイティブコードを前記制御装置へ転送する手段（Ｓ６）と、
前記オブジェクトコードおよび前記シーケンス回路情報を前記表示装置へ転送する手段（Ｓ８）とを備える、サポート装置。
［構成７］
制御対象を制御するための制御装置（１００）と、前記制御装置と接続された表示装置（２００）とを含む、制御システム（１）に向けられたサポートプログラム（３０６２）であって、前記サポートプログラムはコンピュータ（３００）に
ユーザ操作に従って、前記制御装置において実行される、シーケンスプログラムを含む第１のユーザプログラム（１５０）を生成するステップ（Ｓ２）と、
ユーザ操作に従って、前記表示装置において画面表示を実現するための第２のユーザプログラム（２５０）を生成するステップ（Ｓ１２）と、
前記第１のユーザプログラムから、前記制御装置の演算処理部が実行するネイティブコード（１５４）、および、前記シーケンスプログラムの回路構成を規定するシーケンス回路情報（１５６）を生成するステップ（Ｓ４）と、
前記第２のユーザプログラムから前記表示装置の演算処理部が実行するオブジェクトコード（２５２）を生成するステップ（Ｓ１４）と、
前記ネイティブコードを前記制御装置へ転送するステップ（Ｓ６）と、
前記オブジェクトコードおよび前記シーケンス回路情報を前記表示装置へ転送するステップ（Ｓ８）とを実行させる、サポートプログラム。
【０１１９】
＜Ｊ．利点＞
インタプリタ方式の制御装置のオンラインモニタを提供する場合には、制御装置が実行する中間コードなどを取得することで、シーケンス回路情報を一意に復元でき、これによって表示装置に特別な仕組みを用意することなく、オンラインモニタを提供できる。
【０１２０】
これに対して、コンパイラ方式の制御装置のオンラインモニタを提供する場合には、制御装置が実行するネイティブコードを取得したとしても、シーケンス回路情報に復元することは原則的に不可能であり、オンラインモニタの提供が難しかった。
【０１２１】
これに対して、本実施の形態に係る制御システムにおいては、ＰＬＣ用ツールおよびＨＭＩ用ツールを提供した統合ツールであるサポート装置を用いることで、表示装置へのデータ転送時に、制御装置で実行されるユーザプログラム（シーケンスプログラム）の回路情報を併せて提供することができ、これによって、ネイティブコードを格納して実行する制御装置に対しても、オンラインモニタを容易に提供できる。
【０１２２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２３】
１  制御システム、２  ネットワーク、１２  ローカルバス、１００  ＰＬＣ、１０２，２０２，３０２  プロセッサ、１０４，２０４，３０４  メインメモリ、１０６，２０６，３０６  ストレージ、１０８，２０８  ネットワークコントローラ、１１０，１１２  フィールドネットワークコントローラ、１１４，２１４，３１６  ＵＳＢコントローラ、１１６，２１６  メモリカードインターフェイス、１１８，２１８  メモリカード、１２０  ローカルバスコントローラ、１３０，２３０，３１８  プロセッサバス、１５０，２５０  ユーザプログラム、１５２  中間コード、１５４  ネイティブコード、１５６  シーケンス回路情報、２００  ＨＭＩ、２１０，３０８  入力部、２１２，３１０  表示部、２５２  オブジェクトコード、２６０  オンラインモニタモジュール、２７０  シーケンス回路、２７１  状態値表示、２７２，２７８  接点、２７３，２７４，２７５，２７６  ファンクション、２７９  コイル、２８１  回路定義、２８２  種別情報、２８３，２８４  回路部品情報、３００，４００，５００  サポート装置、３１２  光学ドライブ、３１４  記録媒体、３６０  インターフェイス画面、３６１  プロジェクトデータ項目、３６２  設定データ項目、３６３  ユーザデータ項目、３６４  シーケンス回路情報項目、３６６  転送ボタン、１０６０，２０６０  システムプログラム、３０６０  ＯＳ、３０６２  サポートプログラム。
【図１】
2019197407.tif 000003
【図２】
2019197407.tif 000004
【図３】
2019197407.tif 000005
【図４】
2019197407.tif 000006
【図５】
2019197407.tif 000007
【図６】
2019197407.tif 000008
【図７】
2019197407.tif 000009
【図８】
2019197407.tif 000010
【図９】
2019197407.tif 000011
【図１０】
2019197407.tif 000012
【図１１】
2019197407.tif 000013
【図１２】
2019197407.tif 000014
【図１３】
2019197407.tif 000015
【図１４】
2019197407.tif 000016