(57)【要約】【課題】シーケンスプログラムの出力部が、安全が保証された出力であるか否かを自動的に判定し、より短時間にかつより正確に安全が保証された出力であるか否かをユーザが判断できる、安全ＰＬＣ、シーケンスプログラム作成支援ソフトウェア及びシーケンスプログラムの判定方法を提供する。【解決手段】シーケンスプログラムを書替え可能な安全ＰＬＣにおける、シーケンスプログラム作成支援ソフトウェアであって、シーケンスプログラム作成支援ソフトウェアは、各入力機器に対応させて安全が保証されていることを示す第１種類情報または安全が保証されていないことを示す第２種類情報とが記憶された入力機器種類情報と、対象となるシーケンスプログラムとに基づいて、当該シーケンスプログラムに対応する出力部が、安全が保証されている構成であるか否かを判定し、判定した結果を識別可能に表示する。【選択図】        図６
2006040121.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力機器の導通状態に関する信号が入力される入力手段と、
入力された入力機器の中から選択した任意の入力機器を直列または並列に組み合わせて構成したシーケンスプログラムを記憶する記憶手段と、
シーケンスプログラムと各入力機器の導通状態に関する信号とに基づいて演算結果を求める演算手段と、
演算手段の演算結果を出力部から出力して出力機器を制御する出力手段とを備え、シーケンスプログラムを書替え可能な安全ＰＬＣであって、
記憶手段には、各入力機器に対応させて、安全が保証されていることを示す第１種類情報または安全が保証されていないことを示す第２種類情報とが記憶された入力機器種類情報が記憶されており、
安全ＰＬＣは、シーケンスプログラムと入力機器種類情報とに基づいて、出力部に対応するシーケンスプログラムが、安全が保証されている構成であるか否かを判定し、安全が保証されていない構成であると判定した場合、報知手段に出力するとともに、出力部に接続された出力機器を安全側に制御する、
ことを特徴とする安全ＰＬＣ。
【請求項２】
複数の入力機器の導通状態に関する信号が入力される入力手段と、
入力された入力機器の中から選択した任意の入力機器を直列または並列に組み合わせて構成したシーケンスプログラムを記憶する記憶手段と、
シーケンスプログラムと各入力機器の導通状態に関する信号とに基づいて演算結果を求める演算手段と、
演算手段の演算結果を出力部から出力して出力機器を制御する出力手段とを備え、シーケンスプログラムを書替え可能な安全ＰＬＣにおける、シーケンスプログラム作成支援ソフトウェアであって、
シーケンスプログラム作成支援ソフトウェアは、
各入力機器に対応させて安全が保証されていることを示す第１種類情報または安全が保証されていないことを示す第２種類情報とが記憶された入力機器種類情報と、対象となるシーケンスプログラムとに基づいて、当該シーケンスプログラムに対応する出力部が、安全が保証されている構成であるか否かを判定し、判定した結果を識別可能に表示する、
ことを特徴とするシーケンスプログラム作成支援ソフトウェア。
【請求項３】
請求項２に記載のシーケンスプログラム作成支援ソフトウェアであって、
シーケンスプログラム作成支援ソフトウェアは、対象となるシーケンスプログラムに対応する出力部が、安全が保証されている構成でないと判定した場合、当該シーケンスプログラムを安全ＰＬＣに書き込むことを禁止するように設定することが可能である、
ことを特徴とするシーケンスプログラム作成支援ソフトウェア。
【請求項４】
請求項２または３に記載のシーケンスプログラム作成支援ソフトウェアであって、
シーケンスプログラム作成支援ソフトウェアでは、複数のシーケンスプログラムを作成可能であるとともに、あるシーケンスプログラムの出力部を別のシーケンスプログラムの入力機器として利用することが可能であり、
シーケンスプログラム作成支援ソフトウェアは、
安全が保証されている構成でないと判定された出力部が選択された場合、当該出力部の安全が保証されている構成でないと判定された原因を含む自身または別のシーケンスプログラムの中から最初に安全が保証されている構成でないと判定された出力部を含むシーケンスプログラムを表示するとともに、当該表示したシーケンスプログラムにおいて原因となった入力機器または出力部の少なくとも一方を識別可能に表示する、
ことを特徴とするシーケンスプログラム作成支援ソフトウェア。
【請求項５】
請求項１に記載の安全ＰＬＣまたは請求項２〜４のいずれかに記載のシーケンスプログラム作成支援ソフトウェアにおいて、対象となるシーケンスプログラムの出力部の安全が保証されている構成であるか否かを判定するシーケンスプログラムの判定方法であって、
判定結果を、常に安全が保証されていることを示す第１種類情報と、常に安全が保証されていないことを示す第２種類情報と、安全が保証されている場合と保証されていない場合の双方があり得る結果として安全が保証されていないことを示す第３種類情報の３種類に分類し、
シーケンスプログラムが第１種類情報の入力機器のみで構成されている場合、出力部の判定結果は第１種類情報であると判定し、
シーケンスプログラムが第２種類情報の入力機器のみで構成されている場合、出力部の判定結果は第２種類情報であると判定し、
シーケンスプログラムに第１種類情報の入力機器と第２種類情報の入力機器とが混在する場合、
シーケンスプログラムの出力部に至る経路中のいずれの部分においても、第２種類情報の入力機器の導通状態が第１種類情報の入力機器の導通状態よりも優先される部分が検出されない場合に、当該シーケンスプログラムの出力部の判定結果は第１種類情報であると判定し、
シーケンスプログラムの出力部に至る経路中の少なくとも一部において、第２種類情報の入力機器の導通状態が第１種類情報の入力機器の導通状態よりも優先される部分が検出された場合に、当該シーケンスプログラムの出力部の判定結果は第３種類情報であると判定する、
ことを特徴とするシーケンスプログラムの判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の入力機器を組み合わせて出力機器を制御するシーケンスプログラムを書替え可能な安全ＰＬＣ、安全ＰＬＣに書き込むシーケンスプログラムの作成支援ソフトウェア、及びシーケンスプログラムの判定方法に関する。
【背景技術】
【０００２】
従来、工場の生産ライン等では、一般ＰＬＣ（Programmable Logic Controller）を用いて、種々の入力機器（スイッチ、センサ等）からの導通状態に関する信号（ＯＮまたはＯＦＦの情報）を入力し、種々の入力機器を所望する形態に組み合わせた（直列または並列に組み合わせた）シーケンスプログラムを用いて、出力機器（リレー、モータ等）を制御（ＯＮまたはＯＦＦ信号を出力等）している。
なお、種々の入力機器の中から任意に選択した入力機器を直列または並列に任意に組み合わせたシーケンスプログラムを作成する場合、通常、ユーザはシーケンスプログラム作成支援ソフトウェアを用いてラダー回路を作成し、作成したラダー回路に基づいたデータを作成して一般ＰＬＣに書き込むことで、一般ＰＬＣに所望する動作をさせている。
近年では、一般ＰＬＣに対して安全に特化したいわゆる安全ＰＬＣの要求が高まっている。安全ＰＬＣでは、理想的には安全が保証された入力機器を用いて、出力機器への出力を、安全が保証された出力とする。しかし、実際には全ての入力機器が安全が保証された入力機器ではない場合もある。安全が保証されている入力機器と安全が保証されていない入力機器とを混在させたシーケンスプログラムを作成した場合、出力機器への出力の安全が保証されているか否かは、ユーザが判定しなければならない。
なお、先行技術として特許文献１には、ユニット単体の構成を簡略化しつつフェイルセーフを実現でき、ユニット単体ひいてはシステム全体としてもコストダウンを図ることのできる安全コントローラが提案されている。
【特許文献１】特開２００２−３５８１０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ユーザがシーケンスプログラム作成支援ソフトウェアを用いてシーケンスプログラム（ラダー回路等）を作成する場合、どのような入力機器を用いることも可能であり、またどのような組み合わせ（直列または並列に組み合わせ）にすることも可能である。
従って、安全が保証された入力機器や安全が保証されていない入力機器を混在させて、なおかつ直列または並列に複雑に組み合わせてシーケンスプログラムを作成することができてしまう。このように作成されたシーケンスプログラムの出力部が（特に数十個〜数百個の入力機器を組み合わせたようなシーケンスプログラムの出力部が）、安全が保証された出力であるか否かを判定するためには、従来ではユーザの手作業で行っており、膨大な労力が必要であった。またユーザの手作業による判定では、誤判定の可能性もあった。
安全が保証されている入力機器と安全が保証されていない入力機器とを混在させた場合、安全が保証される組み合わせ（直列等）と安全が保証されない組み合わせ（並列等）が存在するためである。
【０００４】
特許文献１に記載の従来技術では、作成されたシーケンスプログラムを複数のＣＰＵで演算して結果を比較することで、演算結果の信頼性を向上させているが、シーケンスプログラムそのものの安全性を向上させることはできない。
また、他の従来技術としては、各入力機器が安全であるか否かを予め設定しておき、シーケンスプログラム作成支援ソフトウェアにてシーケンスプログラム（ラダー回路等）を表示させた際、安全が保証されていない入力機器を識別可能に表示するものもある。しかし、単体の入力機器が安全であるか否かを表示しているにすぎず、シーケンスプログラムの出力が、安全が保証されている出力であるか否かは、結局ユーザの手作業により、膨大な労力を費やして判定せざるを得ない。
【０００５】
本発明は、このような点に鑑みて創案されたものであり、シーケンスプログラムの出力部が、安全が保証された出力であるか否かを自動的に判定し、より短時間にかつより正確に安全が保証された出力であるか否かをユーザが判断できる、安全ＰＬＣ、シーケンスプログラム作成支援ソフトウェア及びシーケンスプログラムの判定方法を提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための手段として、本発明の第１発明は、請求項１に記載されたとおりの安全ＰＬＣである。
請求項１に記載の安全ＰＬＣは、複数の入力機器の導通状態に関する信号が入力される入力手段と、入力された入力機器の中から選択した任意の入力機器を直列または並列に組み合わせて構成したシーケンスプログラムを記憶する記憶手段と、シーケンスプログラムと各入力機器の導通状態に関する信号とに基づいて演算結果を求める演算手段と、演算手段の演算結果を出力部から出力して出力機器を制御する出力手段とを備え、シーケンスプログラムを書替え可能な安全ＰＬＣである。
記憶手段には、各入力機器に対応させて、安全が保証されていることを示す第１種類情報または安全が保証されていないことを示す第２種類情報とが記憶された入力機器種類情報が記憶されている。
そして安全ＰＬＣは、シーケンスプログラムと入力機器種類情報とに基づいて、出力部に対応するシーケンスプログラムが、安全が保証されている構成であるか否かを判定し、安全が保証されていない構成であると判定した場合、報知手段に出力するとともに、出力部に接続された出力機器を安全側に制御する。
【０００７】
また、本発明の第２発明は、請求項２に記載されたとおりのシーケンスプログラム作成支援ソフトウェアである。
請求項２に記載のシーケンスプログラム作成支援ソフトウェアは、複数の入力機器の導通状態に関する信号が入力される入力手段と、入力された入力機器の中から選択した任意の入力機器を直列または並列に組み合わせて構成したシーケンスプログラムを記憶する記憶手段と、シーケンスプログラムと各入力機器の導通状態に関する信号とに基づいて演算結果を求める演算手段と、演算手段の演算結果を出力部から出力して出力機器を制御する出力手段とを備え、シーケンスプログラムを書替え可能な安全ＰＬＣにおける、シーケンスプログラム作成支援ソフトウェアである。
シーケンスプログラム作成支援ソフトウェアは、各入力機器に対応させて安全が保証されていることを示す第１種類情報または安全が保証されていないことを示す第２種類情報とが記憶された入力機器種類情報と、対象となるシーケンスプログラムとに基づいて、当該シーケンスプログラムに対応する出力部が、安全が保証されている構成であるか否かを判定し、判定した結果を識別可能に表示する。
【０００８】
また、本発明の第３発明は、請求項３に記載されたとおりのシーケンスプログラム作成支援ソフトウェアである。
請求項３に記載のシーケンスプログラム作成支援ソフトウェアは、請求項２に記載のシーケンスプログラム作成支援ソフトウェアであって、シーケンスプログラム作成支援ソフトウェアは、対象となるシーケンスプログラムに対応する出力部が、安全が保証されている構成でないと判定した場合、当該シーケンスプログラムを安全ＰＬＣに書き込むことを禁止するように設定することが可能である。
【０００９】
また、本発明の第４発明は、請求項４に記載されたとおりのシーケンスプログラム作成支援ソフトウェアである。
請求項４に記載のシーケンスプログラム作成支援ソフトウェアは、請求項２または３に記載のシーケンスプログラム作成支援ソフトウェアであって、シーケンスプログラム作成支援ソフトウェアでは、複数のシーケンスプログラムを作成可能であるとともに、あるシーケンスプログラムの出力部を別のシーケンスプログラムの入力機器として利用することが可能である。
そしてシーケンスプログラム作成支援ソフトウェアは、安全が保証されている構成でないと判定された出力部が選択された場合、当該出力部の安全が保証されている構成でないと判定された原因を含む自身または別のシーケンスプログラムの中から最初に安全が保証されている構成でないと判定された出力部を含むシーケンスプログラムを表示するとともに、当該表示したシーケンスプログラムにおいて原因となった入力機器または出力部の少なくとも一方を識別可能に表示する。
【００１０】
また、本発明の第５発明は、請求項５に記載されたとおりのシーケンスプログラムの判定方法である。
請求項５に記載のシーケンスプログラムの判定方法は、請求項１に記載の安全ＰＬＣまたは請求項２〜４のいずれかに記載のシーケンスプログラム作成支援ソフトウェアにおいて、対象となるシーケンスプログラムの出力部の安全が保証されている構成であるか否かを判定するシーケンスプログラムの判定方法である。
まず判定結果を、常に安全が保証されていることを示す第１種類情報と、常に安全が保証されていないことを示す第２種類情報と、安全が保証されている場合と保証されていない場合の双方があり得る結果として安全が保証されていないことを示す第３種類情報の３種類に分類する。
シーケンスプログラムが第１種類情報の入力機器のみで構成されている場合、出力部の判定結果は第１種類情報であると判定する。
シーケンスプログラムが第２種類情報の入力機器のみで構成されている場合、出力部の判定結果は第２種類情報であると判定する。
シーケンスプログラムに第１種類情報の入力機器と第２種類情報の入力機器とが混在する場合は、以下の２通りの判定方法を用いる。
シーケンスプログラムの出力部に至る経路中のいずれの部分においても、第２種類情報の入力機器の導通状態が第１種類情報の入力機器の導通状態よりも優先される部分が検出されない場合に、当該シーケンスプログラムの出力部の判定結果は第１種類情報であると判定する。
シーケンスプログラムの出力部に至る経路中の少なくとも一部において、第２種類情報の入力機器の導通状態が第１種類情報の入力機器の導通状態よりも優先される部分が検出された場合に、当該シーケンスプログラムの出力部の判定結果は第３種類情報であると判定する。
【発明の効果】
【００１１】
請求項１に記載の安全ＰＬＣを用いれば、シーケンスプログラムの出力が、安全が保証されている構成であるか否かを、安全ＰＬＣが自動的に判定するので、ユーザの手作業を必要とせず、より短時間かつより正確に、安全が保証された出力であるか否かをユーザが判断できる。また、安全が保証されていないと判定された場合は報知されるので、ユーザは安全が保証されていないことを的確に認識することができる。また、安全が保証されていないと判定された場合は出力機器を安全側に制御するので便利である。
【００１２】
また、請求項２に記載のシーケンスプログラム作成支援ソフトウェアによれば、シーケンスプログラム作成支援ソフトウェアが、対象となるシーケンスプログラムの出力が、安全が保証されている構成であるか否かを自動的に判定する。
そしてユーザは、識別可能に表示された判定結果（安全が保証されているか否かの判定結果）を見ることで、安全が保証された出力であるか否かを判断することができる。
このため、ユーザの手作業を必要とせず、より短時間かつより正確に、安全が保証された出力であるか否かをユーザが判断できる。
【００１３】
また、請求項３に記載のシーケンスプログラム作成支援ソフトウェアによれば、安全が保証されている構成でないと判定されたシーケンスプログラムを、ユーザが誤って安全ＰＬＣに書き込むことを禁止できるため、便利である。
【００１４】
また、請求項４に記載のシーケンスプログラム作成支援ソフトウェアによれば、安全が保証されている構成でないと判定されたシーケンスプログラムの出力部に対して、当該出力部がそのように判定された原因となった入力機器（または他のシーケンスプログラムの入力機器または出力部）を識別可能に表示する。このため、ユーザが、シーケンスプログラムを修正して安全が保証されている構成に直す作業において、どの部分を修正すべきか、ユーザは瞬時に判断できる。
このため、ユーザによるシーケンスプログラムの修正において、ユーザは、短時間にかつ正確に修正すべき部分を認識することができ、非常に便利である。
【００１５】
また、請求項５に記載のシーケンスプログラムの判定方法によれば、安全が保証されている入力機器と安全が保証されていない入力機器とを混在させた場合、安全が保証される組み合わせ（直列等）と安全が保証されない組み合わせ（並列等）を適切に判定することができる。
【発明を実施するための最良の形態】
【００１６】
以下に本発明を実施するための最良の形態を図面を用いて説明する。図１は、本発明の安全ＰＬＣ１（Programmable Logic Controller）を構成する制御ユニット１０と入力ユニット２０と出力ユニット３０の概略外観図を示している。
●［安全ＰＬＣの外観（図１）］
まず図１（Ａ）〜（Ｃ）に、制御ユニット１０（演算手段に相当）、入力ユニット２０（入力手段に相当）、出力ユニット３０（出力手段に相当）の外観の例を示す。
安全ＰＬＣ１は、制御ユニット１０と入力ユニット２０と出力ユニット３０とで構成され、入出力の数に応じて入力ユニット２０及び出力ユニット３０が増設される。
入力ユニット２０内には制御ユニット１０と接続するためのコネクタ２２を備えた入力ボード２１が収容されており、複数の入力機器（スイッチ、センサ等）からの配線が接続される入力端子２５が設けられている。
出力ユニット３０内には制御ユニット１０と接続するためのコネクタ３２を備えた出力ボード３１が収容されており、複数の出力機器（リレー、モータ等）への配線が接続される出力端子３５が設けられている。
制御ユニット１０内には入力ユニット２０及び出力ユニット３０と接続するためのコネクタ１２を備えた制御ボード２１が収容されており、パソコン等の端末装置を接続可能なコネクタ１５が設けられている。
【００１７】
●［安全ＰＬＣのブロック構成及び接続例（図２）］
次に図２を用いて安全ＰＬＣ１のブロック構成及び接続の例について説明する。
入力ユニット２０の入力端子２５には、複数の入力機器（スイッチ４０ａ、センサ４０ｂ等）からの配線が接続され、複数の入力機器の導通状態に関する信号（ＯＮまたはＯＦＦの情報等）が入力される。入力された導通状態に関する信号は、インターフェース２１ａ（以下、インターフェースをＩ／Ｆと記載する）及びコネクタ２２を介して制御ユニット１０に伝送される。
【００１８】
制御ユニット１０は、ＣＰＵ１１ａを中心に構成され、ＲＡＭ１１ｂ、ＲＯＭ１１ｃ（記憶手段に相当）が設けられている。ＲＯＭ１１ｃには、ＥＥＰＲＯＭ、ＦｌａｓｈＲＯＭ等の書替え可能なＲＯＭが用いられ、任意の入力機器を直列または並列に組み合わせて構成したシーケンスプログラムと、各入力機器に対応させて第１種類情報（当該入力機器は安全が保証されていることを示す情報）または第２種類情報（当該入力機器は安全が保証されていないことを示す情報）が記憶された入力機器種類情報５１ａ（図３（Ａ）参照）が記憶されている。ユーザは端末機器５０を用いて、入力機器種類情報５１ａを作成可能であり、作成した入力機器種類情報５１ａを制御ユニット１０に記憶させる（書き込む）ことが可能である。
なお、ＲＯＭ１１ｃには、Ｉ／Ｆ１１ｆを介して端末装置５０、一般ＰＬＣ６０（安全に特化していない他のＰＬＣ）等と通信を行うプログラム等も格納されている。
ＣＰＵ１１ａは、ＲＯＭ１１ｃに記憶されているシーケンスプログラムと、コネクタ１２及びＩ／Ｆ１１ｄを介して入力ユニット２０から入力される各入力機器からの導通状態に関する信号とに基づいた演算結果を、Ｉ／Ｆ１１ｅ及びコネクタ１２を介して出力ユニット３０に出力する。
【００１９】
なお、一般ＰＬＣ６０との通信データには、一般ＰＬＣに入力された入力機器の導通状態に関する信号も含まれる（この入力機器は第２種類情報に相当する）。
第１種類情報の入力機器の例としては、接点が２重系で構成された非常停止ボタン等がある。また、第２種類情報の入力機器の例としては、単一の接点で構成された一般的なスイッチや、一般ＰＬＣから通信で入力される入力機器の情報等がある。
ユーザは端末装置５０を用いてシーケンスプログラム作成支援ソフトウェアを起動して、任意の入力機器を直列または並列に組み合わせて構成したシーケンスプログラムを作成可能である。また、作成したシーケンスプログラムを制御ユニット１０に記憶させる（書き込む）ことも可能である。
【００２０】
出力ユニット３０の出力端子３５には、複数の出力機器（モータ４２ａ、リレー４２ｂ等）への配線が接続される。そして、シーケンスプログラムと各入力機器の導通状態に基づいて制御ユニット１０にて求めた演算結果を、コネクタ３２及びＩ／Ｆ３１ａを介して出力端子３５に接続された出力機器に出力する。
【００２１】
●［入力機器種類情報とシーケンスプログラムの例（図３）］
次に図３（Ａ）〜（Ｃ）を用いて、入力機器種類情報５１ａ及び出力機器情報５１ｂの例と、シーケンスプログラム（この場合、ラダー回路）の例について説明する。
図３（Ａ）に示すように、入力機器種類情報５１ａには、入力端子番号に対応させて、入力機器名称及び入力機器種類が記憶されている。
「入力端子番号」は、入力ユニット２０の接続端子２５の各端子に割付けられた番号である。
「入力機器名称」は、対象の入力機器をシーケンスプログラムの中で表示する際、当該入力機器に付与する名称（識別情報）である。
「入力機器種類」には、対象となる「端子番号」に接続した入力機器が第１種類情報（この場合「Ｓ」で表示）または第２種類情報（この場合「（−）」で表示）のどちらに相当するかが記憶されている。
また、図３（Ｂ）に示すように、出力機器情報５１ｂには、端子番号に対応させて、出力機器名称が記憶されている。
「出力端子番号」は、出力ユニット３０の接続端子３５の各端子に割付けられた番号である。
「出力機器名称」は、対象の出力機器をシーケンスプログラムの中で表示する際、当該出力機器に付与する名称（識別情報）である。
【００２２】
次に図３（Ｃ）に、ユーザが作成したシーケンスプログラム（シーケンス番号「００１」）の例を示す。
図３（Ｃ）に示す例では、出力機器名称「Ｍ００１」（以下、「出力Ｍ００１」と記載する）は、入力機器名称「Ｉ００１」（以下、「入力Ｉ００１」と記載する）と入力Ｉ００２の双方が導通状態となった場合、または入力Ｉ００３が導通状態となった場合に、ＯＮ状態に制御される。また、入力Ｉ００１及び入力Ｉ００２には「Ｓ」記号が付与されており第１種類情報の入力機器であることが示されている。また、入力Ｉ００３には記号が何も付与されていないため第２種類情報であることが示されている。なおユーザは、シーケンスプログラムを作成する場合、端末装置５０にてシーケンスプログラム作成支援ソフトウェアを用いて各入力機器の選定及び配置（場所、直列または並列の位置）を行って作成する。図３（Ｃ）に示すシーケンスプログラム（この場合、ラダー回路）入力機器に付与される第１種類情報（この場合「Ｓ」）または第２種類情報（この場合“記号なし”）は、シーケンスプログラム作成支援ソフトウェアが、入力機器種類情報５１ａに基づいて自動的に付与する。
なお、通常では、複数の入力機器を用いて複数の出力機器を制御するため、ユーザは複数のシーケンスプログラムを作成する。また、図３（Ｃ）中の「シーケンス番号」は、各シーケンスプログラムに付与する名称（識別情報）である。
【００２３】
●［シーケンスプログラムにおいて出力部が安全か否かを自動判定させる例（図４、図５、図６）］
（１）基本ルール
次に図４を用いて自動判定における基本ルールの例を説明し、図５を用いて実際に自動判定する手順の例を説明する。
実際の安全ＰＬＣ１に搭載されるシーケンスプログラム（この場合、ラダー回路）は、使用する生産ライン設備の規模にもよるが、数十個〜数百個の入力機器が直列または並列に組み合わされたシーケンスプログラムが複数搭載されている。
そして「入力機器が２個の直列回路（第１種類情報〜第３種類情報）を、合成して１個の入力機器（新たに第１種類情報〜第３種類情報を付与）に置き換え」または「入力機器が２個の並列回路（第１種類情報〜第３種類情報）を、合成して１個の入力機器（新たに第１種類情報〜第３種類情報を付与）に置き換え」を行う作業を順次進め、シーケンスプログラムの出力部が第１種類情報〜第３種類情報のいずれに該当するか、を判定する。
【００２４】
なお、第１種類情報とは、既に説明したように、（常に）安全が保証されていることを示す情報であり、ユーザが識別可能とするために「Ｓ」記号で表している。
また、第２種類情報とは、第１種類情報と同様に既に説明したように、（常に）安全が保証されていないことを示す情報であり、ユーザが識別可能とするために「（−）、または“記号なし”」で表している。なお、「（−）」の記号による表示は図３（Ａ）に示す入力機器種類情報５１ａ、図５（Ｄ）及び図７（Ｃ）に示す判定履歴情報５１ｃにて表されており、“記号なし”は図３〜図７に示すシーケンスプログラムの入力機器または出力部（図７（Ａ）における入力Ｉ００３、出力Ｍ００３等）にて表されている。
また、第３種類情報とは、第２種類情報の入力機器の導通状態が、第１種類情報の入力機器の導通状態よりも優先される場合があることを示しており、構成としては図４（Ａ）における「並列の場合（Ｓと（−））」の回路構成が該当する。この第３種類情報は、ユーザが識別可能とするために「Ｕ」記号で表している。
参考までに、安全に対して優先順位をつけると、第１種類情報「Ｓ」（常に安全が保証されている）＞第３種類情報「Ｕ」（安全が保証されているとは限らない）＞第２種類情報「（−）“記号なし”」（常に安全が保証されていない）という優先順位となる。
【００２５】
以下、第１種類情報「Ｓ」の入力機器、第２種類情報「（−）“記号なし”」の入力機器、第３種類情報「Ｕ」の入力機器の中から２つの異なる種類の入力機器を使って直列または並列に構成した場合の合成結果のルールについて説明する。なお、単数種類の入力機器を直列または並列に組み合わせた場合は、その種類を維持した（１個の）入力機器に合成され、説明を省略している。（「Ｓ」のみの組み合わせは「Ｓ」であり、「（−）」のみの組み合わせは「（−）」であり、「Ｕ」のみの組み合わせは「Ｕ」である。）
【００２６】
まず図４（Ａ）に、第１種類情報「Ｓ」と第２種類情報「（−）“記号なし”」との組み合わせによる合成ルールについて説明する。
第１種類情報「Ｓ」の入力機器と第２種類情報「（−）“記号なし”」の入力機器とを直列に組み合わせた合成結果は、（１個の）第１種類情報「Ｓ」の入力機器に置き換えることができる。安全が保証されている第１種類情報「Ｓ」の入力機器にて、確実に後段の出力部を停止させるように、経路を遮断できるからである。
これに対して第１種類情報「Ｓ」の入力機器と第２種類情報「（−）“記号なし”」の入力機器とを並列に組み合わせた合成結果は、（１個の）第３種類情報「Ｕ」の入力機器に置き換えることができる。安全が保証されている第１種類情報「Ｓ」の入力機器にて、後段の出力部を停止させようとしても、安全が保証されていない第２種類情報「（−）“記号なし”」の入力機器が導通している場合は経路を遮断できないからである。なお、安全が保証されていない第２種類情報「（−）“記号なし”」の入力機器が導通していない場合は、安全が保証されている第１種類情報「Ｓ」の入力機器で経路を遮断することができる。
この『第１種類情報「Ｓ」の入力機器と第２種類情報「（−）“記号なし”」の入力機器とを並列に組み合わせた回路』が、「第２種類情報の入力機器の導通状態が第１種類情報の入力機器の導通状態よりも優先される部分」に相当する。
【００２７】
次に図４（Ｂ）に、第１種類情報「Ｓ」と第３種類情報「Ｕ」との組み合わせによる合成ルールについて説明する。
第１種類情報「Ｓ」の入力機器と第３種類情報「Ｕ」の入力機器とを直列に組み合わせた合成結果は、（１個の）第３種類情報「Ｕ」の入力機器に置き換えることができる。第３種類情報「Ｕ」の入力機器内においては図４（Ａ）の並列の場合に示すように、安全が保証されている第１種類情報「Ｓ」の入力機器にて、後段の出力部を停止させようとしても、安全が保証されていない第２種類情報「（−）“記号なし”」の入力機器が導通している場合は経路を遮断できないからである。
また第１種類情報「Ｓ」の入力機器と第３種類情報「Ｕ」の入力機器とを並列に組み合わせた合成結果も同様に、（１個の）第３種類情報「Ｕ」の入力機器に置き換えることができる。理由は上記と同様であるので説明を省略する。
【００２８】
次に図４（Ｃ）に、第２種類情報「（−）“記号なし”」と第３種類情報「Ｕ」との組み合わせによる合成ルールについて説明する。
第２種類情報「（−）“記号なし”」の入力機器と第３種類情報「Ｕ」の入力機器とを直列に組み合わせた合成結果は、（１個の）第３種類情報「Ｕ」の入力機器に置き換えることができる。第３種類情報「Ｕ」の入力機器内においては図４（Ａ）の並列の場合に示すように、安全が保証されている第１種類情報「Ｓ」の入力機器にて、後段の出力部を停止させようとしても、安全が保証されていない第２種類情報「（−）“記号なし”」の入力機器が導通している場合は経路を遮断できないからである。
また第２種類情報「（−）“記号なし”」の入力機器と第３種類情報「Ｕ」の入力機器とを並列に組み合わせた合成結果も同様に、（１個の）第３種類情報「Ｕ」の入力機器に置き換えることができる。理由は上記と同様であるので説明を省略する。
【００２９】
以上に説明した基本ルールが、シーケンスプログラム作成支援ソフトウェアに予め組み込まれており、ユーザが自動判定の実行の指示を行うと、シーケンスプログラム作成支援ソフトウェアが、対象のシーケンスプログラムと基本ルールを用いて、当該シーケンスプログラムの出力部が安全であるか否かを判定して判定結果を識別可能に表示する。（この場合、出力部に「Ｓ」、「Ｕ」、「（−）“記号なし”」のいずれかを付与して表示する。）
【００３０】
（２）作成したシーケンスプログラムを自動判定する手順の例
まず、ユーザがシーケンスプログラム作成支援ソフトウェアを用いて、図５（Ａ）に示すようなシーケンスプログラムを作成する。シーケンスプログラム作成支援ソフトウェアでは、シーケンスプログラムの作成エリアを複数のノード（この場合、ｎ０１〜ｎ０３）に分割しており、ユーザは各ノード間に入力機器（この場合、入力Ｉ００１〜入力Ｉ００３）を配置していく。例えば、隣り合うノード間には入力機器を２個以上直列に配置することはできない（２個以上の入力機器を並列に配置することは可能）。また、離れたノード間に入力機器を配置することは可能である（入力Ｉ００３がこのケースに相当）。
【００３１】
シーケンスプログラム作成支援ソフトウェアは、ユーザが自動判定の実行指示を行うと、対象のシーケンスプログラム（この場合、シーケンス番号「００１」のシーケンスプログラムであり、以下『シーケンスプログラム「００１」と記載する』）の出力部（この場合、出力Ｍ００１）が安全が保証されている構成であるか否か、すなわち出力Ｍ００１が「Ｓ」、「Ｕ」、「（−）“記号なし”」のいずれに該当するか、の判定を開始する。
まず図５（Ｂ）に示すように、最初のノードｎ０１とノードｎ０２の間に直列回路があるか否かを判定し、この場合は直列回路が存在しないので次に進む。次に最初のノードｎ０１とノードｎ０２の間に並列回路があるか否かを判定し、この場合は並列回路が存在しないので次に進む。
次に図５（Ｃ）に示すように、ノードｎ０１とノードｎ０３（ノードｎ０２の次のノード）の間に直列回路があるか否かを判定する。この場合、入力Ｉ００１「Ｓ」と入力Ｉ００２「Ｓ」の直列回路があるため、この合成結果を判定（判定方法は図４参照）し、１個の入力Ｉ００１Ａ「Ｓ」に置き換える（図５（Ｃ）の上段のシーケンスプログラムを参照）。これ以上の直列回路は存在しないため、次はノードｎ０１とノードｎ０３の間に並列回路があるか否かを判定する。この場合、入力Ｉ００１Ａ「Ｓ」と入力Ｉ００３「（−）“記号なし”」の並列回路があるため、この合成結果を判定（判定方法は図４参照）し、１個の入力Ｉ００３Ａ「Ｕ」に置き換える（図５（Ｃ）の下段のシーケンスプログラムを参照）。これで合成を終了（これ以上の合成はできない）し、合成結果、出力Ｍ００１は「Ｕ」（第３種類情報）に該当すると判定する。
【００３２】
なお、シーケンスプログラム作成支援ソフトウェアは、上記の合成の判定処理を行いながら、図５（Ｄ）に示す判定履歴情報５１ｃに、各入力機器に対して合成の判定を行った結果を記憶しておく。
判定履歴情報５１ｃには、シーケンス番号、出力部、入力ｎ、入力ｎ判定の項目が設けられている。
「シーケンス番号」は、自動判定を行ったシーケンスプログラムに固有の番号である。
「出力部」は、当該シーケンスプログラムの出力の名称（この場合、Ｍ００１）が記憶されている。
「出力部判定」には、当該出力部（この場合、Ｍ００１）の判定結果（「Ｓ」、「Ｕ」、「（−）“記号なし”」のいずれか）が記憶される。
「入力ｎ」には、各入力機器の名称（この場合、Ｉ００１、Ｉ００２、Ｉ００３）が合成を行った順に記憶されていく。
「入力ｎ判定」には、該当する入力機器を用いて合成した際の判定結果（「Ｓ」、「Ｕ」、「（−）“記号なし”」のいずれか）が記憶されている。この場合、入力Ｉ００３を用いた合成を行った際、判定結果が「Ｕ」であったことが記憶されていることがわかる。なお、入力Ｉ００１及び入力Ｉ００２を用いた合成では判定結果が「Ｓ」であったことが記憶されている。
【００３３】
（３）判定結果の表示例
なお、シーケンスプログラム作成支援ソフトウェアは、対象となるシーケンスプログラムの判定結果が「Ｕ」または「（−）“記号なし”」（安全が保証されていない第３種類情報または第２種類情報）と判定された場合、図６（Ａ）の例に示す判定結果画面５２ａにてユーザに報知する。（判定結果が「Ｓ」の場合（安全が保証されている場合）、安全が保証されている旨を報知してもよい。）
シーケンスプログラム作成支援ソフトウェアは、ユーザが判定結果画面５２ａの出力部を選択すると、選択された出力部に対応するシーケンスプログラムを表示し、当該シーケンスプログラムの判定結果（この場合、「Ｕ」）の原因となった入力機器を、判定履歴情報５１ｃ（図５（Ｄ）を参照）に基づいて特定する。図５（Ｄ）に示す判定履歴情報５１ｃより、シーケンス番号「００１」の出力Ｍ００１が「Ｕ」である原因は、入力３判定が「Ｕ」と記憶されている入力３の入力Ｉ００３が原因であると特定する。
そしてシーケンスプログラム作成支援ソフトウェアは、図６（Ｂ）に示すように、出力Ｍ００１に対応するシーケンス番号「００１」のシーケンスプログラムを表示するとともに、出力Ｍ００１に付与した「Ｕ」、及び出力Ｍ００１を「Ｕ」と判定した原因となった入力Ｉ００３を、ユーザが識別可能となるように表示する（例えば当該対象部周辺の背景の色彩等を周囲と変えて目立たせる）。
【００３４】
（４）安全ＰＬＣへの書き込みの禁止
シーケンスプログラム作成支援ソフトウェアは、ユーザが作成したシーケンスプログラム（この場合、ラダー回路）からデータを作成し、作成したデータを安全ＰＬＣに書き込むことができる。しかし、シーケンスプログラムの出力を判定した結果、少なくとも１つ以上の第２種類情報「（−）“記号なし”」または第３種類情報「Ｕ」が存在する場合、安全ＰＬＣへの書き込みを禁止する。これにより、出力が安全であることを保証されないシーケンスプログラムを、ユーザが誤って安全ＰＬＣに書き込むことを防止する。
なお、単純な表示ランプ等、機械の停止には影響のないような出力が、第２種類情報「（−）“記号なし”」または第３種類情報「Ｕ」と判定された場合は、当該シーケンスプログラムで安全ＰＬＣを動作させても「機械の安全を保証できる」場合がある。このような場合、シーケンスプログラムの出力の判定結果が第２種類情報「（−）“記号なし”」または第３種類情報「Ｕ」であっても、当該シーケンスプログラムのデータを安全ＰＬＣに書き込み可能であることが好ましい。例えば、シーケンスプログラム作成支援ソフトウェアは、ユーザが第２種類情報「（−）“記号なし”」または第３種類情報「Ｕ」と判定された出力の中から（例外的に）無視してもよい出力機器名称を選択すると、選択された出力機器名称の出力の判定結果が第２種類情報または第３種類情報であっても、シーケンスプログラムのデータを安全ＰＬＣに書き込むことが可能となる。
【００３５】
●［あるシーケンスプログラムの出力部を、別のシーケンスプログラムにて入力機器として利用している場合の例（図７）］
なお、シーケンスプログラムの中には、数十個〜数百個の入力機器を組み合わせて構成されるものも存在する。このような場合、１個のシーケンスプログラムとするよりは、複数のシーケンスプログラムに分割し、あるシーケンスプログラムの出力部を別のシーケンスプログラムにて入力機器として利用するように構成すると、ユーザが作成時（変更時）及び保守管理時等にて非常に便利である。
あるいは、複数のシーケンスプログラムにて、その一部に同一回路（同一のラダー回路）を含んでいる場合、この同一回路を１つのシーケンスプログラムとして構成し、このシーケンスプログラムの出力を、複数のシーケンスプログラムで利用するように構成すると、ユーザが作成時（変更時）及び保守管理時等にて非常に便利である。
【００３６】
図７（Ａ）に、シーケンスプログラム「００２」及び「００３」の出力部（出力Ｍ００２及び出力Ｍ００３）を、シーケンスプログラム「００４」にて入力機器として利用している例を示す。
この場合、シーケンスプログラム「００２」では、入力Ｉ００１「Ｓ」と入力Ｉ００２「Ｓ」が直列の構成であるため、出力Ｍ００２は「Ｓ」と判定されている。また、シーケンスプログラム「００３」では、入力Ｉ００３「（−）“記号なし”」と入力Ｉ００４「（−）“記号なし”」が直列の構成であるため、出力Ｍ００３は「（−）“記号なし”」と判定されている。更にシーケンスプログラム「００４」では、入力Ｍ００２「Ｓ」（出力Ｍ００２を利用）と入力Ｍ００３「（−）“記号なし”」（出力Ｍ００３を利用）が直列の構成であるため、出力Ｍ００４は「Ｓ」と判定されている。判定の方法は、既に説明した通りであるので省略する。
【００３７】
上記の図７（Ａ）に示す状態から、ユーザがシーケンスプログラム「００２」を変更し、入力Ｉ００１「Ｓ」と入力Ｉ００２「Ｓ」とに並列に入力Ｉ００５「（−）“記号なし”」を追加した例（図７（Ｂ）参照）を説明する。
まず、シーケンスプログラム作成支援ソフトウェアは、シーケンスプログラム「００２」の出力Ｍ００２は「Ｕ」であると判定する（図５及び図６の説明と同じであるので省略）。この判定結果は、図７（Ｃ）に示す判定履歴情報５１ｃのシーケンス番号「００２」の部分に記憶される。なお、記憶方法は、図５（Ｄ）の説明と同様であるので省略する。
次に、シーケンスプログラム作成支援ソフトウェアは、シーケンスプログラム「００３」の出力Ｍ００３は「（−）“記号なし”」であると判定する。この判定結果は、図７（Ｃ）に示す判定履歴情報５１ｃのシーケンス番号「００３」の部分に記憶される。
次に、シーケンスプログラム作成支援ソフトウェアは、出力Ｍ００２の判定結果と出力Ｍ００３の判定結果に基づいて、シーケンスプログラム「００４」の出力Ｍ００４は「Ｕ」であると判定する。この判定結果は、図７（Ｃ）に示す判定履歴情報５１ｃのシーケンス番号「００４」の部分に記憶される。
なお、あるシーケンスプログラムの出力を、別のシーケンスプログラムにて入力機器として利用している場合があるため、シーケンスプログラム作成支援ソフトウェアは、出力の判定結果が変化しなくなるまで、何回も判定処理を繰り返す。
【００３８】
そしてシーケンスプログラム作成支援ソフトウェアは、図６（Ａ）に示すような判定結果画面を表示し、「出力部」には「Ｍ００４」を表示し、「内容」には“安全な構成ではない旨”（安全な構成ではありません等）を表示する。ここでユーザが判定結果画面から安全でないと判定された「Ｍ００４」を選択すると、シーケンスプログラム作成支援ソフトウェアは、出力Ｍ００４を出力部に含むシーケンスプログラム「００４」と、シーケンスプログラム「００４」の出力Ｍ００４が「Ｕ」と判定された原因となったシーケンスプログラム「００２」を表示する。この場合、シーケンスプログラム「００３」は表示しても表示しなくてもよい。
また、シーケンスプログラム作成支援ソフトウェアは、原因となったシーケンスプログラム「００２」の出力Ｍ００２、または入力Ｉ００５の少なくとも一方をユーザが識別可能に表示する（図７（Ｂ）参照）。以下に、処理の手順を説明する。
【００３９】
シーケンスプログラム作成支援ソフトウェアは、判定履歴情報５１ｃ（図７（Ｃ）参照）から、ユーザが選択した「Ｍ００４」を、「出力部」の中から検索する。そして、「Ｍ００４」を含む「行」の中から「入力ｎ判定」が「Ｕ」と記憶されている「入力ｎ」を検索する。この場合の検索結果、「Ｍ００２」が抽出される。
更にシーケンスプログラム作成支援ソフトウェアは、抽出した「Ｍ００２」が、「出力部」の中にあるか否かを検索する。この場合、シーケンス番号「００２」が抽出される。そして、「Ｍ００２」を含む「行」の中から「入力ｎ判定」が「Ｕ」と記憶されている「入力ｎ」を検索する。この場合の検索結果、「Ｉ００５」が抽出される。
更にシーケンスプログラム作成支援ソフトウェアは、抽出した「Ｉ００５」が、「出力部」の中にあるか否かを検索する。この場合、「出力部」に「Ｉ００５」は抽出されないため、検索はここで終了される。以上の検索結果より、シーケンスプログラム作成支援ソフトウェアは、出力Ｍ００４が「Ｕ」と判定された（真の）原因は、シーケンス番号「００２」のシーケンスプログラムにおける「入力Ｉ００５」である、と判定する。
この判定結果により、シーケンスプログラム作成支援ソフトウェアは、原因となったシーケンスプログラム「００２」の出力Ｍ００２、または入力Ｉ００５の少なくとも一方をユーザが識別可能に表示することが可能となる。
【００４０】
●［安全ＰＬＣに、シーケンスプログラムの出力部の自動判定を行わせる例］
以上に説明した実施の形態では、端末装置５０にてシーケンスプログラム作成支援ソフトウェアを用いて、シーケンスプログラムの出力部の自動判定を行わせる例について説明したが、安全ＰＬＣ１に、この自動判定のソフトウェアを搭載することも可能である。
例えば、上記に説明した判定方法を備えた判定プログラムを、図２に示すＲＯＭ１１ｃに記憶させておく。そして、例えば安全ＰＬＣ１の電源が投入された場合等の所定のタイミングにて、ＣＰＵ１１ａは、まず判定プログラムを実行し、シーケンスプログラムの出力が安全な構成であるか否かを判定するように構成する。そして、ＣＰＵ１１ａが、シーケンスプログラムの出力が安全でないと判定（第２種類情報または第３種類情報であると判定）した場合、報知手段（例えば異常ランプ、ブザー等）から報知信号を出力し、出力部に接続された出力機器を安全側（停止させる側）に制御するように構成することもできる。
【００４１】
本発明の安全ＰＬＣ、シーケンスプログラム作成支援ソフトウェア及びシーケンスプログラムの判定方法は、本実施の形態で説明した形状、構成、構造、動作、処理手順、処理方法等に限定されず、本発明の要旨を変更しない範囲で種々の変更、追加、削除が可能である。
本実施の形態における判定の（基本）ルールは、図４に示すルールに限定されず、ノーマルクローズタイプの入力機器（デフォルト状態が導通状態）、自己保持タイプの入力機器（一旦ＯＮとなったらＯＮ状態を維持）等、種々のタイプの入力機器に合わせて、追加、変更等を行うことが可能である。
また、表示方法は、本実施の形態に示した表示方法の例に限定されるものではない。
【図面の簡単な説明】
【００４２】
【図１】本発明の安全ＰＬＣ１を構成する制御ユニット１０と入力ユニット２０と出力ユニット３０の概略外観図を説明する図である。
【図２】安全ＰＬＣ１のブロック構成及び接続の例について説明する図である。
【図３】入力機器種類情報５１ａ及び出力機器情報５１ｂの例と、シーケンスプログラムの例について説明する図である。
【図４】自動判定（シーケンスプログラムの出力の判定）における基本ルールの例を説明する図である。
【図５】シーケンスプログラム作成支援ソフトウェアが、シーケンスプログラムを自動判定する手順の例を説明する図である。
【図６】シーケンスプログラム作成支援ソフトウェアによる、判定結果の表示の例を説明する図である。
【図７】あるシーケンスプログラムの出力部を、別のシーケンスプログラムにて入力機器として利用している場合における、シーケンスプログラム作成支援ソフトウェアによる、判定結果の表示の例を説明する図である。
【符号の説明】
【００４３】
１        安全ＰＬＣ
１０      制御ユニット（演算手段）
２０      入力ユニット（入力手段）
２５      入力端子
３０      出力ユニット（出力手段）
３５      出力端子
１２、２２、３２    コネクタ
５０      端末装置
５１ａ    入力機器種類情報
５１ｂ    出力機器情報
５１ｃ    判定履歴情報
６０      一般ＰＬＣ
【図１】
2006040121.tif 000003
【図２】
2006040121.tif 000004
【図３】
2006040121.tif 000005
【図４】
2006040121.tif 000006
【図５】
2006040121.tif 000007
【図６】
2006040121.tif 000008
【図７】
2006040121.tif 000009