(57)【特許請求の範囲】
【請求項１】
汎用キーボードからのキーボード入力データが入力可能なコンピュータと、モニタ対象が接続されたプログラマブルコントローラとを通信手段で接続し、プログラマブルコントローラに複数の押しボタンスイッチから構成されるキー入力手段を接続したリモートキー操作装置において、
プログラマブルコントローラには、キー入力手段により入力されたキー入力データを逐次蓄積可能なキー入力データ蓄積手段としてのリング状のバッファと、キー入力データをリング状のバッファに格納するキー入力データ格納手段とを備え、リング状のバッファに格納されたキー入力データをコンピュータに一括して転送可能に構成し、
コンピュータに、複数のアプリケーションプログラムから成るモニタプログラムと、アプリケーションプログラムの１つであるキーボード入力エミュレート手段とキー入力データ格納領域及び入力データ対応テーブルから成るキーボードエミュレータとを備え、キー入力データをキーボード入力エミュレート手段により汎用キーボードからのキーボード入力データとしてコンピュータに入力するように構成したことを特徴とするリモートキー操作装置。
【請求項２】
前記キー入力データ格納領域は、リング状のバッファの前記キー入力データを一括して取り込み、前記入力データ対応テーブルは、各キー入力データと１つ以上のキーボード入力データとの対応を示し、キーボード入力エミュレート手段は、キー入力データ格納領域に取り込んだ各キー入力データをキーボード入力データとして扱うときに、入力データ対応テーブルを参照して１つ以上のキーボード入力データの入力に対応することを特徴とする請求項１記載のリモートキー操作装置。
【請求項３】
前記リング状のバッファは、個数格納バッファと、位置格納バッファと、キー入力データ格納バッファとから構成され、キー入力データ格納バッファは、キー入力手段により入力されるキー入力データ全てを蓄積できるように個数が設定され、キー入力データの数がキー入力データ格納バッファ数を超えて入力された場合には、キー入力データ格納手段によって、最新のキー入力データが最古のキー入力データに上書き格納され、前記アプリケーションプログラムによりコンピュータで適宜に表示または記録され、キー入力データ格納バッファの個数が増やされることを特徴とする請求項１または２記載のリモートキー操作装置。
【請求項４】
キー入力手段の各工業用の押しボタンスイッチは夫々独立して交換可能であることを特徴とする請求項１から３何れか１項記載のリモートキー操作装置。
【請求項５】
プログラマブルコントローラは、通信インターフェイスを備え、コンピュータは、前記アプリケーションプログラムの要求によりコンピュータとプログラマブルコントローラ間の通信を処理する通信用ソフトと、通信インターフェイスとを含む通信コントロール部を備え、通信用ソフトは通信インターフェイス及びコンピュータとプログラマブルコントローラとの間のプロトコルに応じて入れ替えられるようになっていることを特徴とする請求項３又は４項記載のリモートキー操作装置。
【請求項６】
コンピュータとプログラマブルコントローラの通信手段は、夫々の通信インターフェイスを１回線で接続して成り、その１回線の通信手段によりプログラマブルコントローラに対する設定、収集データとキー入力データとをコンピュータが授受可能に構成したことを特徴とする請求項１から５何れか１項記載のリモートキー操作装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、汎用キーボードからキーボード入力データが入力可能なコンピュータとプログラマブルコントローラとを接続したものに関し、詳しくは、コンピュータにキーボード入力データをエミュレート可能なエミュレート手段を備えたものに関する。
【０００２】
【従来の技術】
従来から、プログラマブルコントローラからのデータのモニタ用等としてコンピュータ（パーソナルコンピュータ、以下ＰＣと記載）をプログラマブルコントローラ（以下ＰＬＣと記載）に接続しており、ＰＣで実行されるアプリケーションプログラムやＰＬＣの操作やデータに対する入力手段としてＰＣに接続された汎用キーボードが使用されていた。
【０００３】
【発明が解決しようとする課題】
ＰＣは、ＰＬＣと一緒に工場等に配置されるが、前記従来の技術に記載のように、ＰＣの汎用キーボードを入力手段として使用しているので、工場等の雰囲気の悪い場所では、油や塵埃等が汎用キーボードに付着し壊れ易く、汎用キーボードの寿命が短く、半年程度しかもたない問題があった。また、この寿命が短いために汎用キーボードに代えて、油や塵埃等に強い工業用のキーボードを使用すれば、寿命が長くなるが、汎用キーボードに比べ極めて高価である問題があった。
この発明の課題は、劣悪な使用環境であっても壊れにくく、安価であり、キーボードと同等の入力操作が可能なリモートキー操作装置を提供することである。
【０００４】
【課題を解決するための手段】
前記課題解決のため本願発明は、汎用キーボードからのキーボード入力データが入力可能なコンピュータと、モニタ対象が接続されたプログラマブルコントローラとを通信手段で接続し、プログラマブルコントローラに複数の押しボタンスイッチから構成されるキー入力手段を接続したリモートキー操作装置において、プログラマブルコントローラには、キー入力手段により入力されたキー入力データを逐次蓄積可能なキー入力データ蓄積手段としてのリング状のバッファと、キー入力データをリング状のバッファに格納するキー入力データ格納手段とを備え、リング状のバッファに格納されたキー入力データをコンピュータに一括して転送可能に構成し、コンピュータに、複数のアプリケーションプログラムから成るモニタプログラムと、アプリケーションプログラムの１つであるキーボード入力エミュレート手段とキー入力データ格納領域及び入力データ対応テーブルから成るキーボードエミュレータとを備え、キー入力データをキーボード入力エミュレート手段により汎用キーボードからのキーボード入力データとしてコンピュータに入力するように構成したことを特徴とする（請求項１）。これによれば、キー入力データを直接アプリケーションに渡すのではなく、キーボード入力エミュレート手段によってキーボード入力データに変換して渡すので、汎用キーボードと同等の入力とすることができ、アプリケーションの仕様に関係なく、キー入力データによりアプリケーションを操作可能である。また、キー入力データをリング状のバッファに格納した後一括して転送するので、キー入力データを１つ入力する毎に転送、処理する場合のように、転送、処理している間に次のキー入力データが入力されて転送、処理が間に合わないことが無くなるので、キー入力データの取りこぼしが無い。
【０００５】
前記キー入力データ格納領域は、リング状のバッファの前記キー入力データを一括して取り込み、前記入力データ対応テーブルは、各キー入力データと１つ以上のキーボード入力データとの対応を示し、キーボード入力エミュレート手段は、キー入力データ格納領域に取り込んだ各キー入力データをキーボード入力データとして扱うときに、入力データ対応テーブルを参照して１つ以上のキーボード入力データの入力に対応することを特徴とする（請求項２）。これによれば、入力データ対応テーブルにより１つのキー入力データが１つ以上のキーボード入力データと対応しているので、１つのキー入力データを入力することで複数のキーボード入力データを連続して入力したように、即ち押しボタンスイッチを１つ操作することで汎用キーボードの複数のキーを操作したこととなる。
【０００６】
前記リング状のバッファは、個数格納バッファと、位置格納バッファと、キー入力データ格納バッファとから構成され、キー入力データ格納バッファは、キー入力手段により入力されるキー入力データ全てを蓄積できるように個数が設定され、キー入力データの数がキー入力データ格納バッファ数を超えて入力された場合には、キー入力データ格納手段によって、最新のキー入力データが最古のキー入力データに上書き格納され、前記アプリケーションプログラムによりコンピュータで適宜に表示または記録され、キー入力データ格納バッファの個数が増やされることを特徴とする（請求項３）。これによれば、キー入力の際に先に入力されたキー入力データが処理されるのを待たずに次のキー入力を行えるのでキー入力の反応が速く、好適である。また、リング状のバッファにキー入力データを格納するので、新しくキー入力データが入力されると古いキー入力データに順番に上書きされ、少ないエリアで多くのキー入力データが記憶される。
【０００７】
前記キー入力手段の各工業用の押しボタンスイッチは夫々独立して交換可能であることを特徴とする（請求項４）。これにより工業用の押しボタンスイッチが壊れたとしても、壊れた押しボタンスイッチのみを交換すれば良く、更に押しボタンスイッチは部品毎に交換できるので、低コストであり好ましい。
【０００８】
プログラマブルコントローラは、通信インターフェイスを備え、コンピュータは、前記アプリケーションプログラムの要求によりコンピュータとプログラマブルコントローラ間の通信を処理する通信用ソフトと、通信インターフェイスとを含む通信コントロール部を備え、通信用ソフトは通信インターフェイス及びコンピュータとプログラマブルコントローラとの間のプロトコルに応じて入れ替えられるようになっていることを特徴とする（請求項５）。これによれば、通信用ソフトがＰＣとＰＬＣ間の通信インターフェイスに対応するので、即ち通信用ソフトを通信インターフェイスに合わせて変更すれば、ＰＣとＰＬＣ間の通信インターフェイスがどのような仕様であっても、キー入力データの授受が行え好適である。
【０００９】
コンピュータとプログラマブルコントローラの通信手段は、夫々の通信インターフェイスを１回線で接続して成り、その１回線の通信手段によりプログラマブルコントローラに対する設定、収集データとキー入力データとをコンピュータが授受可能に構成したことを特徴とする（請求項６）。具体的には、コンピュータはマルチタスクオペレーティングシステムを搭載し、複数のプログラムを常時並列処理できるので、１つの通信インターフェイスで設定、収集データとキー入力データとを授受するための夫々の通信を行うことができ、設定、収集データ用とキー入力データ用のために別々に通信インターフェイスを用意する必要が無い。
【００１０】
【発明の実施の形態】
本願発明の実施の形態について図１から図１２に基づいて説明する。ＰＣと各ＰＬＣ１〜ＰＬＣｎとは、図１に示すように、１回線の通信手段１により接続されており、通信手段１はＰＣ及び各ＰＬＣ１〜ＰＬＣｎの夫々の通信インターフェイス（本願実施の形態ではシリアルインターフェイス）２，３を通信ケーブル４により接続してなっている。各ＰＬＣ１〜ＰＬＣｎには夫々モニタ対象（例えば工作機械）５が接続されており、各ＰＬＣ１〜ＰＬＣｎはモニタ手段６を備え、夫々のモニタ対象５を制御監視すると共に監視により得られたモニタ情報としての収集データをモニタ装置としてのＰＣにシリアルインターフェイス２，３経由で送るようになっている。また、ＰＣからは、各ＰＬＣ１〜ＰＬＣｎへ、各ＰＬＣ１〜ＰＬＣｎに対する設定データをシリアルインターフェイス２，３経由で転送するようになっている。
【００１１】
各ＰＬＣ１〜ＰＬＣｎのうち、例えば、ＰＬＣ１には、キー入力手段７が汎用Ｉ／Ｏ８を介して接続されている。キー入力手段７は図２に示すように、キー収容ケース９に複数の工業用の押しボタンスイッチ１０を取付けたものである。キー収容ケース９の蓋１１には、複数のスイッチ取付孔１２が設けられており、各スイッチ取付孔１２に工業用の押しボタンスイッチ１０が夫々着脱可能に取付けられており、１つの押しボタンスイッチ１０が壊れた場合には、壊れた押しボタンスイッチ１０のみ独立して交換可能となっており、汎用キーボードのようにキーボード全体を新しい汎用キーボードに交換する場合に比べ低コストとなる。押しボタンスイッチ１０の端子１４はキー収容ケース９内に位置し、その端子１４には、夫々コード１５が取外し可能に接続され、それらのコード１５は、キー収容ケース９を通ってＰＬＣ１の汎用Ｉ／Ｏ８に夫々接続されている。
【００１２】
また、ＰＬＣ１は、図１に示すブロック図のようにキー入力データ格納手段１６とキー入力データ蓄積手段１７と第１タイマ１８と第２タイマ１９とを備えている。キー入力データ蓄積手段１７は、キー入力手段７の押しボタンスイッチ１０が押し下げられたとき、その押下状態とされた押しボタンスイッチ１０のキー入力データを記憶する。キー入力データ蓄積手段１７は、図３に示すように押しボタンスイッチ１０が押された回数、即ち格納されたキー入力データの個数データであるオフセット値をしめす個数格納バッファｂｆ０ａと、どの位置からキー入力データが記憶されているかを示す位置データ（格納開始アドレス）であるポインタとしての位置格納バッファｂｆ０ｂと、キー入力データを格納する複数（本願実施の形態では１０個）のキー入力データ格納バッファｂｆ１〜ｂｆ１０とから構成されている。キー入力データ蓄積手段１７は、キー入力データをキー入力データ格納バッファｂｆ１から格納を始めて、キー入力データ格納バッファｂｆ１０まで格納すると再びキー入力データ格納バッファｂｆ１に格納するようになっている、いわゆるキー入力データがリング状に格納される、リング状のバッファである。このリング状のバッファ１７は、個数データと位置データとキー入力データとが後述のように通信マネージャ２２によりＰＬＣ１からＰＣに転送されるが、データの転送のための通信から次のデータの転送のための通信までの間に、キー入力手段７により入力されるキー入力データを全て取りこぼしなくキー入力データ格納バッファに蓄積できるように最初に調整されてキー入力データ格納バッファの個数が設定されている。
【００１３】
第１タイマ１８と第２タイマ１９とは、押しボタンスイッチ１０の押下状態が維持されているときに、その押しボタンスイッチ１０による継続したＯＮ入力が、連続したキー入力となるように使用されるものであり、第１、第２タイマ１８，１９のＯＮ、ＯＦＦ切換により押しボタンスイッチ１０のＯＮ、ＯＦＦ状態を示す取込信号のＯＮ、ＯＦＦ状態を図４に示すように変化させる。第１タイマ１８は、ＯＦＦ状態の押しボタンスイッチ１０を押し下げて「ＯＮ」としたときにカウントを開始し、設定時間Ｔ１経過するとタイムアップして「ＯＮ」となり、その後、押しボタンスイッチ１０が押下状態の間ＯＮ状態を維持するタイマである。第２タイマ１９は、第１タイマ１８がＯＮ状態となった時点でカウントを開始し、設定時間Ｔ２経過するとタイムアップして「ＯＮ」となり、「ＯＮ」後直ちにリセットされて「ＯＦＦ」となり、その後、第１タイマ１８がＯＮ状態である間、設定時間Ｔ２が経過するたびに「ＯＮ」、「ＯＦＦ」を繰り返すタイマである。
【００１４】
図４は、第１、第２タイマ１８，１９のタイムアップ及びリセットによる「ＯＮ」、「ＯＦＦ」と押しボタンスイッチ１０が押下状態であるという条件の組み合わを利用して押しボタンスイッチ１０の入力を連続したＯＮ入力とする際の取込信号のＯＮ、ＯＦＦ状態の切換りを示す図である。後述の図５に示すフローチャートにおけるステップＳ５５，Ｓ５６で、押しボタンスイッチが押下状態とされていると、取込信号もＯＮ状態とされている。また、第１タイマ１８は、押しボタンスイッチ１０が押下状態とされた時点でカウントを開始し、タイムアップすると第１タイマ１８がＯＮ状態となり、同時に第２タイマ１９がカウントを開始し、第２タイマ１９がタイムアップして「ＯＮ」、「ＯＦＦ」を繰り返す毎に取込信号が「ＯＦＦ」、「ＯＮ」を繰り返し、その取込信号が押下状態が維持されている押しボタンスイッチ１０のＯＮ、ＯＦＦ変化として取り込まれ、多数の「ＯＮ」信号が連続する状態としている。
【００１５】
キー入力データ格納手段１６は、ＰＬＣ１の稼動により、図５に示すフローチャートに従って実行されるプログラムであり、各ステップは機能実現手段を示している。ステップＳ５１は押しボタンスイッチ１０の「ＯＦＦ」から「ＯＮ」への変化を検出する手段である。ステップＳ５２は、「ＯＦＦ」から「ＯＮ」となったキー入力データをどのキー入力データ格納バッファｂｆ１〜ｂｆ１０に入れるかを個数格納バッファｂｆ０ａの個数データと位置格納バッファｂｆ０ｂの位置データから算出する格納位置算出手段であり、キー入力データ格納バッファｂｆ１０にキー入力データが格納されている場合には、次にキー入力データを格納するバッファとしてキー入力データ格納バッファｂｆ１を算出する。例えば、図３の（ｂ）の如く、個数格納バッファｂｆ０ａに”５”、位置格納バッファｂｆ０ｂに”ｂｆ６”が記憶されているとき、新たにキー入力データが入力されると、キー入力データ格納バッファｂｆ６〜ｂｆ１０にはキー入力データ”ＰＢ１”〜”ＰＢ３”，”ＰＢ８”，”ＰＢ７”が格納されているので、次にキー入力データが格納される位置として、キー入力データ格納バッファｂｆ１を算出する。
【００１６】
ステップＳ５３はキー入力データをステップＳ５２で算出されたキー入力データ格納バッファｂｆ１〜ｂｆ１０に順次格納する手段であり、ステップＳ５４は個数格納バッファｂｆ０ａの個数データを＋１づつ加算し更新する個数更新手段である。尚、ＰＬＣ１とＰＣとの間でリング状のバッファのデータの転送が行われてから次のリング状のバッファのデータの転送が行われるまでの間に、キー入力データ格納バッファはキー入力手段により入力されるキー入力データを取りこぼしなく蓄積可能な数を備えているが、仮に、キー入力手段からのキー入力データの数がキー入力データ格納バッファ数を超えて入力された場合には、ステップＳ５３では、最新のキー入力データを最古のキー入力データに上書き格納する。例えば、図３の（ｂ）の如く、個数格納バッファｂｆ０ａに”５”、位置格納バッファｂｆ０ｂに”ｂｆ６”が記憶されてキー入力データ格納バッファｂｆ６〜ｂｆ１０にキー入力データ”ＰＢ１”〜”ＰＢ３”，”ＰＢ８”，”ＰＢ７”が格納されており、更に続けて６個のキー入力データ”ＰＢ１”〜”ＰＢ３”，”ＰＢ８”，”ＰＢ７”，”ＰＢ９”が入力され、全部で１１個のキー入力データがＰＬＣ１とＰＣとの間でリング状のバッファのデータの転送が行われてから次のリング状のバッファのデータの転送が行われるまでの間に入力されると、前記ステップＳ５２で７個目から１１個目のキー入力データを格納するキー入力データ格納バッファとして順次キー入力データ格納バッファｂｆ１〜ｂｆ６が算出され、そのキー入力データ格納バッファｂｆ１〜ｂｆ６に順番にキー入力データ”ＰＢ１”〜”ＰＢ３”，”ＰＢ８”，”ＰＢ７”，”ＰＢ９”を格納していく。このとき１１個目のキー入力データ”ＰＢ９”は、１個目のキー入力データ”ＰＢ１”が格納されたキー入力データ格納バッファｂｆ６に上書き格納され、キー入力データ蓄積手段１７には２個目から１１個目までの１０個のキー入力データが格納された状態となる（図３の（ｃ））。
【００１７】
そして、ステップＳ５４では、リング状のバッファ１７に格納されたキー入力データの個数がキー入力データ格納バッファｂｆ１〜ｂｆ１０の個数を超えて格納された場合、位置格納バッファｂｆ０ｂのどの位置からキー入力データが格納されたかを示す位置データを、最新のキー入力データが格納されたキー入力データ格納バッファの次のキー入力データ格納バッファを示す位置データに移動する。前記において、１１個目のキー入力データ”ＰＢ９”がキー入力データ格納バッファｂｆ６に上書きされると、位置格納バッファｂｆ０ｂの位置データ”ｂｆ６”を位置データ”ｂｆ７”に書き換える。そして、実際に格納されたキー入力データは１１個であるが、キー入力データ格納バッファ数は１０個であるので、個数格納バッファｂｆ０ａには個数データとして”１０”を格納する（図３の（ｃ））。このキー入力データ格納バッファ数を超えてキー入力データが入力された場合には、モニタ手段６によりＰＬＣ１にはエラーが記憶され、そのエラーデータが収集データとしてＰＣに転送されると、アプリケーションプログラムＡ２〜Ａｎの何れかによりＰＣで適宜に表示または記録され、メンテナンスの際にキー入力データ格納バッファの個数が増やされる。
【００１８】
ステップＳ５５、Ｓ５６は、前述した第１、第２タイマ１８，１９と取込信号とにより、押し下げ状態が維持されているときの押しボタンスイッチ１０の入力を、連続したＯＮ入力として処理するための処理ルーチンであり、ステップＳ５５は、押しボタンスイッチ１０が押し下げ状態で、第１タイマ１８がカウントアプしてＯＮ状態となり、その後に第２タイマ１９のカウントアップ、リセットによって第２タイマ１９が「ＯＮ」から「ＯＦＦ」に変化したかを判別しているＯＮ−ＯＦＦ切り替えタイミング判別手段であり、ステップＳ５６は、ステップＳ５５での条件が整ったとき、押しボタンスイッチ１０のＯＮ、ＯＦＦ状態を示す取込信号の継続したＯＮ状態を一度「ＯＦＦ」として再度「ＯＮ」に戻す、信号状態切り替え手段である。
【００１９】
ＰＣは、図１に示すように共有メモリ２０と待ち行列２１と通信用ソフトである通信マネージャプログラム２２と通信インターフェイス２とを含む通信コントロール部２３と、複数のアプリケーションプログラムＡ１〜Ａｎから成るモニタプログラムと、アプリケーションプログラムＡ１〜Ａｎの１つであるキーボード入力エミュレート手段Ａ１とキー入力データ格納領域２４と入力データ対応テーブル２５とから成るキーボードエミュレータ２６とを備えている。
【００２０】
共有メモリ２０は、図６に示すように、通信要求をした夫々のアプリケーションプログラムＡ１〜Ａｎに対して後述の共有メモリコントロールプログラム２７によって適宜に領域が割当てられ、その各割当領域にはアプリケーションプログラムＡ１〜Ａｎとターゲットシステム（例えばアプリケーションプログラムが通信を行いたいＰＬＣ１〜ＰＬＣｎの何れか）との通信データが設定される。通信データは、図７に示すようにターゲットシステムを指定するターゲット指定番号”ＰＬＣ１”、ターゲットシステムのデバイスを指定するデバイス番号”ｂｆ０ａ”、データ数”１２”、読み書き指定コマンド（ＲまたはＷ）、どのアプリケーションプログラムＡ１〜Ａｎの通信要求か”Ａ１”等からなるコマンドと、ＰＣとＰＬＣ１〜ＰＬＣｎ間で授受される読み書きデータ（キー入力データＰＢ１〜ＰＢ１２、ターゲットシステムの異常や工程等の稼動状態を示す収集データ、ＰＣからターゲットシステムへの設定データ等）とを含んでいる。
【００２１】
待ち行列２１は、夫々のアプリケーションプログラムＡ１〜Ａｎの通信依頼に対応して共有メモリ２０に割り当てられた夫々の割当領域を特定するメモリ番号を割当領域に通信データがセットされた順に記憶し、割当順に通信マネージャ２２に渡す、先入れ先出しシステムであり、例えば順にメモリ番号”２”、メモリ番号”１”の割当領域に通信データがセットされたとすると、図８（ｃ）に示すように待ち行列２１には、順番にメモリ番号”２”、メモリ番号”１”がセットされ、通信マネージャ２２による通信の際には、メモリ番号”２”の割当領域の通信データによる通信が行われた後、次にメモリ番号”１”の割当領域の通信データによって通信が行われる。
【００２２】
通信マネージャ２２はＰＣとＰＬＣ１〜ＰＬＣｎ間の通信を処理するものであり、共有メモリコントロールプログラム２７を含み、アプリケーションプログラムＡ１〜Ａｎからの通信要求に応じ、アプリケーションプログラムＡ１〜Ａｎからの通信データを共有メモリ２０に格納し、その通信データに基づいて、コマンドで指定されたＰＣとＰＬＣ１〜ＰＬＣｎとの間でシリアルデータ通信を行うものである。この通信データの共有メモリ２０への格納は、共有メモリコントロールプログラム２７によって行われ、共有メモリコントロールプログラム２７は、共有メモリ２０に各アプリケーションプログラムＡ１〜Ａｎからの夫々の通信データを格納する領域を割り当て、それらの割当領域の位置と大きさを記憶すると共に夫々の割当領域と対応してメモリ番号を記憶し、そのメモリ番号を待ち行列２１に格納する。また、通信マネージャ２２は、通信インターフェイス２，３及びＰＣとＰＬＣ１〜ＰＬＣｎとの間のプロトコルに応じて入れ替えられるようになっており、通信インターフェイスとしてＬＡＮが利用される場合には、ＬＡＮに対応した通信マネージャに入れ替えられる。
【００２３】
図９は、通信マネージャ２２のフローチャートを示すものであり、各ステップは機能実現手段を示している。ステップＳ９３は、待ち行列２１を調べ、メモリ番号が格納されているか判別し、メモリ番号が格納されている場合、メモリ番号の格納順によって共有メモリ２０に格納された通信データの通信順序を確認する通信判別手段である。ステップＳ９４は、待ち行列２１に格納された通信順序が最先となっているメモリ番号に対応した割当領域の通信データを確認する通信データ確認手段である。ステップＳ９５は、確認した通信データに従って、ＰＣとＰＬＣ１〜ＰＬＣｎとの間でデータを受け渡すデータ受渡し手段である。ステップＳ９６は、ＰＣとＰＬＣ１〜ＰＬＣｎとの間で受け渡しを行ったデータをＰＣまたはＰＬＣ１〜ＰＬＣｎの指定のメモリ（共有メモリ２０、リング状のバッファ１７等）にセットするセット手段である。ステップＳ９７は、ＰＣとＰＬＣ１〜ＰＬＣｎ間で通信データの受け渡しが完了すると、通信データに設定されているアプリケーションプログラムＡ１〜Ａｎに通信完了メッセージを通知する通信完了通知手段である。
【００２４】
ステップＳ９８は、アプリケーションプログラムＡ１〜Ａｎからの割当領域操作用のメッセージが通知されると、そのメッセージを受け取りステップＳ９３〜ステップＳ９７の間で割り込みを行う割り込み手段であり、ステップＳ９９は、アプリケーションプログラムＡ１〜Ａｎからの上記割当領域操作用のメッセージに応じて、共有メモリ２０に通信データに対して割当領域を割り当てまたは解除し、割り当てた場合、その割当領域に対応したメモリ番号をアプリケーションプログラムＡ１〜Ａｎに割当完了メッセージにより通知し、また、アプリケーションプログラムＡ１〜Ａｎからの割当領域への通信データのセットを示す割当領域操作用のメッセージ（セットメッセージ）の通知により待ち行列２１にメモリ番号を追加するメッセージ実行手段であり、ステップＳ９８、Ｓ９９により共有メモリコントロールプログラム２７が構成されている。
【００２５】
キー入力データ格納領域２４は、リング状のバッファ１７のデータ全てを共有メモリ２０を介してそのまま一括して受け取る作業用メモリである。入力データ対応テーブル２５は、図１０に示すように、各押しボタンスイッチ１０のキー入力データと１つ以上のキーボード入力データの対応を示しており、キー入力データをキーボード入力データとして扱うときにキーボード入力エミュレート手段Ａ１により参照される。例えば、押しボタンスイッチ１０を押して入力されたキー入力データ”ＰＢ１”はキーボード入力データ”１”に対応し、キー入力データ”ＰＢ１１”は３個のキーボード入力データ”１”、”２”、”３”の入力に対応している。キーボード入力エミュレート手段Ａ１は、通信マネージャ２２に通信要求を行い、リング状のバッファ１７から共有メモリ２０に転送されたキー入力データを受け取る。
【００２６】
図１１のフローチャートはキーボード入力エミュレート手段Ａ１を示しており、各ステップは機能実現手段を示している。ステップＳ１１１は初期設定手段であり、共有メモリコントロールプログラム２７に共有メモリ２０に割当領域を確保するように要求をする割当領域操作用のメッセージを通知し、割当領域にリング状のバッファ１７をクリアするための通信データを設定したことを示す割当領域操作用のメッセージを通知して、通信マネージャによってＰＬＣ１と通信を行わせリング状のバッファ１７のデータをクリアし、入力データ対応テーブル２５の読み込みを行う。ステップＳ１１２は、通信マネージャ２２からの通信完了メッセージの受取を判別するメッセージ受取判別手段である。ステップＳ１１３は、入力されたキー入力データをＰＬＣ１からＰＣに転送するための通信データを共有メモリ２０の割当領域にセットし、通信データをセットしたことを示す割当領域操作用のメッセージを共有メモリコントロールプログラム２７に通知して、通信マネージャ２２によりリング状のバッファ１７の全てのデータを共有メモリ２０の割当領域を介してキー入力データ格納領域２４に受け取ると、その後、キー入力データが新たに格納開始されるキー入力データ格納バッファｂｆ１〜ｂｆ１０を示す位置格納バッファｂｆ０ｂの位置データを書き換えるために、新たな位置データをキー入力データ格納領域２４に格納された位置データと個数データから演算し、その演算した新たな位置データに書き換えるための通信データを割当領域にセットし、通信データをセットしたことを示す割当領域操作用のセットメッセージを共有メモリコントロールプログラム２７に通知するデータ授受手段である。ステップＳ１１４は、キー入力データ格納領域２４の位置データと個数データとからキー入力データを取得し、その夫々のキー入力データを入力データ対応テーブル２５を参照して、各キー入力データを対応するキーボード入力データに変換し、適宜なアプリケーションプログラムＡ２〜Ａｎに受け渡すデータ変換受渡手段である。ステップＳ１１５は、キーボード入力エミュレート手段Ａ１の終了を判断する手段であり、ステップＳ１１６は、終了設定手段であり、キーボード入力エミュレート手段Ａ１が終了するときに共有メモリコントロールプログラム２７へ割当領域操作用のメッセージを通知し、共有メモリ２０に割り当てられた割当領域を開放させる。
【００２７】
以上のようにＰＬＣ１に含まれるキー入力手段７とキー入力データ格納手段１６とキー入力データ蓄積手段１７と第１タイマ１８と第２タイマ１９と、ＰＣに含まれるキーボードエミュレータ２０と通信コントロール部２３とによってリモートキー操作装置が構成されている。
【００２８】
また、モニタプログラムを構成するキーボード入力エミュレート手段Ａ１以外の各アプリケーションプログラムＡ２〜Ａｎもキーボード入力エミュレート手段Ａ１と略同様に通信マネージャ２２によって通信を行う。図１２は、アプリケーションプログラムＡ２〜Ａｎの概要を示すフローチャートであり、ステップＳ１２１で、ターゲットシステムの設定、収集データを適宜に表示または記録する等の適宜な通常動作を行っており、ＰＣとターゲットとなるＰＬＣ１〜ＰＬＣｎとの間で通信が必要となると、ステップＳ１２２で、共有メモリコントロールプログラム２７に割当領域を要求する割当領域操作用のメッセージを通知し、ステップＳ１２３で、共有メモリコントロールプログラム２７からの割当完了メッセージによって通知された割当領域に通信データを設定し、通信マネージャ２２によって通信データに基づくＰＣとターゲットのＰＬＣ１〜ＰＬＣｎ間の通信が行われてターゲットのＰＬＣ１〜ＰＬＣｎと設定、収集データの授受が完了すると、ステップＳ１２４で、収集データが割当領域にセットされている場合には受け取り、共有メモリコントロールプログラム２７に割当領域のメモリ開放ために割当領域操作用のメッセージを通知し、ステップＳ１２１に戻る。各アプリケーションプログラムＡ２〜Ａｎでは、上記ステップＳ１２１〜Ｓ１２４を繰り返し、キーボード入力エミュレート手段Ａ１のようにプログラムの開始から終了までの間、共有メモリ２２の一部が割り当てられるのではなく、ＰＬＣ１〜ＰＬＣｎとの通信を要求する毎に共有メモリ２０に割当、解除を行っている。
【００２９】
次に作用について説明する。ＰＣはマルチタスクオペレーティングシステムを搭載しており、複数のプログラムを常時並列処理することが可能となっている。また、通常の使用時には、ＰＣは汎用キーボードが取外されてＰＣへの入力手段としてＰＬＣ１に備えられたキー入力手段７が使用されている。ＰＣ及び各ＰＬＣ１〜ＰＬＣｎの起動動作の後、各ＰＬＣ１〜ＰＬＣｎではモニタ対象のデータ収集等が行われ、更にＰＬＣ１では、キー入力データ格納手段１６が実行されて、キー入力手段７が操作されるまでステップＳ５１、Ｓ５５を繰り返しており、また、ＰＣでは、通信マネージャ２２とキーボード入力エミュレート手段Ａ１と各アプリケーションプログラムＡ２〜Ａｎが実行される。通信マネージャ２２は、ステップＳ９１で初期設定を行い、共有メモリコントロールプログラム２７によって共有メモリ２０や待ち行列２１をクリアし、待ち行列２１にメモリ番号が設定されるまでステップＳ９２、Ｓ９３を繰り返し待機している。また、キーボード入力エミュレート手段Ａ１が実行されると、ステップＳ１１１の初期設定により、入力データ対応テーブル２５の読み込みが行われ、割当領域操作用のメッセージを通信し、共有メモリコントロールプログラム２７のステップＳ９８、Ｓ９９で共有メモリ２０の一部がキーボード入力エミュレート手段Ａ１の割当領域として割り当てられ、例えばメモリ番号”１”が付与されて割当完了メッセージを受け取ると、リング状のバッファ１７をクリアするための通信データをメモリ領域１の割当領域にセットし、割当領域への通信データのセットを示す割当領域操作用のメッセージを共有メモリコントロールプログラム２７に通知する。すると、共有メモリコントロールプログラム２７はステップＳ９８，Ｓ９９で待ち行列２１にメモリ番号”１”をセットし、メモリ番号”１”が通信順の先頭となると（図８（ａ））、メモリ番号１の通信データに基づきリング状のバッファ１７をクリアし、通信完了メッセージをキーボード入力エミュレート手段Ａ１に通知する。キーボード入力エミュレート手段Ａ１は、ステップＳ１１２で通信完了メッセージの受取を確認する。
【００３０】
また、夫々のアプリケーションプログラムＡ２〜Ａｎが実行され、ステップＳ１２１の通常動作を行っており、例えば、アプリケーションプログラムＡ３がステップＳ１２２で通信要求のメッセージを出力すると、ステップＳ９８，Ｓ９９，Ｓ１２３が実行され図６のように共有メモリ２０に割り当てられたメモリ番号２の割当領域に通信データがセットされ、図８（ｂ）のように待ち行列２１にメモリ番号２がセットされる。通信マネージャ２２は、ステップＳ９３で待ち行列２１にメモリ番号がセットされていることを確認し、ステップＳ９４〜Ｓ９７を実行し、待ち行列２１にセットされたメモリ番号”２”が通信順の先頭となると（図８（ｃ））、メモリ番号”２”の割当領域にセットされた通信データに基づいてターゲットとしてＰＬＣ２と通信を行い、ＰＬＣ２に対する設定、収集データが授受され、ＰＬＣ２からの収集データをメモリ番号”２”の割当領域にセットし、通信完了メッセージを通知する。するとアプリケーションプログラムＡ３はステップＳ１２４で収集データを受け取り、割当領域操作用のメッセージを通知し、再びステップＳ１２１に戻り、各ステップＳ１２１〜Ｓ１２４を繰り返す。また、共有メモリコントロールプログラム２７は割当領域操作用のメッセージによりステップＳ９２〜Ｓ９７の間で割り込み処理を行い、メモリ番号”２”の割当領域を解除する。
【００３１】
また、ＰＬＣ１において、キー入力手段７が操作されると、ステップＳ５１を介してステップＳ５２に進む。先ず、リング状のバッファ１７がクリアされてから初めて押しボタンスイッチ１０の１つが操作されて、キー入力データ”ＰＢ１”が入力されたとすると、個数データには”０”、位置データには”ｂｆ１”がセットされているので、キー入力データ”ＰＢ１”を格納するキー入力データ格納バッファｂｆ１が算出され、ステップＳ５３でキー入力データ格納バッファｂｆ１にキー入力データ”ＰＢ１”が格納され、ステップＳ５４で個数データが”０”から”１”に更新される。次に押しボタンスイッチ１０が操作されキー入力データ”ＰＢ２”が入力されるとステップＳ５１〜Ｓ５４を繰り返し、キー入力データ格納バッファｂｆ２にキー入力データ”ＰＢ２”が格納され個数データが”１”から”２”に更新される。更に押しボタンスイッチ１０が操作されキー入力データ”ＰＢ３”、”ＰＢ８”，”ＰＢ７”が入力されるとステップＳ５１〜Ｓ５４により各キー入力データ”ＰＢ３”，”ＰＢ８”，”ＰＢ７”が夫々キー入力データ格納バッファｂｆ３、ｂｆ４、ｂｆ５に格納され、個数データが”５”に更新される（図３の（ａ））。
【００３２】
前記メモリ番号２がセットされた後、次にキーボード入力エミュレート手段Ａ１においてステップＳ１１３が実行されると、キー入力データを取得するための通信データを前回割り当てられたメモリ番号”１”の割当領域にセットして割当領域への通信データのセットを示す割当領域操作用のメッセージを共有メモリコントロールプログラム２７に通知する。共有メモリコントロールプログラム２７はステップＳ９８，Ｓ９９により、図８（ｃ）のように待ち行列２１にメモリ番号”１”をメモリ番号”２”の次にセットする。通信マネージャ２２は、待ち行列２１に先にセットされたメモリ番号”２”の割当領域にセットされた通信データに基づく通信を完了した後、次にステップＳ９３で待ち行列２１にメモリ番号”１”が通信順序の先頭にセットされていることを確認すると、ステップＳ９４でメモリ番号”１”の通信データの内容を確認し、ステップＳ９５、Ｓ９６でリング状のバッファ１７に格納されたデータ全てをそのままメモリ番号”１”の割当領域に一括して転送し、ステップＳ９７で通信完了メッセージを通知する。通信マネージャ２２から通信完了メッセージを受けるとキーボード入力エミュレート手段Ａ１は、メモリ番号”１”の割当領域からキー入力データ格納領域２４にリング状のバッファ１７のデータを転送し、その位置データ”ｂｆ１”と個数データ”５”とから新たなキー入力データの格納開始位置となる位置データ”ｂｆ６”を計算し、リング状のバッファ１７の位置データを”ｂｆ６”に、個数データを”０”に書き換えるための通信データをメモリ番号”１”の割当領域にセットし、割当領域への通信データのセットを示す割当領域操作用のメッセージを共有メモリコントロールプログラム２７に通知する。
【００３３】
次にキーボード入力エミュレート手段Ａ１は、ステップＳ１１４でキー入力データ格納領域２４の位置データ”ｂｆ１”と個数データ”５”とからキー入力データ”ＰＢ１”〜”ＰＢ３”，”ＰＢ８”，”ＰＢ７”を取出し、キー入力データ”ＰＢ１”〜”ＰＢ３”，”ＰＢ８”，”ＰＢ７”を入力データ対応テーブル２５を参照してキーボード入力データ”１”，”２”，”３”，”８”，”７”に変換し、アクティブなアプリケーションプログラムＡ２〜Ａｎに渡す。キー入力データのキーボード入力データへの変換が終了するとステップＳ１１５を介してステップＳ１１２に戻り、通信完了メッセージを受け取るまで待機する。通信マネージャ２２は、ステップＳ１１３でキーボード入力エミュレート手段Ａ１から出された通信データをセットしたことを示す割当領域操作用のセットメッセージを受け取ると、再びステップＳ９８，Ｓ９９でメモリ番号”１”を待ち行列２１にセットし、通信順序が先のメモリ番号の割当領域にセットされた通信データによる通信を行った後、ステップＳ９３〜Ｓ９７でメモリ番号１の通信順番となると割当領域にセットされたキーボード入力エミュレート手段Ａ１の通信データに基づき通信を行い、リング状のバッファ１７の位置データを”ｂｆ１”から”ｂｆ６”に変更すると共に個数データを”０”として通信が完了すると、通信完了メッセージを出力する。そして、キーボード入力エミュレート手段Ａ１は、通信完了メッセージを受け取ると、再び、ステップＳ１１３、Ｓ１１４を実行する。位置データが”ｂｆ６”に変更された後、キー入力手段７が操作されるとキー入力データ格納手段１６のステップＳ５１〜Ｓ５６により、キー入力データ格納バッファｂｆ６からキー入力データを格納し、個数データが加算される。
【００３４】
また、一時的に汎用キーボードから入力を行う場合などキー入力手段７からの入力が不要となった場合、キーボード入力エミュレート手段Ａ１のステップＳ１１５からステップＳ１１６により終了設定が行われ、共有メモリ２０に割り当てられていたキーボード入力エミュレート手段Ａ１の割当領域が開放され、他のアプリケーションプログラムＡ２〜Ａｎがその領域を利用できるようになっており、より多くのアプリケーションプログラムＡ２〜Ａｎが通信データを格納しておくことができ、共有メモリ２０の空きを待つ必要が無くなり処理効率が向上する。
【００３５】
【発明の効果】
以上のように本願発明の請求項１では、複数の工業用の押しボタンスイッチからキー入力手段を構成したので、劣悪な環境での使用であっても長期間壊れにくい。また、キー入力データをキーボードエミュレート手段がキーボード入力データに変換してアプリケーションに渡すので、アプリケーションの仕様に関係が無く、操作されるアプリケーションが限定されない。
【００３６】
請求項２では、キー入力データをリング状バッファに蓄積し、それを一括して転送するので、キー入力データの取りこぼしを防止でき、また、キー入力データの処理を待たずに順次キー入力を行えるのでキー入力データに対する反応が速くて好適であり、また、少ないエリアで多くのキー入力データを格納できる。
【００３７】
請求項３では、入力データ対応テーブルを参照して１つのキー入力データを１つ以上のキーボード入力データとして扱えるので、汎用キーボードからの入力と同等以上の入力が行える。
【００３８】
請求項４では、工業用の押しボタンスイッチは夫々独立して交換可能なので、押しボタンスイッチが壊れたとしても、壊れた押しボタンスイッチのみを交換すれば良いので、低コストであり好ましい。
【００３９】
請求項５では、ＰＣとＰＬＣ間の通信インターフェイスに対応する通信用ソフトを備えているので、通信インターフェイスがどのような仕様であっても、キー入力データの授受が行える。
【００４０】
請求項６では、１つの通信インターフェイスでモニタ情報とキー入力データとを授受できるので、モニタ情報用とキー入力データ用のために別々に通信インターフェイスを用意する必要が無い。
【図面の簡単な説明】
【図１】全体構成を示すブロック図である。
【図２】キー入力手段を示す斜視図である。
【図３】リング状のバッファの説明図である。
【図４】キー入力手段の操作時の信号関係を示す図である。
【図５】キー入力データ格納手段のフローチャートである。
【図６】共有メモリを示す図である。
【図７】通信データを示す説明図である。
【図８】待ち行列を示す説明図である。
【図９】通信マネージャのフローチャートである。
【図１０】入力データ対応テーブルを示す図である。
【図１１】キーボード入力エミュレート手段のフローチャートである。
【図１２】アプリケーションプログラムのフローチャートである。
【符号の説明】
１  通信手段
２，３  通信インターフェイス
７  キー入力手段
１０  工業用の押しボタンスイッチ
１６  キー入力データ格納手段
１７  リング状のバッファ
２２  通信マネージャ（通信用ソフト）
２３  通信コントロール部
２４  キー入力データ格納領域
２５  入力データ対応テーブル
Ａ１  キーボード入力エミュレート手段
Ａ２〜Ａｎ  アプリケーションプログラム
ＰＣ  コンピュータ
ＰＬＣ１〜ＰＬＣｎ  プログラマブルコントローラ
【図１】
0004482784.tif 000002
【図２】
0004482784.tif 000003
【図３】
0004482784.tif 000004
【図４】
0004482784.tif 000005
【図５】
0004482784.tif 000006
【図６】
0004482784.tif 000007
【図７】
0004482784.tif 000008
【図８】
0004482784.tif 000009
【図９】
0004482784.tif 000010
【図１０】
0004482784.tif 000011
【図１１】
0004482784.tif 000012
【図１２】
0004482784.tif 000013