基于RS485总线远程抄表系统设计.docx
- 文档编号:15671375
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:39
- 大小:624.81KB
基于RS485总线远程抄表系统设计.docx
《基于RS485总线远程抄表系统设计.docx》由会员分享,可在线阅读,更多相关《基于RS485总线远程抄表系统设计.docx(39页珍藏版)》请在冰点文库上搜索。
基于RS485总线远程抄表系统设计
独创性声明
本毕业设计(论文)是我个人在导师指导下完成的。
文中引用他人研究成果的部分已在标注中说明;其他同志对本设计(论文)的启发和贡献均已在谢辞中体现;其它内容及成果为本人独立完成。
特此声明。
论文作者签名:
日期:
关于论文使用授权的说明
本人完全了解福州大学至诚学院有关保留、使用学位论文的规定,即:
学院有权保留送交论文的印刷本、复印件和电子版本,允许论文被查阅和借阅;学院可以公布论文的全部或部分内容,可以采用影印、缩印、数字化或其他复制手段保存论文。
保密的论文在解密后应遵守此规定。
论文作者签名:
指导教师签名:
日期:
基于RS-485总线远程抄表设计
摘要
伴随着人们生活水平的提高,人类对电能的需求也越来越大,抄表量越来越多的问题也就随之而来,远程抄表技术也就孕育而生,所以当前需要一款远程抄表系统来替代人工抄表。
为了系统在进行抄表过程中能够有效、准确的抄表,并且提高系统的兼容性,我们采用工业上常用的MODBUS协议进行数据传输。
本系统主要包括采集终端、集中器、上位机三个部分组成。
采集终端是基于STM32系列的STM32F103ZET6芯片设计的。
采用ATT7053专用电能采样芯片,它能过测量交流电的电流、电压、频率等基本电参,同时本设计还在采集终端上安装LCD液晶显示屏幕,它能过为用户提供用电信息的参考,也可为工作人员提供一定的辅助作用。
集中器主要是起到重复查询采集终端所采集的电能参数,然后存储起来,供上位机随时调用。
同时还起到中继的作用,RS-485总线在远程传输信号时需要有一个中继器对信号进行重新处理。
上位机是PC机,PC机所用的上位机软件是在Windows系统是运行的,上位机软件除了可以显示一些电压、电流、频率、功率等电参以为还可以绘制功率曲线图,为调度人员提供直观的人机界面。
上位机软件的编写是运用微软官方提供的VisualStudio平台,在编写上位机软件的时候是用C#语言编写的,用C#编写的软件运行更加的稳定。
整个体统的通讯部分都是通过RS-485总线进行通讯的,本系统通过RS-485总线对数据进行智能化管理。
关键词:
MODBUS协议,ATT7053,采集终端,上位机,RS-485总线
DesignofBusRemoteMeterReadingSystemBasedonRS-485
Abstract
Withtheimprovementofpeople'slivingstandards,humandemandforenergyisgrowing,moreandmoreproblemsmetervolumewillfollow,remotemeterreadingtechnologyalsobred,sothecurrentneedaremotemeterreadingsystemtoreplacemanualmeterreading.Readingforthesystemduringtheprocessofeffectiveandaccuratemeterreading,andimprovethecompatibilityofthesystem,weusetheindustrycommonlyusedMODBUSprotocolfordatatransmission.Thesystemincludescollectionterminals,concentrators,PCthreeparts.CollectionTerminalisbasedSTM32familySTM32F103ZET6chipdesign.UsespecialpowerATT7053samplingchip,ithadtomeasureACcurrent,voltage,frequencyandotherbasicelectricalparameters,whilethedesignoftheinstallationisstillcollectingLCDdisplayscreenontheterminal,ithadtoprovidereferenceinformationforelectricityusers,provideasupportingroleforstaff.Concentratorismainlyplayedrepetitivequeriescollectedenergyparameterscollectionterminal,andthenstoredforthePCatanytime.Butalsoplaytheroleofarelay,RS-485buswhentheremotetransmissionsignaltheneedforarepeatersignalreprocessing.PCisaPC,PCmachineusedPCsoftwareisinWindowssystemisrunning,thePCsoftwareinadditiontodisplaysomevoltage,current,frequency,powerandotherelectricalparametersthatcanalsodrawpowercurvesfordispatchpersonnelintuitiveuserinterface.PCsoftwareiswrittenusingMicrosoftVisualStudioplatformprovidedbytheofficial,inthepreparationofPCsoftwareiswritteninC#language,withC#writesoftwarethatrunsmorestable.
PartofthedecencyofcommunicationthroughRS-485communicationbus,thesystembusviaRS-485dataintelligentmanagement.
KeyWords:
MODBUSProtocol,ATT7053,CollectionTerminals,PC,RS-485Bus
第1章绪论
1.1课题来源
随着人们生活水平的提高电能的应用也越来越多,电能成了人们日常生活比不可少的能源,但对于电力公司每个月都要派工作人员上门去抄取电能表的数据,对于抄表的工作人员来说工作量非常大,同时电力公司也需要投入大量的人力物力,并且这种抄表方式所获得的数据信息精确度和准确度不高。
所以随着科技的发展远程集中抄表系统是一种现代化自动抄表方式,即远程抄表系统,远程抄表技术它将代替人工抄表,并且处理一些后续工作,比如它可以将抄到的数据进行分析、计算、以及计量收费。
通过使用这种技术可以省去大量的劳动力资源,是提高人们生活水平的发展趋势。
这种远程抄表系统是实现人工智能的一步,这种抄表系统采集点多,系统采集到的数据多,系统覆盖地区广,这种系统是和通讯网络对接的,所以它的数据是时时更新的。
不论是对于公司还是对于用户都有很大的便利,尤其是在大、中型城市里,具有良好的市场前景,这种远程抄表系统有很大的推广价值和开发价值。
随着科学的发展电力能源的应用已经很普遍了,电力网全面覆盖在我们生活的每一个角落,随之而来也出现了一系列的问题。
由于人类的快速发展,人口越来越多,电能的需求也越来越多,电能的计价成电力部门的一大难题,目前我国在大、中型城市里人口密度比较大,人们通常住在公寓楼房单元里,在这种楼房内通常住有几百甚至是上千户居民,当前在我国中普遍实行“一户一表”制,对居民电表进行抄表需要花费大量的人力资源和时间,当前这种传统的人工抄表方式已经不能适应行业的发展需求。
考虑到电能在计费的时候是是分时段的,而且居民用电和工业用电的计费标准也不一样以及防窃电、克服人工抄表等的诸多要求,所以当前使用多功能、体积小的多用户复费率全电子式电能表将成为主流,电力行业对集中抄表系统的要求也变得更加迫切,远程集中抄表系统是随着科学技术快速发展而出现的一种自动化抄表技术。
远程抄表系统不仅能节约大量的人力资源,更重要的是可提高抄表的准确性和信息的共享性,减少因人工失误而造成的账单出错,在用户看来这种抄表技术省去了工作人员在抄表的时候要去现场,避免了工作人员与用户面对面尴尬的局面,所以说这种远程抄表技术越来越受到广大用户的喜欢,这种抄表技术也势必成为市场的主流抄表技术。
远程抄表系统主要包括3个模块:
上位机、集中器和采集终端。
其中采集终端是介于集中器和电能表之间的中间设备,主要具有对电能数据的采集、处理、存储以及转发等功能。
在工业应用控制中,最常见的通讯方式为RS485总线的方法。
由于RS485是基于差分信号进行传输的串行通讯协议,它的抗干扰能力更强,传输距离更远,而且它的成本低,电气接线简单,所以基于RS485总线的远程抄表系统不仅成本比较低,而且具有数据传输稳定高、可靠性高、电路简单、传送距离较远、速度快、抗干扰能力强等优点。
1.2国内发展情况
国内对远程抄表领域的研究大约是在90年代初,但是受到当时受国内电子科学技术的限制,电力远程抄表技术在前几十年里处于试验摸索的阶段。
进入新世纪后因国家电网公司在2010年9月颁布了《国家电网公司“十二五”电网智能化规划化》,实现了城乡一户一表并完成了智能双向互动服务平台建设和电信息采集系统的全面覆盖。
由于具有RS-485通讯接口的智能电表能过有效的解决传输数据的稳定性和准确性,所以采用RS-485通信的智能电表产品得到了迅速推广并占据了大部分市场,到了近几年伴随着相关技术发展和成熟我国电力远程抄表系统得到了迅速发展,主要的抄表技术有电力导线载波系统、电话线抄表系统、无线遥感系统、GPRS无线抄表系统、基于RS-485和CAN总线抄表系统等,形成了多种智能抄表方式并存的格局。
1.3国外发展情况
欧洲一些发达国家在上个世纪70年代就已经开始对采集远距离电参进行大量的实验研究。
到了1982年法国EMD公司用EUR101系统实现对600多个用电大用户采集数据。
在1985年日本九州电力公司实现了将信号耦合到电网中,拥有了配电载波技术,实现了远程读表和负荷控制。
随后德国、澳大利亚、美国等国家先后有自动抄表系统投入运行。
1.4未来抄表技术的发展趋势
在我国远程抄表技术多种多样,主要有RS-485总线、电力线载波、以及红外技术等。
其中技术比较成熟的有RS-485和红外抄表技术,但是红外抄表需要人工现场抄表,只能算是半智能的抄表技术,而RS485总线抄表技术由于它的抗干扰能力和实用性,比较符合当前国内的发展。
但是由于当前信息技术的发展已是一日千里,出现了SMS/GPRS/CDMA公网平台,利用此平台实现远程抄表已经是行业内未来的主流,它彻底解决了抄表方法的不足,有着低廉的运行维护费用低廉的优势,未来将RS-485总线和公网平台相结合的这种互补方式,是未来最为可行的远程抄表方式。
不论是RS-485通讯方式还是电话线抄表技术它都需要布线,但电力载波却省去了布线的麻烦和节省大量的成本,这种抄表方式被广大专家所看好,但是由于它的传输以现在的技术没办法越过变压器,以及在载波传输的过程中经常会受到电磁波的干扰,未来如果有可能突破这些技术瓶颈,电力载波技术将是一种非常实用可行的总线抄表技术,因为毕竟它省去了布线的麻烦以及节省了大量的成本。
第2章系统的总体结构
2.1系统整体介绍
本系统可以大概分为三块,分别由上位机、集中器、采集终端构成,如图2-1所示。
采集终端中包含电压、电流模拟量的采样,将电压、电流的模拟量转化成数字量并计算出功率。
每个采集终端上都安装一个可触摸显示的显示屏幕,此屏幕除了可以显示电压、电流、功率、频率外,还可以显示电压的质量、根据用电量计算出对应的电费价格、以及云端可以发送预告信息到采集终端上并显示出预告信息。
考虑到采集终端的任务比较繁重,本设计的主控采用ARM公司生产的STM32芯片,这款单片机是采用Cortex-M3内核作为芯片的CPU的,最大工作频率可以达到72MHz,能过满足本设计的要求。
集中器是将多个采集终端的数据汇总起来的一个中继站,集中器和采集终端之间也是用过RS-485进行信息交换的,集中器将采集终端的数据汇总后传到上位机,集中器和上位机之间也是通过RS-485总线进行通讯的,上位机将集中器上传的数据进行存储、做成图表、计算、打印,也可以将部分数据送到后方。
采集终端和集中器以及集中器和上位机之间都是用工业上比较常用的ModBus协议进行通讯的。
考虑到电能计费时要分时计费,在编写程序时就要有一个实时的时间,为了让整个系统更加的可靠,减少外围电路,所以采集终端屏幕上显示的用电费这个文本信息是来自上位机,采集终端只是将电能的基本信息通过集中器上传到上位机,然后上位机根据电能信息和网络实时时间计算出用电费用,然后将电费实时的通过集中器传到采集终端并显示出来。
上位机程序的编写是在VisualStudio平台上编写生成的上位机软件,VisualStudio开发工具生成的软件可以在Windows平台上运行,VisualStudio开发工具为开发者提供软件的多种窗体,本设计采用的是Windows窗体,NETFramework上创建MicrosoftWindows应用程序,这个框架可以提供一个有条理、面向对象、可扩展的类集。
同时VisualStudio还为开发者提供多种语言,比如VisualBasic、C++、C#,本设计采用C#这种语言和Java比较相近,它是一种简单、现代、面向对象,融合了C、C++、和Java语言优点的语言,实用性比较强受到广大开发者的喜爱。
PC机上有9针的串口,它是TTL电平的串行接口。
而我们的课题采用的是RS-485通讯方式,是差分信号,所以我们需要将PC机上的TTL信号转成RS-485的差分信号,所以我们采用一个RS-232转RS-485的信号转换器。
这样就可以实现将PC机接入RS-485总线中。
信号转换器和RS-485集中器的
链接在一起,
链接在一起。
然后将RS-485的发送端和接收端对应连接在单片机的串口上。
RS-485总线
RS-485总线
图2-1硬件系统结构图
2.2采集终端
如图2-2所示,为了让采集终端在没有交流电提供电源情况下也能记录和显示一下基本信息,比如在没有交流的情况下,云端发布一些预告,可为用户提供何时恢复供电信息等。
整个采集终端分别由MCU微处理器、电源、采样电路通讯电路组成。
其中MCU是采集终端的核心。
本设计采用的MCU是ARM公司的STM32F103ZET6,这款MCU有多达3个模数转换器,为了将AC220V和DC5V隔开,电压采样电路和电流采样电路中都用光耦进行隔离。
LCD液晶显示触摸屏幕采用2.8寸屏幕,屏幕主控芯片为ILI9320,屏幕分辨率可达到320*240,采用3.3V供电。
RS-485通讯模块
RS-485总线
交流采样电路
LCD液晶触摸显示屏
微处理器
(STM32)
开关电源电路
(AC220V转DC5V)
备用电池
图2-2采集终端硬件电路设计框图
2.3集中器
集中器其实是一个数据的中转站,集中器有对采集的数据进行处理、存储和控制的功能,通过上行的RS-485总线信道定时的将数据传到上位机。
集中器在采集数据的时候,采用查询的方式,定时的查询每个采集终端。
同时它也有向下行发送数据的能力,当上位机要发布预告信息的时候就必须通过集中器过渡到采集终端,然后才能显示出预告信息。
第3章ModBus协议和RS-485总线
3.1通讯协议设计
考虑到以后可能有新的设备加入到系统中,所以有必要提高系统的兼容性。
我们采用了工业上用的比较广泛的ModBus协议,ModBus协议是美国电子工业协会统一制定的一种用于电子控制器进行控制和通讯的通讯协议。
通过此协议,上位机、集中器、采集终端可以进行互相通信。
因为ModBus协议是由电子工业协会所制定的,使用它不会侵犯版权,并且ModBus协议用法简单,此协议标准化很高,因此ModBus协议成为一个通用工业通讯协议标准。
这样不同的生产厂家生产的终端设备可以通过简单的工业协议标准进入工业网络,因此它成为工业上应用最流行的协议之一。
ModBus协议主要包括ASCII,RTU等,标准的ModBus是使用RS-232兼容串行接口,RS-232规定了连接器的接线、信号电平、波特率、传输方式等信息。
ModBus协议的数据通信采用的是主从的方式,即主机发送一个请求的消息,当消息到达从机设备时,该设备开始读取该消息中的地址域,如果与本机地址相符就开始解析功能码,并且开始进行校验,如果没有错误就开始读取数据。
并执行对应的命令我们称为响应。
根据不同的命令,有时候从机也可以发送数据给主机,当主机需要从机的数据时,主机会发送相关的命令帧,经过从机响应后从机把相关的数据发送回主机。
3.1.1ASCII模式
如表3-1所示,当在ModBus网络上以ASCII模式通信时,每个字节放两个ASCII字符,这种方式的最主要优点是字符发送的时间间隔可以长达一秒钟而不产生错误。
使用ASCII模式,消息以冒号“:
”字符作为起始位,以回车换行符作为结束符。
挂载在ModBus网络上的设备不断的侦测“:
”字符,当侦测到“:
”字符时挂载在网络上的每个设备开始解码下一位的地址域,并判断是否和本机设备的地址相符,如果相符就开始接收其他域,直到接收到回车换行符,ASCII模式时,消息帧使用LRC(纵向冗长检测)进行错误检测。
表3-1ASCII模式的消息帧
起始位
设备地址域
功能码域
数据域
LRC校验
1个字符
2个字符
2个字符
n个字符
2个字符
3.1.2RTU模式
当设备控制器设为RTU模式时,消息帧中的每个8位字节包含两个4位的十六进制字符。
如表3-2所示该模式下发送一帧的消息时至少需要有3.5个字符的停顿时间,也就是说发送完一帧的数据后要间隔至少3.5个字符的停顿时间才能发送下一帧数据。
传输过程中,挂载在网络上的所有设备不断的侦测网络总线上的数据帧。
当接收到一帧的数据时,与地址域相对应的设备就对接下来的传输字符进行解码,一旦有至少3.5个字符时间的停顿就表示该消息的结束。
在RTU模式中消息帧是由多个字节组成的,它们构成了一个具有对设备固定意义的消息帧,消息帧在MODBUS网络中传输时必须是连续的,当消息帧传输的过程中字节间有超过1.5个字符的时间时,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。
同样的,如果在传输一个消息时在小于3.5个字符就开始传输设备会认为是上一个消息的延续。
在MODBUS网络中如果出现以上两种错误,设备接收到数据时必然会导致在设备上CRC校验的错误。
网络上的MODBUS协议影射或特定总线可以在应用数据领域(ADU)上添加一些自定义的附加域[1]。
MODBUS串行链路协议一帧可传输的最大长度为256字节,因此,其数据单元的最大长度MODBUSPDU=256字节-1字节(地址)-2字节(CRC校验)=253字节[1]。
3-2RTU模式的消息帧
起始位
设备地址域
功能码域
数据域
CRC校验
结束符
3.5个字符
一个字节
一个字节
N个字节
2个字节
3.5个字符
3.1.3地址域
地址域在消息帧的前端,由一个字节组成,地址域的范围可以从0到255,零是广播地址,1到255是设备地址,用户可以在终端设备是定义一个固定的地址,在多个终端设备与主机进行通讯时,主机将与主机数据中地址域的地址相符的终端设备相连。
所有终端设备上的地址都是唯一的,只有被主机寻址到的终端设备会响应。
终端设备被主机寻址到会产生响应,响应后会发送会一个响应消息帧,响应消息帧中有终端设备的地址,主机就知道了与之通讯的终端设备是不是主机有寻找的设备。
3.1.4功能域
功能域代码是告诉终端设备要执行与功能码对应的功能。
电子工业协会制定了MODBUS协议标准正是因为每个厂家在生产设备时通讯协议的不统一,导致不同厂家所生产的设备不能很好的连接在一起,所以美国工业协会制定的协议标准中明确规定了每个功能码的意义,表3-3列出了大部分的功能码、它们的意义及对意义的说明。
表3-3功能码
代码
意义
行为
01H
读IO口OUT状态
获得数字输出的当前状态
02H
读IO口INT状态
获得数字输入的当前状态
03H
读数据
读取一个或多个寄存器的当前二进制值
05H
控制DO
强行设置DO的状态为 on 或 off
06H
预置多寄存器
将特定的二进制值放置到一系列寄存器中
3.1.5数据域
数据域是指终端设备在执行特定的功能时需要的数据或者是响应主机时终端设备采集得到的数据。
数据域中的内容可以是地址、数据、字符、状态。
例如:
功能域码告诉终端设备读取一个寄存器的数据,数据域就必须告诉终端设备读取哪个寄存器,读多少数据。
3.1.6错误检测
循环冗余校验(CRC)域由两个字节组成,包含了一个两位的十六进制值。
CRC数值由发送设备计算出来并且把计算出的CRC值加到数据域的后面,接受设备接受到数据帧后重新校验CRC数值,然后与接收到的CRC域中的值进行比较,如果这两个值相等,说明发送的数据帧没有错误[5]。
CRC运算时,首先将两个字节的寄存器置成0xFFFF,然后连续把数据帧中的每个字节与CRC寄存器的当前值进行运算,只有每个字节中八个数据位参与生成CRC,起始位、终止位以及可能使用的奇偶位不会对生成CRC产生影响。
在生成CRC时,每个字节的八位数据位与寄存器中的数值进行异或,然后将结果向右移位,高位补‘0’,同时将最低位移出并判断是否为1,如果是1,CRC寄存器就与一个事先设定的固定值进行一次异或运算,如果低位为0,不作任何处理。
上述步骤重复进行处理,直到执行完八次移位操作,当第八位移完以后,下一个八位字节与寄存器的当前值进行异或运算,同样进行上述步骤的另一个8次移位异或操作,当对数据帧中所有字节都进行了处理,生成的最后的数值就是CRC值。
生成一个CRC的流程为:
(1)预置一个16位寄存器为0xFFFF,称为CRC寄存器。
(2)把数据帧中第一个字节中的八位数据位与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。
(3)将CRC寄存器向低字节移动一位,最高位补“0”,最低位移出并判断;如果最低位为“0”,不做处理并开始下一次移位运算;如果最低位为“1”,将CRC寄存器与一个事先设定的固定值进行异或运算。
(4)重复第三步骤直到8次移位。
这样处理完了一个完整的八位数据位。
(5)重复第2步骤到第4步骤来处理下一个字节的八位数据位,直到数据帧中所有的字节处理完成。
(6)最终CRC寄存器得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 RS485 总线 远程 系统 设计