BACnet
BACnet/IP のビル自動化機器につなぎます。デバイスインスタンス、オブジェクトの型とインスタンスによるアドレス指定、Who-Is の機器検出、そして presentValue。
BACnet のドライバーは、BACnet/IP でビル自動化の設備と話します。どのタグも、BACnet のオブジェクト 1 つの現在値を読みます。アナログ入力の実時間の読み取り、バイナリ出力の状態、多状態値の位置などです。Connector の BACnet のドライバーの下に機器を追加してください。パネルは、このプロトコルが使う項目だけを見せます。
接続
| 項目 | 意味 | 既定 |
|---|---|---|
| ホスト | BACnet の機器(またはそれに代わって答えるルーター)の IP アドレスかホスト名。 | 空 |
| ポート | 機器の UDP のポート。0 は BACnet/IP の標準である 47808 を使います。 | 0 |
| 機器 ID | その機器のインスタンス番号、つまり Device オブジェクトの番号で、BACnet のネットワークの中で一意です。 | 0 |
機器の見出しは、組み立てられた接続先を見せます。たとえば bacnet://192.168.0.30:47808/1234 です。接続では、設備が答えることを確かめるために、機器のオブジェクトの一覧の大きさを尋ねる要求を 1 つ送ります。一覧そのものを巡ることはしません。その答えが接続です。答えない機器は、接続済みに見せかけるのではなくオフラインのままになり、その理由(UDP のポートがすでに取られている、アドレスがアドレスになっていない)が Events のページとその日のログのファイルに書かれます。このドライバーには読み出し周期の項目がありません。そのタグは 1 秒に 1 回読まれます。
アドレス指定
BACnet のタグは、タグの「取得元」のカードの 2 つの型付きの項目でアドレスを取ります。自由記述のアドレスはありません。
| 項目 | 意味 | 受け付ける値 | 既定 |
|---|---|---|---|
| オブジェクトの型 | 読む BACnet のオブジェクトの種類。 | 下の 9 つの型 | AnalogInput |
| インスタンス | その型の中でのオブジェクトのインスタンス番号。 | 0 以上 | 0 |
出るオブジェクトの型と、その標準の BACnet の型コードは次のとおりです。
| オブジェクトの型 | コード | 現在値が持つもの |
|---|---|---|
AnalogInput |
0 | 測定された数値 |
AnalogOutput |
1 | 指令された数値 |
AnalogValue |
2 | 保存された数値 |
BinaryInput |
3 | 非動作/動作 |
BinaryOutput |
4 | 非動作/動作 |
BinaryValue |
5 | 非動作/動作 |
MultiStateInput |
13 | 1 以上の状態の番号 |
MultiStateOutput |
14 | 1 以上の状態の番号 |
MultiStateValue |
19 | 1 以上の状態の番号 |
機器 1234 の AnalogInput 5 は、「その機器のアナログ入力 5 の現在値」という意味です。読み取りのたびに、そのオブジェクトの presentValue プロパティを尋ねます。ほかのプロパティを指すことはできません。「取得元」のカードの読み取り専用の取得元のアドレス(バス上)の行が、編集しているそばから組み立てられた type,instance の組を見せます。
データ型
データ型の選択肢には 4 つの型が出ます。オブジェクトに合うものを選んでください。
| データ型 | 合う相手 | 備考 |
|---|---|---|
| Float | アナログのオブジェクト | Real の現在値。倍精度は Float に縮められます |
| Boolean | バイナリのオブジェクト | Boolean の現在値、またはバイナリのオブジェクトが答える列挙の 0 と 1 |
| Int32 | 多状態やそのほかの整数の値 | 符号付き、符号なし、列挙の答えは、どれもここに届きます |
| String | 文字列の値 | 機器が送ってくるままの文字 |
選んだ型は、そのオブジェクトが持つものと合っている必要があります。別のもので答える機器は、そのタグの読み取りを失敗させます。タグは品質が悪くなり、理由が何が届いたかを名指しします(「Integer と宣言された点に対して、機器は Single の値で答えました。」)。変換された数値がトレンド、履歴、警報に入っていくことはありません。アナログのオブジェクトをブール値として読む、Real を Int32 として読む、というのがまさにこの場合です。機器の残りは読み取りを続けます。型の合っていないタグのために再接続が起こることもありません。
書き込み
アクセスが読み書きか書き込みのみのタグは書き込めます。書き込みは、そのオブジェクトの presentValue を、タグのデータ型に合わせた型で設定します。Float は BACnet の Real、Boolean は BACnet の Boolean、Int32 は符号付きの整数、String は文字列を書きます。書き込みに指令の優先度は付けません。現在値に別の型を求める設備(たとえば、列挙の値しか受け付けないバイナリ出力もあります)は、書き込みを拒否することがあります。そのときタグは、成功を装うのではなく失敗を報告します。新しいタグは読み取りのみから始まります。
機器検出
Connector の機器検出のボタンは、BACnet の Who-Is を同報し、I-Am の答えを 10 秒間聞きます。答えたすべての機器が、そのアドレス、ポート、デバイスインスタンスを運ぶ候補になり、接続の項目が埋まった状態ですぐ追加できます。しかも 10 秒の終わりではなく答えた瞬間に一覧に現れるので、途中で取りやめたスキャンでも、すでに答えていたものはすべて残ります。スキャンはオブジェクトを巡らないので、候補はタグ 0 件で届きます。オブジェクトの型とインスタンスの組は自分で追加してください。
BACnet のルーター越しに答える機器も、同じように追加されます。その候補はルーターのアドレスと、それに添えてその機器自身のネットワークと、そのネットワーク上でのアドレスを運びます。追加するときはどちらも保たれ、読み取りはすべて、中の機器を名指ししてルーターへ送られます。こうして見つかった機器は、ほかと同じように読まれ、その接続先は「ルーター経由の機器」と読めます。手で追加した機器は経路を持たず、そのホストへ直接届きます。
知っておくとよいこと
- BACnet/IP だけです。MS/TP や BACnet/SC の設備には、それを BACnet/IP で見せるルーター越しにしか届きません。そしてそれを見つけるのがスキャンです。機器が答えた経路はスキャンから保たれるので、項目を手で入力するのではなく、検出された一覧から追加してください。
- このドライバーは、このステーションの標準の BACnet の UDP ポート 47808 から通信します。同じ機械で別の BACnet のアプリケーションがそのポートを占有していると、ぶつかることがあります。
- このドライバーでは、読み出しはどのタグも 1 秒に固定です。いつもの読み出し周期の項目は出ません。