单片机专业毕业设计论文_ MCGS数据采集单片机数据传送的设计
更新时间:2023-06-08 13:06:01 阅读量: 实用文档 文档下载
- 单片机大专毕业设计论文推荐度:
- 相关推荐
MCGS数据采集单片机数据传送的设计
目 录
摘要 4 引言 4
1、信达广场工程设计介绍 5
1.1 工程数据采集显示全过程 5 1.2 本设计数据采集传输过程 5 2、MCGS概述 5
2.1 VB程序目 6 2.2 VB程序流程图 6 2.3 单片机串行通信概述 7 3、本设计有关原理图及主要芯片 9
3.1 上位机原理图和PCB板图 9 3.2 上位机汇编设计程序和流程图 11 3.3 LM7805 13 3.4 MAX202 13 3.5 74ALS244 14 3.6 P89LPC93 15
4、调试过程中遇到的问题及解决 15 5、致谢词 16 6、参考文献 17 7、附录 23
7.1附录一:传送数据给下位机的程序(模块一) 18 7.2 附录二:从服务器中采集数据程序(类模块程序) 21 7.3 附录三:测试及初始化设备程序 26 7.3.1 窗体一 26 7.3.2 窗体二 29 7.3.3 窗体三 34 7.3.4 窗体四 37 7.3.5 程序模块 42 7.4 附录四:上位机汇编程序 46 7.5 附录五:英文资料及中文翻译 55
设计标题
[摘要]
在信达广场大楼建设工程中,由于楼房建设规模庞大,为实现楼房的有效管理与监控,这就要求设计一个楼房信息的监控与显示系统。该设计通过OPC协议和MCGS,把父设备和服务器相连,采集楼房的温度等数据信息。再通过调用MCGS系统中的程序模块,使用MCGS的自定义设备传输数据。然后,父设备把数据传给子设备。子设备和父设备是通过RS-232相连,与子设备进行串行数据通信。子设备根据接收到的数据通过模拟显示屏显示,实现楼房的有效监控,最终实现楼房数据采集的自动化。
[关键词]
MCGS、数据采集、单片机、串行通信、RS-232
[Abstract]
In the project of XinDa Square, because the building's scale is huge, for valid management that realizes building with monitor and control, this will need to design a system for the control and manifestation of the building's information. Through the OPC agreement and the MCGS, the father equipments and the server are connected with each other, so it can realizes data acquisition of the building. The design use MCGS procedure in the system mold piece and definition equipments delivers the data. Then, the father equipments pass the data to sub- equipments. The Sub- equipments and the father equipments are connected by the RS-232 with each other .It can realizes the serial data communication between the father equipments and sub-equipments. According to the data received, the sub- equipments indicate the data on the screen. That realizes the building supervises and control effectively. Finally, the system realizes the automation of the building data collect. [key words]
MCGS、data acquisition 、signal Chip Microcomputer、 Serial Communication、RS-232
1 引言
随着电子技术的迅猛发展,单片机技术不断成熟,并已广泛应用于军事、工业、通讯、家用电器、智能玩具、智能仪表等领域。单片机的使用使产品功能、精度和质量大幅度提高,而电路设计更简单、故障率低、可靠性高而且成本低廉。在当今的单片机运用系统中,由于单片机具有处理数据快优点,在很多的运用系统中,只用到一片单片机来处理各种各样的数据。在生产过程和日常生活中各种信号的采集、处理和输出显示以成为最重要且最普遍的项目技术之一。随着科学技术的进步,人们住房条件的改善,楼宇规模不断扩大,楼层监控系统部分的设计至关重要,它关系到整个楼宇的运行状况乃至安全。
1. 信达广场工程设计介绍
1.1 工程数据采集显示全过程
信达广场的模拟数字监控系统,采用OPC协议与服务器相连,将各楼层数据信息从服务器中取出后,利用MCGS系统发送上位机。上位机将数据打包后按地址传送给下位机。下位机通过驱动红、绿灯和数码管将数据所表示的信息在显示屏上显示出来。
2.2 本设计数据采集传输过程
首先对传输设备进行初始化,例如设置串口线状态,以及传输设备属性。数据由MCGS通过OPC协议从服务器中取出后,先将数据打包,再传给上位机,MCGS每次发50个数据,在一秒内判断接收是否正确,如不正确则重发,上位机收到数据后再将数据以包的形式传给下位机,每包中包含一个地址,四个数据。
2. MCGS概述
计算机技术和网络技术的飞速发展,为工业自动化开辟了广阔的发展空间,用户可以方便快捷地组建优质高效的监控系统,并且通过采用远程监控及诊断等先进技术,使系统更加安全可靠,在这方面,MCGS工控组态软件提供强有力的软件支持。MCGS全中文工业自动化控制组态软件(以下简称MCGS工控组态软件或MCGS)为用户建立全新的过程测控系统提供了一整套解决方案。MCGS工控组态软件是一套32位工控组态软件,可稳定运行于Windows95/98/NT操作系统,集动画显示、流程控制、数据采集、设备控制与输出、网络数据传输、双机热备、工程报表、数据与曲线等诸多强大功能于一身,并支持国内外众多数据采集与输出设备,广泛应用于石油、电力、化工、钢铁、矿山、冶金、机械、纺织、航天、建筑、材料、制冷、交通、通讯、食品、制造与加工业、水处理、环保、智能楼宇、实验室等多种工程领域。MCGSWW服务器版本,集工业现场的集散控制和各类历史、实时数据及相关曲线的WWW发布于一体,可以解决整个企业的Internet/Intranet方案,随时随地掌握工业现场运营状态,了解所需的各项信息,大幅度提高工作效率。
2.1 VB程序目的
采集数据程序(附录一 1.2 )
程序目的:将数据通过OPC协议从服务器中采集出来后,再将其打包传送给上位机。对于设备的初始化和各属性参量也在该程序中设置。
传送数据程序(附录一 1.1 )
程序目的:1、定义设备名称。2、将读数据的命令通过串口发送出去,接收发回来的数据,再将数据包发给下位机,并判断下位机是否正确接收,否则从发。发送时对数据并对其采用和校验。
设置数据采集的界面程序(附录二)
程序目的:设置MCGS的参数界面,可在该界面中设置MCGS的各种通信参数,调用MCGS的帮助系统。
整个程序的工程文件最后生成.dll文件嵌入MCGS工控组太软件系统的自定义设备中,调用该设备对服务器进行数据采集,再将采集到的数据与上位机进行串行通信。
2.2 程序流程图
2.3 单片机串行通信概述
计算机的数据传送有两种方式:并行数据传送和串行数据传送。并行数据传送的特点是:各数据位同时传送,传送速度快、效率高。但并行数据传送有多少数据位就需多少根数据线,传送成本高。串行数据传送的特点是:数据传送按位顺序进行,最少只需一根传输线即可完成,成本低但速度慢。我们采用串行通信方式。在串行通信中,格式位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。因为计算机中使用的数据都是并行数据,所以串行通信需要进行数据转换。数据转换的实现由通用异步接收发送器(UART)完成。
通用异步串行接收器和转发器(UART) 是一个高度灵活的串行通讯设备。主要特点为:
1) 全双工操作( 独立的串行接收和发送寄存器) 2) 高精度的波特率发生器
3) 支持5, 6, 7, 8, 或9 个数据位和1 个或2 个停止位 4) 帧错误检测 5) 多处理器通讯模式
涉及的控制寄存器:
——允许接收位;TB8——发送数据位8;RB8——接收数据位8;TI——发送中断标志;RI——接收中断标志
(SMOD)是串行口波特率的倍增位。在该系统中,为减少误差我们采用了波
特率倍增。
高半字节定义定时器/计数器1,低半字节定义定时器/计数器0。GATE控位;C/ T ——定时方式或计数方式选择位;M1、M0——工作方式选择位。
程序设计过程中,我们设定初始值为定时器1工作方式2,中断总允许,禁止串行中断,波特率倍频,波特率设定为9600bps,串行工作方式1并允许通信。
从上位机发送数据给下位机时,采用的是7个口COM同时发送,采用串行通信。7个口每个口有16个栈。
3. 本设计有关原理图及主要芯片
3.1 上位机原理图和PCB板图
上位机电路板作用:⑴通过RS-232接口与PC机进行数据通信接收数
据;⑵与下位机进行串行数据通信,把数据传送给下位机显示。
上位机原理图
..
U1.
..
.
上位机PCB图
3.2 上位机汇编程序流程图:
开
始
测停止位
串口初始化,设置波特率, 数据线状态
设置停止标志位,接收数据 索引值
测停止位,判断是 否接收完数据
选取 COM 口,设置站号
发送数据
是否发送完 毕
上位机汇编程序(附录三)目的:从MCGS中接收数据,再把数据打包传输给指定的设备和从站。在数据处理完后,通知主设备接收成功。
3.3 UA7805C介绍:
.
.
U1
该器件为一电压转换器件,将九伏电压变为五伏。输入电压为7到25伏,输出为4.8到5.2V
该芯片在电路中的作用是提高电路的可靠性,避免由于外界电网电压不稳导致输入电压不稳而对单片机产生损坏。.
3.4 MAX202介绍:
这是一个+5v供电、多通道RS-232
驱动器/接受器。在max202内部可将+5v转换为+10v(空载),为RS-232驱动器提供工作电压。第一个转换器利用电容C1将+5V输入加倍,得到(V+输出端)C3上的+10V;第二个转换器利用电容C2将+10V转换为(V-输出端)C4上的-10V。可以从+10V (V+)和-10V (V-)输出端获取少量的电源功率,为外部电路供电。 3.5 74ALS244介绍:
..
三太控制信号
. 输入..输出
该芯片内部含有2个4位的三太缓冲器,它在电路中的功
.
能是进行单片机的I/O扩展,解决输出数据锁存,并达到当输入设备被选通时,.使数据源能与数据总线直接连通;而当输入设备处于非选通状态时,则把数据源与数据总线隔离,缓冲器输出呈高阻抗状态。
3.6 P89LPC93:
单片机P89LPC93接收MCGS传来的数据,内存为512字节。
4、调试过程中遇到的问题及解决方案
在调试上位机与下位机进行串行数据通信时,开始忽略了波特率的设定,上位机与下位机的波特率不一致,导致通信不能进行,修改波特率后正常,但误差较大。后来,通过倍频的方法减小了误差。当把数据传送给下位机时,下位机P0口数据不能显示,经查阅资料发现下位机P0口无带载能力,我们最后给P0口加上拉电阻解决了这个问题。
5、致谢词
为期两个月的毕业设计就要结束了,这将是我永生难忘的宝贵经历。本次毕业设计期间我翻阅了大量相关的文献资料和书籍,不仅加强了我的专业知识水平,更开拓了我的视野。
我做的毕业设计是信达广场数据采集工程的硬件及软件设计。在宋老师的耐心指导下一些同学的帮助下,我们首先设计方案,经过多次比较后,选择了以上所述系统,这次工作中涉及很多电子集成电路、PCB板制作和单片机方面的知识以及电路的实际焊接。为此,我查阅了很多相关资料,使我对专业知识有了更清楚的认识,通过实际操作锻炼了我的动手能力。期间,与同伴们的共同合作也是一笔财富,提高了我们的合作精神。本次毕业设计使我受益非浅。
最后,再次感谢宋老师的悉心指导以及在此期间同学们的大力帮助。由于时间有限,如有错误,望予以原谅。
设计者:熊恒
2005-6-10
参考文献
1、朱大奇等. 单片机原理串口及应用. 南京:南京大学出版社,2003 2、宗光华等. 多单片机系统应用技术. 北京:国防工业大学出版社,2003 3、张伟等. 单片机原理及应用. 北京.:机械工业出版社,2002 4、李广第等.单片机基础. 北京:北京航空航天大学出版社,2001
5、张树兵等. Visual Basic 6.0程序设计教程.北京:清华大学出版社,
2002
6、夏路易等. 电路原理图与电路板设计教程. 北京:北京希望电子出版
社,2003
7、何立民等. 单片机应用技术选编. 北京:北京航空航天大学出版社,
1998
8、康华光等. 电子技术基础. 北京:高等教育出版社,2002
9、Intel: Microcontroller Handbook,1988
10、M.D.Beer: Microcomputer Interfacing,1985
7、附录
7.1 附录一:传送数据给下位机的程序( 模块一)
Option Explicit
Public Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Declare Function GetTickCount Lib "kernel32" () As Long
'* 标识不同PLC继电器区的符号
Public Const gc_DeviceName = "数字显示屏"
Public Const gc_DeviceHelpName = "Adam4050.hlp"
'* 设备驱动中常用的常量定义
Public Const mc_OperateSuccess = 0 '* 函数调用成功 Public Const mc_OperateFail = -1 '* 函数调用失败 ——————————————————
Public Function FetchDataFormComm(ByVal lngCheckFlag As Long, objCommParent As Object, strCommOrder As String, strReturnData As String) As Long
'* 函数目的 : 将读数据的命令通过串口发送出去,接收PLC发回来的数据
'* 参数意义 : lngReadFlag - 读还是写命令,0 是读;1是写 '* objCommParent - 串口父设备对象 '* bytCommOrder() - 下发的命令 '* strReturnData - 返回命令 '* 函数返回 : 0 - 成功;-1 - 失败
Dim lngIndex As Long '* 循环索引变量 Dim lngReadLen As Long '* 实际读回来的数据的字节个数
Dim lngReturn As Long '* 函数返回
Dim bytOutput(0 To 2047) As Byte '* 发送和接收数据缓冲区,
'* 加校验
Call AddSum(strCommOrder, 0, lngCheckFlag)
For lngIndex = 1 To Len(strCommOrder)
' bytOutput(lngIndex - 1) = (Mid(strCommOrder, lngIndex, 1)) bytOutput(lngIndex - 1) = Asc(Mid(strCommOrder, lngIndex, 1)) Next lngIndex
'Debug.Print "下发的命令是:" + strCommOrder
'* 按是读还是写,协议格式,通信返回值不同 lngReadLen = outindat(bytOutput(), Len(strCommOrder), 0, 0, 13, 1000) '* 如果没有读到数据就出错退出
If lngReadLen <= 0 Then GoTo PROC_ERR
'* 校验处理
strReturnData = ""
For lngIndex = 0 To lngReadLen - 1
strReturnData = strReturnData + Chr(bytOutput(lngIndex)) Next lngIndex
lngReturn = AddSum(strReturnData, 1, lngCheckFlag) If lngReturn <> 0 Then GoTo PROC_ERR
'Debug.Print "读回来的数据是:" + strReturnData
PROC_EXIT:
FetchDataFormComm = mc_OperateSuccess Exit Function PROC_ERR:
FetchDataFormComm = mc_OperateFail End Function
——————————————
Public Function AddSum(strCommOrder As String, lngCheckDir As Long, lngCheckFlag As Long) As Long
'* 函数目的: 加校验
'* 参数意义: strSend - 命令字符串
'* lngStartPos - 校验开始位置 '* EnlngEndPos -校验结束位置 '* 函数返回: 0 - 成功; -1 - 失败
Dim lngIndex As Long '* 循环索引变量 Dim lngSum As Long '* 校验和 Select Case lngCheckDir Case 0
If lngCheckFlag = 1 Then lngSum = 0
For lngIndex = 1 To Len(strCommOrder)
lngSum = lngSum + Asc(Mid(strCommOrder, lngIndex, 1)) Next lngIndex
lngSum = lngSum Mod 256 strCommOrder = strCommOrder + Right("00" + Hex(lngSum), 2) End If
strCommOrder = strCommOrder + Chr(13) Case 1
If lngCheckFlag = 1 Then lngSum = 0
For lngIndex = 1 To Len(strCommOrder) - 3
lngSum = lngSum + Asc(Mid(strCommOrder, lngIndex, 1)) Next lngIndex
lngSum = lngSum Mod 256
If Mid(strCommOrder, lngIndex, 2) <> Right("00" + Hex(lngSum), 2) Then GoTo PROC_ERR End If
Case Else: GoTo PROC_ERR
End Select
AddSum = mc_OperateSuccess Exit Function PROC_ERR:
AddSum = mc_OperateFail End Function
正在阅读:
单片机专业毕业设计论文_ MCGS数据采集单片机数据传送的设计06-08
课题五06-30
校园的一角作文结尾06-17
用EXCEL宏编程完成学生分班工作04-23
社会实践部2011年下半年工作计划08-12
入党培养人考察意见02-15
农业综合开发申请书04-30
体育理论课考试答案01-02
高二语文《阿房宫赋》教学设计04-23
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 单片机
- 数据采集
- 毕业设计
- 传送
- 数据
- 论文
- 设计
- 专业
- MCGS
- 2014届生物高考基础复习(考纲全景透析):3.3 细胞核——系统的控制中心(必修1)
- 高校社区文化建设现状的调查报告——以重庆10所高校为例
- 第2讲:国际收支与平衡
- 中央电大财务报表分析上机考试
- 劳动保险概论复习题
- 服装文化与服装审美
- 采购商务谈判计划书
- 《计算机组成原理》综合练习题
- 护理_学基础舒适、疼痛护理_、休息与睡眠
- 粤科版九年级化学上学期期末考试卷
- 第六讲 群体心理的一般问题
- 001-锤击沉管混凝土灌注桩工程施工工艺试验记录表GD2301007
- 基于BAJA结构的建筑智能化系统集成的实现
- 西安平面设计培训寒假班暑假班
- 小学四年级上册英语单词表
- 复分解反应条件(复习案)
- 新人教版七年级数学上册期末试卷1
- 螺栓、螺母、垫圈重量计算
- 钢结构电梯井道合同模板
- 关于浙江理工大学“大学生消费状况”调查问卷表及数据分析