Knx ip协议和Java实现

  • Knx ip协议和Java实现
    • 介绍
      • 那么什么是KNX?
      • KNX 网络
      • KNX 电报
      • 返回 KNXnet/IP
  • Java实现

Knx ip协议和Java实现

介绍

KNXnet/IP 是一种通过 IP 网络(如本地 LAN 或 Internet)连接到 KNX 总线的协议。因此,让我们从KNX开始。

那么什么是KNX?

KNX 是楼宇自动化的开放标准。楼宇自动化是一个广泛的术语,涵盖了许多用例,包括但不限于:

  • 打开窗户时关热。
  • 根据室内空气质量控制通风。
  • 使用单个开关打开或关闭所有光源。
  • 根据光照水平自动调整窗帘(并在触发火灾报警时打开)。

为了实现所有这些不同的用例,许多不同的传感器和执行器需要能够进行通信。KNX标准规定了如何与此类设备建立网络,以及设备必须如何通信以确保互操作性。

KNX 网络

为了建立KNX网络,所有楼宇自动化设备都连接到总线,并通过在总线上发送和接收消息(称为电报)进行通信。示例网络可能如下所示:

这辆公共汽车上有三盏灯和四个开关。

总线上的每个设备都有一个唯一的单独地址(也称为物理地址)。单个地址是用点分隔的数字,例如交换机 A 具有单独的地址 3.4.1。在对设备进行编程时使用单独的地址,并识别给定电报的发送者。

除了单个地址之外,设备还可以与一个(或多个)组地址相关联。组地址是用斜杠分隔的数字,例如,交换机 A 与组地址 4/1/1 相关联。创建网络逻辑时使用组地址。当交换机 A 与 4/1/1 关联时,这意味着按下交换机将导致交换机向组地址 4/1/1 发送电报。

Lamp A 还与组地址 4/1/1 相关联 - 这意味着此致动器将侦听此地址上的电报。当它收到电报时,它将打开或关闭,具体取决于它收到的电报的内容。

因此,对于这个特定的网络,交换机A到C用于控制灯A到C,因为它们的组地址匹配。此外,所有灯都与4/4/1相关联,Switch X也与之相关联。这意味着Switch X可用于通过一次按压来控制所有灯具。

可以将组地址视为全局变量。连接到网络的任何设备都可以写入和读取这些变量。这样做只需要能够向网络发送电报。让我们仔细看看电报。

KNX 电报

当交换机(或其他传感器)需要告诉网络它已更改状态时,它通过向网络发送 GroupValueWrite 报文来实现此目的。电报将包含几个不同的字段,其中最重要的是:

服务:电报的类型。GroupValue在组写入的情况下写入。
发件人:发送消息的设备的个人地址。
目标地址:它所针对的组地址。
值:传感器上的新值。

如果在关闭状态时按上面的开关 A,它将发送如下电报:
服务:GroupValueWrite。
发件人:3.4.1。
目的地:4/1/1。
值:开。
网络上的每个设备都将接收电报,并且那些被编程为侦听此组地址的设备现在可以采取相应的行动。

**如果设备需要知道交换机 A 的状态,则必须向网络发送 GroupValueRead 电报。**假设 Lamp A 中的微控制器重新启动并丢失了其状态。它将发送如下电报:

服务:GroupValueRead.
发件人:2.4.1。
目的地:4/1/1。
值:不适用。
同样,所有设备都将收到该消息。由于交换机 A 拥有此组地址,因此它负责响应。它将通过发送 GroupValueResponse 来实现此目的:

服务:GroupValueResponse。
发件人:3.4.1。
目的地:4/1/1。
值:开。
如前所述,可以将组地址视为变量,因此它还具有与其关联的类型。这称为数据点类型(简称 DPT)。所有 DPT 都有一个名称和一个 ID(例如 具有 ID )。DPT 描述了几种不同的属性:DPT_TimePeriodMsec7.002

基本类型(例如,对于简单类型,布尔值,整数,浮点数,字符等 ) 对于日期时间等字段也可以是多值的。
值的有效范围(例如 )。0 ms … 65535 ms
单位(例如 )。ms
分辨率(例如 )。1 ms
值必须如何编码。
在一个组地址上解决的所有 GroupValueWrites 和 GroupValueResponses 的值将使用相同的 DPT 进行编码。由于电报中未指定数据点类型,因此只能通过将组地址映射到数据点类型来发现电报的正确解码方案。

返回 KNXnet/IP

如前所述,连接到总线的任何设备都将接收在其上发送的所有消息。事实上,有多种物理介质可用于创建 KNX 总线。总线通常基于连接所有不同设备的双绞线电缆,但也可以通过电力线电缆,中程无线电波和IP网络进行增强。KNXnet/IP 是用于在 IP 网络上扩展 KNX 总线的协议。

要使用 IP 网络扩充 KNX 总线,需要将 KNX IP 接口连接到总线。此 IP 接口充当 KNXnet/IP 服务器。服务器将侦听通过 的连接。UDP(可选也可选 TCP)。

要与 KNX 总线上的设备进行通信,客户端必须建立与 IP 接口的连接。客户端可以请求以下三种类型的连接之一:

管理,用于设备配置和管理。
隧道,由监控系统用于与 KNX 网络通信。
路由,用于在两个网络之间中继电报。
对于所有连接类型,都使用两个通信通道 - 核心和数据。核心通道用于在客户端和服务器之间建立连接,并通过常规检测信号进行维护。这适用于所有连接类型。

数据通道用于在客户端和 KNX 总线之间交换电报。电报使用通用外部消息格式 (CEMI) 进行编码。连接类型决定了交换哪些电报以及交换规则是什么。

Java实现

github地址

Knx ip协议和Java实现相关推荐

  1. Bacnet IP协议和Java实现

    Bacnet IP 楼宇自控BACnet/IP协议网关用于楼宇自控系统.楼宇自动化.楼宇信息系统,暖通HAVC行业实现联网,需要需要满足BACNet协议.PLC协议.Modbus协议.OPC UA协议 ...

  2. IP协议和TCP协议详解

    IP协议和TCP协议详解 IP协议 IP协议的特点 IPV4头部信息 IP分片 重定向 IPV6头部结构 TCP协议 TCP协议的特点 TCP头部结构 TCP连接的建立与关闭 异常终止连接 异常终止连 ...

  3. 用于地址解析的协议是服务器,tcp/ip协议和http协议

    TCP/IP 是一类协议系统,它是用于网络通讯的一套协议集合.浏览器 传统上来讲 TCP/IP 被认为是一个四层协议:应用层(telnet, ftp, http, smtp, dns等),传输层(tc ...

  4. Aria2 RPC接口协议和Java的本地调用实现

    如果你还没有启动aria2 : 安装和配置 目录 Aria2 RPC接口协议 Java实现 依赖 核心类 调用 Aria2 RPC接口协议 官方文档 方法列表 下载参数 本文中我们使用默认的本地调用, ...

  5. Modbus通信协议和Java实现

    Modbus通信协议 Modbus通信协议 介绍 RTU 存储区 通信 协议 栗子 说明书的地址 实现 Modbus通信协议 介绍 Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电 ...

  6. 身份验证协议和java安全框架

    一.身份验证协议 1.OAuth 关于 OAuth实际上是什么存在很多混淆.有些人认为 OAuth 是一种登录流程(例如,当您使用 Google Login 登录应用程序时),有些人认为 OAuth ...

  7. TCP/IP协议和OSI七层模型

    一.TCP/IP协议 标准TCP/IP协议是用于计算机通信的一组协议,通常被称为TCP/IP协议栈,以它为基础组建的互联网是目前国际上规模最大的计算机网络. 正因为互联网的广泛应用,使得TCP/IP成 ...

  8. 基于部标jt808(天琴、谷米),809协议和Java Netty框架构建北斗GPS定位系统

    演示平台:http://gps.lingx.com 账号:admin,密码:123456 1. 开发环境 操作系统:Windows 系列/Linux 系列/MacOS 32 位或 64 位都可以   ...

  9. 基于PT分析ARP协议和Wireshark分析ARP协议。

    一.Ip层主要的协议:ARP,ICMP,ip,IGMP ICMP:ping命令.(可以这么理解,先简单这么理解叭) 二.ARP技术原理(图片为网络图片,侵权即删) 首先我们得明白ARP工作在网络层.( ...

  10. Java爬虫技术—入门秘籍之HTTP协议和robtos协议(一)

    文章目录: 入门秘籍-Http协议与robots协议 内功修炼-深入理解网络爬虫概念,作用,原理和爬取方式及流程 山中奇遇-得授页面解析技术之Xpath 入驻兵器阁-获取爬虫神器之Jsoup 入驻兵器 ...

最新文章

  1. ARM32页表-虚拟地址到物理地址的转换
  2. 通过PSO实现不同函数的目标值计算和搜索
  3. eq linux_linux之shell编程(二)
  4. 四参数坐标转换c++_手持GPS的三参数计算方法
  5. django crm 03
  6. [2019人工智能实战_廖盈嘉]第1次个人作业
  7. 查询所有的oracle表、表空间、数据库连接等信息
  8. 基金回撤越大收益越高吗?
  9. Python 之 运算符
  10. mysql优化必知(mysql的语句执行顺序)
  11. java导入包srcy有红叉_eclipse导入web项目之后项目中出现小红叉解决办法
  12. error: Exited sync due to fetch errors
  13. Scrum板与Kanban如何抉择?vfmzulfdr板与按照ftjzox
  14. 各大著名汽车标志图 来历
  15. centos7密码破解
  16. 监控工具普罗米修斯(Prometheus)的介绍与安装
  17. netlink实现驱动和应用层通信
  18. 最近在做一些改变,想听听你的意见
  19. 凸优化 - 2 - 凸集和凸函数
  20. 保险不是场景,失去场景保险业将失去一切!

热门文章

  1. 数据挖掘(Data Mining)扫盲笔记
  2. 银行核心系统软件开发
  3. 如何阅读Java源码 阅读java的真实体会
  4. 【转载】C# ListView控件的一些用法
  5. 关于学习的反思(上)---系网开发记(2)
  6. Lyn for Mac v2.1 中文版 – 轻量级图片浏览器
  7. 信号驱动IO异步IO的对比理解刨析, epoll地ET,LT
  8. sms实现wap push的方法和格式
  9. 黑盒测试方法|测试用例的设计方法--等价类划分方法
  10. 网页上的文本不让你复制下载?老司机教你几招,轻松免费复制