APP下载

基于modbus 协议的多路温度控制系统设计

2022-01-14徐道黎耿子贺矫越

科学技术创新 2021年35期
关键词:阻值过电压校验

徐道黎 耿子贺 矫越

(山东建筑大学,山东济南 250101)

温度控制在生产和生活中广泛应用,温度控制系统现在多采用PID 控制算法,输出采用的是可控硅控制,这种控制系统控制精度高,成本较高,安装调时需要专业人员,在使用过程中出现环境变化等,PID 的参数需要重新进行调整,否则控制精度就会受到影响。温度控制多采用独立控制的单个温度控制模块,温度的显示和温度控制的设定需要人工在现场进行查看和操作,需要多温度同时显示和控制的场合使用时,安装和使用都很复杂。针对成本敏感和组网需求的应用场景,提出并设计了一种多路温度控制系统。

温度控制系统中,通讯协议、通讯方式对系统设计有关键的影响,考虑到控制系统的可扩展性和分散性特点,从应用角度出发,在通信的物理层采用RS-485 总线连接,应用层采用MODBUS 协议进行通信。考虑成本和稳定性的因素,输出采用开关控制。

1 温度控制系统工作原理

1.1 系统结构

温控系统可以独立运行,也可以联网运行。通过温度传感器,检测实时温度,对检测的现场温度和设定温度的比较,判断输出的状态,控制继电器闭合或者断开,使加热或降温设备间歇运行或停止,来达到控制温度的目的。同时,传感器检测的温度数据和设定的温度存储在寄存器中,可以通过MODBUS 通信协议对相应的寄存器进行读取或者写入。系统整体方案如图1所示。

图1 系统整体方案图

1.2 MODBUS 通信协议

MODBUS 通信协议中的总线上的设备分两类,为主设备和从设备,在某一时间下,总线上只能其中一个设备发送数据,如果多个设备同时在总线上发送数据,总线就是出现数据混乱,任何设备都无法接受正常数据。MODBUS 协议中通常是由主设备发起数据发送,对总线上其中一个从设备进行查询,从设备根据接收到的主设备发送的查询信息作出相应的反应进行回应,发送回应流程如图2 所示。为了保证传输效率,该系统采用RTU传输模式。

图2 查询- 回应指示图

MODBUS-RTU 模式要求任何设备要开始发送或者结束发送时,都要在总线上等待一个3.5 个字符以上的时间间隔。RTU模式中在起始的时间间隔后,先传输的是8 位的设备地址。接收设备处于空闲状态时,要不停的判断总线上是不是有数据传输,这个过程是通过监听总线上是不是有起始的时间间隔。如果接收到起始的时间间隔后,所有的总线上的接收设备都会接收后来发送的数据,当设备接收到第一个部分,也就是设备地址,所有的接收设备都会进行将收到的设备地址和自己的地址进行比较判断,收的设备地址是不是与自己的地址匹配。最后一个部分传输完后,发送设备需要发送一个大于3.5 个字符的时间间隔表示该条消息发送结束,之后如果再发送消息重新按照上规则发送。

校验部分是采用的循环冗余校验(CRC),应用的CRC 校验是CRC-16 版本,该版本的校验结果为16 位,两个字节组成。这一个部分是发送设备通过计算后放在消息帧中的。接收设备接收到消息后,需要根据除了校验部分以外的部分计算收到消息的CRC 校验值,与消息中包含的CRC 校验部分的数值比较,如果收到的校验码和计算的校验码不同,就判断该数据帧存在错误,接收设备回复相应的错误提示数据帧。

消息的发送是要保证是连续发送的,如果传输数据的过程中出现大于1.5 个字符的时间间隔,接收数据的设备会确定为发送设备发送的消息发送已经传输完毕,接收设备停止接收,处理当前接收完毕的不完整的消息,并认定接下来发送的下一字节的消息是一个全新的消息。这样接收到的消息CRC 校验部分的数值错误,这样接收设备将其确定为错误数据。MODBUS-RTU 的消息帧如下所示:

?

2 硬件结构

电源部分采用LM2596S-5V 电源芯片进行第一级降压,主要作用是驱动继电器和单片机供电;第二级降压采用AMS1117-3.3 电压芯片,输出的3.3V 电压是提供温度采集的基准电压;电源输入部分支持12-24V 输入,采用电感进行滤波,压敏电阻、自恢复保险丝和瞬态二极管(TVS)组成保护电路进行保护。通信部分采用MAX485 芯片,同时增加由瞬态二极管(TVS)和自恢复保险管组成的通信保护电路,由限流电阻和LED 指示灯组成的通信收发指示灯。继电器驱动采用ULN2003达林顿驱动芯片,温度采集的部分采用电阻进行分压。硬件系统结构如图3 所示。

图3 硬件系统结构图

2.1 温度采集电路

温度采集电路采用分压电路进行实现,采用的基准电压为3.3V,增加电容去除干扰,温度传感器采用外接方式,采用2.54mm 间距的接口与NTC 温度传感器进行连接。因为传感器采用外接方式,为了方便安装时确定传感器是否正常,在设计中,每一路温度传感器都增加了指示灯,通过指示灯可以直观显示传感器状态。温度采集电路设计如图4 所示。

图4 温度采集电路

根据温度采集电路的设计,ADC 采集的电压值和热敏电阻阻值的关系:

转换得到热敏电阻的阻值:

2.2 保护电路设计

电源输入保护主要包括防止电源反接保护,系统内部短路保护,过电压保护。电路部分采用自恢复保险和二极管组成反接保护和短路保护电路,压敏电阻进行过电压保护,增加电感对输入的电源进行滤波,保证系统运行稳定,如图5 所示。

图5 输入保护电路

通信保护电路主要保证通信的稳定,防止通信线路的故障对系统造成损坏。主要保护策略包括总线短路和过流的保护,总线间过电压保护,单总线过电压保护。电路设计上,采用自恢复保险丝对短路和过流保护,采用双向瞬态二极管和单向瞬态二极管对总线间过电压和单线过电压保护,通信保护电路如图6。

图6 通信保护电路

3 软件设计

3.1 主程序设计

主程序首先完成对相关外设的初始化设置,并启动相应的单片机外设,之后完成对其他子程序的调用;通信子程序实现通信协议的解析和收发,完成对寄存器数据的读取和写入;看门狗子程序通过异常状态复位保证模块稳定性,断电记忆子程序将设定温度进行写进EEPROM保存,启动时读取。温度采集处理、温度比较和输出控制实现控制逻辑。

3.2 温度采集程序设计

对于温度检测采用的是NTC 热敏电阻温度传感器,采用单片机内置10 位ADC 对电压值进行采集,根据热敏电阻的温度- 电阻特性曲线计算得到热敏电阻的温度值。

根据负温度系数电阻与温度关系得:

其中RNTC为热敏电阻的当前阻值,R1为分压电阻阻值,UVCC为基准电压,UADC为ADC 采集的输入的电压值,B 为材料常数,由NTC 热敏电阻特性决定,R0为热敏电阻常温(25℃)的标称阻值,T0为常温时的温度,TNTC为热敏电阻当前阻值对应的温度,其中T0、TNTC采用开氏温度计算。

R1分压电阻为39K,UVCC基准电压为3.3V,UADC为采集的实时电压值,B 值为3950,R0的阻值为10K,T0为常温25℃。将已知数据带入公式(5)计算可以得到实时的温度。

3.3 通信程序设计

Modbus 通信接收起始和停止标志判断程序是通过串口中断配合定时器和定时器中断实现的,初始状态时,设备处于接收状态,总线空闲时,串口没有数据接收,不会产生中断;当有数据传输时,串口接收数据并在每一个字节(8 位)接收完毕后都会产生一个中断。在数据传输过程中,串口中断会不断清零定时器的初值,定时器不会达到计数上限。当数据传输完毕后,串口接收不会再产生中断,此时定时器初值不会被清零,定时器会计数达到计数上限,然后产生定时器中断,这样就表明这一个消息帧接收完毕。定时器产生的中断可以启动后续的数据处理程序。

定时器计数上限的确定,计数器采用16 位制动重装载模式,时钟设置为CPU 时钟12 分频,计数上限设置根据波特率、系统频率和分频系数设置,计算公式如下:

其中,Ttim为定时器的定时周期,SYSclk 为系统时钟,Nmax为定时器的计数上限值。

波特率与接收或发送时间的关系:

其中T 为发送一位所需要的时间,baudRate 为通信的波特率。

SYSclk 系统时钟为11059200Hz,通信波特率为9600,需要的时间间隔为3.5 字符。一个字节加上停止位和起始位需要11位。计算得到所需要的定时器计数上限。

结束语

考虑了成本和稳定性等因素,设计了一种多路温控系统,支持四路独立温度测量和四路独立继电器输出控制。设计中,增加了多重保护电路,实现稳定运行;增加了记忆存储功能,模块断电恢复时免去重复设置;采用MODBUS 协议,组网使用方便。基于以上特点,该多路温控系统可以应用在多种需要温度控制的现场,提高效率和质量,降低成本。

猜你喜欢

阻值过电压校验
复杂多耦合仿真模型校验工具研究
使用Excel朗读功能校验工作表中的数据
电气工程一次设备过电压保护措施的分析
电能表在线不停电校验技术
供配电系统过电压的危害及防范措施
对一道电学实验题的思考
精通文件校验的“门道”
干式空心并联电抗器切断过电压组合式保护
10kV绝缘线路过电压保护器故障原因及运维要点分析
电桥平衡条件的应用