登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 理工学类 > 自动化 > 正文

基于MODBUS协议的数据采集显示系统毕业论文

 2020-02-19 07:02  

摘 要

Abstract II

第1章 绪论 1

1.1 背景 1

1.2 系统设计要求 1

1.3 研究现状 1

第2 章 Modbus协议介绍 3

2.1 Modbus协议 3

2.1.1 Modbus协议简介 3

2.1.2 命令格式 4

2.2 CRC校验 6

第3章 系统原理 8

3.1 系统方案介绍 8

3.2 电路设计 8

3.2 数据采集模块 9

3.2.1 模块介绍 9

3.2.2 模块工作原理 11

3.3 本地显示模块 12

3.3.1 单片机 12

3.3.2 显示屏 14

第4章 软件设计 16

4.1 上位机软件 16

4.1.1 开发环境介绍 16

4.1.2 软件展示 16

4.2 单片机程序 20

4.2.1 开发环境介绍 20

4.2.2 单片机程序介绍 21

第5章 仿真与调试结果 23

5.1硬件仿真 23

5.1.1 lcd显示仿真 23

3.2.2 串口通信仿真 24

5.2 软件测试 27

第6章 总结 29

6.1 自我评价 29

6.2 系统优化 30

致谢 31

参考文献 32

附录A 33

附录B 42

摘 要

本文设计了一个系统基于MODBUS RTU通信协议的数据采集显示系统,实现数据的本地显示以及上位机软件对采集模块的远程控制和管理。系统使用51单片机和LCD显示屏实现数据的本地显示的功能,使用型号为PZEM-016的交流通讯模块采集包括电压和电流在内的六项电路参数。本文设计的系统的实现,对工厂和家庭用电设备的维护和管理有一定帮助,对多机管理系统的设计有一定参考作用。

本文主要研究了51单片机的串行口通信、LCD1602显示屏的使用、VB.NET编程语言的使用以及MODBUS RTU协议。

本文最后实现了设计目标,实物测试表明,LCD显示正常,上位机软件显示正常,系统工作正常。

本文的特色在于设计了针对多个从机的上位机软件,51单片机使用MOUDBUS协议对外通信。

关键字:数据采集;MODBUS RTU协议;51单片机

Abstract

In this paper, a data acquisition and display system based on MODBUS RTU communication protocol is designed to realize local data display and remote control and management of acquisition module by PC software. The system uses 51 single chip computer and LCD display screen to realize the function of local display of data. The AC communication module of PZEM-016 is used to collect six circuit parameters including voltage and current. The realization of the system designed in this paper is helpful to the maintenance and management of electrical equipment in factories and households, and can be used as a reference for the design of multi-computer management system.

This paper mainly studies the serial port communication of 51 MCU, the use of LCD1602 display screen, the use of VB. NET programming language and MODBUS RTU protocol.

Finally, the design goal is achieved. The physical test shows that the LCD display is normal, the upper computer software display is normal, and the system works normally.

The feature of this paper is to design the upper computer software for several slaves, and 51 single chip computer communicates with MOUDBUS protocol.

Keywords:data acquisition;MODBUS RTU Agreement;51 Singlechip

第1章 绪论

    1. 背景

电,是现代使用最广泛的能源之一。无论是工业上,还是家庭中,每时每刻都有大量的电能被消耗。大部分人都对电有一些了解,比如我们可以大致知道某台用电设备的功率,像普通电饭煲大概是一千瓦,比风扇功率高很多;也知道一些电路异常时的状态,比如短路时电流是巨大的。

在用电设备越来越多的情况下,在越来越多的场合中,我们需要了解用电设备或者某条线路的电力信息。

获取电力信息,我们可以知道当前的用电量,从而了解到电能是否被浪费;我们可以知道当前的电压和电流信息,甚至是功率因数,从而了解到当前设备或者线路是否正常工作。这种需求在普通家庭中不是特别高,但是在工厂中,大功率设备和巨大的电能消耗产生了这种需求。想像一下,如果每台设备都装有获取电力参数的数据采集系统,工人在操作设备时就可以随时了解到当前设备的工作情况,比如电机堵转会产生大的电流;当设备功率过高,超过了警戒线,系统会报警。即使在自动化程度很高的生产线上,值班人员也能在总控制室了解到每台设备的工作状态。有了这个系统,在设备故障时,它可以让设备安全关闭。同时它可以分析故障信息,使得设备维修时维修人员能迅速定位故障原因。

数据采集系统不仅仅是对电力参数的获取和即时分析使,它在长时间的工作中产生的大量的数据,可以为设备改进和线路改造提供数据基础。分析这些大数据,我们也可以仅通过干线电力信息逆向计算各支线的电器大致工作情况。大数据在当下的重要性不言而喻,我只能说,数据采集系统能做的不仅仅如此。

    1. 系统设计要求

设计一个设计一个电力参数采集显示系统,采集数据包括电流、电压、功率、功率因数、频率等,由中心站和现地采集单元组成。中心站采用MCU,显示采用的是字符型LCD,通信均遵从MOUDBUS RTU协议。

目标:设计完成基于单片机的各个模块硬件电路及软件驱动程序

1) 数据(电量参数)采集;

2) 数据传输(Modbus协议);

3) LCD驱动及显示;

4)与上位机的交互。

    1. 研究现状

对于数据采集功能,早就有许多公司做出了成熟的产品,因为这项需求很久之前就存在。电力数据的采集一般用在大型机械上,特别是工厂中。但是大部分电力数据采集系统地独立的,它们只在机器附近显示当前机器的电力信息,很少有集中控制,远程管理的数据采集系统。随着机械自动化程度越来越高,这方面的需要逐渐被重视。

Modbus协议面世几十年来,发展的很快,应用很广,所以相关的论文和研究比比皆是,在此不作列举。

lcd显示屏随着智能设备的更新也发展的很快,现如今大都往高分辨率、轻薄的方向发展。字符型的lcd似乎随着按键手机慢慢被人们淡忘了,但事实并非如此,因为有需求,它也在发展。以前很常见的使用是科学计算器,但实际上用的最多的是在工业中。字符型lcd廉价,适应能力强,显示丰富,所以工业中使用很广泛。

上位机软件也有许多成品,针对不同型号的处理器,配置了对应的模板。在智能化和自动化的今天,上位机软件不仅仅用于实验室,工业中也被广泛使用,比较常见的组态软件有组态王和InTouch等。

第2 章 Modbus协议介绍

本章主要介绍系统使用的Modbus协议,共两节。

第一节将介绍Modbus协议的通用规范以及在本系统中的具体命令格式,第二节将介绍CRC校验算法。

2.1 Modbus协议

2.1.1 Modbus协议简介

Modbus协议是1978年由Modicon公司(施耐德电气旗下的一个品牌)制定的应用控制器上的一种通用语言,用来实现控制器之间、控制器神经网络(例如以太网)和其它设备之间的通信。它是一种应用层报文传输协议,与底层的物理接口及电气规范无关,支持传统的RS-232/422/485设备和最新发展出来的以太网设备等[1]。现如今Modbus是一种工业上开放的现场总线协议,是目前通用的工业标准之一。该协议能够使得各个厂家之间的控制设备能够相互通信和进行数据传输,在工业过程控制中具有广泛的应用[2]。

Modbus协议定义了一个控制器能识别和使用的报文结构,该协议描述了控制器如何请求访问其它设备,如何响应来自其它设备的请求,以及错误怎样被检测和报告的过程。此外,Modbus协议将连接到同一总线中的设备分为“主站”(Master)和“从站”(Slave),每次通信都是由主站发起的,每个从站拥有不同的通信地址,在一个系统中从机的数量最多可以达到247个[3]。Modbus协议通过多达24种总线命令实现主站和从站之间的信息交换,具有简单高效、可靠实用等优点。Modbus协议的物理接口符合EIA-485规范,它组成的主从范文的单元控制网络,可通过简单的通信报文完成对从站的读写操作,其通信速度可达19.2Kbps;主站可逐一单独访问从站也可对所有从站进行广播通信。

在标准的Modbus网络中,Modbus协议有三种模式:ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)和RTU(Remote Terminal Unit-远程终端设备)以及TCP(Transmission Control Protocol 传输控制协议)[4]。一个Modbus通信系统中只能选择一种通信模式,不能混用[5],否则会导致通信失败。

  1. ASCII模式

在ASCII模式中,每个字节都被当成两个ASCII字符发送,在这种模式中两个字符传输间隔达到1秒也不会出错。

ASCII模式中采用LCR校验(Longitudinal Redundancy Check 纵向冗余校验)。报文以一个冒号字符(“:”,即ASCII码0x3AH)开始,以一个回车换行符号(crlf)即ASCII码0x0DH(回车)和0x0AH(换行)结束。当连接到总线上的设备接收到“:”字符时,设备将解析下一个域(冒号后面的字符)是否为自己的地址,如果时,则解析后面的信息,否则将丢弃该数据。ASCII报文帧的典型格式如下表:

表2.1 ASCII报文帧格式

域功能

起始域

地址域

功能域

数据域

校验域

结束域

字符数

1

2

2

n

n

2

  1. RTU模式

在RTU模式中,每个8位的字节包含两个4位的十六进制字符。RTU报文帧的典型格式如下表:

表2.2 RTU报文帧格式

域功能

起始域

地址域

功能域

数据域

校验域

结束域

数据位

3.5T

8

8

N*8

16

3.5T

典型的RTU报文帧没有起始位和停止位,而是以至少3.5个字符时间的停顿间隔表示一帧数据的开始或者结束(如上表3.5T所示)。报文的内容依次由8位地址码,8位功能码,数据内容,16位CRC校验码构成,所有的字符由十六进制字符0-9、A-F组成,在计算机上使用串口助手通信时需将接受和发送模式都设置为hex(十六进制)模式才能保证数据的收发正常。

例如在9600波特率下,1个字符时间为:

1×9×1/9600=0.9375ms

式中,9代表8位数据位和1位停止位。若设定2位停止位,奇/偶校验,则乘以11。

由于在RTU模式中没有起始位和停止位,因此要求发送一个报文帧时中间不能有停顿。如果在报文帧传输完成之前有超过1.5但小于3.5个字符时间的停顿间隔,数据传输将发生错误。

从两种模式的报文帧结构可以看出,RTU报文帧的信息结构更为紧凑,因此在相同波特率下,RTU模式比ASCII模式可以传送更多的数据。所以,RTU模式的使用比ASCII模式更为广泛。

2.1.2 命令格式

本系统使用Modbus-RTU模式通信,具体通信协议如下:

物理层采用RS485通信接口,波特率为9600,8位数据位,1位停止位,无校验。

应用层方面,采用Modbus-RTU协议进行通信,从机编址范围为0x01-0xF7,即1-247。地址0x00作为广播地址,从机不需要回复主机,地址0xF8作为通用地址,该地址只能在单从机的环境中使用。模块支持的功能码包括0x03(读保持寄存器)、0x04(读输入寄存器)、0x06(写单个寄存器)、0x41(校准)、0x42(电能清零)。

功能码的具体解读如下:

1、0x03功能码用于读取从机设置,其格式为:

从机地址 0x03 寄存器地址 寄存器数量 CRC校验。

需要注意的是,寄存器地址、寄存器数量、校验码都是先发送高字节,再发送低字节。例如寄存器地址为0x0001,则发送的寄存器地址字节为:00 01;但是在寄存器中,先储存低字节再储存高字节。

寄存器排布如下:

表2.3 保持寄存器排布

寄存器地址

说明

分辨率

0x0001

功率报警门限

1LSB对于1W

0x0002

Modbus-RTU地址

范围为0x0001-0x00F7

正确回复为:

从机地址 0x03 字节数 寄存器数据 校验码

通信举例和错误回复见04功能码介绍。

2、0x04功能码用于读取测量结果,其格式为:

从机地址 0x04 寄存器地址 寄存器数量 校验码

正确回复为:从机地址 0x04 字节数 寄存器数据 校验码

错误回复为:从机地址 0x84 异常码 校验码

其中,异常码解读如下:

0x01:非法功能;

0x02:非法地址;

0x03:非法数据;

0x04:从机错误;

测量结果寄存器排布如下:

表2.4 输入寄存器排布

寄存器地址

说明

分辨率

0x0000

电压测量值

1LSB对于0.1V

0x0001

电流测量值低16位

1LSB对应0.001A

0x0002

电流测量值高16位

0x0003

功率测量值低16位

1LSB对应0.1W

0x0004

功率测量值高16位

0x0005

电能测量值低16位

1LSB对应1Wh

0x0006

电能测量值高16位

0x0007

频率测量值

1LSB对应0.1Hz

0x0008

功率因数测量值

1LSB对应0.01

0x0009

报警状态

0xFFFF为报警,0x0000为不报警

注:LSB(Least Significant Bit)指的是最低有效位。

例如,发送如下命令:

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图