(57)【要約】【課題】  安全機器の診断アルゴリズムの設定を容易に行えること【解決手段】  スライスＩ／Ｏユニットは、異なる安全機器５，６にそれぞれ対応する複数の診断用アルゴリズムをＡＳＩＣ１３ａ，１４ａに格納し、その複数の診断用アルゴリズムのうち使用する診断用アルゴリズムを特定する特定情報をＡＳＩＣ内のレジスタ２１に記憶する。スライスＩ／Ｏユニットは、複数の診断用アルゴリズムのうち、レジスタに記憶された特定情報で特定される診断用アルゴリズムを用いて接続される安全機器の診断を行う。番号等の選択により、使用する診断アルゴリズムを選択できるので、設定ツール装置での設定処理が簡易となると共に、人為的なミスがなくなるので好ましい。【選択図】        図１
2010238223.tif 000002
【特許請求の範囲】
【請求項１】
入力機器や出力機器であるＩ／Ｏ機器を接続する接続端子と、そのＩ／Ｏ機器との間でＩ／Ｏ信号を入出力する制御部と、を備えた産業用コントローラ用のＩ／Ｏユニットであって、
異なるＩ／Ｏ機器にそれぞれ対応する複数の診断用アルゴリズムを記憶する記憶部と、
その複数の診断用アルゴリズムのうち使用する診断用アルゴリズムを特定する特定情報を記憶する特定情報記憶部と、
前記複数の診断用アルゴリズムのうち、前記特定情報記憶部に記憶された特定情報で特定される診断用アルゴリズムを用いて前記接続端子に接続されるＩ／Ｏ機器の診断を行う診断手段と、
前記診断手段の診断結果が異常な場合に異常時処理を実行する手段と、
を備えたＩ／Ｏユニット。
【請求項２】
前記接続端子は、複数有し、
前記特定情報は、接続端子ごとに設定することを特徴とする請求項１に記載のＩ／Ｏユニット。
【請求項３】
請求項１または２に記載のＩ／Ｏユニットと、ＣＰＵユニットと、を備えた産業用コントローラであって、
前記ＣＰＵユニットは、前記特定情報を記憶保持し、その記憶保持した特定情報を前記Ｉ／Ｏユニットに設定する機能を備えたことを特徴とする産業用コントローラ。
【請求項４】
前記ＣＰＵユニットは、連結されるべきＩ／Ｏユニットの識別情報と取付位置を特定するＩ／Ｏユニット接続情報を持ち、
前記ＣＰＵユニットは、前記特定情報を前記Ｉ／Ｏユニットに設定するに際し、前記Ｉ／Ｏユニット接続情報を参照し、正しいＩ／Ｏユニットであることを確認することを条件にその特定情報を送信する機能を備えた請求項３に記載の産業用コントローラ。
【請求項５】
前記ＣＰＵユニットは、前記特定情報が前記Ｉ／Ｏユニットに正常に送信できたことを条件にそのＩ／Ｏユニットを動作可能に設定する機能を備えたことを特徴する請求項３または４に記載の産業用コントローラ。
【請求項６】
前記Ｉ／Ｏユニットは、前記ＣＰＵユニットからの特定情報が正常に受信されたかどうかを判断し、正常受信していない場合には前記制御部が動作しない機能を備えたことを特徴とする請求項３〜５のいずれか１項に記載の産業用コントローラ。
【請求項７】
前記ＣＰＵユニットは、起動時、スイッチ押下、或いは前記ＣＰＵユニットに接続された設定ツール装置からの実行命令受信、のいずれかをトリガとして、前記Ｉ／Ｏユニットへの設定を開始する機能を備えたことを特徴とする請求項３〜６のいずれか１項に記載の産業用コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ／Ｏユニット並びに産業用コントローラに関するもので、特に、Ｉ／Ｏユニットに接続されるＩ／Ｏ機器の診断機能に関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）におけるネットワークシステムは、生産工場内に配備された産業ロボットその他の生産設備の入力機器及び出力機器の制御を司る１または複数のＰＬＣ（Programmable Logic Controller）と、そのＰＬＣにより動作が制御される機器とが、制御系のネットワークに接続される。それらＰＬＣと機器は、その制御系のネットワークを介して通信を行うことで、ＩＮデータ及びＯＵＴデータ（以下Ｉ／Ｏデータという）の送受を行い、生産設備を制御する。
【０００３】
より具体的には、ＰＬＣのＣＰＵユニットにおける制御は、入力機器のＯＮ信号またはＯＦＦ信号を入力し、入力したＯＮ／ＯＦＦ情報をユーザプログラムによって論理演算し、演算結果を出力機器へ出力する。その出力が出力機器に対する動作指示となって出力機器が動作することにより、生産設備を制御する。
【０００４】
入力機器や出力機器等のＩ／Ｏ機器についての診断を適宜のタイミングで行いたいという要求がある。係る診断は、通常、モニタ装置をＰＬＣに接続し、Ｉ／Ｏ機器のＩＯデータが格納されるＰＬＣのＩＯメモリをモニタリングすることで、Ｉ／Ｏ機器の状態を確認し、正常に動作しているか否かを判断するようにしている。
【０００５】
また、入力機器や出力機器側で診断するものとして、たとえば特許文献１に開示された診断システムがある。この診断システムは、設定ツール装置を用いて対象となる入力機器や出力機器に合わせた診断用アルゴリズムを作成し、その作成した診断用アルゴリズムを入力機器や出力機器にダウンロードして設定する。そして、実際の稼働時等において、入力機器等が診断用アルゴリズムを実行して異常の有無等を診断し、その診断結果をネットワーク経由で出力する。この診断用アルゴリズムは、診断用のアプリケーションプログラムと、そのアプリケーションプログラムを実行する際に使用するパラメータを備える。ここで行う診断は、たとえば、入力機器であるセンサがＯＮしてから、出力機器が動作するまでの時間や、出力機器の動作時間などを計測し、その計測結果が基準値以内に収まっているか否かを判断するものである。
【０００６】
一方、最近ではＰＬＣによる制御においても、フェールセーフ（安全）システムが導入されつつある。つまり、ＰＬＣや各機器自体はもちろん、それらを接続するネットワークも安全機能を組み込まれたもので構成される。ここで安全機能とは、非常停止スイッチが押下されたり、ライトカーテンなどのセンサが人（身体の一部）の進入を検出した場合等に作業者の安全を確保するとともに、たとえばＣＰＵその他の処理部等を二重化することによって、安全関連制御部に故障があってもフェールセーフが働き、システムが安全側になって、動作が停止するものである。
【０００７】
この種のセーフティ制御システムは、安全規格に準拠したセーフティコントローラ、セーフティリモートターミナル、Ｉ／Ｏ機器を含み、切削機械や切断機械やアーム付き製造機ロボット等とともに使用される。セーフティコントローラは、一般的なプログラマブルコントローラ（ＰＬＣ）に類似するロジック演算機能、入出力制御機能に加えて、安全面の自己診断機能を内蔵させることにより、その制御において高度な安全性および信頼性を確保したものである。セーフティコントローラは、自己診断結果により異常を検出した場合には、自己の制御が危険につながらないように、強制的に安全な制御を行うような機能（フェールセーフ機能）を備えている。セーフティリモートターミナルにおいても、自己診断機能を有していて、自己診断結果により異常を検出した場合には自己の制御が危険につながらない制御をするといった、フェールセーフ機能を備えている。それにより、セーフティ制御システムは、製造機ロボット等の動作が危険につながらないようにしている。
【０００８】
ここに言う安全は、より具体的には、規格化されている安全基準を含む意味である。安全規格には、たとえばＩＥＣ６１５０８やＥＮ規格などがある。ＩＥＣ６１５０８（プログラム可能な電子システムの機能安全に関する国際電気標準委員会）では、時間あたりの危険故障確率（失敗確率：Ｐｒｏｂａｂｉｌｉｔｙ  ｏｆ  Ｆａｉｌｕｒｅ  ｐｅｒ  Ｈｏｕｒ）を定義し、この確率によってＳＩＬのレベル（Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ）を４段階に分類している。また、ＥＮ規格では、機械のリスクの大きさを評価し、リスク低減策を講じるように義務づけされていて、ＩＳＯ１３８４９−１では５つの安全カテゴリにて規定されている。この明細書でいうセーフティコントローラ、セーフティ制御システム等は、このような安全基準に対応したものである。なお、セーフティ制御システムは「安全制御システム」と称されることもあり、セーフティコントローラは「安全コントローラ」や「安全制御装置」と称されることもある。
【０００９】
セーフティコントローラがビルディングブロックタイプのものであれば、各ユニットは、共通内部バスに接続され、セーフティコントローラ全体の制御を司るＣＰＵユニットとの間でバス通信をし、データをやり取りする。連結されたＩ／Ｏユニットも接続端子を備えていて、その接続端子に、安全用途の入力機器または安全用途の出力機器が接続されている。そして、セーフティコントローラは、セーフティリモートターミナルからネットワーク通信により入力した入力機器の入力信号、または連結されたＩ／Ｏユニットに接続された入力機器の入力信号を入力し、予め記憶されたロジックプログラムによってその入力信号のオンオフを論理演算する。その演算結果に基づく出力信号を、セーフティリモートターミナルやＩ／Ｏユニットへ出力をする。Ｉ／Ｏユニット等は、その出力信号を出力機器へ出力する。この一連の動作を繰り返し実行することにより、セーフティコントローラにより製造機ロボットを含むシステム全体が制御される。
【００１０】
なお、セーフティコントローラあるいはＣＰＵユニットにおけるロジック演算処理の対象となるロジックプログラムは、プログラマにより予め作成される。作成する際のプログラミング記述については、たとえば、ラダー、ファンクションブロックダイアグラム、シーケンシャル・ファンクション・チャート、ストラクチャード・テキスト、インストラクション・リストなどであってもよい。プログラミング言語でいうと、インタプリタ型言語、スクリプト言語、アセンブリ言語、高級言語、Ｊａｖａ(登録商標)言語と呼ばれるものであってもよい。このようなプログラミング言語で書かれたソースコードを、アセンブルやコンパイルなどの処理を行ってＣＰＵに実行させる。
【００１１】
また、Ｉ／Ｏユニットやセーフティリモートターミナルに接続された出力機器であるところのセーフティリレーやコンタクタは、製造機ロボットや加工機械、切断機械等につながれていて、リレーやコンタクタの主接点がオン中は製造機ロボット等が動作し、接点がオフ中は製造機ロボット等が停止するようになっている。よって、セーフティコントローラは、出力機器をオンオフ制御することで、最終的な制御対象の操作ロボット等の動作停止に関する制御をする。具体的な例をいうと、セーフティコントローラは、非常停止スイッチが正常に操作されたことを意味する信号が入力されると、制御対象が危険な動作をしないように出力機器（リレーやコンタクタ）をオフするか、安全側の状態に強制制御し、直ちに必要な安全処置を採る。セーフティコントローラは、非常停止スイッチまたは他の入力機器が異常有りの診断結果を入力すると、非常停止スイッチの操作有無または入力機器のオンオフ状態にかかわらずに、制御対象が危険な動作をしないようにその動作を停止するように出力機器をオフする。
【００１２】
このセーフティ制御システムは、非常時等に確実に安全状態に移行するようにするため、ＰＬＣに直接或いはネットワークを介して接続された入力機器や出力機器等の安全機器が正常であるか否かを診断する必要がある。係る診断を行うためには、上述した特許文献１に開示された診断アルゴリズムのように、単純に動作時間等を計測するだけではなく、各安全用途の入力機器並びに出力機器（以下、これらをまとめて「安全機器」と称する）に合わせた固有のより高度な診断アルゴリズムが必要となる。そのため、各安全機器に合わせた専用の診断用コントローラを用意し、ＰＬＣと安全機器との間に、その安全機器に合わせた診断用コントローラを配置する構成を採る。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００５−２４３００８
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１に開示された発明は、診断アルゴリズムが入力機器や出力機器に保存されているため、それら入力機器等が故障し、交換した場合には、再度設定ツール装置から交換後の入力機器等に対して診断アルゴリズムをダウンロードする必要があり、煩雑であるという課題がある。
【００１５】
さらに、診断アルゴリズムを設定ツール装置で作成する場合、柔軟な診断アルゴリズムを作成するには有効であるが、診断アルゴリズムおよびパラメータ設定数が多大なものとなった場合、煩雑であるばかりでなく、パラメータの設定ミス等の人為的なミスにより有効な診断が行えないおそれもある。さらに、特に安全機器の診断アルゴリズムは、その特性上、パラメータの設定を含む診断アルゴリズムの作成が非常に煩雑であり、人為的なミスを考慮すると、却って安全状態を確保できなくなるおそれもあるといった課題がある。
【００１６】
さらにまた、上述したセーフティ制御システムの特有の課題として、安全機器ごとにその安全機器を診断する専用コントローラを用意する必要があるのとともに、安全機器やＰＬＣとは別に取り付ける必要がある。よって、異なる複数種の専用コントローラの製造や保管をすることの煩雑さと、現場でセーフティ制御システムを構築する場合の作業工程の増加並びに専用コントローラを設置する場所の確保をする必要がある。
【課題を解決するための手段】
【００１７】
上記の課題を解決するために、本発明のＩ／Ｏユニットは、（１）入力機器や出力機器であるＩ／Ｏ機器を接続する接続端子と、そのＩ／Ｏ機器との間でＩ／Ｏ信号を入出力する制御部と、を備えた産業用コントローラ用のＩ／Ｏユニットであって、異なるＩ／Ｏ機器にそれぞれ対応する複数の診断用アルゴリズムを記憶する記憶部と、その複数の診断用アルゴリズムのうち使用する診断用アルゴリズムを特定する特定情報を記憶する特定情報記憶部と、複数の診断用アルゴリズムのうち、特定情報記憶部に記憶された特定情報で特定される診断用アルゴリズムを用いて接続端子に接続されるＩ／Ｏ機器の診断を行う診断手段と、診断手段の診断結果が異常な場合に異常時処理を実行する手段と、を備えた。（２）接続端子は、複数有し、特定情報は、接続端子ごとに設定するとよい。
【００１８】
接続端子は、実施形態では「入出力端子１３ｃ，１４ｃ」に対応する。特定情報記憶部は、実施形態では「レジスタ２１」に対応する。記憶部は、実施形態では「ＡＳＩＣ１３ａ，１４ａ」に対応する。異常時処理は、たとえば、自ら動作を停止したり、ＣＰＵユニット，に異常を通知したり、異常が生じたことを記憶したり、セーフティ制御システムにおける異常時処理をするなど、各種の処理がある。特定情報は、実施形態では、「診断アルゴリズム設定情報」に対応する。産業用コントローラは、実施形態では、セーフティに対応したセーフティコントローラにより実現されているが、一般のプログラマブルコントローラ（ＰＬＣ）や、ＰＡＣ（Programmable Automation Controller）と称されるパーソナルコンピュータが持つ高速性や高機能や機能拡張性に加え、ＰＬＣが持つ高精度や耐久性を備えたコントローラ等の他、各種のコントローラがある。Ｉ／Ｏユニットは、実施形態のスライスＩ／Ｏユニット（スライスＩｎユニット１３，スライスＯｕｔユニット１４）に対応する。
【００１９】
Ｉ／Ｏユニットに複数の診断アルゴリズムを持たせ、いずれを使用するかは特定情報により指定するようにしたので、設定ツールでの設定を簡易にすることができる。この診断アルゴリズムは、設定ツール装置等を用いるのではなく、元々記憶保持させておくことで、故障等により同種のＩ／Ｏユニットに交換する場合にも、特定情報を設定するだけでよいので診断機能を動作可能にするための設定作業が簡易に行える。一つのＩ／Ｏユニットに複数の診断アルゴリズムを備えているので、セーフティ制御システムにおいて安全機器（Ｉ／Ｏ機器）ごとに必要となっていた専用コントローラを不要とさせ、単一のＩ／Ｏユニットで複数の安全機器に対応できる。診断アルゴリズムをＩ／Ｏユニットに保持させているので、故障に伴い同種のＩ／Ｏ機器に交換をしてもそのまま対応できる。
【００２０】
（３）本発明の産業用コントローラは、上記の（１）または（２）に記載のＩ／Ｏユニットと、ＣＰＵユニットと、を備え、ＣＰＵユニットは、特定情報を記憶保持し、その記憶保持した特定情報をＩ／Ｏユニットに設定する機能を備えた。このようにすると、Ｉ／Ｏユニットの故障発生に伴い新たなＩ／Ｏユニットに交換した際に、ＣＰＵユニットがＩ／Ｏユニットに対して特定情報の設定を行うことができるので、設定ツール装置を用いること無く簡単にＩ／Ｏユニットを故障前の状態と同じ設定にすることができる。
【００２１】
（４）ＣＰＵユニットは、連結されるべきＩ／Ｏユニットの識別情報と取付位置を特定するＩ／Ｏユニット接続情報を持ち、ＣＰＵユニットは、特定情報を前記Ｉ／Ｏユニットに送信するに際し、Ｉ／Ｏユニット接続情報を参照し、正しいＩ／Ｏユニットであることを確認することを条件にその特定情報を送信する機能を備えるとよい。このようにすることで、異なるＩ／Ｏユニットに対して誤設定をすることを可及的に抑制できる。
【００２２】
（５）ＣＰＵユニットは、特定情報がＩ／Ｏユニットに正常に送信できたことを条件にそのＩ／Ｏユニットを動作可能に設定する機能を備えるとよい。正常に送信できたか否かの判断は、実施形態では、チェックサム値が一致するか否かにより判断しているが、他の方法を用いても良い。これにより、診断アルゴリズムが正しく設定されない場合には、Ｉ／Ｏユニットが動作しないので安全である。
【００２３】
（６）Ｉ／Ｏユニットは、ＣＰＵユニットからの特定情報が正常に受信されたかどうかを判断し、正常受信していない場合には制御部が動作しない機能を備えるとよい。実施形態では、チェックサム値が一致するか否かにより判断しているが、他の方法を用いても良い。これにより、診断アルゴリズムが正しく設定されない場合には、Ｉ／Ｏユニットが動作しないので安全である。
【００２４】
（７）ＣＰＵユニットは、起動時、スイッチ押下、或いはそのＣＰＵユニットに接続された設定ツール装置からの実行命令受信、のいずれかをトリガとして、Ｉ／Ｏユニットへの設定を開始する機能を備えるとよい。
【発明の効果】
【００２５】
本発明は、単一のＩ／Ｏユニットで複数の安全機器を接続できるため、メンテナンス部材を低減することが可能である。Ｉ／Ｏユニット故障時に設定ツールからの再設定が必要なく、変更が可能となるためシステム全体のダウンタイムの軽減が可能となる。セーフティ制御システムのアプリケーションにおいては、安全機器と診断アルゴリズムを含め、その安全性が保証される。すなわち、Ｉ／Ｏユニットに既に保有されている診断アルゴリズムは、安全性が保証されているものとすることで、番号等の特定情報を指定するだけでよく、診断アルゴリズムの設計に伴い安全性の認証を行う必要がない。
【図面の簡単な説明】
【００２６】
【図１】本発明に係るプログラマブルコントローラの一形態であるセーフティコントローラの好適な一実施形態を示す図である。
【図２】スライスＩ／Ｏユニットの内部構成を示す図である。
【図３】ＣＰＵユニットの内部構成を示す図である。
【図４】不揮発性メモリ内のデータ構造の一例を示す図である。
【図５】不揮発性メモリへの設定データの格納処理する機能を示すフローチャートである。
【図６】スライスＩ／Ｏユニットへの設定処理する機能を示すフローチャートである。
【発明を実施するための形態】
【００２７】
図１は、本発明に係るプログラマブルコントローラの一形態であるセーフティコントローラ１０の好適な一実施形態を示している。セーフティコントローラ１０は、一般的なプログラマブルコントローラ（ＰＬＣ）に類似するロジック演算機能、入出力制御機能に加えて、安全面の自己診断機能を内蔵させることにより、その制御において高度な安全性および信頼性を確保したものである。セーフティコントローラは、自己診断結果により異常を検出した場合には、自己の制御が危険につながらないように、強制的に安全な制御を行うような機能（フェールセーフ機能）を備えている。
【００２８】
このセーフティコントローラ１０は、ビルディングブロックタイプであり、図１では、通信ユニット１１と、ＣＰＵユニット１２と、スライスＩｎユニット１３と、スライスＯｕｔユニット１４と、エンドユニット１５を連結した構成を示しているが、他の各種のユニットが連結されることを妨げない。また、各ユニットの設置個数も任意である。各ユニットは内部バス（ＰＬＣバス）１０ａを介して接続され、セーフティコントローラ全体の制御を司るＣＰＵユニット１２との間でバス通信をし、データをやり取りする。
【００２９】
通信ユニット１１は、フィールドバス２に接続され、フィールドバス２に接続された外部機器・装置と通信する。本発明との関係でいうと、フィールドバス２に接続された設定ツール装置１と通信する機能を有する。そして、通信ユニット１１のＭＰＵ１１ａは、上記の設定ツール装置１との間のデータの送受の制御と、設定ツール装置１から受け取ったデータをＣＰＵユニット１２に送る機能を備える。もちろん、ＭＰＵ１１ａは、通信ユニット１１としての通常の機能を実行する。
【００３０】
スライスＩｎユニット１３や、スライスＯｕｔユニット１４等のスライスＩ／Ｏユニットは、Ｉ／Ｏユニットとしての処理を実行するＡＳＩＣ１３ａ，１４ａを備えている。このＡＳＩＣ１３ａ，１４ａにおける処理は、接続された安全機器（安全入力機器５，安全出力機器６）との間でＩ／Ｏ信号の入出力を行ったり、内部バス１０ａを介してＣＰＵユニット１２との間でＩ／Ｏデータの送受等を行ったりする。このスライスＩ／Ｏユニットは、セーフティ対応であるため、ＡＳＩＣ１３ａ，１４ａは、二重化されている。図示省略するが、ＡＳＩＣで対応できない演算処理を実行するためのＭＰＵや、そのＭＰＵが演算実行する際にワークメモリとして使用するＲＡＭその他のメモリを備えてもよい。
【００３１】
さらに、スライスＩｎユニット１３は、入力回路１３ｂを介して安全入力機器５と接続され、安全入力機器５からのＩＮ信号は、入力回路１３ｂを介してＡＳＩＣ１３ａに取り込まれる。また、スライスＯｕｔユニット１４は、出力回路１４ｂを介して安全出力機器６と接続され、ＡＳＩＣ１４ａから出力されるＯＵＴ信号は、出力回路１４ｂを介して安全出力機器６に与えられる。図２に示すように、安全機器５，６は、各ユニット１３，１４の所定位置に設けられた入出力端子１３ｃ，１４ｃに接続され、入出力回路１３ｂ，１４ｂを介してＡＳＩＣ１３ａ，１４ａとＩ／Ｏ信号の送受を行う。
【００３２】
そして、本発明では、ＡＳＩＣ１３ａ，１４ａに、予め複数種（Ｎ個）の診断アルゴリズム２０を記憶保持させておく。この複数の診断アルゴリズム２０は、接続可能な各種の安全機器のそれぞれに対応したものである。そして、本実形態では、複数の診断アルゴリズム２０は、番号で一意に特定される。つまり、ＡＳＩＣ１３ａ，１４ａは、内部のレジスタ２１に格納された番号で特定される診断アルゴリズムを適宜のタイミングで実行し、接続された安全機器の診断を行う機能も備える。そして、スライスＩ／Ｏユニットは、診断した結果、異常と判断した場合、予め定めた異常時処理を実行する。この異常時処理は、自ら動作を停止したり、ＣＰＵユニット１２に異常を通知したり、異常が生じたことを記憶したりするものがある。この異常時処理を実行する機能は、ＡＳＩＣに組み込んでいても良いし、別途実装するＭＰＵにより行っても良い。
【００３３】
このように、本実施形態のスライスＩ／Ｏユニットは、複数の安全機器の診断機能を持つとともに、選択型で使用する診断アルゴリズムを指定するため、複雑な設定は無い。そして、ＣＰＵユニット１２からのパラメータ設定に応じ、指定された診断機能の動作を行うため、人手が介在せず、人為的な設定ミスによる障害が発生しない。
【００３４】
ＣＰＵユニット１２は、図３に示すように、通信ＭＰＵ１２ａと、スライスＭＰＵ１２ｂと、通信ユニットインタフェース１２ｃと、不揮発性メモリ１２ｄと、ＵＳＢ制御部１２ｅと、を備えている。セーフティ対応であるため、通信ＭＰＵ１２ａ，スライスＭＰＵ１２ｂ並びに不揮発性メモリ１２ｄは二重化されている。
【００３５】
通信ユニットインタフェース１２ｃは、通信ユニット１１との間でデータの送受をするためのインタフェースである。通信ＭＰＵ１２ａは、通信ユニット１１のＭＰＵ１１ａとの間でデータの送受を行うと共に、通信ユニット１１を経由して受け取った設定ツール装置１からの設定データをＥＥＰＲＯＭ等の不揮発性メモリ１２ｄに格納する機能を有する。また、ＣＰＵユニット１２は、ＵＳＢ制御部１２ｅを備えているので、ＵＳＢ接続により設定ツール装置１と直接接続し、通信ユニット１１を経由することなく設定ツール装置１からの設定データを取得し、不揮発性メモリ１２ｄに格納することもできる。
【００３６】
スライスＭＰＵ１２ｂは、スライスＩｎユニット１３やスライスＯｕｔユニット１４との間でテータを送受したり、取得したデータに基づいて各種の演算処理を実行したりする機能を備える。本発明との関係で言うと、スライスＭＰＵ１２ｂは、診断アルゴリズムを実行するための設定データ（使用する診断アルゴリズムを特定する番号）をスライスＩｎユニット１３やスライスＯｕｔユニット１４のレジスタ２１に設定する。また、スライスＭＰＵ１２ｂは、スライスＩｎユニット１３に接続された安全入力機器５の入力信号を入力し、予め記憶されたロジックプログラムによってその入力信号のオンオフを論理演算して出力信号を求め、その演算結果に基づく出力信号を、スライスＯｕｔユニット１４へ出力をする。
【００３７】
不揮発性メモリ１２ｄは、図４に示すＣＰＵユニット設定データが格納される。このＣＰＵユニット設定データは、設定ツール装置１からダウンロードされて格納されるものである。ＣＰＵユニット設定データは、ＣＰＵユニット設定情報と、スライスＩ／Ｏユニット接続情報と、スライスＩ／Ｏユニット設定情報と、を備える。
【００３８】
ＣＰＵユニット設定情報は、ＣＰＵユニット自身の設定パラメータである。スライスＩ／Ｏユニット接続情報は、接続されているスライスＩ／Ｏユニットを特定するための識別情報であり、取り付けられている場所を特定するユニット番号と、そのスライスＩ／Ｏユニットの種別（識別情報：ＩＤ）を含む。ＣＰＵユニット１２（スライスＭＰＵ１２ｂ）は、実際に連結されたスライスＩ／Ｏユニットの識別情報を取得し、取得した識別情報とスライスＩ／Ｏユニット接続情報とを比較し、正しい位置に正しいスライスＩ／Ｏユニットが装着されているかを確認することができる。そして、設定情報と異なるスライスＩ／Ｏユニットが装着されている場合には、ＣＰＵユニット１２は、そのスライスＩ／Ｏユニットを動作禁止にする。つまり、ＣＰＵユニット１２は、スライスＩ／Ｏユニットの動作をＯＮ／ＯＦＦする機能を持つ。
【００３９】
スライスＩ／Ｏユニット設定情報は、各スライスＩ／Ｏユニットにおける入出力端子に接続される安全機器に対して使用する診断アルゴリズムを特定する特定情報たる診断アルゴリズム設定情報を含む。すなわち、スライスＩ／Ｏユニットには、複数の安全機器５，６を接続することができ、特に、異なる種類の安全機器を装着した場合には、安全機器ごとに使用する診断アルゴリズムも異なる。そこで、スライスＩ／Ｏユニットの入出力端子ごとに、使用する診断アルゴリズムを設定する。この診断アルゴリズム設定情報は、具体的には、ＡＳＩＣに格納された複数の診断アルゴリズムのうちの一つを特定する番号である。ＣＰＵユニット１２（スライスＭＰＵ１２ｂ）は、このスライスＩ／Ｏユニット設定情報に従い、各スライスＩ／ＯユニットのＡＳＩＣ１３ａ，１４ａのレジスタ２１に、使用する診断アルゴリズムを特定する情報を設定する。これにより、レジスタ２１には、入出力端子ごとに使用する診断アルゴリズを特定する情報が格納される。
【００４０】
なお、このＣＰＵユニット１２は、図示省略するが、ＭＰＵで実行するプログラムを格納するシステムＲＯＭやユーザプログラム記憶部や、演算実行時にワークメモリやＩ／Ｏメモリとして機能するＲＡＭなども備えている。
【００４１】
次に、図５を参照しながら不揮発性メモリ１２ｄへの設定データの格納処理（設定ツール装置１からＣＰＵユニット１２への設定処理）手順を説明しつつ、設定ツール装置１並びにＣＰＵユニット１２の機能を説明する。
【００４２】
ユーザは、設定ツール装置１を操作し、設定ツール装置１からＣＰＵユニット１２に対して開始コマンドを送信させる。ＣＰＵユニット１２は、設定ツール装置１から送られてきたコンフィグレーション開始コマンドを受信すると（Ｓ１）、それに対するレスポンスを作成し送信する（Ｓ２）。
【００４３】
設定ツール装置１は、そのＣＰＵユニット１２からのレスポンスを受信すると、ＣＰＵユニット設定情報を送信する。ＣＰＵユニット１２は、設定ツール装置１から送られてきた、ＣＰＵユニット設定情報を受信すると（Ｓ３）、それに対するレスポンスを作成し送信する（Ｓ４）。なお、受信した、ＣＰＵユニット設定情報は、バッファ等に一時的に記憶保持する。
【００４４】
設定ツール装置１は、そのＣＰＵユニット１２からのレスポンスを受信すると、スライスＩ／Ｏユニット接続情報を送信する。ＣＰＵユニット１２は、設定ツール装置１から送られてきた、スライスＩ／Ｏユニット接続情報を受信すると（Ｓ５）、それに対するレスポンスを作成し送信する（Ｓ６）。なお、受信した、スライスＩ／Ｏユニット接続情報は、バッファ等に一時的に記憶保持する。
【００４５】
設定ツール装置１は、そのＣＰＵユニット１２からのレスポンスを受信すると、スライスユニット設定情報或いは送信済みの情報についてのチェックサムコマンドを送信するので、ＣＰＵユニット１２は、受信コマンドを受信するのを待ち（Ｓ７）、受信したコマンドがスライスＩ／Ｏユニット設定情報の場合には、それに対するレスポンスを作成し送信する（Ｓ８）。なお、受信した、スライスＩ／Ｏユニット設定情報は、バッファ等に一時的に記憶保持する。
【００４６】
また、受信したコマンドが、チェックサムコマンドの場合、ＣＰＵユニット１２は、一時記憶保持している受信した設定情報より、チェックサム値を求め（Ｓ９）、設定ツール装置１から受信したチェックサム値と比較する（Ｓ１０）。不一致の場合には、ＣＰＵユニット１２は、設定ツール装置１に向けて異常レスポンスを送信し、処理を終了する（Ｓ１２）。一方、処理ステップＳ１０の分岐判断で、チェックサムが一致した場合、ＣＰＵユニット１２は、算出したチェックサム値を設定ツール装置１へ向けて送信する（Ｓ１０）。
【００４７】
設定ツール装置１は、自己が求めて先にＣＰＵユニット１２に対して送信したチェックサム値（送信チェックサム値）と、ＣＰＵユニット１２から送られてきたチェックサム値（受信チェックサム値）とを比較し（Ｓ１３）、不一致の場合には処理を終了する。一致している場合には、設定ツール装置１は、データ一致確認コマンドを送信する。
【００４８】
ＣＰＵユニット１２は、そのデータ一致確認コマンドを受信したならば（Ｓ１４）、一時記憶していた各種の情報を、不揮発性メモリ１２ｄに保存し（Ｓ１５）、レスポンスを送信後、処理を終了する（Ｓ１６）。なお、設定ツール装置１でのチェックサム値の比較結果が不一致の場合に、図示のように、設定ツール装置１側がそのまま終了するものとすると、ＣＰＵユニット１２は、一定時間経過してもデータ一致確認コマンドを受信しなかった場合、一時記憶していたデータを破棄し、不揮発性メモリ１２ｄへの保存をしない処理をする。また、処理ステップＳ１３の分岐判断で不一致となった場合に、設定ツール装置１がデータ不一致コマンドを送信するようにし、ＣＰＵユニット１２は、そのデータ不一致コマンドを受信した場には一時記憶していたデータを破棄し、不揮発性メモリ１２ｄへの保存をしない処理をするようにしてもよい。
【００４９】
このように、チェックサム値によるチェックも、ＣＰＵユニット１２側と設定ツール装置１側でそれぞれ行い、両方で一致した場合に正規に保存するようにしたので、不揮発性メモリ１２ｄに格納する情報の正確性が向上する。
【００５０】
次に、図６を参照しながら、不揮発性メモリ１２ｄに格納されたスライスＩ／Ｏユニット設定情報をスライスＩ／Ｏユニットに格納する処理（ＣＰＵユニット１２からスライスＩ／Ｏユニットへの設定処理）手順を説明しつつ、設定ツール装置１並びにＣＰＵユニット１２の機能を説明する。
【００５１】
ＣＰＵユニット１２は、起動時、スイッチ押下、或いは設定ツール装置からの実行命令受信などのいずれかのトリガを機に、保存されている設定パラメータをスライスＩ／Ｏユニットに送信する機能を持つ。すなわち、係るトリガが発生すると（Ｓ２１）、ＣＰＵユニット１２は、不揮発性メモリ１２ｄに格納されたスライスＩ／Ｏユニット接続情報並びにスライスＩ／Ｏユニット設定情報を読み出す（Ｓ２２）。
【００５２】
ＣＰＵユニット１２は、実際に接続されているスライスＩ／Ｏユニットの接続位置と認識情報を取得し、読み出したスライスＩ／Ｏユニット接続情報と比較する（Ｓ２３）。そして、比較結果が不一致な場合には処理を終了し、一致している場合には、ＣＰＵユニット１２は、読み出したスライスＩ／Ｏユニット接続情報に従って、所定のスライスＩ／Ｏユニットに対し対応するスライスＩ／Ｏユニット設定情報を送信する（Ｓ２４）。なお、所定のスライスＩ／Ｏユニットは、たとえばユニット番号が小さいものから順に対象とする。もちろん、それ以外の順番で送信するのを妨げない。
【００５３】
スライスＩ／Ｏユニットは、スライスＩ／Ｏユニット設定情報を受信すると、レスポンスを返すので、ＣＰＵユニット１２は、当該レスポンスの受信を待つ。そして、ＣＰＵユニット１２は、当該レスポンスを受信したならば（Ｓ２５）、チェックサム値を送信する（Ｓ２６）。
【００５４】
チェックサム値を受信したスライスＩ／Ｏユニットは、先に受信したスライスＩ／Ｏユニット設定情報からチェックサム値を算出し（Ｓ２７）、受信したチェックサム値と比較する（Ｓ２８）。不一致の場合には、スライスＩ／Ｏユニットは、ＣＰＵユニット１２に向けて異常レスポンスを送信し、一致している場合には算出したチェックサム値をＣＰＵユニット１２へ向けて送信する。
【００５５】
そこで、ＣＰＵユニット１２は、異常レスポンスを受信した場合（Ｓ３０）、処理対象のスライスＩ／Ｏユニット設定成功フラグをＯＦＦにする（Ｓ３３）。一方、スライスＩ／Ｏユニットから送られてきたチェックサム値を受信した場合（Ｓ２９）、ＣＰＵユニット１２は自己が求め先に送信したチェックサム値（送信チェックサム値）と、スライスＩ／Ｏユニットから送られてきたチェックサム値（受信チェックサム値）とを比較する（Ｓ３１）。そして、一致した場合、ＣＰＵユニット１２は、処理対象のスライスＩ／Ｏユニット設定成功フラグをＯＮにする（Ｓ３２）。また、不一致の場合、ＣＰＵユニット１２は、処理対象のスライスＩ／Ｏユニット設定成功フラグをＯＦＦにする（Ｓ３３）。
【００５６】
そして、すべてのスライスＩ／Ｏユニットに対する設定が完了したか否かを判断し（Ｓ３４）、未設定のものがある場合には処理ステップＳ２４に戻り、次のスライスＩ／Ｏユニットに対する送信を行う。そして、すべてのスライスＩ／Ｏユニットに対する設定が完了したならば、ＣＰＵユニット１２は、設定成功フラグがＯＮになっているスライスＩ／Ｏユニットに起動処理を行う（Ｓ３５）。
【００５７】
これにより、スライスＩ／Ｏユニット接続情報の通りに正しいスライスＩ／Ｏユニットであって、スライスＩ／Ｏユニット設定情報通りに正しい診断アルゴリズの番号がレジスタ２１に登録されたスライスＩ／Ｏユニットのみが起動されるので、安全に動作することになる。なお、ＣＰＵユニット１２から送られてきたスライスＩ／Ｏユニット設定情報（使用する診断アルゴリズムを特定する番号）をレジスタ２１に書き込むタイミングは、スライスＩ／Ｏユニットにおいてチェックサム値が一致していると判断したことを条件とするとよい。また、係る一致判断を行う前に、ＣＰＵユニット１２から受信するとともにレジスタ２１に書き込んでも良い。仮に受信に伴いレジスタ２１に格納したとしても、最終的にチェックサム値がＣＰＵユニット１２側とスライスＩ／Ｏユニット側の両方とも一致していないと、処理ステップＳ３５でスライスＩ／Ｏユニットは起動しないので、先にレジスタに登録してもさほど問題は生じない。
【００５８】
本実施形態によれば、各スライスＩ／Ｏユニットで使用する診断アルゴリズムを特定する情報（スライスＩ／Ｏユニット設定情報）は、ＣＰＵユニット１２の不揮発性メモリ１２ｄに保存される。従って、仮にスライスＩ／Ｏユニットを交換したとしても、同種のスライスＩ／Ｏユニットを装着したならば、ＣＰＵユニットから新たに装着したスライスＩ／Ｏユニットに対して使用する診断アルゴリズムを特定する設定情報を登録することができる。従って、その設定情報の登録の際に、人為的なミスを生じるおそれが無く、セーフティの環境を確実かつ簡単に保持することができる。
【００５９】
また、安全機器の種類を交換する場合、レジスタに格納される設定情報を新たな安全機器に対応する診断アルゴリズムを特定する設定情報（番号）を書き換えるだけでよく、設定が簡単に行える。
【００６０】
なお、上述した実施形態では、セーフティ対応のセーフティコントローラに適用した例を示したが、本発明は、これに限ることはなく、通常のプログラマブルコントローラ（Ｉ／Ｏユニット）に適用しても良いのはもちろんである。
【符号の説明】
【００６１】
１０  セーフティコントローラ
１２  ＣＰＵユニット
１３  スライスＩｎユニット（スライスＩ／Ｏユニット）
１３ａ  ＡＳＩＣ
１４  スライスＯｕｔユニット（スライスＩ／Ｏユニット）
１４ａ  ＡＳＩＣ
２０  診断アルゴリズム
２１  レジスタ
【図１】
2010238223.tif 000003
【図２】
2010238223.tif 000004
【図３】
2010238223.tif 000005
【図４】
2010238223.tif 000006
【図５】
2010238223.tif 000007
【図６】
2010238223.tif 000008