Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1706793
  • 博文数量: 98
  • 博客积分: 667
  • 博客等级: 上士
  • 技术积分: 1631
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-27 15:59
个人简介

一沙一世界 一树一菩提

文章分类

全部博文(98)

文章存档

2021年(8)

2020年(16)

2019年(8)

2017年(1)

2016年(11)

2015年(17)

2014年(9)

2013年(4)

2012年(19)

2011年(1)

2009年(4)

分类: 信息化

2015-05-14 15:49:20

这几天,看bacnet协议具体应用有关的资料,这个感觉不错,转来留作记忆。

BACnet工具集是采用二进制演示应用命令行程序,这些程序使用BACNet/IP来进行BACNet的多种服务。某些工具使用BACnet WhoIs来建立设备,但也可以使用静态绑定文件地址缓存。

大多数工具都有--help选项并且使用环境变量以配置数据链路层。

客户端工具使用WhoIs来绑定目标设备。WhoIs由每个客户工具从当前工作目录读取,可以使用地址缓存文件清除。

从地址缓存文件获取设备地址会极大地改善客户端工具的速度和吞吐量。地址缓存文件可通过bacwi工具的标准输出产生。

 

示例:
bacwi -1 > address_cache

客户端工具 Client tools
------------
bacarf - BACnet AtomicReadFile service
bacawf - BACnet AtomicWriteFile service
bacdcc - BACnet DeviceCommunicationControl service
bacepics - BACnet EPICS for Device object.
bacrd - BACnet ReinitializeDevice service
bacrp - BACnet ReadProperty service
bacrpm - BACnet ReadPropertyMultiple service
bacscov - BACnet SubscribeCOV service
bacts - BACnet TimeSynchronization service
bacucov - BACnet UnconfirmedChangeOfValue service
bacupt - BACnet UnconfirmedPrivateTransfer service
bacwh - BACnet WhoHas service
bacwi - BACnet WhoIs service
bacwp - BACnet WriteProperty service

 

服务端工具 Server Tools
------------
bacserv - BACnet Device Simulator

路由器工具 Router Tools
------------
baciamr - BACnet I-Am-Router to Network message
bacinitr - BACnet Initialize Router message
bacwir - BACnet Who-Is Router to Network message

MS/TP包抓取工具 MS/TP Capture Tool
------------------
The mstpcap tool is used for capturing MS/TP traffic
from an RS-485 serial adapter and saving the packets
in a file for viewing by Wireshark.

Environment Variables
---------------------
BACNET_APDU_TIMEOUT- set this value in milliseconds to change
    the APDU timeout.  APDU Timeout is how much time a client
    waits for a response from a BACnet device. Default is 3000ms.

BACNET_IFACE - set this value to dotted IP address (Windows) of
    the interface (see ipconfig command on Windows) for which you
    want to bind.  On Linux, set this to the /dev interface
    (i.e. eth0, arc0).  Default is eth0 on Linux, and the default
    interface on Windows.  Hence, if there is only a single network
    interface on Windows, the applications will choose it, and this
    setting will not be needed.

BACNET_IP_PORT - UDP/IP port number (0..65534) used for BACnet/IP
    communications.  Default is 47808 (0xBAC0).

BACNET_BBMD_PORT - UDP/IP port number (0..65534) used for Foreign
    Device Registration.  Defaults to 47808 (0xBAC0).

BACNET_BBMD_TIMETOLIVE - number of seconds used in Foreign Device
    Registration (0..65535). Defaults to 60000 seconds.

BACNET_BBMD_ADDRESS - dotted IPv4 address of the BBMD or Foreign Device
    Registrar.

Example Usage
-------------
You can communicate with the virtual BACnet Device by using the other BACnet
command line tools.  If you are using the same PC, you can use BBMD/FD
(Foreign Device registration) to do this - use the bvlc script.  You can
monitor the interaction and bytes on the wire using Wireshark.  Here is 
an example usage for Window and for Linux.

 

Windows平台
-------
The BACnet tools are used from the Command Prompt, or CMD.EXE. 
From the command prompt window, start the simulated BACnet device:
c:\> bacserv 1234

From another command prompt window, use ipconfig to determine the
network interface IP address that bacserv is using: 
c:\> ipconfig

Use the default IP address to configure the BBMD and Foreign Device
environment variables:
c:\> bvlc.bat 192.168.0.42

bvlc.bat batch file configures environment variables to use BACnet/IP
port 47809 for any subsequent BACnet tools run from that command prompt window, 
and enables the BBMD Foreign Device Registration.

Perform a device discovery:
c:\> bacwi -1

Read all the required properties from the Device 1234 and display their values:
c:\> bacepics -v 1234

Read the Object_Identifier property from the Device 1234:
c:\> bacrp 1234 8 1234 75

Write 100.0 (REAL=4 datatype) to Device 1234 Analog Output (1) One (1)
at priority 16 with no index (-1).
c:\> bacwp 1234 1 1 85 16 -1 4 100.0

Each tool has help:
c:\> bacrp --help

Linux平台
-----
To use the tools from the command line, you need to use the path to the command,
or include the path in your PATH environment variable.  The dot "." means current
directory.  The "/" is used to separate directories. "./" means the path starts
from the current directory.

When the tools are built from the Makefile, they are copied to the bin/ directory.
So from the root of the project you could run the tools like this using a terminal
window:
$ make clean all
$ ./bin/bacserv 1234

In another terminal window use ifconfig to determine the network interface IP
address that bacserv is using: 
$ ifconfig

Use that address (likely from eth0) to configure the BBMD and Foreign Device
environment variables:
$./bin/bvlc.sh 192.168.0.42
bvlc.sh script configures environment variables to use BACnet/IP 
port 47809 for any subsequent BACnet tools run from that shell, 
and enables the BBMD Foreign Device Registration.

Perform a device discovery:
$ ./bin/bacwi -1

Read all the required properties from the Device 1234 and display their values:
$ ./bin/bacepics -v 1234

Read the Object_Identifier property from the Device 1234:
$ ./bin/bacrp 1234 8 1234 75

Write 100.0 (REAL=4 datatype) to Device 1234 Analog Output (1) One (1)
at priority 16 with no index (-1).
$ ./bin/bacwp 1234 1 1 85 16 -1 4 100.0

Each tool has help:
$ ./bin/bacrp --help

Source Code
-----------
The source code for the BACnet-Tools can be found at:

阅读(6547) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~