(57)【要約】【課題】  処理の有無によるシーケンス・プログラムのスキャン・タイムの変動を削減し、シーケンス・プログラム記述の際の視認性を向上させる。【解決手段】  シーケンス演算プロセッサを有し、シーケンス命令を実行するプログラマブル・コントローラにおいて、ユーザが汎用言語で記述した処理命令を格納するプログラム格納メモリと、前記処理命令を前記シーケンス演算プロセッサの処理のバックグラウンドで処理する汎用プロセッサとを備えることを特徴とするプログラマブル・コントローラ。【選択図】                    図１
2006201892.tif 000002
【特許請求の範囲】
【請求項１】
シーケンス演算プロセッサを有し、シーケンス命令を実行するプログラマブル・コントローラにおいて、ユーザが汎用言語で記述した処理命令を格納するプログラム格納メモリと、前記処理命令を前記シーケンス演算プロセッサの処理のバックグラウンドで処理する汎用プロセッサとを備えることを特徴とするプログラマブル・コントローラ。
【請求項２】
前記シーケンス演算プロセッサは、前記処理命令を開始する際は前記汎用プロセッサに起動要求を発行することを特徴とする請求項１記載のプログラマブル・コントローラ。
【請求項３】
前記汎用プロセッサは、前記処理命令を終了した際は前記シーケンス演算プロセッサに終了通知を発行することを特徴とする請求項１または請求項２のいずれかに記載のプログラマブル・コントローラ。
【請求項４】
前記処理命令に引き続く他の命令を直列に記述してラダー図を作成することを特徴とする請求項１から請求項３のいずれかに記載のプログラマブル・コントローラ。
【請求項５】
前記処理命令は、処理が終了したことを表わすビットがセットされることを特徴とする請求項１から請求項４のいずれかに記載のプログラマブル・コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンス命令を実行するプログラマブル・コントローラに関し、特に、シーケンス命令実行時のスキャン・タイムの短縮を実現するプログラマブル・コントローラに関するものである。
【背景技術】
【０００２】
プログラマブル・コントローラにあって、シーケンス命令の実行時間であるスキャン・タイムを測定する先行技術としては、例えば、次のような文献が存在する。
【０００３】
【特許文献１】特開平１１−８５２２０号公報
【０００４】
上記に記載される技術は、単に、スキャン・タイムを数回測定してその分布を把握または解析するものであり、積極的にスキャン・タイムを短縮するという思想はなく、スキャン・タイムの分布状況のみを得るものであった。
【０００５】
以下、シーケンス命令の実行について、図面を用いて説明する。例えば、図５に示すようなシーケンスを実現する場合を想定する。このシーケンスは、プログラマブル・コントローラから通信回線を介してパーソナル・コンピュータへデータを送信する例である。
【０００６】
即ち、プログラマブル・コントローラ側の送信データ・セットのステップからデータ送信処理、処理の正常／異常の判断ステップで一連の処理が終了する。
【０００７】
ここで、「データ送信処理」は、サブルーチンに準ずる処理であり、送信可のステップからタイムアウトを監視しつつデータを１文字ずつ送信し、送信終了−正常終了処理、異常終了処理を確認してこの処理は完了する。
【０００８】
プログラマブル・コントローラ分野に特有のラダー言語を用いて図５に示した処理を記述すると、図６のラダー図となり、その詳しい処理動作は次の通りである。
【０００９】
ステップ００００１でリレー“Ｉ００００１”がセットされると、送信処理“ＡＡＡＡ”が開始する。送信処理“ＡＡＡＡ”の内容は図５の通りであるが、引数データ・レジスタ“Ｄ００００１”と、リターン情報（エラー・コード等）が格納されるレジスタ“Ｄ００００２”を用いてデータを得、リレー（終了ビット）“Ｉ００００２”をセットする。
【００１０】
ステップ００００２では、リレー“Ｉ００００２”セットを確認して転送命令“ＭＯＶ”が起動し、データ“Ｄ００００２”をパーソナル・コンピュータ側のレジスタ“Ｄ０００１０”へ転送する。
【００１１】
以上のフローにより、シーケンス命令のデータ転送処理が実行される。尚、図７は、図５のフローチャートと重複はあるが、図６に示したラダー図により近い実際のフローチャートである。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
以上のような従来のプログラマブル・コントローラにあって、処理“ＡＡＡＡ”をシーケンス命令で記述した場合、データの送信開始から送信終了まで、このプログラマブル・コントローラに設定されるシーケンスの実行のスキャン毎に、このデータ送信処理を行なう必要がある。
【００１３】
このため、データ送信処理中であるか、データ送信処理中でないかによって、このプログラマブル・コントローラに設定されるシーケンス全体のスキャン・タイムが影響され、スキャン時間が変化し、大きな差となる。
【００１４】
また、通信ネットワークを構成する通信媒体がどれほど高速であっても、シーケンス実行にあってデータはスキャン・タイムあたり１文字のみの送信であり、時間がかかる。
【００１５】
更には、処理“ＡＡＡＡ”が終了したことは、処理“ＡＡＡＡ”を実行する回路とは別の回路で判定しているため、設定されるシーケンス・プログラムが長くなればなるほど、表示画面におけるプログラムの視認性が悪くなる、という問題もあった。
【００１６】
本発明は上述した問題点を解決するためになされたものであり、処理の有無によるシーケンス・プログラムのスキャン・タイムの変動を削減し、シーケンス・プログラム記述の際の視認性を向上させることを目的とする。
【課題を解決するための手段】
【００１７】
このような課題を解決するために、本発明の構成は次の通りである。
（１）シーケンス演算プロセッサを有し、シーケンス命令を実行するプログラマブル・コントローラにおいて、ユーザが汎用言語で記述した処理命令を格納するプログラム格納メモリと、前記処理命令を前記シーケンス演算プロセッサの処理のバックグラウンドで処理する汎用プロセッサとを備えることを特徴とするプログラマブル・コントローラ。
（２）前記シーケンス演算プロセッサは、前記処理命令を開始する際は前記汎用プロセッサに起動要求を発行することを特徴とする（１）記載のプログラマブル・コントローラ。
（３）前記汎用プロセッサは、前記処理命令を終了した際は前記シーケンス演算プロセッサに終了通知を発行することを特徴とする（１）または（２）のいずれかに記載のプログラマブル・コントローラ。
（４）前記処理命令に引き続く他の命令を直列に記述してラダー図を作成することを特徴とする（１）から（３）のいずれかに記載のプログラマブル・コントローラ。
（５）前記処理命令は、処理が終了したことを表わすビットがセットされることを特徴とする（１）から（４）のいずれかに記載のプログラマブル・コントローラ。
【発明の効果】
【００１８】
以上説明したことから明らかなように、本発明によれば次のような効果がある。
データ送信処理中であるか、データ送信処理中でないかによって、このプログラマブル・コントローラに設定されるシーケンス全体のスキャン・タイムが影響されることはなく、スキャン・タイムが大きく変化することもない。
【００１９】
また、引き続き処理される命令を直列に記述することにより、シーケンス・プログラム記述の際の視認性を向上させることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を用いて本発明を詳細に説明する。
図１は本発明の一実施例を示す構成図である。この図で、本発明のプログラマブル・コントローラ１は、中央処理制御部であるＣＰＵユニット１１、現場からデータを入力する入力ユニット１２、現場へデータを出力する出力ユニット１３、システム・バスＢを介してパーソナル・コンピュータと通信する通信ユニット１４等から構成される。
【００２１】
更に、ＣＰＵユニット１１は、システム・バスＢと接続するバス・インターフェイス１１１、シーケンス・プログラム格納メモリｍ１からシーケンス命令を読み出して実行するシーケンス演算プロセッサ１１２、汎用プロセッサ用ファームウェア格納メモリｍ２または汎用プロセッサ用プログラム格納メモリｍ３から、システム用の各種命令またはユーザが処理内容を記述した命令を読み出して実行する汎用プロセッサ１１３から構成される。
【００２２】
本発明では、シーケンス演算プロセッサ１１２は、ユーザが汎用言語等で記述した処理を開始する際は、汎用プロセッサ１１３へその処理の起動要求Ｓ１を発行し、汎用プロセッサ１１３は、その処理が終了した時点で、シーケンス演算プロセッサ１１２へ終了通知Ｓ２を発行する。
【００２３】
図２は、本発明のプログラマブル・コントローラが実行するシーケンス命令の記述を表わすラダー図である。
【００２４】
この図で、ステップ００００４にて、リレー“Ｉ０１００１”がセットされると、処理“ＢＢＢＢ”が開始する。
【００２５】
処理“ＢＢＢＢ”は、引数データ・レジスタ“Ｄ０１００１”と、リターン情報（エラー・コード等）が格納されるレジスタ“Ｄ０１００２”を用いてデータを得、リレー（終了ビット）“Ｉ０１００２”をセットする。
【００２６】
その後、引き続いて、直ちに、転送命令“ＭＯＶ”を起動し、データ“Ｄ０１００２”をパーソナル・コンピュータ側のレジスタ“Ｄ０１０１０”へ転送する。
【００２７】
この処理での特徴は、処理命令“ＢＢＢＢ”は、従来の処理命令“ＡＡＡＡ”がシーケンス命令の組み合わせで記述されていたのに比較して、記述言語は汎用のプログラミング言語であれば何でもよく、記述言語を問わずに所望の内容を記載する。
【００２８】
また、本発明にあって、処理“ＢＢＢＢ”は、その処理が終了すれば、リレー（終了ビット）“Ｉ０１００２”をセットするが、直ちに次の転送命令“ＭＯＶ”を実行することを特徴とする。
【００２９】
更に、このような処理命令をラダー図として記述するときは、処理命令“ＢＢＢＢ”と、この処理命令“ＢＢＢＢ”に引き続く転送命令“ＭＯＶ”を、この図のように、１列となるように直列に並べて記述する。
【００３０】
そして、この処理命令“ＢＢＢＢ”は、シーケンス演算プロセッサ１１２ではなく、起動要求Ｓ１がかかった時点で汎用プロセッサ１１３にて実行される。即ち、処理命令“ＢＢＢＢ”は、シーケンス演算プロセッサ１１２のシーケンス処理のバックグラウンド処理として、汎用プロセッサ１１３において実行される。
【００３１】
即ち、汎用プロセッサ１１３は、通信処理、入力・出力リフレッシュ処理等を行なうプロセッサであり、通常、シーケンス演算プロセッサ１１２とは別個に設置される。
【００３２】
そして、処理命令“ＢＢＢＢ”の後に続く命令“ＭＯＶ”は、処理命令“ＢＢＢＢ”がバックグラウンド処理として終了した場合に、自動的に一度だけ実行される。
【００３３】
このように、この一連の処理は、処理命令“ＢＢＢＢ”とそれに続く転送命令“ＭＯＶ”の１行の記述とすることができ、視認性が向上し、処理の流れも一目で把握することができる。
【００３４】
図３は、以上述べたような本発明による処理のフローを表わす図であり、送信開始が起動すると、送信処理“ＢＢＢＢ”がシーケンス処理のバックグラウンドとして開始する。一方、通常のシーケンス処理は、そのまま続行する。
【００３５】
即ち、送信処理“ＢＢＢＢ”が起動すると、汎用プロセッサ１１３においてその処理が実行し、シーケンス演算プロセッサ１１２はシーケンス処理を実行する。このため、シーケンス・プログラム全体のスキャン・タイムに影響を受けることはない。
【００３６】
また、図２に戻り、処理命令“ＢＢＢＢ”が終了した時点でリレー・ビット“Ｉ０１００２”がセットされるが、処理“ＢＢＢＢ”開始後、リレー・ビット“Ｉ０１００２”のセットに関係なく転送命令“ＭＯＶ”が実行される。
【００３７】
一方、このリレー・ビット“Ｉ０１００２”のセットまたはリセットの状態は、ステップＩ０００４以外の、そのリレー・ビットのセット状態がその処理に必要なステップで参照されることとなる。
【００３８】
図４は、処理“ＢＢＢＢ”の内容を表わすフローチャートである。このフローチャートに表わすように、このプログラムは、Ｃ言語等の汎用言語で記述するため、シーケンス・プログラムのように「スキャン」という概念はないため、本来の処理のフローをそのまま記述することができる。
【００３９】
また、条件分岐のステップの判断にあたって、スキャン・タイムの影響を受けることはないので、高速に送信処理を行なうことができる。
【図面の簡単な説明】
【００４０】
【図１】本発明のプログラマブル・コントローラを表わす構成ブロック図である。
【図２】本発明のプログラマブル・コントローラで用いるシーケンス命令を表わす図である。
【図３】本発明のプログラマブル・コントローラで用いるシーケンス処理を表わすフローチャートである。
【図４】本発明のプログラマブル・コントローラで用いるシーケンス処理を表わすフローチャートである。
【図５】一般的なプログラマブル・コントローラに用いられるデータ転送処理を表わすフローチャートである。
【図６】従来のプログラマブル・コントローラにおけるラダー図である。
【図７】従来のプログラマブル・コントローラで用いるシーケンス処理を表わすフローチャートである。
【符号の説明】
【００４１】
１  プログラマブル・コントローラ
１１  ＣＰＵユニット
１２  入力ユニット
１３  出力ユニット
１４  通信ユニット
Ｂ  システム・バス
１１１  バス・インターフェイス
１１２  シーケンス演算プロセッサ
１１３  汎用プロセッサ
ｍ１  シーケンス・プログラム格納メモリ
ｍ２  汎用プロセッサ用ファームウェア格納メモリ
ｍ３  汎用プロセッサ用プログラム格納メモリ
【図１】
2006201892.tif 000003
【図２】
2006201892.tif 000004
【図３】
2006201892.tif 000005
【図４】
2006201892.tif 000006
【図５】
2006201892.tif 000007
【図６】
2006201892.tif 000008
【図７】
2006201892.tif 000009