この発明は、マン・マシン・インターフェイス機器と外部機器とのデータ通信に関するものであり、特にその通信処理を含む動作プログラム開発の容易化に関するものである。
プログラマブル・ロジック・コントローラ(PLC)、コンピュータ制御による工作機械(NC)、ロボットなどの外部機器に制御指示を与えたり、外部機器のデータを表示したりするために、マン・マシン・インターフェイス機器が用いられている。このマン・マシン・インターフェイス機器の一つとしてプログラマブル表示器がある。
プログラマブル表示器は表示やボタンなどの汎用性が高いが、その反面、外部機器とデータのやりとり(通信)を行うためのインターフェイス・プログラムを用意しなければならない。このインターフェイス・プログラムの作成は必ずしも容易ではなく、従来、様々な工夫がなされている。
特許文献1には、予め複数のPLCに対するインターフェイス・プログラムを作成支援装置に用意しておき、ユーザがこれらインターフェイス・プログラムを選択し、作成支援装置からプログラマブル表示器に転送して使用するものが開示されている。ユーザは、PLCの機種に対応するインターフェイス・プログラムを選択するだけでよいという利点がある。
特許文献2には、通信プロトコルを自動解析して、インターフェイス・プログラムを生成する作成装置が開示されている。ユーザは、PLCのプロトコルなどを知らなくとも、インターフェイス・プログラムを作成できるという利点がある。
特許文献3には、プロトコルマクロにて記述した、定数および変数について、アドレスが自動的に割り当てられるプロトコル作成方法が開示されている。プロトコルマクロを効率的に作成できるという利点がある。
しかしながら、上記の従来技術には次のような問題があった。
特許文献1のものでは、予め登録されていないPLCについては、新たにインターフェイス・プログラムを作成しなければならないという問題があった。
特許文献2のものでは、一つのフレームによって各命令が構成されるような単純なプロトコルについては対応できるが、複数フレームによってマクロ命令が構成されるような場合や、分岐などがある複雑なプログラムについては、対応することができなかった。
特許文献3のものでは、アドレスを自動的に割り当てることはできるものの、PLCの機種に応じてインターフェイス・プログラムを自動的に生成するものではなかった。
この発明は上記のような問題点を解決して、PLC等の外部機器の機種を問わずに、インターフェイス・プログラムの作成が容易なマン・マシン・インターフェイス機器および作画装置を提供することを目的とする。
(1)この発明の一側面によるマン・マシン・インターフェイス機器は、デバイスを有する外部機器とデータ通信するマン・マシン・インターフェイス機器であって、外部機器との通信の基本処理を行うインターフェイス基本コマンドと、外部機器のデバイスの種類毎に設けられ少なくともデータ桁数、アドレス桁数、種別コードを含むデバイス情報データと、少なくともアドレスおよびデータのデータ形式を含む通信コマンド共通属性データとを記録した記録部と、ユーザによって生成され前記記録部に記録された送受信命令を含む動作プログラムを解釈して、外部機器との通信を含む処理を実行する処理手段を備えたマン・マシン・インターフェイス機器であって、前記処理手段は、前記インターフェイス基本コマンドに従って、送受信命令に記述されたデバイスに対応するデバイス情報データと通信コマンド共通属性データに基づいて外部機器と通信する通信手段を備えることを特徴としている。
したがって、インターフェイス基本コマンドおよび通信コマンド共通属性データとともに、外部機器のデバイス毎に設けられたデバイス情報データに基づいて、外部機器とのデータのやりとりが実現され汎用性が高い。また、これら、通信コマンド共通属性データ、デバイス情報データを設けておけば、外部機器とのインターフェイスのための動作プログラムを、外部機器の機種への依存性を小さくして作成することができる。
(2)この発明の一側面によるマン・マシン・インターフェイス機器は、通信手段が、受信命令の場合は、受信命令に記述されているデバイスとデバイス情報データと通信コマンド共通属性データとフレームフォーマットとに基づいて受信したフレームを解析し、送信命令の場合は、送信命令に記述されているデバイスのデータをデバイステーブルから取得し、デバイス情報データと通信コマンド共通属性データとフレームフォーマットとに基づいてフレームを生成して外部機器に送信することを特徴としている。
したがって、外部機器の機種に拘わらず、データの送受信を行うことが可能となる。
(3)この発明の一側面によるマン・マシン・インターフェイス機器は、マン・マシン・インターフェイス機器のプロジェクトデータを生成して出力する作画装置であって、ユーザによって入力され、あるいは予め用意された、外部機器との通信の基本処理を行うインターフェイス基本コマンドを記録する記録部と、外部機器との間でのデータの送受信を含む命令を備えて構成される動作プログラムを、ユーザからの入力に応じて生成する生成手段と、外部機器のデバイスの種類毎に少なくともデータ桁数、アドレス桁数、種別コードを含むデバイス情報データおよび少なくともアドレスおよびデータのデータ形式を含む通信コマンド共通属性データをユーザが入力するための入力手段と、インターフェイス基本コマンドとデバイス情報データと通信コマンド共通属性データと動作プログラムとを含むプロジェクトデータを出力する出力手段とを備えている。
したがって、外部機器の機種に依存するインターフェイス基本コマンド、デバイス情報データ、通信コマンド共通属性データと、外部機器の機種依存性の小さい動作プログラムとに分離することによって、異なる機種の外部機器への対応が容易となる。すなわち、一旦、インターフェイス基本コマンド、デバイス情報データ、通信コマンド共通属性データを記憶しておけば、外部機器の機種依存性の小さい動作プログラムを生成することで簡単にインターフェイスを実現できる。また、インターフェイス基本コマンド、デバイス情報データ、通信コマンド共通属性データを用意すれば、作成した動作プログラムを他の機種の外部機器にもそのまま、あるいは、わずかな修正で用いることができる。
この発明において「マン・マシン・インターフェイス機器」とは、機械と人間とのインターフェイスをとるための機器をいい、プログラマブル表示器などがこれに該当する。
「プログラマブル表示器」とは、少なくとも工作機械(NC)などの状態を確認することのできる装置をいい、さらに工作機械などに指令を与えるようになっていてもよい。また、工作機械だけでなく、PLC、エレベータ運行制御器、ロボットなどを対象としてもよい。
「記録部」とは、少なくともデバイス情報データを記録することのできるものをいい、メモリ、ハードディスク、CD−ROMなどの形式を問わない。実施形態では、P−ROM30やメモリ28がこれに該当する。
「通信手段」とは、少なくとも工作機器(NC)からのデータを受信する事のできる手段をいう。実施形態では、図11のステップS41等がこれに対応する。
「プログラム」とは、CPUにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
発明を実施するための形態
1.全体的構成
図1に、この発明の一実施形態によるマン・マシン・インターフェイス機器としてのプログラマブル表示器2の機能ブロック図を示す。処理手段7は、動作プログラムを解釈し、これに従った処理を実行するものである。処理手段7は、受信処理手段6と送信処理手段8とを備えている。
送信処理手段8は、動作プログラムからの指令を受けて、動作プログラムによって、直接または間接的に指定されたNC加工機4(外部機器)のデバイスD1、D2・・・Dnのいずれかに対してデータを送信して書き込む。この際、送信処理手段8は、NC加工機4とのデータやりとりのためのインターフェイス基本コマンド12、共通属性データ14、デバイス情報データ16を参照して、指定されたデバイスD1、D2・・・Dnとの通信を行う。
ここで、インターフェイス基本コマンド12は、NC加工機4との通信のための基本となるコマンドである。具体的には、NC加工機4のデバイスに対する書込リクエスト送信コマンド(デバイスに対してデータの書込を求める)、書込レスポンス受信コマンド(デバイスからの書込完了の連絡)、読出リクエスト送信コマンド(デバイスデータの読出を求める)、読出レスポンス受信コマンド(デバイスからのデータの受信)などのコマンドのフレームフォーマットを、インターフェイス基本コマンド12として記録している。なお、このインターフェイス基本コマンド12は、NC加工機の種類によって異なるものである。したがって、NC加工機の各機種毎に用意しておくことが好ましい。
共通属性データ14は、上記のインターフェイス基本コマンド12をNC加工機4との間でやりとりするために必要な属性である。アドレスやデータの形式(ASCIIコードかBINコードかなど)、アドレスやデータの格納方式(上位バイトからあるいは下位バイトから格納されているかなど)、パリティチェックの方式などについての属性が記述されている。この属性は、各コマンドに共通な属性であり、NC加工機の機種毎に異なるのが通常である。したがって、NC加工機の各機種毎に用意しておくことが好ましい。
デバイス情報データ16は、デバイスとの通信を行う際の、アドレスの桁数、データの桁数などを記述したものである。このデバイス情報データ16は、同じNC加工機であってもデバイスの種類ごとに異なる。したがって、デバイスの種類毎に用意することが好ましい。
送信処理手段8は、上記のインターフェイス基本コマンド12、共通属性データ14、デバイス情報データ16を参照して、指定されたデバイスD1、D2・・・Dnに対する書込を行う。
一方、受信処理手段6も同様に、上記のインターフェイス基本コマンド12、共通属性データ14、デバイス情報データ16を参照して、指定されたデバイスD1、D2・・・Dnからのデータの読み出しを行う。読み出したデータは、動作プログラムに与える。
なお、この実施形態では、送信処理手段8と受信処理手段6によって通信手段が構成されている。
2.ハードウエア構成およびデータ
図2に、プログラマブル表示器2のハードウエア構成を示す。CPU20には、液晶ディスプレイやタッチスクリーンなどの表示部22、入出力インターフェイス(I/F)24、入力キーなどの入力部26、メモリ28、P−ROM30、入出力インターフェイス(I/F)32が接続されている。入出力インターフェイス24は、NC工作機4との接続を行うものである。入出力インターフェイス32は、インターフェイスプログラム作成装置である作画装置5(後述)との接続を行うものである。
タッチスクリーン22は、ディスプレイの画面上に透明電極が配置され、表示するだけでなくユーザが入力可能に構成されている。入力部26は、たとえばハードウエアとしての入力ボタンであるが、ソフトウエアと協働して動作するタッチスクリーンであってもよい。メモリ28は、CPU20のワークエリアとして機能する。
プログラムROM(P−ROM)30には、システム処理プログラム34が記録されている。さらに、ユーザによって作成された画面データ36、画面デバイステーブル38、インターフェイス基本コマンド12、通信コマンド共通属性データ14(共通属性データ)、デバイス情報テーブル16(デバイス情報データ)、動作プログラム42が記録されている。なお、通信コマンド共通属性データ14、デバイス情報テーブル16は、それぞれ、図1の共通属性データ14、デバイス情報データ16に対応するものであるから、同一の符号を付している。
P−ROM30に記録された通信コマンド共通属性データ14の例を、図3に示す。アドレス変換形式の「BCD−>ASCII」は、アドレスデータについて、プログラマブル表示器2ではBCDコードを使用しており、NC加工機4との通信ではASCIIコードを使用していることを示している。これにより、プログラマブル表示器2からNC加工機4にアドレスデータを送る場合には、ASCIIコードに変換して送信する必要があることがわかる。
また、NC加工機の種類によっては、アドレスの格納方法が上位バイトからであったり、下位バイトからであったりする。アドレス格納方法は、これを示している。
データ変換形式、データ格納方法についても同様に記録されている。
BCC計算では、NC加工機4との通信におけるパリティ値の計算方法を記述している。
P−ROM30に記録されたインターフェイス基本コマンド12の例を、図4、図5に示す。これらは、NC加工機の機種毎に用意されたものから、選択されたものである。なお、予め用意してあるコマンドを参考にするなどして、ユーザが
インターフェイス基本コマンドを作成することもできる。なお、基本コマンドの定義項目としては、定数、変数(デバイス値)、画面デバイス読出、画面デバイス書込、デバイスの個数、種別、アドレス、データ、BCC、スキップなどの項目が設けられている。
図4Aは、デバイス(外部機器)からデータを読み出す際の読出要求コマンドである。この例では、送信コマンド1として定義されている。なお、コマンド内容を理解しやすくするためコメント欄には「読出要求送信」が記述されている。
先頭の定数部分「05 30 30 30 52」は、このコマンドが読出要求コマンドであることを示すコードである。最後の定数部分「0D」は、このコマンドの終了を示している。「種別」「アドレス」「個数」「BCC」の部分は、可変長の項目だけが設定されておりコマンドは完成していない。これは、実行時に、システム処理プログラム34が、動作プログラムの送信命令1に記述されたデバイスやデバイス情報テーブル16などの情報をもとに「種別」「アドレス」「個数」「BCC」の部分の内容を生成して完成させて実行するからである。つまり、読出要求コマンドは、コマンドを生成するために用意されたスケルトン(コマンドの仮想的な骨格の構造(フレームフォーマット))である。なお、「個数」は、連続して読み出すアドレスの個数、「BCC」はパリティを示している。
図4Bは、デバイスからデータを受信する際のデータ読出のコマンドである。この例では、受信コマンド1として定義されている。デバイスからデータを読み出す際には、図4Aの読出要求をデバイスに与え、これに応答してデバイスから図4Bのコマンドとして送られてくるデータを受信する。このデータ読出コマンドも読出要求コマンドと同じように、先頭部分にデータ読出コマンドであることを示すコード「06 30 30 30」が記述されている。これに続いて、「データ」「BCC」の項目が用意されている。システム処理プログラム34は、デバイスから受信したデータを、動作プログラムの受信命令1に記述されたデバイスやデータ読出コマンドやデバイス情報テーブル16などに従って解釈して必要なデータを取得する。最後の定数部分「0D」は、このコマンドの終了を示している。
図4Cは、デバイスからのデータ読み出しを停止するためのコマンドである。この例では、送信コマンド2として定義されている。デバイスからのデータの読み出しを停止する際には、図4Cの読出停止コマンドをデバイスに与える。このデータ読出停止コマンドも読出要求コマンドと同じように、先頭部分にデータ読出停止コマンドであることを示すコード「05 30 30 30 53」が記述されている。これに続いて、「BCC」の項目が用意されている。最後の定数部分「0D」は、このコマンドの終了を示している。
図5Aは、デバイスにデータを書き込む際の書込要求コマンドのスケルトンである。図5Bは、デバイスから送られてくるデータ書込完了コマンドのスケルトンを示している。
図4、図5以外にもコマンドのスケルトンが入力され記録されているが、同様の形式であるのでここでは省略する。なお、各コマンドのコードや、これに続いてどのような項目(「種別」「アドレス」「個数」「BCC」など)がどのような順序で続くかは、外部機器によって異なる。したがって、使用するNC加工機ごとに、上記のインターフェイス基本コマンド12をP−ROM30に記録しておき、選択して使用するようにすればよい。
P−ROM30に記録されたデバイス情報テーブル16の例を、図6に示す。NC加工機4の各デバイスは、その種類によって、データの記録の仕方などが異なっている。これを示したのが、デバイス情報テーブル16である。具体的には、デバイスの種類毎に、アドレス桁数やデータ桁数などが記述されている。図6では、デバイスの種類として「データレジスタ」「内部リレー」のみが示されているが、実際には多くの種類のデバイスがある。
なお、図3〜図6では、各データを入力するための画面として示しているが、P−ROM30に記録されるデータも同様の形式となっている。
P−ROM30に記録された動作プログラム42の例を、図7に示す。動作プログラム42は、プログラマブル表示器2の表示画面の動作を決定するプログラムであり、ユーザが作成することができる。図7に示す動作プログラム42は、図8に示すような動作をさせるためのものである。まず、最初に図8Aの画面を表示部22に表示する。ユーザにより目標個数が入力部26から入力され、入力部26の設定指示ボタン80が押されると、NC加工機に設定指令を出して、画面2に表示が変わる。画面2では、NC加工機4から生産個数データを受けて、これを表示する。なお、ユーザが、入力部26のSTOPボタン82を押下すると、表示処理を停止する。
図8のような画面表示を行うためには、図7の動作プログラム42とは別に、図9に示す画面データ36、図10に示す画面デバイステーブル38が必要であり、これらもP−ROM30に記録されている。
3.システム処理プログラム34の動作
図11に、システム処理プログラム34のフローチャートを示す。システム処理プログラム34は、上記の動作プログラム42を解釈して実行するためのプログラムである。
まず、ステップS11において、CPU20はシステムの初期化を行う。次に、動作プログラム42(図7参照)の1行目の命令を取得し、その命令内容に応じて処理内容を実行する。図7の動作プログラム42では、1行目の命令は画面Start命令であるので、ステップS21以下を実行する。
CPU20は、画面Start命令によって指定された画面の画面データを読み出す。ここで1行目は、”画面1Start”であるから、表示部22の画面をクリアする。続いて、ステップS22において、画面1についての画面データ(図9参照)を読み出して表示部22に表示する。
図9の画面1データでは、「目標個数」という文字を、X座標を100、Y座標を200の位置に表示する旨が指定されている。これにより、CPU20は、図8Aのように「目標個数」という文字を指定されたX座標、Y座標に表示する(目標個数の文字の基本位置(左上隅など)をX座標、Y座標にするように表示する)。
さらに、画面1データの機能部品データの項目に示された機能部品を表示する。
すなわち「数値入力器」を処理する。図8Aでは、「目標個数」の右側に表示されている入力のための領域50がこれに対応する。領域50には、数値入力器が選択されれば、数値入力を促す入力カーソルが表示される。ユーザは、数値キーを押下して、入力カーソルの位置に、生産に対する目標個数を入力する。図9では、数値入力器としてD7が指定されているので、入力されたデータはデバイステーブルのデバイスD7に記録されるとともに、これが領域50に表示されることになる。なお、「D」はデバイスの種類を表し、「7」はアドレスを示している。
次に、CPU20は、ユーザが入力部26より入力したデータがあれば、これを、画面1デバイステーブル(図10)に記録するとともに、所定の位置に表示する(ステップS23)。ここでは、ユーザによるデータ入力はまだないので、CPU20は、この処理を行わない。
続いてCPU20は、図9の画面1データの指示に従って、NC加工機4の各デバイスの状況を表示する処理を行う。NC加工機4の各デバイスから読み出したデータ、デバイスに書き込むためのデータが、デバイステーブルに記録されているので、これを用いて上記処理を行う。具体的には、CPU20は、図10の画面1デバイステーブルの読出デバイスの値を、表示部22に表示する(ステップS24)。図10の画面1デバイステーブルにおいては、読出デバイスが指定されていないので、ここではCPU20はこの処理を行わない。
以上のようにして画面Strat処理が終了すると、表示部22の画面表示は図8Aのような状態となる。次に、CPU20は、動作プログラム42の次の行を取得して実行する。
2行目は、画面Strat命令、画面End命令のいずれでもないので、その他の命令としてステップS41において処理される。2行目の「SW1 OFF JUMP ラベル1」は、SW1がオフであれば、ラベル1にジャンプするという命令である。ここで、SW1は、入力部26の設定指示ボタン80の操作状況を示すスイッチである。初期状態においてはSW1はオフであるが、設定指示ボタン80が押下されるとオンに変化する。ここでは、設定指示ボタン80はまだ押下されておらず、SW1はオフであるから、CPU20は、次に取得する行を6行目(ラベル1に対応)として、ステップS41を終了する。
次に、CPU20は、ラベル1に対応する6行目のデータを取得して処理する。
6行目には、「ラベル1」との記述があるだけであるから、ステップS41において何もせず、これを終了する。
続いて、CPU20は、7行目のデータ「画面1End」を取得する。画面End命令があると、CPU20は、次に取得する行を対応する画面Start命令の行であるとする(ステップS31)。
したがって、CPU20は、動作プログラムの1行目以下を再び繰り返して実行する。これにより、処理は、1行目、2行目、6行目、7行目、1行目・・・と循環してなされることになる。この時の表示画面は図8Aから変化しない。
次に、ユーザは、入力部28の数値キーを押下し確定キー(図示せず)を押下して、生産に対する目標個数を入力する。入力されたデータは、上記循環して実行されている命令中の、1行目の画面Start命令に対するステップS23の処理において、画面1デバイステーブルの対応する書込デバイスに記録される(図10参照)。なお、図9の画面データにおいて数値入力器D7としてデバイスが指定されているので、これに対応するD7の書込デバイスについて、数値が記録されることになる。ユーザが、「3521」を入力したのであれば、図10のようにその値が記録される。さらに、CPU20は、この値を、図8Aの画面1の領域50に表示する。
ユーザが目標個数の入力を完了し、設定指示ボタン80を押下するとSW1がオンとなる。CPU20は、上記循環処理の2行目において、SW1がオンであることから、ラベル1にジャンプせず、3行目に処理を移す。動作プログラム42の3行目「XS3 送信3 D7,1,D7」は、送信命令の起動条件フラグXS3が「1」であれば、「送信3」のスケルトン命令につき、「D7,1,D7」のパラメータを用いて送信命令を完成させ、これを実行するという命令である。
CPU20は、3行目の命令を取得し、ステップS41においてこれを解釈して実行する。フラグXS3は初期状態において「1」である。したがって、最初に3行目の命令を実行する場合には「1」となっているから、これが実行される。ただし、3行目が一度実行されると以後は「0」となるフラグである。したがって、3行目の命令の送信コマンドは、1回だけ実行されるようになっている。
CPU20は、図5Aに示す「送信3」のスケルトンを参照して送信命令を完成させ、画面1デバイステーブルの書込デバイスD7の値「3521」を、NC加工機4の対応するデバイスに送信する。なお、このデータ受信したNC加工機4は、これを所定のデバイス(プログラマブル表示器のデバイスD2に対応付けられたデバイス)に記録する。なお、送信処理の詳細については、後述する。
続いて、CPU20は、4行目の命令「XR3 受信3」を取得し、ステップS41においてこれを解釈して実行する。ここで、受信命令の起動条件フラグXR3は、送信命令3の起動条件フラグXS3と同じ内容である。送信命令3を実行後、CPU20は、図5Bの「受信3」のスケルトン命令をもちいて受信命令を完成させこれを実行する。「受信3」の命令は、NC加工機4からの書込完了通知を受け取るための命令である。つまり、3行目において送信した目標個数「3521」が、NC加工機4において正しく受信され、対応するデバイスに記録されたことを確認するための命令である。この受信処理の詳細については、後述する。
フラグXR3が「1」でなければ、CPU20は、5行目の命令「SR31 JUMP画面2」を取得し、ステップS41においてこれを解釈して実行する。5行目の命令は、フラグSR31が「1」であれば、画面2にジャンプするという意味である。ここで、フラグSR31は、受信命令3の受信完了フラグである。初期状態においては「0」であり、NC加工機4からの書込完了通知を受けて「1」となるフラグである。
フラグSR31が「1」でなければ、CPU20は、6行目、7行目、1行目、2行目、3行目、4行目、5行目、6行目・・・というように循環した処理を繰り返す。
NC加工機4に対して目標個数が送信され記録されると、フラグSR31が「1」となる。したがって、CPU20は、5行目の処理において、次に取得する行を8行目であるとして処理を進める。
以上の処理の概要を示したのが、図12の「書込要求送信」「書込完了受信」である。
次に、CPU20は、8行目の「画面2Start」命令を取得し、ステップS21〜S24に従ってこれを実行する。まず、ステップS22において、図9の画面2データを取得し、これに基づいて描画部品データの表示を行う。これにより、画面には、「不良個数」「目標個数」「生産個数」「あと」の文字が表示され、それぞれの右側に数値表示器のデバイスD1、D2、D3、D4の値を表示するための領域が確保される(図8B参照)。
画面2においては、ユーザによる入力はないので、ステップS23では何も行われない。
CPU20は、ステップS24において、図9の画面2データの機能部品データを取得し、これに基づいて機能部品データ(数値表示器)の処理を行う。図10の画面2デバイステーブルのデバイスD1、D2、D3、D4の値を読み出し、上記の所定の領域に表示する。デバイスD1は、NC加工機4において記録している不良個数の値を受信して記録するための領域である。デバイスD2は、NC加工機4において記録している目標個数の値を受信して記録するための領域である。デバイスD3は、NC加工機4において記録している生産個数の値を受信して記録するための領域である。デバイスD4は、NC加工機4において記録している残り個数の値を受信して記録するための領域である。
ここでは、デバイステーブルのデバイスD1、D2、D3、D4には、何も記録されていないので、「0」が表示されることになる。
以上のようにして、画面2Start命令の処理を終了すると、CPU20は、9行目の処理に移る。CPU20は、9行目の「XS1 送信1 D1,4」を取得し、ステップS41においてこれを解釈して実行する。9行目は、フラグXS1が「1」であれば、「送信1」コマンドのスケルトンに基づいて、パラメータ「D1,4」によって送信コマンドを完成させ、これを実行するという命令である。送信処理の詳細については、後述する。
フラグXS1は、XS3と同じように初期状態では「1」であり、9行目が実行されると「0」となる。つまり、9行目の送信命令は1回だけ実行される。「送信1」コマンドは、図4Aに示すように、NC加工機4に対してそのデバイスのデータ読み出しを求める命令を送信するためのものである。パラメータ「D1,4」はデバイスD1から連続したアドレスの4つのデバイスの値を求める意味である。したがって、この命令が実行されると、NC加工機4に対して、デバイスD1、D2、D3、D4に対する読み出し命令が送られることになる。これを模式的に示したのが、図12の「読出要求送信」である。
次に、CPU20は、10行目の命令「SW2 JUMP ラベル2」を取得し、ステップS41において解釈して実行する。これは、フラグSW2が「オン」であれば、「ラベル2」にジャンプという命令である。フラグSW2は、初期状態では「オフ」であり、STOPボタン82が押下されると「オン」となる。ここでは、SW2は「オフ」であるから、次の行に処理を移す。
CPU20は、11行目の命令「XR1 受信1 D1,D2,D3,D4」を取得し、ステップS41において解釈して実行する。これは、フラグXR1が「1」であれば、「受信1」スケルトン命令に基づいて、パラメータ「D1,D2,D3,D4」を参照して受信命令を完成させ実行するという命令である。受信命令1の起動条件フラグXR1は、初期状態においては「0」であり、送信命令1からの送信完了通知を受けて「1」となるフラグである。CPU20は、NC加工機4から送信されてくるデータを受信し、それぞれ、画面2デバイステーブルの読出デバイスD1、D2、D3、D4に記録する。これを概略的に示すと、図12の「データ読出受信」となる。受信処理の詳細については後述する。
続いて、CPU20は、12行目の命令「SW2 OFF JUMP ラベル3」を取得し、ステップS41において解釈して実行する。これは、フラグSW2が「オフ」であれば、「ラベル3」にジャンプという命令である。ここでは、STOPボタン82が押されておらず、SW2は「オフ」であるから、CPU20は、次に15行目を実行することとなる。
CPU20は、15行目、16行目と処理を進め、8行目に再び処理を戻す。したがって、8行目、9行目、10行目、11行目、12行目、15行目、16行目、8行目・・・というように循環的な処理がなされる。これにより、11行目で受信した各デバイスの値が、8行目において機能部品の数値表示器の処理によって画面上に表示されることになる(ステップS24、図8B参照)。また、循環的に処理がなされているので、画面上には、各デバイスの最新の値が表示されることになる。
なお、ユーザがSTOPボタン82を押下するとSW2が「オン」となって、10行目から13行目にジャンプし、14行目において「送信2」命令が実行されて、デバイス値の読み出しと表示が終了される。
上記のようにNC加工機4の各レジスタD1、D2、D3、D4の値が読み出されて、表示部22に表示される。これにより、ユーザは、生産の進行状況を知ることができる。
上記のように、ユーザは、動作プログラム42、画面データ36、画面デバイステーブル38を用意することによって、NC加工機4のデバイス(上記レジスタなど)の値を表示部22に表示し、入力部26からNC加工機4の動作を制御したりすることができる。
4.通信処理の詳細
上記の処理のうち、送信コマンド、受信コマンドをスケルトンから生成し、これを実行する処理について、以下詳述する。
動作プログラム42の3行目「XS3 送信3 D7,1,D7」について、CPU20は、次のようにして送信コマンドを完成させて実行する。まず、「送信3」命令のスケルトン(インターフェイス基本コマンド)を、P−ROM30から取得する。「送信3」のスケルトンは、図5Aに示すような書込要求送信命令である。
このスケルトンにおいては、種別、アドレス、個数、データが空欄となっている。CPU20は、記述されたパラメータ「D7,1,D7」に従って順次空欄を補充する。この際、CPU20は、図6のデバイス情報テーブルを参照して、補充を行う。
まず、パラメータの最初の「D7」を用いて補充がなされる。種別が「D」であるから、デバイス情報テーブルのシンボル名Dの欄を参照して処理がなされる。まず、種別「D」に対応する「44」が補充される。アドレスには、アドレス桁数を参照して「0007」が補充される。次に、パラメータの「1」とデバイス情報テーブルの個数桁数「2桁」を用いて、個数には「01」が補充される。個数は、書き込むべきデータの数を示している。パラメータの最後の「D7」は、プログラマブル表示器の画面デバイステーブルのいずれのデータを送信して書き込むかを表している。したがって、CPU20は、デバイスD7の値(図10参照)を読み出して、これを指定のデータ桁数にて補充する。図10の例であれば、「3521」が読み出されて、「0DC1」(16進表記)とされる。
CPU20は、以上のようにして、書込要求送信命令を完成させると、次に、図3の通信コマンド共通属性を参照して、アドレスとデータの変換形式として示された形式にしたがって変換する。アドレスは、ASCIIコードに変換される。データは、データ変換式の「BIN−>ASCII」によって、16進のデバイス値をASCIIコードに変換する。つまり、アドレス「0007」が「30 30 30 37」に変換され、デバイスD7の値「3531」(10進表記)が16進数「0DC1」のASCIIコード「30 44 43 31」に変換されることになる。
ここでは、書込要求コマンドとして、「05 30 30 30 57 44 30 30 30 37 30 31 30 44 43 31 -- 0D」(16進数表記)が完成する。なお、ここで、「4桁」は「4バイト」を意味している。また、上記コマンドにおいて、「--」の部分はパリティチェックのBCCが記述されるべき部分である。そこで、CPU20は、図3の通信コマンド共通属性を参照して、BCC計算の方法を取得し、BCCを計算して「--」の部分に記述する。たとえば、BCCが「26」であればこれを記述して「05 30 30 30 57 44 30 30 30 37 30 31 30 44 43 31 32 36 0D」というコマンドが完成する。
さらに、CPU20はこれをNC加工機4に送信する際に、通信コマンド共通属性を参照して、このコマンドをASCIIコードに変換する。また、アドレス格納方法として示された方法に従って、アドレスの上位桁と下位桁を入れ替える。ここでは、もともと上位バイトからアドレスが示されているので何も変更しない。しかし、通信コマンド共通属性において「下位バイトから」と示されていれば、アドレスの部分の順序を逆にして「05 30 30 30 57 44 30 37 30 30 30 31 30 44 43 31 32 36 0D」とする。このようにして、完成した書込要求コマンドをNC加工機4の形式に変換して送信する。
CPU20は、動作プログラム42の4行目「XR3 受信3」についても同様にして、スケルトン、デバイス情報テーブル、通信コマンド共通属性を参照して受信命令を完成させて実行する。完成した受信命令は「06 30 30 30 33 36 0D」となる。
同様に、動作プログラム42の9行目「XS1 送信1 D1,4」については、CPU20は、「05 30 30 30 52 44 30 30 30 31 30 34 32 36 0D」という命令を完成させて実行する。
また、11行目の「XR1 受信1 D1,D2,D3,D4」についても、CPU20は、図4Bの「受信1」スケルトンを用いて受信コマンドを完成させる。この受信コマンドによって、CPU20は、NC加工機4から送られてくるデータ、たとえば、「06 30 30 30 30 30 30 35 30 44 43 31 30 43 32 37 30 31 39 35 34 45 0D」という受信命令であれば、そのデータのフォーマットを知って、正しくデータを受信することができる。
このスケルトンにおいて最初の「06 30 30 30」はデータ読み出し受信であることを示すコマンド識別子である。このスケルトンでは、データ、BCCが空欄となっている。CPU20は、記述されたパラメータ「D1,D2,D3.D4」に従って順次空欄を補充する。この際、CPU20は、図6のデバイス情報テーブルを参照して、補充を行う。これにより、データの欄に「D1 D2 D3 D4」が補充される。これは、NC加工機4側からコマンドの識別子「06 30 30 30」に続いて順次送られてくる4つのデータが、それぞれ、デバイスD1、D2、D3、D4に対応していることを示している。そして、それに続いてBCCが連続することが分かる。
ただし、これだけでは、データの桁数が不明である。そこで、画面1デバイステーブル(図10)を参照して、読み出し対象となっているデバイスの種別「44」を取得し、図6のデバイス情報テーブルから当該種別のデバイスについてのデータ桁数「4桁」を取得する。これにより、CPU20は、データの桁数が4桁であることを知る。したがって、「06 30 30 30」に続く4桁「30 30 30 35」をデータとして取得する。以下同じように4桁ずつデータとして取得する。
CPU20は、取得したデータにつき、図3の通信コマンド共通属性を参照して、データの格納方法が「上位バイトから」であるか「下位バイトから」であるかを判断する。「下位バイトから」となっていれば、上位バイトと下位バイトとを入れ換える。ここでは、「上位バイトから」であるから、データの並び替えは行わない。
続いて、CPU20は、通信コマンド共通属性を参照しBCCの計算を行う。BCCの桁数は「2桁」となっているので、計算したBCCを2桁で表現し、データ「30 30 30 35 30 44 43 31 30 43 32 37 30 31 39 35」に続く2桁「34 45」と比べて、エラーのチェックを行う。一致しない場合には、NC加工機4に対してデータの再送を要求する。BCCが正しければ、取得したデータを、画面2デバイステーブルの対応するデバイスに記憶する。
この実施形態によれば、インターフェイス基本コマンド(図4、図5)とデバイス情報テーブル16を、NC加工機4の機種に合わせて用意することで、各種のNC加工機4に対応することができる。
この実施形態によれば、ユーザが外部機器との通信処理の順序などを動作プログラムとして記述するようになっている。したがって、外部機器との無駄な通信を行うことなく、ユーザの希望に合致した通信処理を行うことが可能である。
5.プロジェクトデータの作成
上記では、P−ROM30に画面データ36、画面デバイステーブル38、インターフェイス基本コマンド12、通信コマンド共通属性14、デバイス情報テーブル16、動作プログラム42(以上をまとめてプロジェクトデータという)を記録した後の動作を説明した。以下では、このプロジェクトデータを作画装置5(図2参照)によって作成する処理を説明する。作画装置は、いわゆるパーソナルコンピュータであり、CPU、ハードディスク、ディスプレイ、キーボード、マウス(図示せず)などを備えている。
図13に、ハードディスクに記録されたプロジェクトデータ生成プログラムのフローチャートを示す。プロジェクトデータ生成プログラムを立ち上げて、初期メニューから、たとえば「インターフェイス基本コマンドの作成」を選択したとする。
CPUは、まず、ステップS51において、インターフェイス基本コマンドを入力するための初期画面(図15参照)をディスプレイに表示する。ユーザは、定義したいコマンドを設定する。たとえば、図5Aのような書込要求送信を定義する場合、プルダウンボタン45がマウスでクリックされると、送信コマンド、受信コマンドのタイプが一覧表示される。ユーザは、送信コマンドを選択する。さらに、キーボードから番号欄49にコマンド番号を入力する。次に、コメント欄41に定義したいコマンドのコメント(書込要求送信)を入力する。
続いて、項目名の空欄を埋めていく。ここでは、項目名の欄42にプルダウンメニューボタン(図示せず)を設けており、これをクリックすることで、定数、変数(デバイス値)、画面デバイス読出、画面デバイス書込、デバイスの個数、種別、アドレス、データ、BCC、スキップなどの項目名が一覧表示される。
定数を選択すると、「定数」が項目名の欄42の右隣の空欄に表示される。ユーザは、その下の欄に、「05 30 30 30 57」を入力する。他の空欄についても同様にして、図5Aに示すような入力を完成する。
完了ボタン43がクリックされると、CPUは、入力された書込要求コマンドをハードディスクに記録する。このようにして、書込要求送信のコマンドを設定することができる。他のコマンドについても同様の処理によって設定することができる。
また、通信コマンド共通属性、デバイス情報テーブルについても同様の処理によって設定してハードディスクに記録することができる(ステップS52、S53)。通信コマンド共通属性設定のための画面を図3に、デバイス情報テーブル設定のための画面を図6に示す。
続いて、ステップS54に進んで、ユーザが作画装置の作画機能を使って図8A、8Bに示す画面1、2をマウスなどを用いて描く。そして、ユーザから、図8A、8Bに示す画面1、2上でマウスによって右ボタンをクリックし、描画部品と機能部品入力のプロパティのダイアログボックスを開く。そして、描画部品の文字表示、機能部品の数値表示器と数値入力器などの部品を選択し、当該部品のパラメータを設定し、画面上に当該部品を配置する。CPUは、ユーザからの入力に応じて、図9に示すような画面データを生成して記録する(ステップS54)。ステップS55において、動作プログラム(図7)のリストの命令行をマウスによってダブルクリックし、マクロ命令入力のプロパティのダイアログボックスを開く。そして、画面Start、画面End、送信命令、受信命令、文字列比較、四則/論理演算、ユーザが作成した画面へ切り替える条件ジャンプ、ラベルなどのマクロ命令を選択し、当該マクロ命令のパラメータを設定する。これにより、入力されたマクロ命令が図7のように表示される。
引き続き、CPUは、ユーザからの入力に応じて、図7に示すような動作プログラムを生成して記録する(ステップS56)。
このように、ユーザは、通信コマンド共通属性、インターフェイス基本コマンド、デバイス情報テーブルを、所望のNC加工機4に合致するように設定することができる。したがってこれらを一旦設定すれば、ユーザは、動作プログラム(図7)、画面データ(図9)を作成する(ステップS54、S55)際に、NC加工機の送受信マクロ命令を意識する必要がなく、送受信マクロ命令を動作プログラムに組み込むことができ、一方で、外部機器との通信手順を詳細に設定でき、所望のマン・マシン・インターフェイス機器の通信制御プログラムの作成が容易である。
上記のようにしてプロジェクトデータを入力後(ステップS56)、ステップS57において、画面デバイステーブル(図10)を生成する。作成されたプロジェクトデータは、I/F32(図2)を介して、プログラマブル表示器に転送される(ステップS57)。
なお、この実施形態では、通信コマンド共通属性、インターフェイス基本コマンド、デバイス情報テーブルをユーザが入力するようにしている。しかし、予め各種のNC加工機についてこれらをハードディスクに記録しておき、選択して使用できるようにしてもよい。
7.その他
上記実施形態においては、外部機器としてNC加工機を用いているが、PLCやロボットなどを外部機器としてもよい。
たとえば、外部機器としてエレベータコントローラ104を対象とした場合の実施形態を、図14に示す。この実施形態によれば、エレベータコントローラ104からのデータを受けて階数等の表示をディスプレイ122にて行い、操作ボタン126の操作をエレベータコントローラ104に伝えることができる。
上記実施形態では、各手段をプログラムによって実現しているが、その一部または全部をハードウエアのみによって実現するようにしてもよい。
この発明の一実施形態によるプログラマブル表示器の機能ブロック図である。
プログラマブル表示器のハードウエア構成である。
通信コマンド共通属性の例である。
インターフェイス基本コマンドの例である。
インターフェイス基本コマンドの例である。
デバイス情報テーブルの例である。
動作プログラムを入力するための画面の例である。
表示画面の例である。
画面データの例である。
画面デバイステーブルの例である。
システム処理プログラムのフローチャートである。
通信シーケンスを示す図である。
生成プログラムのフローチャートである。
他の機器に応用した場合の例を示す図である。
インターフェイス基本コマンドの入力画面である。
符号の説明
2・・・プログラマブル表示器
4・・・NC加工機(外部機器)
6・・・受信処理手段
8・・・送信処理手段
10・・・記録部
12・・・インターフェイス基本コマンド
14・・・共通属性データ
16・・・デバイス情報データ