M-BusまたはMeter-Busは、水道、ガス、電気メーターの遠隔読み取りに関する欧州規格(EN 13757-2 物理層とリンク層、EN 13757-3 アプリケーション層)です。M-Bus は、暖房システムや水道メーターなど、他の種類の消費量メーターにも使用できます。M-Bus インターフェイスは 2 本の線での通信用に設計されているため、コスト効率に優れています。M-Bus の無線バリアントであるワイヤレスM-Busも、EN 13757–4 で指定されています。
M-Bus は、家庭内のガスや水の消費量を測定するなど、ユーティリティ メーターのネットワーク化とリモート読み取りのためのシステムのニーズを満たすために開発されました。このバスは、消費者向けユーティリティ メーターを含む、リモート電源またはバッテリー駆動のシステムの特別な要件を満たします。メーターは、照会されると、収集したデータをハンドヘルド コンピューターなどの共通マスターに送信します。マスターは、建物内のすべてのユーティリティ メーターを読み取るために定期的に接続されます。データを集中的に収集する別の方法は、モデム経由でメーターの読み取り値を送信することです。
M-Bus は、警報システム、柔軟な照明設備、暖房制御などの他の用途にも適しています。
OSIモデルとの関係
メーター読み取りの要件を満たすバス システムがなかったため、パーダーボルン大学の Horst Ziegler がTexas Instruments Deutschland GmbHおよび Techem GmbH と協力してM-Bus を開発しました。このコンセプトは、ほぼすべてのプロトコルを使用できるオープン システムを実現するために、 ISO-OSI 参照モデルに基づいていました。
M-Bus はネットワークではないため、トランスポート層やセッション層などは必要ありません。そのため、OSI モデルのレベル 4 から 6 は空です。したがって、物理層、データ リンク層、ネットワーク層、アプリケーション層のみに機能が提供されます。
物理的な配線とコネクタ
M-Bus 接続は、M-Bus または HAN (Home Area Network) コンシューマ接続と呼ばれます。M-Bus は、公称転送速度 300 および 9600 ボーを使用する場合、最大 350 メートルの長さの 2 線式電話ケーブル (JYStY 1x 2x 0.8 mm または同等、73 オーム/km、120 nF/km) を使用します。速度を下げれば、最大 1000 メートルのケーブルを使用できます。標準化されたコネクタはありませんが、メーター製造業者はRJ11 および RJ12モジュラー コネクタを使用しています。 [1]
マスター通信では電圧信号が使用されます。1 (アイドル状態、マーク) はバスの公称 36 ボルト、0 (スペース) は電圧を 24 ボルトに下げます。バス電圧は長さと負荷によって変化するため、バス電圧降下が 5.5V 未満の場合は信号が 1、8.2 ボルトを超える場合は 0 と指定されます。
スレーブは消費電流によって通信します。1 (アイドル状態、マーク) は 1.5 mA 未満、0 (スペース) は電流を 11 ~ 20 mA に上げます。信号は少なくとも 11 mA の電流増加として指定されます。
スレーブはダイオード ブリッジを介して接続され、どちらの極性のワイヤも使用できます。スレーブの短絡からバスを保護するために、各スレーブに 430 オームの抵抗が直列に接続されています (または、ワイヤごとに 1 つずつ、215 オームの抵抗が 2 つ)。
M バスの負荷単位は 1.5 mA です。ほとんどのスレーブは最大でもこの値を使用しますが、2 単位 (3 mA) を必要とするスレーブもあります。マスターはタイプに応じて負荷単位の数を提供でき、通常は過負荷を視覚的に表示します。
データリンクプロトコル
データ リンク プロトコルは、 IEC 870-5 またはその更新バージョンであるIEC 60870-5で説明されています。
データは、1 つのスタート ビット、1 つのストップ ビット、および偶数パリティ(8e1)を使用して、300 ~ 9600 ビット/秒 (一部のバリアントでは最大 19200 または 38400 ビット/秒で動作する場合があります) の速度でシリアル形式で送信されます。最下位ビットが最初に送信されます。パケット (「テレグラム」) を送信する場合、ストップ ビットと後続のスタート ビットの間に一時停止はありません。
推奨速度は 300、2400、9600、および新しいハードウェアでは 38400 ビット/秒ですが、2400 ビット/秒が最も一般的です。異なるボーレートのデバイスは同じバス上に共存できます。一部のデバイスは自動ボーを使用します[説明が必要]。
パケットには次の 4 種類があります。
- 単一文字 - 0xE5 - 確認応答
- ショートフレーム、5 バイト - 0x10、C フィールド、A フィールド、チェックサム、0x16 - 単純なコマンドの送信
- 制御フレーム、9 バイト - 0x68、0x03、0x03、0x68、C フィールド、A フィールド、CI フィールド、チェックサム、0x16
- 制御フレームはペイロードのない長いフレームです。
- 長いフレーム、9 バイト以上 - 0x68、長さ、長さ、0x68、C フィールド、A フィールド、CI フィールド、[0..252 ペイロード バイト]、チェックサム、0x16
C フィールドは制御/機能フィールドです。ビット 7 からのシーケンスは次のとおりです。
- ビット7: 0
- ビット 6: マスターからスレーブへの場合は 1、スレーブの応答の場合は 0
- ビット5:
- マスターから: FCB、フレームカウントビット - 応答が受信されなかった場合にメッセージを繰り返す要求を示します
- スレーブから:ACD、アクセス要求 - 1 スレーブがクラス1データ、優先データ(クラス2データは通常の非優先データ)を送信したい場合 - マスターはクラス1データ転送を要求する必要があります
- ビット4:
- マスターから: FCV、フレームカウント有効 - 0の場合、スレーブはFCBを無視する必要があります
- スレーブから:DFC、データフロー制御 - 1の場合、スレーブはそれ以上のデータを受け入れることができません
- ビット 3、2、1、0: F3、F2、F1、F0、機能コード - 例: ショート フレームの場合、0 はスレーブの初期化、xA はクラス 1 (優先) データ読み取り、xB はクラス 2 (通常) 読み取りです。ロング/制御フレームの場合、x3 はスレーブへのデータ送信、x8 はスレーブからのデータ応答です。
A フィールドはアドレス フィールドです。8 ビットの数値です。
- 0x00 - 未設定のアドレス、製造時に割り当て、一部のメーターはこれで固定されている
- 0x01..0xFA - スレーブアドレス
- 0xFB、0xFC - 予約済み
- 0xFD - セカンダリ アドレス指定の「ブロードキャスト」、データ リンク層ではなくネットワーク層でアドレス指定が行われます
- 0xFE - テストブロードキャスト、すべてのスレーブが応答(衝突が発生するため、単一のスレーブでのテストに使用します。スレーブは A フィールドで自身のアドレスで応答します)。バス上にスレーブが 1 つしかない場合にも使用できます。
- 0xFF - ブロードキャスト、スレーブからの応答なし
CIフィールドは制御情報フィールドです。アプリケーション層で定義されます。[2]
制御/ロング フレームの長さフィールドは 2 回送信されます。両方のバイトは同じである必要があります。C フィールド、A フィールド、および CI フィールドはペイロードの必須部分であるため、最小値は 0x03 です。
スレーブは、アドレスに一致する正しく形成されたパケットにのみ応答します。障害は応答がないことで示されます。応答がないことは、330ビット期間(9600ビット/秒の場合は35ミリ秒、300ビット/秒の場合は1.1秒)プラス50ミリ秒の間応答がないと定義されます。[3]
数値は通常BCD形式で送信されます。[4]
参照
参考文献
- ^ m-bus.com - 物理層
- ^ 「6 – アプリケーション層 – M-Bus」。
- ^ 「5 – データリンク層 – M-Bus」。
- ^ 「6 – アプリケーション層 – M-Bus」。
- rSCADA libmbus C で書かれたオープンソースの M-bus ライブラリ。
- openmuc.org の jMBus M-Bus マスター Java ライブラリ。
- Valley.Net.Protocols.MeterBus C# で記述されたオープン ソースの M-Bus ライブラリ。
外部リンク
- m-bus.com
- [1] フリーSCADAプロジェクト
