《简易分布式控制系统设计 .pdf》由会员分享,可在线阅读,更多相关《简易分布式控制系统设计 .pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、绍 兴 文 理 学 院数 理 信 息 学 院课 程 设 计 报 告 书题目简易分布式控制系统设计电子信息工程专业 111 班姓名 xxx 指导教师 xxx 时间 2014年 7 月 12 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - I 课程设计任务书班级电信 111 姓名xxx 题目简易分布式控制系统设计技术参数、设计要求、检测数据等简易分布式控制系统设计,基本要求:(1)系统采用 RS232通信(2)上位机软件可自行编
2、译(建议采用LabVIEW )(3)下位机采集 AD 信号,传送并显示采样值(4)自行设计上下位机通信协议,要求协议能完成一主多从通信扩展功能:(1)下位机地址可上电改写,掉电不丢失(2)通信协议具备超时重发功能设计进度安排或工作计划2013.9.10 2012.9.12 : 教师布置课题, 学生查询相关资料, 完成方案选择、确定验证方案。2012.9.132012.9.14 : 设计模块划分、实现及各模块仿真图设计。2012.9.152012.9.20 :设计整体实现、调试及验证,并开始撰写报告。2012.9.21:课程设计报告撰写并定稿,上交。其它认真阅读智能仪器仪表课程设计报告撰写规范;
3、课题小组经协商好要指定组长并明确分工,形成良好团队工作氛围;基于课题基本要求,各小组与指导老师讨论,再将课题细化、增加要求;课题小组每成员均需各自撰写一份课程设计报告。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - II 简易分布式控制系统设计摘要分布式控制系统是一种具有十分方便和友好的人/机界面的集散型计算机及其它自动化装置的计算机系统,它应用成熟的网络技术、总线技术微处理技术和计算机技术将加工控制设备、传感器仪表、服务器、
4、工作站等进行分散控制和集中管理,形成具有多层体系结构的控制系统。本课题是主要内容:下位机采用51 单片机为 CPU ,通过 AD采样电压信号,通过 RS232串口发送给上位机,而上位机通过自行编译的相关串口软件接收下位机发送的数据,并发送地址以及数据给多个下位机,下位机通过地址判断数据是否接收数据并显示的,以此完成一主多从的通信。关键词分布式控制系统;一主多从;51 单片机; RS232串口名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - -
5、- - - 目 录课程设计任务书 . . I摘要. . II1.设计概述 . 12.设计方案 . 13.设计实现 . 23.1.下位机实现 . 23.2.上位机实现 . 34.设计验证 . 55.总结 . 10参考文献 . . 11附录 . . 12名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 1 1.设计概述分布式控制系统( Distributed Control System,DCS )又称集散控制系统,它吸收了模拟仪表
6、和计算的优点,是一种对生产过程进行集中管理和分散控制的计算机系统。1 在社会发展过程中, 随着过程工业操作方法的改变,工艺上的复杂化和生产过程的强化,以及控制设备类型的改变,使得测量和控制行业起了突飞猛进的变化。在过去的几十年中,在测量仪表和计算机设别方便都有了极大的发展。于此同时,现场加工设备的自动化和信息化水平的不断提高, 传统的集中系统控制已经不能够满足现代加工的需求。为了提高生产效率, 实现对分布广泛的现场加工设备进行实时监控,及时的发现生产过程的故障并进行实时监控, 及时发现生产过程的故障并进行相应处理,从而对生产设备进行统一化管理,分布式控制系统应运而生。分布式控制系统吸收了模拟仪
7、表和计算机控制的优点,将控制和管理功能分散, 而将参数显示和操作部分高度集中。因此,其不仅具有极高的可靠性,还能够完成直接数字控制,顺序控制,批量控制,数据采集和处理,多变量耦控制以及最优控制。目前正朝着工厂整体自动化的方向发展。在传统控制方案中, 只有现场操作人员能从操作站监视生产和设备的运转状况,而分布式系统将控制、监测、通讯、管理集于一体,实现了现场设备的远程监控和管理,是现代制造技术的主流和发展方向。在分布式控制系统中, 要实现分散控制和集中管理,必须实现各控制节点数据的高效传输,因此数据结构的定义、传输的方式以及存储显得尤为重要。而实现数据的实时和高效传输,必须要构建实时的传输网络,
8、这就依赖于现场总线或工业以太网。因此各种现场总线技术和工业以太网网技术的日趋成熟,加快了DCS的应用和发展,为 DCS提供了众多网络构建的解决方案,同时也正是这些技术的发展, 使得 DCS的应用变得更加简单可靠。迄今为止,比较流行的的现场总线和工业以太网技术已有40 多种,比如 CAN总线, Etherener Powerlink,EtheNet/IP(EtheNet Industruial Protocol,以太网工业协议),EtherCAT,EPA(Ethernet for Plant Automation) 等。近几年来,随着工业控制技术的不断发展,工业技术水平的不断提高,工业自动化仪表
9、及其系统正在迅速发展和不断变革集散控制系统已经在许多行业应用,并显示出强大的生命力。2.设计方案总体方案:上位机主要是PC 机,在 PC 上编译软件对下位机进行的数据进行接收,并发送数据给下位机,而下位机主要由MCS-51 系统构成,因为要完成一主多从通信,则需要多个由 MCS-51 系统构成的下位机, 下位机在接收上位机发送地址及数据的同时还要名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 2 对采样 AD 信号,也就是电压
10、,所以下位机要对电压进行AD 转换,并发送给主机。因为课题要求下位机地址可上电改写,掉电不丢失,所以要用到EEPROM,对下位机的地址进行存储。方案总体的模块图如下:PC 主机MCS-51系统AD采样电压值发送地址及数据发送 AD采集电压地址eeprom图 2-1 总体模块3. 设计实现3.1. 下位机实现本课题下位机硬件主要由51 单片机, ADC0809,X5045,hd7279以及七段 LED 数码管构成, ADC0809 主要用于采集电压并进行AD 转换,然后 51 单片机接收数据,发送给主机。因为课题要求下位机地址可上电改写,掉电不丢失,所以要用到 EEPROMX5045,X5045
11、 是一种 3 合一功能的芯片,其具有EEPROM、电压跌落监测、看门口复位功能。2在程序运行时,将下位机地址存入X5045,在掉电后,下次开机取出地址。因为电路要对采集的电压,下位机地址以及上位机发送来的数据进行显示,所以用到hd7279 芯片。Hd7279 芯片是一种能同时管理8 为共阴极 LED 显示器(或 64 个单个 LED 单个 LED 发光管)和多达 64 键键盘的专用智能控制芯片。3所以下位机采用 hd7279 芯片对 LED 数码管进行管理显示数据是再好不过了。要注意的是,因为要进行一主多从通信,所以要有两套以上的硬件电路。下位机的主要程序款图如下:(包括原理图、程序流程图、L
12、abVIEW程序框图,注意,此两图要有详细的说明;此外,还应包含芯片、元器件的选型等)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 3 main 函数串口初始化通过 eeprom显示地址AD 转换电压值发送 AD 采集的数据结束串口中断接收主机发送的地址及数据对接收的地址命令未进行判断地址是否匹配?Y判断是否要对地址进行修改?接收数据并通过数据修改地址Y结束接收并显示数据N不接收数据N将修改后的地址写入eeprom并显示图
13、 3-1 mian函数程序框图图 3-2 串口中断程序框图程序主函数包括串口初始化,AD 数据采集并发送,从EEPROM 取地址等等。串口初始化主要是设置串口的工作方式,波特率,以及开启总中断和串行中断,同时将发送和接受标志位清零。在从EEPROM 取出地址并通过 hd7279显示之后,启动 AD 转换,在转换完成之后,对所采集的数据进行LED 显示,同时发送数据,发送数据之后,进入串行中断。在串行中断程序中,对上位机所发送的地址以及其数据进行接收,在对地址数据接收方面,具体的通信协议为:首先,一串数据为四位十六进制数据,前2 位为数据位,后两位为地址位,如 0106,01 为地址位, 06
14、为数据位。在接到数据后,先对地址进行判断,若地址为 00H, 则初始化地址,分配默认地址并显示; 若收到地址与从机地址匹配, 如 0103从机地址为 01,地址匹配,则接收数据,即后两位,并通过LED 显示,;若地址位二进制最高位为 1, 则为主要向从机发送修改地址的命令,若发送的地址的低位与从机地址匹配,如数据为 8103,地址位二进制为 10000010,地址位最高为 1,且低位与从机地址匹配 (从机地址为 01) ,则修改地址,而所接收的数据就是要修改的新的地址,即03,并将修改后的地址存入 X5045;若所接收地址不满足上面三个条件,则不接收数据。3.2. 上位机实现对上位机要求则是一
15、台PC机,也就是电脑,因为电脑只有一个RS232串口,而名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 4 连接多个单片机系统则至少需要两串口,本课题采用的做法是用一个USB 转串口线来解决这个问题,如下图:PCUSB/RS232RS2321号单片机2号单片机图 3-3 PC 线路图上位机程序主要LabVIEW 进行编译, LabVIEW是美国国家仪器公司(National Instrument,IN)推出的虚拟仪器开发平台,
16、 LabVIEW 以直观、简便的编程方式,众多的源码级的设备驱动程序, 多种多样的对分析和表达功能的支持,为用户快捷的构建自己在实际生产中所需要的仪器创造了基础条件。4因此,上位机的编译采用LabVIEW 是再好不过了。上位机的程序主要由串口初始化框图程序,发送指令框图程序,和读指令框图程序三部分构成。具体程序框图如下:串口初始化框图程序:图 3-4 窗口初始化框图由上图可知,波特率为9600,8 位数据位,无校验位,一个停止位发送指令框图程序:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
17、 - 第 8 页,共 22 页 - - - - - - - - - 5 图 3-5 发送指令图由上图看出, 将将要发送的四位十六进制字符截断,分高两位和低两位双字符分别发送,于此同时,将两个十六进制字符转为十六数字发送。读指令框图程序:图 3-6 读指令框图由上图看出,将接收到的字符取出,通过索引数组将十六进制转十进制输出。4. 设计验证如下图,左边为上位机软件图片,右图为两个下位机的图片,下位机的右三个LED数码显示的是采集的电压,都为0.52V,在采集完电压之后发送给上位机,上位机将接收电压在从机 1 电压和从机 2 电压两个文本框里显示, 如左图显示, 都为 0.592V,与下位机采集的
18、电压基本相符。由于是刚开机,主机并未给从机分配地址,所以不显示地址位。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 6 图 4-1 上位机初始图图 4-2 下位机初始图以下两图是主机给两个从机分配默认地址,如左图,当主机给从发送 0000H 时,则主机分配默认地址,两个从机的默认地址分别是1和 2 ,如右图,两从机的地址为1和 2,在最左边的 LED 数码管上显示。图 4-3 上位默认地址分配图图 4-4 下位机默认地址分配
19、以下两图为主机向1 号从机发送数据,发送数据为0133,01为地址位, 33为数据位,因为从机与的地址为1,与地址位 01 相匹配,所以 1 号从机接收数据并在左边的2,3,4 数码管上显示,由于发送的数据是十六进制,而从机以十进制显示,所以才会发送的数据是33,而显示的是 51。而从机 2 由于地址位不匹配,所以不接收数据。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 7 图 4-5 上位机发送数据图 4-6 下位机接收
20、数据以下两图为主机向2 号从机发送数据, 发送数据为 0212,02为地址位, 12 为数据位,因为从机与的地址为2,与地址位 02 相匹配,所以 1 号从机接收数据并在左边的2,3,4 数码管上以十进制显示。而从机1 由于地址位不匹配,所以不接收数据,保持原先接收的数据显示。图 4-7 上位机发送数据图 4-8 下位机接收数据以下两图为主机向1 号从机发送修改地址的命令,如左图,主机发送8103,地址为为 81H,即 10000001,最高为为 1,为修改地址的命令,而低位的1 又与 1 号从机地址匹配,则是对 1 号机经行修改地址, 而主机接收的数据位, 即 03H,则是要修改的的新地址,
21、右图为修改后的状态,可以看到从机1 号地址从原先的 1 变为 3 了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 8 图 4-9 上位机发送修地址命令图 4-10 下位机修改地址以下两图为主机向2 号从机发送修改地址的命令,如左图,主机发送8104,地址为为 82H,最高位为 1,同时低位的 2 又与 2 号从机地址 2匹配,则是对 2 号机经行修改地址,而主机接收的数据位则是要修改的的新地址,右图为修改后的状态,可以看
22、到从机2 号地址从原先的 2 变为 4 了。图 4-11 上位机发送修地址命令图 4-12 下位机修改地址最后一幅图为对两个从机进行断电,在再次打开以后, 两从机显示的原先上电之前主机所分配的地址, 从下图看到, 地址分别为 03 和 04,与原先断电之前所显示的地址相同,所以可说明,从机的地址掉电不丢失。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 22 页 - - - - - - - - - 9 图 4-13 下位机掉电地址非易失名师资料总结 - - -精品资料欢
23、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 22 页 - - - - - - - - - 10 5. 总结经过讨论之后,身为组长的我分别给组员分配了各自的任务:xxx 负责资料查找和报告撰写, xxx 负责通信协议设计, xxx 负责下位机程序编写,而我,则负责上位机软件的编写。在我完成自己任务当中,碰到了不少困难,虽然说以前用LabVIEW 软件编译过串行通信程序,但由于这次是一主多从的通信,所以有很大的不同,特别是通信协议的设置,是个难题。当然,后来在查阅了相关资料之后并且和组员讨论之后,得出了
24、具体的通信协议设计结论:主机发送四位十六进制数据,前两位为地址位,后两位为数据位:当地址与从机地址相匹配时, 从机接收数据位,而当主机发送的地址为00H 时,分配默认地址: 地址位数据的二进制最高为修改标志,在低位地址与从机匹配时,当最高位为0时,不修改从机地址,接收数据并显示,而当最高位为1时,从机修改地址,后面接收的数据位为新地址。在解决了这个问题之后,在配合了相关的资料下,上位的编译任务也就顺理完成了。通过这次实验, 让我对分布式控制系统有了深入了解的同时,也让我明白了认真学习的意义,锻炼了我坚韧的意志,并且还提高了自己的自信心,同时,身为组长的我,更加深刻的体会到了团队合作的重要性,总
25、之,这次课程设计,我学会了很多。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 22 页 - - - - - - - - - 11 参考文献1 邢建春,杨启亮,王平. 新技术形势下DCS 的发展对策 . 自动化仪表 .2003,24(1):12 2 杜洋 .监控芯片 X5045 的应用 .http:/ 30LDz2kc2IXnrOQKJcm_oC4nUmiwcmgjUoiJbO7J0MspY6gWUa_gmhWmAkqcrdIa1YVQmoC.2014-7-12 3 赵
26、茂泰 . 智能仪器的原理及应用. 第三版 .9787121080623. 北京:电子工业出版社.2009.8283 4 李江全,任玲,廖结安,温宝琴.LabVIEW 虚拟仪器从入门到测控应用300 例.978712197062. 北京 :电子工业出版社.2013.23 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - - - - - - - - - 12 附录电路图:LabVIEW 程序框图( front panel & block diagram )前面板
27、:程序框图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 22 页 - - - - - - - - - 13 串口初始化:接收界面:发送界面:总体框图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 22 页 - - - - - - - - - 14 主程序源代码#include reg52.h #include hd7279.h #includ
28、e ABSACC.H #include X5045.h #include /内部函数库#define addr 0 x01 /默认分配的地址#define dataport XBYTE0 xfef8 /sbit EOC = P3 3; /数码管万位unsigned char i = 0; unsigned char data_buf2; /延时函数void Delay(unsigned char counter) unsigned char i; for(i=0; i+; i=counter) _nop_(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
29、- - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 22 页 - - - - - - - - - 15 /初始化void init() TMOD = 0 x20; /T1 工作于方式 2,自动重装载TH1 = 0 xFA; /赋初值TL1 = 0 xFA; PCON = 0 x80; /SMOD=1 SCON = 0 x50; /方式 1,允许接收EA = 1; /总中断开启ES = 1; /串行中断开启RI = 0; /接收标志位清零TI = 0; /发送标志位清零TR1 = 1; /ad 转换unsigned char ad_trans() data
30、port = 0; /启动转换Delay(0 x48); return dataport; /接收数据void rev_data() interrupt 4 if(RI = 1) data_bufi+ = SBUF; if(i = 2) i = 0; if(data_buf0 = 0 x00) /初始化从机地址指令 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 22 页 - - - - - - - - - 16 byte_write(0 x01, 0 x00); /地
31、址标志位置 1,写入 X5045 byte_write(addr, 0 x01); /分配默认地址,写入X5045 write_hd7279(HD7279_DECODE1+7, 0 x01); /在第 8 个数码管上显示地址 else if(data_buf0 = byte_read(0 x01) /数据指令,并显示在第7、6、5 个数码管上 write_hd7279(HD7279_DECODE1+6, data_buf1 / 100); write_hd7279(HD7279_DECODE1+5, (data_buf1 / 10) % 10); write_hd7279(HD7279_DEC
32、ODE1+4, data_buf1 %10); else if( (data_buf0 & 0 x80) = 0 x80 & (data_buf0 & 0 x7f) = byte_read(0 x01) ) /修改从机地址 byte_write(0 x01, 0 x00); /地址标志位置 1,写入 X5045 byte_write(data_buf1, 0 x01); /新地址写入 X5045 write_hd7279(HD7279_DECODE1+7, data_buf1); /在第 8 个数码管上显示地址 RI = 0; else TI = 0; void sen_data(unsign
33、ed char adresult) unsigned int temp = 0; SBUF = adresult; /while(TI = 0); /TI = 0; Delay(0 x48); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 22 页 - - - - - - - - - 17 temp = (unsigned int)(adresult * 100 / 51); write_hd7279(HD7279_DECODE1+2, adresult / 51);
34、 /发送数据显示在第3、2、1 个数码管上write_hd7279(HD7279_DECODE1+1, (temp / 10) % 10); write_hd7279(HD7279_DECODE1, temp % 10); /主函数void main() init(); /初始化if(byte_read(0 x00) = 0 x01) /如果地址以存在则显示 write_hd7279(HD7279_DECODE1+7, byte_read(0 x01); /在第 8 个数码管上显示地址 while(1) sen_data(ad_trans(); /ad 转换完成发送数据Delay(0 xff); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 22 页 - - - - - - - - - 18 教师评语名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 22 页 - - - - - - - - -