APP下载

基于STM32的中央空调控制策略通信方法与实现

2014-09-06,,

机械与电子 2014年9期
关键词:组态王消息控制策略

,, ,

(上海大学机电工程与自动化学院,上海 200072)

基于STM32的中央空调控制策略通信方法与实现

严良文,赖雪峰,韩涛,张在房

(上海大学机电工程与自动化学院,上海 200072)

0 引言

Modbus是Modicon公司推出的一种通信协议, 在工业自动化行业的广泛使用已使之成为事实工业标准。在自动化系统中有大量支持Modbus协议的设备,包括PLC和智能仪器仪表等,以高性能嵌入式微处理器作为从站,能够很好地适应系统对功能、可靠性、成本、体积及功耗方面的严格要求[1]。S7-200PLC 是德国西门子公司生产的一种小型PLC,其功能强大,在自动化控制设备中得到了广泛的应用。在PLC 控制系统的运行过程中,操作人员为了更好地进行控制,需要实时改变系统的某些参数,也需要了解、掌握控制系统中的一些实时信息。利用上位机组态王、单片机系统,与PLC 控制系统通过RS232/RS485传输媒介,可以实现控制系统的实时控制和监测。

在此,设计开发了基于STM32F103C8T6单片机的从站,采用Modbus协议,以实现与主站PLC及PC的通信,主要完成控制策略算法的计算和相关参数的处理。

1 单片机STM32F103选型

STM32F103单片机使用的是意法半导体公司的32位ARM Cortex-M3内核。为了实现它与具有Modbus协议的PLC和组态王之间的通讯,设计出了相应的软硬件。

系统采用的是STM32F103C8T6,最高工作频率为72MHz,拥有可达64KB的闪存、20KB的SRAM和非常丰富的外设。内部集成了复位电路、调压器、低电压检测和精确的RC振荡器等,使用户的开发过程更加方便。STM32F103系列单片机功能强大且功耗低,是32位市场上功耗最低的产品。

2 Modbus协议及通信模式

Modbus通信采用主从方式,即仅主设备可以初始化通信过程,从设备只能根据主设备提供的数据做出响应。标准的Modbus使用RS232C、RS422或RS485串行接口。Modbus一次通信发送和接收的数据包由若干帧组成,协议正是定义了这些帧的意义,控制器只要按照协议解释其接收和发送的数据,就能与在同一网络中采用同样协议的控制器实现通信[2]。由于RS485采用平衡发送和差分接收,具有抑制共模干扰能力,并且传输距离为几十米到上千米,因此,设计采用RS485串行接口。

Modbus协议有2种传输模式:ASCII(美国信息交换码)模式和RTU(远程终端单元)模式。用户可根据自己的需要来选择通讯模式,但Modbus网络上的所有设备都必须选择相同的传输模式和所设置的参数(包括波特率、校验方式和数据位等)。RTU模式信息帧的8位数据包括2个4位16进制字符,相对于ASCII模式,RTU模式表达相同的信息需要较少的位数,并且在相同速率下具有更大的数据流量。系统采用的是西门子S7-200系列PLC,其集成了RTU模式的指令。因此,采用Modbus协议的RTU模式。

在RTU模式中,没有起始位也没有停止位,传送信息开始于一个默认的至少3.5个字符时间的间隔。然后发送的第1个域是设备地址域。每个从设备接收到第1个域时都进行判断是否发给自己的,在接收到最后一个字符后,一个至少3.5个字符时间的停顿标定了消息的结束,新的消息可在此停顿后开始,整个消息帧必须是一个连续的流传输。如果在帧完成之前有超过1.5个字符时间的停顿,接收设备将刷新不完整的信息并假定下一个字符是一个新消息的地址域。同样,如果一个新消息在小于3.5个字符时间内接着前一个消息开始,接收的设备将认为它是前一个消息的延续。由于在最后的CRC域的值是不可能正确的,将导致一个错误。RTU消息帧的结构如表1所示。

表1 RTU格式消息帧结构

起始位站地址功能代码数据CRC低字节CRC高字节结束符≥3.5字符8bit8bitN个bit16bit≥3.5字符

a.站地址。第1个域为站地址,用来选择相应的从设备。

b.功能码。从站接收到主站发来的功能代码,将执行相对应的功能。

c.数据域。主站发给从站的数据域中,包含了从站要完成功能指示的动作所必需的附加信息。

d.CRC校验。RTU模式传输时,信息包含了一个基于CRC方法的校验域,用来判断数据传输的正确与否。CRC编码方法通常有程序计算法和查表法,为提高通讯速度,系统采用查表法。

3 系统通信程序设计与实现

3.1 单片机Modbus协议设计

在系统中,STM32F103作为从站,PLC和上位机组态王作为主站进行通讯,选用RTU传输模式进行数据传输,从站通讯流程如图1所示。

图1 从站通讯流程

通讯时主站向从站发送Modbus协议帧,包含了从站地址、功能码,从站执行该功能的相关参数及16位的CRC校验,单片机产生中断,开始接收消息;消息接收完成后先判断从站地址是否与本机相符,如不相符抛弃该消息返回主程序;否则进行CRC校验,若校验错误则生成错误代码返回,请求主机重发消息;如果校验正确,则判断功能码仪表是否支持,是则按功能码进入相应的处理程序[3]。

3.2 STM32F103串口USART配置

Modbus协议在使用RTU传输模式时,需对其波特率、数据位、停止位、校验位和控制特性进行配置。串口初始化代码如下:

USART_InitStructure.USART_BaudRate = 9600;//波特率设置,9600

USART_InitStructure.USART_WordLength=USART_WordLength_8b;//数据位数设置,8位

USART_InitStructure.USART_StopBits = USART_StopBits_1; //停止位设置,1位

USART_InitStructure.USART_Parity = USART_Parity_No ;//是否奇偶校验,无

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//硬件流控制模式设置,没有使能

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//接收与发送都使能

USART_Init(USART3, &USART_InitStructure);//初始化USART3

3.3 接收与发送消息帧处理程序设计

系统在从站接收到主站发来的消息帧后,判断其地址,CRC校验后,根据其功能码06H(写单个保持寄存器),10H(写多个寄存器)和03H(读取保持寄存器),来判断从站进入相应功能程序。功能选择是PLC和组态王根据用户信息输入来选择Modbus相应功能参数,参数包括传输模式、服务类型和响应模式等。若系统对象有其他的功能需求,可以进行扩充。

系统中组态王将采集到的多个待处理的数据通过Modbus总线传输给单片机,单片机通过控制策略计算后返回相应数据量的数据。当组态王发送多个数据时,单片机将一一接收到数据,把数据保存到数组中后,程序进入相应写寄存器功能程序,根据Modbus格式帧响应主站。当接收到读数据功能要求时,进入功能码程序Func03(),则将保存到数组中的值经过一系列计算处理后返回对应值。设计中定义了03H,06H和10H功能函数,方便功能的选择。

3.4 RTU接收响应帧格式的确定

Modbus协议规定RTU帧的起始与结束标志要大于3.5个字符时间,并且在一串消息帧里,字符之间的传输时间不能大于1.5个字符的时间,若不符合,设备将刷新不完整的消息并假定下一个字节是新消息的地址。系统利用STM32内部定时器TIM2做超时检测的方法,来判断一个帧结束与否,控制过程如图2所示。

图2 响应帧格式判断流程

a.主站没有发送消息时,USART串口处于等待中断状态,接收字符数大小变量ReceiveSize赋值为0。

b.当开始接收消息帧时,进入串口中断,每接收到一个字节就启动定时器TIM2。Time从零开始计时,并在进入中断时将Time赋值给Time0,在主函数中不断检测Time的值是否大于3.5个字符时间,若满足,则认为接收完毕,进入相应服务函数。同时也检测Time0的值是否在1.5到3.5个字符时间内,若满足条件则将ReceiveSize赋值0,即将上帧数据丢弃,这帧当做新的一帧消息接收。

4 单片机Modbus模块调试

4.1 单片机与Modbus调试软件通讯调试

通过Modbus串口调试软件实现单片机与PC的通信。串口调试软件上可以实现03H,06H,10H等功能,只有严格按照Modbus协议才能使调试软件上的读写通讯正常。系统要实现写入16个数据,返回2个数到组态王,1个数到PLC。

4.2 单片机与中央空调设备通讯调试

中央空调控制系统将各楼层的调节阀开度值和机组的各个参数采集到组态王后,在组态界面显示所采集的值,并将其写入单片机,单片机经过控制策略运算后再返回结果到组态王和PLC,如图3所示。

图3 数据流向

在通讯过程中,组态王将多个模拟量值一一对应寄存器地址,并在单片机程序中编写对应的寄存器地址变量,对应每个楼层和机组的各参数。当组态王将多个值写入时,将会覆盖上次写入的值,同时将每次写入的值保存在一数组中,当收到03H读取功能码时,则把保存在数组中的值取出进入控制策略运算,返回计算结果。根据数据起始地址来判断是组态王还是PLC发出的读取命令,从而返回对应的运算结果。

5 结束语

系统选择了广泛采用的Modbus作为通信协议,并以组态王作为上位机,实时监控并将数据传输到各设备进行处理。而单片机STM32作为Modbus协议从站,在设计过程中实现了Modbus协议的正常发送与响应,并且针对系统需求实现了其特定功能。单片机从站在运行过程中通信良好,实现了控制策略算法和相关参数的处理,在系统中起到重要作用。当其他设备需要扩充特定功能,但由于自身成本、体积和功耗等限制时,可用单片机系统来完成,这样就能充分发挥单片机和其他设备各自的优点,相互配合,取得较好的控制效果。该通信的实现表明,STM32单片机在自动化控制系统中有较好的应用前景,同时在其他嵌入式系统的串口通信实现上也有很好的借鉴意义。

[1] 彭道刚,张 浩,李 辉,等. 基于Modbus协议的ARM嵌入式监测平台设计与实现[J]. 电力自动化设备,2009,29(1):115-119.

[2] 彭庆海,胡小强. Modbus协议及其在MCU与PLC通信中的应用[J]. 机电工程,2010,27(4):52-55.

[3] 李 娜. 基于Modbus协议的智能仪表的设计[D]. 北京:北京邮电大学,2008.

Method and Realization of Central Air Conditioning Control Strategy CommunicationBased on STM32

YANLiangwen,LAIXuefeng,HANTao,ZHANGZaifang

( School of Mechatronic Engineering and Automation, Shanghai University, Shanghai 200072,China )

采用Modbus通信协议,以西门子S7-200PLC和上位机组态王为主站,设计开发了基于STM32F103C8T6单片机的从站。介绍了两者之间的RS485/RS232方式的通信协议的建立和程序的设计,详细描述了单片机与PC之间、单片机与PLC之间的通讯调试,从而实现了基于RTU模式Modbus协议的串行通信。该系统应用于中央空调控制系统中,其控制策略和主要控制算法由STM32从站计算,能取得较好的控制效果。

STM32F103单片机;通信;Modbus协议; 中央空调

With the Siemens S7-200PLC and upper computer KingView being the master, a slave station of STM32F103C8T6 microcontroller is developed based on Modbus protocol. The establishment and program designing of communication protocol using RS485/RS232between master and slave is introduced firstly. Then the process of debugging between the microcontroller and PC, the microcontroller and the PLC is elaborated. Thus serial communication is implemented based on Modbus protocol in RTU mode. The system will be applied in central air-conditioning control system. A good control effect will be obtained as the controlling strategy and main algorithm can be computed in the STM32slave station.

STM32F103microcontroller; communication; Modbus protocol; central air conditioning

2014-04-15

国家自然科学基金资助项目(51205242);上海市科委科技创新行动计划资助项目(13111102900)

TP206

A

1001-2257(2014)09-0063-03

严良文(1967-),男,湖北荆州人,副研究员,研究方向为机电一体化系统和数字传热学研究;赖雪峰(1989-),男,福建上杭人,硕士研究生,研究方向为机电一体化。

猜你喜欢

组态王消息控制策略
一张图看5G消息
工程造价控制策略
现代企业会计的内部控制策略探讨
基于组态王软件和泓格PIO-D64 板卡的流水灯控制
容错逆变器直接转矩控制策略
基于Z源逆变器的STATCOM/BESS控制策略研究
MATLAB实现组态王中TCP/IP读卡器监控方法
基于PLC与组态王煤矿压风机的设计研究
消息
消息