首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未识别pointName的Bacnet设备

未识别pointName的Bacnet设备
EN

Stack Overflow用户
提问于 2016-07-05 22:51:56
回答 2查看 512关注 0票数 0

下面是我的伏特控管配置。我有一个与bacnet兼容的VAV,我使用grab_bacnet生成了配置csv。问题是bacnet代理以及bacnet驱动程序中的所有方法都无法从设备中获得任何信息。

这也是要注意的是,当我启动bacnet代理和主驱动代理时,volttron.log中没有显示错误。但是我尝试测试代理,如下所示,我得到了一个keyError,它告诉我要么请求到错误的设备,要么bacnet根本无法识别设备。

代码语言:javascript
复制
**Configurations**
*Master Driver*
{
     "agentid": "master_driver",
      "driver_config_list: ["absolute/path/to/test_bacnet1.config"]
}

**test_bacnet1.config** 
{
   "driver_config": {"device_address": "192.168.1.9",
                  "device_id":"990037" },
   "campus": "campus",
   "building": "building",
   "unit": "bacnet1",
   "driver_type": "bacnet",
   "registry_config":"absolute/path/to/csv.csv",
   "interval": 60,
   "timezone": "UTC"
 }

 *BACNET PROXY CONFIGURATIONS*
    "device_address": "192.168.1.5/24" #MY Laptop IP address

这是我在未运行testagent时得到的错误。

代码语言:javascript
复制
ERROR: Failed to scrape campus/building/bacnet1: 
RuntimeError('Device communication aborted: noResponse')

其次,在我的TestAgent上,通过执行器,我打了一个这样的电话:

代码语言:javascript
复制
          topic2 = 'campus/building/bacnet1/dmp_pos_1'
          PLATFORM_ACTUATOR = 'platform.actuator'
          PLATFORM_BACNET = 'platform.bacnet_proxy'
          REQUEST_NEW_SCHEDULE = 'request_new_schedule'    

          @Core.periodic(3)                                                                                                  
          def publish_heartbeat(self):                                                                                       
              _log.info('Agent Starting')                                                                                     
              result = self.vip.rpc.call(                                                                                     
                       PLATFORM_ACTUATOR,  # Target agent                                                                     
             'get_point',  # Method                                                                                 
              topic2  # point                                                                                        
                    ).get(timeout=10)                                                                                      
               _log.info('RESULT:'+str(result)

伏特森给了我一个错误: RemoteError:volttron.platform.jsonrpc.RemoteError("KeyError('dmpr_pos_1')")

编辑1 python脚本/bacnet/bacnet_can.py-ini脚本/bacnet/bacpypes.ini

代码语言:javascript
复制
 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

之后,我像这样运行了grab_bacnet:

代码语言:javascript
复制
python scripts/bacnet/grab_bacnet_config.py 990037 --ini scripts/bacnet/BACpypes.ini --out-file bac3.csv

其中一个值与csv文件中的如下所示:

代码语言:javascript
复制
    Reference Point Name    Volttron Point Name            Units                        Unit Details    BACnet Object Type  Property        Writable    Index   Write Priority  Notes
    flow_sp_1               flow_sp_1               cubicFeetPerMinute                                  analogValue         presentValue    FALSE          5                    Airflow Setpoint
    dmpr_pos_1              dmpr_pos_1              UNKNOWN UNIT ENUM VALUE: 4109                       analogValue         presentValue    FALSE          8                    Damper Position

有人能在这个问题上指导我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-06 00:34:58

看起来这里有两个问题。

首先,看上去该设备根本没有响应。这可能是由于配置问题test_bacnet1.config造成的。

您最初用于获取配置的命令行是什么?

第二,在代理中使用的点名与CSV文件中点的名称似乎不匹配。

请张贴你的CSV文件的内脏,以便我们可以看到可用的点名。

编辑

(我们实际上已经在电话中解决了这个问题,但我会在这里为后人加上这个问题。)

问题是,您没有提供设备ID和地址的正确组合。该地址始终是实际设备的地址,而不是碰巧坐在它前面的路由器。设备ID始终是实际的设备ID。

在bacnet_scan的输出中,地址使用"5701:37“,设备ID使用990037。

关键错误是设置错误的副作用。

最近添加了设备ID,以确保在大多数情况下BACnet代理可以建立到设备的路由。

票数 1
EN

Stack Overflow用户

发布于 2016-07-06 18:45:46

谢谢凯尔。我们的硬件配置使用BACnet路由器(ID 570009)和变风量控制器(ID 990037)。有了抓取配置,我们必须有两个注册点文件,与指定的Volttron名称。

这些是VAV控制器csv文件的grab_config外测试列(正如Priyank提到的,我们得到了大约75个寄存器点,但是我们显示了两个点,我们试图修改flow_sp_1和dmpr_pos_1):

代码语言:javascript
复制
Reference Point Name    Volttron Point Name            Units                        Unit Details    BACnet Object Type  Property        Writable    Index   Write Priority  Notes
flow_sp_1               flow_sp_1               cubicFeetPerMinute                                  analogValue         presentValue    FALSE          5                    Airflow Setpoint
dmpr_pos_1              dmpr_pos_1              UNKNOWN UNIT ENUM VALUE: 4109                       analogValue         presentValue    FALSE          8                    Damper Position

我们不确定这是否是grab_config问题。这些是设备的原始点列表。

代码语言:javascript
复制
Name              Value    Type  ObjectID DeviceID     Object Name  COVIncrement
Airflow Setpoint 2000.0cfm  BAV   AV:5    DEV:990037    flow_sp_1   1                   
Damper Position 100.0 %Open BAV   AV:8    DEV:990037    dmpr_pos_1  2

似乎Volttron(或grab_config)使用了对象名。

如果你能指导我们找出错误,我们将不胜感激。我们还使用BACnet路由器ID而不是VAV设备来修改配置文件。但我们还是得到了keyError

**test_bacnet1.config**

代码语言:javascript
复制
`{    "driver_config": {"device_address": "192.168.1.9",                   "device_id":"570009" },...`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38214065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档