改善KNX 总线通讯可靠性的若干方法

2020-12-15 08:37杨毅
科学技术创新 2020年36期
关键词:支线报文总线

杨毅

(南京榕树自动化系统有限公司,江苏 南京210000)

1 背景

KNX 标准是唯一全球性的、开放型住宅和楼宇控制标准,已经被批准为欧洲、国际、中国、美国标准,标准包括TCP/IP、TP(双绞线电缆)、RF(射频)等介质的通讯协议技术,其中,应用较为广泛的是基于TP1 的KNX 系统[1]。

KNX 网络中的每个设备具备独立的物理地址,根据KNX 网络拓扑特点,设备地址采用设备/线路/域三层描述方法,设备地址取值范围为0~255,域地址取值范围为0~15,线路地址取值范围为0~15,一个网络结构最多可配置设备数目为16×16×256=65536。

系统采用耦合器将线路和域关联完成系统扩展,满足大型控制系统的需求,耦合器具备总线隔离和信号驱动的功能[1]。但在一些大型项目应用中,经常会出现控制失败、状态指示错误、操作响应等待时间长等问题,经过检查主要是因为现场总线报文过多,总线长期被占用,部分模块由于不能正确将报文即时发送到总线上而导致通信报文丢包。针对KNX总线报文过多导致的通讯可靠性下降问题,本文给出了以下改善策略。

2 解决方案

2.1 拓扑结构改进

线路是KNX 系统最小的结构单元,一般情况下(使用一个640mA 总线电源),同一线路上最多可以安装64 个总线元件。特殊场景下,如果同一线路上元件数目超过规定,可以计算线路长度和总线通讯负荷后,通过增加中继设备来提高线路带载能力,最多一条线路可以增加到256 个总线设备。

由于KNX 总线的电阻,电感等分布参数对总线供电和信号传输的影响,一条线路(包括所有分支)的导线长度不能超过1000m,总线设备与最近的电源之间的导线距离不能超过350m。为了确保避免报文碰撞,两个总线装置之间的导线距离不能超过700m[3]。

基于TP1 双绞线的KNX 网络通讯方式中,KNX 报文通常采用9600bps 的通讯速率,在大多数厂家的KNX 应用案例中,多采用下图中的拓扑结构,IP 路由器作为区域耦合器,完成KNX 网络与IP 网络互连。线路耦合器作为支线耦合器,完成KNX 支路到主线连接,一条线路最多可以安装64 个总线元件,主线上的报文汇总了各个支线上的报文,所以主线上报文数量较多,容易出现总线长期被占使得主线上的耦合器模块接口报文无法发出而被丢弃的现象。

工程应用中,在满足业务需求的前提下,对于报文较多的支线可以拆分成多个支线,改善此问题。网络拓扑设计中需要严格控制支路上元件数量与主线上线路耦合器数目,避免总线长期被占用导致的报文被丢弃现象。

线路耦合器采用MSP430 低功耗单片机,主频8M,负责KNX 线路上数据的处理和交换。路由器有专门的电源端子,采用ARM CORTEX-M0 内核的32 微控制器,主频32M,负责KNX 线路和IP 数据的处理和交换,可以以较高的速度来处理IP 侧的数据包。采用下图的方式的网络结构,采用IP 路由器作为支线的耦合器,支线上的报文直接被转发到以太网上,由于IP 侧一般是10M或者100M的以太网,其通讯速度远大于TP1总线上的报文速度,可以很大程度上减少由于总线繁忙而造成的报文丢包。

2.2 路由过滤功能的启用

一般KNX 网络中的线路耦合器、IP 路由器模块都有报文过滤功能,此功能可以过滤总线上的报文,防止不必要的报文被转发到上一层线路中,或者将上层线路中并非此支线中的报文接转发的支线上去。

如下的总线拓扑结构,其中组地址5/2/1,6/3/1 的分布情况如下图阴影区域所示,在没有开启各个IP 路由器的路由功能时,如果物理地址为1.2.1 的模块向总线上发送了5/2/1 的组地址的报文,则网络上的其它模块都能接收到此报文,实际上支线1.1.0,2.1.0,2.2.0 上是不需要此报文的,此报文被传送到这些支线上占用了通讯线路。同样,物理地址为2.1.1 的模块向总线上发送了6/3/1 的组地址报文,也通过IP 线路转发到其它各个支线上去。通过ETS 软件,可以开启IP 路由器的路由功能,则组地址5/2/1 的报文只会被转发到1.3.0 的支线上去,而组地址6/3/1 的报文不会被发到IP 网络上,这样可以减少支线和主线上通讯报文的数量。

2.3 功能配置的优化

KNX 厂家在设计KNX 模块时为了产品的应用更加广泛,往往将模块的功能参数尽可能地做得灵活可配置,项目调试人员在进行现场模块的配置时要先去分析各个通讯模块的作用和模块的配置方法。对于一些现场不需要使用的功能应该关闭功能开启开关,对于一些定时发送的通讯对象要根据实际情况在不影响使用的前提下减少发送的频度。

开关驱动器是智能控制项目中最常用的元件之一,通常分为四路,八路等,开关驱动器带有电流检测功能,并能够将检测电流值通过KNX 总线传输给其它设备。

项目中如果使用使用了大量开关驱动器并开启了电流检测功能,必然给总线通讯带来较大负担,可以采用定时发送方式和变化量门限发送的方式改善此功能。定时发送方式在现场应用中可以不去启用或者采用较长时间的定时发送。变化量门限方式是设置一个变化量,当变化量超过此门限后,就会将当前的电流值发送到总线上去。此电流可以根据现场负载的大小实测后确定。

2.4 模块算法的优化

KNX 产品开发厂家设计时就要去优化模块的设计。考虑到TP1 总线的通讯速率较低,要尽量去减少非必要数据的发送频率。如开关驱动器中电流检测功能,在现场经查配置了按照变化率的大小来触发其发送,在设计时为了减少总线上的报文,需要将模块的稳定值发送到总线上,而不需要将变化中间的值发送到总线上。在项目实际应用中,灯具打开启动之后的一段时间内电流并不稳定,这一段时间的电流是不断变化的,如果模块按照变化量的大小不断更新电流指示的报文,就会造成总线报文的冲突。所以模块在处理采集的电流值时必须先对电流稳定情况进行判断,如果连续多次电流的相对变化值比较大,说明电流还未稳定,可以暂时不更新电流值,连续多次电流的相对变化值比较小,则电流值趋向稳定,在电流稳定后再把电流指示发到总线上去。对于未变化到稳定值的电流暂时不予以更新,这可以减少灯具启动时的报文数量。

当批量控制设备打开时,系统中模块的每个通道都会发送报文并等待确认报文,是最容易出现总线堵塞的时候,采用模块级确认方法代替原有通道级确认方法,可有效减少堵塞的发生。

3 结论

现代绿色建筑,智能家居,建筑能源管理系统的建设对建筑内各个强弱电子系统提出了更高的集成需求。KNX 网络作为建筑物智能控制系统的主要控制网络之一,需要具备更大的系统容量和承载更多的通信负载能力。通过多年项目实践,本文总结了提高KNX 总线通讯可靠性的若干方法,通过上述方法在产品设计、系统规划和工程调试等阶段分别对KNX 网络及设备进行性能调优,能够使控制网络的可靠性、健壮性得到较大提升,为建筑的最终用户提供一个安全、绿色、智能的建筑智能控制系统。

猜你喜欢
支线报文总线
基于J1939 协议多包报文的时序研究及应用
北京地铁11号线冬奥支线的冬奥元素探讨
低轨星座短报文通信中的扩频信号二维快捕优化与实现
支线飞机替换战略的经济性分析
2021年民航支线航空补贴预算方案公示
浅析反驳类报文要点
机型运营经济性对比与支线市场探索——以内蒙古为例
一种基于CAN总线的误码测试方法
DCOM在混合总线自动测试系统的应用
基于AVR单片机的RS485工业总线开发设计