Modbus协议在温湿度监控系统中的实现_第1页
Modbus协议在温湿度监控系统中的实现_第2页
Modbus协议在温湿度监控系统中的实现_第3页
Modbus协议在温湿度监控系统中的实现_第4页
Modbus协议在温湿度监控系统中的实现_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、第25卷第1期2006年1月国外电子测量技术Foreign Electronic Measurement TechnologyVo l.25,N o.1Jan.,2006应用天地Modbus协议在温湿度监控系统中的实现张波许平王声才吴晓庆(第二炮兵工程学院502教研室陕西西安710025摘要:本文首先概略介绍M odbus协议,和某温湿度监控系统主要硬件组成,接着详细阐述采用Mo dbus-RT U通讯具体的软硬件实现过程。实际运行显示效果良好,达到了预期目的。关键词:M odbus pro tocolRTU温湿度监控系统M SComm中图分类号:TP27Application of Modb

2、us protocol in supervisorsystem of temperature and humidityZhang BoXu Ping Wang Sheng cai Wu Xiaoqing(No.502S ector,the S econd Ar tillery En gineering Institute,X i'an710025A bstract:The paper briefly introduce s M odbus protoco l and the hardw are components of tempera-ture and humidity superv

3、isor system firstly,and then presents the procedure the hardw are and soft-w are to achieve serial com munication using M odbus-RT U.The sy stem has a go od perfo rmance thro ug h our ex periment and the desired desig ning targ et is achieved.Keywords:M odbus protoco l,RT U,supervisor sy stem of tem

4、perature and humidity,MSCom m.0引言当前,工业控制已从单机控制走向集中监控、集散控制,Modbus作为工业领域最流行的网络应用协议,在仪器仪表和测控系统设计中得到了广泛应用。通常的测控系统以一台PC机作为主站,以多台基于单片机并可利用串口收发数据的智能仪器作为子站,主站和子站之间通过串行传输网络总线进行连接和通信。在一些大型仓库中,根据所储存物品的不同,对环境温湿度都有特定的要求,而且又要保证全程监控,无人值守,这就为采用集中监控创造了客观需要条件。Modbus在温湿度监控系统中的具体软硬件实现,对于其他类似系统有一定的借鉴作用。1Modbus协议简介Modbus

5、是目前工业领域较流行的协议。Modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器如何请求访问其它的设备、如何回应来自其它设备的请求,以及怎样侦测错误并予以记录错误的过程。标准的M odbus网络使用的是RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率和奇偶校验,控制器能直接或经由M odem进行组网。控制器在标准的M odb-us网络上通信时使用主从技术,主设备可单独和从设备通信,也能以广播方式和所有从设备通信;控制器能设置为ASCII和RTU这两种传输模式中之一种。为了便于与基于单片机的仪表进行通信,一般采用RT

6、 U传输模式,RTU模式以传输间隔来标识整个消息帧的开始和结束,典型的RT U消息帧为“设备地址(1byte功能代码(1by te数据(n by tes CRC校验(2by tes”。此协议要求每个控制器必须知道作为从机的设备地址,并能识别按地址发来的消息和根据消息来执行相应的请求,如果需要回应,控制器将生成反馈信息并用M odbus协议发出。2温湿度监控系统主要组成该系统主要包括三个部分:二次仪表、除湿机及控制中心。彼此间采用M odbus协议经由RS-485串行总线通信,有效通信距离最大可达1.2km。通信介质采用普通的双绞线即可。其中,二次仪表和除湿机可以根据情况选多个,但控制中心只能有

7、一个。用户可以根据自身情况决定是否添加上位机,主要是PC机。如果在多环境下都采用该系统,建议添加PC机。系统示意图如图1所示。2006年第1期张波等:M odbus 协议在温湿度监控系统中的实现59 图1温湿度监控系统示意图2.1二次仪表设计 图2二次仪表硬件示意图 二次仪表是整个系统的测量单元,其功能为采集当前温湿度值,并将温湿度值返回至控制中心。它包括探头和仪表部分,探头上安装有温湿度传感器,HIH 3610和PT100。探头的外部采用金属外壳加金属烧结防护网罩,可以很好地防护电磁干扰和灰尘,同时由于采用了先进的传感器,可以在高温,有化学液体或气体的环境下正常工作。选用AD694和XT R

8、105将温湿度信号转换成电流信号,便于远距离传输。二次仪表还含有数码管显示、键盘模块和通讯模块。2.2控制中心设计控制中心是整个系统的处理单元,它定时发送读取命令,读取显示并储存当前温湿度值,同时根据温湿度值,判断是否给除湿机发送开关机命令。 图3控制中心硬件示意图此外,还可以对温湿度值进行打印报表,通过键盘可以设置采样间隔,定时打印温湿度曲线。2.3除湿机电控中心图4除湿机电控中心硬件示意图除湿机电控中心是具体的执行单元,在接收控制中心的开关机指令后,返回当前除湿机状态,并控制继电器响应相应的动作。所有的通讯指令都采用M odbus 格式实现。3PC 端和MC S -51端通讯接口的硬件实现

9、多点的异步串行传输网络多利用RS -485总线进行架设。PC 机上的串口是具有RS -232C 电平的接口,而单片机上的串口是T TL 电平的,为了在PC 机和单片机之间利用RS -485总线进行串行数据传输,需要将PC 端和单片机端的电平转换为RS -485电平,T TL 和RS -485之间的电平转换芯片有M AX485等。图5是PC 机和M CS -51单片机通信时的连接示意图图5PC 与MCS -51单片机经由RS -485网络的通信连接示意图4RTU 模式Modbus 消息帧在PC 端和MCS -51单片机端的接收实现4.1RTU 模式Modbus 消息帧的定义M odbus 协议定

10、义了三种类型的协议数据单元(PDU ,分别为请求PDU 、响应PDU 和异常响应PDU ,但在网络上实际发送的消息帧是应用数据单元(ADU ,应用数据单元是协议数据单元在指定网络或总线上的映射,具体到RS -485总线网络,应用数据单元是在协议数据单元前加上1by te 的请求地址、在协议数据单元后加上2by tes 的冗余循环错误校验码(CRC -16所构成。表1典型RT U 模式Mo dbus 消息帧格式起始位设备地址功能代码数据CRC 校验结束符T 1-T 2-T 3-T 41by te1by te0252by te (s 2by te sT 1-T 2-T 3-T 460国外电子测量技

11、术第25卷典型的Mo dbus消息帧格式如表1所示,消息发送至少要以3.5个字符时间的停顿间隔开始;传输的第一个域是设备地址,设备地址范围为1 247,地址0是广播地址,所有从节点均必须能识别广播地址并执行相应操作,主节点无指定地址,248 255的地址范围是保留地址单元,主设备通过将要通信的从设备的地址放入消息中的地址域来选通从设备,当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应;功能代码域可能的范围是1255,当从设备回应时,它使用功能代码域来指示是正常回应还是异常回应,对正常回应,从设备仅回应相应的功能代码,对异常回应,从设备将原功能代码的最

12、高位(D7位置为1并尾随一个字节的错误代码一起发送给主设备;数据域中的双字节数据应按先高位字节、后低位字节的顺序发送;标准的M odbus串行网络采用两种错误检测方法,奇偶校验对每个字符都可用,帧检测应用于整个消息,它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧,通常,使用CRC校验的时候不再对发送的每个字符进行奇偶校验,CRC域是两个字节,包含一16位的二进制值,它由传输设备计算后加入到消息中,接收设备重新计算收到消息的CRC,并与收到的CRC域中的值比较,如果两值不同,则有误;帧结束需要1.5个字符时间以上的停顿间隔。4.2PC端RTU模式Modbus协议的

13、实现PC端利用VB和MSCom m控件进行编程,使用MSCom m控件进行异步串行通信可以有查询和事件驱动两种方式。事件驱动法是利用MSCom m 控件的OnComm事件触发机制来完成的, MSComm控件产生的唯一事件是OnCom m事件,每当有通信错误或通信数据发生时,就会产生此事件,事件或错误的代码放在Co mmEvent属性中。这种方法能自动判断通信的发生并触发中断响应,而且只在有通信发生时才响应中断,因此当通信并未发生时不占有CPU资源,此时能够进行其它工作。但是这种方法能够自动判断通信的发生并触发中断响应是以设置M SCo mm控件的Rthreshold属性为前提的,当Rthres

14、ho ld=n时,则接收缓冲区中收到n个字节的数据就触发OnCo mm事件,可见,事件驱动方法不适合于非定长数据帧的接收。查询端口法是通过周期性地读取缓冲区的信号来发现是否有事件发生并进行处理的方法,它不使用端口的硬件中断,并且在足够频繁的查询端口的情况下能保证不会遗失任何数据或事件。但是查询端口法不具有自动判断通信的智能化,需要人工启动接收或发送数据,因此在有通信发生前就要查询端口来判断接收。在比较两种方法优缺点的基础上,本文提出了将定时器中断应用于查询过程的Modbus消息帧接收方法,考虑到信息的发送较易实现,这里仅以Modbus 消息的接收为例来说明PC端程序的编制方法。为了不间断地监控

15、串口的数据收发情况,整个程序工作时一直处于一个无限循环之中,但同时利用DoEvents语句允许将控制切换到操作环境内核,这不会使应用程序放弃焦点,但会使后台事件能够得到处理。程序编制中的主要问题是如何找到Modbus消息帧的开始和结束时间点,程序不断循环检测已接收的字节数目,每接收到一个新的字节数据就重新启动定时器计时,当超过设定的帧内最大间隔时间时,定时器将发生中断事件并在中断事件中设置帧结束标志frame_end=True,主循环程序查询到frame_end=True时暂停定时器的工作,并将接收到的消息帧字节数据转移到用户数组中以便于进行数据处理。定时器的定时时间为RTU模式消息帧的帧停止

16、位-3.5字符间隔时间。具体程序略去。4.3单片机端Modbus协议的实现较之于上位机,在单片机端实现M odbus协议要容易得多,因为单片机能够实现精确的定时,能够依据精准的时间间隔来标识M odbus消息帧的起始和结束,汇编语言强大的位运算能力也为C RC-16的计算提供了很多方便之处。接收M odbus消息帧的程序思路是在第一个接收数据引起中断后在最大帧内字符间发送时间间隔内等待新的数据字节的到来,如果没有新的数据字节到来则认为该消息帧已结束,从而退出串口中断服务子程序。具体的实现过程这里不作详述。5结束语总之,Modbus具有开放性、用户范围广、易实现、扩展性好、可靠性强等优点。利用上述的软硬件设计方法在该系统通信设计中取得了比较好的效果。由于此协议的通用性和使用的普遍性,具有此通信协议的设备能够与其它的自动化测控系统进行可靠的连接和组网。参考文献1Modbus-IDA,MODBUS Application Protocol SpecificationV1.1EB.http:/www.M odbus-IDA.o rg,2004.6. 1Schneider Electric,M O DBUS o ver Serial Line Specifi-cation&I mple

温馨提示

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

评论

0/150

提交评论