基于AVR单片机的电热水锅炉测控系统.doc_第1页
基于AVR单片机的电热水锅炉测控系统.doc_第2页
基于AVR单片机的电热水锅炉测控系统.doc_第3页
基于AVR单片机的电热水锅炉测控系统.doc_第4页
基于AVR单片机的电热水锅炉测控系统.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大庆石油学院应用技术学院毕业论文摘要电热水锅炉是采用最新电热技术及控制系统设计完成的经济、节能、安全、效率高、故障低、易维护的先进水平锅炉。电热水锅炉特点: 1、全自动智能化控制技术,无人值守;2、工作方式灵活,可设置为手动或自动模式;3、可在负荷变化时确保给水泵、循环泵自动启停,也可手动控制;4、环保运行,无噪音,无污染,热效率高,散热损耗小,热效率大于98%;5、锅炉占地面积小,节省场地。当今环境保护问题已深入人心,首先就是温室效应带来的全球变暖,科学家预测:如果地球表面温度的升高按现在的速度继续发展,到2050年全球温度将上升24摄氏度,南北极地冰山将大幅度融化,导致海平面大大上升,一些岛屿国家和沿海城市将淹于水中,其中就包括祖国的明珠上海。与普通锅炉相比我们做的电热水锅炉不需要释放大量的浓烟,不需要排放炉渣,而且没有噪声,所以电热水锅炉很环保;热效率方面,普通煤加热锅炉的热效率能达到75%-85%,而电热水锅炉在热效率方面更强能够达到95%左右;温度采用多点DS18b20进行测量;当前液位利用超声波技术进行测量;数据传输本系统采用无线数据传输技术;上位机采用三维力控组态软件做的监控界面,用于监控电热水锅炉的当前状态;本系统的控制芯片为Atmel公司生产的高性能、低功耗、8位AVR微处理器ATmega8。关键词 电加热;锅炉;超声波;无线通信;组态监控;DS18b20;AVR目录第1章 系统简介4第2章 系统硬件42.1 ATmega8简介42.2 超声波简介62.2.1 引言62.2.2 超声波测距原理62.2.3 超声波测距系统的电路设计72.3 DS18B20简介92.4 无线模块SRWF-501简介122.4.1 引言122.4.2 无线模块的特点122.4.3无线模块的应用领域132.4.4 无线模块的使用方法132.4.5 无线模块的注意事项14第3章 系统软件143.1 三维力控组态软件介绍143.1.1 概述143.1.2 主要技术指标143.1.3 软件功能简介153.2 Modbus通信协议173.2.1 MODBUS总线简介173.2.2 MODBUS协议简介183.2.3 MODBUS通讯信息传输过程183.2.4 MODBUS 功能码简介193.2.5 错误校校验验码(CRC)203.2.6 通讯错误信息及数据的处理21第4章 电路图与程序清单234.1 电路图234.2 程序清单244.2.1 总程序.c244.2.2 touwenjian.h314.2.3 wendu.h314.2.4 tongxin.h324.2.5 chushihua.h344.2.6 quanjubianliang.h35参考文献36致谢3737大庆石油学院应用技术学院毕业论文第1章 系统简介随着社会的发展和人民生活水平的不断提高,电子产品越来越普及,尤其是节能、环保、效率高、智能的电子产品越来越受到人们的喜爱。电热水锅炉是采用最新电热技术及控制系统设计完成的经济、节能、安全、效率高、故障低、易维护的先进水平锅炉。电热水锅炉特点: 1、全自动智能化控制技术,无人值守;2、工作方式灵活,可设置为手动或自动模式;3、可在负荷变化时确保给水泵、循环泵自动启停,也可手动控制;4、环保运行,无噪音,无污染,热效率高,散热损耗小,热效率大于98%;5、锅炉占地面积小,节省场地。当今环境保护问题已深入人心,首先就是温室效应带来的全球变暖,科学家预测:如果地球表面温度的升高按现在的速度继续发展,到2050年全球温度将上升24摄氏度,南北极地冰山将大幅度融化,导致海平面大大上升,一些岛屿国家和沿海城市将淹于水中,其中就包括祖国的明珠上海。与普通锅炉相比我们做的电热水锅炉不需要释放大量的浓烟,不需要排放炉渣,而且没有噪声,所以电热水锅炉很环保;热效率方面,普通煤加热锅炉的热效率能达到75%-85%,而电热水锅炉在热效率方面更强能够达到95%左右;温度采用多点DS18b20进行测量;当前液位利用超声波技术进行测量;数据传输本系统采用无线数据传输技术;上位机采用三维力控组态软件做的监控界面,用于监控电热水锅炉的当前状态;本系统的控制芯片为Atmel公司生产的高性能、低功耗、8位AVR微处理器ATmega8。第2章 系统硬件2.1 ATmega8简介ATmega8是ATMEL公司在2002年第一季度推出的一款新型AVR高档单片机。在AVR家族中,ATmega8是一种非常特殊的单片机,它的芯片内部集成了较大容量的存储器和丰富强大的硬件接口电路,具备AVR高档单片机MEGE系列的全部性能和特点。但由于采用了小引脚封装(为DIP 28和TQFP/MLF32),所以其价格仅与低档单片机相当,再加上AVR单片机的系统内可编程特性,使得无需购买昂贵的仿真器和编程器也可进行单片机嵌入式系统的设计和开发,同时也为单片机的初学者提供了非常方便和简捷的学习开发环境。ATmega8的这些特点,使其成为一款具有极高性能价格比的单片机,深受广大单片机用户的喜爱,在产品应用市场上极具竞争力,被很多家用电器厂商和仪器仪表行业看中,从而使ATmega8迅速进入大批量的应用领域。ATmega系列单片机属于AVR中的高档产品,它承袭了AT90所具有的特点,并在AT90(如 AT9058515、AT9058535)的基础上,增加了更多的接口功能,而且在省电性能,稳定性、抗干扰性以及灵活性方面考虑得更加周全和完善。ATmega8是一款采用低功耗CMOS工艺生产的基于AVR RISC结构的8位单片机。AVR单片机的核心是将32个工作寄存器和丰富的指令集联结在一起,所有的工作寄存器都与ALU(算术逻辑单元)直接相连,实现了在一个时钟周期内执行的一条指令同时访问(读写)两个独立寄存器的操作。这种结构提高了代码效率,使得大部分指令的执行时间仅为一个时钟周期。因此,ATmega8可以达到接近1MIPS/MHz的性能,运行速度比普通CISC单片机高出10倍。ATmega8的主要性能如下:*高性能、低功耗的8位AVR微控制器,先进的RISC精简指令集结构130条功能强大的指令,大多数为单时钟周期指令32个8位通用工作寄存器工作在16MHz时,具有16MIPS的性能片内集成硬件乘法器(执行速度为2个时钟周期)*片内集成了较大容量的非易失性程序和数据存储器以及工作存储器8K字节的Flash程序存储器,擦写次数:10000次支持可在线编程(ISP)、可在应用自编程(IAP)带有独立加密位的可选BOOT区,可通过BOOT区内的引导程序区(用户自己写入)来实现IAP编程。512个字节的E2PROM,擦写次数:100000次1K字节内部SRAM可编程的程序加密位*丰富强大的外部接口(Peripheral)性能2个具有比较模式的带预分频器( Separate Prescale)的 8位定时/计数器1个带预分频器 (SeParat Prescale),具有比较和捕获模式的 16位定时计数器1个具有独立振荡器的异步实时时钟(RTC)3个PWM通道,可实现任意16位、相位和频率可调的PWM脉宽调制输出8通道 A/D转换( TQFP、MLF封装),6路10位 A/D+2路8位A/D6通道 A/D转换( PDIP封装),4路10位A/D+2路8位A/D1个I2C的串行接口,支持主/从、收/发四种工作方式,支持自动总线仲裁1个可编程的串行USART接口,支持同步、异步以及多机通信自动地址识别1个支持主/从(Master/Slave)、收/发的SPI同步串行接口带片内RC振荡器的可编程看门狗定时器片内模拟比较器*特殊的微控制器性能可控制的上电复位延时电路和可编程的欠电压检测电路内部集成了可选择频率(l/2/4/8MHZ)、可校准的RC振荡器外部和内部的中断源18个五种睡眠模式:空闲模式(Idle)、ADC噪声抑制模式(ADC Noise Reduction)。省电模式(Powersave)、掉电模式(Powerdown)、待命模式(Standby)*I/O口和封装最多23个可编程I/O口,可任意定义I/O的输入/输出方向;输出时为推挽输出,驱动能力强,可直接驱动LED等大电流负载:输入口可定义为三态输入,可以设定带内部上拉电阻,省去外接上拉电阻28脚PDIP封装,32脚TQFP封装和 32脚MLF封装*宽工作电压2.7V-5.5V(ATmega8L)4.5V-5.5V(ATmega8)*高运行速度O-8MHz(ATmega8L)0-16MHz( ATmega8)*低功耗正常模式( Active):3.6mA空闲模式( Idle Mode):1.0 mA掉电模式( Powerdown Mode):0.5uA2.2 超声波简介2.2.1 引言由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人研制、汽车工业、医疗器械上也得到了广泛的应用。 2.2.2 超声波测距原理1、 超声波发生器 为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。 2、压电式超声波发生器原理 压电式超声波发生器实际上是利用压电晶体的谐振来工作的。它有两个压电晶片和一个共振板,当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。 3、超声波测距原理 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 。这就是所谓的时间差测距法。 超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。由此可见,超声波测距原理与雷达原理是一样的。 测距的公式表示为:L=CT 式中L为测量的距离长度;C为超声波在空气中的传播速度;T为测量距离传播的时间差(T为发射到接收时间数值的一半)。 超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量,虽然目前的测距量程上能达到百米,但测量的精度往往只能达到厘米数量级。 由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,是作为液体高度测量的理想手段。在精密的液位测量中需要达到毫米级的测量精度,但是目前国内的超声波测距专用集成电路都是只有厘米级的测量精度。通过分析超声波测距误差产生的原因,提高测量时间差到微秒级,以及用LM92温度传感器进行声波传播速度的补偿后,我们设计的高精度超声波测距仪能达到毫米级的测量精度。 超声波测距误差分析 根据超声波测距公式L=CT,可知测距的误差是由超声波的传播速度误差和测量距离传播的时间误差引起的。 时间误差 当要求测距误差小于1mm时,假设已知超声波速度C=344m/s (20室温),忽略声速的传播误差。测距误差st1.5米,可靠传输离距800m(BER=10-3/1200bps)。 6、透明的数据传输。提供透明的数据接口,能适应任何标准或非标准的用户协议。自动过滤掉空中产生的噪音信号及假数据(所发即所收)。 7、多信道,多速率。 SRWF-501型远程唤醒微功率无线数传模块标准配置提供8个信道,根据用户需要,可扩展到16/32信道,满足用户多种通信组合方式的需求。SRWF-501型模块可提供1200bps、2400bps、4800bps、9600bps、19200bps等多种通信波特率,并且无线传输速率与接口波特率成正比,以满足客户设备对多种波特率的需要。 8、双串口,3种接口方式。 SRWF-501型远程唤醒微功率无线数传模块提供2个串口3种接口方式COM1为TTL电平UART接口。COM2由用户自定义为标准的 RS-232/RS-485接口(用户只需要拔/插短路器再上电即可改变接口类型)。 9、支持有无校验两种数据结构通过跳线可选择用户数据是否带有校验位,即该模块支持8、9位两种数据结构。 10、高速无线通讯和大的数据缓冲区。可1次传输无限长度的数据,支持8N1/8E1格式,用户编程更加灵活。 11、智能数据控制,用户无需编制多余的程序即使是半双工通信,用户也无需编制多余的程序,只要从接口收/发数据即可,其它如空中收/发转换,网络连接,控制等操作,SRWF-501型微功率无线数传模块能够自动完成。 12、低功耗及休眠功能。 +5V供电,接收电流28mA,发射电流38mA,休眠时电流仅为18uA。 +3V供电, 接收电流20mA, 发射电流30mA,休眠时电流久3uA。 13、高可靠性,体积小、重量轻。采用单片射频集成电路及高性能单片处理器,外围电路少,可靠性高,故障率低。 14、看门狗实时监控。 MCU内部看门狗除了监控自行运行状况外,还监控射频芯片,即使射频芯片被干扰(如雷电干扰)也可重新启动。改变了目前无线通讯行业的致命问题,使该产品永不死机。2.4.3无线模块的应用领域 无线抄表;工业遥控、遥测; 自动化数据采集系统; 无线数据传输; 无线数据采集;楼宇自动化、安防、机房设备无线监控、门禁系统; POS系统,无线键盘、鼠标; 交通,井下定位、报警;2.4.4 无线模块的使用方法SRWF-501型微功率无线数传模块提供标准RS-232,RS-485和UART(TTL电平)3种接口方式,可与计算机、用户的RS-485 设备、单片机或其它UART 器件直接连接使用。2.4.5 无线模块的注意事项SRWF-501的通信信道是半双工的,最适合点对多点的通信方式,这种方式首先需要设1 个主站,其余为从站,所有站都编一个唯一的地址。通信的协调完全由主站控制,主站采用带地址码的数据帧发送数据或命令,从站全部都接收,并将接收到的地址码与本地地址码比较,不同则将数据全部丢掉,不做任何响应;地址码相同,则证明数据是给本地的,从站根据传过来的数据或命令进行不同的响应,将响应的数据发送回去。这些工作都需要上层协议来完成,并可保证在任何一个瞬间,通信网中只有一个电台处于发送状态,以免相互干扰。 SRWF-501也可以用于点对点通信,使用更加简单,在对串口的编程时,只要记住其为半双工通信方式,时刻注意收发的来回时序就可以了。第3章 系统软件3.1 三维力控组态软件介绍3.1.1 概述力控6.0监控组态软件是力控科技根据当前的自动化技术的发展趋势,总结多年的开发、实践经验和大量的用户需求而设计开发的高端产品,是三维力控全体研发工程师集体智慧的结晶,该产品主要定位于国内高端自动化市场及应用,是企业信息化的有力数据处理平台。力控6.0在秉承力控5.0成熟技术的基础上,对历史数据库、人机界面、I/O驱动调度等主要核心部分进行了大幅提升与改进,重新设计了其中的核心构件,力控6.0面向. NET开发技术,开发过程采用了先进软件工程方法:“测试驱动开发”,产品品质将得到充分保证。与力控早期产品相比,力控6.0产品在数据处理性能、容错能力、界面容器、报表等方面产生了巨大飞跃。3.1.2 主要技术指标方便、灵活的开发环境,提供各种工程、画面模板、大大降低了组态开发的工作量;高性能实时、历史数据库,快速访问接口在数据库4万点数据负荷时,访问吞吐量可达到20000次/秒;强大的分布式报警、事件处理,支持报警、事件网络数据断线存储,恢复功能;支持操作图元对象的多个图层,通过脚本可灵活控制各图层的显示与隐藏;强大的ACTIVEX控件对象容器,定义了全新的容器接口集,增加了通过脚本对容器对象的直接操作功能,通过脚本可调用对象的方法、属性;全新的、灵活的报表设计工具:提供丰富的报表操作函数集、支持复杂脚本控制,包括:脚本调用和事件脚本,可以提供报表设计器,可以设计多套报表模板;3.1.3 软件功能简介1、易于集成的图形开发系统方便友好的开发环境、面向对象的设计,使组态工作量大大降低,用户可以打造自己的开发环境和操作风格;单独的进程管理器管理力控所有的的后台进程,具备自诊断和自恢复功能;预制图形模板、工程模板,提供上千种丰富的工业图形元素,支持多达几百种过度色和渐进色调色板,动画连接可以构成逼真强大的动画效果,可以提供多种工业标准的复合图形组件来完成过程的监控;支持HMI图元的对象图层,通过脚本可灵活控制图元对象图层的显示与隐藏;提供自定义图库开发工具,用户可以方便地生成自己的自定义图库;支持大画面漫游功能、支持单机多屏和系统自定义菜单功能;方便的变量管理,可以查找、批量替换、定位、重命名变量等;可嵌入各种格式(BMP、GIF、JPG、JPEG、CAD等)的图片,方便画面制作;2、灵活、强大的报表解决方案报表开发工具提供丰富的报表操作函数集、支持复杂脚本控制,包括:脚本调用和事件脚本,比如利用报表函数可以在报表上同时显示实时数据和任意时刻的历史数据,并加以统计处理,例如取行平均、列平均,统计出最大最小值;报表文件格式兼容Excel工作表文件,提供类Excel的绝大部分功能,包括:编辑功能、计算功能、图表功能等;支持图表显示自动刷新,可输出多种文件格式: Excel、TXT、PDF、HTML、CSV等;可实现多层表头,可以实现报表嵌套,可以制作复杂的报表格式;具备打印、打印预览、页眉页脚打印功能,支持逐行打印;报表数据源支持实时数据库和各种关系数据库,可显示、处理实时和历史数据,可直接遍历关系数据库数据;提供灵活报表设计器,可以设计多套报表模板,方便报表制作;3、灵活、强大的“脚本”编译系统变量支持间接寻址功能,系统内置间接变量、中间变量、数据库变量等多种变量方式;系统变量可自动提取IO通讯状态,报警信息、系统时钟等;函数及方法强大的系统函数、友好的在线帮助,方便您快速构建SCADA系统;内置的组件具备大量的方法和属性,在脚本环境中可任意调用;支持自定义函数;编译开发环境面向对象设计的脚本编译环境,“所见即所得”,方便引用方法和变量;类“Basic”的语言环境,提供面向对象编程方式;脚本类型和触发方式多样,支持条件动作、数据变化动作、窗口动作、循环动作等;脚本支持多种结构,支持数组运算和FOR循环结构;4、强大方便的通讯解决方案支持通过RS232、RS422、RS485、电台、电话轮巡拨号、以太网、移动GPRS、CDMA、GSM网络等方式和设备进行通讯; 开发环境下具备在线诊断设备通讯功能,可以动态的打开、关闭设备,通讯故障后具备自动恢复功能;支持控制设备和控制网络冗余,控制设备进行切换时,通讯会自动切换;支持多种协议的设备挂在一条通讯链路上与力控进行通讯,方便电台等远程通讯;支持与设备采取主从、主主、从主等多种交互机制来进行通讯,比如对MODBUS标准协议设备,力控可以支持主与从2种方式与设备通讯;可以和人机界面、实时数据库分离,充当通讯管理服务器;可以采集带时间戳的数据,毫秒级数据采集速率,实现历史数据向实时数据库的回插功能,可以采集记录仪、录波器数据,支持SOE,完成事件监视。支持主流的DCS、PLC、DDC、现场总线、智能仪表等1000多种厂家设备的通讯;也可以按照用户提出的通信协议和硬件接口,在较短时间内开发新的驱动程序。5、全新的图形组件及图形库强大的多媒体支持,播放各种格式的视频、音频文件,如Flash、幻灯片等,可以有效的集成视频监控;复合的趋势曲线、XY曲线、报警、报表、总貌、温控曲线等组件,所有复合组件相比以前版本增加了大量的方法和属性,通过脚本可以在后台进行灵活的控制。多功能图片显示组件可支持GIF透明动画、CAD图形等实用图形格式。所有的标准的WINDOWS控件如文本输入、下拉框、列表框、复选框、多选按钮、起始时间、时间范围、历史追忆等都增加了大量的方法和属性。大量的矢量子图如PID调节器、手操器等方便您构建控制工程。6、报警与事件系统软件在运行时可以自动记录系统状态变化、操作过程等重要事件,一旦发生事故,可就此作为分析事故原因的依据,为实现事故追忆,提供基础资料;操作人员可以根据生产需要将生产重要画面、曲线实时抓拍并存放到本地保存;报警和事件记录可以存放关系型数据库中,便于分析、查询和统计;报警方式:提供多种报警检查方式,使您轻松构建报警系统;支持传统的声光报警,语音文件报警,支持操作人员报警确认管理机制;支持GSM方式短信报警,生产出现问题的时候,通过移动网络可以将报警信息及时的发送到管理者的手机上;支持电话语音报警、E-MIAL通知方式报警;报警自诊断:支持内部自诊断、对IO通讯故障、网络通讯故障都可以进行报警提示7、高效的数据处理,高效能的实时历史数据库软件内嵌分布式实时数据库,数据库是整个软件的核心,负责将采集的实时数据进行处理、发布;分布在网络的实时数据库节点可以充当为IO通讯服务器、报警服务器、历史服务器等;实时数据库完成历史数据的存储、归档,报警的检查,报警数据的存储等功能;数据库具备强大的数据处理功能,丰富的参数类型,内置的多种功能块,可实现累计、统计、控制、线形化、PID控制、各种运算等功能;数据库对数据按区域、单元、子单元管理,分为6层结构,方便数据的管理;用户可根据实际需要自定义自己的各类数据库结构,方便对数据的管理和查找。3.2 Modbus通信协议3.2.1 MODBUS总线简介MODBUS是MODICON公司为该公司生产的PLC设计的一种通信协议,从其功能上看,可以认为是一种现场总线。它通过24种总线命令实现PLC与外界的信息交换。具有MODBUS接口的PLC可以很方便的进行组态。MODBUS传输协议定义了控制器可以识别和使用的信息结构,而不须考虑通信网络的拓扑结构。它定义了各种数据帧格式,描述了控制器访问另一设备的过程,怎样作出应答响应,以及可检查和报告的错误。MODBUS有两种传送方式,RTU(Remote Terminal Unit)方式和ASC方式。MODBUS以LSB在先的形式传送数字量,以MSB在先的形式传送模拟量。MODBUS把通信参与者规定为“主站”(MASTER)和“从站”(SLAVE)。主站可向多个从站发送通信请求,最多可达247个从站。每个从站都有自己的地址编号。MODBUS的RTU方式规定通信字符串的最后两个字节用于传递循环冗余校验数据。其校验方式是将整个字符串(不包括最后两个字节)的所有字节按规定的方式进行位移并进行XOR(异或)计算。接收方在收到该字符串时按同样的方式进行计算,并将结果同收到的循环冗余校验的两个字节进行比较,如果一致则认为通信正确,如果不一致,则认为通信有误,从站将发送CRC错误应答。MODBUS中RTU采用CRC-16的冗余校验方式。控制器与PLC之间通信的内容包括主站对从站的读取和写入,MODBUS规定,只有主站具有主动权,从站只能被动的响应,包括回答出错信息。数据通信的一般格式如下:从功能上讲,MODBUS包括24种命令,每一功能都有相应的功能码。最基本的功能主要包括AI/AO、DI/DO的数据传送, PLC如果支持MODBUS,那么都应该包含这些基本命令。PLC将模拟量和数字量存放在不同的寄存器中。模拟量在PLC中是保存在寄存器(Holding Register)中,数字量保存在线圈中(Holding Coils)。主站:从站地址 功能码 数据起始地址 数据量 CRC校验码从站:从站地址 功能码 数据量 应答数据 CRC校验码MODBUS除了定义通信功能码外,同时还定义了出错码,这有助于通信主站发现通信的错误内容和原因,并采取相应措施,从而保证了通信的可靠进行。MODBUS定义的出错信息为:指定的地址错误、指定的数据量出错、从站自身的错误、无法应答请求或执行要求指令、从站无暇处理主站发送的通信请求指令等。错误信息对应错误代码。主站在接收到错误码后,根据错误的原因采取相应措施。如:改变数据地址、加大发送间隔、重发等。Modbus通信编程摘要 工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。Modbus就是工业控制器的网络协议中的一种。3.2.2 MODBUS协议简介Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。3.2.3 MODBUS通讯信息传输过程当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC 校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。返回的信息中包括地址码、功能码、数据区及CRC 校验码。如果CRC校验出错则不返回任何信息。地址码:地址码是每次通讯信息帧的第一字节,从0 到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。同一总线系统内的每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。当从机回送信息时,回送数据均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。相应的地址码表明该信息来自于何处。功能码:是每次通讯信息帧传送的第二个字节。MODBUS 通讯规约可定义的功能码为1到127。力创科技EDA系列模块仪表变送器仅用到其中的一部分功能码。 作为主机请求发送,通过功能码告诉从机应执行什么动作。作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。力创科技 EDA 系列 MODBUS 部分功能码如下表:功能码定义操作01读开关量输出OUT读取一路或多路开关量输出状态数据02读开关量输入DI读取一路或多路开关量状态输入数03读寄存器数据读取一个或多个寄存器的数据05写开关量输出 OUT控制一路继电器“分/合”输出,遥控06写单路寄存器把一组二进制数据写入单个寄存器0F写多路开关量输出写一路或多路开关量输出10 写多路寄存器把多组二进制数据写入多个寄存器数据区:数据区包括需要由从机返回何种信息或执行什么动作。这些信息可以是数据(如:开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。例如, 主机通过功能码 03 告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。对于不同的从机,地址和数据信息都不相同。EDA 系列模块仪表变送器采用 MODBUSRTU 通讯规约,主机(PLC、RTU、PC 机、 DCS 等)利用通讯命令(功能码 03),可以任意读取其数据寄存器(其数据信息表详见相应说明书)。一次最多可读取寄存器个数是 100 个。EDA91系列模块仪表的数据寄存器存储的电量多达几百个(如:电流、电压、功率、031 次谐波分量、需量等),每个参数都是 16 位(2 字节)的二进制数 据,并且高位在前;CRC 校验:MODBUSRTU 通讯协议的 CRC(冗余循环码)包含 2 个字节,即 16 位二进制数。低字节在前,高字节在后。静止时间要求:在 MODBUS-RTU 模式中,发送数据前要求数据总线静止时间即无数据发送时间至少大于 3.5 个字符的时间(如波特率为 9600 时为 3.6mS); 整帧的信息必须以一个连续的数据流进行传输。如果信息结束前存在超过 1.5 个字符以上的间隔时间,则出错。3.2.4 MODBUS 功能码简介(下面介绍的为锅炉测控系统中使用的功能码)1、功能码 03(0x03): 读多路寄存器主机要读取地址为 01,开始地址为 0106H 的 2 个从机寄存器数据主机发送的报文格式:主机发送字节数发送信息备注从机地址101发送到地址为 01 的从机功能码103读取寄存器起始地址20106起始地址为 0106H数据长度20002读取 2 个寄存器(共 4 字节)CRC 码225F6由主机计算出的 CRC 码从机(EDA)响应返回的报文格式:从机响应字节数返回信息备注从机地址101来至从机 01功能码103读取寄存器返回字节数1042 个寄存器共 4 字节寄存器数据 122710地址为 0106 寄存器的内容寄存器数据 221388地址为 0107 寄存器的内容CRC 码2FC14EDA模块计算得到的 CRC 码2、功能码 06(0x06):写单路寄存器主机要把数据 1388,保存到 1 号从机地址为 0001 的寄存器中去。主机发送的报文格式:主机发送字节数发送信息备注从机地址101发送到地址为 01 的从机功能码106写单路寄存器起始地址20001要写入的寄存器地址写入数据21388对应的写入数据CRC 码2D55C由主机计算出的 CRC 码从机(EDA)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。3.2.5 错误校校验验码(CRC)使用MODBUS-RTU 模式,消息包括了一基于CRC 方法的错误检测域。CRC 域检测了整个消息的内容。主机或从机可用校验码进行判别接收信息是否正确。由于电子噪声或一些其它干扰,信息在传输过程中有时会发生错误,错误校验码(CRC)可以检验主机或从机在通讯数据传送过程中的信息是否有误,错误的数据可以放弃,这样增加了系统的可靠性及通讯效率。CRC 域是两个字节,包含一16 位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC 域中的值比较,如果两值不同,则有误。在进行CRC 计算时只用8 个数据位,起始位及停止位和奇偶校验位都不参与CRC 计算。CRC 码的计算方法是: 1、预置1 个全“1”的16 位CRC 寄存器(0xFFFF)(即全为1); 2、把第一个8 位二进制数据(既信息帧的第一个字节)与16 位的CRC 寄存器的低8 位相异或(XOR),把结果放于CRC 寄存器的低8 位; 3、把CRC 寄存器的内容右移一位(朝

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论