过程控制系统课程设计
过程控制系统课设

过程控制系统课程设计一、设计任务书1. 题目PH控制系统2. 设计要求①设计义某化工过程中废液中和的pH控制系统;②对控制系统稳定性进行分析;③对控制系统的参数进行整定;④控制系统Simulink仿真。
3 . 仪器设备A3000现场控制系统,pH控制系统。
二、基本原理pH控制系统子工业,尤其是化工等行业,应用非常广泛。
利用pH控制可以实现化工过程的正常生产过程、造纸厂等化工厂废液达标排放等。
1. pH的特点PH控制系统的主要方式有:有一种碱(或酸)滴定另一种物质使pH值保持在某一值上;对两种分别呈酸性和碱性物质的流量进行控制使pH值保持在某一值上;控制两种物质使混合溶液保持在一定的pH值上。
PH控制和其他控制参数的不同主要有以下两点:●PH滴定曲线的高度非线性;●滴定过程的测量纯滞后特性。
图01为典型的酸碱滴定特性曲线。
从图01知,溶液的pH值随中和流量非线性变化。
图01 典型的酸碱滴定特性曲线显然在控制系统中将pH值的变化转化为中和反应酸碱的控制流量变化,是根据滴定特性曲线进行的。
将滴定特性曲线转化为酸碱流量变化规律的方法主要有三种:●利用非线性阀补偿过程的非线性;●采用三段式滴定调节器,用三条相接的线性段代替非线性滴定曲线;●采用滴定曲线的非线性调节器精确描述滴定曲线。
随着技术的进步,利用非线性阀补偿滴定曲线非线性用的越来越少;而基于计算机功能元器件或计算机的第二种方法和第三种方法应用越来越多。
对滞后的补偿常采用以下三种方法:●微分Smith补偿方法,由于该方法本身适应能力较差,较少使用;●改进的Smith补偿方法;●自适应方法,应用较多的是增益自适应的Smith法。
为了提高控制系统的误差跟踪能力,pH控制系统经常采用的控制策略是PI或PID,不能采用P调节。
2. 三段式非线性调节器和采用滴定曲线的非线性调节器(1)三段式非线性调节器实际中,酸碱中和后通过pH计测得pH值的大小,控制系统当前pH值大小折算成溶液中酸碱量的多少,并调节系统酸碱流量的大小实现要求的pH值。
过程控制系统课程设计任务书

设计说明书一份(总体设计、硬件组态、相关数据连接、控制程序清单等)
பைடு நூலகம்四、进程安排
周一:硬件模块组态
周二:相关数据的连接与调试
周三:编写控制程序,进行软件调试
周四:撰写设计说明书
周五:答辩
五、主要参考资料
1、吴作明主编,工控组态软件与PLC应用技术,北京航空航天大学出版社
(2)组态的说明。
3.系统程序的设计。
(1)相关数据的连接。
(2)控制程序的编写。
4.完成的控制系统能达到题目的要求。
5.撰写设计说明书。
二、设计原始资料
施仁主编,自动化仪表与过程控制,电子工业出版社。
许志军主编,工业控制组态软件及应用,机械工业出版社。
三、要求的设计成果(课程设计说明书、设计实物、图纸等)
2、潘立登主编,过程控制,机械工业出版社。
3、侯志林主编,过程控制与自动化仪表,机械工业出版社
指导教师(签名):
教研室主任(签名):
过程控制系统课程设计任务书
一、设计题目、内容及要求
设计题目:过程控制系统课程设计
设计内容:
下列设计中其中一项作为设计内容:水箱液位串级控制,水箱液位与进水口流量串级控制,锅炉夹套水温与锅炉内胆水温串级控制。
设计要求:
1、根据题目要求进行控制系统总体设计。
2.完成系统硬件模块的组态。
(1)硬件模块组态。
过程控制系统课程设计

过程控制系统课程设计报告书课设小组:第四小组目录摘要 (1)第一章课程设计任务及说明 (2)1.1课程设计题目 (2)1.2 课程设计容 (3)1.2.1 设计前期工作 (3)1.2.2 设计工作 (4)第二章设计过程 (4)2.1符号介绍 (4)2.2水箱液位定制控制系统被控对象动态分析 (6)2.3压力定制控制系统被控对象动态分析 (7)2.4串级控制系统被控对象动态分析 (7)第三章压力 P2 定值调节 (8)3.1 压力定值控制系统原理图 (8)3.2 压力定值控制系统工艺流程图 (8)第四章水箱液位L1定值调节 (9)4.1 水箱液位控制系统原理图 (9)4.2 水箱液位控制系统工艺流程图 (9)第五章锅炉流动水温度T1调节串级出水流量F2调节的流程图 (10)5.1串级控制系统原理图 (10)5.2串级控制系统工艺流程图 (11)第六章控制仪表的选型 (12)6.1 仪表选型表 (12)6.2现场仪表说明 (13)6.3 DCS I/O点位号、注释、量程、单位、报警限及配电设置表 (14)第七章控制回路方框图 (15)总结 (15)参考文献 (16)摘要过程控制课程设计是过程控制课程的一个重要组成部分。
通过实际题目、控制方案的选择、工程图纸的绘制等基础设计和设计的学习,培养学生理论与实践相结合能力、工程设计能力、创新能力,完成工程师基本技能训练。
使学生在深入理解已学的有关过程控制和DCS系统的基本概念、组成结构、工作原理、系统设计方法、系统设计原则的基础上,结合联系实际的课程设计题目,使学生熟悉和掌握DCS控制系统的设计和调试方法,初步掌握控制系统的工程性设计步骤,进一步增强解决实际工程问题的能力。
关键词:过程控制设计DCS第一章课程设计任务及说明1.1课程设计题目:附图为某过程控制实验装置的P&ID图,该图为一示意图,并不完全符合规。
根据该图,请完成以下任务:不完全符合规的P&ID图1、指出该图不符合“自控专业工程设计用图形符号和文字代号(HG/T20637.2)”的地方。
过程控制课程设计

过程控制 课程设计一、课程目标知识目标:1. 让学生理解过程控制的基本概念,掌握其原理和分类。
2. 使学生掌握过程控制系统中常用的数学模型及其应用。
3. 引导学生了解过程控制系统的设计方法和步骤。
技能目标:1. 培养学生运用数学模型分析和解决过程控制问题的能力。
2. 培养学生设计简单过程控制系统的能力,能根据实际需求选择合适的控制策略。
3. 提高学生运用现代工具(如计算机软件)进行过程控制系统仿真的技能。
情感态度价值观目标:1. 培养学生对过程控制学科的兴趣和热情,激发他们探索未知、勇于创新的科学精神。
2. 培养学生具备良好的团队合作意识,学会与他人共同分析问题、解决问题。
3. 引导学生认识到过程控制在工业生产、环境保护等领域的重要作用,增强他们的社会责任感和使命感。
分析课程性质、学生特点和教学要求,本课程目标旨在让学生掌握过程控制的基本知识和技能,培养他们解决实际问题的能力。
通过课程学习,学生将能够:1. 理论联系实际,运用所学知识分析、解决过程控制问题。
2. 掌握过程控制系统的设计方法和步骤,具备一定的控制系统设计能力。
3. 提高自身的科学素养,培养良好的团队合作精神和创新意识。
4. 关注过程控制在社会生产中的应用,为我国工业发展和环境保护做出贡献。
二、教学内容1. 过程控制基本概念:包括过程控制定义、分类、发展历程及其在工业中的应用。
教材章节:第一章 绪论2. 过程控制系统数学模型:介绍控制系统的传递函数、状态空间表达式、方块图及其相互转换。
教材章节:第二章 数学模型3. 过程控制策略:讲解比例、积分、微分控制规律,以及串级、比值、前馈等复合控制策略。
教材章节:第三章 控制策略4. 过程控制系统设计方法:阐述控制系统的设计原则、步骤和方法,包括稳定性分析、性能指标和控制器设计。
教材章节:第四章 系统设计与分析5. 过程控制系统仿真:介绍过程控制系统仿真软件及其应用,通过实例演示仿真过程。
教材章节:第五章 系统仿真与实现6. 过程控制案例分析:分析典型过程控制系统的实际问题,探讨解决方案。
过程控制系统课程设计

过程控制系统课程设计1000字作为一种系统工程,过程控制系统对于工业自动化的实现至关重要。
本文将介绍一项过程控制系统课程设计,目的是通过实际操作、编程和调试提高主观能动性,深化理论学习,提升学生对过程控制系统的认识。
1. 实验目的通过本次课程设计的实验,学生将学习并掌握以下内容:1)了解过程控制系统的基本概念,熟悉控制系统的硬件结构和控制器的工作原理;2)掌握模拟信号的采集和处理技术,及其在过程控制系统中的应用;3)理解PID控制器的原理和调节方法,熟悉常用的控制算法;4)学习模拟量信号的传输及数字量信号的传输与控制,深入剖析过程控制系统中各种控制技术的特点及其应用;5)熟悉数据采集与通信技术,主控器的编程、调试和软硬件环境搭建方法。
2. 实验设备与材料本实验所需的设备及材料如下:1)PLC控制器(可使用Siemens S7-200、Schneider Zelio Logic等PLC控制器);2)功率放大器(使用1KW的功率放大器,用于控制实验装置的加热);3)温控器、温度传感器、压力传感器、流量传感器、液位传感器(包括普通型、电容型、毛细管型等);4)人机界面操作器/工控机、旋钮开关、LED、蜂鸣器等交互控制组件;5)驱动器/执行机构,接口电缆、相应的电源和电线等。
3. 实验内容及步骤(1)实验装置的搭建实验装置包括温度控制、压力控制、流量控制、液位控制等构件,以PID控制器为主要控制模式,控制对象为温度、压力、流量和液位,并通过PLC控制器进行控制。
搭建实验平台的具体步骤如下:1)选择和购买控制器和实验箱;2)安装和调试控制器与箱体之间的接口;3)加装驱动器/执行机构;4)安装、连接和调试传感器(温度、压力、流量、液位);5)调试控制器与各传感器、驱动器/执行机构之间的串联关系,确保各根信号电线的接法正确无误。
(2)模拟信号采集与处理本实验将设置4路模拟输入口,通过PLC控制器采集原始信号并处理。
过程控制系统课程设计报告

1.概述课程设计的目的了解具体过程控制系统设计的基本步骤和方法,加深对过程控制系统基本原理的理解和对S7-300PLC与S7-200PLC编程的实际应用能力,培养运用WINCC组态软件和计算机设计过程控制系统的实际能力。
课程设计的内容用S7-300PLC与S7-200PLC主-从站进行单回路流量过程控制。
要实现的目标(1)明确控制要求,设计出系统结构图、方框图、电气接线图、程序流程图等。
(2)S7-200PLC从站程序设计①采用模块程序设计,控制程序包括主程序OB1、子程序SBR_0和中断程序INT_0。
②流量给定700升。
③采用定时中断SMB35,来调用流量采样定时中断程序INT_0,把实时检测的管路流量反馈到S7-200PLC的模拟量输入口,与流量给定量进行比较算出误差e。
④采用指令系统中的PID控制算法,整定好PID参数,计算出的实时控制量通过S7-200PLC的模拟量输出口输出,来控制电动执行器和阀门的开度。
⑤所有信号要转换为4-20mACD信号,并与流量物理量0-2500升建立对应关系。
⑥采用状态表进行各变量的监视与修改,系统有启动、停止按钮操作功能。
(3)S7-300PLC主站程序设计①要求采用SFC14和SFC15指令进行主-从站的数据交换,通过S7-300PLC 主站进行写操作(如系统启动/停止等),并能读取S7-200PLC从站的参数;S7-200PLC能接受S7-300PLC主站的指令;实现主-从站读/写(接收/发送)操作。
(4)性能指标要求无超调量,稳态误差为3%,加随机扰动能克服掉。
(5)上位监控要求:采用WINCC上位监控软件,设计出单回路流量一阶的上位监控系统,包括建立通讯,数据变库组态、工艺图形组态、数据组态与显示、趋势组态与显示、报表组态与显示等功能。
2.S7-300PLC与200PLC主-从站单回路流量系统硬件设计方案2.1主-从站单回路流量过程控制系统硬件组成原理该实验过程控制系统的控制器选用S7—300PLC作为主站控制器,由电源模块307—1BA00—00AA00、CPU模块315—2AG10—0AB0、模拟量输入模块331—5HF02—0AB0、模拟量输出模块332—5HF02—0AB0、数字量输入/输出模块323—1BH01—0AA0组成,PC机与300PLC采用MPI(CP5611)通讯。
过程控制系统课程设计

过程控制系统课程设计过程控制系统课程设计引言:过程控制系统是工程技术中的重要组成部分,它负责对工业过程进行监控与控制,以确保工艺的稳定性和高效性。
在过程控制系统课程设计中,学生将探讨过程控制系统的原理与应用,并通过实践设计一个实际的过程控制系统。
一、绪论过程控制系统又称作工业控制系统,它广泛应用于化工、电力、机械制造等领域。
过程控制系统的主要目标是监控和控制工业过程,以确保产品质量、提高生产效率和降低能源消耗。
通过对传感器的采集和执行器的控制,过程控制系统可以实现自动化的生产。
二、过程控制系统的组成1.传感器与执行器:传感器负责采集工业过程中的各项参数,如温度、压力、流量等。
执行器则负责根据控制系统的指令,对工艺过程进行调节和控制。
2.控制器:控制器是过程控制系统的核心,它根据传感器采集到的数据,通过算法和控制策略进行分析和判断,产生相应的控制信号送往执行器。
3.人机界面:人机界面是人与过程控制系统之间的桥梁,它提供了一个直观、友好的操作界面,使操作人员可以实时地监控和控制生产过程。
三、过程控制系统的设计步骤1.确定系统的目标:在设计过程控制系统前,首先需要明确系统的目标,即要控制的工艺过程中所需达到的标准和要求。
2.收集和分析数据:通过传感器采集工艺过程中的数据,并进行数据分析,了解工艺过程的变化规律和特点。
3.建立模型:根据收集到的数据,建立工艺过程的数学模型,用于后续的控制系统设计。
4.选择控制策略:根据工艺过程的性质和目标要求,选择合适的控制策略,如PID控制、模糊控制、神经网络控制等。
5.设计控制算法:根据选择的控制策略,设计相应的控制算法,并将其实现在控制器中。
6.仿真和优化:使用仿真工具对设计好的控制系统进行仿真,并进行调整和优化,以使系统的性能符合要求。
7.实现与调试:根据控制器的设计方案,采购和安装相应的硬件设备,并进行调试和验证。
8.监控与维护:设计好的过程控制系统需要持续地进行监控和维护,以确保系统的稳定性和可靠性。
过程控制系统课程设计

过程控制系统课程设计在过程控制系统课程设计中,学生需要综合运用所学的理论和技能,设计一个能够有效控制和监控工业过程的系统。
本文将介绍一个典型的过程控制系统课程设计流程,并着重介绍设计中需要考虑的关键要素和实施步骤。
一、引言过程控制系统是现代工业中必不可少的一部分,它能够监测和控制工业过程中的各种参数,保证生产的高效性和安全性。
因此,对于学习过程控制系统的专业学生而言,掌握设计过程控制系统的能力非常重要。
本课程设计旨在帮助学生深入了解过程控制系统,并通过实践提高他们的设计能力。
二、设计要素在进行过程控制系统的课程设计时,需要考虑以下关键要素:1. 系统需求分析:了解工业过程的特点和需求,明确系统的功能、性能和稳定性要求。
2. 控制策略选择:根据系统需求分析,选择适合的控制策略,如PID控制、最优控制等。
3. 传感器选择与布置:根据需求确定需要监测的参数,并选择合适的传感器进行测量,并合理布置传感器。
4. 控制器选择与配置:选择合适的控制器,并通过配置参数来实现所需的控制策略。
5. 人机界面设计:设计一个直观、易用的人机界面,以方便操作人员实时监测和控制过程。
6. 安全性考虑:确保系统具备安全性,采取相应的防护措施,防止事故的发生。
三、课程设计步骤以下是一个典型的过程控制系统课程设计步骤,供学生参考:1. 系统需求分析:对于一个给定的工业过程,分析其特性和需求,确定系统的功能、性能和稳定性要求。
2. 控制策略选择:根据需求分析,选择适合的控制策略,如PID控制、模糊控制等,并解释其原理和适用范围。
3. 传感器选择与布置:根据需求确定需要监测的参数,选择合适的传感器进行测量,并合理布置传感器,以保证测量的准确性和可靠性。
4. 控制器选择与配置:根据选择的控制策略,选择合适的控制器,并通过配置参数来实现所需的控制策略。
5. 人机界面设计:设计一个直观、易用的人机界面,以方便操作人员实时监测和控制过程。
界面应包括实时数据显示、报警功能等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
绪论在科技高速发展的信息时代,电子技术、微型计算机技术的应用更是空前广泛,伴随着科学技术和生产不断发展,需要对各种参数进行温度测量。
在单片机温度测量系统中最关键的是测量温度、控制温度和保持温度,温度测量是对工业对象中主要的被控参数之一,因此单片机测量是对温度的有效的测量,并能在工业生产中得到广泛应用。
本次课设所研究的课题是“基于单片机的热水锅炉温度控制系统设计,主要介绍了对热水锅炉的温度显示、控制及报警、实现了温度的实时显示及控制。
锅炉水温控制部分采用了AT89S52单片机、DS18B20温度传感器以及步进电机来实现,通过温度传感器DS18B20采集环境温度,以单片机为核心控制部件将采集到的温度通过串口通信MAX232输入到电脑中,在电脑中通过C语言编程来控制单片机的工作方式,将程序下载到单片机中,通过设定温度与给定温度的比较来控制电机的正反转来模拟升温和降温使系统工作在设定的温度范围之内,当温度高于设定值时,通过电机正转来模拟开大冷水阀,进而使水温降低;当温度低于设定值时,通过电机反转来模拟关小冷水阀,进而使水温升高;直到在规定的温度范围内进行恒温加热。
本次课设通过Labview来绘制人机交互界面设置温度的上下限。
并且通过该界面可以实时显示当前的温度值,发出报警信号等,便于操作人员观察。
关键词:AT89S52单片机DS18B20温度传感器串口通讯Labview 步进电机一设计任务、要求和技术指标1.1设计任务①系统构成:系统主要由温度传感器,单片机控制系统、锅炉温度对象、执行器(查找资料自己选择)等组成。
温度传感器、控制器、执行器可查找资料自行选择,控制器选择单片机为控制器。
单片机型号自选②写出温度测量与控制过程,绘制温度控制系统组成框图。
③(1)系统硬件电路设计自选。
温度测量程序、温度校准程序、温度控制程序等部分组成。
1.2主要技术指标(1)温度显示误差不超过1℃。
(2)温度显示范围为0℃—99℃。
二、总体设计方案2.1 设计思路本设计方案采用AT89S52单片机作为控制器,DS18B20芯片作为温度传感器,步进电机作为执行器构成过程控制系统,来模拟热水锅炉温度控制系统。
通过温度传感器DS18B20采集锅炉水温,以单片机为核心控制部件将采集到的温度通过串口输入到电脑中,在电脑中通过labview组态软件来显示实时温度和设置预置温度,并根据实时温度与预置温度的偏差大小控制进水阀门的开关,进而达到调节锅灶水温的目的。
当实时温度高于设定值时,通过电机正转来模拟开大冷水阀,进而使水温降低;当温度低于设定值时,通过电机反转来模拟关小冷水阀,进而使水温升高;直到在规定的温度范围内进行恒温加热。
本次课设通过Labview来绘制人机交互界面,设置所需温度值。
2.2系统总体框图2.3系统框图三、控制器AT89S523.1 AT89S52简介AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash 允许程序存储器在系统可编程亦适于常规编程器在单芯片上拥有灵巧的8位CPU 和在系统可编程Flash ,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:8k 字节Flash 、256字节RAM 、32 位I/O 口线、看门狗定时器,2 个数据指针、三个16 位 定时器/计数器、一个6向量2级中断结构、全双工串行口,片内晶振及时钟电路。
另外AT89S52可降至0Hz 静态逻辑操作,上位机 MAX232电平转换 芯片AT89S52 越限报警DS18B20 温度芯片数据传输 步进电机 数据显示 ULN2003支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
电路图如下:四、传感器DS18B20DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。
DS18B20的性能特点如下:•独特的单线接口仅需一个端口引脚进行通讯•简单的多点分布应用•无需外部器件•可通过数据线供电•零待机功耗•测温范围-55~+125℃,以0.5℃递增。
华氏器件-67~+2570F,以0.90F 递增•温度以9 位数字量读出•温度数字量转换时间200ms(典型值)•用户可定义的非易失性温度报警设置•报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。
DS18B20的测温原理如图3.3.3所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
图3.3.3 DS18B20测温原理图五、接口通讯单元51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,因此采用专用芯片MAX232进行转换。
max232资料简介:该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。
由于电脑串口rs232电平是-10v +10v,而一般的单片机应用系统的信号电压是ttl电平0 +5v,max232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。
该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。
每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F 电平。
主要特点:1、单5V电源工作2、 LinBiCMOSTM工艺技术3、两个驱动器及两个接收器4、±30V输入电平5、低电源电流:典型值是8mA6、符合甚至优于ANSI标准 EIA/TIA-232-E及ITU推荐标准V.287、ESD保护大于MIL-STD-883(方法3015)标准的2000V51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。
三、系统总工作原理工作原理本设计方案采用AT89S52单片机作为控制器,DS18B20芯片作为温度传感器,步进电机作为执行器构成过程控制系统,来模拟热水锅炉温度控制系统。
通过温度传感器DS18B20采集锅炉水温,以单片机为核心控制部件将采集到的温度通过串口输入到电脑中,在电脑中通过labview组态软件来显示实时温度和设置预置温度,并根据实时温度与预置温度的偏差大小控制进水阀门的开关,进而达到调节锅灶水温的目的。
当实时温度高于设定值时,通过电机正转来模拟开大冷水阀,进而使水温降低;当温度低于设定值时,通过电机反转来模拟关小冷水阀,进而使水温升高;直到在规定的温度范围内进行恒温加热。
本次课设通过Labview来绘制人机交互界面,设置所需温度值。
系统通过DS18B20检测锅炉的水温,DS18B20作为全数字式的温度传感器,将所测温度以数字量形式传给AT89S52单片机,单片机先不直接处理所测温度,而是将温度传给上位机,计算机通过labview对温度信息进行记录和处理然后又发送到单片机通过单片机控制执行器件。
Labview先对温度进行中值滤波以消除随机误差。
然后再与设定温度相减以取得偏差,然后再根据偏差方向控制步进电机的正反转以调节冷水阀的开度。
进而达到控制锅炉水温的目的七、参考文献1、马淑华《单片机原理与接口技术》北京邮电大学出版社2、任彦硕《自动控制系统》北京邮电大学出版社3、谭浩强《C语言程序设计》清华大学出版社八、结束语通过本次课程设计,将之前所学的专业课《单片机原理》、《过程控制系统》、《虚拟仪器》、《C语言》等课程有机的结合到了一起。
将所学的知识付诸于实践是一件很兴奋的事情,这让我明白了自己所学的知识与实际的生产生活有着很大的联系。
但通过本次课设我也发现了自己有很多不足之处,对编程缺乏兴趣、对一些本专业的软件不能熟练的掌握等缺点。
因此,在即将到来的毕业设计中,我要主动去学习一些软件的用法,不拿不敢兴趣为理由,做出一个漂亮的作业。
附录1 源程序/***********************主程序***************************/ #include<reg52.h> //包含单片机寄存器的头文件#include<intrins.h> //包含_nop_()函数定义的头文件unsigned char jieshou;unsigned char flag,tltemp;unsigned code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; unsigned code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; void delay1ms(){unsigned char i,j;for(i=0;i<4;i++)for(j=0;j<33;j++); }void delaynms(unsigned char n){unsigned char i;for(i=0;i<n;i++)delay1ms();}/*********************步进电机正转***********************/ void motor_ffw(){unsigned char i;unsigned char j;for (j=0; j<8; j++) //转1*n圈{if(jieshou==3){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = FFW[i]; //取数据delaynms(4); //调节转速}}}/******************步进电机反转**************************/ void motor_rev(){unsigned char i;unsigned int j;for (j=0; j<8; j++) //转1×n圈{if(jieshou==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = REV[i]; //取数据delaynms(4); //调节转速}}}//串口初始化void UART_Init(void){SCON = 0x50; //串口工作方式为1 ,串行允许接收TMOD = 0x20; //定时器1 工作在方式2//PCON = 0x80; //SMOD = 1; 波特率加倍TH1 = 0xfd; //波特率9600bps fosc="11".0592MHzTL1 = 0xfd;ES = 1; //开串口中断TR1 = 1; //允许定时器1工作EA = 1; //开总中断}//串口发送一个字节void Uart_SendChar(short int dat){SBUF = dat; //待发送的数据写入缓冲区while(!TI); //等待发送完成TI = 0; //清零发送标志位}/*以下是DS18B20的操作程序**/sbit DQ=P3^3;unsigned char time; //设置全局变量,专门用于严格延时/*函数功能:将DS18B20传感器初始化,读取应答信号*/bit Init_DS18B20(void){bit flag;DQ = 1; //先将数据线拉高for(time=0;time<2;time++) //略微延时约6微秒;DQ = 0; //再将数据线从高拉低,要求保持480~960usfor(time=0;time<200;time++) //略微延时约600微秒; //以向DS18B20发出一持续480~960us的低电平复位脉冲DQ = 1; //释放数据线(将数据线拉高)for(time=0;time<10;time++); //延时约30us(释放总线后需等待15~60us让DS18B20输出存在脉冲)flag=DQ; //让单片机检测是否输出了存在脉冲(DQ=0表示存在)for(time=0;time<200;time++) //延时足够长时间,等待存在脉冲输出完毕;return (flag); //返回检测成功标志}/*****************************************************函数功能:从DS18B20读取一个字节数据出口参数:dat***************************************************/unsigned char ReadOneChar(void){unsigned char i=0;unsigned char dat; //储存读出的一个字节数据for (i=0;i<8;i++){DQ =1; // 先将数据线拉高_nop_(); //等待一个机器周期DQ = 0; //单片机从DS18B20读书据时,将数据线从高拉低即启动读时序_nop_(); //等待一个机器周期DQ = 1; //将数据线"人为"拉高,为单片机检测DS18B20的输出电平作准备for(time=0;time<2;time++); //延时约6us,使主机在15us内采样dat>>=1;if(DQ==1)dat|=0x80; //如果读到的数据是1,则将1存入datelsedat|=0x00;//如果读到的数据是0,则将0存入dat//将单片机检测到的电平信号DQ存入r[i]for(time=0;time<8;time++); //延时3us,两个读时序之间必须有大于1us的恢复期}return(dat); //返回读出的十六进制数据}/*****************************************************函数功能:向DS18B20写入一个字节数据入口参数:dat***************************************************/WriteOneChar(unsigned char dat){unsigned char i=0;for (i=0; i<8; i++){DQ =1; // 先将数据线拉高_nop_(); //等待一个机器周期DQ=0; //将数据线从高拉低时即启动写时序DQ=dat&0x01; //利用与运算取出要写的某位二进制数据,//并将其送到数据线上等待DS18B20采样for(time=0;time<10;time++);//延时约30us,DS18B20在拉低后的约15~60us期间从数据线上采样DQ=1; //释放数据线for(time=0;time<1;time++);//延时3us,两个写时序间至少需要1us的恢复期dat>>=1; //将dat中的各二进制位数据右移1位}for(time=0;time<4;time++); //稍作延时,给硬件一点反应时间}/*****************************************************函数功能:做好读温度的准备***************************************************/void ReadyReadTemp(void){Init_DS18B20(); //将DS18B20初始化WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换delaynms(200); //转换一次需要延时一段时间Init_DS18B20(); //将DS18B20初始化WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器,前两个分别是温度的低位和高位}void main(void){unsigned char TL; //储存暂存器的温度低位unsigned char TH; //储存暂存器的温度高位unsigned char TN; //储存温度的整数部分unsigned char TD; //储存温度的小数部分unsigned char N=64; //N 步进电机运转圈数因为我们的步进电机是减速步进电机减速比是1/64 所以这里N=64时步进电机外部的主轴转1圈UART_Init(); //初始化串口while(1) //不断检测并显示温度{ReadyReadTemp(); //读温度准备TL=ReadOneChar(); //先读的是温度值低位TH=ReadOneChar(); //接着读的是温度值高位if((TH&0xf8)!=0x00) //判断高五位得到温度正负标志{flag=1;TL=~TL; //取反TH=~TH; //取反tltemp=TL+1; //低位加1TL=tltemp;if(tltemp>255) TH++; //如果低8位大于255,向高8位进1TN=TH*16+TL/16; //实际温度值=(TH*256+TL)/16,即:TH*16+TL/16//这样得出的是温度的整数部分,小数部分被丢弃了TD=(TL%16)*10/16; //计算温度的小数部分,将余数乘以10再除以16取整,}TN=TH*16+TL/16; //实际温度值=(TH*256+TL)/16,即:TH*16+TL/16//这样得出的是温度的整数部分,小数部分被丢弃了TD=(TL%16)*10/16; //计算温度的小数部分,将余数乘以10再除以16取整,//这样得到的是温度小数部分的第一位数字(保留1位小数)delaynms(10);Uart_SendChar(TN);Uart_SendChar(TD);P2=0xff;//执行部分if(jieshou==1){motor_ffw(); //电机正转if(jieshou==3) break; //退出此循环程序}else if(jieshou==2){motor_rev(); //电机反转if(jieshou==3) break; //退出此循环程序}elseP1 = 0xf0;}}//串口接收中断函数void INT_UartRcv(void) interrupt 4{unsigned char Rcv = 0,r=0;if(RI) //查询接收标志位(有数据发送过来时置为1){RI = 0; //接收标志位清零Rcv = SBUF; //存储缓冲区的数据jieshou=Rcv;}}附录2 主程序框图子程序框图(温度读写)附录三。