(57)【要約】【課題】一台のパソコンでより多くの装置ユニットまたは装置のシーケンス制御を並列（マルチシーケンス）に高速で行い、また、複数の装置ユニットまたは装置のシーケンス制御プログラムの変更時の装置ユニットまたは装置の誤動作防止と変更時間を短縮するマルチシーケンス型シーケンス制御装置の提供。【解決手段】本シーケンス制御装置は、パソコン本体と、スイッチ、センサー、リレー、バルブ、モーター等の装置ユニット内の機器と、パソコン本体と接続されるハードディスクと、ディスプレイ、キーボード、マウスで構成されている。パソコン本体は、ＭＰＵとＲＯＭとＲＡＭと装置ユニット内の機器と接続するための各種ボードとが内部バスを介して接続され構成されている。また、制御ソフト（マルチシーケンス制御プログラム）は初期化処理部、ファイル管理部、コンパイラ部、制御・状態管理部、シーケンス制御管理部、Ｉ／Ｏドライバー部で構成されている。【選択図】        図１
2004259010.tif 000002
【特許請求の範囲】
【請求項１】
装置ユニット群または装置群をシーケンス制御する装置において、メモリ上に複数の仮想ＰＬＣを構成し、装置ユニット群または装置群に対応するシーケンス制御を並列かつ独立して実行することを特徴とするマルチシーケンス型シーケンス制御装置。
【請求項２】
各装置ユニットまたは装置のシーケンス制御プログラムを汎用編集プログラムによりテキストファイル形式でそれぞれ個別のファイルに入力・保存され、個々のプログラムの変更が、他のプログラムから独立して、必要なファイルの必要な部分を書き換えるだけで行えることを特徴とする請求項１記載のマルチシーケンス型シーケンス制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパーソナルコンピュータ、ボードコンピューター組み込みシステム、シーケンス制御装置、ＰＬＣ等を使用して複数のシーケンス制御プログラムを並列に実行するマルチシーケンス型シーケンス制御装置に関する。
【０００２】
【従来の技術】
汎用ＰＬＣまたはパソコンＰＬＣではシーケンス制御プログラム（ラダー図、命令語、ＢＡＳＩＣ、Ｃ言語等のコンパイル言語、ＳＦＣ、その他のシーケンス用チャートで記述されたもの）が一つのファイル内で記述され、それを逐次実行する方式がとられている。
【０００３】
また、高速処理対応のために高速処理領域をシーケンス制御プログラムにより定義し、通常の処理領域より多くのＣＰＵの使用時間とサイクルを高速処理領域に割り当てていた。
【０００４】
【発明が解決しようとする課題】
汎用ＰＬＣまたはパソコンＰＬＣでより多くの装置ユニットまたは装置のシーケンス制御を同時に行う場合、ＰＬＣ及びパソコンＰＬＣでは一つのプログラムの中でシーケンスを記述・入力を行いプログラムの大きさにより、１スキャンの所要時間が増大し複数の装置のシーケンスが独立して円滑に行えず、複数の汎用ＰＬＣやパソコンを組み合わせなければならなかった。
【０００５】
複数の装置ユニットまたは装置のシーケンス制御プログラムを記述・入力する際、一つのプログラム内に収める必要があり、プログラムを変更するとき、誤って他の部分を書き換えてしまったり、変更することで他のシーケンスに影響を与え、装置ユニットまたは装置が思わぬ動作することがあった。このため、変更に時間がかかってしまうことが多かった。
【０００６】
本発明は、以上の点に着目して成されたもので、一台のパソコンでより多くの装置ユニットまたは装置のシーケンス制御を並列（マルチシーケンス）に高速で行い、また、複数の装置ユニットまたは装置のシーケンス制御プログラムの変更時の装置ユニットまたは装置の誤動作防止と変更時間を短縮するマルチシーケンス型シーケンス制御装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記課題を解決するため、請求項１記載の発明では、本シーケンス制御装置固有のプログラム言語を持ち、編集プログラムで装置ユニット単位にシーケンス制御プログラムを作成し、１ユニット−１シーケンス制御プログラムファイルとして補助記憶装置に保存される。そのときに、各装置ユニットが使用するリソース（ＤＩＯ、ＡＩＯ、ＮＣＢ、画像処理、通信ボード等）をコンフィグレーションファイルで定義する。
【０００８】
システムが起動すると各シーケンス制御プログラムのソースファイルとコンフィグレーションファイルにより対応するコード化されたシーケンス制御コードテーブルを生成する。ディスプレイのコントロールパネルとマウス操作でシーケンスを起動する。ユニット１のシーケンス制御コードテーブル内のシーケンス命令コードを順次実行するが、ユニットの１命令実行終了か、予め設定したタイマー時間のうち短い方により次のユニット２のシーケンス命令コードの実行に切り替える。
【０００９】
例えば、１０の装置ユニットを独立してシーケンス制御を行う場合、処理時間を１ミリ秒に設定し、上記方法を用いると、各ユニットの処理周期が１０ミリ秒以下で行える。
【００１０】
請求項２記載の発明では、各装置ユニットまたは装置のシーケンス制御プログラムを汎用編集プログラムによりテキストファイル形式でそれぞれ個別のファイルに入力・保存されので、プログラムの変更が、必要なファイルの必要な部分を書き換えるだけで行える。
【００１１】
更にこれを要約すれば、以下の構成に集約できる。
【００１２】
（１）装置ユニット群または装置群をシーケンス制御する装置において、メモリ上に複数の仮想ＰＬＣを構成し、装置ユニット群または装置群に対応するシーケンス制御を並列かつ独立して実行することを特徴とするマルチシーケンス型シーケンス制御装置。
【００１３】
（２）各装置ユニットまたは装置のシーケンス制御プログラムを汎用編集プログラムによりテキストファイル形式でそれぞれ個別のファイルに入力・保存され、個々のプログラムの変更が、他のプログラムから独立して、必要なファイルの必要な部分を書き換えるだけで行えることを特徴とする前記（１）記載のマルチシーケンス型シーケンス制御装置。
【００１４】
【発明の実施の形態】
以下、本発明に係わるマルチシーケンス型シーケンス制御装置の実施の形態を図面に基づいて説明する。
【００１５】
図１は本発明に係わるマルチシーケンス型シーケンス制御装置の実施形態をハードウァア面から示したものである。
【００１６】
このマルチシーケンス型シーケンス制御装置はパソコンを利用して複数の装置のユニットまたは装置（以下これらをまとめて装置ユニットと呼ぶ。）のシーケンス動作を独立して並列に行うこと（以下マルチシーケンスと呼ぶ。）を可能にするもので、パソコン本体１と、各種ボードを介して接続される、スイッチ、センサー、リレー、バルブ、モーター、パルスモーター、サーボモーター、画像入力器等のシーケンス制御対象なる装置ユニット内のシーケンス制御機器６と、パソコン本体１と接続されるハードディスク２と、ディスプレイ３、キーボード４、マウス５で構成されている。
【００１７】
パソコン本体１は、ＭＰＵ１１とメインメモリＲＯＭ１２とＲＡＭ１３と装置ユニット内の機器と接続するためのＤＩＯ、ＡＩＯ、ＮＣＢ、画像処理、通信等のボードとが内部バス１０を介して接続され構成されている。
【００１８】
ハードディスク２には、パソコンＷｉｎｄｏｗｓ（Ｒ）等のオペレーティングシステムプログラムやテキスト編集プログラム、装置ユニットのシーケンス動作が本装置が所有する言語で記述されたファイル（以下アプリケーションプログラムと呼ぶ。）、ＤＩＯ、ＡＩＯ、ＮＣＢ、画像処理、通信等のボードの内部バス上のアドレスや装置ユニットへの割り当てが記述されたファイル（以下コンフィグレーションファイルと呼ぶ）、マルチシーケンスを実現させるプログラム（以下マルチシーケンス制御プログラムと呼ぶ）が記憶・保持されている。
【００１９】
図２は本実施形態においてＲＡＭ１３に配置される本装置に係わる各種プログラムの概念的な構成を示す。
【００２０】
装置の電源が投入さるとオペレーティングシステムＰ１がＲＡＭ１３に配置され起動する。
【００２１】
次に、本装置の中心マルチシーケンス制御プログラムＰ２はオペレーティングシステムＰ１によりＲＡＭ１３に配置され起動されて動作する。テキスト編集プログラムは、マルチシーケンス制御プログラムＰ２がオペレーティングシステムＰ１に起動を要求したときオペレーティングシステムＰ１によって起動され動作する。
【００２２】
マルチシーケンス制御プログラムＰ２は初期化処理部、ファイル管理部、コンパイラ部、制御・状態管理部、シーケンス制御管理部、Ｉ／Ｏドライバー部で構成される。
【００２３】
初期化処理部は、主としてＩ／Ｏドライバー部を介して制御機器を初期状態にすることにより装置ユニットが安全に動作を開始可能な状態にし、シーケンス制御プログラムを格納するテーブルを作成し、各処理部がコミュニケーションを行うためのグローバルなデータやフラグの情報テーブルを初期状態にする等の処理を行う。
【００２４】
また初期化処理部は、システムに重大な異常が発生し、図１ディスプレイのコントロールパネルよりリセット操作を行ったときにも上記処理を行う。
【００２５】
ファイル管理部は、初期化終了後に、コンフィグレーションファイル、アプリケーションプログラムファイルをバッファに読み込む処理を行う。
【００２６】
コンパイラ部は、コンフィグレーションファイルとアプリケーションプログラムファイルから装置ユニット単位でーつーつのステートメントを実行速度上げるためにコード化してアプリケーションプログラムテーブルＳＰ１〜ＳＰｎに展開する処理を行う。
【００２７】
制御・状態管理部は、ディスプレイ上のコントロールパネルのスイッチ情報を受け取りそれが有効か無効かを判断し、シーケンス制御管理部に知らせたり、装置ユニットやシーケンスに異常が発生した場合、ディスプレイ上のコントロールパネルのステータス欄への異常表示とメッセージ欄への要因とその対応を表示させる処理を行う。
【００２８】
シーケンス制御管理部は、制御・状態管理部に制御され、アプリケーションプログラムＳＰ１からＳＰｎを設定されたタイマー時間か１命令実行のどちらか早い方により順次切り替えて実行する。装置ユニットの制御機器を操作する命令に対しては、当該Ｉ／Ｏドライバー部を起動してその処理を行う。
【００２９】
Ｉ／Ｏドライバー部は、シーケンス制御管理部に制御され、制御ボード（ＤＩＯ，ＡＩＯ，ＮＣＢ、画像処理、通信）を介して当該機器の制御を行う。
【００３０】
【実施例】
以上のように構成されたマルチシーケンス型シーケンス制御装置を実施した場合の動作を図面を参照して説明する。
【００３１】
図７から図１２は本発明に係わるマルチシーケンス型シーケンス制御装置の機能を実現させるプログラムすなわちマルチシーケンス制御プログラムの動作をフローチャートで示したものである。
【００３２】
以下それらの図を参照してマルチシーケンス型シーケンス制御装置の動作を説明する。
【００３３】
テキスト編集プログラムにより、コンフィグレーションファイルと図３の例のようにユニットに対応したアプリケーションプログラムをファイルに入力し、保存する。
【００３４】
アプリケーションプログラムに装置ユニット番号（ＵＮＩＴ  ０｛  ｝）、装置の運転モードが原点復帰のとき実行される原点復帰シーケンス部（ＳＥＱ＿ＲＴＨＭ｛  ｝）、運転モードが手動のときコントロールパネルの手動スイッチ操作に対応して実行される手動シーケンス部（ＳＥＱ＿ＭＡＮＵ｛  ｝）と運転モードが自動のとき実行される自動動シーケンス部（ＳＥＱ＿ＡＵＴＯ｛  ｝）があり、それらの部分を本装置で定義された言語で記述されている。
【００３５】
本装置の電源が投入されると、標準オペレーティングシステムが立ち上がり、オペレーティングシステムがマルチシーケンス制御プログラムを起動する。
【００３６】
マルチシーケンス制御プログラムが起動すると図７のメインプログラムフローチャートに従い、初期化処理部を起動する。初期化処理部は、図８のフローチャートで示すように初期化が完了しているかを調べ、完了していない場合、Ｉ／Ｏドライバー部を介して図１のシーケンス制御機器６の初期化を行い、各種バッファ・テーブルのクリアを行って処理を終了する。次にファイル管理部を起動する。ファイル管理部は、図９のフローチャートで示すように図１のハードディスク２から所定のファイルが所定のバッファまたはテーブルに入力されているかを調べ、入力されていない場合、コンフィグレーションファイルをコンフィグレーションテーブルに、シーケンスコマンドコードファイルをコマンドコードテーブルに、アプリケーションプログラムファイルをアプリケーションバッファに入力し、処理を終了する。この処理の中で特に、シーケンス制御の切り替え時間（単位：μｓ）はコンフィグレーションファイルで定義さて管理変数（Ｓｅｑ＿Ｒｕｎ＿Ｔｉｍｅ）に記憶される。
【００３７】
コンパイラ部を起動する。コンパイラ部は、図１０のタイミングチャートで示すようにアプリケーションのソースプログラムのコンパイルが完了しているかを調べ、完了していない場合、アプリケーションバッファのステートメントをコマンドコードテーブルとコンフィグレーションテーブルからシーケンス制御管理部が解読・実行しやすい命令コードに変換してアプリケーションプログラムテーブルに書き込むことで、アプリケーションプログラムテーブルを装置ユニット単位に作成して処理を終了する。
【００３８】
制御・状態管理部が起動する。制御・状態管理部は、図９のフローチャートで示すように図１のディスプレイ３のコントロールパネルよりシーケンス起動スイッチがマウス５でクリックされたかを調べ、クリックされた場合はその操作の有効性を調べ、シーケンス制御管理部を起動し装置のシーケンス制御をアプリケーションプログラムテーブルを参照して行う。シーケンス制御管理部が終了すると、図１のディスプレイ３へメッセージ出力要求があればメッセージを出力し、処理を終了する。
【００３９】
マルチシーケンス制御プログラムは、異常等により初期化処理部から処理を調べ、正常に動作している場合は制御・状態管理部を起動する動作を繰り返す。
【００４０】
シーケンス制御管理部は、シーケンス制御切り替えタイマーに時間（Ｓｅｑ＿Ｒｕｎ＿Ｔｉｍｅ）を設定し、ユニット１のプログラムカウンタが示すシーケンス命令の処理を開始する。
【００４１】
処理が終了するかまたはシーケンス制御切り替えタイマーアップしたら、その処理状態を管理テーブルに保持する。例えば、終了した場合は、次のシーケンス命令の処理ができるようプログラムカウンタをインクリメントする。処理中にシーケンス制御切り替えタイマーアップにより終了した場合は、プログラムカウンタをそのままにする。そして、シーケンス制御管理部は、再びシーケンス制御切り替えタイマーに切り替え時間（Ｓｅｑ＿Ｒｕｎ＿Ｔｉｍｅ）を設定し、ユニット２のプログラムカウンタが示すシーケンス命令の処理を開始する。
【００４２】
これと同様なことをユニットＮまで繰り返しシーケンス制御管理部の処理を終了する。シーケンス制御管理部が起動するとまたユニット単位かつ１シーケンス命令ごとに上記シーケンス制御管理部の動作を繰り返す。各ユニットの１シーケンス命令と処理時間との関係は、図１０で示される。これにより、一台のパソコンまたはボードコンピューター組み込みシステムで複数のＰＬＣ機能が実現でき、複数のＰＬＣがそれに対応する装置ユニットのシーケンスが独立して行うことが可能になる。
【００４３】
【発明の効果】
以上機能・動作説明をしたように、本発明では、一台のパソコンまたはボードコンピューター組み込みシステムで複数のＰＬＣ機能が実現でき、より多くの装置ユニットのシーケンス制御ができる。
【００４４】
ユニット単位でアプリケーションプログラムを作成実行できるので、プログラムのデバッグ・変更がファイルを個別に書き換えるだけで行えるので容易にできる。
【図面の簡単な説明】
【図１】本発明に係わるマルチシーケンス型シーケンス制御装置の実施の形態を示す構成図
【図２】本発明に係わるマルチシーケンス型シーケンス制御装置のソフトウァア上の実施形態を示す構成図
【図３】シーケンスプログラムのソースコードの記述例を示す図
【図４】マルチシーケンス型シーケンス制御装置のメインプログラムフローチャート
【図５】初期化処理部のフローチャート
【図６】ファイル管理部のフローチャート
【図７】コンパイラ部のフローチャート
【図８】制御状態管理部のフローチャート
【図９】シーケンス制御管理部のフローチャート
【図１０】シーケンス処理切り替えタイミングチャート
【符号の説明】
１  パソコン本体
２  ハードディスク
３  ディスプレイ
４  キーボード
５  マウス
６  シーケンス制御機器
１１  ＭＰＵ（プログラムの解読・実行）
１２  ＲＯＭ
１３  ＲＡＭ
１４  ＤＩＯ：デジタル入出力ボード
１５  ＡＩＯ：アナログ入出力ボード
１６  ＮＣＢ：数値制御ボード
１７  画像処理ボード
１８  通信ボード
ＳＰ１  シーケンスプログラム１
ＳＰｎ  シーケンスプログラムＮ
Ｐ１  オペレーティングシステム
Ｐ２  マルチシーケンス制御プログラム
Ｐ３  テキスト編集プログラム
【図１】
2004259010.tif 000003
【図２】
2004259010.tif 000004
【図３】
2004259010.tif 000005
【図４】
2004259010.tif 000006
【図５】
2004259010.tif 000007
【図６】
2004259010.tif 000008
【図７】
2004259010.tif 000009
【図８】
2004259010.tif 000010
【図９】
2004259010.tif 000011
【図１０】
2004259010.tif 000012