Bacnet协议IP采集开发 总结
一、开发准备
a、模拟器 VTS和BACnetDeviceSimulator
b、主站 BACnetScan
c、参考文档 http://wenku.baidu.com/view/3052760f5acfa1c7aa00cc89.html?from=search
d、参考项目 https://github.com/kib357/BACsharp
二、开发概述
1、采集软件(主站)UDP监听47808 端口 ,同时向从站的网络47808端口广播召唤仪表(whois)
2、从站收到召唤指令向主站回复(IAM)
3、主站收到从站IAM之后,接着发送readproperty(propertylist指令),问询从站所有的数据点属性列表
4、从站回复读属性列表,主站接着(批量)读取属性的presentvalue
三、重难点
1、字节解析
2、报文分段
四、具体代码见参考项目
Bacnet协议IP采集开发 总结的更多相关文章
- 【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter对SOAP协议性能测试脚本开发
目录: 创建WebService接口模拟服务端 下载SoapUI 新建MathUtil.wsdl文件 创建一个SOAP项目 接口模拟服务端配置以及启动 JMeter对SOAP协议性能测试脚本开发 [阐 ...
- 认识BACnet协议
一.什么是BACnet? BACnet,Building Automation and Control networks的简称,即楼宇自动化与控制网络.是用于智能建筑的通信协议. 一般楼宇自控设备从功 ...
- BA-协议-BACnet 协议优势简析
BACnet - Building Automation and Control Network 的简称,为楼宇自控网络制定 的网络和通讯协议 .由美国暖通空调工程师协会主导制定的开放的楼宇自控通讯标 ...
- 【RL-TCPnet网络教程】第22章 RL-TCPnet之网络协议IP
第22章 RL-TCPnet之网络协议IP 本章节为大家讲解IP(Internet Protocol,网络协议),通过前面章节对TCP和UDP的学习,需要大家对IP也有个基础的认识. (本章 ...
- 基于MQTT协议进行应用开发
官方协议有句如下的话来形容MQTT的设计思想: "It is designed for connections with remote locations where a "sma ...
- Modbus协议和应用开发介绍
因业务需要了解Modbus协议的使用,因此对Modbus的协议,以及相应的C#处理应用进行了解,针对协议的几种方式(RTU.ASCII.TCPIP)进行了封装,以及对Modbus的各种功能码的特点进行 ...
- 各种非标232,485协议,自定义协议转modbus协议模块定制开发,各种流量计协议转modbus,
工业现场经常会碰到通过485或者232采集各类仪表数据,但是很多早期的仪表和设备不支持标准modbus协议,而是采用自定义的协议,这些协议数据由plc或者dcs系统来实现采集,不仅费时麻烦,而且不方便 ...
- TCP/IP协议---IP协议
IP协议层 在传输层的下边,链路层的上边. IP层封装后称为数据报(传输层叫数据段,链路层叫数据帧.值得注意的是,不是所有的以太网数据帧都是IP数据报,至少以太网还要使用ARP协议.不是所有的IP数据 ...
- http协议tcp协议ip协议三次握手四次挥手,为什么三次握手,为什么四次挥手,sockete套接字理解
1.1 TCP是什么? TCP是Tranfer Control Protocol的简称,TCP协议是一种面向连接的.可靠的.基于字节流的运输层通信协议.通过TCP协议传输,得到的是一个顺序的无差错的数 ...
随机推荐
- 记Weblogic部署BUG(websocket)
将含有websocket的SSM项目部署在Weblogic上面,遇到websocket报错如下 java.lang.ClassCastException: org.springframework.se ...
- classLoader和Class.forName的区别
public class ClassLoaderOrClassForName{ public static void main(String[] args) throws ClassNotFoundE ...
- Integer与String的知试点(java中常见面试题)
1.==符号使用 Integer a = 1000,b=1000; Integer c = 100,d=100; System.out.println(a==b); System.out.printl ...
- 调试利器GDB(上)
什么是GDB: GDB应用: 静态分析工具与动态分析工具: GDB启动方式: GDB启动之后会有一个交互式的命令行,可以输入GDB特定的命令让GDB去工作. gdb test.out意思是这一次gdb ...
- 连续多次调用inet_ntoa()结果重复
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <pcap.h> ...
- 大硬盘(大于2T)分区方法
背景 在使用fdisk建立分区时,我们最大只能建立2TB大小的分区.如需建立超过2T的分区需要采用GPT磁盘模式.下文补充一下GPT和MBR的基础知识和分超过2T分区的方法. 基本概念 MBR 1.M ...
- git pull时报错:refusing to merge unrelated histories
在Github新建一个仓库,写了README文件,然后把本地一个写了仓库上传,首先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pul ...
- Oracle数据库:ORA-54013错误解决办法
ORA-54013: 不允许对虚拟列执行 INSERT 操作 这是Oracle 11 的新特性 —— 虚拟列. 在以前的Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图 ...
- SpringBoot打成jar包后,获取不到读取resources目录下文件路径的问题
问题描述: Springboot没有打成jar之前,可以成功获取读取resources目录下xxx.json文件的 路径.但是打成jar包后,接口调不通,原因是获取不到文件的路径. 原因: 在本地进行 ...
- OnTriggerEnter2D方法
我两个物体A,B都添加了Circle Collider 2D,并且都勾选了is Trigger,我在A的脚本里用void OnTriggerEnter2D(Collider2D coll)检测碰撞,至 ...