导航菜单

基于Modbus现场总线的液体流量测试平台的研究和设计

 摘要:随着机械、化工、纺织等行业的飞速发展和生产规模的不断扩大,人们对生产过程集中监控的要求也越来越迫切,现场总线技术应运而生。文章选择了液体流量作为测量监控的对象,设计了基于Modbus协议的液体流量测试平台,通过编写上位机Modbus协议程序,实现上下位机的协议通讯。测试平台可以快速、实时地采集流量信息并能准确、实时地传输数据,并提供友好的用户界面,方便用户监控,实现了数据监测,数据传输和数据处理保存,对实际的工业化生产提供了很好的参考价值,对同类产品的开发也有一定的借鉴意义。 
关键词:Modbus协议 现场总线 测试平台 流量监控 
中图分类号: TP273 文献标识码:A 文章编号:1007-9416(2016)01-0000-00 
Abstract:With the rapid development of machinery, chemicals, textiles and other industries and the continuous expansion of production scale, people’s centralized monitoring requirements of the production process, now, has become more and more urgent, the fieldbus technology came into being. This paper selected liquid flow measurement as an object, designed the liquid flow test platform based on Modbus protocol and achieved upper and lower computer communications protocol by writing PC Modbus protocol procedures. The 请键入文字或网站地址,或者上传文档。Cèshì píngtái kěyǐ kuàisù, shíshí dì cǎijí liúliàng xìnxī bìng néng zhǔnquè, shíshí dì chuánshū shùjù, bìng tígōng yǒuhǎo de yònghù jièmiàn源语言: 中文test platform can quickly gather real-time traffic information and accurate, real-time transmission of data. It also provides a friendly user interface and good value for the actual industrial production, as well as a certain reference for the development of similar products. 
Key words: Modbus protocol; fieldbus; test platform; flow monitoring 
1 引言 
在如今现代化测控领域, 被控对象、测控装置等物理设备的地域分散性现状、监控与控制等任务的实时性要求,以及不同设备之间信息交互频繁等特点越发突出,极易造成大量的“信息孤岛”现象。而基于现场总线的测控平台可以让上级管理网与子站交互数据,以实现全局的监控和优化。使采用不同开发平台、不同通讯协议组成的异构系统可以实现信息交互,避免信息孤岛的出现。Modbus协议作为现场总线的一种,以其开发成本低,简单易用等诸多优点己被工业领域广泛接受。本文基于Modbus协议的液体流量测试平台的设计,可以快速、实时地采集流量信息并能准确、实时地传输数据,并提供友好的用户界面,方便用户监控,实现了数据监测,数据传输和数据处理保存,对实际的工业化生产提供了很好的参考价值,对同类产品的开发也有一定的借鉴意义。 
2 整体设计方案 
系统平台由单片机测试终端和上位机两部分组成, 通过RS232通讯电路实现节点和PC的Modbus通讯以达到数据交互。单片机测试终端作为平台从机子站部分,采用涡轮流量计的原理进行流量的监控,通过采集频率量实现液体流量数据获取和控制功能。以PC机作为上位机主站,主站和子站之间通过串行传输网络总线进行连接和通信,实现控制命令的发送和采集数据的显示存储功能,可充当数据库服务器。 
考虑到可靠性、实时性和性价比等要求, 选用STC89C52单片机, 该单片机采用流水线架构, 片内资源丰富,通过输入接口采样频率,能够很好地满足设计要求。上位机在VS2010集成环境下采用C#语言编写程序,将编辑好的Modbus 协议程序载入51 单片机,并通过RS-232 串口连接单片机终端,既而接收终端数据,发送控制命令,远程配置单片机程序中相关参数, 建立数据库存储监控终端上传的流量数据并绘出流量变化曲线,在现场流量超过设定的上下限时,蜂鸣器进行报警,警示灯会亮。 
3 硬件实现 
3.1 最小应用系统设计 
单片机通过测量涡轮流量计输出的频率信号实现数据采集,单片机不能单独直接使用,需要添加外围器件以构成最小系统。单片机最小系统,或者称为最小应用系统,是指用最少的元件组成单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括: 晶振电路、复位电路、下载口电路和单片机,进而通过编写程序实现单片机的功能。在此最小系统中,在单片机外围,选择11.0592M的晶振,P0口接上拉电阻,有复位按钮和上电装置,电路通过USB转串口232进行程序烧写。如图1所示。 
3.2 通讯电路设计为实现现场组网和方便上位机完成现场数据采集和各种控制任务,该设计提供了两种通信接口:RS485接口和RS232接口。RS232主要用来实现一对一的通信方式,即流量测控节点和上位机的通讯,而RS485则可用来完成节点组网通信。RS232通讯电路是以具体RS232C标准协议规定的通信,它规定连接电缆和机械、电气特性、信号功能及传送过程。采用RS232接口实现串口通信时,由于PC机上的串口是具有RS232C电平的接口,而单片机上的串口是TTL电平的,因此需要采用MAX232电平转换芯片将PC端和单片机端的电平均转换为RS232电平,以实现串行数据传输。 
本测试平台需要实现上位机(即电脑)和下位机(即51单片机)的点对点通信,所以使用RS232接口,完全可以满足设计要求,通讯电路如图2所示。 
4 软件设计 
4.1 Modbus协议基础 
Modbus是由Modicon在1979年发明的,是全球第一个真正用于工业现场的总线协议。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。Modbus通信过程就是一个查询和回应的过程,其中查询消息中的功能代码表示被选中的从设备要执行何种功能。如果有错误发生,功能代码将被修改来指出回应消息是错误的,同时数据段包含了描述此错误信息的代码,错误校验是主设备确认消息传输的正误。当在实际的Modbus网络上通信中,控制器须要知道它们的设备地址,识别按地址发来的消息后,再决定要产生何种行动。平台控制器通信使用主-从技术,主设备(上位机)能初始化查询,其他从设备根据主设备查询提供的数据作出相应反应。本测试平台中上位机地址为00,51单片机地址为01。主从查询回应如图3所示。 
4.2 传输方式 
控制器可使用 AsciI 或RTU 两种传输模式。RTU 模式与ASCII 模式相比,在同样的波特率下,比ASCII 方式传送更多的数据。ASCII模式通信时,在消息中每个字节对应的由两位16进制表示的数都会以ASCII字符值发送,采用LRC(纵向冗长检测)进行检测。这种方式的主要优点是字符发送的时间间隔可达到1秒而不容易产生错误。此次的设计数据量不多,因而选择了ASCII模式。如图4所示。 
4.3 Modbus协议程序设计 
Modbus协议程序完成消息帧的解析和信息,实现MODBUS协议规定的寄存器的读、写,实现在通讯过程中错误校验功能。根据MODBUS协议:必须主机发送查询请求,从机才会返回数据。所以从机通讯是以接收中断开始,首先判断接收的是什么功能码,知道是从寄存器读出数据还是向寄存器写数据,然后再对数据进行相应处理,传送给相应的寄存器进行操作。 
根据MODBUS功能码和功能对应表,本MODBUS协议软件设计了的功能码03和15具有代表性的两项功能,功能码0x03,代码功能读保持寄存器,功能代码0x15,代码功能为写多个寄存器。设备响应如果成功,把计算机发送的命令原样返回,否则不响应。当有错误发生时,功能代码将被修改,用以指出回应的消息是错误的,回功能代码+80H,同时数据段包含了描述此错误信息代码,0x01表明从机能识别主机请求,0x02表示请求帧中的从机地址不存在,0x03表示主机的请求不允许,0x04表示从机不能完成请求。 
对于功能代码0x03,在一个节点中,使用该功能码读取保持寄存器连续块的内容。请求PDU说明了要读寄存器的起始地址和寄存器数量。响应报文中的每个寄存器的数据有两字节,在每个字节中直接地调整二进制内容。对于每个寄存器,第一个字节包括高位比特,并且第二个字节包括低位比特。读寄存器的值时,根据接收到的命令,从起始地址去读要读数目的寄存器数目,然后发回! 
比如,主机发送:0103 0000 0005 F7(十六进制为3a 30 31 30 33 30 30 30 30 30 30 30 35 46 37 0d 0a),表示请求读起始地址为0的5个寄存器的值。01表示从机地址,03表示功能码,0000表示寄存器起始地址,0005表示要读取的寄存器数目,F7是LRC校验码。当从机接收到此报文并正常响应时,会回发:0103 0A 0000 0000 0000 0000 0000 F2。01,03意义同上,0A表示数据区字节数,接下来为数据区,表示寄存器的实际数据,这里开始都默认为0。F2为LRC校验码。 
功能代码0x15原理一样。Modbus协议功能实现程序的流程图如图5所示: 
4.4总体软件实现 
除Modbus协议程序设计外,单片机整体软件的设计还需要:主机和从机之间要有串口通讯功能,单片机要监测外部中断处的频率变化,测得准确频率值;最后,通过液晶显示出来,并且编写上位机程序,实现定时发送接收,使测得的频率在图形界面上实时显示出来。单片机主函数程序流程图如图6所示。 
C#是一种强大的、面向对象的程序开发语言,是Microsoft专门用于.NET 平台的编程语言,它可以快速地编写各种基于Microsoft .NET平台的应用程序。上位机的程序设计是在Visual Studio 2010集成开发环境中使用C#语言进行编写,实现上下位机的Modbus协议通信。整个上位机程序,由串口配置,寄存器配置,数据库,自动发送接收和图形显示模块组成。 
凸显界面如下图7所示。 
液晶显示单片机接受的频率值,上位机接受由单片机发送的频率数字值。频率量程范围为200-2000HZ,报警上限为1800HZ,报警下限为400HZ,当超过1800HZ或者低于400HZ时,报警信号灯都会亮,并发出报警声。 
5 结语 
Modbus协议具有开放性、用户范围广、易实现、扩展性好及可靠性强等优点。由于此协议的通用性和使用的普遍性,具有此通信协议的设备能够与其它的自动化测控系统进行可靠的连接和组网。本文测试平台的实现对实际的工业化生产提供了很好的参考价值,对同类产品的开发也有一定的借鉴意义。   本文由wWw.DYlw.net提供,第一论 文 网专业代写论文和论文代写以及发表论文服务,欢迎光临dYLW.nET
参考文献 
[1]李大尉,电能自动监测系统设计.[学位论文]华东师范大学,2010年 
[2]何立民.单片机应用技术选编[M].北京:北京航空大学出版社,1998. 
[3]张友德,赵志英,涂时亮.单片机微型机原理,应用与实验(第五版)复旦大学出版社,2006. 
[4]许文辉.STC单片机实现的ModBus-RTU协议无线通信服务器.自动化与信息工程,2007. 
下载文本