(57)【特許請求の範囲】
【請求項１】
メモリと、
前記メモリに接続され、セーフティプログラムを実行するプロセッサと、
第１の伝送路を介して１または複数のセーフティコンポーネントとの間でデータを遣り取りする第１の通信部と、
第２の伝送路を介して１または複数のセーフティコンポーネントとの間でデータを遣り取りする第２の通信部とを備え、
前記第２の通信部および前記第１の通信部は、互いに独立してデータの遣り取りに係る処理を実行し、
前記メモリは、
互いに独立して配置されている、前記第１の通信部が遣り取りするデータを保持する第１のデータ領域および前記第２の通信部が遣り取りするデータを保持する第２のデータ領域と、
前記プロセッサで実行されるセーフティプログラムが参照するための複数のメモリ領域とを含み、各メモリ領域は、前記第１のデータ領域および前記第２のデータ領域のうち予め定められた任意のデータ領域に対応付けられている、セーフティシステム。
【請求項２】
前記第２の通信部および前記第１の通信部は、互いに独立した周期またはイベントでデータを遣り取りする、請求項１に記載のセーフティシステム。
【請求項３】
前記第１の通信部および前記第２の通信部は、互いに異なる通信プロトコルに従って、各々が対象とするセーフティコンポーネントとの間でデータを遣り取りする、請求項１または２に記載のセーフティシステム。
【請求項４】
前記メモリには、前記プロセッサで実行されるセーフティプログラムが参照するためのメモリ領域が配置されており、当該メモリ領域は、前記第１のデータ領域および前記第２のデータ領域にそれぞれ対応付けられる領域を含む、請求項１〜３のいずれか１項に記載のセーフティシステム。
【請求項５】
メモリと、
前記メモリに接続され、セーフティプログラムを実行するプロセッサと、
前記プロセッサを第１の通信部および第２の通信部とに接続するためのインターフェイスとを備え、
前記第１の通信部は、第１の伝送路を介して１または複数のセーフティコンポーネントとの間でデータを遣り取りし、
前記第２の通信部は、第２の伝送路を介して１または複数のセーフティコンポーネントとの間でデータを遣り取りし、
前記第２の通信部および前記第１の通信部は、互いに独立してデータの遣り取りに係る処理を実行し、
前記メモリは、
互いに独立して配置されている、前記第１の通信部が遣り取りするデータを保持する第１のデータ領域および前記第２の通信部が遣り取りするデータを保持する第２のデータ領域と、
前記プロセッサで実行されるセーフティプログラムが参照するための複数のメモリ領域とを含み、各メモリ領域は、前記第１のデータ領域および前記第２のデータ領域のうち予め定められた任意のデータ領域に対応付けられている、セーフティコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、セーフティコントローラを含むセーフティシステムに関する。
【背景技術】
【０００２】
各種の製造現場においてセーフティコントローラおよびそれを含むセーフティシステムが導入されつつある。セーフティシステムは、ロボットなどの自動的に動く装置によって人の安全が脅かされることの防止を目的としている。一般的に、セーフティシステムは、多くの製造現場で使用される設備や機械を安全に使用するために、設備や機械を制御する制御装置とは独立して配置されることが多い。【０００３】
セーフティシステムは、典型的には、セーフティプログラムを実行するセーフティコントローラをはじめとして、人の存在や進入を検知する検知機器、非常時の操作を受付ける入力機器、実際に設備や機械を停止させる出力機器などを含む。【０００４】
セーフティシステムには、国際規格に従う安全機器（セーフティコンポーネント）を使用しなければならばない。国際規格においては、安全性を保障するための各種規則や規約などが規定されている。【０００５】
例えば、特開２００９−１４６０３９号公報（特許文献１）は、セーフティ・コントローラとプログラマブル・コントローラとを有するセーフティ・コントロール・システムを開示する。特許文献１に開示されるセーフティ・コントロール・システムにおいては、セーフティ・コントローラに対して、セーフティ規格の入力機器へと通ずるべき入力用端子部と、出力機器へと通ずるべき出力用端子部と、正常／異常信号を外部へと送出するための診断結果出力用端子部とが配置されている。すなわち、セーフティ規格の入力機器からの入力信号は、セーフティ・コントローラへ入力回路を経由して直接入力される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１４６０３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の特許文献１に開示されるセーフティ・コントロール・システムにおいては、ＣＰＵユニットとシステムバスで結ばれたセーフティ・インタフェース（Ｉ／Ｆ）・ユニットを介して、各種のセーフティ機器との間で信号が遣り取りされる。【０００８】
現実の製造現場では、スペース的な制約や機器レイアウトなどによって、セーフティ・インタフェース（Ｉ／Ｆ）・ユニットが装着されたＣＰＵユニットを配置することが難しい場合がある。そのため、セーフティコンポーネントとの間でより柔軟にデータを遣り取りできる構成が要望されている。
【課題を解決するための手段】
【０００９】
本発明のある実施の形態に係るセーフティシステムは、メモリと、メモリに接続され、セーフティプログラムを実行するプロセッサと、第１の伝送路を介して１または複数のセーフティコンポーネントとの間でデータを遣り取りする第１の通信部と、第２の伝送路を介して１または複数のセーフティコンポーネントとの間でデータを遣り取りする第２の通信部とを含む。第２の通信部および第１の通信部は、互いに独立してデータの遣り取りに係る処理を実行する。メモリには、第１の通信部が遣り取りするデータを保持する第１のデータ領域と、第２の通信部が遣り取りするデータを保持する第２のデータ領域とが互いに独立して配置されている。【００１０】
好ましくは、第２の通信部および第１の通信部は、互いに独立した周期またはイベントでデータを遣り取りする。【００１１】
好ましくは、第１の通信部および第２の通信部は、互いに異なる通信プロトコルに従って、各々が対象とするセーフティコンポーネントとの間でデータを遣り取りする。【００１２】
好ましくは、メモリには、プロセッサで実行されるセーフティプログラムが参照するためのメモリ領域が配置されており、当該メモリ領域は、第１のデータ領域および第２のデータ領域にそれぞれ対応付けられる領域を含む。【００１３】
本発明のある実施の形態に係るセーフティコントローラは、メモリと、メモリに接続され、セーフティプログラムを実行するプロセッサと、プロセッサを第１の通信部および第２の通信部とに接続するためのインターフェイスとを含む。第１の通信部は、第１の伝送路を介して１または複数のセーフティコンポーネントとの間でデータを遣り取りする。第２の通信部は、第２の伝送路を介して１または複数のセーフティコンポーネントとの間でデータを遣り取りする。第２の通信部および第１の通信部は、互いに独立してデータの遣り取りに係る処理を実行する。メモリには、第１の通信部が遣り取りするデータを保持する第１のデータ領域と、第２の通信部が遣り取りするデータを保持する第２のデータ領域とが互いに独立して配置されている。
【発明の効果】
【００１４】
本発明の実施の形態によれば、セーフティコンポーネントとの間でより柔軟にデータを遣り取りできる構成を提供できる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態に係るセーフティシステムの構成例を示す模式図である。
【図２】本実施の形態に係るセーフティシステムの構成例を示す模式図である。
【図３】本実施の形態に係るセーフティシステムの構成例を示す模式図である。
【図４】本実施の形態に係るセーフティコントローラの構成例を示す模式図である。
【図５】本実施の形態に係るセーフティシステムのＣＰＵユニットにおけるメモリ構造の一例を示す模式図である。
【図６】本実施の形態に係るセーフティシステムのＣＰＵユニットにおけるＩＯデータ領域の割り当てを実現するためのユーザインターフェイス画面の一例を示す模式図である。
【発明を実施するための形態】
【００１６】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１７】
＜Ａ．セーフティシステムの構成例＞
まず、本実施の形態に係るセーフティシステムの構成例について説明する。本実施の形態に係るセーフティシステムは、１または複数の伝送路を介して、セーフティシステムを構成する検知機器、入力機器、出力機器（以下では、これらの機器を「セーフティコンポーネント」とも総称する。）との間でデータを遣り取りする。
【００１８】
本明細書において、「セーフティコンポーネント」は、上述の検知機器、入力機器、出力機器に限らず、安全を確保するために必要な任意の機器および装置を包含し得る。
【００１９】
本明細書において、「伝送路」は、装置間またはユニット間で信号またはデータを遣り取りするための任意の通信経路および通信手段を意味する。伝送路としては、メタル回線、光回線、無線信号などの任意の通信媒体を用いることができる。これらの通信媒体のうち２つ以上を任意に組み合わせてもよい。具体的な伝送路としては、バスおよびネットワークを含み得る。バスとしては、例えば、デイジーチェーン方式を採用してもよい。ネットワークとしては、典型的には、任意の定周期ネットワークを採用してもよい。このような定周期ネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの公知のネットワークを採用してもよい。
【００２０】
本実施の形態に従うセーフティシステムは、複数の伝送路を介してそれぞれセーフティコンポーネントとの間でデータを遣り取りすることができ、それぞれの伝送路は互いに独立している。つまり、いずれかの伝送路で生じた異常などのイベントが他の伝送路でのデータの遣り取りに何らの影響も与えないようになっている。このような機能を実現するための構成については後述する。
【００２１】
図１〜図３は、本実施の形態に係るセーフティシステムの構成例を示す模式図である。
図１には、バスおよびフィールドネットワークを介してそれぞれセーフティコンポーネントとの間でデータを遣り取りする構成を示す。具体的には、図１に示すセーフティシステム１は、セーフティコントローラ１１と、１または複数のリモートＩＯ（Input  Output）装置２１とを含む。セーフティコントローラ１１と、１または複数のリモートＩＯ装置２１との間は、フィールドネットワーク１４８を介して接続されている。
【００２２】
セーフティコントローラ１１は、ＣＰＵ（Central  Processing  Unit）ユニット１００と、電源ユニット１１０と、上位通信ユニット１３０と、フィールド通信ユニット１４０と、バスマスタユニット１６０と、１または複数のセーフティＩＯユニット２００とを含む。
【００２３】
セーフティＩＯユニット２００は、セーフティコンポーネントの一例であり、セーフティプログラムで参照されるフィールドからのデータ（入力データ）を収集し、および／または、セーフティプログラムの実行により算出されるデータ（出力データ）をフィールドへ出力する。セーフティＩＯユニット２００は、信号を入出力する機能に加えて、セーフティ固有の機能を有するＩＯユニットである。以下では、セーフティコンポーネントの典型例として、セーフティＩＯユニット２００に着目して説明する。但し、セーフティＩＯユニット２００に接続された各種セーフティスイッチやセーフティ検出器などを含めた全体を、セーフティコンポーネントとみなすこともできる。
【００２４】
ＣＰＵユニット１００は、セーフティプログラムを実行するプロセッサを含む演算装置である。なお、「ＣＰＵユニット」との名称は、便宜上のものであり、ＣＰＵではなく、例えば、ＧＰＵ（Graphic  Processing  Unit）などの任意のプロセッサを用いてセーフティプログラムを実行可能な演算装置であれば、どのような実装形態であっても包含し得る。
【００２５】
電源ユニット１１０は、ＣＰＵユニット１００および他のユニットに必要な電圧を有する電源を供給する。
【００２６】
上位通信ユニット１３０は、ＰＬＣ（プログラマブルコントローラ）などとのデータの遣り取りを管理および制御する。フィールド通信ユニット１４０は、フィールドネットワーク１４８を介した他の装置との間のデータを管理および制御する。バスマスタユニット１６０は、ローカルバス１６８を介したＣＰＵユニット１００とセーフティＩＯユニット２００との間のデータの遣り取りを管理および制御する。これらの伝送路を介してデータ伝送に係るユニットの詳細については、後述する。
【００２７】
リモートＩＯ装置２１は、通信カプラユニット３００と、１または複数のセーフティＩＯユニット２００とを含む。通信カプラユニット３００は、フィールドネットワーク１４８を介して、セーフティコントローラ１１のＣＰＵユニット１００および他のリモートＩＯ装置２１の通信カプラユニット３００と接続されている。
【００２８】
図１に示す構成においては、ＣＰＵユニット１００は、ローカルバス１６８を介して、セーフティＩＯユニット２００との間でデータを遣り取りすることができるとともに、フィールドネットワーク１４８を介して、リモートＩＯ装置２１の通信カプラユニット３００に接続されるセーフティＩＯユニット２００とデータを遣り取りすることができる。
【００２９】
次に、図２には、互いに独立した２つのフィールドネットワークを介してそれぞれセーフティコンポーネントとの間でデータを遣り取りする構成を示す。具体的には、図２に示すセーフティシステム２は、セーフティコントローラ１２と、複数のリモートＩＯ装置２１とを含む。セーフティコントローラ１２と、複数のリモートＩＯ装置２１との間は、フィールドネットワーク１４８および１５８を介してそれぞれ接続されている。
【００３０】
セーフティコントローラ１２は、ＣＰＵユニット１００と、電源ユニット１１０と、上位通信ユニット１３０と、フィールド通信ユニット１４０，１５０と、１または複数のセーフティＩＯユニット２００とを含む。
【００３１】
ＣＰＵユニット１００、電源ユニット１１０、上位通信ユニット１３０、および、フィールド通信ユニット１４０は、上述したセーフティコントローラ１１において説明したものと同様である。フィールド通信ユニット１５０は、基本的には、フィールド通信ユニット１４０と同様の構成を有しており、フィールドネットワーク１５８を介した他の装置との間のデータを管理および制御する。
【００３２】
リモートＩＯ装置２１は、上述したセーフティコントローラ１１において説明したものと同様である。
【００３３】
図２に示す構成においては、ＣＰＵユニット１００は、フィールドネットワーク１４８を介して、リモートＩＯ装置２１の通信カプラユニット３００に接続されるセーフティＩＯユニット２００との間でデータを遣り取りすることができるとともに、フィールドネットワーク１５８を介して、リモートＩＯ装置２１の通信カプラユニット３００に接続されるセーフティＩＯユニット２００との間でデータを遣り取りすることができる。
【００３４】
次に、図３には、バスおよびフィールドネットワークを介してそれぞれセーフティコンポーネントとの間でデータを遣り取りするとともに、上位ネットワーク１３８を介してＰＬＣなどとの間でデータを遣り取りする構成を示す。具体的には、図３に示すセーフティシステム３は、セーフティコントローラ１１と、１または複数のリモートＩＯ装置２１と、１または複数のＰＬＣ４００と、ネットワークハブ１３６とを含む。ＣＰＵユニット１００とセーフティＩＯユニット２００との間は、ローカルバス１６８を介して接続されているとともに、セーフティコントローラ１１と１または複数のリモートＩＯ装置２１との間は、フィールドネットワーク１４８を介して接続されている。さらに、セーフティコントローラ１１と１または複数のＰＬＣ４００との間は、上位ネットワーク１３８を介して接続されている。
【００３５】
セーフティコントローラ１１は、ＣＰＵユニット１００と、電源ユニット１１０と、上位通信ユニット１３０と、フィールド通信ユニット１４０と、１または複数のセーフティＩＯユニット２００とを含む。
【００３６】
ＣＰＵユニット１００、電源ユニット１１０、上位通信ユニット１３０、および、フィールド通信ユニット１４０は、上述したセーフティコントローラ１１において説明したものと同様である。フィールド通信ユニット１５０は、基本的には、フィールド通信ユニット１４０と同様の構成を有しており、フィールドネットワーク１５８を介した他の装置との間のデータを管理および制御する。
【００３７】
リモートＩＯ装置２１は、上述したセーフティコントローラ１１において説明したものと同様である。
【００３８】
図３に示す構成においては、ＣＰＵユニット１００は、フィールドネットワーク１４８を介して、リモートＩＯ装置２１の通信カプラユニット３００に接続されるセーフティＩＯユニット２００との間でデータを遣り取りすることができるとともに、フィールドネットワーク１５８を介して、リモートＩＯ装置２１の通信カプラユニット３００に接続されるセーフティＩＯユニット２００との間でデータを遣り取りすることができる。さらに、セーフティコントローラ１１は、上位ネットワーク１３８を介して１または複数のＰＬＣ４００との間でデータを遣り取りすることができる。
【００３９】
セーフティコントローラ１１は、上述の図１を参照して説明したものと同様である。セーフティコントローラ１１の上位通信ユニット１３０は、ネットワークハブ１３６の１つのポートに接続されている。ネットワークハブ１３６の他のポートには、１または複数のＰＬＣ４００が接続されている。これによって、セーフティコントローラ１１と１または複数のＰＬＣ４００とが接続される。
【００４０】
図３に示す構成においては、ＣＰＵユニット１００は、ローカルバス１６８を介して、セーフティＩＯユニット２００との間でデータを遣り取りすることができるとともに、フィールドネットワーク１４８を介して、リモートＩＯ装置２１の通信カプラユニット３００に接続されるセーフティＩＯユニット２００とデータを遣り取りすることができる。さらに、セーフティコントローラ１１は、上位ネットワーク１３８を介して、１または複数のＰＬＣ４００との間でデータを遣り取りすることができる。
【００４１】
図１〜図３に示す構成はあくまでも一例であり、セーフティシステムの適用先に応じて、任意の構成を採用することができる。上述したように、本実施の形態に係るセーフティシステムは、複数の伝送路を介して、複数のセーフティコンポーネントとの間でデータを遣り取りできる。この際、各伝送路に生じた影響が他の伝送路へ及ばないような構成が採用されている。詳細については、後述する。
【００４２】
なお、図１〜図３には、ＣＰＵユニットと、電源ユニットと、上位通信ユニットと、フィールド通信ユニットと、バスマスタユニットとがそれぞれ独立したユニットとして構成される例を示すが、これに限らず、一部または全部のユニットが一体化して構成されてもよいし、任意のユニットの機能をさらに分離するようにしてもよい。
【００４３】
＜Ｂ．セーフティコントローラの構成例＞
次に、本実施の形態に係るセーフティシステムに含まれるセーフティコントローラ１１，１２の構成例について説明する。
【００４４】
図４は、本実施の形態に係るセーフティコントローラの構成例を示す模式図である。図４を参照して、セーフティコントローラ１１，１２は、ＣＰＵユニット１００と、上位通信ユニット１３０と、フィールド通信ユニット１４０，１５０と、バスマスタユニット１６０とを含む。これらのユニットは、内部バス１０９を介して接続される。なお、説明の便宜上、セーフティＩＯユニット２００については図示していない。セーフティコントローラ１１，１２は、典型的には、ＰＬＣをベースとして構成されてもよい。
【００４５】
ＣＰＵユニット１００は、主たるコンポーネントとして、プロセッサ１０２と、メモリ１０４と、ストレージ１０６とを含む。
【００４６】
プロセッサ１０２は、メモリ１０４およびストレージ１０６に接続されており、ストレージ１０６に格納されているシステムプログラム１０７およびセーフティプログラム１０８をメモリ１０４に読み出して実行することで、後述するような各種処理を実現する。メモリ１０４は、ＤＲＡＭ（Dynamic  Random  Access  Memory）やＳＲＡＭ（Static  Random  Access  Memory）などの揮発性記憶装置からなる。ストレージ１０６は、フラッシュメモリやハードディスクなどの不揮発性記憶装置からなる。ストレージ１０６には、ＣＰＵユニット１００および関連するユニットの各部を制御するためのシステムプログラム１０７に加えて、対象設備などに応じて設計されるセーフティプログラム１０８が格納される。
【００４７】
上位通信ユニット１３０は、ＣＰＵユニット１００が上位ネットワーク１３８を介して他の装置（ＰＬＣ４００など）との間でデータを遣り取りするためのインターフェイスを提供する。上位通信ユニット１３０は、主たるコンポーネントとして、受信回路（ＲＸ）１３１と、受信バッファ１３２と、送受信コントローラ１３３と、送信バッファ１３４と、送信回路（ＴＸ）１３５とを含む。
【００４８】
受信回路１３１は、上位ネットワーク１３８上を伝送されるパケットを受信して、その受信したパケットに格納されているデータを受信バッファ１３２に書込む。送受信コントローラ１３３は、受信バッファ１３２に書込まれた受信パケットを順次読出すとともに、当該読出したデータのうちＣＰＵユニット１００での処理に必要なデータのみをプロセッサ１０２へ出力する。送受信コントローラ１３３は、プロセッサ１０２からの指令に従って、他の装置へ送信すべきデータあるいはパケットを送信バッファ１３４へ順次書込む。送信回路１３５は、上位ネットワーク１３８上をパケットが転送されるタイミングに応じて、送信バッファ１３４に格納されているデータを順次送出する。
【００４９】
フィールド通信ユニット１４０は、ＣＰＵユニット１００がフィールドネットワーク１４８を介して１または複数のセーフティＩＯユニット２００との間でデータを遣り取りするためのインターフェイスを提供する。フィールド通信ユニット１４０は、主たるコンポーネントとして、受信回路（ＲＸ）１４１と、受信バッファ１４２と、送受信コントローラ１４３と、送信バッファ１４４と、送信回路（ＴＸ）１４５とを含む。これらのコンポーネントの機能は、上位通信ユニット１３０の対応するコンポーネントの機能と実質的に同様または類似であるので、詳細な説明は繰返さない。
【００５０】
同様に、フィールド通信ユニット１５０は、ＣＰＵユニット１００がフィールドネットワーク１５８を介して１または複数のセーフティＩＯユニット２００との間でデータを遣り取りするためのインターフェイスを提供する。フィールド通信ユニット１５０は、主たるコンポーネントとして、受信回路（ＲＸ）１５１と、受信バッファ１５２と、送受信コントローラ１５３と、送信バッファ１５４と、送信回路（ＴＸ）１５５とを含む。これらのコンポーネントの機能は、フィールド通信ユニット１４０の対応するコンポーネントの機能と実質的に同様または類似であるので、詳細な説明は繰返さない。
【００５１】
バスマスタユニット１６０は、ＣＰＵユニット１００に装着される１または複数のセーフティＩＯユニット２００と間でローカルバス１６８を介してデータを遣り取りするためのインターフェイスを提供する。バスマスタユニット１６０は、主たるコンポーネントとして、受信回路（ＲＸ）１６１と、受信バッファ１６２と、送受信コントローラ１６３と、送信バッファ１６４と、送信回路（ＴＸ）１６５とを含む。これらのコンポーネントの機能は、上位通信ユニット１３０またはフィールド通信ユニット１４０，１５０の対応するコンポーネントの機能と実質的に同様または類似であるので、詳細な説明は繰返さない。
【００５２】
以下の説明においては、上位通信ユニット１３０、フィールド通信ユニット１４０，１５０、バスマスタユニット１６０を「通信ユニット」と総称する。本明細書において、「通信ユニット」は、対応する伝送路を介してデータの遣り取りを担当する通信部に相当する。通信部に相当する「通信ユニット」は、対応する伝送路を介して１または複数のコンポーネント（典型的には、セーフティコンポーネント）との間でデータを遣り取りする。ここで、図４に示す内部バス１０９は、プロセッサ１０２を１または複数の通信ユニット（通信部）に接続するためのインターフェイスとして機能する。
【００５３】
図４に示すように、本実施の形態に係るセーフティシステムのＣＰＵユニット１００においては、各通信ユニットが他の通信ユニットの影響を受けることなく独自に通信を行うことができる。すなわち、それぞれの通信ユニット（通信部）は、互いに独立してデータの遣り取りに係る処理を実行する。このような処理を実現するために、後述するようなメモリ構造が採用されてもよい。
【００５４】
上述した各通信ユニット内の送受信コントローラ１３３，１４３，１５３，１６３は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などのハードウェア実装により実現してもよいし、マイクロプロセッサおよびファームウェアなどのソフトウェア実装により実現してもよい。あるいは、プロセッサ１０２が各送受信コントローラの処理の全部または一部を担当するようにしてもよい。
【００５５】
なお、セーフティシステムのＣＰＵユニット１００においては、性能要求に応じて、プロセッサ１０２、メモリ１０４、およびストレージ１０６などの主要コンポーネントの全部または一部をそれぞれ二重化したような構成を採用してもよい。
【００５６】
＜Ｃ．メモリ構造＞
次に、本実施の形態に係るセーフティシステムのＣＰＵユニット１００におけるメモリ構造の一例について説明する。本実施の形態に係るセーフティシステムは、いずれかの伝送路で生じた異常などのイベントが他の伝送路でのデータの遣り取りに何らの影響も与えないようになっている。このような機能を実現するために、ＣＰＵユニット１００においては、各伝送路においてデータの遣り取りを担当するユニットに対して、それぞれ独立したデータ領域を割り当てるとともに、これらのデータ領域に対するセーフティプログラムからのアクセスを容易化する環境が提供される。すなわち、実施の形態に係るセーフティシステムのＣＰＵユニット１００のメモリ１０４には、ある通信ユニット（通信部）が遣り取りするデータを保持するデータ領域と、別の通信ユニット（通信部）が遣り取りするデータを保持する別のデータ領域とが互いに独立して配置されている。以下、それぞれのデータ領域が独立して配置されている構成の一例について説明する。
【００５７】
図５は、本実施の形態に係るセーフティシステムのＣＰＵユニット１００におけるメモリ構造の一例を示す模式図である。図５には、ＣＰＵユニット１００に対して、４つの通信ユニット（上位通信ユニット１３０、フィールド通信ユニット１４０，１５０、バスマスタユニット１６０）が装着されている構成を示す。
【００５８】
ＣＰＵユニット１００のメモリ１０４には、それぞれの通信ユニットに対して割り当てられたＩＯデータ領域１０４１〜１４４５が設けられている。ＩＯデータ領域１０４１〜１４４５の各々には、対応付けられる通信ユニットを介して受信されるデータ（入力データ）および対応付けられる通信ユニットから送出されるデータ（出力データ）が都度格納および更新される。本明細書において、「ＩＯデータ」は、入力データおよび出力データの少なくとも一方を包含する。
【００５９】
図５に示す例においては、ＩＯデータ領域１０４１は上位通信ユニット１３０に割り当てられ、ＩＯデータ領域１０４２はフィールド通信ユニット１４０に割り当てられ、ＩＯデータ領域１０４３はフィールド通信ユニット１５０に割り当てられ、ＩＯデータ領域１０４４はバスマスタユニット１６０に割り当てられている。ここで、ＩＯデータ領域１０４５はリザーブ用である。
【００６０】
このようなＩＯデータ領域と各通信ユニットとの対応付けは、ＩＯデータ収集設定によって定義されるものであり、任意に設定することができる。すなわち、各通信ユニットに対して割り当てるＩＯデータ領域については、任意に設定することができる。
【００６１】
図６は、本実施の形態に係るセーフティシステムのＣＰＵユニット１００におけるＩＯデータ領域の割り当てを実現するためのユーザインターフェイス画面の一例を示す模式図である。図６に示すユーザインターフェイス画面５００は、ＣＰＵユニット１００に接続されるサポート装置（図示しない）などによって提供される。ユーザインターフェイス画面５００には、ＣＰＵユニット１００に接続される通信ユニットの種類表示５０１〜５０４が提供されており、種類表示５０１〜５０４のそれぞれに対して、いずれのＩＯデータ領域を割り当てるのかを示す選択ダイアログ５１１〜５１４が提供されている。
【００６２】
ユーザは、選択ダイアログ５１１〜５１４の各々を操作することで、各通信ユニットをいずれのＩＯデータ領域に割り当てるのかを設定する。このようなユーザインターフェイス画面５００を提供することで、任意の通信ユニットがＣＰＵユニット１００に装着された場合に、ユーザは、当該装着された通信ユニットに対して割り当てるＩＯデータ領域を容易に設定することができる。
【００６３】
このように、ＩＯデータ領域と各通信ユニットとの間の対応付けをＩＯデータ収集設定に沿ってフレキシブルに実行できることで、ＣＰＵユニット１００に対して、任意の種類および任意の数の通信ユニットを装着することができる。つまり、セーフティコントローラのコンポーネントとして、どのような通信ユニットを採用した場合であっても、ＣＰＵユニット１００においては、互いに通信ユニットの影響を受けることなく、各通信ユニットを介して遣り取りされるＩＯデータにアクセスすることができる。
【００６４】
より具体的には、プロセッサ１０２は、システムプログラム１０７およびセーフティプログラム１０８を実行することで、１または複数のシステムタスク１０２１、および、１または複数のアプリケーションタスク１０２２が所定周期または所定イベントで繰り返し実行される。これらのタスクがデータを参照するためのワークメモリ領域１０４６がメモリ１０４内に形成される。
【００６５】
ワークメモリ領域１０４６は、ＩＯデータ領域１０４１〜１４４５に対応付けられるＩＯ変数領域１０４７と、内部変数領域１０４８と、システム変数領域１０４９とを含む。メモリ１０４に配置されたワークメモリ領域１０４６は、プロセッサ１０２で実行されるセーフティプログラムが参照するためのメモリ領域に相当する。ワークメモリ領域１０４６は、それぞれの通信ユニット（通信部）に割り当てられたＩＯデータ領域１０４１〜１４４５にそれぞれ対応付けられるＩＯ変数領域１０４７を含む。
【００６６】
ＩＯ変数領域１０４７には、プロセッサ１０２で実行されるタスクが、ＩＯデータを参照し、あるいは、ＩＯデータを更新するための領域である。ＩＯ変数領域１０４７は、ＩＯ変数領域１〜４に区分されており、各区分された領域は、ＩＯデータ領域１０４１〜１４４５の対応する領域と同期するように管理される。ＩＯ変数領域１０４７の各区分された領域とＩＯデータ領域１０４１〜１４４５とは、変数割付設定によって定義される。
【００６７】
変数割付設定は、ＩＯデータ領域１０４１〜１４４５に格納されるデータ（値）を参照するための変数名および変数範囲などを定義する。このようなデータを参照するための変数名については、予め定められた条件の下、任意に設定できるようにしてもよい。なお、必ずしも参照するための変数を定義する必要はなく、ＩＯデータ領域１０４１〜１４４５のアドレスそのものを直接指定するようにしてもよい。
【００６８】
内部変数領域１０４８は、プロセッサ１０２でのタスクの実行に必要な各種変数を保持するための領域である。例えば、内部変数領域１０４８には、タスクの実行に必要な変数値（インスタンス値）などが格納される。
【００６９】
システム変数領域１０４９は、ＣＰＵユニット１００でのタスクの実行やＣＰＵユニット１００の各部の状態を示す値を保持するための領域である。例えば、ＣＰＵユニット１００が正常に動作しているのか否かを示すフラグ値などが格納される。
【００７０】
プロセッサ１０２において実行されるシステムプログラム１０７およびセーフティプログラム１０８は、ワークメモリ領域１０４６に格納される必要な値を参照し、処理結果などに応じて必要な値を更新する。
【００７１】
なお、図５には、共通のメモリ１０４内に複数のＩＯデータ領域をそれぞれ独立して配置した構成例を示すが、それぞれのＩＯデータ領域に対応した個別のメモリを用意してもよいし、あるいは、各通信ユニットとＩＯデータを遣り取りするための個別の回路を用意してもよい。
【００７２】
このように、本実施の形態に係るセーフティシステムによれば、通信ユニット毎にＩＯデータ領域および対応するＩＯ変数領域が用意されるので、任意の種類の通信ユニットを任意の数だけ装着した場合であっても、互いに独立した処理が可能となる。そのため、いずれかの通信ユニットで生じた障害などが他の通信ユニットへ影響を与えること防止できる。
【００７３】
＜Ｄ．伝送路での通信処理の管理＞
本実施の形態に係るセーフティシステムにおいては、ＣＰＵユニット１００に装着される各通信ユニット（上位通信ユニット１３０、フィールド通信ユニット１４０，１５０、バスマスタユニット１６０など）が各伝送路での通信処理を管理する。通信処理の管理は、各伝送路において発生し得る何らかの異常の検知、伝送されるデータの損失、送信先または送信元の装置またはユニットに生じ得る異常の検知などを含む。
【００７４】
各通信ユニットが対応する伝送路でデータを遣り取りする周期やタイミングなどについても、他の通信ユニットとは独立して実行可能になっている。つまり、同一のＣＰＵユニット１００に装着される複数の通信ユニット（通信部）は、互いに独立した周期またはイベントでデータを遣り取りすることができる。これは、各通信ユニットに対して予め割り当てられている専用のＩＯデータ領域１０４１〜１４４５を利用することで実現される。
【００７５】
このとき、それぞれの通信ユニット（通信部）が伝送路を介してデータを遣り取りするのに用いる通信プロコトルも互いに独立して定めることができる。つまり、それぞれの通信ユニット（通信部）は、互いに異なる通信プロトコルに従って、各々が対象とするセーフティコンポーネントとの間でデータを遣り取りするようにしてもよい。
【００７６】
一方で、ワークメモリ領域１０４６のＩＯ変数領域１０４７とＩＯデータ領域１０４１〜１４４５との間の同期処理（リフレッシュ処理）を一斉に実行することで、セーフティプログラム１０８の実行時における、ＩＯデータの時間的なずれなどを低減することもできる。もちろん、ＩＯ変数領域１０４７とＩＯデータ領域１０４１〜１４４５との間の同期処理（リフレッシュ処理）をそれぞれ独自のタイミングで実行してもよい。
【００７７】
上述したような、セーフティプログラムから見ると、フィールド側、すなわちセーフティＩＯユニット２００からの入力データがどのような通信経路でＣＰＵユニット１００に取り込まれているのか、および、ＣＰＵユニット１００で算出された出力データがどのような通信経路でセーフティＩＯユニット２００へ送信されているのかといったことは抽象化される。そのため、どのような伝送路および通信プロトコルを採用したとしても、同一のセーフティプログラムを採用することもできる。
【００７８】
つまり、本実施の形態に係るセーフティシステムにおいては、セーフティプログラムの汎用性および再利用性を高めることができる。
【００７９】
上述の図１〜図３に示すようなセーフティシステムの構成例において、例えば、フィールドネットワーク１４８として、ＥｔｈｅｒＣＡＴ（登録商標）に従うネットワークを採用し、フィールドネットワーク１５８として、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）に従うネットワークを採用することもできる。これらの２つの方式は、いずれもイーサネット（登録商標）をベースとした通信プロトコルであり、類似したハードウェアを採用することができる。このような異なる通信プロトコルを１台のＣＰＵユニット１００がサポートできることで、サポートしている通信方式が互いに異なるセーフティＩＯユニットを同一のセーフティコントローラで利用することができ、例えば、セーフティシステムを導入する際のコスト的な負担を軽減できる。
【００８０】
上述した実施の形態においては、伝送路を介して、ＣＰＵユニット１００とセーフティコンポーネントとの間でデータが遣り取りされる例を例示したが、伝送路を介してデータを遣り取りする対象がすべてセーフティコンポーネントである必要はない。例えば、同一のＣＰＵユニット１００に対して複数の通信ユニットが接続され、一つの通信ユニットは、対応する伝送路を介してセーフティコンポーネントとデータを遣り取りする一方で、別の通信ユニットは、対応する伝送路を介して通常の制御コンポーネント（例えば、各種操作スイッチや各種検出器など）とデータを遣り取りするような構成であってもよい。つまり、本実施の形態に係るセーフティシステムにおいては、それぞれの伝送路を介したデータの遣り取りを互いに独立に実施することができるので、それぞれの伝送路において、目的や特性の異なるデータを伝送させるようにしてもよい。
【００８１】
このように、本実施の形態によれば、対象の設備に応じたシステムを容易に構築することができる。
【００８２】
＜Ｅ．まとめ＞
本実施の形態によれば、ＣＰＵユニット１００に対して任意の種類の通信ユニットを任意の数だけ装着することができる。装着すべき通信ユニットの数および種類については、対象のセーフティシステムを設置する環境に応じて適宜選択できる。このような通信ユニットのフレキシブル性によって、例えば、バスマスタユニットから延びるローカルバスに接続可能な最大数を超えるセーフティＩＯユニットが必要な場合などには、適宜、任意のフィールドバスを採用するなどの対処が可能となる。逆に、バスマスタユニットから延びるローカルバスにより接続する方法では、十分な設置スペースを確保できる場合には、フィールドバスなどを用いることなく、ローカルバスのみで構成することでコストを低減できる。
【００８３】
このように、本実施の形態に係るセーフティシステムによれば、設置可能面積やコストなどの制約に応じて、フレキシブルなシステム構成を採用できる。
【００８４】
また、本実施の形態に係るセーフティシステムにおいては、ＣＰＵユニットに１または複数の通信ユニットを装着することが可能であるが、これらの通信ユニットは互いに干渉することなく自己の伝送路を介したデータの遣り取りが可能になっている。そのため、複数の通信ユニットおよびそれぞれに対応する複数の伝送路を含むシステム構成を採用した場合などにおいて、それぞれ異なる通信プロトコルを採用することもできるし、すべて同一の通信プロトコルを採用することもできる。さらに、ある通信ユニットを介してセーフティコンポーネントとの間でデータを遣り取りする一方で、別の通信ユニットを介して通常の制御に必要なデータを遣り取りするような使用形態も可能である。
【００８５】
このような互いに独立した通信ユニットを装着できるような構成を採用したことで、いずれかの通信ユニットまたはそれに接続される伝送路において何らかの異常が発生した場合などであっても、他の通信ユニットでのデータの遣り取りは継続されるので、セーフティシステムを含む全体システムの稼働率や運転率を向上させて、設備の安定稼働に寄与することができる。
【００８６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８７】
１，２，３  セーフティシステム、１１，１２  セーフティコントローラ、２１  リモートＩＯ装置、１００  ＣＰＵユニット、１０２  プロセッサ、１０４  メモリ、１０６  ストレージ、１０７  システムプログラム、１０８  セーフティプログラム、１０９  内部バス、１１０  電源ユニット、１３０  上位通信ユニット、１３１  受信回路、１３２，１４２，１５２，１６２  受信バッファ、１３３，１４３，１５３，１６３  送受信コントローラ、１３４，１４４，１５４，１６４  送信バッファ、１３５  送信回路、１３６  ネットワークハブ、１３８  上位ネットワーク、１４０，１５０  フィールド通信ユニット、１４８，１５８  フィールドネットワーク、１６０  バスマスタユニット、１６８  ローカルバス、２００  ＩＯユニット、３００  通信カプラユニット、４００  ＰＬＣ、１０２１  システムタスク、１０２２  アプリケーションタスク、１０４１，１０４２，１０４３，１０４４，１０４５，１４４５  データ領域、１０４６  ワークメモリ領域、１０４７  変数領域、１０４８  内部変数領域、１０４９  システム変数領域。
【図１】
0006747525.tif 000002
【図２】
0006747525.tif 000003
【図３】
0006747525.tif 000004
【図４】
0006747525.tif 000005
【図５】
0006747525.tif 000006
【図６】
0006747525.tif 000007