现代建筑消防联动窗控系统通信设计 | ![]() |
建筑中窗体大多使用消防控制箱进行日常开启以及消防联动, 一个控制箱可控制数十个窗户的开启和关闭。控制箱中一般会加入风雨传感器、温湿度传感器等传感器进行外界环境的感知, 以便控制中心调节环境参数, 以适应生产生活的需要。现代建筑物中一般会采用多个控制箱进行控制, 但是由于智能窗控系统技术不够成熟, 尚存在以下问题:
1) 控制箱的开启需要操作人员单独对每个控制箱进行开关停操作, 程序繁琐。
2) 各个控制箱之间不能进行信号传递, 导致不可以进行消防联动, 在紧急状况下反应时间不够快, 不利于保障人们的生命财产安全。
本文为上述问题提供了一种解决方案。该方案涉及一种主从控制系统, 系统中以触摸屏为上位机(Master), 以单片机为控制核心的“日常开启消防排烟控制箱”(以下简称控制箱)作为下位机(Slave), Master和Slave通过Modbus通信协议实现双方通信。Master之间通过RS485总线进行数据传输。
1 系统通信解决方案 1.1 Modbus通信协议简介Modbus协议是美国Modicon公司开发的总线协议, 可实现主从即时通信, 简单方便。Modbus协议定义了能被处理器识别的消息帧结构, 可保证主机和从机之间的良好通信模式[1-5]。该协议是一种广泛应用于电子控制器上的通用数字通信协议, 包括美国标准信息交换码(ASCII码)模式、远程终端单元(RTU)模式[6]。Modbus通信协议是一个请求/应答协议, 并且提供功能码规定的服务。Modbus协议中的功能码是请求/应答PDU的元素。Modbus协议的2种传输方式为ASCII模式和RTU模式(Remote Terminal Unit)。对于ASCII模式, 一个8位字节分为2个ASCII字符传输; 而采用RTU模式时, 一个8位字节则利用2个4位16进制字符传输[4]。Modbus的ASCII、RTU协议规定了消息、命令和应答的方式, 数据通信采用“主从”(Maser-Slave)方式:主站Master端发出数据请求消息, 从站Slave端接收到正确消息后就可以根据主站查询提供的信息做出相应反应, 同时发送数据到Master端以响应请求; Master端也可以直接发消息修改Slave端的数据, 实现双向读写[1]。系统中只能有一个主机, 可以有多个从机, 从机地址为0-247。其中地址为0时, 表示广播码, 实际的主机地址为1-247。一个完整的数据通信过程包括Master的请求及Slave的应答两部分。Modbus通信标准协议可以通过各种传输方式传播, 如RS232C、RS485、光纤、无线电等。Modbus协议需要对数据进行校验。串行协议中除有奇偶校验外, ASCII模式采用LRC校验, RTU模式采用16位CRC校验。本系统基于实际情况采用RS485总线进行数据传输, 采用RTU模式, 如表 1所示。
表 1 Modbus-RTU报文帧格式 |
![]() |
Modbus-RTU格式的报文帧与其他通协议的报文帧格式有所不同, 本协议中的报文没有采用ASCII中的起始标志位与结束标志位, 而是通过计算字符之间的间隔时间来判断一串报文的起始和结束。即在RTU模式下, 报文帧由时长至少为3.5个字符时间的空闲间隔区分, 若下位机收到一个字符之前有3.5个字符时间是空闲的, 则认为此报文开始, 同理也可判断报文的结束。地址表示Slave的地址, 在本系统中可以表示第几个控制箱。功能码表示此码的功能:读、写、读写[5]。Master与Slave的通信的数据处理如图 1所示。
![]() |
图 1 Master与Slave数据处理示意图 |
Master发送报文帧数据请求到Slave, Slave进行数据响应并返回相应的报文帧。
1.2 系统解决方案整个系统采用MCGS工控触摸屏。TPC7062Ti嵌入式工控触摸屏作为Master参与控制, 而Slave为建筑开窗器消防控制箱, 其核心为以ARM CortexM3为内核的STM32F103系列单片机。MCGS嵌入式工控触摸屏主要与PLC结合, 但是本文将其与STM32单片机进行结合构成主从系统, 系统更加灵活, 可扩展性强。Mater与Slave之间通过RS485总线进行数据传输。具体实现结构可参考图 2。
![]() |
图 2 系统组织结构图 |
通过在MCGS的组态软件中选择Modbus-RTU标准设备, 进而使触摸屏成为系统中的Master, 而下位机STM32则同理需要进行对Modbus通信协议的编写, 使之成为系统中的Slave。
2 系统实现 2.1 系统编程策略既然系统中包括Master与Slave, 则需要分别对Master与Slave进行编程。所述的Master即为嵌入式触摸屏的人机界面(HMI), 以STM32F103为控制核心的控制箱作为下位机。所有通信由Master发起, 当Master有命令时将触发Slave中STM32单片机的中断。单片机进入中断服务程序(IRQH-andler), 实现中断响应。进入IRQ-Handler之后, 首先接受一串完整的数据帧(通过判断起始, 以及结束的时间≥3.5字符的时间), 接受完成整串数据帧后判断CRC检验。如果判定为错误信息帧, 则返回相应的错误码与数据。之后Slave继续判断地址位, 如果地址位正确, 则判断要进行的功能码, 选择要进行的操作, 最后将数据位进行处理。上述为下位机的响应过程。而Master则需要对控制的变量进行资源分配和地址匹配。除此以外, 建立通信关系之后, 触摸屏内部也要对数据进行单独处理, 以实现联动控制。具体的Slave响应过程可借助图 3“0X01功能码的响应过程”加以理解。
![]() |
图 3 0X01功能码的响应过程 |
既然系统分为上位机与下位机, 下文便对上位机系统构建与下位机编程加以说明。
2.2 Master系统构建MCGS系列触摸屏采用的编程软件为MCGS组态环境, MCGS触摸屏的编程分为以下4步。
1) 创建变量。通过在组态环境中的数据库来创建, 图 4为本工程的实时数据库。
![]() |
图 4 实时数据库 |
数据库中变量名为“只写_WUB_4001”的变量命名规范为:“只写”表示本变量用来进行写操作; “WUB”表示无符号16位数据; “4001”表示通过MCGS的4区寄存器通道地址1。而注释中的信息表示:当此变量写1时, 控制箱进行开启操作, 写2时进行关闭操作, 写3时进行关闭操作。
2) 对HMI界面的搭建。对其中的构件进行变量匹配, 可以获得图 5和图 6中的HMI页面。
![]() |
图 5 HMI设计界面 |
![]() |
图 6 构件属性界面 |
界面的搭建决定了要实现什么样的功能, 通过对界面中的构件进行各种属性的设置可以实现多种功能工控触摸屏。
3) 对设备组态进行设置。此步骤为通信的关键。通信中的各种参数在此设置, 具体可以参考图 7。
![]() |
图 7 触摸屏通信参数设置 |
从图 7中可以看出, 信息帧的发送通过触摸屏的端口号0即COM1发出, 以通信波特率9600进行数据传递, 下位机的波特率要与上位机对应。
4) 对触摸屏运行策略的编写。一般情况下要实现简单的控制以及显示上述三步是足够的。但是本系统要实现消防联动, 则需要对通过触摸屏接收到的数据进行处理, 就需要用到运行策略的编写。本系统要实现的功能之一是:若系统中有一个节点检测到报警信号, 则所有节点做出反应, 控制箱控制窗户开启。所以本触摸屏通过对所有的触摸屏报警信号进行汇总计算得出一个中间变量——总报警信号, 然后编写触摸屏的脚本程序, 如果总报警信号为1, 则控制所有窗户开启。具体程序见图 8。
![]() |
图 8 上位机运行策略编写 |
通过对上位机的运行策略的设置, 可实现对下位机的点面消防联动。
2.3 Slave设置上位机的通信参数已经设置好, 下位机自然需要匹配正确的通信参数。下位机是以ARM为控制器结合通信技术组成的控制系统。下位机及消防控制箱中STM32F103的其他控制程序在此不再赘述, 本部分只描述通信中的Modbus信息帧处理部分。由图 9可以看出我们对下位机信息帧处理的思路:首先需要对定时器进行设计(定时器用于空闲间隔定时, 以便区分报文)。根据使用的字符结构和波特率, 可以很容易计算出传输3.5 B的时间长度。如果定时器的时钟源为1.843 2 MHz, 波特率为9 600 bit/s, 那么空闲间隔为:
T=1 843 200 Hz÷9 600 bit/s×11×3.5B-1=7 391
通过对定时器的设置判断信息帧的开始与结束[7]。在收转发过程中, 从站需要完成的任务是按照协议对报文进行解包、打包。为了减少中断对CPU的占用, 将收转发的切换过程编制为一个子程序, 由“收转发”标志来决定是否调用[8]。收转发的过程可参照图 9的下位机信息帧处理进行设计。
![]() |
图 9 下位机信息帧处理 |
3 通信实现
对上位机进行模拟运行, 连接到下位机, 经过SSCOM串口调试助手可看到实时的通信数据。实验结果显示:串口调试助手检测到的数据帧中0X05功能码可以实现窗户的开启, 其他功能码正常响应。其实验结果如图 10所示。上位机也可实现对下位机数据的正常读取, 具体效果如图 11所示。
![]() |
图 10 调试数据 |
![]() |
图 11 上位机监控 |
4 结论
通过对整个系统中各节点的电流、电压、报警信号的检测处理, 实现了对系统的数据监控和消防联动, 提高了系统的灵活性、安全性。通过对下位机消防信号的判断处理, 可实现现代建筑中所有智能消防控制箱的消防联动, 反应迅速。
系统的创新之处在于:将工业中通常与PLC结合使用的工控触摸屏用于STM32单片机中。此外, 系统改进了传统窗控系统消防模式的触发方式。测试结果表明本系统人机交互能力强、稳定可靠、可扩展性能好。因为本通信系统采用串行通信协议实现, 并且由上位机发起通信, 上位机控制的下位机过多时, 发送的通信帧亦会随之增加。故在群控状态下, 下位机的功能实现会有略有延时。
[1] |
乔永卫, 程帅. 基于Modbus协议的自动控制系统的通信研究[J]. 自动仪表, 2012, 27(8): 34-37. |
[2] |
薛玉峰, 周增堂, 王德意. 一种触摸屏与TMS320F2812的通信程序设计[J]. 西北水力发电, 2006(4): 7-10. DOI:10.3969/j.issn.1674-3814.2006.04.003 |
[3] |
孟一飞, 谢堂健, 杨文慧, 等. 基于ZigBee与Modbus的智能农业灌溉系统[J]. 物联网技术, 2017, 7(10): 91-96. |
[4] |
林填达, 张泉宏, 曾敏, 等. 基于Modbus协议的STM32与触摸屏通讯的实现[J]. 自动化与仪表, 2015, 30(8): 45-48. DOI:10.3969/j.issn.1001-9944.2015.08.010 |
[5] |
高旭彬. 基于MSP430单片机的Modbus协议软件设计方法[J]. 工矿自动化, 2013, 39(4): 87-90. |
[6] |
闫磊, 朱海涛. 基于Modbus协议的PLC与智能仪表的通信[J]. 工业控制计算机, 2007(7): 21-22. DOI:10.3969/j.issn.1001-182X.2007.07.011 |
[7] |
朱小襄. Modbus通信协议及编程[J]. 电子工程师, 2005(7): 42-44, 55. DOI:10.3969/j.issn.1674-4888.2005.07.016 |
[8] |
尹玉平, 林霏, 陈红. 基于中继传输的车载无线通信终端[J]. 齐鲁工业大学学报, 2018, 32(1): 65-68. |