1

Volttron プロジェクトで bacnet プロキシ エージェントを構成しようとしていますが、何らかの理由で、プロキシ エージェントを起動すると、volltron.log に次のエラーが表示されます。

構成ファイルで何か間違ったことをしているかどうかを教えてください。デバイスの IP アドレスについては、構成ファイルで 3 つのバリエーションを試しました。

  1. IPADDRESS/24
  2. IPアドレス
  3. IPADDRESS:ポート(47808)

<> はデバイスの IP アドレスです。

残念ながら、これらのどれも機能しません。

以下は、さまざまなファイルの説明です。

============================ボルトロンログ=================== ============

2016-06-28 13:55:31,888 (bacnet_proxyagent-0.1 7777) <stderr> 
ERROR: socket.error: [Errno 99] Cannot assign requested address

================================================== ========================

=====================BACNETプロキシエージェントの設定======================== =

"agentid": "bacnet_proxy",

#Maximum APDU legnth accepted
#This setting determines the largest APDU accepted by the Volttron BACnet virtual device.
    #Valid options are 50, 128, 206, 480, 1024 (default), and 1476
    "max_apdu_length": 480,

    #ID of the Device object of the virtual bacnet device.
    #Defaults to 599
    "object_id": 570009,

    #Name of the bacnet network object
    #Defaults to "Volttron BACnet driver"
    #"object_name": "Volttron BACnet driver",

    #Vendor ID of the virtual bacnet device.
    #Defaults to 15
    "vendor_id": 24,

    #Required, use this network interface for the virtual device.
    "device_address": "192.168.1.9"

volttron/scripts/bacnet/bacnet_scan.py を実行した結果は次のとおりです。

Device Address        = <Address 192.168.1.9>
Device Id             = 570009
maxAPDULengthAccepted = 480
segmentationSupported = segmentedBoth
vendorID              = 24
Device Address        = <RemoteStation 5701:37>
Device Id             = 990037
maxAPDULengthAccepted = 480
segmentationSupported = segmentedBoth

ベンダー ID = 24

4

2 に答える 2

3

これはよくある間違いです。bacnet プロキシを設定すると、本質的には、新しい BACnet デバイスを作成してネットワークに配置することになります。VOLTTRON プラットフォームの BACnet ドライバーは、このデバイスを使用してネットワーク上のデバイスと通信します。

このデバイスは、通信に使用するポートを除いて、ネットワーク上の他のデバイスと共通点はありません。

BACnet プロキシのドキュメントから:

device_address - VOLTTRON を実行しているコンピューターで BACnet 通信が行われるネットワーク ポートにバインドされたアドレス。これは、ターゲット デバイスのアドレスではありません。

http://volttron.readthedocs.io/en/develop/core_services/drivers/BACnet-Proxy-Agent.html

たとえば、VOLTTRON が 192.168.1.2 の IP を持つマシンにインストールされている場合、BACnet プロキシ構成ファイルのdevice_address設定にそれを使用します。

これは、bacnet_scan.py スクリプトを機能させるために「アドレス」設定に volttron/scripts/bacnet/BACpypes.ini で使用した値と同じになります。

これは、BACnet プロトコルがすべての通信に UDP を使用し、応答をリッスンするためにポートを開く必要がある場合に必要です。

また、プロキシの構成で「object_id」設定を 599 に戻す必要があります。570009 を使用した bacnet_scan の出力に基づくと、セットアップしようとしているデバイスとの競合が発生します。BACnet の用語では、これはデバイス ID です。BACnet ネットワーク上のすべてのデバイス ID は一意でなければなりません。

通信したいデバイスのアドレスは、MasterDriverAgent 構成の特定のデバイスの構成で使用されます。

たとえば、次のような MasterDriverAgent 構成を使用します。

{
    "agentid": "master_driver",
    "driver_config_list": [
        "/home/volttron/volttron/examples/configurations/drivers/bacnet.config"                 
    ]
}

ターゲット デバイスのアドレスを bacnet.config に入れます。

{
    "driver_config": {"device_address": "192.168.1.9",
                      "device_id": 570009},
    "campus": "campus",
    "building": "building",
    "unit": "bacnet1",
    "driver_type": "bacnet",
    "registry_config":"/home/volttron/volttron/examples/configurations/drivers/bacnet.csv",
    "interval": 60,
    "timezone": "UTC"
}
于 2016-06-28T22:49:39.580 に答える
2

つまり、プロキシ構成に入る device_address はローカル アドレスであるため、bacnet ドライバーはデバイス上のインターフェイスにバインドできます。

于 2016-06-28T22:59:25.733 に答える