一、 说明

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

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

驱动支持:

读取BACNet设备实例的属性值

读取BACNet对象实例的属性值,可读取的实例类型包括:

  • AnalogInput(AI),模拟量输入
  • AnalogOutput(AO),模拟量输出
  • AnalogValue(AV),模拟值
  • BinaryInput(BI),二进制输入,只存在AVTIVE和INACTIVE两种状态
  • BinaryOutput(BO),二进制输出,取值同BinaryInput
  • BinaryValue(BV),二进制值,取值同BinaryInput


可读取的属性包括:

  • Present Value(PV),对象实例的当前值
  • Priority Array(PA),优先级数组
  • Object Identifier(ID),对象的标识符(ID)
  • Object Name(NAME),对象名称
  • Object Type(TYPE),对象类型


写入BACNet对象实例的值,可写入的实例类型包括:

  • AnalogOutput(AO)
  • BinaryOutput(BO)

可写入的属性包括:

  • Priority Array(PA)
  • Object Name(NAME)


二、 BACNet驱动配置

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

1. BACnetScan

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



2. 驱动配置

系统驱动中在t_device_driver中配置好驱动,注意id为主键,不可重复


3. 设备配置

添加设备

Driver_id: t_device_driver中配置的BACNet驱动的id

Name:根据需要输入,参照设备ID所对应的设备名称输入

连接方式:other

连接参数:ip=xx.xx.xx.xx;port=47808。如果未输入,则默认为127.0.0.1;port如未配置则为47默认为808。若填写192.168.10.114:47808则代表仅访问相应ip下的设备,未输入则代表访问局域网上所有设备。

参数1:bacnet设备实例编号,数值类型,可以通过工具bacwi.exe,在命令行下运行bacwi,可以得到局域网中所有的设备以及它们的Device值,即为设备号。

参数2:bacnet设备网络编号,数值类型,可以通过工具bacwi.exe,在命令行下运行bacwi,可以得到局域网中所有的设备以及它们的SNET值,即为网络编号。

参数3:bacnet设备apdu最大值,可以通过工具bacwi.exe,在命令行下运行bacwi,查找设备的apdu最大值。

驱动的三个参数的查看方式如下图所示:


驱动设备的配置如下图所示:


4. 变量配置

在表t_device_tag或者t_class_prop中配置变量名称和变量地址。

变量地址格式为:{对象类型}:{对象实例号}:{对象属性}:{数组内的索引号}。如果对象属性为空字符串,则缺省为对象当前值(PV),数组内的索引号为空,则说明不是数组

如:

AI:0[:PV][-1]

AO:0读取AnalogOutput类型对象的第一个实例的当前值

AO:1:PV读取AnalogOutput类型对象的第2个实例的当前值

AO:1:PV:2 读取AnalogOutput类型对象的第2个实例的当前值数组的第3个元素的值



三、 模拟器与测试

模拟器的使用:

  • 安装x.x.exe,并通过邮箱取得临时验证码
  • 运行BACnetDeviceSimulator
  • 在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


测试步骤:

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