2016-06-28 3 views
1

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

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

  1. Ipaddress/24
  2. IPADDRESS
  3. IPADDRESS: PORT (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 PROXY AGENT CONFIG =========== ===============

"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/скрипты/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 

VendorID = 24

+0

Может ли любой модератор создать новый тег для проекта volttron? Я попробовал, но это требует большей репутации. –

+0

По вопросу о теге: http://meta.stackoverflow.com/q/327040/3001761 – jonrsharpe

ответ

3

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

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

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

DEVICE_ADDRESS - адрес, привязанный к сетевому порту, по которому BACnet связи будет происходить на компьютере под управлением VOLTTRON. Это NOT адрес любого целевого устройства.

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" 
} 
2

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

Смежные вопросы