(57)【特許請求の範囲】
【請求項１】
デバイスを有する外部機器とデータ通信するマン・マシン・インターフェイス機器であって、
外部機器との通信の基本処理を行うインターフェイス基本コマンドと、外部機器のデバイスの種類毎に設けられ少なくともデータ桁数、アドレス桁数、種別コードを含むデバイス情報データと、少なくともアドレスおよびデータのデータ形式を含む通信コマンド共通属性データとを記録した記録部と、
ユーザによって生成され前記記録部に記録された送受信命令を含む動作プログラムを解釈して、外部機器との通信を含む処理を実行する処理手段を備えたマン・マシン・インターフェイス機器であって、
前記処理手段は、前記インターフェイス基本コマンドに従って、送受信命令に記述されたデバイスに対応するデバイス情報データと通信コマンド共通属性データに基づいて外部機器と通信する通信手段を備えることを特徴とするマン・マシン・インターフェイス機器。
【請求項２】
請求項１のマン・マシン・インターフェイス機器において、
前記通信手段は、受信命令の場合は、受信命令に記述されているデバイスとデバイス情報データと通信コマンド共通属性データとフレームフォーマットとに基づいて受信したフレームを解析し、送信命令の場合は、送信命令に記述されているデバイスのデータをデバイステーブルから取得し、デバイス情報データと通信コマンド共通属性データとフレームフォーマットとに基づいてフレームを生成して外部機器に送信することを特徴とするマン・マシン・インターフェイス機器。
【請求項３】
マン・マシン・インターフェイス機器のプロジェクトデータを生成して出力する作画装置であって、
ユーザによって入力され、あるいは予め用意された、外部機器との通信の基本処理を行うインターフェイス基本コマンドを記録する記録部と、
外部機器との間でのデータの送受信を含む命令を備えて構成される動作プログラムを、ユーザからの入力に応じて生成する生成手段と、
外部機器のデバイスの種類毎に少なくともデータ桁数、アドレス桁数、種別コードを含むデバイス情報データおよび少なくともアドレスおよびデータのデータ形式を含む通信コマンド共通属性データをユーザが入力するための入力手段と、
インターフェイス基本コマンドとデバイス情報データと通信コマンド共通属性データと動作プログラムとを含むプロジェクトデータを出力する出力手段と、
を備えた作画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マン・マシン・インターフェイス機器と外部機器とのデータ通信に関するものであり、特にその通信処理を含む動作プログラム開発の容易化に関するものである。
【背景技術】
【０００２】
プログラマブル・ロジック・コントローラ（ＰＬＣ）、コンピュータ制御による工作機械（ＮＣ）、ロボットなどの外部機器に制御指示を与えたり、外部機器のデータを表示したりするために、マン・マシン・インターフェイス機器が用いられている。このマン・マシン・インターフェイス機器の一つとしてプログラマブル表示器がある。
【０００３】
プログラマブル表示器は表示やボタンなどの汎用性が高いが、その反面、外部機器とデータのやりとり（通信）を行うためのインターフェイス・プログラムを用意しなければならない。このインターフェイス・プログラムの作成は必ずしも容易ではなく、従来、様々な工夫がなされている。
【０００４】
特許文献１には、予め複数のＰＬＣに対するインターフェイス・プログラムを作成支援装置に用意しておき、ユーザがこれらインターフェイス・プログラムを選択し、作成支援装置からプログラマブル表示器に転送して使用するものが開示されている。ユーザは、ＰＬＣの機種に対応するインターフェイス・プログラムを選択するだけでよいという利点がある。
【０００５】
特許文献２には、通信プロトコルを自動解析して、インターフェイス・プログラムを生成する作成装置が開示されている。ユーザは、ＰＬＣのプロトコルなどを知らなくとも、インターフェイス・プログラムを作成できるという利点がある。
【０００６】
特許文献３には、プロトコルマクロにて記述した、定数および変数について、アドレスが自動的に割り当てられるプロトコル作成方法が開示されている。プロトコルマクロを効率的に作成できるという利点がある。
【０００７】
【特許文献１】特許３３５６５３０
【０００８】
【特許文献２】特開２００２−３００２２６
【０００９】
【特許文献３】特開２００２−１８９５０５
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記の従来技術には次のような問題があった。
【００１１】
特許文献１のものでは、予め登録されていないＰＬＣについては、新たにインターフェイス・プログラムを作成しなければならないという問題があった。
【００１２】
特許文献２のものでは、一つのフレームによって各命令が構成されるような単純なプロトコルについては対応できるが、複数フレームによってマクロ命令が構成されるような場合や、分岐などがある複雑なプログラムについては、対応することができなかった。
【００１３】
特許文献３のものでは、アドレスを自動的に割り当てることはできるものの、ＰＬＣの機種に応じてインターフェイス・プログラムを自動的に生成するものではなかった。
【００１４】
この発明は上記のような問題点を解決して、ＰＬＣ等の外部機器の機種を問わずに、インターフェイス・プログラムの作成が容易なマン・マシン・インターフェイス機器および作画装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
(1)この発明の一側面によるマン・マシン・インターフェイス機器は、デバイスを有する外部機器とデータ通信するマン・マシン・インターフェイス機器であって、外部機器との通信の基本処理を行うインターフェイス基本コマンドと、外部機器のデバイスの種類毎に設けられ少なくともデータ桁数、アドレス桁数、種別コードを含むデバイス情報データと、少なくともアドレスおよびデータのデータ形式を含む通信コマンド共通属性データとを記録した記録部と、ユーザによって生成され前記記録部に記録された送受信命令を含む動作プログラムを解釈して、外部機器との通信を含む処理を実行する処理手段を備えたマン・マシン・インターフェイス機器であって、前記処理手段は、前記インターフェイス基本コマンドに従って、送受信命令に記述されたデバイスに対応するデバイス情報データと通信コマンド共通属性データに基づいて外部機器と通信する通信手段を備えることを特徴としている。
【００１６】
したがって、インターフェイス基本コマンドおよび通信コマンド共通属性データとともに、外部機器のデバイス毎に設けられたデバイス情報データに基づいて、外部機器とのデータのやりとりが実現され汎用性が高い。また、これら、通信コマンド共通属性データ、デバイス情報データを設けておけば、外部機器とのインターフェイスのための動作プログラムを、外部機器の機種への依存性を小さくして作成することができる。
【００１７】
(2)この発明の一側面によるマン・マシン・インターフェイス機器は、通信手段が、受信命令の場合は、受信命令に記述されているデバイスとデバイス情報データと通信コマンド共通属性データとフレームフォーマットとに基づいて受信したフレームを解析し、送信命令の場合は、送信命令に記述されているデバイスのデータをデバイステーブルから取得し、デバイス情報データと通信コマンド共通属性データとフレームフォーマットとに基づいてフレームを生成して外部機器に送信することを特徴としている。
【００１８】
したがって、外部機器の機種に拘わらず、データの送受信を行うことが可能となる。
【００１９】
(3)この発明の一側面によるマン・マシン・インターフェイス機器は、マン・マシン・インターフェイス機器のプロジェクトデータを生成して出力する作画装置であって、ユーザによって入力され、あるいは予め用意された、外部機器との通信の基本処理を行うインターフェイス基本コマンドを記録する記録部と、外部機器との間でのデータの送受信を含む命令を備えて構成される動作プログラムを、ユーザからの入力に応じて生成する生成手段と、外部機器のデバイスの種類毎に少なくともデータ桁数、アドレス桁数、種別コードを含むデバイス情報データおよび少なくともアドレスおよびデータのデータ形式を含む通信コマンド共通属性データをユーザが入力するための入力手段と、インターフェイス基本コマンドとデバイス情報データと通信コマンド共通属性データと動作プログラムとを含むプロジェクトデータを出力する出力手段とを備えている。
【００２０】
したがって、外部機器の機種に依存するインターフェイス基本コマンド、デバイス情報データ、通信コマンド共通属性データと、外部機器の機種依存性の小さい動作プログラムとに分離することによって、異なる機種の外部機器への対応が容易となる。すなわち、一旦、インターフェイス基本コマンド、デバイス情報データ、通信コマンド共通属性データを記憶しておけば、外部機器の機種依存性の小さい動作プログラムを生成することで簡単にインターフェイスを実現できる。また、インターフェイス基本コマンド、デバイス情報データ、通信コマンド共通属性データを用意すれば、作成した動作プログラムを他の機種の外部機器にもそのまま、あるいは、わずかな修正で用いることができる。
【００２１】
この発明において「マン・マシン・インターフェイス機器」とは、機械と人間とのインターフェイスをとるための機器をいい、プログラマブル表示器などがこれに該当する。
【００２２】
「プログラマブル表示器」とは、少なくとも工作機械（ＮＣ）などの状態を確認することのできる装置をいい、さらに工作機械などに指令を与えるようになっていてもよい。また、工作機械だけでなく、ＰＬＣ、エレベータ運行制御器、ロボットなどを対象としてもよい。
【００２３】
「記録部」とは、少なくともデバイス情報データを記録することのできるものをいい、メモリ、ハードディスク、ＣＤ−ＲＯＭなどの形式を問わない。実施形態では、Ｐ−ＲＯＭ３０やメモリ２８がこれに該当する。
【００２４】
「通信手段」とは、少なくとも工作機器（ＮＣ）からのデータを受信する事のできる手段をいう。実施形態では、図１１のステップＳ４１等がこれに対応する。
【００２５】
「プログラム」とは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【発明を実施するための形態】
【００２６】
１．全体的構成
図１に、この発明の一実施形態によるマン・マシン・インターフェイス機器としてのプログラマブル表示器２の機能ブロック図を示す。処理手段７は、動作プログラムを解釈し、これに従った処理を実行するものである。処理手段７は、受信処理手段６と送信処理手段８とを備えている。
【００２７】
送信処理手段８は、動作プログラムからの指令を受けて、動作プログラムによって、直接または間接的に指定されたＮＣ加工機４（外部機器）のデバイスＤ1、Ｄ2・・・Ｄnのいずれかに対してデータを送信して書き込む。この際、送信処理手段８は、ＮＣ加工機４とのデータやりとりのためのインターフェイス基本コマンド１２、共通属性データ１４、デバイス情報データ１６を参照して、指定されたデバイスＤ1、Ｄ2・・・Ｄnとの通信を行う。
【００２８】
ここで、インターフェイス基本コマンド１２は、ＮＣ加工機４との通信のための基本となるコマンドである。具体的には、ＮＣ加工機４のデバイスに対する書込リクエスト送信コマンド（デバイスに対してデータの書込を求める）、書込レスポンス受信コマンド（デバイスからの書込完了の連絡）、読出リクエスト送信コマンド（デバイスデータの読出を求める）、読出レスポンス受信コマンド（デバイスからのデータの受信）などのコマンドのフレームフォーマットを、インターフェイス基本コマンド１２として記録している。なお、このインターフェイス基本コマンド１２は、ＮＣ加工機の種類によって異なるものである。したがって、ＮＣ加工機の各機種毎に用意しておくことが好ましい。
【００２９】
共通属性データ１４は、上記のインターフェイス基本コマンド１２をＮＣ加工機４との間でやりとりするために必要な属性である。アドレスやデータの形式（ＡＳＣＩＩコードかＢＩＮコードかなど）、アドレスやデータの格納方式（上位バイトからあるいは下位バイトから格納されているかなど）、パリティチェックの方式などについての属性が記述されている。この属性は、各コマンドに共通な属性であり、ＮＣ加工機の機種毎に異なるのが通常である。したがって、ＮＣ加工機の各機種毎に用意しておくことが好ましい。
【００３０】
デバイス情報データ１６は、デバイスとの通信を行う際の、アドレスの桁数、データの桁数などを記述したものである。このデバイス情報データ１６は、同じＮＣ加工機であってもデバイスの種類ごとに異なる。したがって、デバイスの種類毎に用意することが好ましい。
【００３１】
送信処理手段８は、上記のインターフェイス基本コマンド１２、共通属性データ１４、デバイス情報データ１６を参照して、指定されたデバイスＤ1、Ｄ2・・・Ｄnに対する書込を行う。
【００３２】
一方、受信処理手段６も同様に、上記のインターフェイス基本コマンド１２、共通属性データ１４、デバイス情報データ１６を参照して、指定されたデバイスＤ1、Ｄ2・・・Ｄnからのデータの読み出しを行う。読み出したデータは、動作プログラムに与える。
【００３３】
なお、この実施形態では、送信処理手段８と受信処理手段６によって通信手段が構成されている。
【００３４】
２．ハードウエア構成およびデータ
図２に、プログラマブル表示器２のハードウエア構成を示す。ＣＰＵ２０には、液晶ディスプレイやタッチスクリーンなどの表示部２２、入出力インターフェイス（Ｉ／Ｆ）２４、入力キーなどの入力部２６、メモリ２８、Ｐ−ＲＯＭ３０、入出力インターフェイス（Ｉ／Ｆ）３２が接続されている。入出力インターフェイス２４は、ＮＣ工作機４との接続を行うものである。入出力インターフェイス３２は、インターフェイスプログラム作成装置である作画装置５（後述）との接続を行うものである。
【００３５】
タッチスクリーン２２は、ディスプレイの画面上に透明電極が配置され、表示するだけでなくユーザが入力可能に構成されている。入力部２６は、たとえばハードウエアとしての入力ボタンであるが、ソフトウエアと協働して動作するタッチスクリーンであってもよい。メモリ２８は、ＣＰＵ２０のワークエリアとして機能する。
【００３６】
プログラムＲＯＭ（Ｐ−ＲＯＭ）３０には、システム処理プログラム３４が記録されている。さらに、ユーザによって作成された画面データ３６、画面デバイステーブル３８、インターフェイス基本コマンド１２、通信コマンド共通属性データ１４（共通属性データ）、デバイス情報テーブル１６（デバイス情報データ）、動作プログラム４２が記録されている。なお、通信コマンド共通属性データ１４、デバイス情報テーブル１６は、それぞれ、図１の共通属性データ１４、デバイス情報データ１６に対応するものであるから、同一の符号を付している。
【００３７】
Ｐ−ＲＯＭ３０に記録された通信コマンド共通属性データ１４の例を、図３に示す。アドレス変換形式の「ＢＣＤ−＞ＡＳＣＩＩ」は、アドレスデータについて、プログラマブル表示器２ではＢＣＤコードを使用しており、ＮＣ加工機４との通信ではＡＳＣＩＩコードを使用していることを示している。これにより、プログラマブル表示器２からＮＣ加工機４にアドレスデータを送る場合には、ＡＳＣＩＩコードに変換して送信する必要があることがわかる。
【００３８】
また、ＮＣ加工機の種類によっては、アドレスの格納方法が上位バイトからであったり、下位バイトからであったりする。アドレス格納方法は、これを示している。
【００３９】
データ変換形式、データ格納方法についても同様に記録されている。
【００４０】
ＢＣＣ計算では、ＮＣ加工機４との通信におけるパリティ値の計算方法を記述している。
【００４１】
Ｐ−ＲＯＭ３０に記録されたインターフェイス基本コマンド１２の例を、図４、図５に示す。これらは、ＮＣ加工機の機種毎に用意されたものから、選択されたものである。なお、予め用意してあるコマンドを参考にするなどして、ユーザが
インターフェイス基本コマンドを作成することもできる。なお、基本コマンドの定義項目としては、定数、変数（デバイス値）、画面デバイス読出、画面デバイス書込、デバイスの個数、種別、アドレス、データ、ＢＣＣ、スキップなどの項目が設けられている。
【００４２】
図４Ａは、デバイス（外部機器）からデータを読み出す際の読出要求コマンドである。この例では、送信コマンド１として定義されている。なお、コマンド内容を理解しやすくするためコメント欄には「読出要求送信」が記述されている。
【００４３】
先頭の定数部分「０５  ３０  ３０  ３０  ５２」は、このコマンドが読出要求コマンドであることを示すコードである。最後の定数部分「０Ｄ」は、このコマンドの終了を示している。「種別」「アドレス」「個数」「ＢＣＣ」の部分は、可変長の項目だけが設定されておりコマンドは完成していない。これは、実行時に、システム処理プログラム３４が、動作プログラムの送信命令１に記述されたデバイスやデバイス情報テーブル１６などの情報をもとに「種別」「アドレス」「個数」「ＢＣＣ」の部分の内容を生成して完成させて実行するからである。つまり、読出要求コマンドは、コマンドを生成するために用意されたスケルトン（コマンドの仮想的な骨格の構造（フレームフォーマット））である。なお、「個数」は、連続して読み出すアドレスの個数、「ＢＣＣ」はパリティを示している。
【００４４】
図４Ｂは、デバイスからデータを受信する際のデータ読出のコマンドである。この例では、受信コマンド１として定義されている。デバイスからデータを読み出す際には、図４Ａの読出要求をデバイスに与え、これに応答してデバイスから図４Ｂのコマンドとして送られてくるデータを受信する。このデータ読出コマンドも読出要求コマンドと同じように、先頭部分にデータ読出コマンドであることを示すコード「０６  ３０  ３０  ３０」が記述されている。これに続いて、「データ」「ＢＣＣ」の項目が用意されている。システム処理プログラム３４は、デバイスから受信したデータを、動作プログラムの受信命令１に記述されたデバイスやデータ読出コマンドやデバイス情報テーブル１６などに従って解釈して必要なデータを取得する。最後の定数部分「０Ｄ」は、このコマンドの終了を示している。
【００４５】
図４Ｃは、デバイスからのデータ読み出しを停止するためのコマンドである。この例では、送信コマンド２として定義されている。デバイスからのデータの読み出しを停止する際には、図４Ｃの読出停止コマンドをデバイスに与える。このデータ読出停止コマンドも読出要求コマンドと同じように、先頭部分にデータ読出停止コマンドであることを示すコード「０５  ３０  ３０  ３０  ５３」が記述されている。これに続いて、「ＢＣＣ」の項目が用意されている。最後の定数部分「０Ｄ」は、このコマンドの終了を示している。
【００４６】
図５Ａは、デバイスにデータを書き込む際の書込要求コマンドのスケルトンである。図５Ｂは、デバイスから送られてくるデータ書込完了コマンドのスケルトンを示している。
【００４７】
図４、図５以外にもコマンドのスケルトンが入力され記録されているが、同様の形式であるのでここでは省略する。なお、各コマンドのコードや、これに続いてどのような項目（「種別」「アドレス」「個数」「ＢＣＣ」など）がどのような順序で続くかは、外部機器によって異なる。したがって、使用するＮＣ加工機ごとに、上記のインターフェイス基本コマンド１２をＰ−ＲＯＭ３０に記録しておき、選択して使用するようにすればよい。
【００４８】
Ｐ−ＲＯＭ３０に記録されたデバイス情報テーブル１６の例を、図６に示す。ＮＣ加工機４の各デバイスは、その種類によって、データの記録の仕方などが異なっている。これを示したのが、デバイス情報テーブル１６である。具体的には、デバイスの種類毎に、アドレス桁数やデータ桁数などが記述されている。図６では、デバイスの種類として「データレジスタ」「内部リレー」のみが示されているが、実際には多くの種類のデバイスがある。
【００４９】
なお、図３〜図６では、各データを入力するための画面として示しているが、Ｐ−ＲＯＭ３０に記録されるデータも同様の形式となっている。
【００５０】
Ｐ−ＲＯＭ３０に記録された動作プログラム４２の例を、図７に示す。動作プログラム４２は、プログラマブル表示器２の表示画面の動作を決定するプログラムであり、ユーザが作成することができる。図７に示す動作プログラム４２は、図８に示すような動作をさせるためのものである。まず、最初に図８Ａの画面を表示部２２に表示する。ユーザにより目標個数が入力部２６から入力され、入力部２６の設定指示ボタン８０が押されると、ＮＣ加工機に設定指令を出して、画面２に表示が変わる。画面２では、ＮＣ加工機４から生産個数データを受けて、これを表示する。なお、ユーザが、入力部２６のＳＴＯＰボタン８２を押下すると、表示処理を停止する。
【００５１】
図８のような画面表示を行うためには、図７の動作プログラム４２とは別に、図９に示す画面データ３６、図１０に示す画面デバイステーブル３８が必要であり、これらもＰ−ＲＯＭ３０に記録されている。
【００５２】
３．システム処理プログラム３４の動作
図１１に、システム処理プログラム３４のフローチャートを示す。システム処理プログラム３４は、上記の動作プログラム４２を解釈して実行するためのプログラムである。
【００５３】
まず、ステップＳ１１において、ＣＰＵ２０はシステムの初期化を行う。次に、動作プログラム４２（図７参照）の１行目の命令を取得し、その命令内容に応じて処理内容を実行する。図７の動作プログラム４２では、１行目の命令は画面Start命令であるので、ステップＳ２１以下を実行する。
【００５４】
ＣＰＵ２０は、画面Start命令によって指定された画面の画面データを読み出す。ここで１行目は、”画面１Start”であるから、表示部２２の画面をクリアする。続いて、ステップＳ２２において、画面１についての画面データ（図９参照）を読み出して表示部２２に表示する。
【００５５】
図９の画面１データでは、「目標個数」という文字を、Ｘ座標を１００、Ｙ座標を２００の位置に表示する旨が指定されている。これにより、ＣＰＵ２０は、図８Ａのように「目標個数」という文字を指定されたＸ座標、Ｙ座標に表示する（目標個数の文字の基本位置（左上隅など）をＸ座標、Ｙ座標にするように表示する）。
【００５６】
さらに、画面１データの機能部品データの項目に示された機能部品を表示する。
【００５７】
すなわち「数値入力器」を処理する。図８Ａでは、「目標個数」の右側に表示されている入力のための領域５０がこれに対応する。領域５０には、数値入力器が選択されれば、数値入力を促す入力カーソルが表示される。ユーザは、数値キーを押下して、入力カーソルの位置に、生産に対する目標個数を入力する。図９では、数値入力器としてＤ７が指定されているので、入力されたデータはデバイステーブルのデバイスＤ７に記録されるとともに、これが領域５０に表示されることになる。なお、「Ｄ」はデバイスの種類を表し、「７」はアドレスを示している。
【００５８】
次に、ＣＰＵ２０は、ユーザが入力部２６より入力したデータがあれば、これを、画面１デバイステーブル（図１０）に記録するとともに、所定の位置に表示する（ステップＳ２３）。ここでは、ユーザによるデータ入力はまだないので、ＣＰＵ２０は、この処理を行わない。
【００５９】
続いてＣＰＵ２０は、図９の画面１データの指示に従って、ＮＣ加工機４の各デバイスの状況を表示する処理を行う。ＮＣ加工機４の各デバイスから読み出したデータ、デバイスに書き込むためのデータが、デバイステーブルに記録されているので、これを用いて上記処理を行う。具体的には、ＣＰＵ２０は、図１０の画面１デバイステーブルの読出デバイスの値を、表示部２２に表示する（ステップＳ２４）。図１０の画面１デバイステーブルにおいては、読出デバイスが指定されていないので、ここではＣＰＵ２０はこの処理を行わない。
【００６０】
以上のようにして画面Strat処理が終了すると、表示部２２の画面表示は図８Ａのような状態となる。次に、ＣＰＵ２０は、動作プログラム４２の次の行を取得して実行する。
【００６１】
２行目は、画面Strat命令、画面End命令のいずれでもないので、その他の命令としてステップＳ４１において処理される。２行目の「SW1 OFF JUMP ラベル1」は、ＳＷ１がオフであれば、ラベル１にジャンプするという命令である。ここで、ＳＷ１は、入力部２６の設定指示ボタン８０の操作状況を示すスイッチである。初期状態においてはＳＷ１はオフであるが、設定指示ボタン８０が押下されるとオンに変化する。ここでは、設定指示ボタン８０はまだ押下されておらず、ＳＷ１はオフであるから、ＣＰＵ２０は、次に取得する行を６行目（ラベル１に対応）として、ステップＳ４１を終了する。
【００６２】
次に、ＣＰＵ２０は、ラベル１に対応する６行目のデータを取得して処理する。
【００６３】
６行目には、「ラベル1」との記述があるだけであるから、ステップＳ４１において何もせず、これを終了する。
【００６４】
続いて、ＣＰＵ２０は、７行目のデータ「画面１End」を取得する。画面End命令があると、ＣＰＵ２０は、次に取得する行を対応する画面Start命令の行であるとする（ステップＳ３１）。
【００６５】
したがって、ＣＰＵ２０は、動作プログラムの１行目以下を再び繰り返して実行する。これにより、処理は、１行目、２行目、６行目、７行目、１行目・・・と循環してなされることになる。この時の表示画面は図８Ａから変化しない。
【００６６】
次に、ユーザは、入力部２８の数値キーを押下し確定キー（図示せず）を押下して、生産に対する目標個数を入力する。入力されたデータは、上記循環して実行されている命令中の、１行目の画面Start命令に対するステップＳ２３の処理において、画面１デバイステーブルの対応する書込デバイスに記録される（図１０参照）。なお、図９の画面データにおいて数値入力器Ｄ７としてデバイスが指定されているので、これに対応するＤ７の書込デバイスについて、数値が記録されることになる。ユーザが、「３５２１」を入力したのであれば、図１０のようにその値が記録される。さらに、ＣＰＵ２０は、この値を、図８Ａの画面１の領域５０に表示する。
【００６７】
ユーザが目標個数の入力を完了し、設定指示ボタン８０を押下するとＳＷ１がオンとなる。ＣＰＵ２０は、上記循環処理の２行目において、ＳＷ１がオンであることから、ラベル１にジャンプせず、３行目に処理を移す。動作プログラム４２の３行目「XS3 送信3 D7,1,D7」は、送信命令の起動条件フラグＸＳ３が「１」であれば、「送信３」のスケルトン命令につき、「D7,1,D7」のパラメータを用いて送信命令を完成させ、これを実行するという命令である。
【００６８】
ＣＰＵ２０は、３行目の命令を取得し、ステップＳ４１においてこれを解釈して実行する。フラグＸＳ３は初期状態において「１」である。したがって、最初に３行目の命令を実行する場合には「１」となっているから、これが実行される。ただし、３行目が一度実行されると以後は「０」となるフラグである。したがって、３行目の命令の送信コマンドは、１回だけ実行されるようになっている。
【００６９】
ＣＰＵ２０は、図５Ａに示す「送信３」のスケルトンを参照して送信命令を完成させ、画面１デバイステーブルの書込デバイスＤ７の値「３５２１」を、ＮＣ加工機４の対応するデバイスに送信する。なお、このデータ受信したＮＣ加工機４は、これを所定のデバイス（プログラマブル表示器のデバイスＤ２に対応付けられたデバイス）に記録する。なお、送信処理の詳細については、後述する。
【００７０】
続いて、ＣＰＵ２０は、４行目の命令「XR3 受信３」を取得し、ステップＳ４１においてこれを解釈して実行する。ここで、受信命令の起動条件フラグＸＲ３は、送信命令３の起動条件フラグＸＳ３と同じ内容である。送信命令３を実行後、ＣＰＵ２０は、図５Ｂの「受信３」のスケルトン命令をもちいて受信命令を完成させこれを実行する。「受信３」の命令は、ＮＣ加工機４からの書込完了通知を受け取るための命令である。つまり、３行目において送信した目標個数「３５２１」が、ＮＣ加工機４において正しく受信され、対応するデバイスに記録されたことを確認するための命令である。この受信処理の詳細については、後述する。
【００７１】
フラグＸＲ３が「１」でなければ、ＣＰＵ２０は、５行目の命令「SR31 JUMP画面２」を取得し、ステップＳ４１においてこれを解釈して実行する。５行目の命令は、フラグＳＲ３１が「１」であれば、画面２にジャンプするという意味である。ここで、フラグＳＲ３１は、受信命令３の受信完了フラグである。初期状態においては「０」であり、ＮＣ加工機４からの書込完了通知を受けて「１」となるフラグである。
【００７２】
フラグＳＲ３１が「１」でなければ、ＣＰＵ２０は、６行目、７行目、１行目、２行目、３行目、４行目、５行目、６行目・・・というように循環した処理を繰り返す。
【００７３】
ＮＣ加工機４に対して目標個数が送信され記録されると、フラグＳＲ３１が「１」となる。したがって、ＣＰＵ２０は、５行目の処理において、次に取得する行を８行目であるとして処理を進める。
【００７４】
以上の処理の概要を示したのが、図１２の「書込要求送信」「書込完了受信」である。
【００７５】
次に、ＣＰＵ２０は、８行目の「画面２Start」命令を取得し、ステップＳ２１〜Ｓ２４に従ってこれを実行する。まず、ステップＳ２２において、図９の画面２データを取得し、これに基づいて描画部品データの表示を行う。これにより、画面には、「不良個数」「目標個数」「生産個数」「あと」の文字が表示され、それぞれの右側に数値表示器のデバイスＤ１、Ｄ２、Ｄ３、Ｄ４の値を表示するための領域が確保される（図８Ｂ参照）。
【００７６】
画面２においては、ユーザによる入力はないので、ステップＳ２３では何も行われない。
【００７７】
ＣＰＵ２０は、ステップＳ２４において、図９の画面２データの機能部品データを取得し、これに基づいて機能部品データ（数値表示器）の処理を行う。図１０の画面２デバイステーブルのデバイスＤ１、Ｄ２、Ｄ３、Ｄ４の値を読み出し、上記の所定の領域に表示する。デバイスＤ１は、ＮＣ加工機４において記録している不良個数の値を受信して記録するための領域である。デバイスＤ２は、ＮＣ加工機４において記録している目標個数の値を受信して記録するための領域である。デバイスＤ３は、ＮＣ加工機４において記録している生産個数の値を受信して記録するための領域である。デバイスＤ４は、ＮＣ加工機４において記録している残り個数の値を受信して記録するための領域である。
【００７８】
ここでは、デバイステーブルのデバイスＤ１、Ｄ２、Ｄ３、Ｄ４には、何も記録されていないので、「０」が表示されることになる。
【００７９】
以上のようにして、画面２Start命令の処理を終了すると、ＣＰＵ２０は、９行目の処理に移る。ＣＰＵ２０は、９行目の「XS1 送信１ D1,4」を取得し、ステップＳ４１においてこれを解釈して実行する。９行目は、フラグＸＳ１が「１」であれば、「送信１」コマンドのスケルトンに基づいて、パラメータ「D1,4」によって送信コマンドを完成させ、これを実行するという命令である。送信処理の詳細については、後述する。
【００８０】
フラグＸＳ１は、ＸＳ３と同じように初期状態では「１」であり、９行目が実行されると「０」となる。つまり、９行目の送信命令は１回だけ実行される。「送信１」コマンドは、図４Ａに示すように、ＮＣ加工機４に対してそのデバイスのデータ読み出しを求める命令を送信するためのものである。パラメータ「D1,4」はデバイスＤ１から連続したアドレスの４つのデバイスの値を求める意味である。したがって、この命令が実行されると、ＮＣ加工機４に対して、デバイスＤ１、Ｄ２、Ｄ３、Ｄ４に対する読み出し命令が送られることになる。これを模式的に示したのが、図１２の「読出要求送信」である。
【００８１】
次に、ＣＰＵ２０は、１０行目の命令「SW2 JUMP ラベル２」を取得し、ステップＳ４１において解釈して実行する。これは、フラグＳＷ２が「オン」であれば、「ラベル２」にジャンプという命令である。フラグＳＷ２は、初期状態では「オフ」であり、ＳＴＯＰボタン８２が押下されると「オン」となる。ここでは、ＳＷ２は「オフ」であるから、次の行に処理を移す。
【００８２】
ＣＰＵ２０は、１１行目の命令「XR1 受信１ D1,D2,D3,D4」を取得し、ステップＳ４１において解釈して実行する。これは、フラグＸＲ１が「１」であれば、「受信１」スケルトン命令に基づいて、パラメータ「D1,D2,D3,D4」を参照して受信命令を完成させ実行するという命令である。受信命令１の起動条件フラグＸＲ１は、初期状態においては「０」であり、送信命令１からの送信完了通知を受けて「１」となるフラグである。ＣＰＵ２０は、ＮＣ加工機４から送信されてくるデータを受信し、それぞれ、画面２デバイステーブルの読出デバイスＤ１、Ｄ２、Ｄ３、Ｄ４に記録する。これを概略的に示すと、図１２の「データ読出受信」となる。受信処理の詳細については後述する。
【００８３】
続いて、ＣＰＵ２０は、１２行目の命令「SW2 OFF JUMP ラベル３」を取得し、ステップＳ４１において解釈して実行する。これは、フラグＳＷ２が「オフ」であれば、「ラベル３」にジャンプという命令である。ここでは、ＳＴＯＰボタン８２が押されておらず、ＳＷ２は「オフ」であるから、ＣＰＵ２０は、次に１５行目を実行することとなる。
【００８４】
ＣＰＵ２０は、１５行目、１６行目と処理を進め、８行目に再び処理を戻す。したがって、８行目、９行目、１０行目、１１行目、１２行目、１５行目、１６行目、８行目・・・というように循環的な処理がなされる。これにより、１１行目で受信した各デバイスの値が、８行目において機能部品の数値表示器の処理によって画面上に表示されることになる（ステップＳ２４、図８Ｂ参照）。また、循環的に処理がなされているので、画面上には、各デバイスの最新の値が表示されることになる。
【００８５】
なお、ユーザがＳＴＯＰボタン８２を押下するとＳＷ２が「オン」となって、１０行目から１３行目にジャンプし、１４行目において「送信２」命令が実行されて、デバイス値の読み出しと表示が終了される。
【００８６】
上記のようにＮＣ加工機４の各レジスタＤ１、Ｄ２、Ｄ３、Ｄ４の値が読み出されて、表示部２２に表示される。これにより、ユーザは、生産の進行状況を知ることができる。
【００８７】
上記のように、ユーザは、動作プログラム４２、画面データ３６、画面デバイステーブル３８を用意することによって、ＮＣ加工機４のデバイス（上記レジスタなど）の値を表示部２２に表示し、入力部２６からＮＣ加工機４の動作を制御したりすることができる。
【００８８】
４．通信処理の詳細
上記の処理のうち、送信コマンド、受信コマンドをスケルトンから生成し、これを実行する処理について、以下詳述する。
【００８９】
動作プログラム４２の３行目「XS3 送信３ D7,1,D7」について、ＣＰＵ２０は、次のようにして送信コマンドを完成させて実行する。まず、「送信３」命令のスケルトン（インターフェイス基本コマンド）を、Ｐ−ＲＯＭ３０から取得する。「送信３」のスケルトンは、図５Ａに示すような書込要求送信命令である。
【００９０】
このスケルトンにおいては、種別、アドレス、個数、データが空欄となっている。ＣＰＵ２０は、記述されたパラメータ「D7,1,D7」に従って順次空欄を補充する。この際、ＣＰＵ２０は、図６のデバイス情報テーブルを参照して、補充を行う。
【００９１】
まず、パラメータの最初の「D7」を用いて補充がなされる。種別が「Ｄ」であるから、デバイス情報テーブルのシンボル名Ｄの欄を参照して処理がなされる。まず、種別「Ｄ」に対応する「４４」が補充される。アドレスには、アドレス桁数を参照して「０００７」が補充される。次に、パラメータの「1」とデバイス情報テーブルの個数桁数「２桁」を用いて、個数には「０１」が補充される。個数は、書き込むべきデータの数を示している。パラメータの最後の「D7」は、プログラマブル表示器の画面デバイステーブルのいずれのデータを送信して書き込むかを表している。したがって、ＣＰＵ２０は、デバイスＤ７の値（図１０参照）を読み出して、これを指定のデータ桁数にて補充する。図１０の例であれば、「３５２１」が読み出されて、「０ＤＣ１」（１６進表記）とされる。
【００９２】
ＣＰＵ２０は、以上のようにして、書込要求送信命令を完成させると、次に、図３の通信コマンド共通属性を参照して、アドレスとデータの変換形式として示された形式にしたがって変換する。アドレスは、ＡＳＣＩＩコードに変換される。データは、データ変換式の「ＢＩＮ−＞ＡＳＣＩＩ」によって、１６進のデバイス値をＡＳＣＩＩコードに変換する。つまり、アドレス「０００７」が「30 30 30 37」に変換され、デバイスＤ７の値「３５３１」（１０進表記）が１６進数「０ＤＣ１」のＡＳＣＩＩコード「30 44 43 31」に変換されることになる。
【００９３】
ここでは、書込要求コマンドとして、「05 30 30 30 57 44 30 30 30 37 30 31 30 44 43 31 -- 0D」（16進数表記）が完成する。なお、ここで、「４桁」は「４バイト」を意味している。また、上記コマンドにおいて、「--」の部分はパリティチェックのＢＣＣが記述されるべき部分である。そこで、ＣＰＵ２０は、図３の通信コマンド共通属性を参照して、ＢＣＣ計算の方法を取得し、ＢＣＣを計算して「--」の部分に記述する。たとえば、ＢＣＣが「26」であればこれを記述して「05 30 30 30 57 44 30  30 30 37 30 31 30 44 43 31 32 36 0D」というコマンドが完成する。
【００９４】
さらに、ＣＰＵ２０はこれをＮＣ加工機４に送信する際に、通信コマンド共通属性を参照して、このコマンドをＡＳＣＩＩコードに変換する。また、アドレス格納方法として示された方法に従って、アドレスの上位桁と下位桁を入れ替える。ここでは、もともと上位バイトからアドレスが示されているので何も変更しない。しかし、通信コマンド共通属性において「下位バイトから」と示されていれば、アドレスの部分の順序を逆にして「05 30 30 30 57 44 30 37 30 30 30 31 30 44 43 31 32 36 0D」とする。このようにして、完成した書込要求コマンドをＮＣ加工機４の形式に変換して送信する。
【００９５】
ＣＰＵ２０は、動作プログラム４２の４行目「XR3 受信３」についても同様にして、スケルトン、デバイス情報テーブル、通信コマンド共通属性を参照して受信命令を完成させて実行する。完成した受信命令は「06 30 30 30 33 36 0D」となる。
【００９６】
同様に、動作プログラム４２の９行目「XS1 送信１ D1,4」については、ＣＰＵ２０は、「05 30 30 30 52 44 30 30 30 31 30 34 32 36 0D」という命令を完成させて実行する。
【００９７】
また、１１行目の「XR1 受信１ D1,D2,D3,D4」についても、ＣＰＵ２０は、図４Ｂの「受信１」スケルトンを用いて受信コマンドを完成させる。この受信コマンドによって、ＣＰＵ２０は、ＮＣ加工機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」はデータ読み出し受信であることを示すコマンド識別子である。このスケルトンでは、データ、ＢＣＣが空欄となっている。ＣＰＵ２０は、記述されたパラメータ「D1,D2,D3.D4」に従って順次空欄を補充する。この際、ＣＰＵ２０は、図６のデバイス情報テーブルを参照して、補充を行う。これにより、データの欄に「D1 D2 D3 D4」が補充される。これは、ＮＣ加工機４側からコマンドの識別子「06 30 30 30」に続いて順次送られてくる４つのデータが、それぞれ、デバイスＤ１、Ｄ２、Ｄ３、Ｄ４に対応していることを示している。そして、それに続いてＢＣＣが連続することが分かる。
【００９９】
ただし、これだけでは、データの桁数が不明である。そこで、画面１デバイステーブル（図１０）を参照して、読み出し対象となっているデバイスの種別「４４」を取得し、図６のデバイス情報テーブルから当該種別のデバイスについてのデータ桁数「４桁」を取得する。これにより、ＣＰＵ２０は、データの桁数が４桁であることを知る。したがって、「06 30 30 30」に続く４桁「30 30 30 35」をデータとして取得する。以下同じように４桁ずつデータとして取得する。
【０１００】
ＣＰＵ２０は、取得したデータにつき、図３の通信コマンド共通属性を参照して、データの格納方法が「上位バイトから」であるか「下位バイトから」であるかを判断する。「下位バイトから」となっていれば、上位バイトと下位バイトとを入れ換える。ここでは、「上位バイトから」であるから、データの並び替えは行わない。
【０１０１】
続いて、ＣＰＵ２０は、通信コマンド共通属性を参照しＢＣＣの計算を行う。ＢＣＣの桁数は「２桁」となっているので、計算したＢＣＣを２桁で表現し、データ「30 30 30 35 30 44 43 31 30 43 32 37 30 31 39 35」に続く２桁「34 45」と比べて、エラーのチェックを行う。一致しない場合には、ＮＣ加工機４に対してデータの再送を要求する。ＢＣＣが正しければ、取得したデータを、画面２デバイステーブルの対応するデバイスに記憶する。
【０１０２】
この実施形態によれば、インターフェイス基本コマンド（図４、図５）とデバイス情報テーブル１６を、ＮＣ加工機４の機種に合わせて用意することで、各種のＮＣ加工機４に対応することができる。
【０１０３】
この実施形態によれば、ユーザが外部機器との通信処理の順序などを動作プログラムとして記述するようになっている。したがって、外部機器との無駄な通信を行うことなく、ユーザの希望に合致した通信処理を行うことが可能である。
【０１０４】
５．プロジェクトデータの作成
上記では、Ｐ−ＲＯＭ３０に画面データ３６、画面デバイステーブル３８、インターフェイス基本コマンド１２、通信コマンド共通属性１４、デバイス情報テーブル１６、動作プログラム４２（以上をまとめてプロジェクトデータという）を記録した後の動作を説明した。以下では、このプロジェクトデータを作画装置５（図２参照）によって作成する処理を説明する。作画装置は、いわゆるパーソナルコンピュータであり、ＣＰＵ、ハードディスク、ディスプレイ、キーボード、マウス（図示せず）などを備えている。
【０１０５】
図１３に、ハードディスクに記録されたプロジェクトデータ生成プログラムのフローチャートを示す。プロジェクトデータ生成プログラムを立ち上げて、初期メニューから、たとえば「インターフェイス基本コマンドの作成」を選択したとする。
【０１０６】
ＣＰＵは、まず、ステップＳ５１において、インターフェイス基本コマンドを入力するための初期画面（図１５参照）をディスプレイに表示する。ユーザは、定義したいコマンドを設定する。たとえば、図５Ａのような書込要求送信を定義する場合、プルダウンボタン４５がマウスでクリックされると、送信コマンド、受信コマンドのタイプが一覧表示される。ユーザは、送信コマンドを選択する。さらに、キーボードから番号欄４９にコマンド番号を入力する。次に、コメント欄４１に定義したいコマンドのコメント（書込要求送信）を入力する。
【０１０７】
続いて、項目名の空欄を埋めていく。ここでは、項目名の欄４２にプルダウンメニューボタン（図示せず）を設けており、これをクリックすることで、定数、変数（デバイス値）、画面デバイス読出、画面デバイス書込、デバイスの個数、種別、アドレス、データ、ＢＣＣ、スキップなどの項目名が一覧表示される。
【０１０８】
定数を選択すると、「定数」が項目名の欄４２の右隣の空欄に表示される。ユーザは、その下の欄に、「05 30 30 30 57」を入力する。他の空欄についても同様にして、図５Ａに示すような入力を完成する。
【０１０９】
完了ボタン４３がクリックされると、ＣＰＵは、入力された書込要求コマンドをハードディスクに記録する。このようにして、書込要求送信のコマンドを設定することができる。他のコマンドについても同様の処理によって設定することができる。
【０１１０】
また、通信コマンド共通属性、デバイス情報テーブルについても同様の処理によって設定してハードディスクに記録することができる（ステップＳ５２、Ｓ５３）。通信コマンド共通属性設定のための画面を図３に、デバイス情報テーブル設定のための画面を図６に示す。
【０１１１】
続いて、ステップS５４に進んで、ユーザが作画装置の作画機能を使って図８Ａ、８Ｂに示す画面１、２をマウスなどを用いて描く。そして、ユーザから、図８Ａ、８Ｂに示す画面１、２上でマウスによって右ボタンをクリックし、描画部品と機能部品入力のプロパティのダイアログボックスを開く。そして、描画部品の文字表示、機能部品の数値表示器と数値入力器などの部品を選択し、当該部品のパラメータを設定し、画面上に当該部品を配置する。ＣＰＵは、ユーザからの入力に応じて、図９に示すような画面データを生成して記録する（ステップＳ５４）。ステップＳ５５において、動作プログラム（図７）のリストの命令行をマウスによってダブルクリックし、マクロ命令入力のプロパティのダイアログボックスを開く。そして、画面Start、画面End、送信命令、受信命令、文字列比較、四則／論理演算、ユーザが作成した画面へ切り替える条件ジャンプ、ラベルなどのマクロ命令を選択し、当該マクロ命令のパラメータを設定する。これにより、入力されたマクロ命令が図７のように表示される。
【０１１２】
引き続き、ＣＰＵは、ユーザからの入力に応じて、図７に示すような動作プログラムを生成して記録する（ステップＳ５６）。
【０１１３】
このように、ユーザは、通信コマンド共通属性、インターフェイス基本コマンド、デバイス情報テーブルを、所望のＮＣ加工機４に合致するように設定することができる。したがってこれらを一旦設定すれば、ユーザは、動作プログラム(図７）、画面データ（図９）を作成する（ステップＳ５４、Ｓ５５）際に、ＮＣ加工機の送受信マクロ命令を意識する必要がなく、送受信マクロ命令を動作プログラムに組み込むことができ、一方で、外部機器との通信手順を詳細に設定でき、所望のマン・マシン・インターフェイス機器の通信制御プログラムの作成が容易である。
【０１１４】
上記のようにしてプロジェクトデータを入力後（ステップＳ５６）、ステップＳ５７において、画面デバイステーブル（図１０）を生成する。作成されたプロジェクトデータは、Ｉ／Ｆ３２（図２）を介して、プログラマブル表示器に転送される（ステップＳ５７）。
【０１１５】
なお、この実施形態では、通信コマンド共通属性、インターフェイス基本コマンド、デバイス情報テーブルをユーザが入力するようにしている。しかし、予め各種のＮＣ加工機についてこれらをハードディスクに記録しておき、選択して使用できるようにしてもよい。
【０１１６】
７．その他
上記実施形態においては、外部機器としてＮＣ加工機を用いているが、ＰＬＣやロボットなどを外部機器としてもよい。
【０１１７】
たとえば、外部機器としてエレベータコントローラ１０４を対象とした場合の実施形態を、図１４に示す。この実施形態によれば、エレベータコントローラ１０４からのデータを受けて階数等の表示をディスプレイ１２２にて行い、操作ボタン１２６の操作をエレベータコントローラ１０４に伝えることができる。
【０１１８】
上記実施形態では、各手段をプログラムによって実現しているが、その一部または全部をハードウエアのみによって実現するようにしてもよい。
【図面の簡単な説明】
【０１１９】
【図１】この発明の一実施形態によるプログラマブル表示器の機能ブロック図である。
【図２】プログラマブル表示器のハードウエア構成である。
【図３】通信コマンド共通属性の例である。
【図４】インターフェイス基本コマンドの例である。
【図５】インターフェイス基本コマンドの例である。
【図６】デバイス情報テーブルの例である。
【図７】動作プログラムを入力するための画面の例である。
【図８】表示画面の例である。
【図９】画面データの例である。
【図１０】画面デバイステーブルの例である。
【図１１】システム処理プログラムのフローチャートである。
【図１２】通信シーケンスを示す図である。
【図１３】生成プログラムのフローチャートである。
【図１４】他の機器に応用した場合の例を示す図である。
【図１５】インターフェイス基本コマンドの入力画面である。
【符号の説明】
【０１２０】
２・・・プログラマブル表示器
４・・・ＮＣ加工機（外部機器）
６・・・受信処理手段
８・・・送信処理手段
１０・・・記録部
１２・・・インターフェイス基本コマンド
１４・・・共通属性データ
１６・・・デバイス情報データ
【図１】
0005014094.tif 000002
【図２】
0005014094.tif 000003
【図３】
0005014094.tif 000004
【図４】
0005014094.tif 000005
【図５】
0005014094.tif 000006
【図６】
0005014094.tif 000007
【図７】
0005014094.tif 000008
【図８】
0005014094.tif 000009
【図９】
0005014094.tif 000010
【図１０】
0005014094.tif 000011
【図１１】
0005014094.tif 000012
【図１２】
0005014094.tif 000013
【図１３】
0005014094.tif 000014
【図１４】
0005014094.tif 000015
【図１５】
0005014094.tif 000016