(57)【特許請求の範囲】
【請求項１】
デバイスに割り当てられているラベルの選択によって前記デバイスを指定し、シーケンスプログラムを編集するプログラム編集部と、
前記ラベルの設定を管理するラベル設定管理部と、を有し、
前記ラベル設定管理部は、
前記ラベルによって指定される前記デバイスに対する個別処理を、前記個別処理に応じた機能を前記ラベルに対応付けることにより設定可能とする個別処理設定手段を備え、
前記個別処理設定手段は、前記ラベル設定管理部が管理している前記ラベルの設定内容を表示するラベルエディタ上にて、前記個別処理に関する設定を受け付け、
前記プログラム編集部は、前記個別処理設定手段にて前記ラベルに対応付けられている前記機能をプログラムに変換し、前記シーケンスプログラムに組み込むことを特徴とするエンジニアリングツール。
【請求項２】
前記個別処理設定手段は、さらに、前記個別処理の付属情報とする引数を、前記ラベルへの対応付けとして設定可能とすることを特徴とする請求項１に記載のエンジニアリングツール。
【請求項３】
前記個別処理設定手段は、前記シーケンスプログラムによる制御対象の動作状態を実使用範囲との比較により監視する前記個別処理について、さらに、前記動作状態が前記実使用範囲から外れた前記個別処理を識別するための情報を登録する際の動作を、前記ラベルへの対応付けとして設定可能とすることを特徴とする請求項２に記載のエンジニアリングツール。
【請求項４】
前記シーケンスプログラムによる制御対象の動作状態を実使用範囲との比較により監視する前記個別処理について、前記動作状態が前記実使用範囲から外れた前記個別処理を識別するための情報であるエラー番号を管理するエラー番号管理部をさらに有することを特徴とする請求項１から３のいずれか一つに記載のエンジニアリングツール。
【請求項５】
前記プログラム編集部は、前記エラー番号を、前記機能ごとに自動的に登録可能とすることを特徴とする請求項４に記載のエンジニアリングツール。
【請求項６】
シーケンスプログラムを実行するプログラム実行部を有し、前記シーケンスプログラムに応じた制御を実施するプログラマブルロジックコントローラであって、
前記シーケンスプログラムは、エンジニアリングツールにおいて、デバイスに割り当てられているラベルの選択による前記デバイスの指定を経て編集され、
前記エンジニアリングツールでは、前記ラベルの設定が管理され、かつ、前記ラベルによって指定される前記デバイスに対する個別処理が、前記個別処理に応じた機能を前記ラベルに対応付けることによって設定され、
前記個別処理に関する設定は、前記エンジニアリングツールで管理されている前記ラベルの設定を表示するラベルエディタ上にてなされ、
前記ラベルに対応付けられている前記機能はプログラムに変換されてから前記シーケンスプログラムへ組み込まれ、
前記プログラム実行部は、前記シーケンスプログラムを実行することで、前記ラベルに対応付けられている前記機能に応じた前記個別処理を実施することを特徴とするプログラマブルロジックコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジニアリングツールおよびプログラマブルロジックコントローラに関する。
【背景技術】
【０００２】
エンジニアリングツールは、プログラマブルロジックコントローラ（ＰＬＣ）システム等で動作させるシーケンスプログラムを編集するツールである。エンジニアリングツールとしては、例えば、ラベルの選択によってデバイスを指定し、シーケンスプログラムを編集するものが知られている。ラベルは、デバイスにあらかじめ割り当てられている。エンジニアリングツールは、ラベルエディタにおいて、ラベルの設定を管理する。従来、ラベルエディタにおけるラベルの設定には、ラベル名およびデータ型の定義が含まれる。【０００３】
従来のラベルエディタを使用する場合において、ラベルによって指定されるデバイスに対する個別処理については、ラベルエディタによる作業とは別に、プログラムエディタ等でのプログラミングによる設定を要することとなる。このため、デバイスに対する個別処理の設定および管理が複雑となることや、プログラム編集が複雑となること、シーケンスプログラムのサイズが増大することが問題となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−６３３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記に鑑みてなされたものであって、デバイスに対する個別処理の簡易な設定および管理と、簡易なプログラム編集とを可能とし、また、さらにはシーケンスプログラムのサイズを抑制可能とするエンジニアリングツールおよびプログラマブルロジックコントローラを得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、デバイスに割り当てられているラベルの選択によって前記デバイスを指定し、シーケンスプログラムを編集するプログラム編集部と、前記ラベルの設定を管理するラベル設定管理部と、を有し、前記ラベル設定管理部は、前記ラベルによって指定される前記デバイスに対する個別処理を、前記個別処理に応じた機能を前記ラベルに対応付けることにより設定可能とする個別処理設定手段を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ラベルによって指定されるデバイスに対する個別処理について、ラベル設定管理部は、個別処理設定手段により、個別処理に応じた機能をラベルに対応付けて設定可能とする。ラベル設定管理部は、デバイスに対する個別処理を、デバイスに割り当てられているラベルに紐付けて設定可能とする。ラベル設定管理部は、デバイスに対し設定されているラベルと個別処理とを一元管理する。作業者は、ラベルエディタを使用する作業によって、デバイスの指定と個別処理の設定とを一括して行うことができる。これにより、エンジニアリングツールは、デバイスに対する個別処理の簡易な設定および管理と、簡易なプログラム編集とが可能となる。また、エンジニアリングツールは、シーケンスプログラムのサイズを抑制させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の実施の形態にかかるエンジニアリングツールの概略構成を示すブロック図である。
【図２】図２は、エンジニアリングツールがインストールされたハードウェア構成を示す図である。
【図３】図３は、プログラマブルロジックコントローラ、パーソナルコンピュータおよびセンサを含むシステムを示す図である。
【図４】図４は、ラベルエディタを含む操作画面の一例を示す図である。
【図５】図５は、ラベルの設定例を示す図である。
【図６】図６は、ラベルの他の設定例を示す図である。
【図７】図７は、エンジニアリングツールによるプログラム編集と、ＰＬＣへのシーケンスプログラムの送信とを説明する図である。
【図８】図８は、ＰＬＣにおいてシーケンスプログラムが動作している状態を示す図である。
【図９】図９は、ＰＬＣにおいてシーケンスプログラムが動作している間にエラーが発生したときの動作を説明する図である。
【図１０】図１０は、ラベル設定管理部が管理する設定内容を、個別処理のためのプログラムへ変換するための手順を示すフローチャートである。
【図１１】図１１は、範囲チェックについての登録処理の手順を示すフローチャートである。
【図１２】図１２は、エラー番号の自動付与について説明するフローチャートである。
【図１３】図１３は、エラー番号管理部が保持するエラー番号およびエラーメッセージの例を示す図である。
【図１４】図１４は、範囲チェックについて登録される機能ブロックの例を示す図である。
【図１５】図１５は、機能ブロックが組み込まれたメインプログラムを示す図である。
【図１６】図１６は、ＰＬＣ、ＰＣ、表示器および複数のセンサを含むシステムを示す図である。
【発明を実施するための形態】
【０００９】
以下に、本発明にかかるエンジニアリングツールおよびプログラマブルロジックコントローラの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態．
図１は、本発明の実施の形態にかかるエンジニアリングツールの概略構成を示すブロック図である。図２は、エンジニアリングツールがインストールされたハードウェア構成を示す図である。図３は、プログラマブルロジックコントローラ（ＰＬＣ）、パーソナルコンピュータ（ＰＣ）およびセンサを含むシステムを示す図である。
【００１１】
エンジニアリングツール１０は、ＰＬＣ２１を含むＰＬＣシステムで動作させるシーケンスプログラムを編集するツールである。エンジニアリングツール１０は、エンジニアリングツールソフトウェアがインストールされたハードウェア、例えばＰＣ２０で実現される。エンジニアリングツール１０は、編集されたシーケンスプログラムをＰＬＣ２１へ送信する。
【００１２】
ＰＣ２０は、例えば、ＣＰＵ（Central  Processing  Unit）である演算装置３１、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、外部記憶装置などにより構成される記憶装置３２、ＰＬＣ２１との接続のためのインタフェース（Ｉ／Ｆ）３３、液晶ディスプレイなどの表示装置３４、キーボードやマウスなどの入力装置３５、各部の間のデータ伝送のためのバス３６を備えている。
【００１３】
ＰＬＣ２１は、エンジニアリングツール１０からのシーケンスプログラムに応じた制御を実施する。ＰＬＣ２１は、制御対象である外部機器へ制御信号を送信する。ＰＬＣ２１は、センサ２２等からの検出信号を受信することで、外部機器の動作状態を監視する。センサ２２は、ＰＬＣ２１に接続されている。
【００１４】
エンジニアリングツール１０は、プログラム編集部１１、ラベル設定管理部１２およびエラー番号管理部１３を有する。プログラム編集部１１は、シーケンスプログラムを編集する機能部である。ラベル設定管理部１２は、ラベルの設定を管理する機能部である。デバイスに対するラベルの割り当ては、制御対象の構成等に応じて設定されている。プログラム編集部１１は、シーケンスプログラムの編集において、デバイスに割り当てられているラベルの選択によってデバイスを指定する。
【００１５】
エラー番号管理部１３は、エラー番号を管理するデータベースを保持する機能部である。エラー番号は、エラーが検出された個別処理を識別するための番号とする。エラー番号管理部１３は、エラー番号と、エラー内容を示すエラーメッセージとを対応付けて保持する。
【００１６】
図４は、ラベルエディタを含む操作画面の一例を示す図である。操作画面は、ＰＣ２０が備える表示装置３４に表示される。ラベルエディタ１４は、操作画面内のメニューバーの操作等によって、操作画面内に表示される。ラベルエディタ１４は、ラベル設定管理部１２へのラベルの設定のための操作を受け付ける。また、ラベルエディタ１４は、ラベル設定管理部１２が管理しているラベルの設定内容を表示する。
【００１７】
ラベルエディタ１４は、ラベル登録機能を有している。ラベル登録機能は、ラベル名をキーとして、クラス、データ型、定数値、デバイスやアドレス等の変数、コメントなどの、シーケンスプログラム処理を伴わない情報を登録する機能である。また、ラベルエディタ１４は、ラベル登録機能以外の機能として、ラベルごとにシーケンスプログラム処理を登録する機能を有している。
【００１８】
不図示のプログラムエディタは、操作画面内のメニューバーの操作等によって、操作画面内に表示される。プログラムエディタは、プログラム編集のための操作を受け付ける。また、プログラムエディタは、プログラム編集部１１が編集しているシーケンスプログラムの内容を表示する。
【００１９】
ラベルエディタ１４は、行および列で構成されるワークシートを備える。ワークシートには、例えば、「ローカルラベル設定」と記されたシート見出しが付されている。ワークシートの各行には、行番号が記されている。ワークシートの行番号は、ラベルごとに付されるローカルラベル番号を表している。
【００２０】
図示するワークシートの各列には、左から順に、「クラス」、「ラベル名」、「データ型」、「定数値」、「デバイス」、「アドレス」、「ファンクション」、「第１引数」、「第２引数」、「第３引数」および「コメント」の項目名がそれぞれ記されている。
【００２１】
ラベルは、「クラス」、「ラベル名」および「データ型」の各項目により定義される。「定数値」、「デバイス」および「アドレス」の各項目は、ラベルが割り当てられているデバイスに関する。
【００２２】
「ファンクション」の項目は、デバイスに対する個別処理を、個別処理に応じた機能として表している。「第１引数」、「第２引数」および「第３引数」の各項目は、個別処理の付属情報とする引数を表している。「コメント」の項目には、ラベルの設定についての補足説明等が記される。「第１引数」、「第２引数」および「第３引数」等の引数を用いることで、「ファンクション」自体が、引数をパラメータとして動作範囲等を変えることが可能とされている。
【００２３】
ラベルエディタ１４のうち、「ファンクション」、「第１引数」、「第２引数」および「第３引数」の項目の列からなる部分は、ラベル設定管理部１２のうちの個別処理設定手段として機能する。個別処理設定手段は、ラベルによって指定されるデバイスに対する個別処理を、個別処理に応じた機能をラベルに対応付けることにより設定する。
【００２４】
図５は、ラベルの設定例を示す図である。この例では、ビールボトルの液量に関して設定されたラベル「Ｂｏｔｔｌｅ＿Ｂｅｅｒ」と、ジュースボトルの液量に関して設定されたラベル「Ｂｏｔｔｌｅ＿Ｊｕｉｃｅ」を示している。
【００２５】
ローカルラベル番号「１」のラベルは、クラス「ＶＡＲ」、ラベル名「Ｂｏｔｔｌｅ＿Ｂｅｅｒ」、データ型「ワード［符号付き］」と定義されている。ローカルラベル番号「２」のラベルは、クラス「ＶＡＲ」、ラベル名「Ｂｏｔｔｌｅ＿Ｊｕｉｃｅ」、データ型「ワード［符号付き］」と定義されている。
【００２６】
この２つのラベルに設定されている「範囲チェック」は、液量がある範囲内に含まれるか否かをチェックする機能を表す。この機能による個別処理は、シーケンスプログラムによる制御対象の動作状態を実使用範囲との比較により監視するための監視処理である。個別処理設定手段は、個別処理に応じた機能を、ラベルへの対応付けとして設定可能とする。
【００２７】
第１引数は、実使用範囲とする液量の範囲の最小値を表す。第２引数は、実使用範囲とする液量の範囲の最大値を表す。第１引数および第２引数は、個別処理の付属情報とする引数である。個別処理設定手段は、個別処理の付属情報とする引数を、ラベルへの対応付けとして設定可能とする。
【００２８】
第３引数は、範囲チェックにて検出されたエラーに対するエラー番号の付与についての設定を表す。第３引数「ＥｒｒＡｕｔｏ」は、エラー番号を自動的に付与することを表す。個別処理設定手段は、監視処理である個別処理について、エラーが検出された個別処理を識別するための情報を登録する際の動作を、ラベルへの対応付けとして設定可能とする。この例では、制御対象の動作状態が実使用範囲から外れた個別処理を、エラーとして扱う。
【００２９】
図５に示すラベルの設定例によると、ラベル「Ｂｏｔｔｌｅ＿Ｂｅｅｒ」によって指定されるデバイスに対しては、ビールボトルの液量が０ｍｌから３５０ｍｌの範囲に含まれるか否かをチェックする個別処理がプログラミングされる。このプログラムによる個別処理では、液量が０ｍｌから３５０ｍｌの範囲を超える場合をエラーとする。プログラム編集部１１は、この個別処理について、エラー番号を自動的に付与する。
【００３０】
ラベル「Ｂｏｔｔｌｅ＿Ｊｕｉｃｅ」によって指定されるデバイスに対しては、ジュースボトルの液量が０ｍｌから２５０ｍｌの範囲に含まれるか否かをチェックする個別処理がプログラミングされる。このプログラムによる個別処理では、液量が０ｍｌから２５０ｍｌの範囲を超える場合をエラーとする。プログラム編集部１１は、この個別処理について、エラー番号を自動的に付与する。
【００３１】
エラー番号管理部１３は、ラベル「Ｂｏｔｔｌｅ＿Ｂｅｅｒ」および「Ｂｏｔｔｌｅ＿Ｊｕｉｃｅ」に対し、それぞれエラー番号を提供する。第３引数「ＥｒｒＡｕｔｏ」に応じて、エラー番号管理部１３は、ラベルが未登録である空き番号を、ラベル設定管理部１２の各ラベルに適宜割り当てる。なお、第３引数として数値が設定されている場合、個別処理設定手段は、当該数値をそのままエラー番号として設定する。
【００３２】
エンジニアリングツール１０は、制御対象の動作状態を実使用範囲との比較により監視する個別処理について、制御対象の動作状態が実使用範囲から外れた個別処理をエラーとして扱う場合に限られない。エンジニアリングツール１０は、例えば、エラーとしての扱いを、警告や割り込み処理の対象とする扱いに代えても良い。個別処理設定手段は、動作状態が実使用範囲から外れた個別処理を識別するための情報として、ワーニング番号や割り込み処理のＩＤを登録する際の動作を、ラベルへの対応付けとして設定可能とする。
【００３３】
個別処理設定手段によって設定される個別処理は、範囲チェックに限られない。図６は、ラベルの他の設定例を示す図である。この例では、個別処理設定手段は、掛け算の機能を設定する。第１引数は、ラベル名「Ｌｏｃａｌ＿Ｌａｂｅｌ１」に乗算される数値を表す。第２引数は、乗算結果を表す。この例では、Ｄ０＝（Ｌｏｃａｌ＿Ｌａｂｅｌ１）×３の演算を実施する個別処理がプログラミングされる。
【００３４】
個別処理設定手段は、デバイスに対する個別処理として、いずれの機能も設定可能であるものとする。個別処理設定手段が設定可能な機能は、個別処理の付属情報として引数を使用するものに限られない。個別処置設定手段は、引数を不要とする機能を設定することとしても良い。
【００３５】
次に、図７から図９を参照して、エンジニアリングツールおよびＰＬＣの動作手順について説明する。図７は、エンジニアリングツールによるプログラム編集と、ＰＬＣへのシーケンスプログラムの送信とを説明する図である。ボトル２３には、ＰＬＣ２１が制御する外部機器によって、液体が注入される。センサ２２は、ボトル２３へ向けて注がれた液体の量を検出する。
【００３６】
例えば、ラベルエディタ１４への操作により、ラベル設定管理部１２には、図５に示すようにラベルが設定されている。ラベルエディタ１４のラベルがプログラムエディタへ貼り付けられることで、プログラム編集部１１は、ラベル設定管理部１２にてラベルに対応付けられている機能をプログラムに変換し、シーケンスプログラムに組みこむ。
【００３７】
プログラム編集部１１は、ラベル設定管理部１２から読み出されたラベル「Ｂｏｔｔｌｅ＿Ｂｅｅｒ」に対応する機能を、機能ブロックであるＦＢ−１へ変換する。プログラム編集部１１は、ラベル設定管理部１２から読み出されたラベル「Ｂｏｔｔｌｅ＿Ｊｕｉｃｅ」に対応する機能を、機能ブロックであるＦＢ−２へ変換する。プログラム編集部１１は、メインプログラム１５にＦＢ−１およびＦＢ−２を登録する（Ａ−１）。
【００３８】
図５に示す第３引数「ＥｒｒＡｕｔｏ」に応じて、ラベル設定管理部１２は、エラー番号管理部１３に対し、エラー番号の提供を指示する（Ａ−１）。エラー番号管理部１３は、ラベルが未登録である空き番号を、ラベル設定管理部１２のラベルに適宜提供する。例えば、エラー番号管理部１３は、ラベル「Ｂｏｔｔｌｅ＿Ｂｅｅｒ」に、エラー番号「１」を割り当てる。エラー番号管理部１３は、ラベル「Ｂｏｔｔｌｅ＿Ｊｕｉｃｅ」に、エラー番号「２」を割り当てる。
【００３９】
プログラム編集部１１は、エラー番号管理部１３から提供されたエラー番号をラベルに付与する。プログラム編集部１１は、ラベルに付与したエラー番号を、エラーメッセージとともに、エラー番号管理部１３へ登録する。プログラム編集部１１は、エラー番号「１」を含むＦＢ−１、エラー番号「２」を含むＦＢ−２が組み込まれたメインプログラム１５を出力する。ＰＣ２０は、メインプログラム１５を含むシーケンスプログラムを、ＰＬＣ２１へ送信する（Ａ−２）。
【００４０】
図８は、ＰＬＣにおいてシーケンスプログラムが動作している状態を示す図である。プログラム実行部１６は、メインプログラム１５を含むシーケンスプログラムを実行する。プログラム実行部１６は、ＦＢ−１およびＦＢ−２に応じて、範囲チェックのための制御を実行する。ＰＬＣ２１は、ボトル２３へ向けて注がれた液体の量を、センサ２２によって検出する。
【００４１】
図９は、ＰＬＣにおいてシーケンスプログラムが動作している間にエラーが発生したときの動作を説明する図である。センサ２２は、検出結果を随時ＰＬＣへ出力する（Ｂ−１）。例えば、ボトル２３がジュースボトルである場合において、液量２６０ｍｌがセンサ２２によって検出されたとする。
【００４２】
このときのセンサ２２からの検出結果を受けて、ＰＬＣ２１には、プログラム実行部１６でのＦＢ−２に応じた処理によって、エラー番号「２」（ＥＲＲＯＲ＿ＮＯ＝２）がセットされる。ＰＬＣ２１は、ＰＣ２０へエラー番号「２」を送信する。エラー番号管理部１３は、ＰＬＣ２１からＰＣ２０へ送信されたエラー番号と、自身が管理するエラー番号とを照合する（Ｂ−２）。
【００４３】
エラー番号管理部１３は、エラー番号「２」に対応するエラーメッセージを保持している。かかるエラーメッセージは、ジュースボトルに対する液量が実使用範囲を超えた旨のエラー内容を表す。
【００４４】
ＰＣ２０は、エラー番号「２」に対応するエラーメッセージをエラー番号管理部１３から読み出す。ＰＣ２０は、このエラーメッセージから、ジュースボトルに対する液量が実使用範囲を超えたことを把握する。ＰＣ２０は、エラーメッセージの内容を操作画面に表示する。
【００４５】
エラー番号管理部１３によりエラー番号およびエラーメッセージを管理するエンジニアリングツール１０を適用することで、ＰＬＣ２１は、個別処理ごとのエラーへ対処するための手段を個別に用意する負担を軽減することができる。ＰＬＣ２１は、容易なトラブルシュートが可能となる。なお、エラー番号の付与は、エンジニアリングツール１０側で実施するほか、ＰＬＣ２１側で実施しても良い。
【００４６】
図１０は、ラベル設定管理部が管理する設定内容を、個別処理のためのプログラムへ変換するための手順を示すフローチャートである。ラベル設定管理部１２は、ローカルラベル番号１からＮまでのラベルを管理可能であるものとする。ローカルラベル番号の最大値であるＮは、ラベル設定管理部１２の仕様に応じた値であるものとする。ただし、Ｎは２以上の整数とする。
【００４７】
プログラム編集部１１は、各ローカルラベル番号の「ファンクション」を順次読み取る。プログラム編集部１１は、ローカルラベル番号ごとに読み取った「ファンクション」を判別し、機能ブロックを登録する登録処理を実施する。なお、「ファンクション」は、特定のラベルに対するシーケンスプログラムでの演算や制御処理をいうものとする。
【００４８】
例えば、「ファンクション」が「範囲チェック」であった場合、プログラム編集部１１は、範囲チェックについての機能ブロックの登録処理を実施する。「ファンクション」が「掛け算」であった場合、プログラム編集部１１は、掛け算についての機能ブロックの登録処理を実施する。「ファンクション」が「割り算」であった場合、プログラム編集部１１は、割り算についての機能ブロックの登録処理を実施する。プログラム編集部１１は、全てのローカルラベル番号について、「ファンクション」に応じた登録処理を実施する。「ファンクション」に記入が無い場合、プログラム編集部１１は、登録処理については何もしない。
【００４９】
プログラム編集部１１は、全てのローカルラベル番号について機能ブロックの登録処理を終えると、登録処理に異常があったか否かを判断する。全ての登録処理に異常が無い場合、プログラム編集部１１は、ラベル設定管理部１２に設定されている機能から個別処理のためのプログラムへの変換処理を、正常であるものとして終了する。
【００５０】
一方、全ての登録処理の中に１つでも異常があった場合、プログラム編集部１１は、変換処理が異常であったとして、異常メッセージ処理を実施する。異常メッセージ処理は、変換処理が異常であった旨のメッセージを、例えば操作画面に表示するための処理とする。これにより、プログラム編集部１１は、ラベル設定管理部１２に設定されている機能から個別処理のためのプログラムへの変換処理を、異常であるものとして終了する。
【００５１】
次に、機能ブロックの登録処理の詳細について説明する。ここでは、範囲チェックについての機能ブロックの登録処理を例として説明する。範囲チェック以外の機能についての登録処理については、説明を省略する。
【００５２】
図１１は、範囲チェックについての登録処理の手順を示すフローチャートである。プログラム編集部１１は、第１引数および第２引数が、指定されているデータ型の範囲内の値であるか否かを判断する（ステップＳ１）。第１引数および第２引数が、当該範囲内の値でない場合（ステップＳ１、Ｎｏ）、プログラム編集部１１は、登録処理は異常であるものと判定する（ステップＳ７）。
【００５３】
第１引数および第２引数が、当該範囲内の値である場合（ステップＳ１、Ｙｅｓ）、プログラム編集部１１は、第１引数≦第２引数の関係が成り立つか否かを判断する（ステップＳ２）。プログラム編集部１１は、ステップＳ１およびＳ２では、正しく範囲チェックが可能な値が第１引数および第２引数として設定されているか否かを確認する。
【００５４】
第１引数≦第２引数の関係が成り立たない場合（ステップＳ２、Ｎｏ）、プログラム編集部１１は、登録処理は異常であるものと判定する（ステップＳ７）。第１引数≦第２引数の関係が成り立つ場合（ステップＳ２、Ｙｅｓ）、プログラム編集部１１は、第３引数が数字か否かを判断する（ステップＳ３）。なお、第３引数は、エラー番号とされる数値と、「ＥｒｒＡｕｔｏ」のいずれかであるものとする。プログラム編集部１１は、ステップＳ３では、エラー番号を自動付与とするか否かを判断する。
【００５５】
第３引数が数字である場合（ステップＳ３、Ｙｅｓ）、プログラム編集部１１は、当該数字を、エラー番号としてエラー番号管理部１３に登録する（ステップＳ５）。第３引数が数字でない場合（ステップＳ３、Ｎｏ）、すなわち「ＥｒｒＡｕｔｏ」である場合、プログラム編集部１１は、エラー番号管理部１３から空き番号を取得する。プログラム編集部１１は、空き番号をそのままエラー番号として採用することで、範囲チェックについてエラー番号を自動付与する（ステップＳ４）。プログラム編集部１１は、当該エラー番号をエラー番号管理部１３に登録する（ステップＳ５）。このように、プログラム編集部１１は、エラー番号を、機能ごとに自動的に登録可能とする。これにより、エンジニアリングツール１０は、エラー番号を簡単に登録することができる。
【００５６】
図１２は、エラー番号の自動付与について説明するフローチャートである。プログラム編集部１１は、エラー内容を示すエラーメッセージがエラー番号管理部１３において未登録であるエラー番号を取得する（ステップＳ１１）。プログラム編集部１１は、ステップＳ１１で取得したエラー番号を、エラー番号管理部１３への戻り値に設定する（ステップＳ１２）。
【００５７】
図１３は、エラー番号管理部が保持するエラー番号およびエラーメッセージの例を示す図である。エラー番号管理部１３には、「（ラベル名）＿（機能略称）＿Ｅｒｒｏｒ」の文字列が、エラーメッセージとして登録されている。この例では、「範囲チェック」については、「Ｏｖｅｒ」を機能略称としている。
【００５８】
エラー番号「１」に登録されている「Ｂｏｔｔｌｅ＿Ｂｅｅｒ＿Ｏｖｅｒ＿Ｅｒｒｏｒ」は、ビールボトルに対する液量が実使用範囲を超えた旨のエラー内容を示すエラーメッセージである。エラー番号「２」に登録されている「Ｂｏｔｔｌｅ＿Ｊｕｉｃｅ＿Ｏｖｅｒ＿Ｅｒｒｏｒ」は、ジュースボトルに対する液量が実使用範囲を超えた旨のエラー内容を示すエラーメッセージである。
【００５９】
エンジニアリングツール１０は、範囲チェックについての登録処理において、ラベル設定管理部１２の設定に応じてエラー番号を登録可能とする。エンジニアリングツール１０は、エラー番号の登録を別途行うこと無く、エラー番号を容易に管理することができる。
【００６０】
図１１に戻って、プログラム編集部１１は、範囲チェックについての機能ブロック（ＦＢ）を、メインプログラム１５（図７参照）に登録する（ステップＳ６）。ステップＳ６またはステップＳ７を経て、プログラム編集部１１は、範囲チェックについての登録処理を終了する。
【００６１】
図１４は、範囲チェックについて登録される機能ブロックの例を示す図である。プログラム編集部１１は、ラベル設定管理部１２に設定されている値を用いて、機能ブロックを生成する。
【００６２】
例えば、ローカルラベル番号「１」について登録されるＦＢ−１は、ラベル「Ｂｏｔｔｌｅ＿Ｂｅｅｒ」について設定されている各値、例えば、「Ｂｏｔｔｌｅ＿Ｂｅｅｒ」、「０」、「３５０」を用いて生成される。ローカルラベル番号「２」について登録されるＦＢ−２は、ラベル「Ｂｏｔｔｌｅ＿Ｊｕｉｃｅ」について設定されている各値、例えば、「Ｂｏｔｔｌｅ＿Ｊｕｉｃｅ」、「０」、「２５０」を用いて生成される。なお、ＦＢ−１およびＦＢ−２に含まれる「ＥＲＲＯＲ＿ＮＯ」は、エラーが発生した際に、ＰＬＣ２１にてセットされるエラー番号を示すラベル変数とする。
【００６３】
図１５は、機能ブロックが組み込まれたメインプログラムを示す図である。プログラム編集部１１は、ラベル設定管理部１２にてラベルに対応付けられている機能をプログラムに変換することにより、図１４に示すＦＢ−１およびＦＢ−２が組み込まれたメインプログラム１５を生成する。
【００６４】
本発明のエンジニアリングツール１０は、ラベルによって指定されるデバイスに対する個別処理について、個別処理設定手段により、個別処理に応じた機能をラベルに対応付けて設定可能とする。エンジニアリングツール１０は、ラダーなどのユーザプログラム自体における個別のチェックロジックの設定を不要とすることができる。エンジニアリングツール１０は、シーケンスプログラムのサイズの削減が可能となる。作業者は、シーケンスプログラムの編集の負担を軽減できる。
【００６５】
エンジニアリングツール１０は、デバイスに対し設定されているラベルと個別処理とを、ラベル設定管理部１２にて一元管理する。作業者は、ラベルエディタを使用する作業によって、デバイスの指定と個別処理の設定とを一括して行うことができる。
【００６６】
ラベルエディタ１４において、ラベルは、通常、処理内容や制御対象とする機器などに応じて、ラベル名が区別あるいは整理されて登録されることが多い。ラベル名は、例えば、ラベル名の先頭に「Ｂｏｔｔｌｅ」などと付されることで、処理内容にしたがって区別される。ここで、処理内容にしたがって区別されているラベルと同じ処理（ファンクション）をさせたい場合に、ラベルエディタ１４であれば、容易に、各ラベルをラベル名ごとに並べて（ソーティング）表示することができる。かかる表示において、作業者は、表入力と同様の入力によって、ラベルに対する処理（ファンクション）を容易に登録することができる。本実施の形態によると、作業者は、ラベルごとのエディタでのプログラミングを要する従来の手法に比べて、特定のラベルに対する処理（ファンクション）の登録を効率的に行うことができる。さらに、作業者は、ラベルエディタ１４にて各ラベルをソーティングすることで、それまでに登録されている処理の内容を容易に確認することができる。
【００６７】
これにより、エンジニアリングツール１０は、デバイスに対する個別処理の簡易な設定および管理と、簡易なプログラム編集とが可能となる。また、エンジニアリングツール１０は、シーケンスプログラムのサイズを抑制させることができる。
【００６８】
ＰＬＣ２１は、エンジニアリングツール１０の個別処理設定手段における設定に基づく制御を実施可能とする。ＰＬＣ２１は、サイズが削減されたシーケンスプログラムの実行によって、効率的な制御を実施することができる。
【００６９】
図１６は、ＰＬＣ、ＰＣ、表示器および複数のセンサを含むシステムを示す図である。表示器２４および複数のセンサ２２は、ＰＬＣ２１に接続されている。表示器２４は、制御対象である外部機器の稼動状態の表示、各機器の設定および操作を行う。複数のセンサ２２は、外部機器の稼動状態を検出する各種センサである。複数のセンサ２２は、例えば、ビジョンセンサ、圧力センサ、近接センサ等を含む。
【００７０】
エンジニアリングツール１０は、かかる表示器２３あるいは複数のセンサ２２を含むＰＬＣシステムで動作させるシーケンスプログラムを編集する。この場合も、エンジニアリングツール１０は、デバイスに対する個別処理の簡易な設定および管理と、簡易なプログラム編集とが可能となる。また、エンジニアリングツール１０は、シーケンスプログラムのサイズを抑制させることができる。
【符号の説明】
【００７１】
１０  エンジニアリングツール、１１  プログラム編集部、１２  ラベル設定管理部、１３  エラー番号管理部、１４  ラベルエディタ、１５  メインプログラム、１６  プログラム実行部、２０  ＰＣ、２１  ＰＬＣ、２２  センサ、２３  ボトル、２４  表示器、３１  演算装置、３２  記憶装置、３３  Ｉ／Ｆ、３４  表示装置、３５  入力装置。
【要約】
エンジニアリングツール（１０）は、デバイスに割り当てられているラベルの選択によって前記デバイスを指定し、シーケンスプログラムを編集するプログラム編集部（１１）と、前記ラベルの設定を管理するラベル設定管理部（１２）と、を有し、前記ラベル設定管理部（１２）は、前記ラベルによって指定される前記デバイスに対する個別処理を、前記個別処理に応じた機能を前記ラベルに対応付けることにより設定可能とする個別処理設定手段を備える。【図１】
0005496429.tif 000002
【図２】
0005496429.tif 000003
【図３】
0005496429.tif 000004
【図４】
0005496429.tif 000005
【図５】
0005496429.tif 000006
【図６】
0005496429.tif 000007
【図７】
0005496429.tif 000008
【図８】
0005496429.tif 000009
【図９】
0005496429.tif 000010
【図１０】
0005496429.tif 000011
【図１１】
0005496429.tif 000012
【図１２】
0005496429.tif 000013
【図１３】
0005496429.tif 000014
【図１４】
0005496429.tif 000015
【図１５】
0005496429.tif 000016
【図１６】
0005496429.tif 000017