关于KNX/IP 网关协议报文解析以及几个注意事项

最新在调试KNX/IP网关协议,所以分享下KNX/IP网关协议的一点理解,KNX/IP协议是在KNX协议的第三章,03_08_01开始到03_08_10。可以自行参考源文档

1、搜索网关

      

   

协议里定义了客户端搜索IP网关的ID,0x0201,和IP网关回复的ID,0x0202,报文显示如下

客户端发送搜索网关命令后,在同一网络的所有IP网关会上报回复自己的详细信息。

2、建立连接 

协议里定义了客户端发送建立连接请求,0x0205,和IP网关回复的ID,0x0206,报文显示如下

客户端发送建立连接请求后,正常情况下在10s内收到IP网关回复的连接回复,如果10s内收不到,客户端应该忽视后面的连接回复报文,等待下一次连接请求发出。IP网关的连接回复报文里面有一个字段很重要,就是Communication Channel ID,比如上面的CID就是03,每一次IP网关与客户端建立连接后都有一个特定的CID,用来表示建立的通道号,这个通道号是后面所有数据通信的ID。

3、心跳包

在KNX/IP协议里有定义了客户端与IP网关之间的心跳报文机制,用来作为有效连接的判断

客户端发送连接状态请求报文0x0207,正常IP网关应该在10s内回复连接状态回复0x0208,如果IP网关未在10s内回复,则客户端重复发送3遍请求报文,如果都没有收到回复,则客户端应该主动断开与IP网关之间的连接。IP网关在120s内如果未收到任何状态请求报文,则客户端发送断开连接请求。协议如下

 

4、断开连接

大多数情况下应该由客户端主动发送断开连接请求,在内部错误或者收到无效数据包情况下,IP网关也可能会发送断开请求给客户端,不过协议还是建议客户端发送断开请求。在调试过程中我发现,客户端如果跟IP网关建立连接成功以后,如果客户端没有发送断开连接请求,再建立一个连接的话,会发生IP网关发送的断开请求,导致出错,错误报文如下:

后来分析后发现,如果正常建立连接后客户端跟IP网关之间有一个指定的通道号,但是未正常断开的IP网关再跟客户端建立连接后,连接成功的通道号会跟之前的不一样,之前的通道号又会存在,这时候客户端往IP网关发数据就会产生这样的错误报文,从而导致IP网关自动断开连接。

 

5、数据收发通讯

这一章协议在03_08_04有详细说明

协议里定义的数据发送方式如下

                           

报文如下:

客户端往一个组地址写值,可以看出每一次发送请求后都有一个Ack帧回复,这是协议规定的,同时注意到这里有一个字段也很重要,就是Sequence Counter,这里报文的序号计数器值的从0变到1,协议如下有说明,在每一次成功数据通讯过程中这个计数值应该加1。

关于Ack帧,这里应该注意如果没有在1s内收到Ack帧,客户端应该再发一次请求帧,然后断开连接

所以Ack帧的回复应该保证在1s内,这样才不会出错。

 

以上就是关于KNX/IP 网关协议里面的一些基本操作和重点。

 

 

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
KNX(Konfugurations-Neuman-eXpress)是一种开放的、供应商无关的建筑自动化通信协议。它被广泛应用于建筑物的智能化控制系统中,包括照明、采暖、空调、安全系统等各个方面。KNX协议提供了一种标准化的方式来实现设备之间的通信,使得不同供应商的设备可以相互交互并协同工作。 KNX协议软件是用于实现KNX通信的软件工具。它可以在不同的计算设备上运行,包括PC、服务器、嵌入式系统等。KNX协议软件提供了各种功能和工具,用于实现KNX设备之间的通信和数据交换。它可以通过串行接口(RS-232或RS-485)或以太网接口实现与KNX设备的连接和通信。 KNX协议软件提供了一套编程和配置界面,使得用户可以方便地配置和控制KNX设备。通过这些界面,用户可以设置设备的物理地址、功能参数、通信速率等等。同时,KNX协议软件还支持通过图形化的界面进行设备的程序设计和逻辑控制。 OPC(OLE for Process Control)是一种用于工业自动化系统的通信协议。它提供了一种标准化的方式来实现不同设备之间的数据交换和通信。OPC协议软件是用于实现OPC通信的软件工具。它能够连接到不同的设备,并提取和传输设备所产生的数据。 OPC协议软件可以将不同设备的数据转换为统一的格式,并在系统中进行数据交换。它支持各种常用的工业通信协议,如Modbus、Ethernet/IP、Profibus等。OPC协议软件提供了一套编程和配置界面,使得用户可以方便地配置和控制OPC通信。用户可以设置设备的参数、通信方式、数据采集周期等等。 在实际应用中,KNX和OPC通信协议软件可以结合使用,以实现建筑自动化系统和工业自动化系统之间的数据交换和通信。这样,建筑物的各个子系统可以与工业设备实现无缝连接,提高系统的整体性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值