6万人のメイドが“合体”!? EtherCATの通信方式:江端さんのDIY奮闘記 EtherCATでホームセキュリティシステムを作る(5)(5/8 ページ)
今回は、EtherCATにおける4つの通信方式を解説したいと思います。EtherCATには、マスタ(ご主人様)が、スレーブ(メイドたち)の“身上調査”を行うための「SDO通信」用に3種類、“仕事内容”を送信するための「PDO通信用」に1種類の通信方式があります。膨大な量のフレームが飛び交うEtherCAT通信の世界を、さっそくのぞいてみましょう。
ブロードキャスト通信の役割は?
このように考えれば、最初に行われる「ブロードキャスト通信」の役割は明確です。
スレーブ(メイド)の数を調べることです。
なにしろ、最初の状態では、マスタ(ご主人様)は、スレーブ(メイド)が6人いるのか、600人いるのか、60000人いるのか、全く分からないのです。
なので、ご主人様は、『番号ー!』と号令を出すと同時に、ブロードキャスト通信のフレームを流し、メイドは、そのフレームを受けると『いち!に!さん!よん!』と順番に叫びながら、叫んだ番号をそのフレームに上書きして、次のメイドに回していきます。
その時、メイドが叫んだ数が、「仮アドレス(要するにゼッケン)」になるわけです。
また、ご主人様は、戻ってきたフレームに記録されたカウントで、メイド全員の数を確認することができます。これをWorking Count(WC)と言います。
ブロードキャスト通信は、メイド全員に一斉に同じ命令を出したい時にも使われます。
例えば、全てのスレーブ(メイド)の起動モードを、一斉に変更したい時などは、いちいち特定のスレーブ(メイド)を指定する必要はなく、特定の「オフセット」だけを指定すれば、例えば、全員の起動モードをたった一回のEtherCATフレームの送信だけで変えることができます。
だからSDO通信には、3タイプもある!
以上をまとめますと、SDOのための通信に3タイプ(も)ある理由は、
(1)まずブロードキャスト通信で、スレーブに仮アドレスを与える必要があり、
(2)次に、その仮アドレスを使ったオートインクリメントアドレス通信で、スレーブに固定アドレスを与える必要があり、
(3)その固定アドレスを使って、マスタと個々のスレーブとの通信を実現する必要がある
ためなのです(かなり乱暴なざっくり説明ですが)。
―― なんと、まあ、「回りくどい」ことしているんだ?
と思われるかもしれませんが、これには理由があるのです。
例えば、EtherCATと同じく制御LANの1つであるDeviceNetでは、スレーブの外側についているスイッチで、アドレスを1つ1つ手動で設定しなければなりません。
スレーブが10台や20台程度ならともかく、これが100〜1000台のオーダーになれば、人間のやることですから、間違いなくアドレスの設定ミスが発生します*)。
*)DeviceNetの構築ツールに、この「設定ミス防止機能」を組み込んでいた、この私が言うのですから間違いありません。
比して、EtherCATでは、アドレス設定に関して人間様の出る幕はありません。
EtherCATは、ヒューマンエラーを回避して、アドレスを安全に自動的に付与する為にも、3つのSDOの通信方式を用意したのです*)。
*)制御LANの世界の、DHCP(Dynamic Host Configuration Protocol)の様なものだ、と言えば(分かる人には)分かるでしょう。
下記は、それぞれの通信フレームの1つを取り出して、Wiresharkでキャプチャしたものを図示したものです。
このように、アドレスのタイプが、異なっていることが分かります。
Copyright © ITmedia, Inc. All Rights Reserved.