计算机控制系统实验装置的设计.doc_第1页
计算机控制系统实验装置的设计.doc_第2页
计算机控制系统实验装置的设计.doc_第3页
计算机控制系统实验装置的设计.doc_第4页
计算机控制系统实验装置的设计.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

湖南工业职业技术学院湖南工业职业技术学院 Hunan Industry Polytechnic 毕 业 实 践 类类 别别 毕业实践毕业实践 题题 目目 计算机控制系统实验装置的设计 系 名 称 专业及班级 学生姓名 学 号 指导教师 完成日期 2010 年 12 月 27 日 1 湖南工业职业技术学院湖南工业职业技术学院 毕业实践任务书 系 名 称 电气工程系 专业及班级 学生姓名 学 号 毕业实践题目 毕业实践题目 计算机控制系统实验装置的设计 指指 导导 教教 师 签字 师 签字 教研室主任 签字 教研室主任 签字 系系 主主 任 签字 任 签字 2010 年年 7 月月 2 日日 2 毕业实践课题及任务毕业实践课题及任务 课题简介 本课题旨在研制一套符合现代教学要求的计算机控制技术实验装置 该实验装 置主要功能是由计算机来控制水的加热过程 将水箱中的水温控制在设定温度允许 的误差范围之内 要求测温分辨率要高于 0 01 控温精度达到 0 05 实验装置 包括硬件装置和实验软件 学生在设计该课题时 应具备电路分析 电子技术 电 气控制技术 电子 CAD 技术 单片机控制技术 C 语言程序设计 机电一体化技术 等方面的相关知识 掌握电路设计流程图 电子元器件的选择 电路原理图的设计 及连线 课题任务 要求 1 设计要求 1 采用 ADuC824 单片机完成温度采样 控制输出 与 PC 机数据通讯 2 实验软件应具有人机界面友好和实用性的特点 3 要求结构紧凑 安全可靠 力求价廉物美 4 要求阅读有关水温控制 单片机系统设计等书籍资料 2 技术数据表 设计计算机控制技术实验装置关芯片的技术参数相关网站和书本 3 设计任务 1 完成资料收集和整理出一个大概的设计方案 2 完成实验装置的整体结构的设计 3 完成各重要组成部分的电路图并用相关软件画出 4 完成实验装置的软件设计 5 完成论文的检查和排版 进程安排 暑假第 1 周 根据课题要求 查阅相关资料 参考书 进一步加深对毕业实践课题 的理解和认识 完成开题报告 并写出毕业实践的摘要及目录 暑假第 2 周 根据课题要求 设计硬件电路 并写出工作原理 暑假第 3 周 设计软件流程及编写程序 并对程序进行注释 暑假第 4 周 2010 下期第 16 周 进行硬件及软件安装 调试及软硬件联调 2010 下期第 17 18 周 课题资料的整理 修改 完善 装订 论文答辩 3 参考资料 1 冯培弟 计算机控制技术 M 浙江 浙江大学出版社 1990 6 1 2 王化祥 张淑英 传感器原理及应用 M 天津 天津大学出版社 1999 2 3 曾峰 候亚宁 曾凡雨 印制电路板 PCB 设计与制作 M 北京 电子工业出 版社 2002 11 4 陶永华 尹怡欣 葛芦生 新型 PID 控制及应用 M 北京 机械工业出版社 1998 9 5 李刚 AD C8XX 系列单片机原理与应用技术 M 北京 北京航空航天大学出版 社 2002 6 ADuC824 Micro Converter Data Sheets Z CD USA Analog Devices Inc 2001 7 王福瑞 单片微机测控系统设计大全 M 北京 北京航空航天大学出版社 1999 8 刘书明 冯小平 数据采集系统芯片 ADuC812 原理与应用 西安 西安电子科技大 学 2000 9 ADuC824 Aspire Z CD USA Analog Devices Inc 2001 10 胡凡 陈则韶 罗大为 程文龙 制冷工程 PVT 实验用精密低温恒温槽的研制 J 仪器仪表学报 2002 23 4 4 湖南工业职业技术学院毕业实践开题报告书湖南工业职业技术学院毕业实践开题报告书 电气工程 系 专业 学生姓名 班级学号 课题名称计算机控制系统实验装置的设计 课题 准备 情况 通过上网和图书馆查阅资料 参考高等教育出版社出版 王建华编写的 计算 机控制技术 北京航空航天大学出版社出版 戎月莉编写的 计算机模糊控制原理 及应用 等资料 通过与指导老师和同学的讨论 我初步了解了完成本课题所需的单 片机技术 机电一体化技术等相关知识 思路和 方法 通过 PT100 实现信号 温度值 的采集 经过带有两个 AD 转换通道的 ADuC824 对温度信号进行采集 将转换后的值通过 RS 232 发送到上位机软件部分 软件部分 具有良好的人机界面用户可以对在该界面设定采样周期 控制参数 控制周期 通过 操作达到要求的稳定温度 拟重点 解决的 问题 1 用 ADuC824 单片机实现温度的采样和控制输出 2 电路原理图的设计 3 硬件及软件安装 调试及软硬件联调 计 划 进 度 暑假第 1 周 根据课题要求 查阅相关资料 参考书 进一步加深对毕业实践课题的 理解和认识 完成开题报告 并写出毕业实践的摘要及目录 暑假第 2 周 根据课题要求 设计硬件电路 并写出工作原理 暑假第 3 周 设计软件流程及编写程序 并对程序进行注释 暑假第 4 周 2010 下期第 16 周 进行硬件及软件安装 调试及软硬件联调 2010 下期第 17 18 周 课题资料的整理 修改 完善 装订 论文答辩 指导教 师意见 签名 年 月 日 5 湖南工业职业技术学院毕业实践考核表湖南工业职业技术学院毕业实践考核表 电气工程 系 专业 学生姓名班级学号 课题名称计算机控制系统实验装置的设计 课题 完成 情况及 自我评 价 虽然设计有不足 但总体来说 我这次收获了更多 在与老师的交流中 我再 次系统的学习了专业知识 对专业知识掌握和运用更加熟练 此次毕业设计 我 收获的不止是将其完成 更多的是再次把知识学习巩固了一遍 也为即将毕业的 我画了一个句号 在这次设计的学习中 我得到了不少启示 相信在以后的学习 生活上也会给予我很多的帮助 评语评分 指导教 师评价 签名 年 月 日 评语评分 评阅教 师评价 签名 年 月 日 评语评分 答辩小 组评价 组长签名 年 月 日 6 毕业实 践评审 组审核 经综合考核该学生毕业实践评定为 组长签名 年 月 日 计算机控制系统实验装置的设计 摘要 本文介绍了一套基于 ADuC824 单片机的计算机控制系统的开发 详细介绍了该系 统的具体设计方案 包括 下位机硬件设计 下位机软件设计和上位机软件设计 下位机硬件的核心是 ADuC824 单片机和 RS 232 通讯接口 硬件的设计主要分成四个模 块 信号采集模块 参考电压源模块 通讯模块和输出控制模块 下位机软件设计的相应程序 包含了温度的采集 AD 转换和校准 温度值的上传 以及 接受上位机控制命令等程序 本部分分两大模块 主程序模块和串口中断模块 上位机软件采用 DELPHI 编程 具有友好和实用的人机界面 用户可以通过上位程序观 察通讯情况 设定控制参数 控制周期 采样周期和设定水箱达到稳定时的温度值 观察温 度曲线以及输出反馈下位机的采样温度而得出的控制量 上位机软件通过不断从下位机反馈 过来的水箱的温度信号而产生的控制量通过 RS 232 传输到 ADuC824 单片机 再经 ADuC824 单片机输出控制固态继电器动作 这样不断循环使水箱处于恒温状态 本文还讲述了印制电路的设计过程以及在设计过程中需要注意的问题 介绍了系统的调 试过程和调试结果 还对该设计进行了综合评价 肯定了系统设计的意义与成就并提出了设 计的不足之处和改进的方法 关键词 计算机控制 ADuC824 单片机 DELPHI 固态继电器 RS 232 通讯接口 7 目 录 引 言 9 第一章 下位机硬件设计 12 1 1 硬件选型 12 1 2 硬件电路设计 14 1 3 外围硬件简介 15 1 4 本章小结 16 第二章 下位机软件设计 17 2 1 主程序的设计 17 2 2 中断子程序的设计 19 2 3 本章小结 23 第三章 上位机软件设计 24 3 1 MEASUREMENT STUDIO的使用 24 3 2 数据库的使用 25 3 3 软件具体功能 26 3 4 PID 控制算法的实现 29 3 5 本章小结 31 第四章 电路板制作 32 4 1 印刷电路板制作过程介绍 32 4 2 印刷电路板设计时一些应注意的问题 33 4 2 1 电源 地线的处理 33 4 2 2 数字电路与模拟电路的共地处理 33 4 2 3 信号线布在电 地 层上 34 8 4 2 4 大面积导体中连接腿的处理 34 4 2 5 布线中网络系统的作用 34 4 2 6 设计规则检查 DRC 34 4 3 本章小结 34 第五章 调试 35 5 1 调试内容 35 5 2 模块调试 35 5 3 调试结果 36 5 4 本章小结 36 结 论 37 致 谢 38 参考文献 39 附 录 40 附录 硬件电路原理图 40 9 引引 言言 20 世纪 40 年代 电子数字计算机 出现即引起各方面的重视 电子数字计算机所显示 出来的强大的运算能力和丰富的逻辑判断功能 使它很快从单纯的高速计算手段的概念中解 放出来 成为控制部件进入自动控制系统 将数字计算机作为控制系统部件的思想萌生于 20 世纪 50 年代初 最早想在导弹与飞机的控制中应用计算机 但是 早期的通用计算机体积 大 耗能多 可靠性低 无法用于控制系统 因此早期的航空应用中使用了专用计算机 数字微分分析器 此后 计算机控制的主要进展在工业控制方面 50 年代初 美国首先用计 算机来自动完成过程巡检与数据的搜集 后来 在获得成功的基础上试验用计算机构成开环 和闭环控制系统 美国 TWR 航空公司和 TEXACO 公司合作 投入三十八年的工作量 在经过 了一系列可行性研究后 设计出了聚合装置计算机控制系统 并于 1959 年 3 月在得克萨斯 州的一家炼油厂投入在线运行 该控制系统控制 26 个流量 72 个温度 3 个压力和 3 个成 分 控制系统的基本功能是从反应器的压力最小出发 确定五个反应器供料的最佳分配 并 根据催化剂活性测量结果来控制热水流入量以及确定最佳循环 此项开创性的工作 引起从事计算机制造与自动控制研究者的极大兴趣 前者看到了计 算机应用的新的巨大市场 后者则发现了提高自动化具有很大潜力的工具 他们纷纷投入了 进一步的试验研究 现代工业为追求高经济效益 需要从上述的分散控制走向新的集中控制 因为一些现代 工业具有持续化与大型化的特点 如大型钢铁厂 炼油厂等 工厂企业中的各装置和设备之 间联系密切 为了降低能耗提高经济效益 仅实现局部范围内孤立控制难以获得显著效果 必须在上述分散型控制的基础上考虑它们之间的通讯扣协调 这就产生了计算机分级分布式 控制系统 美国 Honeywel 公司于 1975 年研制成第一套集散型控制系统 TDC 2000 并投入使 用 到 80 年代 世界上已推出许多集散系统作为商品投放市场 其中有几万套已投入运行 并取得了较明显的经济效益 可以说 按大系统递阶控制原理设计的多级分布式计算机控制 系统 是 80 年代计算机工业过程控制的一个重要发展方向 多年来 过程控制一直被认为是计算机控制系统主要的 传统的应用领域 随着微型机 控制技术的发展 情况已发生了变化 在机电控制方面 特别在航天技术 军事装备以及机 器人技术中也得到了极其广泛的应用 尤其在机器人技术方面 计算机控制已成为必不可少 的因素 目前 由于使用了计算机这个有力工具 自动控制技术正向着深度和广度发展 在广度 方面 向着大系统或系统工程的方向发展 从单一过程 单一对象的局部控制 发展到对整 个工厂 整个企业 甚至对社会经济 国土利用 生态平衡等大规模复杂对象进行控制 在 深度方面 则向着智能化方向发展 人们逐步引入了自适应 自学习等控制方法 并且模拟 10 生物的视觉 听觉 触觉 识别文宁 图像 语言 物体 进一步根据感知的信息进行推理 分析 直观判断 自行学习与自行解决问题 计算机在完成这些工作的过程中 被用来收集 处理信息 并进行分析 判断与决策 按控制论的观点 控制系统是由控制部分和被控对象两部分组成的 见图 0 1 闭环控 制时 控制部分将由检测装置 控制器和执行装置组成 并和被控对象连接构成闭合环路 控制部分通过检测装置获得有关被控对象运动过程的信息 经过控制器处理决策 由执行装 置输出控制信息去影响被控对象 使被控对象的运动过程满足特定的要求 控制部分 图 0 1 控制系统的组成 当闭合环路被断开时 由于控制部分与被控对象间信息交换的通道被断开 上述的反馈 控制过程就不能自动进行 如断开在控制器输出端 控制器做出的控制决策 不能直接通过 执行装置去控制被控对象 而需要通过操作人员的干预才能完成控制 如断开在控制器输入 端 控制器将不依赖取自检测装置的反馈信息做出决策去指挥执行装置 这两种情况都被称 为开环控制 无论是开环还是闭环的控制系统 如果用数字计算机作控制器时 即构成计算 机控制系统 这样 以计算机为控制工具的控制 被称为计算机控制 显然 计算机控制的 出现 发展 必将和计算机技术及控制理论的发展紧密联系在一起 回顾历史 展望未来 不难理解为什么计算机控制技术会成为从事自动控制工作的技术 人员所必须掌握的技术 同样可以理解在高校中的自动化专业为什么要开设 微型计算机控 制技术 这门课程 作为自动化专业 微型计算机控制技术 这门课程是学院规定的必修课 但这门课程是 有其自身抽象 难懂 技术性强等特点 初学者了解理论知识以后还是无法理解 更加不可 能与实践联系起来 即使是有所谓的实验要求 也由于没有具体的实验设备而只能用 MATLAB 模拟仿真 这样往往理论与实践脱节 没有能够达到真真的教学目标 在这样的情况下由于 这门课程教学的需要 提出这个课题的设计 即计算机控制系统实验装置设计 控制器 检测装置执行装置 被控对象 11 课题要求在研制一套基于 ADuC824 单片机的计算机控制系统实验装置 该实验装置包括 硬件和软件两部分 硬件主要是通过 PT100 实现信号 温度值 的采集 经过带有两个 AD 转换通道的 ADuC824 对温度信号进行采集 将转换后的值通过 RS 232 发送到上位机即这里 所讲的软件部分 软件部分具有良好的人机界面用户可以对在该界面设定采样周期 控制参 数 控制周期 要达到的稳定温度 还可以观察到每一次采样进来的温度值 与设定的稳定 温度的偏差 以及产生的控制量 同时通过曲线显示温度 上位机可以对该曲线进行保存 删除 数据存储到数据库 可以任意移动曲线 框选放大曲线 还可以恢复到正常模式等 几乎完成了所需的功能 在上位机软件中加入了 PID 计算机控制算法 产生相应的控制量 显示在人机界面上 同时把控制量进行处理生成 3 位十六进制数以 ASCII 的形式下发到单片 机 ADuC824 转入 DA 转换通道产生相应的 0 5 伏电压 正好作为固态继电器的输入 产生 相应的功率 控制加热过程从而达到控制水温的目的 例如 从理论上来讲如果设定的稳定 温度是 50 度 则当水箱里的温度到达 50 度时控制量就输出 0 经过 DA 转换后得到的电压值 是 0 伏 那么固态继电器的加热功率就为 0W 停止了加热 但当加热停止时水箱里的水就会 自然冷却 温度就会小于 50 度 这时控制量就不再是 0 而是大于 0 的值 于是就会依据偏 差的大小而产生大小不同控制量 经过 DA 转换就会有相应的电压值产生 固态继电器就会 有相应大小的功率输出 开始对水箱加热 具体功能和技术指标 1 加热器功率 600W 2 加热水箱容积 约 2 升 3 测温分辨率 高于 0 01 控温精度 0 05 4 采用 ADuC824 单片机完成温度采样 控制输出 与 PC 机数据通讯 实验软件应具有 人机界面友好和实用性的特点 具体要求如下 1 软件采用 Measurements Studio Delphi 编写 2 能将本实验装置的工作过程动态 形象地显示在屏幕上 并能将实时温度数据 分别以 文本 表格 曲线等方式进行显示 3 所有执行部件的控制均可用鼠标在界面上进行操作 4 控制算法部分的程序应具有开发性 允许用户组态或以填表的形式填写控制参 数 5 能方便的对采样周期 控制周期和目标温度进行设定 6 能对温度数据以数据库文件格式进行的保存 查询和打印 12 13 第一章第一章 下位机硬件设计下位机硬件设计 1 1 硬件选型 硬件部分包括容量为两升左右的水箱 PT100 ADuC824 单片机开发板和固态继电器 其 中 ADuC824 开发板中包含了 ADuC824 AD780 7805CT ADM80974HC573 AT28C256 NC7508 ADM3202 等主要芯片 而本 设计只应用了其中的一部分芯片 主要是 ADuC824 AD780 ADM3202 ADM809 ADuC824 是这个系统的核心硬件 主要是因为它是与 MCS51 兼容且带有双通道 16 位和 24 位 ADC 转换 具有 26 条可编程的 I O 线和 12 个中断源 片内集成了 8KB 的闪速 电擦除 数据存储器以及 256BRAM 片内外围设备包括与 I2 C 兼容的 SPI 串行接口 多个数字 I O 口 看门狗定时器 WDT 12 位电压输出 DAC 电源监视器 PSW 以及定时器 计数器 TIC 具体如下图 1 1 所示 图 1 1 ADuC824 的功能方框图 可见 ADuC824 是一个片内资源非常丰富的单片机 其卓越的性能源于各种资源的独自特 点 主要表现为 它以便于进行软件编程的 8051 为内核 集高分辨率的 具有 24 位 16 位 无丢失码 可直接接收来自传感器微弱信号的双路 ADC 温度传感器 增益可编程放 大器 PGA 8 位 MCU Micro Programmed Control Unit 闪速 电擦除存储器 Flash EE Program Memory 看门狗定时器 WDT 电源监视器 PSM 以及 SPI Serial Peripheral Interface 和 I2C Inter Integrated Circuit 总线接口等资 14 源于一身 ADuC824 是一个完全可编程的 自校准 高精度的数据采集芯片 ADuC824 芯片中内置有丰富的功能模块 使用时不但可以简化大部分的外部电路 提高 系统的集成度 而且更重要的是这样大部分功能可以由软件设置中完成 一旦需要更改个别 电路参数 就不需要更改电路了 同时大大减小了由外部电路引入干扰的可能性 确保系统 的转换精度 ADuC824 芯片中还内置有 1 个 8 位的 MCU 采用的是增强型的 51 内核 ADC 和 MCU 之间 通过特殊寄存器接口 它们之间的数据交换和控制是在芯片内部完成 使用时可以非常方便 的实现各种方式的模数转换 这样可以省去很多花在电路设计和调试的时间和精力 这也是 本设计选用这块芯片的主要原因 AD780 可以把 4 36 伏输入电压高精度的转变为 2 5 3 伏电压输出的芯片 它的初始误 差和温漂都比较小 因而产生的噪声也很小 不管使用多大的电容都能很好的为 AD 转换和 DA 转换提供合适的驱动电压 正因为它的这个特性就选用它为 AD C824 提供 2 5 伏的参考 电压 其功能结构图如下图 1 2 所示 图 1 2 AD780 结构功能图 ADM809 是专门的复位芯片代替了传统的阻容复位电路 传统的阻容复位电路复位脉冲的 宽度主要取决于电容电阻的参数 阻容复位电路大部分情况下均能良好地工作 但在电源出 现瞬时跌落的情况下 将无法获得参数符合要求的复位脉冲或根本无法产生复位脉冲 从而 影响系统的可靠性工作 15 ADM809 为 AD 公司高性价比的系统监控电路 用来对数字系统的电源电压 VDD 进行监控 并在必要时向主处理器提供可靠的复位信号 无需搭配外部元件使用 AD809 可进行准确的 VDD 监控 并在上电 断电 掉电及电源电压下陷时提供准确的复位时序 这两款器件还具 备对电源线上的负向瞬态脉冲干扰进行抑制的能力 是全面替代阻容复位电路的理想选择 其原理框图见下图 2 4 ADM3202 是一款专门用于 RS 232 连接的芯片 其好处在于使用较小的电容就可以驱动 可以用 5 伏电压为 RS 232 供电进行通讯 具体见下图 1 3 图 1 3 ADM809 原理框图 图 1 4 ADM3202 原理框图 1 2 硬件电路设计 硬件电路主要是分为三大模块 采集模块 通讯模块 参考电压供电模块 采集模块主 要是采用激励电流供电 其优点在于可达到高精度 对于本设计的技术指标要求采集温度要 达到 0 01 则就用激励电流源供电 且选用 ANI1 与 ANI2 作为采集通道采进温度 由下 图 1 5 可以看到 硬件 J3 是一个连接器 其三个接口一方面与三线制的温度传感器 PT100 16 连接 另一方面第三接脚与 ADuC824 芯片的第三引脚连接 引入激励电流源 第二个接脚通 过阻值为 1000 欧姆的电阻与 ADuC824 芯片的 ANI1 连接 第一个接脚一端通过阻值为 1000 欧姆的电阻与 ADuC824 芯片的 ANI2 连接而另一端通过阻值为 562 欧姆的电阻接地 通讯模 块由 ADM202 RS 232 组成且与 AduC824 芯片的 RXD TXD 引脚连接 具体电路设计见下图 1 6 参考电压模块主要解决的是参考电压的提供和参考电压的大小 参考电压的提供源可以 是 AD780 的输出 也可以通过分压实现 在这次设计中选用 AD780 产生的 2 5 伏电压作为正 参考电压 而负参考电压为零 具体见图 1 7 图 1 5 采集模块原理图 图 1 6 通讯模块原理图 17 图 1 7 参考电压模块原理图 1 3 外围硬件简介 在本设计中应用到的外围硬件主要是 PT100 水箱 搅拌器和固态继电器 PT100 是以铂为材料的 对于铂在氧化性介质中 甚至在高温下 它的物理 化学性质 都很稳定 但在还原性介质中 特别是在高温下 很容易被氧化物中还原成金属的金属蒸汽 所玷污 以致使铂丝变脆 并改变电阻与温度关系特性 尽管如此 从对热电阻的要求来衡 量 铂在极大程度上能满足要求 铂电阻与温度的关系为 Rt R0 1 At Bt2 Ct3 1 3 1 其电阻与温度的关系具有相对稳定的线性关系 而 PT100 在具有这样特性的同时还有其 自身的优点 它是三线制的热电阻 对温度敏感性好 且当温度为 0 时其阻值为 100 欧姆 这样既能达到良好的效果也便于计算 水箱的大小为 2 升左右 水箱中自带了一个加热电阻 这样选择的原则在于便于实验 采集的温度比较精确 由于加热电阻发热的不均匀性 会使水箱各个部位的水温存在不一致 性 因而会使实验的可操作性下降 选择较小容积的水箱可以尽量提高实验精确度 达到较 为理想的实验效果 基于以上原因 选用了较小容积的容器还是存在一定的问题 于是在水箱中加入了搅拌 装置 使水箱中各个部位的温度值尽量达到处处相等的理想状态 但理论和实践是存在一定 的距离 只能做到尽量减小误差 而不可能消除误差 固态继电器可以在 0 5V 电压值的触发下产生不同大小的功率 去控制水箱里的水的温 度 选择固态继电器主要是因为它的良好特性 还因为控制信号经 ADuC824 的 DA 输出为 0 5V 电压 正好满足固态继电器的要求可以直接使用 不但可以简化模块的设计 还可以 达到所需要的效果 1 4 本章小结 本章主要介绍了下位机硬件的介绍以及选择该型号的原因 硬件电路的设计思路 具体 且系统的描述了这样选择的目的与意义 通过这章的论述清楚得描述了整个系统的硬件结构 同时也为软件的设计做好了准备 18 第二章第二章 下位机软件设计下位机软件设计 2 1 主程序的设计 下位机主程序主要是初始化部分 这个部分看似简单 但是却是整个程序是否能够 正常运行的关键所在 本次设计在主程序中加入了温度的采集 A D 转换和 D A 转换 温度采集主要通过循 环实现 程序具体功能是将 ADuC824 单片机内的温度传感器和 ADuC824 单片机外的温度 传感器以每秒二次进行采样 转换 处理 并将采样所得的温度值送入内部数据寄存器 RAM 当收到 PC 机下发的命令小写字母 z 时 则将内部寄存器 RAM 中的数 据通过串口以字符串的形式发送到 PC 机 本程序向 PC 机发送的数据为十六进制的 ASCII 码 ADuC824 单片机外的温度传感器由 200uA 激励电流源供电 AD 转化结果修正为 0 度 对应 800000H 采样所得的温度每次转换后的三个转换结果先送到寄存器中的一个 24 位 的十六进制值进行数据偏移处理 然后分别被送到 30H 31H 32H 寄存器中存储 并转 化为 6 个 ASCII 码 并分别保存在 40H 45H 中 当收到 PC 机命令后 再由串口发送到 PC 机中 由于 ADuC824 单片机外的温度 RTD 每上升 1 度 其电阻变化为 0 385 欧母 对 应的电压变化为 0 385X200uA 0 077mV 开发板选择使用 AD780 产生的参考电压 2 5V 又选择 2 56V 的量程 因此满刻度的温度值为 2 5 2 5 X2560 2560mV 满刻度 值为 FFFFFFH 16777215 因此 RTD 每 上升 1 度占用点为 0 077 2560 X16777215 504 6 个点 即分辨率为 1 98mK 例如 8001F9H 等于 1 度 803147H 等于 25 度 对于片内温度传感器 0 度对应的转化结果为 8000H 温度传感器每度按 256 个数字点 计算 例如 8700H 等于 7 度 7900H 等于 7 度 这是因为每上升 1 度 则 ADC1H 寄存器 内的值增加 1 即 100H 片内温度传感器每次转换后的二个转换结果寄存器中的一个 16 位的十六进制值先分别被送到 35H 34H 存储 然后将它们作补码处理存入 33H 34H 最 后转化为 4 个 ASCII 码 并分别保存 46H 49H 中 当收到 PC 机命令后 再由串口发送到 PC 机中 由于主通道为单极性输入模式 RTD 零度时的电阻值为 100 欧母 即输入电压为 100X200uA 20mA A D 转换后的值为 20 2560 X16777215 131072 即 020000H 但程 序设计时由规定 0 度对应输出值为 800000H 因此偏差值为 800000H 200000H 7E0000H 所以板外采集进来经 AD 转换后的结果要再加上此数存储到 30H 32H 中 由于 RTD 为单极性方式 同时又将 0 度设为 800000H 为此在这里必须加上偏差 7E0000H 又由于 RTD 温度值为 6 位十六进制值 在 PC 机中自动认为是 0 FFFFFFFFH 之 间的值 因此在 0 7FFFFFFFH 之间的值 Visual Basic 中的 Val 函数则认为是正数 所 以 RTD 的温度值可以直接在 PC 机中进行处理 在这里不必作补码处理 19 由于片内温度传感器的温度值为 4 位十六进制值 在 PC 机中自动认为是 0 FFFFH 之间的值 因此在 0 7FFFH 之间的值 Visual Basic 中的 Val 函数则认为是正数 在 8 FFFFH 之间的值为负数 并认为是补码 所以对于片内的 RTD 采集进来的值要经过补 码处理存储到 34H 35H 中 实际上 PC 机中数据均作补码处理 其流程图见下图 2 1 是 否 重新定义堆栈 00H FFH 内部单元清零 UART 端口配置 DAC 通道配置选 12 位模式 主 ADC 通道和辅助 ADC 通道配置 定义 RTD 偏移校准值 外部中断设置为脉冲触发方式 写入所需的定时间隔 使能 TIC 设定时单位为 1 128 秒 是否有外部中断 INT0 按下 RTD 校验程序将板外十六进制的温度值分别保存在 30H 32H 单元中 将板内十六进制的温度值分别保存在 34H 35H 单元中 启动 AD 转换 等待转换完成 开始 20 图 2 1 主程序流程图 对于这个系统 对于温度的精确度要求很高 采样过程中如果觉得温度值存在偏差 可以用外部中断进行校准 当按下 INT0 外部中断后程序自动运行到 RTD 校准子城 修正 校准值 循环到采样温度值的程序 得到相对更加精确的值 如果没有这样的强制的外部中断 就自动将采样得到的温度值经过校准保存到相应 的 30H 32H 单元和 34H 35H 中 对于本主程序是 0 5 秒采样一次 因此就要求延时 0 5 秒 相应的延时子程序如图 2 2 所示 此延时子程序是应用 ADuC824 特有的定时计数器 设定的 与标准 8051 兼容的计数器相比 它可用于更长间隔 该计数器由晶体振荡器锁 定 而不是 PLL 因此可以在降低功耗的情况下继续工作 并能在较长的掉电时间间隔下 定时 这就可以应用于远程电池供电传感器 在这种要求下通常要求空间距读数 与定 时器有关的 SFR 有六个 TIMECON 是它的控制寄存器 本质上 当所选时间计数器达到由 用户写入 INTVAL SFR 中的数值时 TIC 将产生一个有效输出 此有效输出可以引起中断 也可以对 TINMECON SFR 中的某位进行设置 因为我们只要求达到 0 5 秒的延时 在 TIMECON 中选择 1 128 秒的时间间隔 于是 在 INTVALSFR 中写入十进制数 64 也就是十六进制数 40H 在程序等待过程中当计数器 计数值达到 INTVAL SFR 中的值以后 TICTIC 中断位就置位为 1 就达到了 0 5 秒的延时 否 是 图 2 2 延时子程序流程图 将 50H 51H 中的值写入 DACH 和 DACL 中并延时 0 5 秒 读 TIMECON 的值到 A 判断 ACC 2 是 否为 1 开始 重新置位 TIMECON 返回 21 2 2 中断子程序的设计 此中断子程序为串口中断子程序 当程序运行到中断地址区就自跳到串口中断 但 是否执行还要看是否有数据传送命令发出 要求发送数据 在这个子程序中不但有下位 机将保存在 30H 32H 以及 34H 35H 中的板外温度和片内温度的值转换为 ASCII 每一 个寄存器单元中的十六进制数将转换为两个 ASCII 码 这是因为 0 F 的十六进制符号转 变为 ASCII 码后将是两位十六进制数 所以每个单元中的两位十六进制数将分别转化 在本设计中将转化后的结果存入 40H 49H 将十六进制转化为 ASCII 码的流程图见图 2 3 是 否 图 2 3 十六进制转换成 ASCII 码子程序 在本子程序中设置当上位机下发小写字母 Z 时 下位机程序就把存储于 40H 49H 中 的字符即板外温度和片内温度值以 ASCII 的形式发到上位机人机截面中读取 这个程序 中的上发是以字符串形式发送的 发送为字符还是字符串主要看是否以终止符结束 这 就要调用字符串传送子程序 其流程图见图2 4 取 A 内的后半字节 判断是否为 0 9 的数字 直接计算出 ASCII 将 A 内的值加上 7 计算出 ASCII 返回 开始 开始 寄存器 A B 入栈保护 A B 寄存器清零 查表读入表内的值 22 否 是 图 2 4 字符串传送子程序流程图 如果下位机收的不是小写字符 Z 继续读串口通讯寄存器里的内容 继续判断收到的 是否是大写字符 Z 如果不是跳出这个中断子程序 返回主程序 如果收到的是大写字符 Z 那么就开始接收上位机发下的数据 因为相应的硬件即 DA 可选 12 位二进制数 那么 相应的下位机和上位机分别是收三位十六进制数和下发三位十六进制数 收到的第一位 首先将其 ASCII 码值转化并判断是否是 0 F 之间的数 如果不是就跳到接收第二位的 ASCII 码 如果是就保存到寄存器 50H 单元中 接下来接收第二位的 ASCII 同样要判断 对于第三位也一样 但第二位和第三位的转换值要进行合并 将合并后的值存入 51H 中 将 ASCII 码转换为十六进制值的程序流程图见下图 2 5 中段子程序见图 2 6 否 是 否 是 否 是 A B 出栈 判断读到的是否为终止符 0 返回 进位标志 C 位清零 A 内的值减去 0 的 ASCII 码 判断是否为 0 9 数字 判断是否为 9 A 数字 判断是否为 A F 数字 开始 23 否 是 图 2 5 ASCII 码转换成十六进制子程序 否 是 否 是 是 开始 关串口中断 ACC PSW DPTR B 入栈保护 关接受中断标志 读缓冲数据到 A 把收到的数据存入 20HRAM 检查收到的是否是小写字母 Z 将 40H 49H 中的十六 进制温度值的 ASCII 码 从串口发出 检查收到的是否是大 写字母 Z 接收控制值的第一个字节 调用 ASCII 转换成 HEX 子程序 0 F 的值保存到 50HRAM 判断是否为 a f 数字 C 0 C 1 返回 24 否 是 否 是 否 图 2 6 数据传送子程序流程图 2 3 本章小结 本章主要描述了下位机的软件设计总体思路 要达到的程序功能 以及 ADuC824 单 片机外的温度和其板内温度的采集 校准 传送 接收的具体模块的详细介绍 本章的 下位机软件设计与上位机软件紧密相关 上位机软件要按下位机程序做出相应的设计 接收控制值的第二个字节 接收控制值的第三个字节 0 F 的值 交换高低字节保 存到 B 中 0 F 的值 与 B 中的半字节 联合保存于 51HRAM 中 清空 20H 的内容 开串口中断 保护 SFR 出栈 25 第三章第三章 上位机软件设计上位机软件设计 3 1 Measurement Studio 的使用 Measurement Studio 是美国 NI 公司生产的软件 软件开发中通过 Active 接口将它 作为第三方控件嵌入到 Delphi 里 Delphi 作为高级开发语言 其一大特点是对第三方控件的调用使用 所谓第三方控 件就是在 Delphi 中没有包括的控件 这些控件来源于其他的软件包 例如 Measurement Studio 软件包 软件通过使用 Measurement Studio 提供的第三方控件 使 软件界面更加美观 实现的功能更加强大 下面首先介绍 Measurement Studio 软件包的 安装过程 首先应该在计算机上安装 Measurement Studio 软件 在确保此软件安装完整后 才 可以在 Delphi 中调用安装其中的 Measurement Studio 软件包 打开 Delphi 菜单栏中的 Component 选项 点击 Import Active control 项 出现 Import ActiveX 窗体 在窗体 中选择 National Instruments CW UI 6 0 Version1 6 选项 在 Palette page 对话框 中选择要安装的目录名称 然后单击 Install 按钮 进行控件的安装 安装完成后在空 的控件栏中会出现需要的 Measurement Studio 控件 如图 3 1 所示 Delphi 中可以直接 调用这些控件来开发软件 图 3 1 Delphi 中 Measurement Studio 第三方控件 为 CWGraph 控件 这个控件可以通过修改它的属性修改曲线的显示模式 添加曲 线在同一窗口中显示多条曲线 可以修改横坐标与纵坐标的具体显示形式 例如横坐标 的形式可以选择显示时间模式 纵坐标可以选择显示数据形式 也可以修改曲线颜色等 一些性质 如图 3 2 所示 图中给左侧是控件属性修改对话框 右面图形显示修改完成 后形状 26 图 3 2 CWGraph 控件 为 CWKnob 控件 软件中使用此控件颜色的变化来显示当前的状态仪器参数状态 该控件为布尔型控件 在编写的软件中只有 true 和 false 两种状态来实现其目的 控件 的形状大小都可以通过其属性框进行编辑还可以对控件的颜色进行调节 本软件中的手 动还是自动按钮就选用了此控件 控件属性框如图 3 3 所示 图 3 3 CWKnob 控件 Delphi 中广泛使用控件来编写应用程序 选择一些控件并定义它们的相互作用 在 很多情况下 就是 Delphi 程序员所要做的基本工作 因此 Delphi 的控件使用非常重要 第三方控件的使用可以简化很多复杂的编程 Delphi 本身控件虽然也可以实现第三方控 件的功能 但是使用起来在界面或者代码编写上没有第三方控件更加完美 所以调用第 三方控件是 Delphi 开发的重要方法 软件编写主要使用 CWGgraph 控件显示数据曲线 CWNumEdit 控件显示实时数据 27 CWKnob 控件显示运行状态 CWSlide 控件显示运行进度 这几个控件的使用 其中 CWGgraph 控件的最为重要 它不仅要显示数据曲线 而且 还要完成曲线打印 保存 删除等 这些功能的实现通过编码实现 3 2 数据库的使用 软件中使用数据库用来对历史数据的存储和查询 同时打印的数据来源于数据库 数据 库的使用方便数据的保存 增强软件的存储功能 软件中数据库采用 ODBC 进行连接 ODBC 是微软一直推销的数据库互连方式 几乎所有的厂商都为自己的产品提供了 ODBC 的连接方式 这也是一种工业标准 数据库连接过程中必须使用到 BDE Administrator 配置别名 别名是数据访问的一种标识符 这种标识符包括很多参数 用于封装不同的 数据库格式 主机参数 SQL 方式等信息 图 3 4 给出软件中数据库别名的作用 软件中使用 ODBC 作为数据库的接口 建立数据库模块 如图 3 5 所示 DataModule 由一个 DataBase 两个 Query 一个 Table 两个 DataSource 组成 一个 Table 和两个 Query 控件的 DataBaseName 都为上面介绍的到 DataBase 名称 其中一个 Query 用来进行 SQL 语句中的除 Select 语句之外的语句的数据库操作 另一个 Query 主要用来进行数据 库的查找操作 帮住用户在数据库中找到满足条件的数据 并在界面中显示出来 两个 DataSource 分别与两个 Query 相关联 数据库模块的基本结构如上面介绍 下面详细介绍软件中数据库的具体使用 图 3 4 软件中数据库别名 图 3 5 软件中数据库 28 数据源在软件的欢迎界面中被打开 在整个软件的使用过程中数据源都处于打开状态 软件主界面中对数据库中使用到的表格进行建立 表格建立完成以后 在进行实时数据 采集时候就可以将采集到的数据写入建立好的表格中 软件中数据采集线程开始工作时 每次采集得到的数据将在线程运行程序中写入数据库 这样就可以将每次采集的不同数 据写入同一个表中 用户如果要求对整个实验过程中的数据都打印 那么可以将数据库中的整个表格的数 据全部打印 如果用户只要求打印满足条件的数据 则将查询到的数据表从数据库中调 出并打印 数据查询同数据打印具有相同的原理 这里就不详细的介绍 3 3 软件具体功能 如下图 3 6 所示就是本设计的上位机软件人机界面 该图是已经运行但还没有开始实 际实验时的界面 由图可知该程序处始化控制参数 Kp 为 8 i 为 30 Td 为 0 设定温度 为 50 采样周期为 秒 曲线模式为正常 开 且显示为红色 其他都关掉 且显示 为黑色 在状态栏显示 未采集 RTD 温度未校准 曲线显示模式 正常模式 当按下 开始 按钮时如果上位机和下位机的通讯口没有连接好就会出现如下图 3 7 所 示的现象 跳出提示对话框 提示你是否进行实际实验还是串口没有连接好 如果连接 好串口 进行实际实验就产生如图 8 所示 将具体的温度采集进来并且显示在面板上 相应的状态栏显示正在采集状态 当打开该按钮时该按钮转变为的形式其它则均为关 闭 29 图 3 6 计算机控制实验系统人机界面 图 3 7 计算机控制实验系统没有连接好串口时的人机界面 且字体颜色为黑色 其它几个按钮的情况都一样 这里不再一一详述 按下查询按钮可 以查询出任何一点的采集温度值 按下移动按钮可以将曲线任意移动 按下放大按钮可 以任意框选一个区域将曲线放大 30 图 3 8 计算机控制实验系统正常通讯时的人机界面 该人机界面对曲线的操作还有清除 保存 和数据查询功能 还可以进行温度校准 按 下清除曲线按钮曲线就会被清除 当按下保存曲线按钮时出现如下对话框如图 3 9 所示 当按下数据查询按钮时就会启动数据库 于是所有已经采集的温度值 偏差 都可以查 询到 具体数据以及弹出框图见图 3 10 所示 图 3 9 保存曲线时弹出的对话框 31 图 3 10 数据查询时弹出的对话框 在该界面中还有一个 自动 与 手动 的切换按钮 其作用主要是当按钮为 自动 模式时用户不可以更改控制量参数 只能在按下 开始 按钮之前更改 但如果是在 手动 模式下 可以在执行过程中如果觉得控制精度不够就可以更改控制参数 3 4 PID 控制算法的实现 PID 控制算法比较常用的有 积分分离 PID 控制算法 遇限削弱积分 PID 控制算法 不 完全微分 PID 控制算法 微分先行 PID 控制算法和带死区的 PID 控制算法等 在普通的 PID 数字控制器中引入积分环节的目的 主要是消除静差 提高精度 基于设计的需要 选择使用积分分离 PID 控制算法 这样可以保持积分作用提高精度 也可以减小超调量 具有良好的控制性能 其具体实现如下 1 根据实际情况 人为设定一阈值 0 2 当 e k 时 也即偏差值 e k 比较大时 采用 PD 控制 可避免过 大的超调 又使系统较快的响应 3 当 e k 时 也即偏差值 e k 比较小时 采用 PID 控制 可保证系 统的控制精度 在这个设计中 PID 控制的算法采用增量式 PID 控制算法 即 u k u k 1 Ae k Be k 1 Ce k 2 3 4 1 32 u k Ae k u k 1 Be k 1 Ce k 2 3 4 2 式中 A Kp 1 T TI TD T 3 4 3 B Kp 1 2 TD T 3 4 4 C Kp TD T 3 4 5 计算机控制的程序框图见图 3 11 所示 是 否 开始 取给定值 r k 和测量值 c k e k r k c k e k u k Ae k g k 1 g k u k Be k Ce k 1 f k B e k 输出 u k g k g k 1 f k f k 1 u k A e k f k 1 e k e k 1 33 图 3 11 积分分离 PID 控制算法程序框图 3 5 本章小结 本章已经十分详细的论述了上位机软件的具体功能以及具体实现方法 其软件的总 体框架如下图 3 12 所示 图 3 12 软件功能模块框图 实验系统软件主界面 通信功能图形显示功能控制算法数据库功能 发 送 数 据 接 收 数 据 曲 线 显 示 方 式 清 除 曲 线 保 存 曲 线 数

温馨提示

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

最新文档

评论

0/150

提交评论