1.BACnet Client 扫描节点, 读取值
实现方式 C语言 或者 python
http://bacnet.sourceforge.net/
https://sourceforge.net/projects/vts/files/
https://sourceforge.net/projects/vts/

http://www.opcmaster.com/news.asp?cl_id=91

http://bacpypes.sourceforge.net/gettingstarted/gettingstarted001.html
可以用
http://bacpypes.sourceforge.net/gettingstarted/gettingstarted001.html
virtualenv

目前,楼宇自控系统(BAS)正在向系统集成方向发展,将各种子系统(消防报警、闭路监控、暖通空调、保安出入控制系统等)集成在一个网络平台上。BACnet的提出正是针对楼宇设备种类多样性的特点而制定的,它是12Q 的信号传输与数据通信的统一通信协议。而智能建筑的发展一直与因特网有着紧密的联系。首先,智能建筑的通信自动化子系统(主要指综合布线系统和计算机网络系统)的重要目的之一就是为实现信息共享提供传输通道和数据交换设备;其次,随着因特网的迅猛发展,智能建筑与因特网之间产生了越来越多的结合点,可以看到目前基于因特网的智能建筑应用技术和产品大批的涌现出来。而把,TCP/IP协议与BACnet标准相结合,使用TCP/IP协议来实现BACnet网络的互联与报文传输,必将为智能建筑向开放性和灵活性的发展提供更广阔的空间。

1 BACnet与TCP/IP

BACnet是楼宇自控网(building automation and control network)的英文缩写。它是由美国供热制冷与空气调节工程师协会(ASHRAE)组织的标准项目委员会历经8年半的时间于1995年6月通过的开放的协议标准。世界上已有100多个公司承认并参加,已正式被批准为美国国家标准和欧洲标准。它的宗旨是使不同厂家生产的楼宇自动化控制器能够互相通信和共享信息,最终实现不同厂家的控制器在这一标准通信协议下相互交换数据,相互操作控制。

资料2实现

http://bacnet.sourceforge.net/

https://blog.csdn.net/zhengxianghdu/article/details/8919729

VTS_Bacnet_调试工具
VTS基于Bacnet协议实现,主要用于和Bacnet设备进行通信。

快速开发BACnet产品之三(关于如何使用BACnetLib_Explore测试工具)
https://blog.csdn.net/fhg6000/article/details/47092583

资料选择:

《BACNet智能楼宇协议》英文

《智能楼宇BACNet原理与应用》中文

  1.  BACnetLib开发包:
    

    BACnetLib是最近在网上出现的一个专门用于快速开发BACnet产品的第三方开发包(www.bacnetlib.com),支持 C , C++ ,Java , C# 四种语言,核心代码是由C语言实现,通过增加外壳方式,支持C , C++ , Java , C#语,平台支持windows , linux , android , ios平台,并支持单片机程序运行,但需要厂家定制;

    http://www.bacnet.org/Tutorial/BACnetIP/

    BACNET之VTS的配置过程
    https://blog.csdn.net/qingtian506/article/details/18705809
    注:在运行vts之前,需要将bacnetserver运行起来,可从网上下载bacnet协议栈,在linux 虚拟机上来运行。

    1.首先下载vts运行包,vts-3.5.2-win32,此软件为免安装软件。

    2.解压后,请注意先安装上wincap,双击其中的.exe文件,即可打开文件,如下:

    http://www.bacnet.org/Developer/index.html
    在这里插入图片描述

    python 可以用

    虚拟机:VmWare 207
    /home/cpp/bacpypes/bacpypes/samples
    http://bacpypes.sourceforge.net/gettingstarted/gettingstarted001.html

    186上面是使用PC里面使用VTS模拟的
    在这里插入图片描述

    他们处于同一个局域网内部。

    $ python WhoIsIAm.py

    bacnet 资料git

    https://github.com/JoelBender/bacpypes.git
    https://bacpypes.readthedocs.io/en/latest/index.html

    https://gitter.im/JoelBender/bacpypes
    … |build-status| image:: https://travis-ci.org/ChristianTremblay/BAC0.svg?branch=master

    :target: https://travis-ci.org/ChristianTremblay/BAC0

    :alt: Build status

    … |docs| image:: https://readthedocs.org/projects/bac0/badge/?version=latest

    :target: http://bac0.readthedocs.org/

    :alt: Documentation

    … |coverage| image:: https://coveralls.io/repos/ChristianTremblay/BAC0/badge.svg?branch=master&service=github

    :target: https://coveralls.io/github/ChristianTremblay/BAC0?branch=master

    :alt: Coverage

    … _bacpypes : https://github.com/JoelBender/bacpypes

    … _bokeh : http://www.bokehplots.com

    https://pypi.org/project/BAC0/0.99.72/

    BACpypes Joel Bender read

    Windows下面使用

    git for windows :

    git clone https://github.com/JoelBender/bacpypes.git

    pip install virtualenv
    virtualenv -p C:\Python27\python.exe env
    cd Scripts
    activate
    python setup.py install
    cp “BACpypes~.ini” “BACpypes.ini”

    python samples/Tutorial/WhoIsIAm.py

    (稍后补充)

    关于这个项目 该BACnet库为嵌入式系统提供BACnet应用程序层,网络层和媒体访问(MAC)层通信服务。 BACnet-用于楼宇自动化和控制网络的数据通信协议-请访问bacnet.org。 BACnet是用于楼宇自动化和控制网络的标准数据通信协议BACnet是一个开放协议,这意味着任何人都可以为该标准做出贡献,并且任何人都可以使用它。 唯一需要注意的是BACnet标准文档本身已获得ASHRAE的版权保护,他们出售该文档以帮助支付开发和维护该标准的费用(就像IEEE或ANSI或ISO一样)。 对于软件开发人员而言,BACnet协议是在网络上发送和接收消息的标准方法,该消息包含其他BACnet兼容设备可以理解的数据。 BACnet标准定义了一种通过各种导线进 BACnet客户端示例C# 使用用CSharp编写的基本BACnet IP客户端示例。 客户端示例旨在与。 支持WhoIs,ReadProperty和WriteProperty服务。 可以从“页面下载此示例的内部版本。 在“页面上下载最新的发行zip文件。 将CAS BACnetStack_x64_Release.dll从CAS BACnet堆栈复制到发行文件夹中。 请联系Chipkin自动化系统以访问CAS BACnet堆栈。 使用以下命令启动客户端: dotnet BACnetClientExampleCSharp.dll D-WhoIs菜单-发送各种WhoIs消息 F-RegisterForeignDevice消息 C-发送SubscribeCOV消息 R-发送ReadProperty消息 A-发送ReadProperty全部消息 W-发送Writ 1.      前言: BACnet协议是在楼宇自控领域的一个国际标准协议,现在国内有不少厂家在自已的产品中要增加对此协议的支持,无非两种情况,一种让自已的产品提供软件接口能将数据通过BACnet协议接入至楼宇系统(如尼亚加拉,西门子等),另一种将协议栈嵌入自已产品中,在硬件上支持此协议; 因为市场竞争原因,厂家往往不想花太多精力,为此事从头开发编代码(目前网上BACnet开源项目只对C++语 <br />BACnet说明1       BACnet含义<br />A Data Communication Protocol for Building Automation and Control Network的简称,是一种为楼宇自控网络制定的数据通讯协议。 2       BACnet技术特点<br />BACnet采用了面向对象的技术,它定义了一组具有属性的对象(Object)来表示任意的楼宇自控设备的功能,从而提供了一种标准的表示楼宇自控设备的方式。同时BACnet定义了四种服务原语来传递某些 可以从“页面下载此示例的内部版本。 在“页面上下载最新的发行zip文件。 将CAS BACnetStack_x64_Release.dll从CAS BACnet堆栈复制到发行文件夹中。 请联系Chipkin自动化系统以访问CAS BACnet堆栈。 使用以下命令启动服务器: dotnet BACnetServerExample.dll 运行zip文件中包含的可执行文件。 预配置了以下示例BACnet设备和对象: 设备:389001(设备名称Rainbow) Analog_input:0(AnalogInput琥珀色) 模拟输入:1(AnalogInput Bronze) 模拟输入:2(AnalogInput Chartreuse) 1.      前言: BACnetLib是一个以C语言实现核心代码,通过接口调用,实现C++,C#,Java语言开发的一个第三方开发包,想正确使用此开发包,必须先了解下其面向对象的类结构,说来其实也简单,其类结构并不像MFC那样复杂,多重继承,只是一个简单的外壳封装,以方便用户能快速开发bacnet产品; 2.      类结构概述: 目前BACnetLib已完整实现BACnet2004所