(57)【要約】【課題】ＰＬＣが稼働状態に移行したのちにあっても、所望の変数を自在に生成することを可能とした収集データのモニタ方法及び装置を提供する。【解決手段】１もしくは２以上の実変数を使用した演算式により定義された仮想変数を設定する第１のステップと、ＰＬＣ側のデータ収集装置から実変数データ列を読み込む第２のステップと、設定された仮想変数を定義する演算式にＰＬＣ側から読み込まれた実変数データ列を代入して仮想変数データ列を生成する第３のステップと、実変数データ列と仮想変数データ列とを内部テーブルに格納する第４のステップと、内部テーブルに格納された各実変数データ列とモニタ装置側で設定した仮想変数データ列とに基づいてモニタ装置側の画像表示器の画面上に対応する波形表示を行う第５のステップと、を具備する。【選択図】図２
2007249936.tif 000002
【特許請求の範囲】
【請求項１】
ＰＬＣ側のデータ収集ユニットと、データ収集ユニットと通信を介して結ばれたモニタ装置とを含み、
モニタ装置には、
１もしくは２以上の実変数を使用した演算式により定義された仮想変数を設定するモニタ装置側の第１の手段と、
第１の手段により設定された仮想変数に相当する演算式をデータ収集ユニットに送信するモニタ装置側の第２の手段と、
データ収集ユニットから実変数データ列及び仮想変数データ列を受信するモニタ装置側の第３の手段と、
実変数データ列と仮想変数データ列とを内部テーブルに格納するモニタ装置側の第４の手段と、
内部テーブルに格納された各実変数データ列と仮想変数データ列とに基づいてモニタ装置側の画像表示器の画面上に対応する波形表示を行うモニタ装置側の第５の手段と、が設けられており、
ＰＬＣには、
モニタ装置から設定された仮想変数に相当する演算式を受信するＰＬＣ側の第１の手段と、
ＰＬＣ側の第１の手段で受信された演算式に基づいてＰＬＣ側のメモリ内実変数とのマッピング情報を生成するＰＬＣ側の第２の手段と、
ＰＬＣ側のサイクルタイムに同期して、前記マッピング情報に基づいてＰＬＣ側のメモリから該当する実データを読み出すＰＬＣ側の第３の手段と、
ＰＬＣ側の第３の手段で読み出された実データを仮想変数を定義する演算式に代入して仮想変数データ列を生成するＰＬＣ側の第４の手段と、
ＰＬＣ側の第４の手段により生成された仮想変数データ列とＰＬＣ側のメモリから読み出された実変数データ列とをモニタ装置へと送信するＰＬＣ側の第５の手段と、が設けられている、ことを特徴とするＰＬＣのモニタシステム。
【請求項２】
ユーザプログラムを実行して制御を行うＰＬＣ側の実変数のデータを記憶するメモリから制御データを読み出すとともに、表示器の画面上に対応する波形表示を行うモニタ装置とデータ通信するデータ収集ユニットであって、
予め設定された仮想変数に相当する演算式を記憶する第１の手段と、
第１の手段に記憶した演算式に基づいて、ＰＬＣ側のメモリの実変数のマッピング情報を記憶する第２の手段と、
ＰＬＣ側のサイクルタイムに同期して、第２の手段に記憶したマッピング情報に基づいてＰＬＣ側のメモリから該当する実変数のデータを読み出すＰＬＣ側の第３の手段と、
第３の手段で読み出した実変数のデータを、第１の記憶手段に記憶した演算式に代入して仮想変数データ列を生成する第４の手段と、
第４の手段により生成された仮想変数データ列と、第２の記憶手段により読み出した実変数データ列とをモニタ装置へ送信する第５の手段と、が設けられている、ことを特徴とするデータ収集ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ収集ユニットがプログラマブル・コントローラのメモリから収集した複数の変数の各収集時点の値のそれぞれに相当する一連の時系列ビットデータを画像表示器を介してモニタするＰＬＣのモニタシステムに関する。
【背景技術】
【０００２】
プログラマブル・コントローラ（ＰＬＣ）は、制御を司るＣＰＵユニット、外部とデータ通信する通信ユニット、センサなどを接続するＩ／Ｏユニット等をバス接続して構成される。ＣＰＵユニットはマイクロプロセッサと、制御内容に応じて予め作成されたユーザプログラムを記憶したユーザメモリとを内蔵している。所定のシステムプログラムを実行することによって、Ｉ／Ｏリフレッシュ処理、ユーザプログラム実行処理、周辺サービス処理をサイクリックに実行する。この一巡実行サイクルをサイクルタイムと一般に称する。Ｉ／Ｏリフレッシュ処理とは、ＰＬＣのＣＰＵユニットがＩ／Ｏユニットとの間でバス通信を介して制御データであるＩＮデータ、ＯＵＴデータを交換する処理である。ＣＰＵユニットは制御データであるＩＮデータ、ＯＵＴデータを記憶するメモリ（例えば、入出力メモリ、データメモリ等々）を内蔵している。ところでＰＬＣに接続可能なデータ収集ユニットが従来から知られている。このデータ収集ユニットは、ＣＰＵユニットのメモリに記憶された各種の制御データ（前述のＩＮデータ、ＯＵＴデータを含む。具体的には例えば入出力信号のオンオフデータ）を周期的にかつ自動的に収集する機能を備えている。データ収集ユニットは、ＣＰＵユニットから指定周期でデータを収集し続け、時系列的な一連の制御データの変化を記憶する。なおデータ収集ユニットを「ＳＰＵ」と略称する場合もある。データ収集ユニットはＣＰＵユニットとバス接続している（特許文献１参照）。また、この種のデータ収集装置が収集した一連の制御データを表示器等のモニタ装置にてモニタすることが従来から知られている（特許文献２参照）。一連の制御データを記憶することで、例えば時系列的に変化する入出力信号のオンオフ信号（時系列ビットデータ列）を後述するモニタ装置で把握できる。
【０００３】
この種のモニタ装置では、データ収集ユニットにて収集された複数の変数のそれぞれに関する一連の時系列ビットデータに相当するパルス列波形を、画像表示器の画面上に複数行にわたり並べて表示させるのが通例である。
【０００４】
ところで、この種のデータ収集ユニットにとって収集可能であるためには、ＰＬＣにおいて制御データや変数として扱われることが必要である。さらにＣＰＵユニットに内蔵されるＩ／Ｏメモリ、データメモリに割り付けられている必要、つまりメモリの格納エリアが一義に決まっていることが必要である。したがって、例えば変数どうしの計算により求められるような特殊なデータをデータ収集ユニットにて収集したい場合には、変数を新しく設定し、ＰＬＣが変数どうしの計算を演算実行するようにユーザプログラム（例えばラダー図言語で作成されるプログラム）を追加修正するとともに、その新しい変数をＩ／Ｏメモリまたはデータメモリ内に割付ることが必要である。データ収集ユニット側でも、ＰＬＣのＣＰＵユニットのメモリの割付エリアからその新たな変数を周期的に収集するように設定し、モニタ装置がそのデータを読み込んで表示するように設定することが必要である。
【０００５】
例えば、一般に、ＰＬＣのデータメモリ内には、生産数や不良数と言ったアナログ変数が定義されているのであるが、それとは別に、良品数や良品率と言ったアナログ変数を取得しようとした場合には、ＰＬＣ固有の命令語を使用してそれらの変数に相当する演算式をＰＬＣ側で定義しなければならない。具体的な演算式を書くと「良品数＝生産数−不良数」、「良品率＝（生産数−不良数）÷生産数」となるが、これをユーザプログラムに書き加えなければならない。
【特許文献１】特開２００５−１２８７２１
【特許文献２】特開２００３−２１６５０
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、既に、ＰＬＣが運転状態に移行して正常に稼働しているときに、新たに、ユーザプログラムの追加修正等を行うことは、サイクルタイムの増加や予期せぬ誤動作の原因となることが懸念され、そのような要請はあるものの、一般には作業を躊躇することが多い。その結果、一旦、稼働状態に導入された後にあっては、モニタ装置側における使い勝手は制約を受けるのが現状である。
【０００７】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、ＰＬＣが稼働状態に移行したのちにあっても、ＰＬＣのユーザプログラムを追加変更等をすることなく、変数どうしの計算を伴なうような新たな情報を生成し、モニタ表示することを可能としたＰＬＣのモニタシステムを提供することにある。
【０００８】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【０００９】
この発明のＰＬＣのモニタシステムは、ＰＬＣ側のデータ収集ユニットと、データ収集ユニットと通信を介して結ばれたモニタ装置とを含む。
【００１０】
モニタ装置には、１もしくは２以上の実変数を使用した演算式により定義された仮想変数を設定するモニタ装置側の第１の手段と、第１の手段により設定された仮想変数に相当する演算式をデータ収集ユニットに送信するモニタ装置側の第２の手段と、データ収集ユニットから実変数データ列及び仮想変数データ列を受信するモニタ装置側の第３の手段と、実変数データ列と仮想変数データ列とを内部テーブルに格納するモニタ装置側の第４の手段と、内部テーブルに格納された各実変数データ列と仮想変数データ列とに基づいてモニタ装置側の画像表示器の画面上に対応する波形表示を行うモニタ装置側の第５の手段と、が設けられている。
【００１１】
ＰＬＣには、モニタ装置から設定された仮想変数に相当する演算式を受信するＰＬＣ側の第１の手段と、ＰＬＣ側の第１の手段で受信された演算式に基づいてＰＬＣ側のメモリ内実変数とのマッピング情報を生成するＰＬＣ側の第２の手段と、ＰＬＣ側のサイクルタイムに同期して、前記マッピング情報に基づいてＰＬＣ側のメモリから該当する実データを読み出すＰＬＣ側の第３の手段と、ＰＬＣ側の第３の手段で読み出された実データを仮想変数を定義する演算式に代入して仮想変数データ列を生成するＰＬＣ側の第４の手段と、ＰＬＣ側の第４の手段により生成された仮想変数データ列とＰＬＣ側のメモリから読み出された実変数データ列とをモニタ装置へと送信するＰＬＣ側の第５の手段と、が設けられている。
【００１２】
このような構成によれば、ＰＬＣ側の第３の手段で読み出された実データを仮想変数を定義する演算式に代入して仮想変数データ列を生成し、生成された仮想変数データ列とＰＬＣ側のメモリから読み出された実変数データ列とをモニタ装置へと送信するようにしているため、新たな変数を定義するについても、ＰＬＣ側でラダー図言語等々の固有言語を使用してメモリ割付を追加乃至変更することは不要であるから、ユーザプログラムの追加によるサイクルタイムの遅れ等が発生することを気にすることなくもモニタ対象データを拡張することができる。
【００１３】
また、この発明のデータ収集ユニットは、ユーザプログラムを実行して制御を行うＰＬＣ側の実変数のデータを記憶するメモリから制御データを読み出すとともに、表示器の画面上に対応する波形表示を行うモニタ装置とデータ通信するデータ収集ユニットであって、予め設定された仮想変数に相当する演算式を記憶する第１の手段と、第１の手段に記憶した演算式に基づいて、ＰＬＣ側のメモリの実変数のマッピング情報を記憶する第２の手段と、ＰＬＣ側のサイクルタイムに同期して、第２の手段に記憶したマッピング情報に基づいてＰＬＣ側のメモリから該当する実変数のデータを読み出すＰＬＣ側の第３の手段と、第３の手段で読み出した実変数のデータを、第１の記憶手段に記憶した演算式に代入して仮想変数データ列を生成する第４の手段と、第４の手段により生成された仮想変数データ列と、第２の記憶手段により読み出した実変数データ列とをモニタ装置へ送信する第５の手段と、が設けられている。
【００１４】
このような構成によれば、新たな変数を定義するについても、ＰＬＣ側でラダー図言語等々の固有言語を使用してメモリ割付を追加乃至変更することは不要であるから、ユーザプログラムの追加によるサイクルタイムの遅れ等が発生することを気にすることなくもモニタ対象データを拡張することができる。
【発明の効果】
【００１５】
本発明によれば、ＰＬＣ側の第３の手段で読み出された実データを仮想変数を定義する演算式に代入して仮想変数データ列を生成し、生成された仮想変数データ列とＰＬＣ側のメモリから読み出された実変数データ列とをモニタ装置へと送信するようにしているため、新たな変数を定義するについても、ＰＬＣ側でラダー図言語等々の固有言語を使用してメモリ割付を追加乃至変更することは不要であるから、ユーザプログラムの追加によるサイクルタイムの遅れ等が発生することを気にすることなくもモニタ対象データを拡張することができる。
【発明を実施するための最良の形態】
【００１６】
以下に、本発明に係るＰＬＣのモニタシステムの好適な実施の一形態を添付図面を参照しつつ詳細に説明する。
【００１７】
データ収集ユニットを含むＰＬＣシステムのハードウェア構成図の一例が図１に示されている。同図に示されるように、このＰＬＣシステムは、第１のＰＬＣ１と、第２のＰＬＣ５と、パーソナル・コンピュータ（以下、ＰＣと言う）２とを中心として構成されている。第１のＰＬＣ１とＰＣ２とは通信線９ａを介して結ばれており、第１のＰＬＣ１と第２のＰＬＣ５とは通信線９ｂを介して結ばれている。
【００１８】
第１のＰＬＣ１はビルディング・ブロック型に構成されており、この例では、制御を司るＣＰＵユニット１１と、外部とデータ通信する通信ユニット１２と、入力機器または出力機器を接続するＩ／Ｏユニット１３と、データ収集ユニット（ＳＰＵ）１４とを含んでいて、それらのユニットがバックプレインボードを介してバス接続されている。
【００１９】
ＣＰＵユニット１１は、当業者にはよく知られているように、全般の処理を実行するマイクロプロセッサと、ユーザプログラムを記憶するユーザプログラムメモリと、いわゆるＩ／Ｏデータを記憶するＩ／Ｏメモリと、データメモリとを内蔵している。そして、ＣＰＵユニット１１の内蔵マイクロプロセッサは、所定のシステムプログラムを実行することによって、Ｉ／Ｏリフレッシュ処理と、ユーザプログラム実行処理と、周辺サービス処理とをサイクリックに実行する。このとき一巡実行サイクルをサイクルタイムと一般に称する。
【００２０】
Ｉ／Ｏユニット１３は複数の入力機器、出力機器が接続されていて（図示せず）、各機器に対応するデータを記憶するメモリを備えている。そして定期的に外部センサ４から入力データ（オンオフデータであるビット変数データ、数値データであるアナログ変数データを含む）を取り込んで記憶する。また、ＣＰＵユニット１１のＩＯリフレッシュ処理により送られて来た出力データ（ユーザプログラム実行結果であるデータを含む）を外部のアクチュエータ３などに送出する。
【００２１】
ＣＰＵユニット１１におけるＩ／Ｏリフレッシュ処理において、マイクロプロセッサがＩ／Ｏユニット１３からバスを介して入力データをＩ／Ｏメモリの該当エリアに書き込む。また、マイクロプロセッサがＩ／Ｏメモリの該当エリアの出力データを、バスを介してＩ／Ｏユニット１３へ送る。ＣＰＵユニット１１におけるユーザプログラム実行処理において、マイクロプロセッサがユーザプログラムメモリに記憶されたユーザプログラムのユーザ命令を順に実行する。つまり、Ｉ／Ｏメモリに記憶した入力データの内容を参照してユーザ命令に従って演算実行し、その実行結果に基づいてメモリの出力データの内容を書き換える。
【００２２】
ＣＰＵユニット１１における周辺サービス処理においては、通信ユニット１２を介して例えば第２のＰＬＣ５と通信を行うことにより、第２のＰＬＣ５との間でＩ／Ｏデータの交換などを行う。
【００２３】
データ収集ユニット１４はプロセッサを内蔵しており、プロセッサが上述したＣＰＵユニット１１におけるＩ／Ｏリフレッシュ処理に際して、ＣＰＵユニット１からバスを介してＩ／Ｏメモリの全てのデータを読み出すと共に、これをデータ収集ユニット（ＳＰＵ）１４内のメモリに蓄積保存する。なお、全てのデータを読み出す代わりに、データ収集ユニット１４に対して読み出す対象を予め設定しておくことにより、指定されたデータのみをＣＰＵユニット１のメモリから読み出すようにしてもよい。なお、データ収集するのを、ＣＰＵユニット１のＩ／Ｏリフレッシュ処理に際して行うことに代えて、例えば周辺サービス処理に際して行うことでもよいし、ユーザプログラム実行処理の前あるいは後に別途の処理期間を設けて行うことでもよい。要するに、ＣＰＵユニット１における一巡実行サイクルごとに１回データ収集するような構成であればよい。さらに、データ収集周期をＣＰＵユニット１における一巡実行サイクルに同期せずに、ＣＰＵユニット１における複数回の実行サイクルごとにデータ収集を１回するように収集周期を長くしてもよい。
【００２４】
こうしてＣＰＵユニットの制御データはデータ収集ユニット１４によって収集され、データ収集ユニット１４のメモリ内に蓄積保存される。この収集データは、ＣＰＵユニットの制御データであり、ビット変数、アナログ変数を含むし、あるいは入力データ、出力データを含む。データ収集ユニット１４は、ＣＰＵユニット側の制御データや変数のメモリ割付情報を持っている。データ収集ユニット側に収集対象となるデータがＣＰＵユニットのどのメモリエリアに記憶されているかという情報を予め設定しておくことにより、データ収集ユニット１４は収集データをＣＰＵユニットから周期的に収集できるようになる。なおデータ収集ユニット１４にメモリ割付情報に加えてシンボル情報を登録しておくのが好ましい。シンボル情報とは、ユーザがある制御データや変数を認識あるいは特定するのを補助する情報であり、例えば「センサ４からの入力信号」である旨や「アクチュエータ３への出力信号」である旨の情報である。前述の「生産数」「不良数」もシンボル情報である。このシンボル情報は文字列で表わされる情報であり、タグ情報またはコメント（図９のコメント１３３と同視できる）と呼ばれる場合もある。そして収集データは、適当なタイミングでＰＣ２とデータ収集ユニット１４とが通信することにより、データ収集ユニット１４から読み出されて、ＰＣ２へと送り込まれる。
【００２５】
データ収集ユニットが収集するデータのシンボル情報やＣＰＵユニットのメモリ割付情報についてはＰＣ２にも予め登録しておく(なお、シンボル情報は図９のコメント１３３の表示に用いられ、メモリ割付情報は図９のアドレス１３２の表示に用いられる)。ＰＣ２は適当なタイミングでデータ収集ユニット１４と通信を行うことにより、データ収集ユニット１４から収集データとを取得する。なお、シンボル情報とメモリ割付情報とについては、予め登録することに代えて、ＰＣ２がデータ収集ユニット１４と通信することにより取得するようにしてもよい。こうして取得された取得データは、ＰＣ２のメモリ内に設けた変数テーブルへと記憶される。
【００２６】
そして、ＰＣ２は、それらの取得データに基づき、画像表示器の画面上に各制御データに対応させて、時系列的な変化をパルス列波形やアナログ波形で表示する（図９にて詳述する）。こうすることによって、ユーザは画像表示器の画面を介して、ＰＬＣ１の取り扱う制御データや各種アナログデータを視覚的にモニタすることができる。なお第１のＰＬＣ１（ＣＰＵユニット１１とも言ってもよい）が周辺サービス処理を行うことにより第２のＰＬＣ５のデータを取得し、データ収集ユニット１４がＣＰＵユニット１１を経由してＰＬＣ２のデータを収集するようにすれば、ＰＣ２にて第２のＰＬＣのデータも同様にモニタすることができるようになる。
【００２７】
データ収集ユニット１４の機能構成図が図２に示されている。同図に示されるように、データ収集ユニット１４は、ＰＬＣインタフェース１４ａと、サンプリング部１４ｂと、演算処理部１４ｃと、記憶部１４ｄと、ファイル管理部１４ｅと、ファイル書込部１４ｆと、ＰＣインタフェース１４ｇとを備えている。
【００２８】
ＰＬＣインタフェース１４ａはＰＬＣ側との接続を行うための機能を有するものであり、具体的にはＰＬＣのバックプレインバスに接続し、ＣＰＵユニット１１や他のユニットとの間でデータ通信を行う機能を有している。ＰＣインタフェース１４ｇはＰＣ側との接続を行うための機能を有するものであり、通信線９ａに接続し、ＰＣ２との間でデータ通信を行う機能を有している。
【００２９】
サンプリング部１４ｂはＰＬＣインタフェース１４ａを介してＰＬＣ１のＣＰＵユニット１１にアクセスすることにより、そのＣＰＵユニット１１の内部のＩ／Ｏメモリやデータメモリからあらかじめマッピングされたデータを周期的かつ自動的にサンプリングする機能を有するものである。
【００３０】
こうしてサンプリングされたデータのうちで、ＰＬＣ側の変数（実変数）に関するデータについてはそのまま記憶部１４ｄへと送られる。これに対し、仮想変数に関するデータについては、あらかじめ指定された演算式に従って演算処理部１４ｃが実変数を代入して演算処理を行い、その演算結果が記憶部１４ｄへと送られる。
【００３１】
記憶部１４ｄに保存された実変数並びに仮想変数のそれぞれに相当するデータは、ファイル管理部１４ｅ及びファイル書込部１４ｆの作用で、ＰＣインタフェース１４ｇを介して、ＰＣ２側へと送信される。このように、本発明のデータ収集ユニットにあっては、サンプリング部１４ｂにてサンプルされたデータは、実変数に関するデータとしてそのまま記憶部１４ｄに格納される。また、仮想変数を求めるのに用いる対象となる実変数データについても、単に収集するだけでよい実変数と同様に記憶部１４ｄにいったん格納し、仮想変数を求めるのに必要な際に演算処理部１４ｃが記憶部１４ｄから読み出す構成としている。なお、仮想変数を求めるのに用いるだけの実変数は、記憶部１４ｄに格納することなく、演算処理部１４ｃの内部バッファ等に一時記憶し、所定の演算処理をする際に直接用いるような構成とすることもできる。演算処理した結果である仮想変数は記憶部１４ｄに書き込まれる。
【００３２】
その後、記憶部１４ｄに格納された実変数並びに仮想変数に対応するデータは、ファイル管理部１４ｅ並びにファイル書込部１４ｆの作用によって、あたかも全て実変数であるかのごとくして、ＰＣインタフェース１４ｇを介してＰＣ２側へと送信されるのである。
【００３３】
モニタ装置２側で実行される仮想変数設定処理のフローチャートが図２に、また仮想変数設定画面のイメージ図が図６にそれぞれ示されている。この一連の処理によって仮想変数に関する演算式がプログラミングされ、その演算式はデータ収集ユニットへ送信されデータ収集ユニットの記憶部１４ｄに記憶される。
【００３４】
図３のフローチャートに示されるように、仮想変数の設定処理においては、まず所望の仮想変数の『名称』及び『データ型』を設定する（ステップ３０１）。この設定操作は、図９に示されるように、仮想変数設定画面に従って行われる。
【００３５】
図９の仮想変数設定画面は、ＰＣ２の画像表示器の画面上に表示される。この仮想変数設定画面には、図９に示されるように、仮想変数の『名前』を表示するための名前表示領域１０１と、仮想変数の『データ型』を表示するためのデータ型表示領域１０２と、仮想変数の『演算式』を定義するための演算式表示領域１０３と、仮想変数の設定に使用可能な変数（ビット変数、アナログ変数）及び仮想変数の一覧をメニュー表示可能な変数一覧表示領域１０４と、仮想変数の設定に必要な各種操作キーを表示させた操作キー表示領域１０５と、ＯＫボタン１０６及びキャンセルボタン１０７とが表示されている。
【００３６】
変数一覧表示領域１０４には、各変数並びに仮想変数に対応する『データ型』、『アドレス』、『説明』（変数の意味内容を示す文字列）とが表示される。のちに、図２のフローチャートを参照しつつ詳述するように、この変数一覧表示領域１０４には、ユーザの設定した『データ型』に応じて最適なメニュー表示が行われる。
【００３７】
また、操作キー表示領域１０５には、バックキー１０５ａ、クリアキー１０５ｂ、数値キー１０５ｃ、数値演算子キー１０５ｄ、論理演算子キー１０５ｅ、論理値キー１０５ｆが含まれている。
【００３８】
従って、この仮想変数設定画面を見ながら、仮想変数を設定しようとするユーザは、まず、パソコンのワープロ機能を利用して、名前表示領域１０１及びデータ型表示領域１０２のそれぞれに、該当する仮想変数の名前（例えば、『稼働時間』）及びデータ型（例えば『ＲＥＡＬ』など）を入力する。しかる後、変数一覧表示領域１０４内においてカーソルを上下して所望の変数あるいは仮想変数を選択し、同時に操作キー表示領域１０５に表示された各種のキー１０５ａ〜１０５ｆを操作することにより、所望の仮想変数に相当する演算式を作成して、これを演算式表示領域１０３に表示させる。しかる後、ＯＫボタン１０６を操作するなどによって、演算式表示領域１０３の内容で定義された仮想変数『稼働時間』はＰＣのメモリ内所定エリアに格納される。
【００３９】
このとき、図３のフローチャートに示されるように、オペレータが『データ型』を設定すると、そのデータ型が『ビット型』（オンオフ信号）であれば、変数一覧表示領域１０４に表示される変数は全てビット型とされ（ステップ３０３）、以後論理演算式１０５ｅと論理値キー１０５ｆとを操作しつつ、所望の演算式を作成して、これをＰＣ内メモリの所定エリアへ登録することができる（ステップ３０４）。
【００４０】
これに対して、ユーザが設定した『データ型』が『ビット型』でないと判定されれば（ステップ３０２ＮＯ）、変数一覧表示領域１０４に表示される変数は全て『変数型』とされる。そのため、ユーザは、数値キー１０５ｃと数値演算式１０５ｄとを操作しつつ四則演算式を生成して、これをＰＣ内メモリの所定エリアに登録することができる（ステップ３０６）。
【００４１】
このようにして、仮想変数設定処理が完了すると、こうして得られた各仮想変数を規定する演算式を含む設定情報はＰＬＣ側のデータ収集ユニット１４へと送信される（ステップ３０７）。設定情報はファイル形式にすると好都合である。データ収集ユニット１４はその設定ファイルをＰＣインタフェース１４ｇ経由で受け取り、ファイル書込部１４ｆの制御により記憶部１４ｄに記憶する。データ収集ユニット１４が設定ファイルを記憶した後であれば、ＰＣ２内メモリに登録した演算式やその他の設定情報を消去してもよい。なお、この一連の設定をＰＣ２に代えて別の設定ツール装置（図示せず）で行うようにしてもよい。
【００４２】
データ収集のために選択可能な仮想変数一覧画面のイメージ図が図１１に示されている。このように、ＰＣ２の画像表示器の画面上には、所定の表示モードに設定することにより、仮想変数一覧画面を表示させることができる。なお、演算式を登録した後、演算式をＰＣ２内のメモリに登録したままであれば、ＰＣ２内のメモリから演算式の情報を読み出してきて再度表示することもできる。ＰＣ２内のメモリから演算式の情報を消去した場合には、データ収集ユニットから演算式のデータを読み出して表示すればよい。この一覧画面を観察すれば、選択可能な仮想変数の『名前』、『データ型』、『演算式』をオペレータは認識できる。また、この一覧画面に基づいて表示器に表示したい所望の仮想変数を任意に選択設定するようにしてもよい。なお、この一連の表示動作についてもＰＣ２に代えて別の設定ツール装置（図示せず）で行うようにしてもよい。
【００４３】
収集設定画面のイメージ図の一例が図１０に示されている。同図に示されるように、表示モードを所定のモードに設定することにより、ＰＣ２の画像表示器の画面上には、図１０に示される収集設定画面を表示させることができる。この収集設定画面には、データ収集対象として選択された実変数のみならず任意の仮想変数を含ませることができる。なお、この一連の表示動作についてもＰＣ２に代えて別の設定ツール装置（図示せず）で行うようにしてもよい。図１０の例にあっては、『良品数』、『良品率』は仮想変数に相当する。
【００４４】
そして、こうして選択設定された仮想変数は、データ収集ユニットにて演算して求められるので、モニタ処理においてあたかもＰＬＣ側において新たに変数をラダー図言語を用いて設定したかのように、その演算式で示される仮想変数を取り扱うことができる。
【００４５】
次に、データ収集ユニット（ＳＰＵ）１４の側で行われる収集処理全体を示すフローチャートが図６に示されている。同図において処理が開始されると、まず、ファイル管理部１４ｅを介して記憶部１４ｄから設定情報（演算式を含む）の読み出しが行われる（ステップ６０１）。
【００４６】
設定情報読み出し処理の詳細フローチャートが図７に示されている。同図に示されるように、この演算式読み出し処理においては、まず、設定ファイル（図１０に示される収集設定画面、図１１に示される仮想変数一覧画面に相当）から仮想変数を読み出す（ステップ４０１）。
【００４７】
続いて、読み出された仮想変数の演算式の入れ子処理を分解する（ステップ７０２）。ここで、仮想変数に相当する各演算式は演算式記憶テーブルに格納されている。
【００４８】
図５に示されるように、実ＩＯ値、仮想変数のそれぞれにはポインタＰ（ｎ）が付されている。例えば、実ＩＯ値Ａのポインタはｐ１、実ＩＯ値Ｂのポインタはｐ２、・・・と言ったような具合である。また、各仮想変数は、それら実ＩＯ値を示すポインタを利用して表されている。例えば、仮想変数Ａにはポインタｐ１１が付されており、この仮想変数Ａは実ＩＯ値Ｂを示すポインタｐ２と実ＩＯ値Ｈを示すポインタｐ８との加算結果（つまり加算式）として表現されている。同様に、仮想変数Ｃにはポインタｐ３１が付されており、この仮想変数Ｃを求める式は仮想変数Ａを示すポインタｐ１１と仮想変数Ｂを示すポインタｐ２１との積として表現されている。従って、ステップ４０２の演算式の入れ子処理を分解するとは、図５の演算式記憶テーブルにおけるポインタのかかり具合を分解することを意味している。
【００４９】
続いて、演算式の処理順をソートする処理が実行される（ステップ７０３）。このソート処理は、演算式の入れ子は演算のしやすさを考慮して、後の演算に用いる変数についての演算処理を先に済ませておくような処理順にするようにソートされる。
【００５０】
続いて、以上のソート結果に基づき、演算処理の最適化ルーチンが作成される（ステップ７０４）。ここで、『最適化ルーチン』とは、各演算式の中で同じ演算式（例えば、Ａ＋Ｂ−Ｃ）がある場合、それを別変数として登録し、各演算式で再利用することで処理時間を短縮するといったことを意味している。
【００５１】
例えば、Ｘ＝Ａ＋Ｂ−Ｃ＋Ｄ−Ｅの式と、Ｙ＝Ｇ−Ｈ＋Ａ＋Ｂ−Ｃ＋Ｆの式とがあったとする。２つの式の中で同じ演算式（共通する式）はＡ＋Ｂ−Ｃであるから、それを別の変数Ｚとおき、
Ｘ＝Ａ＋Ｂ−Ｃ＋Ｄ−Ｅ    →  Ｘ＝変数Ｚ＋Ｄ−Ｅ
Ｙ＝Ｇ−Ｈ＋Ａ＋Ｂ−Ｃ＋Ｆ  →  Ｙ＝Ｇ−Ｈ＋変数Ｚ＋Ｆ
として最適化をはかる。
【００５２】
続くステップ６０２においては、読み出しデータを特定するためのマッピング情報をＰＬＣ（ＣＰＵユニット）へ通知する（ステップ６０２）。
【００５３】
以後、データ収集ユニット（ＳＰＵ）１４の側では、ＰＬＣ（ＣＰＵ）からサイクルタイム毎の割込が到来するのを待機する状態となる（ステップ６０３）。この状態において、割込が発生すると（ステップ６０３ＹＥＳ）、データ収集ユニット（ＳＰＵ）１４は、サンプリング部１４ｂ、ＰＬＣインタフェース１４ａを通じて、各仮想変数を定義する実データを格納するＰＬＣのマッピングエリアから該当するデータを読み出す（ステップ６０４）。読み出したデータは記憶部１４ｄに格納する。なお、ステップ６０３については、前述の処理内容に代えて、データ収集ユニットにてデータを収集するサンプリング周期ごとに自ら割込みタイミングを発生し、自らの割込みによってＣＰＵユニットからデータ読出すような処理にしてもよい。続いて、演算処理部１４ｃは各仮想変数に対応してあらかじめ設定された演算式に基づき、収集したデータの値を演算式に代入する等の演算処理を実行し、仮想変数の値を求める（ステップ６０５）。
【００５４】
次いで、こうして求められた演算結果は、データ収集ユニット（ＳＰＵ）１４の記憶部１４ｄ内の所定仮想変数エリアに格納される（ステップ６０６）。その後、仮想変数エリアを含む収集エリアをサンプリングし（ステップ６０７）、収集データをメモリ内の所定ファイルへと保存する（ステップ６０８）。ステップ６０７、６０８のファイル保存処理は、サンプリング毎におこなってもよいし、複数のサンプリング周期にまたがってまとめてファイル保存してもよい。
【００５５】
こうしてファイルに保存された収集データ（実変数のデータ）および演算結果（仮想変数のデータ）は、適当なタイミングで、ＰＣ２とデータ収集ユニット１４とが通信を行うことにより、ＰＣ２の側へと伝送され、先に述べたようにＰＣ２のメモリ内の内部テーブルに格納されるのである。
【００５６】
メモリマッピングと収集方式との関係を示す概念図が図８に示されている。同図に示されるように、ＣＰＵ１１は所定のサイクルタイムをもって、Ｉ／Ｏリフレッシュ処理、ユーザプログラム実行処理、周辺サービス処理をサイクリックに実行している。
【００５７】
そして、データ収集ユニット１４は、ＣＰＵユニット１１の毎サイクルタイムごとに、マッピング情報で指定された変数データ（オンオフデータであるビット変数データ、数値データであるアナログ変数データ）を収集し、実Ｉ／Ｏ変数エリアへと書き込む。
【００５８】
一方、データ収集ユニット（ＳＰＵ）１４の側では、毎サイクルタイムに同期して、あらかじめ設定された演算式に従い、仮想変数の値を実変数の値に基づき算出し、これをデータ収集ユニット（ＳＰＵ）１４のメモリ内の仮想変数エリアへと書き込む。
【００５９】
一方、これとは別に、それぞれ独立したサンプリング周期（ＣＰＵユニットのサイクルタイムに同期したサンプリング周期よりも長い周期）を有する３種類の収集処理（収集Ａ，収集Ｂ，収集Ｃ）が用意されており、それらの収集処理によって、ＣＰＵユニット側の実変数エリアの実変数が独立して収集され、データ収集ユニット１４の実変数エリアに格納される。そして実変数を演算式に代入することによって仮想変数が求められ、データ収集ユニット１４の仮想変数エリアに格納される。これは、収集するデータの中には、ＣＰＵユニットのサイクルタイムに同期する短いサンプリング周期でデータを監視したいものや、ＣＰＵユニットのサイクルタイムよりも長いサンプリング周期（例えば１００ｍｓ）でデータを監視したいものや、さらに長いサンプリング周期（１ｓ）でデータを監視したいものが混在する場合があり、それに対応できるようにしたものである。
【００６０】
こうして収集された実変数のデータと演算式で求められた仮想変数とはファイルへと保存され、必要に応じて、ＰＣ２の側へと転送される。しかる後、ＰＣ２の側では、実変数並びに仮想変数に相当するデータ列に基づき、画像表示器の画面上に、図１２に示されるように、波形図を複数行にわたって表示させることができ、これにより各制御対象機器に則した適切な監視項目に従ったモニタが可能となる。
【００６１】
次にモニタ処理について説明する。モニタ処理全体のゼネラルフローチャートが図３に示されている。
【００６２】
同図において、処理が開始されると、まず、演算式の読み出し処理が実行される（ステップ３０１）。続くステップ３０２においては、ＰＬＣ１のデータ収集ユニット（ＳＰＵ）１４から読み出して内部テーブルあるいはデータベースに格納された各変数データの読み出しが行われる。
【００６３】
モニタ装置２の側で実行されるモニタ処理全体のゼネラルフローチャートが図４に示されている。同図に示されるように、モニタ処理が開始されると、まず、データ収集ユニット（ＳＰＵ）１４と通信を行うことにより、データ収集ユニット（ＳＰＵ）１４の記憶部１４ｄから該当するデータ（実変数、仮想変数を含む）を読み出す処理が実行される（ステップ４０１）。この処理は、ＰＣ２がデータ収集ユニット１４にデータ転送要求をし、その返信を受信する構成でもよいし、データ収集ユニット１４が独自にデータ送信をし、それを受信する構成でもよい。
【００６４】
続いて、ＰＬＣ１のデータ収集ユニット（ＳＰＵ）１４から読み出されたデータは、ＰＣ２のメモリ内の内部テーブルに格納される（ステップ４０２）。続いて、内部テーブルに格納されたデータ（実変数及び仮想変数を含む）は、ＰＣ２内部のプロセッサの処理によってＰＣ２の画像表示器の画面１００上に表示される。
【００６５】
このときの、モニタ画面全体のイメージ図が図１２に示されている。同図に示されるように、モニタ画面１００の全体は、ビット変数波形表示領域１１０と、アナログ変数波形表示領域１２０と、ビット変数関連情報表示領域１３０と、アナログ変数関連情報表示領域１４０とを含んでいる。
【００６６】
ビット変数波形表示領域１１０には、Ｌ１〜Ｌ１６に対応する表示行が設定されており、各表示行には１６個のビット変数のそれぞれに対応するデータ列に相当するパルス列波形が表示可能となされている。一方、アナログ変数波形表示領域１２０にも、所定個数のアナログ変数のそれぞれに相当するアナログ変数波形がそれぞれ固有の色を有する線で描かれている。
【００６７】
また、ビット変数関連情報表示領域１３０には、各表示行をアクティブとするかノンアクティブとするかを設定するチェックボックス列１３１と、各表示行に対応する変数色を表す色ボックス列１３２と、各変数に対応するアドレス又はコメントを択一的に表示可能なアドレス／コメント表示列１３３と、各表示行Ｌ１〜Ｌ１６においてカーソル線１１１が指し示す時点のオンオフ状態を２色の色で示すオンオフ色ボックス列１３４と、同様にオンオフ状態をＯＮ／ＯＦＦの何れかで示すＯＮ／ＯＦＦ文字列１３５と、カーソル線１１１が指し示すオンパルスまたはオフパルスのオン時間またはオフ時間を表示するＯＮ／ＯＦＦ時間列１３６が設けられている。
【００６８】
同様にして、アナログ変数関連情報表示領域１４０には、各アナログ変数の表示をアクティブまたはノンアクティブの何れかに設定するチェックボックス列１４１と、各変数の線色を示す色ボックス列１４２と、各変数の説明（コメント）を表示するためのコメント列１４３と、カーソル線１１１が指し示す時点における各変数の値を示す数値ボックス列１４４とが設けられている。
【００６９】
そして、特にこの発明と関連して、『良品数』および『良品率』に対応する仮想変数がコメント列に表示されており、これに対応してアナログ変数波形表示領域１２０には、生産数に対応する波形１２１と、良品数に対応する波形１２２と、不良数に対応する波形１２３とが表示されている。波形１２２の良品数は、ＰＣ２にて演算式＝生産数−不良数で求めた値である。これらの波形で示されるように、生産数と不良数と良品数の関係の推移を観察することができる。なお、仮想変数の良品率については、演算式＝（生産数−不良数）÷生産数で求められる値である。アナログ変数波形表示領域１２０に表示する場合は、縦軸に率をとり、最下点を０％、最高点を１００％とするとよい。
【００７０】
言うまでもないが、この仮想変数データは、ＰＣ２の側で独自に生成したものであって、ＰＬＣ１の側のメモリには存在しない。またＰＣ２側で演算して求めたものではない。このように、本発明によれば、あたかもＰＬＣ１側においてラダー図言語などで変数を新たに設定したかのごとく、仮想変数データを取り扱うことができるから、様々な仮想変数を設定してはその時間的推移をモニタ画面を介して観察することにより、生産設備のメンテナンスや故障原因分析に最適な仮想変数を導くことが可能となる。
【産業上の利用可能性】
【００７１】
本発明によれば、ＰＬＣ側の第３の手段で読み出された実データを仮想変数を定義する演算式に代入して仮想変数データ列を生成し、生成された仮想変数データ列とＰＬＣ側のメモリから読み出された実変数データ列とをモニタ装置へと送信するようにしているため、新たな変数を定義するについても、ＰＬＣ側でラダー図言語等々の固有言語を使用してメモリ割付を追加乃至変更することは不要であるから、ユーザプログラムの追加によるサイクルタイムの遅れ等が発生することを気にすることなくもモニタ対象データを拡張することができる。
【図面の簡単な説明】
【００７２】
【図１】データ収集ユニットを含むＰＬＣシステムのハードウェア構成図である。
【図２】データ収集ユニットの機能構成図である。
【図３】仮想変数設定処理のフローチャートである。
【図４】モニタ処理全体のゼネラルフローチャートである。
【図５】演算式記憶テーブルの構成図である。
【図６】収集処理全体を示すフローチャートである。
【図７】設定情報読出処理の詳細フローチャートである。
【図８】メモリマッピングと収集方式との関係を示す概念図である。
【図９】仮想変数設定画面のイメージ図である。
【図１０】収集画面のイメージ図である。
【図１１】仮想変数一覧画面のイメージ図である。
【図１２】モニタ画面全体のイメージ図である。
【符号の説明】
【００７３】
１      第１のＰＬＣ
２      ＰＣ
３      アクチュエータ
４      センサ
５      第２のＰＬＣ
６      アナログＩ／Ｏユニット
７      デジタルＩ／Ｏユニット
１１    ＣＰＵユニット
１２    通信ユニット
１３    Ｉ／Ｏユニット
１４    データ収集ユニット（ＳＰＵ）
１４ａ  ＰＬＣインタフェース
１４ｂ  サンプリング部
１４ｃ  演算処理部
１４ｄ  記憶部
１４ｅ  ファイル管理部
１４ｆ  ファイル書込部
１４ｇ  ＰＣインタフェース
５１    ＣＰＵユニット
５２    通信ユニット
５３    Ｉ／Ｏユニット
１００  表示画面
１０１  名前表示領域
１０２  データ型表示領域
１０３  演算式表示領域
１０４  変数一覧表示領域
１０５  操作キー表示領域
１０６  ＯＫボタン
１０７  キャンセルボタン
１１０  ビット変数波形表示領域
１２０  アナログ変数波形表示領域
１３０  ビット変数関連情報表示領域
１４０  アナログ変数関連情報表示領域
【図１】
2007249936.tif 000003
【図２】
2007249936.tif 000004
【図３】
2007249936.tif 000005
【図４】
2007249936.tif 000006
【図５】
2007249936.tif 000007
【図６】
2007249936.tif 000008
【図７】
2007249936.tif 000009
【図８】
2007249936.tif 000010
【図９】
2007249936.tif 000011
【図１０】
2007249936.tif 000012
【図１１】
2007249936.tif 000013
【図１２】
2007249936.tif 000014