VOLTTRON Сбой прокси-агента Bacnet

Я пытаюсь настроить прокси-агент bacnet в проекте Volttron и по какой-то причине получаю эту ошибку в volltron. журнал, когда я запускаю прокси-агент:

Не могли бы вы указать, делаю ли я что-то не так в файлах конфигурации? Для IP-адреса устройства я пробовал три варианта в файлах конфигурации:

  1. IP-АДРЕС/24
  2. АЙПИ АДРЕС
  3. IP-АДРЕС: ПОРТ (47808)

Где ‹> — IP-адрес устройства.

К сожалению, ни один из них не работает.

Вот следующее описание различных файлов:

===========================VOLTTRON LOG==================== ============

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

идентификатор поставщика = 24


person Priyank Kapadia    schedule 28.06.2016    source источник
comment
Может ли модератор создать новый тег для проекта volttron? Я попробовал это, но это требует большей репутации.   -  person Priyank Kapadia    schedule 29.06.2016
comment
По теме тега: meta.stackoverflow.com/q/327040/3001761   -  person jonrsharpe    schedule 29.06.2016


Ответы (2)


Это распространенная ошибка. Когда вы настраиваете прокси-сервер bacnet, вы, по сути, создаете новое устройство BACnet и подключаете его к сети. Затем драйверы BACnet платформы VOLTTRON используют это устройство для связи с устройствами в вашей сети.

Это устройство не будет иметь ничего общего с любым другим устройством в сети, кроме порта, через который оно будет обмениваться данными.

Из документации прокси BACnet:

device_address — адрес, привязанный к сетевому порту, через который будет осуществляться связь BACnet на компьютере, на котором работает VOLTTRON. Это НЕ адрес любого целевого устройства.

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

Например, если ваша установка VOLTTRON находится на машине с IP-адресом 192.168.1.2, вы должны использовать его для настройки device_address в файле конфигурации BACnet Proxy.

Это будет то же значение, которое вы использовали в volttron/scripts/bacnet/BACpypes.ini для параметра «адрес», чтобы заставить работать сценарий bacnet_scan.py.

Это необходимо, если протокол BACnet использует UDP для всех коммуникаций и должен открыть порт для прослушивания ответов.

Вы также должны изменить параметр "object_id" обратно на 599 в конфигурации прокси-сервера. Судя по выходным данным bacnet_scan, использование 570009 может привести к конфликту с устройством, которое вы пытаетесь настроить. На языке BACnet это идентификатор устройства. Все идентификаторы устройств в сети BACnet должны быть уникальными.

Адрес устройства, с которым вы хотите связаться, используется в конфигурации конкретного устройства в конфигурациях 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"
}
person Kyle Monson    schedule 28.06.2016

Другими словами, device_address, который входит в конфигурацию прокси, является вашим локальным адресом, чтобы драйвер bacnet мог привязываться к интерфейсу на устройстве.

person Bora Akyol    schedule 28.06.2016