(57)【特許請求の範囲】
【請求項１】
安全動作を保証できない場合にフェイルセーフが働いて制御対象装置が安全側になって動作停止する安全システムに用いられ、一定の送信間隔で送信されるフレームを受信する安全機器であって、
受信したフレームの通信時間を算出する通信時間算出部と、
その通信時間算出部で求めた通信時間を、通信相手の機器を特定するコネクションごとに記憶する通信時間履歴情報記憶部と、
受信したフレームが、前回受信したフレームから何回目の送信フレームであるかを判定する送信回数判定手段と、
その送信回数判定手段で判定した送信回数の発生数を、前記コネクションごとに記憶する送信回数履歴情報記憶部と、
受信した読み出し要求に伴い、前記通信時間履歴情報記憶部に格納された通信時間に関する情報と、前記送信回数履歴情報記憶部に格納された送信回数の発生数に関する情報を送信する手段と、
を備え、
前記送信回数判定手段は、前回受信したフレームに付加されたタイムスタンプと、今回受信したフレームに付加されたタイムスタンプから、両フレームが送信された時間差を求め、その時間差と設定されたフレームの送信間隔とに基づき、送信回数を判定するものであることを特徴とする安全機器。
【請求項２】
前記通信時間算出部は、受信したフレームに付加されたタイムスタンプにより特定される当該フレームの送信時刻と、そのフレームを受信した受信時刻の差を求め、その今回受信したフレームの通信時間を算出するものであることを特徴とする請求項１に記載の安全機器。
【請求項３】
ネットワークを介して受信したクリア要求に従い、前記通信時間履歴情報記憶部に格納された通信時間に関する情報と、前記送信回数履歴情報記憶部に格納された送信回数の発生数に関する情報をクリアする機能を備えたことを特徴とする請求項１または２に記載の安全機器。
【請求項４】
請求項１から３のいずれかに記載の安全機器と、安全条件設定支援装置と、を備え、
前記安全条件設定支援装置は、緊急停止スイッチの押下操作または人の進入検出により安全システムの危険状態を示す信号を出力する機器を接続し、その機器から危険状態を示す信号が入力された場合に検出信号を出力する安全入力機器と、制御対象装置を接続し、前記安全入力機器の検出信号の出力があったことに基づいて前記制御対象装置を停止する安全出力機器と、を含む安全システムの安全条件を求めるものであり、
前記安全出力機器は前記請求項１から３のいずれかに記載の安全機器であり、
前記安全条件は、前記安全入力機器から検出信号が出力されてから、前記制御対象装置が停止されるまでの間に、前記人或いは身体の一部が前記制御対象装置の危険区域内に進入しないようにするための安全距離及びまたは前記安全機器の送信間隔の条件であり、
前記安全条件設定支援装置は、
前記読み出し要求を発行して前記通信時間履歴情報記憶部に格納された通信時間に関する情報と、前記送信回数履歴情報記憶部に格納された送信回数の発生数に関する情報とを取得する取得手段と、
その取得手段で取得した情報から、通信時間と送信回数の適正値を決定する適正値決定手段と、
前記安全システムを構成する安全機器の内部処理時間の情報を記憶するデータベースと、
送信間隔と希望する安全距離の少なくとも一方の条件を取得し、その取得した条件と、前記適正値決定手段で求めた適正値と、前記データベースに記憶された内部処理時間と、に基づいて、前記安全条件を求める手段と、
を備えたことを特徴とする安全条件設定支援システム。
【請求項５】
前記安全条件設定支援装置は、前記求めた安全条件が、あらかじめ内部で固定的に持つパラメータから求めた推奨安全条件より劣る場合の改善方法を記憶する改善方法記憶部と、
前記求めた安全条件と前記推奨安全条件とを比較する比較手段と、
その比較手段による比較結果が、前記安全条件が劣る場合に、前記改善方法記憶部から対応する改善方法を抽出し、その比較結果とともに対応する改善方法を表示する手段と、
を備えることを特徴とする請求項４に記載の安全条件設定支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、安全機器並びに安全条件設定支援システムに関するものである。
【背景技術】
【０００２】
ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）におけるネットワークシステムは、生産設備内の入力機器及び出力機器の制御を司る１または複数のＰＬＣ（Programmable Logic Controller）と、そのＰＬＣにより動作が制御される機器とが、制御系のネットワークに接続される。それらＰＬＣと機器は、その制御系のネットワークを介してサイクリックに通信を行なうことで、ＩＮデータ及びＯＵＴデータ（以下Ｉ／Ｏデータという）の送受を行ない、生産設備を制御する。
【０００３】
ＰＬＣは、制御プログラムに基づいて演算実行するＣＰＵユニット、センサやスイッチなどの入力機器を接続してそれらのオン・オフ信号を入力信号として取り込む入力ユニット、アクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット、ネットワークに接続された他の装置とデータの送受を行なう通信ユニット、各ユニットに電源を供給する電源ユニット、などの複数のユニットを組み合わせることにより構成されている。また、各機能を１つの筐体内に実装した一体型のＰＬＣもある。
【０００４】
さらに最近ではＰＬＣによる制御においても、フェイルセーフ（安全）システムが導入されつつある。つまり、ＰＬＣや各機器自体はもちろん、それらを接続するネットワークも安全機能を組み込まれたもので構成される。ここで安全機能とは、例えばＣＰＵその他の各処理部等を二重化して、正しい出力をするようにしたり、ネットワーク異常（正常な通信ができない）の場合や、緊急停止スイッチが押下されたり、ライトカーテンなどのセンサが人（身体の一部）の進入を検出した場合等の、ネットワークシステムが危険状態になった場合に、フェイルセーフが働き、システムが安全側になって、動作が停止するものである。
【０００５】
この種のセーフティ制御システムは、セーフティコントローラ、セーフティＩ／Ｏターミナルを含み、切削機械や切断機械やアーム付き製造機ロボット等とともに使用される。セーフティコントローラは、一般的なプログラマブルコントローラ（ＰＬＣ）に類似するロジック演算機能、入出力制御機能に加えて、安全面の自己診断機能を内蔵させることにより、その制御において高度な安全性および信頼性を確保したものである。セーフティコントローラは、自己診断結果により異常を検出した場合には、自己の制御が危険につながらないように、強制的に安全な制御を行なうような機能（フェールセーフ機能）を備えている。セーフティＩ／Ｏターミナルにおいても、自己診断機能を有していて、自己診断結果により異常を検出した場合には自己の制御が危険につながらない制御をするといった、フェイルセーフ機能を備えている。それにより、セーフティ制御システムは、製造機ロボット等の動作が危険につながらないようにしている。
【０００６】
ここに言う安全は、より具体的には、規格化されている安全基準を含む意味である。安全規格には、例えばＩＥＣ６１５０８やＥＮ規格などがある。ＩＥＣ６１５０８（プログラム可能な電子システムの機能安全に関する国際電気標準委員会）では、時間あたりの危険故障確立を（失敗確立：Ｐｒｏｂａｂｉｌｉｔｙ  ｏｆ  Ｆａｉｌｕｒｅ  ｐｅｒ  Ｈｏｕｒ）を定義し、この確立によってＳＩＬのレベル（Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ）を４段階に分類している。また、ＥＮ規格では、機械のリスクの大きさを評価し、リスク低減策を講じるように義務づけされていて、ＥＮ９５４−１では５つの安全カテゴリにて規定されている。この明細書でいうセーフティコントローラ、セーフティＩ／Ｏターミナル、セーフティ制御システム等は、このような安全基準のいずれかに対応したものである。
【０００７】
なお、セーフティ制御システムは「安全制御システム」と称されることもあり、セーフティコントローラは「安全コントローラ」や「安全制御装置」と称されることもある。セーフティＩ／Ｏターミナルは「セーフティスレーブ局」や「セーフティスレーブユニット」、単に「セーフティスレーブ」と称されることもあり、セーフティを「安全」と置き換えて称されることもある。
【０００８】
セーフティコントローラとセーフティＩ／Ｏターミナルとをネットワークで結んでなるセーフティ制御システムが知られている。セーフティコントローラは、セーフティＩ／Ｏターミナルに対してネットワーク通信する通信マスタ機能を備えている。セーフティコントローラが複数のユニット筐体（例えば、電源ユニット、ＣＰＵユニット、ＩＯユニット、通信ユニット等）を結合させてなるビルディングブロックタイプである場合には、通信マスタユニット自体にその通信マスタ機能が内蔵される場合もある。その通信マスタユニットは「セーフティマスタ局」、「セーフティマスタユニット」や「セーフティマスタ」と称されることもあり、セーフティを「安全」と置き換えて称されることもある。
【０００９】
セーフティＩ／Ｏターミナルは、セーフティコントローラの通信マスタ機能との間でネットワーク通信機能、つまり、通信スレーブ機能を備えている。セーフティＩ／Ｏターミナルは接続端子を備えていて、その接続端子に、オン・オフ信号を出すスイッチ等の入力機器と、制御信号の出力先となる出力機器との少なくとも一方が接続されている。入力機器の例は、非常停止スイッチＳＷ、ライトカーテン、ドアスイッチ、２ハンドスイッチなどである。出力機器の例は、セーフティリレーやコンタクタである。これらの入力機器または出力機器も安全規格に対応している。セーフティＩ／Ｏターミナルは、接続された安全用途機器から入力した信号に基づいて制御データを生成し、生成した制御データをセーフティコントローラへネットワーク通信する。
【００１０】
セーフティコントローラがビルディングブロックタイプのものであれば、各ユニットは、共通内部バスに接続され、セーフティコントローラ全体の制御を司るＣＰＵユニットとの間でバス通信をし、データをやり取りする。連結されたＩ／Ｏユニットも接続端子を備えていて、その接続端子に、安全用途の入力機器または安全用途の出力機器が接続されている。そして、セーフティコントローラは、通信マスタユニットを介してセーフティＩ／Ｏターミナルからネットワーク通信により入力した入力機器の入力信号、または連結されたＩ／Ｏユニットに接続された入力機器の入力信号を入力し、予め記憶されたロジックプログラムによってその入力信号のオン・オフを論理演算する。その演算結果に基づく出力信号を、通信マスタユニットを介してネットワーク通信によりセーフティＩ／Ｏターミナルへ出力するか、または連結されたＩ／Ｏユニットへ出力をする。Ｉ／Ｏユニット及びセーフティＩ／Ｏターミナルは、その出力信号を出力機器へ出力する。この一連の動作を繰り返し実行することにより、セーフティコントローラにより製造機ロボットを含むシステム全体が制御される。
【００１１】
なお、セーフティコントローラとセーフティＩ／Ｏターミナルとの間の通信サイクルは、セーフティコントローラの繰り返し実行のサイクルと同期していてもよいし、非同期でもよい。また、セーフティコントローラあるいはＣＰＵユニットにおけるロジック演算処理の対象となるロジックプログラムは、プログラマーにより予め作成される。作成する際のプログラミング記述については、例えば、ラダー表記、ニーモニック表記、ファンクションブロック表記であってもよい。プログラミング言語でいうと、インタプリタ型言語、スクリプト言語、アセンブリ言語、高級言語、Ｊａｖａ言語と呼ばれるものであってもよい。このようなプログラミング言語で書かれたソースコードを、アセンブルやコンパイルなどの処理を行ってＣＰＵに実行させる。
【００１２】
また、セーフティＩ／Ｏターミナルに接続された出力機器であるところのセーフティリレーやコンタクタは、製造機ロボットや加工機械、切断機械等につながれていて、リレーやコンタクタの接点がオン中は製造機ロボット等が動作し、接点がオフ中は製造機ロボット等が停止するようになっている。よって、セーフティコントローラは、出力機器をオン・オフ制御することで、最終的な制御対象の操作ロボット等の動作停止に関する制御をする。具体的な例をいうと、セーフティコントローラは、非常停止スイッチＳＷが正常に操作されたことをセーフティＩ／Ｏターミナルから通信にて入力すると、制御対象が危険な動作をしないように出力機器（リレーやコンタクタ）をオフするか、安全側の状態に強制制御し、直ちに必要な安全処置を採る。セーフティコントローラは、非常停止スイッチＳＷまたは他の入力機器が異常有りの診断結果を入力すると、非常停止スイッチＳＷの操作有無または入力機器のオン・オフ状態にかかわらずに、制御対象が危険な動作をしないようにその動作を停止するよう出力機器をオフするか、安全側の状態に強制制御し、直ちに必要な安全処置を採る。
【００１３】
この種のセーフティ制御システムを構築する場合、フェイルセーフを実行するために、関連する出力機器により動作が制御される機械設備と、入力機器の設置位置関係（安全距離）も重要な要素となる。すなわち、出力機器で制御されるロボットなどの機械設備の動作範囲が危険区域とすると、その危険区域の手前に、人の進入を検知するセンサ等の入力機器を設置する。このとき、危険区域に人が進入するためには、このセンサ等の入力機器の検出エリアを通過しなければならず、それ以外の箇所は、例えば壁などが設置されて進入できないようになっているものとする。
【００１４】
すると、人が危険区域に到達する前には、必ず入力機器であるセンサの検出エリアを通過することになる。そこで、フェイルセーフ対応のシステムでは、人の通過を検出したセンサから出力される検出信号が、ネットワークを介して最終的に出力機器に伝達され、出力機器は危険区域内で動作している機械設備の動作を停止する。このとき、センサが人の通過を検出してから、実際に設備機械の動作が停止されるまでには、一定の遅延が生じる。この遅延は、少なくとも入力機器や出力機器の内部処理時間や、各種通知がネットワーク上を伝送される際にかかる通信時間を併せた合計時間分が必要である。
【００１５】
そして、この遅延時間が経過している際も、人或いは身体の一部は危険区域に近づいていく。よって、人或いは身体の一部がセンサの検出領域を通過してから危険区域に到達するまでにかかる時間（歩行速度×歩行距離や、身体の一部（手、腕，半身等）の移動速度×移動距離）よりも、前記合計時間の方が短いと、人或いは身体の一部が危険区域に到達する前に機械設備を停止することができる。従って、システムを設計する場合には、上記を考慮し、入力機器や出力機器の内部処理時間を短くするように設定したり、歩行距離（入力機器の検知位置から危険区域までの距離）を長くしたりし、異常時に確実にシステム（機械設備）を停止することができるようにする。
【００１６】
フェイルセーフを実現するために必要な入力機器の検知位置から危険区までの距離を最小安全距離Ｓとすると、この最小安全距離Ｓは、歩行速度（移動速度）Ｋ（例えば、１ｍ／ｓｅｃ）とシステム停止に係る停止動作時間Ｔ（上記の合計時間）とすると、Ｓ＝Ｋ×Ｔ或いはＳ＝Ｋ×Ｔ＋Ｃ Ｃ：安全係数（追加距離）
により求めることができる。
【００１７】
実際の安全システムをネットワークを用いて構築する場合、上述したように通信による遅れ時間や、各入出力機器の処理時間を、機械設備の設置における安全距離に反映させる必要がある。実際のシステムに使用される各機器の仕様等を理解していなくても、安全ネットワーク（セーフティ制御システム）を構築するためのパラメータを設定できる安全条件設定支援装置として、従来、特許文献１に開示された技術がある。この特許文献１に開示された技術は、たとえば、ネットワークに接続される安全入力機器，安全出力機器を含む安全機器の内部処理時間に関する情報を部品データベースに格納しておき、安全機器同士の送信間隔と安全距離のどちらか一方を入力すると、安全機器の接続関係と安全機器の内部処理時間から、未入力のほうの推奨値を求める機能を備える。
【特許文献１】特開２００３−２６３２０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
上述の特許文献１に開示された安全条件設定支援装置は、システムで使用される各機器の仕様を理解していなくても、安全ネットワークシステムを構築するためのパラメータ（安全距離、各機器の送信間隔など）を設定できる。この安全条件設定支援装置は、実際に生産設備に実機を配置する前のシステム設計で使用するものであり、その過程のなかで、各機器の送信性能に依存した送信間隔と、システムのレイアウトに依存した安全距離、それぞれ、一方を決めて他方を求める、ということを繰り返し求めながら、システムとして最適な値を決めることになる。その後、ユーザは、実際に機器を設置し、決めた設定値にしたがって、各機器の設定を行なう。
【００１９】
しかし、機器の設置を始めたあとで、一部レイアウトを変更したり、あるいは、同様の機能を持つ別の型式の機器へ変更したり、機器のメーカを変更したりするなどの各種の変更が発生する場合がある。また、システムを稼動させたあとで、システムの拡張のために、レイアウトを変更したり、機器を追加したりする等の変更が発生する場合もある。このように変更が生じた場合、システム設計での作業と同じように、各機器の送信間隔と安全距離をもう一度求め直す必要がある。しかし、機器の性能やレイアウト上の制約から要求を満足できない場合は、システム設計を最初からやり直さなければならず、コストや期間が増大してしまう。
【００２０】
一方、安全条件を求めるための算出方法は安全条件設定支援装置が内部に持つが、さまざまなネットワーク構成とユーザ使用環境に対応するために、そこで使用するパラメータはある程度の余裕をもった固定値が利用されている。また、ユーザがパラメータを変更できるようにしたとしても、そのパラメータの技術的な役割を理解しなければその妥当性を判断することができない。このため、ユーザは固定されたパラメータによって算出された推奨値しか使用できず、システム設計でのユーザの自由度が制限されてしまう。
【００２１】
この発明は、実際に使用するネットワークシステムに合わせた最適な安全条件を求めることができる安全機器並びに安全条件設定支援システムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
たとえば、安全ネットワークの通信プロトコルであるCIP Safetyでは、通信による遅れ(ネットワーク遅延時間)は、
最大ネットワーク遅延時間＝送信間隔＊送信回数＋２＊通信時間
で求めることになっている。そして、送信回数が２回で、通信時間は送信間隔を使用することが推奨されている。そのため、従来の支援システムでは、その推奨値（固定値）に基づいて安全条件の各パラメータを求めたり、その求めたパラメータに基づいて実際の安全ネットワークシステムを評価したりしている。しかし、使用環境によっては、送信数は1回でもかまわない場合もあれば、もっと大きくしなければならない場合もある。また、通信時間は送信間隔より短い場合が多い。そこで、安全機器が実際の通信の中で、送信回数や通信時間をモニタリングし、これらの実測値（履歴情報）を内部に記憶する。これにより、実際の安全条件を求める場合、その記憶した実測値を用いて行なうことで、その処理対象の安全ネットワークシステムの状況に即した値を求めることができる。そして、具体的には、以下のように構成した。
【００２５】
（１）安全動作を保証できない場合に、フェイルセーフが働いて制御対象装置が安全側になって動作停止する安全システムに用いられ、一定の送信間隔で送信されるフレームを受信する安全機器であって、受信したフレームの通信時間を算出する通信時間算出部と、その通信時間算出部で求めた通信時間を、通信相手の機器を特定するコネクションごとに記憶する通信時間履歴情報記憶部と、受信したフレームが、前回受信したフレームから何回目の送信フレームであるかを判定する送信回数判定手段と、その送信回数判定手段で判定した送信回数の発生数を、コネクションごとに記憶する送信回数履歴情報記憶部と、受信した読み出し要求に伴い、通信時間履歴情報記憶部に格納された通信時間に関する情報と、送信回数履歴情報記憶部に格納された送信回数の発生数に関する情報を送信する手段と、を備え、送信回数判定手段は、前回受信したフレームに付加されたタイムスタンプと、今回受信したフレームに付加されたタイムスタンプから、両フレームが送信された時間差を求め、その時間差と設定されたフレームの送信間隔とに基づき、送信回数を判定する機能を備えて構成した。上記のフレームは、例えばＩ／Ｏデータを送信するフレームである。
【００２７】
（２）通信時間判定手段は、受信したフレームに付加されたタイムスタンプにより特定される当該フレームの送信時刻と、そのフレームを受信した受信時刻の差を求め、その今回受信したフレームの通信時間を算出するものとすることができる。
【００２８】
（３）ネットワークを介して受信したクリア要求に従い、通信時間履歴情報記憶部に格納された通信時間に関する情報と、送信回数履歴情報記憶部に格納された送信回数の発生数に関する情報をクリアする機能を備えるとよい。
【００２９】
（４）上記のいずれかに記載の安全機器と、安全条件設定支援装置と、を備える。安全条件設定支援装置は、緊急停止スイッチの押下操作または人の進入検出により安全システムの危険状態を示す信号を出力する機器を接続し、その機器から危険状態を示す信号が入力された場合に検出信号を出力する安全入力機器と、制御対象装置を接続し、安全入力機器の検出信号の出力があったことに基づいて制御対象装置を停止する安全出力機器と、を含む安全システムの安全条件を求めるものである。また、安全出力機器は（１）から（３）のいずれかに記載の安全機器であり、安全条件は、安全入力機器から検出信号が出力されてから、制御対象装置が停止されるまでの間に、人或いは身体の一部が制御対象装置の危険区域内に進入しないようにするための安全距離及びまたは前記安全機器の送信間隔の条件である。そして、安全条件設定支援装置は、読み出し要求を発行して通信時間履歴情報記憶部に格納された通信時間に関する情報と、送信回数履歴情報記憶部に格納された送信回数の発生数に関する情報とを取得する取得手段と、その取得手段で取得した情報から、通信時間と送信回数の適正値を決定する適正値決定手段と、安全システムを構成する安全機器の内部処理時間の情報を記憶するデータベースと、送信間隔と希望する安全距離の少なくとも一方の条件を取得し、その取得した条件と、適正値決定手段で求めた適正値と、データベースに記憶された内部処理時間と、に基づいて、安全条件を求める手段と、を備える。適正値は、最適なものを１つ求めるものでも良いし、可能性のあるものを複数求めても良い。複数求めた場合には、それぞれの適正値に基づいて安全条件を求める。
【００３０】
（５）安全条件設定支援装置は、求めた安全条件が、あらかじめ内部で固定的に持つパラメータから求めた推奨安全条件より劣る場合の改善方法を記憶する改善方法記憶部と、求めた安全条件と推奨安全条件とを比較する比較手段と、その比較手段による比較結果が、安全条件が劣る場合に、改善方法記憶部から対応する改善方法を抽出し、その比較結果とともに対応する改善方法を表示する手段と、を備えることができる。
【００３１】
この発明によれば、実際使用する安全システム（ネットワークシステム）に合わせた最適な安全条件を求めることができる。よって、例えば、機器の交換や設置レイアウトの変更等のシステムの変更が発生する場合でも、その生産設備にあった安全条件を簡単に求めることができ、安全条件を満たす変更が可能か否かを短時間で求めることができる。また、安全を求めるための実測値であるが、それまで各安全機器に蓄積された履歴データをそのまま用いると、すぐに安全条件を求めることができるので好ましい。また、（３）の安全機器のように、履歴情報をクリアする機能を備えていると、クリアしてから履歴情報の蓄積を行なうことで、直近の状況にあった通信時間と送信間隔に基づいてより適切な安全条件を求めることができる。なお、クリアしてからの通信時間と送信間隔の収集期間としては、例えば、１日程度とすることができる。
【発明の効果】
【００３２】
本発明は、実際使用するネットワークシステムに合わせた最適な安全条件を求めることができるため、システムの変更に対して柔軟に対応することが可能となる。
【発明を実施するための最良の形態】
【００３３】
図１は、本発明の好適な一実施の形態を示している。図１に示すように、ネットワーク５には、安全入力機器６，安全出力機器７並びに安全ＰＬＣ８などの各種の安全ネットワーク対応の各装置が接続され、所定の装置間でデータの送受を行なう安全ネットワークシステムが構成される。
【００３４】
係る安全ネットワークシステムを実際に稼働可能な状態に構築するためには、各種のプログラムやパラメータをダウンロードする必要がある。また、安全ＰＬＣ８と、安全スレーブ（安全入力機器６，安全出力機器７）との間でデータの通信を行なうためには、安全スレーブのＩ／Ｏを安全ＰＬＣ８のメモリに割り付ける必要がある。セーフティＩ／Ｏターミナル間での通信を行なう場合も同様である。そして、ツール装置１０を用いて、係るプログラムを作成するとともに、そのツール装置１０をネットワーク５に接続し、所定の装置にダウンロードしたり、メモリの割り付けをしたりするようになっている。
【００３５】
まず、本発明の処理対象で最終的に構築する安全ネットワークシステムについて簡単に説明すると、例えば、安全入力機器６で検出したセンシング情報は、ネットワーク５を介して所定の安全ＰＬＣ８に送信される。この安全ＰＬＣ８は、取得したセンシング情報を解析し、そのセンシング結果に基づいて動作すべき安全出力機器７に対して制御命令を送る。そして、異常事態発生の場合には、安全出力機器７を安全側に動作させるようになっている。また、安全入力機器６から安全出力機器７に直接命令を送る場合もある。
【００３６】
この時、係るネットワークシステムを構築するには、単に各機器を物理的にネットワークに接続するのみならず、各機器の各Ｉ／Ｏモジュール番号を安全ＰＬＣ８のメモリ（番地）に割り付けたり、安全ＰＬＣ８でどのような演算処理をするかのプログラムを組む等のプログラミング処理を行なったりする必要がある。さらに、安全ネットワークシステムを構築するためには、上述した通信を行なうことに加えて、安全機能を実現するための各種の設定を行なう必要がある。さらに、本発明との関係で言うと、緊急停止スイッチが押下されたり、ライトカーテンなどのセンサが人（身体の一部）の進入を検出した場合等のネットワークシステムが安全動作を維持できなくなった場合に、フェイルセーフが働き、システムが安全側になって、動作が停止するが、係る動作停止を一定時間以内（人（身体の一部）が危険地帯に到達する前）に行なうために必要な各装置における内部処理時間や、安全距離の算出、設定を行なう必要がある。これらの処理をツール装置１０で行なう。ここで、安全距離とは、安全入力機器から制御対象装置までの距離、つまり、安全入力機器の検知位置から危険区域までの距離を言う。
【００３７】
ツール装置１０は、モニタ等の表示部１１と、キーボードやマウスその他のポインティングデバイス等の入力部１２と、入力部１２から与えられる情報に基づいて所定の信号処理をする処理部１３と、ネットワーク５に接続する通信インタフェース部１４と、を備えている。さらに、この処理部１３は、入力部１２を介して与えられた情報にしたがって処理した結果等を表示部１１に表示する機能ももっている。
【００３８】
図２に示すように、処理部１３は、表示部１１と接続し、データの送受を制御する表示部インタフェース１３ａと、入力部１２と接続し、データの送受を制御する入力部インタフェース１３ｂと、実際に演算処理を実行するＭＰＵ１３ｃと、ＭＰＵ１３ｃの演算実行時にワークメモリとして使用されるメモリ１３ｅと、ＭＰＵ１３ｃが安全距離等のパラメータを求める際に使用する安全機器等についての情報を格納する部品データベース１３ｄと、を備えている。
【００３９】
部品データベース１３ｄは、各機器等のネットワークに直接または間接的に接続可能な部品についての情報、具体的には、各機器の内部処理時間に関する情報が各機器と関連付けて格納される。もちろんこれ以外の情報も関連付けて登録される。
【００４０】
また、特開２００３−２６３２０２号公報（特許文献１）に示されるように、安全ネットワークシステムを構築する各安全機器等は、データの送信相手とコネクションが張られており、各コネクションごとに、コネクションＮｏ．，データの送信方向，データサイズ，通信方法，送信間隔等のコネクション情報がそれぞれ設定されるので、係るコネクション情報を所定の記憶手段（メモリ１３ｅ等）に記憶保持される。
【００４１】
図３は、安全ＰＬＣ８の内部構造を示している。この安全ＰＬＣ８は、ビルディングブロックタイプであり、図では、ＣＰＵユニット２０と通信ユニット２１の２つのユニットを示しているが、その他にも、電源ユニットや、Ｉ／Ｏユニット等の各種のユニットが連結される。各ユニットは、内部バス８ａにより連係され、その内部バス８ａを介してＩ／Ｏデータやメッセージの送受等が行なわれる。安全ＰＬＣ８の場合、この内部バス８ａも二重化されたりする。
【００４２】
ＣＰＵユニット２０は、ＭＰＵ２０ａと、ＲＡＭ２０ｂと、不揮発性メモリ２０ｃと、表示部２０ｅと、設定部２０ｆと、バス制御部２０ｈと、を備える。ＭＰＵ２０ａは、ユーザプログラムをサイクリックに演算実行し、安全ネットワークシステムを構成する各機器の制御等を司る。ＲＡＭ２０ｂは、ＭＰＵ２０ａが演算実行する際のワークメモリや、Ｉ／Ｏデータを格納するＩＯメモリとして機能する。さらに、ＲＡＭ２０ｂには、後述する実際の送信回数を保管するための送信回数テーブルや、実際の通信時間を保管する通信時間テーブルが格納される。不揮発性メモリ２０ｃは、各種の設定データや、ユーザプログラム等が格納される。表示部２０ｅは、たとえばＬＥＤなどの動作状態（通信状態）や異常／正常を示す表示ランプ（警報ランプ）や、液晶パネルやＥＬパネルを用いたメッセージ表示機能を備えたものなどがある。設定部２０ｆは、アドレスを設定するスイッチなどである。バス制御部２０ｈは、内部バス８ａ用のインタフェース（物理層）であり、ＭＰＵ２０ａは、バス制御部２０ｈ経由で所定のユニットとの間でデータの送受を行なう。
【００４３】
通信ユニット２１は、ＭＰＵ２１ａと、ＲＡＭ２１ｂと、不揮発性メモリ２１ｃと、表示部２１ｄと、設定部２１ｅと、通信物理層２１ｆと、バス制御部２１ｇと、を備える。ＭＰＵ２１ａは、ＣＰＵユニット２０との通信処理や、外部の機器との通信処理を実行する。この通信処理は、予め決まったＩ／Ｏデータの送受信処理（転送処理を含む）や、受信した自己宛のメッセージに対する処理並びにそのレスポンスの返信処理等もある。
【００４４】
ＲＡＭ２１ｂは、ＭＰＵ２１ａが処理を実行する際に使用するワークメモリとして機能する。本実施形態では、実測値を保管するテーブルをＣＰＵユニット２０側に持たせたが、通信ユニットのＲＡＭ２１ｂ等に格納しても良い。不揮発性メモリ２１ｃは、各種の設定データ等が格納される。表示部２１ｄは、たとえばＬＥＤなどの動作状態（通信状態）や異常／正常を示す表示ランプ（警報ランプ）等である。設定部２１ｅは、アドレスを設定するスイッチなどである。通信物理層２１ｆは、接続されるネットワークの通信プロトコルに対応する物理層であり、通信インタフェースとも称される。バス制御部２１ｇは、内部バス８ａ用のインタフェース（物理層）であり、ＭＰＵ２１ａは、バス制御部２１ｇ経由で所定のユニットとの間でデータの送受を行なう。
【００４５】
この安全ＰＬＣ８は、Ｉ／Ｏデータの送信側と受信側のいずれにもなる。送信側の場合、通信ユニット２１（ＭＰＵ２１ａ）は、図示省略の内部時計に従い、フレームを送信（生成）する際に、パケット内に現在の時刻情報を含むタイムスタンプを付加する。なお、前記送信側と受信側は、定期的に内部時計の同期をとる。
【００４６】
図４は、安全機器２２の内部構造を示すブロック図である。この安全機器２２は、安全入力機器６や安全出力機器７である。安全機器２２は、ＭＰＵ２２ａと、ＲＡＭ２２ｂと、不揮発性メモリ２２ｃと、表示部２２ｄと、設定部２２ｅと、通信物理層２２ｆと、Ｉ／Ｏ駆動回路２２ｇと、を備えている。ＭＰＵ２２ａは、ネットワーク５を介して取得したメッセージを受けて、所定の処理を実行し、レポンスを生成・返信したり、接続されたＩ／Ｏ機器に対する制御等を実行したりする。つまり、このＩ／Ｏ機器に対する制御は、安全入力機器６であれば、接続された入力機器のＩ／Ｏデータ（ＩＮデータ）を取得し、所定のタイミングでコネクションが張られた安全ＰＬＣ８や安全出力機器７に向けて送信することであり、安全出力機器７であれば安全ＰＬＣ８や安全出力機器７から送られてくるＩ／Ｏデータ（ＯＵＴデータ）を取得し、接続された出力機器を動作させることである。安全機器２２が、Ｉ／Ｏデータの送信側となる安全入力機器６の場合、ＭＰＵ２２ａは、図示省略の内部時計に従い、フレームを送信（生成）する際に、パケット内に現在の時刻情報を含むタイムスタンプを付加する。
【００４７】
ＲＡＭ２２ｂは、ＭＰＵ２２ａが処理を実行する際に使用するワークメモリとして機能する。安全機器２２が、Ｉ／Ｏデータの受信側となる安全出力機器７の場合、ＲＡＭ２２ｂには、後述する実際の送信回数を保管するための送信回数テーブルや、実際の通信時間を保管する通信時間テーブルが格納される。不揮発性メモリ２２ｃは、各種の設定データ等が格納される。表示部２２ｄは、たとえばＬＥＤなどの動作状態（通信状態）や異常／正常を示す表示ランプ（警報ランプ）等である。設定部２２ｅは、アドレスを設定するスイッチなどである。通信物理層２２ｆは、接続されるネットワーク５の通信プロトコルに対応する物理層であり、通信インタフェースとも称され、マスタとなる通信ユニット２１との間でＩ／Ｏデータや各種メッセージ等の送受を行なう。Ｉ／Ｏ駆動回路２２ｇは、入力機器や出力機器等の外部のＩ／Ｏ機器と接続しＩ／Ｏデータの送受を行なう。Ｉ／Ｏ機器が、ＯＮ／ＯＦＦの２値を採るものとすると、出力機器の場合には、Ｉ／Ｏ駆動回路２２ｇは、ＭＰＵ２２ａからの指示に従い、出力機器の動作のＯＮ／ＯＦＦを制御する。Ｉ／Ｏ機器が入力機器の場合、Ｉ／Ｏ駆動回路２２ｇは、そのＩ／Ｏ機器の状態をＭＰＵ２２ａに伝える機能を持つ。電気回路に開閉スイッチを設け、その開閉スイッチを開閉することにより、出力機器の動作を制御するようにすることもできる。
【００４８】
安全ＰＬＣ８並びに受信側の安全機器２２（安全出力機器７）は、受信したデータの送信回数や、通信時間を検出する機能を備える。それらの各検出する機能は、本実施形態では、パケット内に含まれるタイムスタンプを利用する。つまり、上述したように、送信側の安全機器（安全入力機器６）や安全ＰＬＣ８（通信ユニット２１）は、フレームを送信する際にパケット内にタイムスタンプを付加しているので、受信側の機器（ＰＬＣを含む）は、フレームを受信した差異の時刻を内部時計から取得するとともに、パケット内に付加されたタイムスタンプの時刻との差を求めることで、そのフレームの通信時間を算出する。係る通信時間の算出処理は、安全機器２２の場合にはＭＰＵ２２ａ内に設定される通信時間算出部２５が行なう。また、安全ＰＬＣ８の場合は、通信ユニット２１（ＭＰＵ２１ａ）が通信時間を求め、その結果をＣＰＵユニット２０に伝えるようにしている。なお、通信時間の算出をＣＰＵユニット２０側で行なっても良い。
【００４９】
このようにして算出された通信時間は、コネクションごとに通信時間テーブル２６が作成され、ＲＡＭ２０ａ，２２ｂに記憶保持される。図５に示すように、本実施形態では、通信時間を複数の領域（図では、１０［ｍｓ］間隔）に分割し、計測した実際の通信時間を各領域に振り分け、各領域に属するデータ送信の回数を記憶保持するようにしている。よって、通信時間テーブル２６のデータ構造は、コネクションＮｏと、各領域の発生回数を関連付けたものとなる。
【００５０】
また、送信回数の検出は、以下のようにしている。すなわち、図６に示すように、送信側からは、設定された送信間隔Ｔで、フレームが定期的に送信される。このフレームには、タイムスタンプ（ＴＳ）が付加されている。すると、ｎ回目に送信されるフレームのタイムスタンプをＴＳｎとすると、前回（ｎ−１）送信されたフレームのタイムスタンプＴＳ（ｎ−１）との差（ＴＳｎ−ＴＳ（ｎ−１））が、送信間隔Ｔとなる。なお、ＴＳｎは、具体的な時刻情報である。
【００５１】
また、安全ネットワーク（セーフティ）の通信プロトコルであるCIP Safetyでは、各通信ごとに受信側から受け取りのレスポンスが発せれる仕様にはなっていない。そこで、送信側は、送信したフレームがコネクションを張った相手に到達できたか否かに関係なく、設定された送信間隔で、そのときの最新のデータ（Ｉ／Ｏデータ）を送信するようになっている。
【００５２】
ここで、図６に示すように、４回目と６回目と７回目の送信フレームが、何かしらの原因で受信側に到達しなかったとする。上述したように、送信側では、送信したフレームが受信側に到達したか否かに関係なく最新のデータを送信するため、その送信フレーム中に１回目の送信なのか、再送（ｍ回目）の送信なのかを区別する情報を付加することができない。従って、受信側で４回目に受信したフレームは、実際には送信側では５回目に送信したフレームではあるが、その受信したフレーム自体を解析しただけでは、４回目の送信フレームなのか５回目の送信フレーム化の識別はできない。そこで、本実施形態では、受信側にて前回受信したフレームに付加されたタイムスタンプを記憶保持しておき、今回受信したフレームに付加されたタイムスタンプとの差分から、送信回数を特定するようにした。
【００５３】
つまり、図５に示す例では、受信側で４回目に受信したフレームのタイムスタンプはＴＳ５となっており、前回受信したフレームのタイムスタンプＴＳ３との差分を求めると、その算出結果は、２倍の送信間隔（２Ｔ）に近似する値となる（送信間隔Ｔよりは十分に長い）。従って、この場合には、前回受信してから今回受信するまでの間に、１回分のフレームが送信されていたと推定できるので、受信側でフレームを受信できるまでの送信回数は２回となる。
【００５４】
同様に、受信側で５回目に受信したフレームのタイムスタンプはＴＳ８となっており、前回受信したフレームのタイムスタンプＴＳ５との差分を求めると、その算出結果は、２倍の送信間隔（３Ｔ）に近似する値となる（送信間隔Ｔよりは十分に長い）。従って、この場合には、前回受信してから今回受信するまでの間に、２回分のフレームが送信されていたと推定できるので、受信側でフレームを受信できるまでの送信回数は３回となる。
【００５５】
係る処理を行なうため、受信側のＲＡＭ２２ｂ，２０ｂ等には、前回受信したフレームのタイムスタンプ（前回タイムスタンプ）を記憶する前回タイムスタンプ記憶部が設定される。そして、係る送信回数の管理は、コネクションごとに行なわれるので、安全ＰＬＣ８のように複数のコネクションを保有する場合には、その前回タイムスタンプ記憶部もコネクションの数に応じて複数用意される。
【００５６】
受信側の機器は、受信したフレームが、前回受信したフレームから何回目の送信フレームであるかを判定する送信回数判定部２７を備えている。送信回数判定部２７は、フレームを受信するごとにそのコネクションにおける前回受信したフレームのタイムスタンプを用いて送信間隔を求める。そして、送信回数判定部２７は、求めた送信回数をコネクションごとにまとめた送信回数テーブル２８を作成し、ＲＡＭ２０ａ，２２ｂに記憶保持する。なお、実際には、求めたタイムスタンプの差分値が、送信間隔Ｔの倍数に一致するとは限らないので、ある程度のマージンを設け、当該差分値が送信間隔のＮ倍に対し、一定の時間範囲内であれば、送信回数はＮ回とするように設定するとよい。図７に示すように、この送信回数テーブル２８は、コネクションＮｏと、送信回数の発生回数を関連付けたものとなる。なお、送信回数が大きい場合には、具体的な回数はさほど問題にならない（そもそも送信回数が多数回になること自体が問題）ともいえるので、例えば、送信回数４回以上は１つのグループにまとめてその発生回数を管理するようにしてもよい。
【００５７】
図８は、安全機器２２における受信処理機能を示すフローチャートである。安全ＰＬＣ８における受信処理も同様のものが実行される。まず、フレームを受信すると、ＭＰＵ２２ａは、データ受信か否かを判断する（Ｓ１）。データ受信、つまりＩ／Ｏデータの場合には、この分岐判断がＹｅｓとなり、処理ステップＳ２に飛び、ＭＰＵ２２ａは、送信回数の判定処理を行なう（Ｓ２）。つまり、受信したデータの送信元情報から、コネクションＮｏを特定し、前回タイムスタンプ記憶部から対応する前回受信タイムスタンプを読み出すとともに、受信したフレームに付加された今回のタイムスタンプを抽出し、両者の時間差から送信回数を決定する。
【００５８】
ＭＰＵ２２ａは、決定した送信回数に従い、送信回数テーブルを更新する（Ｓ３）。つまり、該当するコネクションＮｏの送信回数のエリアに格納された回数を“１”インクリメントする。
【００５９】
次に、ＭＰＵ２２ａは、今回のタイムスタンプと現在時刻（受信時刻）の差分を求め、通信時間を算出する（Ｓ４）。そして、ＭＰＵ２２ａは、算出した通信時間が、どの領域に属するかを判定する。
【００６０】
ＭＰＵ２２ａは、決定した通信時間の属する領域に従い、通信時間テーブルを更新する（Ｓ５）。つまり、該当するコネクションＮｏの通信時間の領域のエリアに格納された回数を“１”インクリメントする。なお、本実施形態では、送信回数の判定・テーブル更新を先に行なったが、通信時間の判定・テーブル更新を先に行なってももちろん良い。
【００６１】
一方、受信したフレームがデータ以外の場合、処理ステップ１の分岐判断はＮｏとなるので処理ステップ６に進み、ＭＰＵ２２ａは、“送信回数テーブル読み出し要求”のメッセージか否かを判断する（Ｓ６）。当該要求の場合、ＭＰＵ２２ａは、該当する送信回数テーブルを読み出し（Ｓ７）、読み出した送信回数テーブルの内容を正常レスポンスとして送信する（Ｓ８）。
【００６２】
また、受信したフレームのメッセージが、“送信回数テーブル読み出し要求”でない場合には、ＭＰＵ２２ａは、“通信時間テーブル読み出し要求”か否かを判断する（Ｓ９）。当該要求の場合、ＭＰＵ２２ａは、該当する通信時間テーブルを読み出し（Ｓ１０）、読み出した通信時間テーブルの内容を正常レスポンスとして送信する（Ｓ１１）。
【００６３】
さらに、受信したフレームのメッセージが、“通信時間テーブル読み出し要求”でもない場合には、ＭＰＵ２２ａは、“テーブルクリア要求”か否かを判断する（Ｓ１２）。当該要求の場合、ＭＰＵ２２ａは、送信時間回数テーブル並びに通信時間テーブルに格納されたデータをクリアする（Ｓ１３，Ｓ１４）。このクリア対象のテーブルは、全てのコネクションとしている。これにより、本実施形態では、係るクリア命令を受信したならば、全てのテーブルを一括してクリアする。もちろん、コネクション情報（コネクションＮｏ）とともにテーブルクリア要求を発行し、該当する１または複数のコネクションについてのみ、テーブルをクリアするようにしても良い。ＭＰＵ２２ａは、テーブルをクリアしたならば、完了通知を正常レスポンスとして送信する（Ｓ１５）。
【００６４】
なお、このクリア処理をした後で、データを受信した場合には、処理ステップＳ２からＳ５の処理を実行することで、送信回数テーブル並びに通信時間テーブルが更新される。よって、テーブルクリア要求を受けた場合、そのクリア後に行なわれる実際の通信に基づく通信時間と送信間隔の情報を収集することができる。そして、受信したフレームのメッセージが、“テーブルクリア要求”でもない場合には、ＭＰＵ２２ａは、エラーレスポンスを送信する（Ｓ１６）。
【００６５】
安全条件設定支援装置であるツール装置１０は、ネットワークシステムに関する情報を部品データベース１３ｄ等の記憶手段から読み出し、内部に固定的に持つパラメータから安全ネットワークを構成するための条件の設定を行なう機能と、上述した受信側の安全機器が管理する送信回数テーブル並びに通信時間テーブルに格納された実測値に基づいて、その実際のネットワークの状況を加味した安全ネットワークを構成するための条件を求める機能と、を有する。
【００６６】
具体的には、ツール装置１０は、図９に示すフローチャートに従って処理する機能を持つ。なお、前提として、ツール装置１０は、コネクション情報や、実際の部品等の配置・結線・通信パラメータ等の接続情報が事前に作成されて記憶保持し、その記憶した情報を必要に応じて読み出して安全ネットワークの要件を満たす各種条件を設定するようにしている。この点も特許文献１と同様である。
【００６７】
入力部１２を介してＭＰＵ１３ｃに安全条件設定モードの指示があると（Ｓ２１）、メモリ１３ｅに記憶保持させた接続情報を読み出し（Ｓ２２）、それに基づいて表示部１１に現在の接続情報を視覚（ビジュアル）的に表示する。つまり、各要素のマークを所定位置に表示するとともに、各マークを結ぶ線を表示する（Ｓ２３）。次いで、編集したい対象、例えば機器を交換等したい場合には、対応する機器を選択し、また、通信パラメータを変更したい場合には、線を選択する（Ｓ２４）。これに基づきプロパティ、つまり通信パラメータ等を表示し、その表示によりデータの入力可能モードとなる（Ｓ２５）。一例としては、表示部１１の作業領域１１ｂに図１０のように表示される。この例では、前提として既に通信パラメータなどのデータが入力され、メモリ１３ｅ等に格納されているため、通信方法や送信間隔などもその格納された設定済み情報が読み出されて表示される。また、画面上に表示されないが、このとき、少なくとも対象となっている機器の内部処理時間情報（部品データベース１３ｄに格納されている）も読み出される。
【００６８】
ユーザは、入力部１２を操作し、必要に応じてデータの再入力をする（Ｓ２６）。つまり、図１０（ａ）に表示された入力画面に対し、例えば送信間隔等の修正するデータ入力エリアを選択し、具体的な数値等を入力する。
【００６９】
次いで、入力部１２からの入力を待ち、安全距離をユーザが指定するか否かを判断する（Ｓ２７）。具体的には、表示画面上に例えば「安全距離入力」，「条件計算・判定」などの入力スイッチ領域を設けておき、「安全距離入力」が選択されると、安全距離の入力が指定されたと判断し、安全距離入力画面を表示し、入力部１２からの入力を待つ。ここで入力する安全距離は、ユーザが実際の現場において取ろうとしている安全入力機器での検出位置と、危険領域までの距離である。
【００７０】
なお、安全距離の入力であるが、この例では、ステップＳ２７の分岐判断の後、安全距離を指定する場合には別途安全距離入力画面を表示するようにしたが、例えば、ステップＳ２５のプロパティの表示の際に、図１０（ｂ）に示すように、安全距離を入力する領域も一緒に表示し、この安全距離に具体的なデータを入れることなく所定のボタン（演算開始等）が選択された場合には、安全距離未入力と判断することもできる。
【００７１】
そして、安全距離が入力されたならば（Ｓ２８）、ステップＳ２９に進み、ツール装置１０は、対象機器に対して所定のテーブル読み出し要求を発行し、当該対象機器からのレスポンスを受けて、実測値の通信時間や送信回数を取得する（Ｓ２９）。ツール装置１０は、コネクション情報により、処理対象の機器（受信機器）並びにそれに関するコネクションＮｏ．を知っているのでの、それに基づき、ネットワークを介してメッセージを発行する。
【００７２】
ツール装置１０は、取得した実測値に基づき、安全条件設定用のパラメータ値（送信回数，通信時間）を決定する（Ｓ３０）。通信時間は、通信時間テーブルから取得した通信時間の内、実測値で最大の領域の上限値をパラメータに決定する。例えば図１１に示す場合、通信時間が４０［ｍｓ］以上５０［ｍｓ］未満が５０回となり、５０［ｍｓ］以上のものは存在しないので、最大の５０［ｍｓ］を通信時間とする。なお、領域の区分けの仕方として、下限値以上上限値未満としているので、仮に実測値が５０［ｍｓ］とすると、５０［ｍｓ］以上６０［ｍｓ］未満の領域に属することになり、その場合の通信時間に関する安全条件設定用のパラメータ値は、６０［ｍｓ］となる。このようにすることで、測定誤差（公差）等を考慮しても、より確実に安全条件を求めることができる。もちろん、その領域を下限値より大きく上限値以下とし、実測値が５０［ｍｓ］の場合の安全条件設定用のパラメータ値が、５０［ｍｓ］となるようにしてもよい。
【００７３】
また、通信時間の決定は、最も長い通信時間（実測値）が属する領域の上限としたため、例えば、図１１に示す例で、５０［ｍｓ］以上６０［ｍｓ］未満の領域に属する実測値は０回で、６０［ｍｓ］以上７０［ｍｓ］未満の領域に属する実測値は１乃至数回ある場合、本実施形態では、安全条件設定用のパラメータ値は、７０［ｍｓ］となる。これは、通信時間は、ノイズ等の影響よりも、負荷の影響の方が大きく起因し、通常の運転動作中に、一部でも通信時間が長くかかる現象が発生する場合には、その安全ネットワークシステムでは、一時的に負荷が掛かり通信時間が長くなることがあることを意味し、係る状態の時でも安全が保証される必要があるためである。なお、いずれの場合も、従来の固定値に基づく安全パラメータの決定では、通信時間は送信間隔を用いて規定していたため、それに比べると、短くなる。
【００７４】
一方、送信回数は、実測値の状況から総合的に判断して決定する。具体的には、図１１に示すように、全てのデータ通信が、送信回数が１回とすると、その場合の送信回数についての安全条件設定用のパラメータ値は、１回となる。また、図１１に示す例において、送信回数＝２回のケースが、数回程度のように発生回数は少ないものの０でない場合には、送信回数のパラメータは、１回と２回の両方とし、それぞれに基づいて安全パラメータを求める。また、送信回数＝２回のケースが、比較的多く発生する場合には、送信回数のパラメータは、２回にする。なお、送信回数が３回以上のものが発生する場合には、２回以下という規定を満足しないので、その旨を表示する。
【００７５】
発生回数が少ないか否かの判断は、例えば、１０回以下のように、絶対値としての固定的な閾値を設定したり、送信回数＝１回の発生回数の１０％以下というように相対的な基準を設定したりすることができる。なお、いずれの場合も、上記の数値は一例であり、適宜変更できる。そして、固定的，相対的な閾値を超える場合には、発生回数が多いとする。
【００７６】
上記のようにして求めたパラメータ値を用い、処理時間合計や必要安全距離などを算出し、その演算結果を表示する（Ｓ３１）。このステップＳ３１における演算処理であるが、安全距離と送信間隔の両方が与えられた場合には、その条件で安全ネットワークとしての要件を満たすか否かの判断を行なう。また、何れか一方が未入力の場合には、安全ネットワークとしての要件を満たすために必要な条件を求める。
【００７７】
具体的には、たとえば、コネクションが張られた機器Ａ，Ｂ間の通信に関し、入力パラメータ（通信条件）や、部品データベースに格納された各機器Ａ，Ｂにおける内部処理時間に関する情報が、図１２に示すようになっているものとする。
【００７８】
まず、CIP Safetyでは、通信による遅れ（ネットワーク遅延時間）は次の算出式で求めることになっている。
【００７９】
最大ネットワーク遅延時間＝送信間隔＊送信回数＋２＊通信時間
よって、上記の式に、送信間隔＝２００ｍｓと、実測値に基づいて決定された送信回数＝１回と通信時間＝５０ｍｓを代入すると、ネットワーク遅延時間は３００ｍｓとなる。そして、Ａ，Ｂの各機器における内部処理時間は、データベースから取得したものを用いると、処理時間合計は、１０００ｍｓとなる。また、初期条件として設定された作業員の歩行速度が、１ｍ／ｓｅｃとすると、安全距離は１ｍ以上となる。なお、この歩行速度は、任意に設定・変更できるものであり、この歩行速度の情報も、部品データベースその他の記憶手段に格納する。また、この歩行速度は、実際の歩行速度ではない想定した歩行速度であるので、想定歩行速度と称することもできる。また、危険地域への進入は、歩いていく場合に限らず、たとえば、手を挿入するなど身体の一部の移動に伴い生じたり、車両その他の移動手段とともに移動して近づいたりする等、各種の態様が考えられる。従って、歩行速度（想定歩行速度）に限ることはなく、その場所（危険地域の周囲）に応じた移動速度（想定移動速度）を設定すると良い。そして、場所によって歩行速度が適切であったり、腕，上半身の曲げ等の身体の一部の移動速度が適切であったりする場合もあるので、たとえばコネクションＮｏ等と関連づけて速度情報（歩行速度・移動速度）を記憶させておき、それを用いて安全距離を算出するようにしても良い。
【００８０】
一方、固定値を用いた安全距離の算出は、CIP Safetyでは、デフォルトとして送信回数は２回、通信時間は送信間隔を使用することが仕様書で推奨されている。すると、上記の場合、固定値（推奨値）に基づいて算出したネットワーク遅延時間は、８００ｍｓとなり、安全距離は１．５ｍ以上必要となる。よって、この場合は、実際の生産設備に設置した安全ネットワークでは、安全距離が１ｍ確保できればよいので、安全条件を満たした状態でのレイアウトの自由度が増す。
【００８１】
そして、このようにして求めた結果を表示部に表示する（Ｓ３２）。この表示は、実測値に基づく結果のみを表形式等で表示するようにしても良いし、図１２に示すように、固定値（推奨値）に基づく結果も併記して表示するようにしても良い。
【００８２】
そして、安全ネットワークとしての要求を満足するものが得られたか否かを判断する（Ｓ３３）。この判断は、ユーザからの入力を受けて行なう。処理ステップＳ３２の実行により、表示された結果を見たユーザは、先に設定した通信条件における実際の安全ネットワークシステムにおける安全距離が１ｍ以上であることが分かるので、係る安全距離を実際に取れているか否か（レイアウト変更の場合には、１ｍ以上確保できるか否か）を判断し、取ることができる場合にはステップＳ３３における判断は要件満足となる。
【００８３】
そして、要求を満足すると判断した場合には、必要に応じて確定した安全条件・パラメータを、対応する各機器に対してダウンロードして処理を終了する（Ｓ３４）。
【００８４】
なお、実際の現場で１ｍの距離が確保できない場合（Ｓ３３でＮｏ）には、処理ステップＳ２４に戻り、条件の再入力を行い、再度演算実行する。このとき、再入力する条件としては、送信間隔を短くするようにしても良いし、逆に実際に採れる距離を安全距離として入力するとともに、送信間隔を未入力とし、安全ネットワークの要件を満たす送信間隔を求めさせることもできる。そして、送信間隔を変更した場合には、その変更を実際のネットワークに反映させる必要があるので、ステップＳ３４の実行処理を行い、変更された条件をダウンロードすることになる。
【００８５】
上記の例では、送信間隔と実測値に基づく通信時間並びに送信回数に基づいて安全距離を算出することについて説明したが、送信間隔と安全距離の両方を入力し、設置条件の適否を判断することもできる。この場合、送信間隔と実測値に基づく通信時間並びに送信回数に基づいて当該安全ネットワークシステムにおける安全距離（必要安全距離）を算出し、その算出結果と、入力された安全距離とを比較し、求めた必要安全距離と入力された安全距離とを比較し、要件を満たしているか否かを判断する。つまり、安全距離の方が長ければ「ＯＫ」となり、安全距離の方が短ければ「ＮＧ」となる。
【００８６】
また、本実施形態では、推奨値に基づく安全パラメータ（安全条件）の決定と、実測値に基づく安全パラメータ（安全条件）の決定の両方の機能を備えたが、実測値に基づいて安全パラメータを求める機能のみでも良い。逆に、本実施形態のように両方の機能を備えることで、実測値に基づいて決めたパラメータ値がデフォルト（推奨値）に基づいて決めた値と比較し、それよりも劣る場合は、その原因として考えられる項目と、その改善方法をユーザに通知する機能を備えるとよい。
【００８７】
劣る例としては、例えば安全距離が長くなったり、安全距離をユーザが希望する値にするために必要な送信間隔が短くなったり、送信回数が３回以上のものがあったりする場合がある。これらの原因は、通信ケーブルが規定よりも長かったり、コネクタ部分の接続不良があったり、ノイズが多く発生する環境であるなどであり、予めその因果関係が関連づけられる。また、係る原因に対する改善方法も、“ケーブルの長さを確認してください”，“コネクタはしっかり装着されていますか”など予め決まったものがある。そこで、ツール装置１０は、係る因果関係に基づき、劣った項目と原因と改善方法を関連づけたデータをデータベースに記憶保持しておき、実測値に基づいて決めたパラメータ値の方が劣っている場合には、データベースから該当する情報を抽出し、その結果（項目とパラメータ値）と共に、あらかじめ内部に持った改善方法等を表示することで実現できる。
【００８８】
また、上述の例では、２つの機器間でデータの送受を行なう場合についての安全距離や送信間隔等の安全条件を求める場合を説明したが、本発明はこれら限ることはない。すなわち、安全入力機器６から出力された異常状態を示す検出信号が、直接安全出力機器７に送られ、安全出力機器７に接続された制御対象装置が停止されるようなシステム構成の場合には、上記の実施形態の装置・システムにより実際の状況に適した安全条件を求めることができる。
【００８９】
一方、安全入力機器６から出力された上記検出信号が、一旦安全ＰＬＣ８に送られ、安全ＰＬＣ８にて所定の演算処理を実行後に、安全出力機器７に停止信号が送られ、それを受けた安全出力機器７が、接続された制御対象装置を停止するような構成では、以下のようにして安全条件を求めることができる。すなわち、安全入力機器６から安全ＰＬＣ８へのコネクションについての実測値の通信時間と送信間隔の履歴情報が、安全ＰＬＣ８に設けられたそれぞれのテーブルに格納されており、安全ＰＬＣ８から安全出力機器７へのコネクションについての実測値の通信時間と送信間隔の履歴情報が、安全出力機器７に設けられたそれぞれのテーブルに格納されている。そこで、ツール装置１０は、安全ＰＬＣ８並びに安全出力機器７に対して、それぞれテーブル読み出し要求を発行し、それぞれの機器間（安全入力機器６−安全ＰＬＣ８，安全ＰＬＣ８−安全出力機器７）での通信時間と送信間隔の履歴情報を取得する。よって、通信時間は、各機器間のそれぞれの最大通信時間同士を加算して求める。送信間隔は、それぞれの機器間の送信間隔の適正値を求め、最も悪いものを実測値に基づく送信間隔に決定する。
【００９０】
このようにして求めた通信時間と送信間隔の適正値と、各機器（安全出力機器６，安全ＰＬＣ８，安全出力機器７）の内部処理時間と、送信間隔に基づき、安全入力機器６から検出信号が出力されてから、安全出力機器７に停止命令が伝わるまでの全体の時間が求められ、それに基づいて、安全距離を算出することができる。
【００９１】
４個以上の機器を伝達される場合にも、上記と同様に必要な情報を取得し、それらを加算処理等することで安全条件を求めることができる。
【００９２】
上述した実施の形態は、ツール装置に組み込んだ状態を前提として説明したが、上述した各処理（例えば各図に示したフローチャートを実行するための処理）をコンピュータに実行させるためのプログラムとし、係るプログラムは所定の記録媒体に記録して提供するようにしてもよい。
【図面の簡単な説明】
【００９３】
【図１】本発明の一実施形態が適用されるシステム構成の一例を示す図である。
【図２】ツール装置の一形態を示すブロック図である。
【図３】安全ＰＬＣの内部構成を示すブロック図である。
【図４】安全機器の内部構成を示すブロック図である。
【図５】通信時間テーブルのデータ構造の一例を示す図である。
【図６】送信回数を求める機能を説明する図である。
【図７】送信回数テーブルのデータ構造の一例を示す図である。
【図８】安全機器の受信機能を示すフローチャートである。
【図９】安全条件設定支援装置であるツール装置の機能を示すフローチャートである。
【図１０】入力・表示画面の一例を示す図である。
【図１１】作用を説明する図である。
【図１２】作用を説明する図である。
【符号の説明】
【００９４】
６  安全入力機器
７  安全出力機器
８  安全ＰＬＣ
１０  ツール装置
１１  表示部
１２  入力部
１３  処理部
１３ａ  表示部インタフェース
１３ｂ  入力部インタフェース
１３ｃ  ＭＰＵ
１３ｄ  部品データベース
１３ｅ  メモリ
１４  通信インタフェース部
２０  ＣＰＵユニット
２０ａ  ＭＰＵ
２０ｂ  ＲＡＭ
２０ｃ  不揮発性メモリ
２１  通信ユニット
２１ａ  ＭＰＵ
２１ｂ  ＲＡＭ
２１ｃ  不揮発性メモリ
２２  安全機器
２２ａ  ＭＰＵ
２２ｂ  ＲＡＭ
２２ｃ  不揮発性メモリ
２５  通信時間算出部
２６  通信時間テーブル（通信時間履歴情報記憶部）
２７  送信間隔判定部
２８  送信間隔テーブル（送信回数履歴情報記憶部）
【図１】
0005062426.tif 000002
【図２】
0005062426.tif 000003
【図３】
0005062426.tif 000004
【図４】
0005062426.tif 000005
【図５】
0005062426.tif 000006
【図６】
0005062426.tif 000007
【図７】
0005062426.tif 000008
【図８】
0005062426.tif 000009
【図９】
0005062426.tif 000010
【図１０】
0005062426.tif 000011
【図１１】
0005062426.tif 000012
【図１２】
0005062426.tif 000013