(57)【特許請求の範囲】
【請求項１】
バスを用いた制御システム（１０）において、通信媒体（２６）によって接続された複数のバス加入者（１４，１６，１８，２０）に加入者アドレス（４８）を割り当てる方法であって、
中央ステーション（１２）から前記バス加入者（１４，１６，１８，２０）に論理的な加入者アドレス（４８）を割り当てるステップ（ａ）と、前記割り当てられた論理的な加入者アドレス（４８）を検証するステップ（ｂ）とを含み、
前記検証するステップ（ｂ）は、
前記バス加入者（１４，１６，１８，２０）が、所定の開始値（６８）から始まり、前記加入者アドレス（４８）ごとにそれぞれ異なるオペランドを使用する所定の数学的演算（７８，８２）を含む処理（７８〜８６）を行って、第１チェック値（ＩＶn+1）を計算するステップ（ｂ１）と、
前記中央ステーション（１２）が、前記第１チェック値（ＩＶn+1）と比較するために、前記バス加入者（１４，１６，１８，２０）とは独立して第２チェック値（ＣＶ）を計算するステップ（ｂ２）とを含む、方法。
【請求項２】
各バス加入者（１４，１６，１８，２０）は、前記ステップ（ｂ１）を実行するとき、前記バス加入者に割り当てられた前記各加入者アドレス（４８）が前記オペランドを形成する、請求項１に記載の方法。
【請求項３】
前記中央ステーション（１２）は、前記バス加入者（１４，１６，１８，２０）と同じ数学的演算、同じ開始値および同じオペランドを使用して、前記第２チェック値（ＣＶ）を計算する、請求項１または請求項２に記載の方法。
【請求項４】
前記中央ステーション（１２）は前記通信媒体（２６）によって前記バス加入者（１４，１６，１８，２０）に接続されて、前記通信媒体（２６）を介して前記第１チェック値（ＩＶn+1）を取得する、請求項１に記載の方法。
【請求項５】
前記中央ステーション（１２）はフェールセーフ設計である、請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
前記バス加入者（１４，１６，１８，２０）は前記通信媒体（２６）によって論理的な順序で接続されており、前記論理的な順序は第１バス加入者（１４）、少なくとも１つの第２バス加入者（１６，１８）および最後のバス加入者（２０）を有する、請求項１から請求項５のいずれか１項に記載の方法。
【請求項７】
前記第１バス加入者（１４）は、第１中間値（ＩＶn）を計算するために、前記開始値および第１オペランドを使用する第１演算ステップ（７８）を実行し、前記第１バス加入者（１４）は前記第１中間値（ＩＶn）を前記第２バス加入者（１６，１８）に送信し、前記第２バス加入者（１６，１８）は、第２中間値（ＩＶn+1）を計算するために前記第１中間値および第２オペランドが使用される第２演算ステップ（８２）を実行する、請求項６に記載の方法。
【請求項８】
前記最後のバス加入者（２０）は、最後の演算ステップを使用して前記第１チェック値（ＩＶn+1）を計算する、請求項７に記載の方法。
【請求項９】
前記最後のバス加入者（２０）は最後の演算ステップを使用して、別の演算ステップで前記第１チェック値を計算するために使用される別の中間値を計算する、請求項７に記載の方法。
【請求項１０】
前記演算ステップは所定の演算ステップの順序で実行され、前記第１チェック値（ＩＶn+1）は前記所定の演算ステップの順序によって変わる、請求項８に記載の方法。
【請求項１１】
前記数学的演算はチェックサム計算である、請求項１から請求項１０のいずれか１項に記載の方法。
【請求項１２】
前記数学的演算はＣＲＣチェックサム計算である、請求項１１に記載の方法。
【請求項１３】
前記制御システム（１０）は検証の成功後に稼働され（９４）、前記第１チェック値は前記制御システム（１０）の動作中に繰り返し計算される（９６）、請求項１から請求項１２のいずれか１項に記載の方法。
【請求項１４】
前記オペランドは、前記バス加入者（１４，１６，１８，２０）のデバイス固有のプロパティ（５０）をさらに表す、請求項１から請求項１３のいずれか１項に記載の方法。
【請求項１５】
前記第１チェック値（ＩＶn+1）は、前記通信媒体（２６）によって接続されている前記バス加入者（１４，１６，１８，２０）の数よりも少ないまたは多い複数のバス加入者（１４，１６，１８，２０）について計算される、請求項１から請求項１４のいずれか１項に記載の方法。
【請求項１６】
通信手段（２６）によって互いに接続されており、割り当てられた論理的な加入者アドレス（４８）を有する複数のバス加入者（１４，１６，１８，２０）と、前記割り当てられた論理的な加入者アドレス（４８）を検証するように設計されているステーション（１２）とを備える、技術プロセスの自動化制御のための制御システムであって、
前記バス加入者（１４，１６，１８，２０）は、所定の開始値（６８）から始まり、前記加入者アドレス（４８）ごとにそれぞれ異なるオペランドを使用する所定の数学的演算（７８，８２）を含む複数の処理（７８〜８６）を行って、第１チェック値（ＩＶn+1）を計算するように設計されており、
前記ステーション（１２）は、前記割り当てられた論理的な加入者アドレス（４８）を検証するために、前記バス加入者（１４，１６，１８，２０）とは独立して第２チェック値（ＣＶ）を計算し、前記第１チェック値（ＩＶn+1）と比較するように設計されている、制御システム。
【請求項１７】
前記ステーション（１２）は、前記バス加入者（１４，１６，１８，２０）と同じ数学的演算、同じ開始値および同じオペランドを使用して、前記第２チェック値（ＣＶ）を計算する、請求項１６に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスを用いた制御システム、具体的には、技術プロセスの自動化制御のための制御システムにおいて、バス加入者に加入者アドレスを割り当てる方法に関するものである。
【０００２】
本発明はさらに、通信媒体によって互いに接続されており、割り当てられた論理的な加入者アドレスを有する複数のバス加入者と、割り当てられた論理的な加入者アドレスを検証するように設計されているステーションとを備える、技術プロセスの自動化制御のためのバスを用いた制御システムに関するものである。
【背景技術】
【０００３】
通信媒体によって互いに接続されている複数のバス加入者を提供するステップと、バス加入者に論理的な加入者アドレスを割り当てるステップと、割り当てられた論理的な加入者アドレスを検証するステップとを含む方法およびこのような制御システムは、下記特許文献１から公知である。
【０００４】
バスシステムとは、場合により、バス加入者として知られる複数のものと中央ステーションとの間でデータ通信をさせるように特別にセットアップされている通信ネットワークである。典型的には、バスシステムは、特に、物理的に互いに離れているコントローラとＩ／Ｏデバイスとの間で周期的なデータ通信を可能にするために使用される。Ｉ／Ｏデバイスは、リモートセンサから信号を受信し、リモートアクチュエータを起動するためにそれぞれ使用される入力および／または出力を有する。コントローラは、センサからの信号に対応する入力データを処理し、Ｉ／Ｏデバイスがアクチュエータ用の出力信号を生成する出力データを生成する。バスシステムの使用により、複数のセンサおよびアクチュエータを限られたケーブリングの複雑さで１つ以上のコントローラから物理的に離して配置することができる。
【０００５】
様々な必要条件のために開発されてきたバスシステムの変型例が複数ある。多くの場合、バス加入者はそれぞれ、通信媒体によって伝送されるメッセージを所望の受信者に関連付けることができるように、またある程度メッセージの各送信者を識別するために、個別の加入者アドレスが必要である。加入者アドレスは通常、バスシステムを稼働させる前に、構成モードで割り当てられる。
【０００６】
加入者アドレスを割り当てるための様々な方法が周知である。ある方法は、個々のバス加入者にアドレスセレクタスイッチを提供することに関わり、各加入者アドレスは、各アドレスセレクタスイッチを使用することによってバス加入者自体に設定される。このようなアプローチは、加入者アドレスが各バス加入者の場所でしか割り当てることができないという欠点を有する。バスシステムの中央構成が可能ではない。
【０００７】
そのため、バスシステム自体を介して中央ステーションからバスシステムのバス加入者にアドレスを割り当てるために使用される複数の方法がある。
【０００８】
このような方法の１つは、例えば、下記特許文献２に記述されている。この場合、アドレス割り当ては、バス加入者と加入者アドレスを割り当てるマスターステーションとして知られるものとの間との様々な距離、およびそれによって決まる様々なメッセージ転送時間にも基づいている。この方法は、複数のバス加入者に個別の加入者アドレスを順繰りに割り当てるために用いられる。
【０００９】
しかし、前記の方法は、欧州規格ＥＮ  ９５４−１、ＩＥＣ／ＥＮ  ６１５０８およびＥＮ  ＩＳＯ  １３８４９−１の点から、安全関連データの伝送に使用されることが意図されるバスシステムにおける加入者アドレスの割り当てに適していない。これら規格は操作中に人に対する危険を示す機械および機械設備の設計および実装に関する要求事項を定義している。例えば、バスシステムが緊急停止押しボタンまたは安全ライトバリアからのイネーブル信号をコントローラまたは電気駆動装置の停止信号に伝送するために使用されることが意図される場合、各メッセージは間違いなく正しい送信者から送られるとともに、正しい受信者に届く必要がある。例えば、安全ライトバリアが破損したときに正しくない機械が停止し、そのため危険な機械が運転し続ける場合など、誤ったアドレス割り当ては致命的な結果をもたらすことがある。
【００１０】
前述の規格の条件内で安全関連イベントを制御するために使用されることが意図されるバスシステムの場合、アドレス割り当てはフェールセーフである必要がある。この状況において、「フェールセーフ」とは、少なくとも欧州規格ＥＮ  ９５４−１のカテゴリ３の要求事項および／またはＩＥＣ／ＥＮ  ６１５０８のＳＩＬ２に従う要求事項、または同等の要求事項を満たすことを意味する。したがって、アドレスの割り当てで起こり得る誤りにより、制御される設備がユーザまたは別の人に対する危険を示す状態に入る結果を招いてはいけない。
【００１１】
冒頭に引用した特許文献１は、制御システムでバス加入者に加入者アドレスを割り当てる方法を開示しており、個々のバス加入者はバスシステムの構造の結果として明示的に定義される物理的な位置を有する。各バス加入者は、その明示的で物理的な位置を使用して、割り当てられた論理アドレスを検証する。この方法は、製造環境の技術プロセスの自動化のために広く使用されているインターバスとして知られるものにおける、バス加入者への加入者アドレスの割り当てに特に適する。しかし、実際の物理的な位置を使用して割り当てられた加入者アドレスを検証することは、インターバスの特定のプロパティを使用するため、この特定のプロパティなしで他のバスシステムに転送することはできない。
【００１２】
下記特許文献３は、安全指向型制御システム用のバス加入者を構成する別の方法を開示しており、バス加入者に加入者アドレスが割り当てられる。この場合、未構成のバス加入者は、予め決められている明示的に規定されたユニバーサルアドレスを使用して、同様にバスシステムに接続されている中央ステーションに登録する。中央ステーションは、未構成のバス加入者に、バス加入者とステーションとの間の後続のデータトラフィックによって検証される加入者アドレスを割り当てる。この場合、中央ステーションはそれぞれの場合において１つだけのバス加入者が正確に構成されることを監視する。この方法は、すでに構成されているバスシステムの誤ったバス加入者を取り換えるために、取り換えデバイスとして使用される個々のバス加入者を構成するのに特に適する。しかし、比較的複数のバス加入者にアドレスを割り当てることが意図される場合、この方法は非常に時間を必要とする。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】独国特許出願公開第１９９  ３４  ５１４  Ｃ１号明細書
【特許文献２】独国特許出願公開第１９７  ３３  ９０６  Ａ１号明細書
【特許文献３】独国特許出願公開第１９９  ４０  ８７４  Ａ１号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１４】
こうした背景に照らし、本発明の目的は、バスシステムのバス加入者に加入者アドレスのフェールセーフな割り当てをするための代替方法を提供することである。特に、初期構成の過程で複数のバス加入者のフェールセーフな検証を可能にする代替方法を提供することが目的である。
【課題を解決するための手段】
【００１５】
本発明のある態様によると、バス加入者は、所定の数学的演算を使用して、割り当てられた論理的な加入者アドレスを検証するために、第２チェック値と比較される共通の第１チェック値を計算し、数学的演算は所定の開始値から始まり、複数の所定のオペランドを使用する複数の演算ステップを含み、検証される加入者アドレスのそれぞれは、異なるオペランドを形成し、各バス加入者は、少なくとも１つの演算ステップを行う。
【００１６】
本発明の別の態様によると、バス加入者は所定の数学的演算を使用して、割り当てられた論理的な加入者アドレスを検証するために、ステーション内で第２チェック値と比較される共通の第１チェック値を計算するように設計されており、数学的演算は、所定の開始値から始まり、複数の所定のオペランドを使用する複数の演算ステップを含み、検証する加入者アドレスのそれぞれが異なるオペランドを形成し、各バス加入者は少なくとも１つの演算ステップを行うように設計されている。
【００１７】
好ましくは、ステーションは、制御システムの制御ユニットであり、バス加入者は、制御ユニットを使用してセンサからの入力信号およびアクチュエータ用の出力信号を表すデータを交換するＩ／Ｏユニットである。
【００１８】
本発明の方法および本発明の制御システムは、複数の逐次連続する演算ステップで第１チェック値を計算するために使用される所定の数学的アルゴリズムを使用する。第１チェック値は検証するすべての加入者アドレスに従属しており、検証される加入者アドレスが割り当てられているすべてのバス加入者によって個別のサブステップで共同で計算される。好ましくは、各バス加入者は、数学的演算から、バス加入者が物理的に分散されている演算ステップの過程で実行する必要のある演算ステップ（または複数の演算ステップ）だけを正確に「知る」。すなわち、バス加入者（加入者アドレスを検証するステーションから離れている）が検証に使用される演算ステップおよび／またはオペランドのすべてを知らない場合に好ましい。その理由は、この場合、バス加入者のすべてを必然的に検証する必要があるからである。
【００１９】
第１チェック値が割り当てられている加入者アドレスから一意に取得される数値である場合、つまり、数学的演算の結果が加入者アドレスの各組み合わせに正確に１つだけの個別のチェック値を出す場合も好ましい。
【００２０】
本発明の方法および本発明の制御システムは、アドレス割り当ての素早く信頼性のあるチェックを可能にする。１回の検証プロセスであらゆる数の加入者アドレスをチェックすることが可能である。そのため、本発明の方法および本発明のバスシステムは、１回の構成パスで複数のバス加入者の構成を可能にする。さらに、本発明の方法および本発明の制御システムはバスシステムの物理構造とは大部分独立している。特に、本発明の方法は、個々のバス加入者の実際の物理的な位置が不明である、または通信媒体で一意に判定できないバスシステムの場合に使用できる。本発明の方法は、加入者アドレスを任意の順番および／または構造で個々のバス加入者に割り当てられている場合にも使用することができ、その結果割り当てられるアドレスに関して大幅な制約がなくなる。
【００２１】
次に、本発明の方法および本発明の制御システムは、加入者アドレスをバスシステム自体を介してフェールセーフに割り当ておよび検証することができるという利点を提供する。そのため、前述の目的は完全に達成される。
【００２２】
本発明の好適な改良形態では、各バス加入者は、バス加入者に割り当てられている加入者アドレスがオペランドを形成する（少なくとも）１つの演算ステップを行う。
【００２３】
この改良形態では、各バス加入者は、「自らの」加入者アドレスを使用して「自らの」演算ステップを計算する。あるいは、本発明の他の改良形態は、バス加入者に各「外部の」加入者アドレスを使用して分散された演算ステップを行わせる、つまり、各バス加入者は別のバス加入者に割り当てられている加入者アドレスを使用して演算ステップを計算する。しかし、好適な改良形態では、個々のバス加入者はすでに自らに割り当てられている加入者アドレスを知っているので、検証はより単純により素早く行うことができる。どちらの変型例でも、演算ステップの数は少なくともバス加入者の数に等しい。
【００２４】
別の改良形態では、加入者アドレスは中央ステーションからバス加入者に割り当てられ、中央ステーションは同じ数学的演算、同じ開始値および同じオペランドを使用して、バス加入者とは独立して第２チェック値を計算する。
【００２５】
この改良形態では、中央ステーションは、個々のバス加入者に割り当てられたすべての加入者アドレスを知っている。そのため、制御計算を容易に行うことができる。同じ数学的演算、同じ開始値および同じオペランドを使用した第２チェック値の計算により、第１および第２のチェック値がアイデンティティに関して互いに比較されるので、ごく単純に検証することができる。２つの値が互いに異なる場合、検証は失敗したことになり、好ましくは、アドレス割り当てを繰り返す。２つのチェック値は互いに独立して計算されるが、同じ数学的演算、同じ開始値および同じオペランドを使用して計算されるため、この改良形態は非常に信頼性のあるチェックを提供する。
【００２６】
別の改良形態では、中央ステーションは通信媒体によってバス加入者に接続されており、通信媒体を介して共通の第１チェック値を取得する。
【００２７】
本改良形態の好適な変型例では、中央ステーションはバスマスターとして知られるもの、つまり、他のバス加入者と比べて特別な権利および／または能力を有するバス加入者である。典型的には、バスマスターは通信媒体を介して、例えば通信サイクルを開始する、個々のバス加入者からのデータにタイムスロットおよび／またはデータフィールドを提供する、および／または別の方法で調停を保証することによって、バス加入者の通信を制御および／または組織する。この改良形態は、アドレス割り当てがバスシステム自体で可能であるという利点を有する。バスマスターに中央ステーションの機能を実装することは、バスマスターが典型的にはバスシステムに一度だけ存在し、しばしば他のバス加入者と比較して高いレベルのインテリジェンスおよび／または計算力を提供するのでさらに有利である。そのため、中央ステーションの機能を非常に安価かつ効率的にバスマスターに収容できる。
【００２８】
別の改良形態では、中央ステーションはフェールセーフ設計である。
【００２９】
すでに上記に指摘したように、「フェールセーフ」とは、ＥＮ  ９５４−１のカテゴリ３または同等の要求事項に従う少なくとも単一エラー安全性が満たされていることを意味する。システムの安全性は、たとえエラーが１回起こった場合でも失われてはならない。典型的には、中央ステーションは、この改良形態では、単一エラー安全性を達成するためにマルチチャネルの冗長性を有する。しかし、前記要求事項を満たす単一チャネルの実施態様があってもよい。加入者アドレスが割り当てられている（別の）バス加入者が非フェールセーフ設計である場合も、本改良形態による本発明の方法がそのような場合でも加入者アドレスのフェールセーフな割り当てを可能にするので、特に好ましい。この改良形態は、中央ステーションがバスシステムでバスマスターとして作用する場合には、その場合インテリジェントでフェールセーフなステーションのみが必要であって、別のバス加入者は比較的単純かつ安価に実装できるので特に有利である。
【００３０】
別の改良形態では、バス加入者は通信媒体によって論理的な順序で接続されており、論理的な順序は第１バス加入者と、少なくとも１つの第２バス加入者と、最後のバス加入者とを有する。
【００３１】
いくつかの好適な実施形態では、バス加入者の論理的な順序は、バス加入者が互いにおよび／またはバスマスターと通信できるために、あるバス加入者から別のバス加入者に連鎖方式で転送される予め決められたデータフレームにおけるデータの順序に対応する。特に好適な実施形態では、バスマスターはこのようなデータフレームを予め決められた繰り返し時間間隔で生成する。データフレームはあるバス加入者から別のバス加入者に、最終的にバスマスターに再び到達するまで転送される。
【００３２】
この改良形態では、バスシステムは複数のセンサからのセンサ信号を表す入力データを収集し、制御コマンドを分散型制御システムのアクチュエータに出力するのに特に適する。バス加入者の論理的な順序は、予め定義されたサイクル時間を可能にし、単純かつ安価な実装も可能にする。さらに、このようなバスシステムは加入者アドレスの自動的な割り当てに非常によく適し、割り当てられたアドレスを検証する本発明の方法を使用できることが有利となる。この場合、数学的演算が結合法則に適合しない場合に、実施形態を参照しながら以下詳しく説明するように、その場合には割り当てられた加入者アドレスだけでなく、バス加入者の順序も検証されるので特に有利である。
【００３３】
別の改良形態では、第１バス加入者は、第１中間値を判定するために開始値および第１オペランドを使用する第１演算ステップを実行し、第１バス加入者は第１中間値を第２バス加入者に送信し、第２バス加入者は、第２中間値を判定するために第１中間値および第２オペランドを使用する第２演算ステップを実行する。好ましくは、最後のバス加入者は、第２中間値および最後のオペランドを使用する最後の演算ステップを実行する。
【００３４】
この改良形態では、バス加入者は、通信媒体によって互いに接続されている同じ論理的な順序で第１チェック値を計算する。割り当てられた加入者アドレスの結果として、論理的な順序は、バス加入者が通信媒体に接続されている物理的な構造とは異なっていてもよい。しかし、論理的な順序は物理的な構造と同一であってもよい。この改良形態は本発明の方法の非常に単純かつ安価な実装を可能にし、中間値がそれぞれさらに使用されるために後続のバス加入者に直接送信されるので、割り当てられた加入者アドレスの非常に素早い検証を可能にする。
【００３５】
別の改良形態では、最後のバス加入者は最後の演算ステップを使用して共通の第１チェック値を計算する。代替例として、別の改良形態は、最後のバス加入者が最後の演算ステップを使用して、別の演算ステップで第１チェック値を計算するために使用される別の中間値を判定するのを可能にする。
【００３６】
前者の改良形態は、少数の演算ステップの後で第１チェック値をすぐに利用できるという利点を有する。したがって、加入者アドレスをすぐに検証することができる。対して、後者の改良形態は、第１チェック値が別のチェックステップおよび／または計算ステップを包含してもよいという利点を有する。これは、有利なことに、個々のバス加入者とは独立しているバスシステムから別の構成データを検証するために使用できる。次に、有利なことに、第１チェック値を、第２チェック値と比較しやすいように条件付けおよび／または改変できる。
【００３７】
別の改良形態では、演算ステップは所定の演算ステップの順序で行われ、第１チェック値は所定の演算ステップの順序によって変化する。
【００３８】
この改良形態では、数学的演算は、開始値およびオペランドがそれぞれの場合に同じであっても、行われる演算ステップの順序に応じて異なる結果を出す。好ましくは、数学的演算は、結合法則および交換法則のいずれにも適合しないものが選ばれる。この改良形態は、割り当てられた加入者アドレスだけでなく、バス加入者自体の順序も検証されるという上記すでに指摘した利点を有する。これは、バスシステムを安全に重要なデータの伝送に使用する場合、同じ種類の２つの加入者の入れ替わりは、一方では認識しにくいが、他方では、起こりやすく、深刻な結果を招くことがあるため、特に有利である。
【００３９】
別の改良形態では、数学的演算は多項式除算に基づくチェックサム計算、特にＣＲＣチェックサム計算である。特に好適な実施形態では、数学的演算はＣＲＣ−８、ＣＲＣ−１６またはＣＲＣ−３２チェックサム計算である。
【００４０】
略語のＣＲＣとは、循環冗長検査を表す。これはデータのチェック値を計算するための所定の方法である。通常、ＣＲＣチェックサムは、データの伝送または格納中にエラーを認識できるようにするために計算される。原則として、こうして計算されたＣＲＣチェックサムは保護されたデータと一緒に伝送または格納される。本改良形態では、アドレス割り当ての成功をチェックすることを可能にするチェック値を、データ伝送が行われた後、つまり加入者アドレスの割り当ての後の個別の検証ステップで計算するために、同じアルゴリズムを使用する。ＣＲＣアルゴリズムの使用により、非常に安価でフェールセーフな実装を可能にする。割り当てられる加入者アドレスの数および長さに応じて、より短いまたはより長いチェックサム（ＣＲＣ−８、ＣＲＣ−１６、ＣＲＣ−３２等）を使用するのが有利である。
【００４１】
別の改良形態では、制御システムは、検証の成功後に稼働させ、制御システムの動作中に第１チェック値を繰り返し計算する。好ましくは、制御システムの動作中に所定の時間間隔で、第１チェック値を計算する。さらに、マスターが第１チェック値の繰り返し計算の開始値を変えると好ましい。この改良形態により、バスシステムの動作中に構成済みのバス加入者の単純かつ素早い検証が可能になるので、例えば、メモリのエラー、ケーブルの挟み込みまたはバス加入者の変更のための変化を素早く認識することができる。この改良形態はフェールセーフ性のさらなる増大に有利に寄与する。
【００４２】
別の改良形態では、オペランドは、シリアル番号、デバイスのタイプおよび／または各バス加入者のファームウェアレベルなど、バス加入者のデバイス固有のプロパティも表す。
【００４３】
この改良形態は、割り当てられた加入者アドレスだけでなく、バス加入者の個々のプロパティも監視することに有利である。そのためこの改良形態はフェールセーフ性のさらなる増大に寄与する。
【００４４】
別の改良形態では、通信媒体によって接続されている複数のバス加入者より少ないまたは多い複数のバス加入者について、第１チェック値を計算する。
【００４５】
この改良形態では、第１チェック値は、故意に、合計で検証される加入者アドレスの数とは異なる複数のバス加入者を使用して計算する。好適な実施形態では、検証されるバス加入者の数は個別に選択することができる。好ましくは、割り当てられたすべてのアドレスの検証後には、少なくした数のバス加入者について検証を行う。さらに、検証されるバス加入者を個別に選択できると有利である。この改良形態は、複数のバス加入者に対して割り当てられた加入者アドレスの検証が失敗する場合の特定の便利な診断を可能にする。第１チェック値はアドレスを検証する、すべてのバス加入者によって共同で計算されるので、本発明の方法は最初に加入者アドレスの割り当てが全体として瑕疵なく機能しているかどうかについての総括的なステートメントのみを出す。しかし、バス加入者すべてに対して計算されたチェック値を使用した個別のエラー分析をするのは難しい。検証するバス加入者の数を故意に減らすことで、エラー源を特定することが可能になる。さらに、実際には割り当てられなかった加入者アドレスの検証により、認識されずに通信媒体に接続されているさらに別のバス加入者があるかどうかをテストするのを可能にする。このように、好適な改良形態は個別の診断を容易にする。
【００４６】
上記述べた特徴およびこれから以下説明する特徴は、それぞれ示す組み合わせだけでなく、本発明の範囲を逸脱することない、他の組み合わせまたは単独でも使用できることは言うまでもない。
【００４７】
本発明の実施形態を図面に示し、以下の説明で詳しく説明する。
【図面の簡単な説明】
【００４８】
【図１】本発明の制御システムの実施形態の模式図を示す。
【図２】本発明の制御システムの好適な実施形態を説明するフローチャートを示す。
【図３】２つのバス加入者が入れ替わっている状態の図１の制御システムを示す。
【発明を実施するための形態】
【００４９】
図１において、本発明の方法を実装する制御システムは、全体を参照番号１０で示されている。制御システム１０は、制御ユニット１２と、複数のＩ／Ｏユニット１４，１６，１８，２０とを備える。この場合、制御ユニット１２はバスインターフェース２４を備える一体型または差込型バスモジュール２２を有する。バスインターフェース２４はそれに接続されているバスライン２６ａを有しており、これがＩ／Ｏユニット１４の第１バスインターフェース２４に繋がっている。Ｉ／Ｏユニット１４は第２バスインターフェースを有しており、そこから別のバスライン２６ｂがＩ／Ｏユニット１６の第１バスインターフェースに繋がっている。Ｉ／Ｏユニット１６の別のバスインターフェースから、別のバスライン２６ｃがＩ／Ｏユニット１８の第１バスインターフェースに繋がっている。Ｉ／Ｏユニット１８の別のバスインターフェースから、別のバスライン２６ｄがＩ／Ｏユニット２０の第１バスインターフェースに繋がっている。
【００５０】
このように、Ｉ／Ｏユニット１４〜２０は制御ユニット１２のバスモジュールに直列に接続されている。バスモジュール２２を備える制御ユニット１２、Ｉ／Ｏユニット１４〜２０およびバスライン２６ａから２６ｄは合わせて、制御システム１０の一部であり、制御ユニット１２とＩ／Ｏユニットとの間の通信を可能にするバスシステムを形成する。この場合、Ｉ／Ｏユニット１４〜２０は、本発明の意味におけるバス加入者である。バスモジュール２２を備える制御ユニット１２は、この場合バスマスターの機能を有しており、バスマスターは加入者アドレスの割り当ておよび検証を開始するためにも使用される。
【００５１】
ここで図示するように、バスマスター上でのバス加入者の直列配置は、好適な実施形態に相当する。しかし、本発明はそれに限定されるのではなく、環形、星形または樹形のトポロジなど、他のトポロジを有するバスシステムに使用することもできる。原則的に、本発明の方法および本発明のバスシステムは、バス加入者がいつでも送信および／または受信できるバスシステムなど、バスマスターなしで実施することもできる。
【００５２】
各Ｉ／Ｏユニット１４〜２０は、センサおよび／またはアクチュエータを接続するために複数のコネクタソケットを有する。例として、Ｉ／Ｏユニット２０のコネクタソケットを参照番号２８で示している。
【００５３】
この場合、例として、２つのコンタクタ３０ａ，３０ｂがＩ／Ｏユニット１８の２つのコネクタソケットに接続されている。コンタクタ３０ａ，３０ｂは、制御システム１０が技術プロセスを制御するための制御信号を生成するために使用するアクチュエータである。各コンタクタ３０ａ，３０ｂは複数のメイク接点を有する。各コンタクタ３０ａ，３０ｂのそれぞれのメイク接点は、電源３２と制御する設備３４との間に直列に配置されている。例として、ここに図示する設備３４はロボットである。コンタクタ３０ａ，３０ｂはロボット３４を電源３２から切り離すために使用することができる。
【００５４】
参照番号３６は、ラインペア３８によってＩ／Ｏユニット１８の別のコネクタソケットに接続されている緊急停止押しボタンを示している。Ｉ／Ｏユニット１８は、緊急停止押しボタン３６への出力ラインに所定のクロック期間を有するクロック信号４０を生成する。クロック信号４０は緊急停止押しボタン３６およびラインペア３８の戻りラインを介して、Ｉ／Ｏユニット１８に戻る。緊急停止押しボタン３６は、制御ユニット１２に評価される入力信号を出す信号装置またはセンサの好適な実施例である。入力信号に基づいて、制御ユニット１２はコンタクタ３０ａ，３０ｂの制御信号を生成する。
【００５５】
この場合、コンタクタ３０ａ，３０ｂおよび緊急停止押しボタンスイッチ３６は、アクチュエータおよびセンサの実施例である。他の好適なセンサは安全ライトバリア、保護用ドアスイッチ、両手スイッチ、または温度、圧力、位置、速度等などの変数を測定する他のセンサである。さらに、ソレノイド弁、電気デバイスその他をアクチュエータとしてＩ／Ｏユニット１４〜２０に接続することができる。
【００５６】
簡潔にするために、図１はロボット３４を保護するための制御システム１０のみを図示しているが、ロボット３４の動作を制御する制御システムは図示していない。原則的に、この２つの制御システムは同一であってもよく、つまり、制御システム１０は動作サイクルと安全関連の監視機能の両方を制御する。しかし、多くの場合、制御システムの固有フェールセーフ性に対する要求は、動作サイクルの制御に関するよりも安全機能に関する方がはるかに高いので、今まで安全機能については個別の制御システムが使用されてきた。他方で、動作サイクルの制御は、安全機能の制御よりも高いレベルの計算力を要することが多い。
【００５７】
安全機能を制御するために、制御ユニット１２は典型的にはマルチチャネル冗長性を備えて設計され、これを図１では、互いに監視するおよび／またはその結果を交換する２つのマイクロプロセッサ４２ａ，４２ｂによって象徴的に図示している。マイクロプロセッサの代わりに、マイクロコントローラ、ＦＰＧＡ、ＡＳＩＣその他など、他のプログラマブル論理回路を使用することも可能である。いくつかの好適な実施形態では、プログラマブル回路４２ａ，４２ｂは（第２）チェック値の冗長計算を実行し、これを使用して本発明の方法に基づいてＩ／Ｏユニット１４〜２０への加入者アドレスの割り当てをフェールセーフに検証する。
【００５８】
制御ユニット１２は、バスモジュール２２を使用してＩ／Ｏユニット１４〜２０にデータメッセージ４４を送信し、そこから応答メッセージ４６を受信することによって、Ｉ／Ｏユニット１４〜２０と通信する。ある好適な実施形態では、データメッセージおよび応答メッセージは、ＤＥ  １０  ２００８  ０６０  ００７  Ａ１に記述される方法に基づいて交換される。したがって、この文書はデータ伝送の詳細に関する参照によりこれに含まれる。しかし、加入者アドレスを検証する本発明の方法は好適なデータ伝送方法に限定されるのではなく、加入者アドレスが使用される他のバスプロトコルのためにも使用することができる。
【００５９】
この場合、Ｉ／Ｏユニット１４〜２０はそれぞれ、制御ユニット１２から個別の加入者アドレスを取得する。例として、この場合のＩ／Ｏユニット１４は割り当てられた加入者アドレス０ｘ０Ｆを有し、Ｉ／Ｏユニット１６は割り当てられた加入者アドレス０ｘ０Ｅを有し、Ｉ／Ｏユニット１８は割り当てられた加入者アドレス０ｘ０Ｄを有し、Ｉ／Ｏユニット２０は割り当てられた加入者アドレス０ｘ０Ｃを有する。
【００６０】
好適な実施形態では、制御ユニット１２がバスインターフェース２４を介してデータメッセージ４４を送信し、前記データメッセージがそれぞれ加入者アドレス４８を包含するため、アドレスは制御システム１０を稼働させる前に構成モードで割り当てられる。すでに加入者アドレスが割り当てられている各Ｉ／Ｏユニットは、このようなデータメッセージを直列配置の次のＩ／Ｏユニットに転送する。まだアドレスが割り当てられていないＩ／Ｏユニットは、割り当てられたアドレスとしてこのようなデータメッセージに包含されているアドレスを抽出する。そのため、Ｉ／Ｏユニット１４〜２０は制御ユニット１２によって次々に「洗礼」することができる。次に、制御ユニット１２は割り当てられた加入者アドレスを、図２を参照して以下説明する方法に基づいて検証する。
【００６１】
この場合、参照番号５０は、それぞれバス加入者１４，１６，１８，２０を表す特定の加入者データを示す。例として、これらは特に個別のシリアル番号、デバイスのタイプ番号、ファームウェアレベルである。図示する実施形態では、バス加入者１４，１６および２０はデバイスのタイプ番号０ｘ０１を有する一方、バス加入者１８はデバイスのタイプ番号０ｘ０２を有する。
【００６２】
図２によると、ステップ６０でまず初めにカウント変数ｎ＝０を設定する。ステップ６２によると、バスマスター、つまりこの場合制御ユニット１２は、さらに第１バス加入者に加入者アドレスを割り当て、これが図２では全体をＳｎ＋１として示されている。図１の制御システム１０の場合、第１バス加入者はＩ／Ｏユニット１４であり、これが制御ユニット１２から加入者アドレス０ｘ０Ｆを取得する。ステップ６４で、別のバス加入者に別のアドレスを割り当てる必要があるかどうかを判定するためのテストを行う。そうであれば、方法はループ６６に従ってステップ６２に戻り、カウント変数ｎが１増える。
【００６３】
すべての加入者アドレスが割り当てられたら、ステップ６８に従いバスマスターが開始値を生成するので、好適な検証が始まる。好適な実施形態では、開始値は、割り当てられた加入者アドレスも起点とする数値範囲からの数値である。例として、開始値はこの場合０ｘ７Ａであると想定される。
【００６４】
さらに、例として、マスターは、数学的演算として生成多項式ｘ８＋ｘ５＋ｘ４＋ｘ１のＣＲＣ−８チェックサム計算を使用すると想定される。このように、マスターは、データ（加入者アドレス）０ｘ０Ｆ，０ｘ０Ｅ，０ｘ０Ｄおよび０ｘ０Ｃを使用して、開始値を０ｘ７ＡとしたＣＲＣ−８を計算する。結果はチェック値ＣＶ＝０ｘＦ７である。ＣＲＣ−８チェックサムアルゴリズムのより詳細な説明は、関連の専門文献および、例えば、アドレスが<http://en.wikipedia.org/wiki/Cyclic> redundancy checkのウィキペディアでも確認することができる。前記ウィキペディアの記事は、出願日におけるその状態で、参照によりこれに含まれる。
【００６５】
ステップ７２で、マスターは検証する加入者アドレスの数を指定する値ｎｍａｘを設定する。合計でバスシステム１０に接続されているバス加入者の数よりも小さい値を選ぶことによって、マスターは検証を少なくした数のバス加入者に限定することができる。まず初めに、マスターはｎｍａｘ＝４を設定する、つまり、Ｉ／Ｏユニット１４〜２０すべてに対して検証を行うと想定されるはずである。
【００６６】
次のステップ７４で、カウント変数ｎ＝１が再び設定される。次に、ステップ７６に従い、マスターは開始値０ｘ７Ａをバス加入者Ｓ１、つまりＩ／Ｏユニット１４に送信する。バス加入者Ｓ１は、開始値０ｘ７Ａを使用して自身のアドレス０ｘ０ＦのＣＲＣ−８チェックサムを計算することにより、第１中間値ＩＶ１を計算する。この場合、中間結果ＩＶ１は０ｘ０Ｄである。
【００６７】
ステップ８０によると、バス加入者Ｓ１は第１中間値ＩＶ１を次のバス加入者Ｓ２に送信する。後者は、受信した中間値ＩＶ１＝０ｘ０Ｄを開始値として使用し、それ自身のアドレス０ｘ０Ｅをオペランドとして使用することにより、別の中間値ＩＶｎ＋１を計算する。第２中間値ＩＶ２は、この場合０ｘ５３である。
【００６８】
ステップ８４によると、第２バス加入者は、検証する一連のバス加入者のうちでそれが最後かどうかをチェックする。この場合、来ることになるまだ２つのバス加入者（Ｉ／Ｏユニット１８および２０）があり、つまりループ８６に従ってさらに２つのバス加入者１８および２０でさらに２つの演算ステップが実行される。想定される実施例では、第３バス加入者（Ｉ／Ｏユニット１８）は第２中間値ＩＶ２＝０ｘ５３を開始値として取得し、それ自身の加入者アドレス０ｘ０Ｄを使用して第３中間値ＩＶ３＝０ｘ６１を計算する。第４バス加入者（Ｉ／Ｏユニット２０）は中間値ＩＶ３＝０ｘ６１を開始値として受信し、その加入者アドレス０ｘ０Ｃを使用して別の中間値ＩＶ４＝０ｘＦ７を計算する。順次来る別のバス加入者がないので、Ｉ／Ｏユニット２０は中間値ＩＶ４を第１チェック値としてバスマスター１２に戻す（ステップ８８）。
【００６９】
ステップ９０に従い、バスマスターまたは制御ユニット１２は、受信したチェック値ＩＶ４が前に計算したチェック値ＣＶと同じかどうかをチェックする。２つのチェック値が互いに異なる場合、アドレス割り当ておよび／または検証にエラーがある。したがって、ステップ９２に従い、制御ユニット１２はエラー信号を生成する。他方で、２つのチェック値が同一の場合、これはアドレス割り当てがエラーなく行われたことを示す。これで制御システム１０は制御モードに切り替えることができ、これをステップ９４で示す。
【００７０】
好適な実施形態では、ループ９６で示されるように、割り当てられたアドレスの検証は、プロセス制御中に所定の回数繰り返される。
【００７１】
この実施形態の一変型例では、前に割り当てられた加入者アドレスだけでなく、加入者固有のデータ５０も検証に含める。これで制御ユニット１２は、加入者アドレスおよびタイプコード０ｘ０Ｆ，０ｘ０１，０ｘ０Ｅ，０ｘ０１，０ｘ０Ｄ，０ｘ０２，０ｘ０Ｃ，０ｘ０１を使用してチェック値ＣＶを計算し、結果としてチェック値ＣＶ＝０ｘ６２を取得する。
【００７２】
これで、図３に図示するように、Ｉ／Ｏユニット１６および１８はその後入れ替えられたことが想定されるだろう。これでＩ／Ｏユニット１４は開始値０ｘ７Ａを受信し、それ自身のアドレス０ｘ０Ｆおよびデバイスのタイプ０ｘ０１を使用して、第１中間値ＩＶ１＝０ｘ７Ｄを計算する。ここで、第２バス加入者として（入れ替えられた）Ｉ／Ｏユニット１８は開始値０ｘ７Ｄ、割り当てられたアドレス０ｘ０Ｅおよびデバイスのタイプ０ｘ０２を使用して、第２中間値ＩＶ２＝０ｘ７４を計算する。
【００７３】
第３Ｉ／Ｏユニットは開始値０ｘ７４、割り当てられたアドレス０ｘ０Ｄおよびデバイスのタイプ０ｘ０１を使用して、第３中間値ＩＶ３＝０ｘＣ９を計算する。第４Ｉ／Ｏユニットは開始値０ｘＣ９、割り当てられたアドレス０ｘ０Ｃおよびデバイスのタイプ０ｘ０１を使用して、第４中間値０ｘＥＣを計算し、この結果を（第１）チェック値としてバスマスターに戻す。２つのチェック値ＣＶ＝０ｘ６２およびＩＶ４＝０ｘＥＣの比較は、個々に行ったアドレスの割り当てがたとえ成功したとしても、実際の構成が予想される構成に一致していないことを示す。
【００７４】
図２を参照して以前にすでに説明したように、制御ユニット１２は、まず初めに第１Ｉ／Ｏユニット１４の範囲だけで検証サイクルを行い、それから別のＩ／Ｏユニットを一度に１つずつ段階的にそれを拡張することによって、不正確に構成されたバス加入者を特定することができる。入れ替えられたＩ／Ｏユニット１８に到達するとすぐに、２つのチェック値は互いに異なる。さらに、制御ユニット１２は、所望の構成におけるバス加入者の数よりも多い複数のバス加入者について検証パスを開始することができ、および／または実際に割り当てられなかった加入者アドレスを検証パスで特別に処理することができるので、このように提供されるよりも多くの通信媒体に接続されているバス加入者があるかどうかをチェックすることができる。これは、所望の構成に従い、通信媒体から除去されたバス加入者が実際にも存在しないかどうかをチェックするために特に有利である。
【００７５】
上記説明した実施形態の一変型例では、本発明の方法はＣＲＣ−１６チェックサム計算を使用し、各バス加入者のアドレスおよびタイプコードを組み合わせて１６ビットのデータ値を形成する。原則的に、複数の連続ステップで行われる、したがって複数のバス加入者で分散することができ、使用されるオペランドに基づき、および好ましくは、行う演算ステップの順序に基づいて明示的な結果を出す他の数学的演算も、本発明の方法に適する。
【図１】
0005893027.tif 000002
【図２】
0005893027.tif 000003
【図３】
0005893027.tif 000004