汪老师分享 - MCGS数据采集单片机数据传送的设计

本文详细介绍了如何利用MCGS工控组态软件进行数据采集,包括VB程序设计、串行通信、单片机接口、上位机与下位机通信,以及解决实际调试中遇到的问题,为学生提供实用的毕业设计参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:MCGS数据采集单片机数据传送的设计

1. MCGS概述

计算机技术和网络技术的飞速发展,为工业自动化开辟了广阔的发展空间,用户可以方便快捷地组建优质高效的监控系统,并且通过采用远程监控及诊断等先进技术,使系统更加安全可靠,在这方面,MCGS工控组态软件提供强有力的软件支持。MCGS全中文工业自动化控制组态软件(以下简称MCGS工控组态软件或MCGS)为用户建立全新的过程测控系统提供了一整套解决方案。MCGS工控组态软件是一套32位工控组态软件,可稳定运行于Windows95/98/NT操作系统,集动画显示、流程控制、数据采集、设备控制与输出、网络数据传输、双机热备、工程报表、数据与曲线等诸多强大功能于一身,并支持国内外众多数据采集与输出设备,广泛应用于石油、电力、化工、钢铁、矿山、冶金、机械、纺织、航天、建筑、材料、制冷、交通、通讯、食品、制造与加工业、水处理、环保、智能楼宇、实验室等多种工程领域。MCGSWW服务器版本,集工业现场的集散控制和各类历史、实时数据及相关曲线的WWW发布于一体,可以解决整个企业的Internet/Intranet方案,随时随地掌握工业现场运营状态,了解所需的各项信息,大幅度提高工作效率。

1.1 VB程序目的

采集数据程序(附录一 1.2 )

程序目的:将数据通过OPC协议从服务器中采集出来后,再将其打包传送给上位机。对于设备的初始化和各属性参量也在该程序中设置。

传送数据程序(附录一 1.1 )

    程序目的:1、定义设备名称。2、将读数据的命令通过串口发送出去,接收发回来的数据,再将数据包发给下位机,并判断下位机是否正确接收,否则从发。发送时对数据并对其采用和校验。

设置数据采集的界面程序(附录二)

程序目的:设置MCGS的参数界面,可在该界面中设置MCGS的各种通信参数,调用MCGS的帮助系统。

整个程序的工程文件最后生成.dll文件嵌入MCGS工控组太软件系统的自定义设备中,调用该设备对服务器进行数据采集,再将采集到的数据与上位机进行串行通信。

1.2  程序流程图

1.3  单片机串行通信概述

计算机的数据传送有两种方式:并行数据传送和串行数据传送。并行数据传送的特点是:各数据位同时传送,传送速度快、效率高。但并行数据传送有多少数据位就需多少根数据线,传送成本高。串行数据传送的特点是:数据传送按位顺序进行,最少只需一根传输线即可完成,成本低但速度慢。我们采用串行通信方式。在串行通信中,格式位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。因为计算机中使用的数据都是并行数据,所以串行通信需要进行数据转换。数据转换的实现由通用异步接收发送器(UART)完成。

通用异步串行接收器和转发器(UART) 是一个高度灵活的串行通讯设备。主要特点为:

1) 全双工操作( 独立的串行接收和发送寄存器)

2) 高精度的波特率发生器

3) 支持5, 6, 7, 8, 9 个数据位和1 个或2 个停止位

4) 帧错误检测

5) 多处理器通讯模式

涉及的控制寄存器:

  1. 串行控制寄存器SCON

位地址

9FH

9EH

9DH

9CH

9BH

9AH

99H

98H

位符号

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0、SM1=01——串行口工作方式选择位;SM2——多机通信控制位;REN——允许接收位;TB8——发送数据位8;RB8——接收数据位8;TI——发送中断标志;RI——接收中断标志

电源控制寄存器PCON

位  序

B7

B6

B5

B4

B3

B2

B1

B0

位符号

SMOD

/

/

/

GF1

GF0

PD

ID

在我们的使用中,该寄存器中除最高位之外,其他位都没有定义。最高位(SMOD)是串行口波特率的倍增位。在该系统中,为减少误差我们采用了波特率倍增。

中断允许寄存器IE

位地址

0AFH

0AEH

0ADH

0ACH

0ABH

0AAH

0A9H

0A8H

位符号

EA

/

/

ES

ET1

EX1

ET0

EX0

其中EA——中断允许总控制位;ES——串行中断允许位。

定时器的工作方式控制寄存器TMOD

位  序

B7

B6

B5

B4

B3

B2

B1

B0

位符号

GATE

C / T

M1

M0

GATE

C / T

M1

M0

高半字节定义定时器/计数器1,低半字节定义定时器/计数器0。GATE——门控位;C/ T ——定时方式或计数方式选择位;M1、M0——工作方式选择位。

程序设计过程中,我们设定初始值为定时器1工作方式2,中断总允许,禁止串行中断,波特率倍频,波特率设定为9600bps,串行工作方式1并允许通信。

从上位机发送数据给下位机时,采用的是7个口COM同时发送,采用串行通信。7个口每个口有16个栈。

2. 本设计有关原理图及主要芯片  

    2.1  上位机原理图和PCB板图

上位机电路板作用:⑴通过RS-232接口与PC机进行数据通信接收数据;⑵与下位机进行串行数据通信,把数据传送给下位机显示。

  上位机原理图

  

上位机PCB图

2.2 上位机汇编程序流程图:

上位机汇编程序(附录三)目的:从MCGS中接收数据,再把数据打包传输给指定的设备和从站。在数据处理完后,通知主设备接收成功。

2.3  UA7805C介绍:

该器件为一电压转换器件,将九伏电压变为五伏。输入电压为7到25伏,输出为4.8到5.2V

该芯片在电路中的作用是提高电路的可靠性,避免由于外界电网电压不稳导致输入电压不稳而对单片机产生损坏。.

2.4  MAX202介绍:

这是一个+5v供电、多通道RS-232驱动器/接受器。在max202内部可将+5v转换为+10v(空载),为RS-232驱动器提供工作电压。第一个转换器利用电容C1+5V输入加倍,得到(V+输出端)C3上的+10V;第二个转换器利用电容C2+10V转换为(V-输出端)C4上的-10V。可以从+10V (V+)-10V (V-)输出端获取少量的电源功率,为外部电路供电

2.5  调试过程中遇到的问题及解决方案

在调试上位机与下位机进行串行数据通信时,开始忽略了波特率的设定,上位机与下位机的波特率不一致,导致通信不能进行,修改波特率后正常,但误差较大。后来,通过倍频的方法减小了误差。当把数据传送给下位机时,下位机P0口数据不能显示,经查阅资料发现下位机P0口无带载能力,我们最后给P0口加上拉电阻解决了这个问题。

如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值