当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于RS-485总线的温度监控系统

引言

  RS一485总线由于平衡差分传输的特性,具有抗干扰能力强,传输距离远、有较强的级连的能力。能实现多站远距离通信,组网方便,成本低廉,因此在工业控制领域得到广泛应用。

  本系统是基于RS一485总线的远程多路温度监测、控制系统,上位机是一台PC,下位机是多个以AT98S51为控制器的温度传感器。工作时,下位机会向上位机发出本机地址和询问预置温度的请求。上位机获得下位机地址后,就知道那些地址的下位机已启动并根据请求把相应的预置温度发给下位机,此后每隔一定时间逐一询问已启动的下位机测定的温度信息,获得温度值后存入数据库并实时显示当前各路传感器测定温度,当温度过高时,会告警提示。下位机获得预置温度后,开始对传感器的数据采集和温度测量。当温度低于预置温度时,接通加热器加热温度,温度过高时,接通制冷设备加速降温,同时把温度信息传回上位机,温度超出范围后,还会以蜂鸣器报警。上位机接收下位机的测量温度后存入数据库,并实时显示,系统还具备数据库管理、温度变化曲线绘制等功能。当下位机掉电重启后,会向上位机重新问询获得掉电前的预置温度。温度监控系统由传感器电路、信号调整电路、A/D采样电路、控制电路、监控主机组成。基本工作原理是:传感器电路将感受到的温度信号以电压形式输出,经调整电路变换到TTL电平、由A/D采样后将数字量送给单片机控制电路,单片机根据开机时上位机传来的设定温度判断作何种控制,如温度未到设定温度,经驱动控制继电器闭合接通加热器,如温度过高则接通制冷设备加速降温。单片机还将所测温度在数码管上显示,并在上位机询问时把测量温度送到上位机入库。系统框图如下图1。

  系统实现

  硬件设计

  AT89S51是ATMEL公司的可在线编程的单片机,它价格低廉,且支持在系统编程(ISP),方便设计者开发调试。温度传感器选用NS公司生产的L= M35,它具有很高的工作精度和较好的线性工作范围,测温范围为一55℃~+150℃,完全适用于一般的测温场合。其输出电压与摄氏温度线性成正比,无需外部校准即可提供1/4℃的测量精度。信号调整电路将传感器电路输出的变化范围为2V左右的直流电压,调整为TTL电平,以便与A/D兼容。由于单片机 IO口有限,在对测温实时性要求不是太高的情况下,A/D变换采用8位串行A/D转换器ADC0832,它与单片机的IO连线只有三根,减少了IO占用量。四个数码管的数据端都接到单片机P1口,控制端由P2[3..0]控制,利用定时器中断触发,每次只接通一个数码管,显示相应数值,利用分时显示在数码管上显示温度值。当温度变化时,A/D采集调整电路输出电压值,送单片机,单片机根据采样值判定温度,通过数码管显示温度值并回馈上位机。

  原理图如图2 所示。

 

  软件设计

  下位机软件设计

  下位机的软件是在Keil uVisiml2下,使用C语言开发的。下位机的软件设计中,主要解决三个问题:一是ADC0832的控制位写入。根据数据手册,在时钟上升沿写入配置字即可,但按此方法始终不能正确读出数据,后来经过试验,在写入配置字的每一位后,还要在负跳变前把数据翻转,配置字才能正确写入。二是数码管上温度值的显示。最后采用中断方案,每隔10ms进入中断程序,循环选通各个数码管,分时显示对应的数字值。三是A/D采样数据的处理,为避免因干扰而造成A/D采样数据不稳定,这里采用软件滤波的方法以滤除可能的尖峰干扰。方法是连续采样七次,去掉最高值和最低值,其余五次取平均值来获得A/D采样的数字量。

  经测量,0V对应的温度为0℃,,5V时对应的温度为1 25℃,则比例因子K=0.04V/℃。每个数字量对应的电压值为20mV,则数字量变化与温度变化比例关系K1=2数字量/℃,利用此比例因子就可由数字量得到当前温度。

  上位机软件设计

  本系统为主从式监控系统,主机(即上位机)在向下位机发预置温度启动下位机后,轮询不同地址码的从机,获得温度值,存入数据库并在主界面显示。从机接收到主机预置温度后启动,每次主机询问温度值时回送测量温度值。如出现掉电后重启的情况,从机向主机发出重置请求,要求主机重发预置温度。上位机的通信软件开发采用Borland公司的C++Builder5.O,它的集成RAD开发环境可以帮助开发人员快速高效地开发出高质量的程序。在C++Builder中对串口进行编程可以使用Mscomm控件加快开发进度。它是一个ActiveX组件,不在C++Builder。安装中提供,可以在装有VC6.0的PC 上获得,拷贝到本机上注册后,在C++ B u il d e r下,先是在菜单的Compotlent选项中导入ActiveX控件,再Install Packages后就可以在ActiveX面板中看到并使用它了。

  数据库采用微软的ACC:ESS数据库,使用ADO数据引擎;C++Builder在ADO面板中提供了完备的ADO开发控件,实现了通过鼠标操作就能实现连接数据库、编辑数据内容、显示数据等一些基本数据库操作功能。程序还可以绘制温度变化历史曲线便于操作员管理。[!--empirenews.page--]总线通信格式设置

  上位机和下位机之间的串行通信采用RS一485标准接口,PC端接一个RS232/     485的转换器,就实现RS485总线控制了。在通信频率1200bps 的情况下,有效通信距离为1.2km。由于有多个从设备并联在485总线上,所以要制定严格的通信格式,表1是用到的通信协议。

  结语

  笔者设计了一种基于RS485总线的温控系统。此系统投资少,架设简单、可扩展性强,大大减轻管理者的负担,实现了工业控制自动化。目前在多个场所得到了具体应用,其测温精度在0.5℃以内,系统工作可靠稳定,无通信故障。

 

引言

  RS一485总线由于平衡差分传输的特性,具有抗干扰能力强,传输距离远、有较强的级连的能力。能实现多站远距离通信,组网方便,成本低廉,因此在工业控制领域得到广泛应用。

  本系统是基于RS一485总线的远程多路温度监测、控制系统,上位机是一台PC,下位机是多个以AT98S51为控制器的温度传感器。工作时,下位机会向上位机发出本机地址和询问预置温度的请求。上位机获得下位机地址后,就知道那些地址的下位机已启动并根据请求把相应的预置温度发给下位机,此后每隔一定时间逐一询问已启动的下位机测定的温度信息,获得温度值后存入数据库并实时显示当前各路传感器测定温度,当温度过高时,会告警提示。下位机获得预置温度后,开始对传感器的数据采集和温度测量。当温度低于预置温度时,接通加热器加热温度,温度过高时,接通制冷设备加速降温,同时把温度信息传回上位机,温度超出范围后,还会以蜂鸣器报警。上位机接收下位机的测量温度后存入数据库,并实时显示,系统还具备数据库管理、温度变化曲线绘制等功能。当下位机掉电重启后,会向上位机重新问询获得掉电前的预置温度。温度监控系统由传感器电路、信号调整电路、A/D采样电路、控制电路、监控主机组成。基本工作原理是:传感器电路将感受到的温度信号以电压形式输出,经调整电路变换到TTL电平、由A/D采样后将数字量送给单片机控制电路,单片机根据开机时上位机传来的设定温度判断作何种控制,如温度未到设定温度,经驱动控制继电器闭合接通加热器,如温度过高则接通制冷设备加速降温。单片机还将所测温度在数码管上显示,并在上位机询问时把测量温度送到上位机入库。系统框图如下图1。

 

  系统实现

  硬件设计

  AT89S51是ATMEL公司的可在线编程的单片机,它价格低廉,且支持在系统编程(ISP),方便设计者开发调试。温度传感器选用NS公司生产的L= M35,它具有很高的工作精度和较好的线性工作范围,测温范围为一55℃~+150℃,完全适用于一般的测温场合。其输出电压与摄氏温度线性成正比,无需外部校准即可提供1/4℃的测量精度。信号调整电路将传感器电路输出的变化范围为2V左右的直流电压,调整为TTL电平,以便与A/D兼容。由于单片机 IO口有限,在对测温实时性要求不是太高的情况下,A/D变换采用8位串行A/D转换器ADC0832,它与单片机的IO连线只有三根,减少了IO占用量。四个数码管的数据端都接到单片机P1口,控制端由P2[3..0]控制,利用定时器中断触发,每次只接通一个数码管,显示相应数值,利用分时显示在数码管上显示温度值。当温度变化时,A/D采集调整电路输出电压值,送单片机,单片机根据采样值判定温度,通过数码管显示温度值并回馈上位机。

  原理图如图2 所示。

 

  软件设计

  下位机软件设计

  下位机的软件是在Keil uVisiml2下,使用C语言开发的。下位机的软件设计中,主要解决三个问题:一是ADC0832的控制位写入。根据数据手册,在时钟上升沿写入配置字即可,但按此方法始终不能正确读出数据,后来经过试验,在写入配置字的每一位后,还要在负跳变前把数据翻转,配置字才能正确写入。二是数码管上温度值的显示。最后采用中断方案,每隔10ms进入中断程序,循环选通各个数码管,分时显示对应的数字值。三是A/D采样数据的处理,为避免因干扰而造成A/D采样数据不稳定,这里采用软件滤波的方法以滤除可能的尖峰干扰。方法是连续采样七次,去掉最高值和最低值,其余五次取平均值来获得A/D采样的数字量。

  经测量,0V对应的温度为0℃,,5V时对应的温度为1 25℃,则比例因子K=0.04V/℃。每个数字量对应的电压值为20mV,则数字量变化与温度变化比例关系K1=2数字量/℃,利用此比例因子就可由数字量得到当前温度。

  上位机软件设计

  本系统为主从式监控系统,主机(即上位机)在向下位机发预置温度启动下位机后,轮询不同地址码的从机,获得温度值,存入数据库并在主界面显示。从机接收到主机预置温度后启动,每次主机询问温度值时回送测量温度值。如出现掉电后重启的情况,从机向主机发出重置请求,要求主机重发预置温度。上位机的通信软件开发采用Borland公司的C++Builder5.O,它的集成RAD开发环境可以帮助开发人员快速高效地开发出高质量的程序。在C++Builder中对串口进行编程可以使用Mscomm控件加快开发进度。它是一个ActiveX组件,不在C++Builder。安装中提供,可以在装有VC6.0的PC 上获得,拷贝到本机上注册后,在C++ B u il d e r下,先是在菜单的Compotlent选项中导入ActiveX控件,再Install Packages后就可以在ActiveX面板中看到并使用它了。

  数据库采用微软的ACC:ESS数据库,使用ADO数据引擎;C++Builder在ADO面板中提供了完备的ADO开发控件,实现了通过鼠标操作就能实现连接数据库、编辑数据内容、显示数据等一些基本数据库操作功能。程序还可以绘制温度变化历史曲线便于操作员管理。

  总线通信格式设置

  上位机下位机之间的串行通信采用RS一485标准接口,PC端接一个RS232/     485的转换器,就实现RS485总线控制了。在通信频率1200bps 的情况下,有效通信距离为1.2km。由于有多个从设备并联在485总线上,所以要制定严格的通信格式,表1是用到的通信协议。

 

  结语

  笔者设计了一种基于RS485总线的温控系统。此系统投资少,架设简单、可扩展性强,大大减轻管理者的负担,实现了工业控制自动化。目前在多个场所得到了具体应用,其测温精度在0.5℃以内,系统工作可靠稳定,无通信故障。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭