正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史记录

« 前一个 版本 14 当前 »

说明

本驱动是根据基础的BACNet协议开发的一个驱动。BACNet协议(A Data Communication Protocol for Building Automation and Control Networks),是由美国采暖、制冷和空调工程师协会(ASHRAE)制定的一个楼宇自动控制技术标准文件,BACNet协议最根本的目的是提供一种楼宇自动控制系统实现互操作的方法。它包含四个层次的简化分层体系结构,这四层相当于OSI模型中的物理层、数据链路层、网络层和应用层。

本文档提供:

  • eview驱动配置说明
  • bacnet模拟器配置说明
  • bacnet扫描程序配置说明

BACNet 协议通过定义工作站级通讯网络的标准通信协议,以取消不同厂商工作站之间的专有网关,将不同厂商、不同功能的产品集成在一个系统中,并实现各厂商设备的互操作,从而实现整个楼宇控制系统的标准化和开放化。它是为计算机控制采暖、制冷、空调HVAC系统和其他建筑物设备系统定义服务和协议,从而使BACNet协议的应用以及建筑物自动控制技术的使用更为简单。

驱动支持:

  • 读取BACNet设备实例的属性值。读取BACNet对象实例的属性值,可读取的实例类型包括:
    • AnalogInput(AI),模拟量输入
    • AnalogOutput(AO),模拟量输出
    • AnalogValue(AV),模拟值
    • BinaryInput(BI),二进制输入,只存在AVTIVE和INACTIVE两种状态
    • BinaryOutput(BO),二进制输出,取值同BinaryInput
    • BinaryValue(BV),二进制值,取值同BinaryInput


  • 每个对象根据类型不同,可读取的属性包括(齐总PV是最常用的):
    • Present Value(PV),对象实例的当前值
    • Priority Array(PA),优先级数组
    • Object Identifier(ID),对象的标识符(ID)
    • Object Name(NAME),对象名称
    • Object Type(TYPE),对象类型


  • 写入BACNet对象实例的值,可写入的实例类型包括:
    • AnalogOutput(AO)
    • BinaryOutput(BO)
  • 可写入的属性包括:
    • Present Value(PV)。这是最常用的
    • Priority Array(PA)
    • Object Name(NAME)

注意:

  • 模拟器和驱动不能同时运行在本机上,否则端口47808冲突!

BACNet驱动配置

《BACNet驱动配置》目的是通过BACNet驱动读取BACNet设备或模拟器的值。

BACnetScan

BACnetScan是BACNet的客户端工具,他可以扫描相应的BACNet上的设备,以及实例属性等信息。BACnetScan运行时截图如下:

驱动配置

登录系统配置,查看驱动里面配置了bacnetIP协议。如果未配置可自行添加该驱动,在修改信息中配置如下参数见下图

设备配置

在设备列表中增加一个设备,驱动选择:bacnetdrv

  • 驱动:必须为bacnetdrv
  • 名称:根据需要自定义该bacnetip设备的名称
  • 连接方式:必须选择自定义
  • 连接参数:ip=设备IP;port=47808。
    • 示例:ip=10.8.20.25或者ip=10.8.20.25;port=47808
    • port可不配置,如未配置则默认为 47808
  • 参数1:bacnet设备实例编号
    • 整数
    • 获取方法:
      • BacNetScan工具扫描(推荐
        • 可以通过工具BacnetScan,搜到局域网中所有的设备以及它们的Device值,即为设备号。 如下图中设备号:0
      • bacwi.exe工具查看
  • 参数2:bacnet设备网络编号
    • BacnetScan扫到设备的属性中的SNET(见下图),即为网络编号。如这里是:20
  • 参数3:bacnet设备apdu最大值
    •  BacnetScan扫到设备的属性中max-apdu-length-accepted,如下图中的值为:1024。如果未设置,则默认取1024。

设备的三个参数的查看方式如下图所示:

【数据库中设备配置信息如下】:

变量配置

在设备管理/设备变量管理中,新建一个变量,其中关键参数需要填写

  • 设备:选择前面的bacnet设备名称
  • 类型:设备变量,表示从设备读取值的变量类型
  • 名称:变量名称,根据需要自定义
  • 地址:参考下面BacnetScan工具扫描得到的变量信息,输入地址。
    • 变量地址格式为:{对象类型}:{对象实例号}:{对象属性}:{数组内的索引号}。
    • 如果对象属性为空字符串,则缺省为对象当前值(PV),数组内的索引号为空,则说明不是数组。
    • 注意:BacnetScan扫描到的(Anolog Input 1),其中:
      • Analog Input对应AI,1对应对象实例号1(不是0)
      • Analog Output对应AO
      • 如:
        • AI:1,读取Analog Input 1的PV
        • AO:1读取AnalogOutput类型对象的第一个实例的当前值
        • AO:2:PV读取AnalogOutput类型对象的第2个实例的当前值
        • AO:2:PV:2 读取AnalogOutput类型对象的第3个实例的当前值数组的第3个元素的值
    • 具体设备的地址可以用BacnetScan工具搜索和查看。下载地址:ftp://ftp.peakinfo.cn/software/BACnet目录,并运行BACnetScan.exe

      如上图地址应为:AI:0:PV,数据类型为:float

  • 数据类型:根据BacnetScan扫描得到数据类型,常用的有int32、float等
  • 其他字段根据需要填写

【提示:数据库中,在表t_device_tag或者t_class_prop中配置变量名称和变量地址。】

测试步骤

  • 按照设备配置、变量配置里的说明完成相应的参数输入
  • 依次运行eview/bin目录下的bat,pknodeserver.exe文件,然后运行pkTagMonitor.exe文件观察所建立的BacNet变量
  • 运行exe驱动,观察测试得到的值,如下图所示:

扫描程序

注意点

  • 模拟器和驱动、扫描程序不能同时运行在本机上,否则端口47808冲突!

下载与安装

使用

  • 双击左侧BACNet IP,如果同一网段有BACNet设备或者模拟器,应该可以直接扫描出来,如图:
  • 双击某个具体设备如Device1,会展开设备下所有对象
  • 双击具有数值的对象,如这里Analog Value,右侧会显示其值和属性

模拟器与测试

注意点

  • 模拟器和驱动、扫描程序不能同时运行在本机上,否则端口47808冲突!
  • C:\Program Files\CBMS\BACnet Simulator\,可以在桌面快捷方式方式直接运行

下载

模拟器的使用

  • 安装完成后,缺省目录:C:\Program Files\CBMS\BACnet Simulator
  • 运行:
    • 进入目录,C:\Program Files (x86)\SCADA Engine\BACnet Device Simulator\,执行:simulator.exe 
    • 开始里面找:安装后的程序 BACnet Device Simulator
  • 配置虚拟设备的网卡
    • 在虚拟设备上右键:Properties,确保Network Adapter选择能够和本机电脑ping的通的网卡。
    • 如果simulator安装在虚拟机上,关闭防火墙 
  • 打开已有的配置文件,点击菜单打开,缺省应进入目录:C:\Users\Administrator\Documents\CBMS Projects\Simulator
    • 选择一个all_object_types.dat
    • 会打开一个设备,包含所有的数据类型
  • 自己新增设备
    • 在BACnetNetwork下右键,选择:Add Bacnet Device增加一个设备,名称为MyDevice1,结果如下,显示名称为Device 0/Device/Instance 0:

  • 在Device0下右键,选择:Add BACNet Object,名称输入 MyObject1:

  • 在Device0下右键,选择:Add BACNet Object,名称输入 MyObject2,类型选择AnalogOutput


  • 复制Device0为Device 1
  • 修改Device0/AnalogInput Instance0的presentValue为399


  • 无标签