基于单片机的PLC设计与实现毕业设计论文.doc

上传人:豆**** 文档编号:29910297 上传时间:2022-08-02 格式:DOC 页数:33 大小:920KB
返回 下载 相关 举报
基于单片机的PLC设计与实现毕业设计论文.doc_第1页
第1页 / 共33页
基于单片机的PLC设计与实现毕业设计论文.doc_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《基于单片机的PLC设计与实现毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的PLC设计与实现毕业设计论文.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 1 引言1.1 课题研究的目的和意义基于单片机的PLC设计与实现课题的研究是依据应用开发中的实际要求提出来的。当我们设计机电一体化产品或从事自动化装置设计时,常常会遇到要求设计出成本极低,同时能完成较为复杂的逻辑控制的控制器的问题。可编程序控制器以其可靠性能高、编程简单易学、维护方便等优点而广泛应用于工业控制中;单片机具备功能多、结构紧凑、价格便宜等特点,在工业控制中也得到了广泛的应用。PLC和单片机有机地结合,就可实现单片机与PLC之间优势互补,在工业控制中可发挥更大的作用1,不仅可大大简化单片机系统的研制时间,实现复杂的逻辑控制,性能得到保障,效益也就有保证。PLC的突出优点是可靠性高、

2、接口类型丰富、能适应各种复杂恶劣的工业环境,另外PLC采用面向过程的编程语言,编程简单直观,易学易懂,使用灵活方便,工程技术人员经过短期学习即能上手。同时也有不少缺点:有限的内存,编程优化调试比较困难;产品多为进口,价格昂贵;针对性比较差。特别是当控制不太复杂的逻辑功能,控制量不太大,控制要求不高同时环境条件尚佳时,它的优势就不能完全发挥出来,而且会提高系统的成本。鉴此,根据可编程序控制器的实现原理和工作方式,设计小型的PLC控制系统有很大的实际意义。本论文借鉴PLC的实现方式和运行原理,利用性价比比较高的AT89S52单片机设计了了一种小型PLC。1.2 课题研究背景近些年来,随着社会的迅速

3、发展,科技的快速进步,可编程控制器(PLC)技术的发展显得异常迅猛,PLC技术在国内外已经广泛的应用于钢铁业、石油业、化工业、电力业、建材业、机械设计制造业、汽车业、轻纺业、交通运输业、环保业等诸多领域2。目前PLC市场主要有美系、欧系、日系三大产系,200多家公司生产制造,其中都是三大产系为主的公司,我国的PLC的研究与生产比较晚,但是通过引进国外先进技术,消化并吸收,近年来,我国的PLC市场发展的很快,市场前景被十分看好。但是,国内的PLC仍然处于发展阶段,依然存在很多问题,与那些发达国家相比,我国PLC的应用仍较为局限化,而那些应用PLC的企业,主要是一些国有大型企业,在其它中小型企业中

4、的应用比例比较低。PLC技术主要靠引进,自主知识产权缺乏,与发达国家相比,技术水平落后5年左右,国产化率低很难满足国内市场需求。目前,我国是世界上经济发展比较快的国家之一,市场上新设备的控制需求、传统设备的技术升级、换代对PLC的需求越来越大。另外随着工业设备不断地更新和发展,对PLC要求也越来越高,在这样的形势下,我国可以抓住这一机遇,研制出具有自主知识产权,更满足现代化工业用途的PLC。1.3 本课题主要研究内容该课题是以单片机为主控元件,根据PLC的接口特性,利用适当的外围器件,设计一种PLC原理样机。该课题需要了解单片机的工作原理、有关外围接口芯片的工作机理;电源电路设计、模拟数字电路

5、处理;软件程序设计等知识。设计具体内容分为以下几个方面:(1) 系统硬件电路设计以及单片机选型;(2) 系统软件设计;(3) 上位机软件设计以及上位机与下位机通信设计。2 系统总体设计方案2.1 PLC简介2.1.1 PLC基本特点在可编程控制器(PLC)诞生之前,继电器控制在工业控制领域中占主导地位。这种由继电器构成的控制系统存在着明显的缺点:体积庞大、耗电多、可靠性能差、寿命短、运行速度慢等,尤其是很难适应生产工艺系统多变性。与继电器控制相比,可编程控制器具有以下一些特点34:(1) 抗干扰能力强,可靠性高。可编程控制器主要是为工业控制而设计的,在其设计及制造的过程中采取了多层次抗干扰的措

6、施,使其能在恶劣的工业环境下正常工作。而且,在PLC中由电子线路来完成继电器大量的开关动作,由程序来代替继电器之间的连线,与继电器相比,PLC大大的提高了使用寿命和可靠性,平均的无故障时间甚至可达几十万个小时。(2) 编程语言简单易学,容易掌握,便于普及。PLC设备面向用户,考虑到现场技术工作人员的特点,编程语言一般比较形象直观且容易掌握。目前,大部分的PLC仍然采用继电器控制形式的梯形图方式编程,梯形图语言编程元件的符号和表达方式接近继电器控制电路原理,不需要专业的计算机知识,只需要具有一定的电工知识和工艺知识的人员在较短的时间内都可以学会。(3) 通用性强,控制程序可变。不同的对象用同一个

7、可编程控制器控制时,只需输入、输出模块发生改变,编制的控制程序不同即可,不需要类似继电器的固体电子器件和大量繁冗复杂的硬件接线电路。(4) 接口功能强,适应面广。现代的PLC不仅拥有计时、计数、顺序控制、逻辑运算等一系列的功能,而且具有数字量和模拟量的功率驱动、记录显示、通信、输入输出、自检、人机对话等功能,不仅可以控制一个生产过程,还可以控制一条生产线甚至小到一台生产机器。(5) 维护方便、体积小、重量轻。PLC是将微电子技术运用到工业设备上的产品,它的结构紧凑,体积小,质量轻,便于在设备内部安装,是一种用来实现机电一体化理想的控制设备。目前,大部分的PLC控制系统仍采用模块化的结构,接线比

8、较少,出现故障的时候,只需要更换出现故障的模块,维护非常方便。(6) 大大减少了设计和施工的工作量。在PLC的控制系统中采用软件来代替继电器的控制系统中大量的时间继电器、中间继电器、计数器等器件,所以大大的减少了控制柜的设计、安装的接线工作量,同时,PLC的用户程序模块可以在实验室内模拟调试,大大减少了现场调试的工作量5。2.1.2 PLC基本结构一个PLC系统本质上是一台用于控制的专用计算机,其基本组成如图2-1所示,主要包括了以下几个部分6,7: CPU模块微处理器存储器 编程模块输入模块外部设备输出模块外部设备电 源 模 块图2-1 可编程控制器系统的基本组成(1) CPU模块:CPU模

9、块是可编程控制器的核心模块,主要是由存储器和微处理器两部分组成8。整个可编程控制器的工作主要由微处理器控制,大概可以分为两个部分:一部分主要对系统进行一系列管理,如计数刷新、查错、自诊断等等,另一部分则根据用户程序指令执行输入、输出、程序解释、执行等一系列的操作。存储器则主要用于存储系统的工作区间及监控程序,来生成用户的环境,其容量的大小取决于系统程序的质量及系统的工作能力8。(2) 输入/输出模块:输入/输出模块是连接现场设备与可编程控制器的接口。输入模块主要用来采集和接收现场设备的输入信号,包括选择开关、按钮等开关量的输入信号以及测速发电机、电位器等连续变化的模拟量输入信号。预先在某个电流

10、或电压范围内限定模拟量输入信号,将这个信号由模拟量输入模块转换成CPU能够处理的数字信号。向各执行机构输出控制信号则由输出模块来负责。可编程控制器存在一个重要特点:所有的输入输出信号全部都经过隔离,无论任何输入输出的形式最终都是经过光电耦合器接口或继电器将信号输入/送出8。(3) 编程设备:在可编程控制器中,编程设备是最重要的外围设备,利用它既可以编辑、修改、检查、调试用户程序,还可以在线对可编程控制器的当前工作情况进行监视8。编程器分很多种层次,性能、价格有很大的差别,最简单的不足千元,最贵的编程器可以达到十多万元8。(4) 电源模块:提供可编程控制器能够正常工作的直流电源。2.1.3 PL

11、C工作原理PLC的工作原理如图2-2所示,主要分为以下三部分9: 输 入接口输入映像寄存器 用户程序扫描输出映像寄存器输出锁存器输出接口图2-2 PLC工作原理(1) 集中采集输入:执行程序前,向输入映像寄存器中读入可编程控制器输入端子的全部状态。程序执行的过程中,即使改变了输入状态,输入映像寄存器中的内容也不会发生变化,直到下一个扫描周期的输入处理阶段,这些变化才会被读入。(2) 程序处理:在PLC执行程序时,程序指令逐条依次执行,从输入映像寄存器和其它软元件的映像寄存器中读出用户程序中相关元件的状态,按照程序指令来进行逻辑运算,再在相应的映像寄存器中写入结果。对于每个元件而言,随着执行逐条

12、的程序,不改变元件映像寄存器的内容,其中输出映像寄存器的内容决定了输出寄存器的内部触点的动作。(3) 集中输出:执行完毕全部的用户程序后,向输出锁存寄存器传送输出映像寄存器的状态,通过驱动功率放大电路、隔离电路等外部电路,将PLC的控制信号向外输出8。由此可见,PLC是以扫描方式工作的:首先读输入回路继电器状态(I/O),把它们存入专用的输入映象存贮器区域中,然后执行用户程序,临时中间结果存放在辅助继电器存贮区中,运算出的输出继电器值存入输出映象存贮器区域中,执行完用户程序后,统一用输出映像寄存器存贮器中的值去写各输出端口,使输出状态改变,输出结果后再从头开始循环执行。2.2 系统设计要求该课

13、题是以单片机为主控元件,根据PLC的接口特性,利用适当的外围器件,设计一种PLC原理样机。它能实现PLC输入、扫描、输出的工作特性,输入输出用光电耦合器隔离防止信号干扰。I/O接口的数量是衡量CPU性能的主要标准之一。本系统的设计定位是:应用于控制量较小,控制要求不高的控制场合的微型可编程控制器,故本系统设置了8个输入点和8个输出点,这种设计完全可以满足该工况的需要。可通过上位机软件,与单片机进行实时通信,从PC机接收指令,并按照指令运行程序,同时可以向PC机反馈设备运行时记录的数据,并能够将数据保存。2.3 系统总体框图根据系统的设计要求,采用AT89S52单片机为主控芯片,通过单片机数据地

14、址总线及I/O端口,复位电路模块、晶振电路模块、电源模块、串口通信模块及输入输出光电隔离模块等外围电路,从而实现系统所需的设计功能。系统总体方案框图如图2-3所示:AT89S52单片机主控模块复位电路串口转换PC串口晶振电路输入光电隔离电源光电隔离输出图2-3 系统总体框图2.4 硬件的选型2.4.1 主控模块的选型单片机作为主控模块,其选型尤为重要。单片机在多年的发展历程中,形成了多系列、多型号、多公司的局面,这使得在对单片机选型上有了较大的空间,因而,选择一个合适的单片机有时真的不太容易,要考虑的方面太多。大致总结出以下几点:(1) 单片机的基本参数。例如速度、程序存储器容量、I/O引脚数

15、量等。(2) 单片机的增强功能。例如双指针、双串口、扩展RAM、RTC(实时时钟)、CAN接口、EEPROM、I2C接口、SPI接口、USB的接口类型、看门狗。(3) Flash和OTP(一次性可编程)相比,哪个更方便。(4) 封装:DIP(双列直插),PLCC(PLCC有对应的插座)还是贴片。(5) 工作温度的范围(是工业机还是商业机)。(6) 功耗大小。(7) 工作电压的范围。(8) 供货渠道是否畅通。(9) 价格范围。(10) 烧录器的价格,能否ISP(在线系统编程)。(11) 仿真器。(12) 是否支持单片机汇编语言。(13) 资料尽量详细丰富且完善。(14) 抗干扰性能的好坏。(15

16、) 综合考虑和其他外设芯片放在一起是否使用方便。基于以上因素:由于系统的实时性要求不高,因此运算速度不需要很快,而且系统的规模不大,若要对I/O口的数量可以要求进一步降低,可采用分时复用的方式使用总线。使用4路8位I/O接口即可满足设计要求;系统不需要扩展外部存储器对数据进行存储,数据的存储量为32KB已达到要求,因此采用16位或准16位地址总线的单片机即可满足设计需要;由于处于实验阶段,采用DIP(双列直插)封装的芯片比较方便,不考虑实际工业控制中对外界环境的具体要求;系统供电采用DC9V,且对功耗没有具体要求,芯片供电使用DC5V,便于设计系统外围电路;芯片支持ISP可节省仿真器的投入。当

17、单片机处于空闲模式时,将停止CPU工作,定时器/计数器、RAM、串口中断可以允许继续工作。而处于掉电保护模式时,将RAM中的内容保存,冻结晶振,停止单片机所有工作,直到硬件复位或下一个中断才能结束这种状态。综上所述,采用与MCS-51兼容的AT89S52单片机满足本毕业设计所需单片机的要求。2.4.2 通信模块的选型AT89S52单片机内部有一个全双工异步串行I/O接口,占用P3.0和P3.1两个引脚。利用该接口,可实现系统与上位机的通信。不同设备间串口通信的过程中,需要采用相同的的接口标准才能通信。MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片, 供电使用

18、+5v单电源。可以完成两路TTL/RS-232电平的转换,它的的9、10、11、12引脚是TTL电平端,用来连接单片机的。该芯片采用MAXMIM公司生产的+5V供电系统,多通道RS-232驱动器/接收器的MAX232芯片性价比高,是把计算机的串行口RS-232信号电平(-10V,+10V)转换为单片机所用到的TTL信号电平(0,+5V)主要特征如下:1、单电源5V操作,2、低功率接收模式,掉电模式,3、满足所有EIA/TIA-232E和V.28规格,4、多路驱动器和接收器,5、3态驱动器和接收器输出,6、16引脚DIP/SO封装其工作原理:MAX232系列驱动器/接收器专为EIA/TIA-23

19、2E以及V.28/V.24通信接口设计,适合电池供电系统。2.4.3 光电耦合器的选型PLC工作于工业控制现场,而工业控制现场往往环境恶劣,存在着电磁、噪声、振动等各种干扰,因此PLC要正常工作必须具备良好的抗干扰性能。工业现场中,电磁干扰是较为严重的,因此为了实现良好的抗干扰性能必须把I/O接口和CPU从物理上隔离开来,以防止干扰信号的串入。PLC产品为了实现接口电路与CPU的隔离通常采用光电耦合器隔离的方法。本设计已采用了这种方法,使用光电耦合器把输入输出接口同CPU隔离开来。在一些需要通过绝缘层传送信息但却不允许物理电气接触的场合,通常需要一些隔离器件,依照信号经过绝缘层传送方式的不同,

20、有几种型态的隔离器可以选择,其中较为普遍的就是通过光的方式传送,这类隔离器件就称为光电耦合器(Optocoupler)10。光电耦合器由包括发光二极管(LED)、光检测器以及其他输入和输出编解码电路组成10。输入的电信号驱动发光二极管(LED),使它发出一定波长的光,由光探测器接收后产生光电流,再经过进一步放大后输出。这就完成了电光电的转换,从而起到输入、输出隔离的作用11。本次电路的设计中选用TLP521-4型号的光电耦合器:表2.1 TLP521-4光电耦合器参数品牌/商标TOSHIBA型号/规格TLP521-4种类光电耦合器波段范围微波运转方式稳频式激励方式电激励式工作物质自由电子光路径

21、内光路输出形式光敏器件型传输信号OC门型速度高速通道多通道输出波长16(nm)线宽20(mm)3 系统硬件设计3.1 AT89S52单片机简介AT89S52是一种高性能、低功耗的8位微控制器,采用CMOS工艺,在线系统可编程Flash存储器达到8K12。制造技术采用了Atmel公司非易失性高密度存储器技术,引脚和指令可与工业单片机80C51产品完全兼容13。片上Flash允许程序存储器在线系统可编程也适于常规编程器14。在单芯片上,AT89S52有着在线系统可编程Flash和灵巧的8 位CPU,提供有效且灵活度高的解决方法,成为众多嵌入式控制应用系统的最佳选择。AT89S52具有以下标准功能:

22、 8位字长的CPU,8K字节系统内可编程Flash存储器,256字节内部RAM,20多个特殊功能寄存器, 四个8 位I/O 端口、ISP端口,全双工串行口,时钟电路及片内晶振,而且AT89S52的静态逻辑操作可降到0Hz,两种支持的软件,节电模式可以选择15;看门狗定时器是一种硬、软件相结合的重要的且常用的抗干扰技术,能监视系统的运行情况,当系统受到干扰使程序“跑飞”时,能使程序退出死循环,并转向出错处理程序。双数据指针DPTR,可使程序运行速度更快。此外,还有6向量2级中断结构一个,数据指针两个,16位定时器/计数器三个。相较于Atmel公司的前代产品AT89C51/C52,AT89S系列单

23、片机芯片上有ISP可编程接口,具有从PC机下载目标程序到用户板的功能,学习者只需一台PC机、一块用户电路板和一条专用下载线及其配套软件,即可在PC机中编译程序,然后利用下载软件下载目标程序,并进行仿真实验,并且兼容AT89C51/C52和MCS-51(8031、8051)单片机。3.1.1 AT89S52单片机的引脚介绍图3-1 AT89S52管脚图P0口:一个漏极开路的8位双向I/O口。当做输出口使用时,每位I/O口可以驱动8个TTL的逻辑电平。写“1”到P0端口时,输入为被用来作为高阻抗的引脚。当访问数据存储器和外部程序时,把P0口当做低8位的地址/数据复用16。这种模式状态时,P0由内部

24、提供上拉电阻。当FLASH编程时,P0口用于指令字节的接收;在程序校验时,用来输出指令字节。处于程序校验状态时,外部需要上拉电阻17。P1口:一个8位双向I/O口,内部提供上拉电阻,其输出缓冲器可以驱动的TTL的逻辑电平为4个18。写“1”到P1端口时,内部提供的上拉电阻拉高端口,此时P1端将被当做输入口来使用。当做输入口使用时,因为内部电阻上拉,外部把引脚下拉为低电平,电流(IIL)将被输出19。此外,P1.0作为定时器/计数器2的外部计数输入端口(P1.0/T2),P1.2作为定时器/计数器2的触发输入端口(P1.1/T2EX),具体如表所示:表3.1 端口引脚第二功能引脚号第二功能P1.

25、0/T2定时器2的外部脉冲输入脚,时钟输出P1.1/T2EX有T2EX功能,外部中断输入的触发脚位P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)当FLASH编程和校验时,P1口用于低8位地址字节的接收 20。P2口:一个8位双向I/O口,内部提供上拉电阻,其输出缓冲器可以驱动4个TTL逻辑电平16。P2端口写入“1”后,内部提供的上拉电阻拉高端口,此时P1端将被当做输入口来使用。当做输入口使用时,因为内部电阻上拉,外部把引脚下拉为低电平,电流(IIL)被输出 19。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高

26、八位。在读出地址“1”时,利用内部上拉电阻的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。在FLASH编程和校验时,高8位地址字节和一些控制信号由P2口接收20。P3口:一个8位带内部上拉电阻的双向I/O口,P3输出缓冲器可以接收输出4个TTL逻辑电平18。对P3端口写“1”时,它们被内部上拉为高电平,并用作输入。用作输入口时,由于外部下拉为低电平而内部上拉,P3口将输出电流(ILL)。P3口也会作为AT89S52特殊功能(第二功能)使用,如下表所示16。表3.2 端口引脚第二功能端口号第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2IN

27、TO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,用于FLASH闪存编程和程序校验的一些控制信号也由P3口接收。RST复位输入。当晶振工作复位器件时,RST引脚持续2个机器周期以上高电平将使单片机复位21。ALE/PROG表示地址锁存器启用的信号。访问外部程序或数据存储器的时候,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节22。一般在执行程序时,ALE引脚以1/6的系统工作频率输出固定的脉冲信号,因此它可用作对外输出时钟脉冲或者用于定时的目的23。然而要

28、注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲24。在FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)23。当必要时,可置位特殊功能寄存器(SFR)区中的8EH单元的D0位来禁止ALE操作,该位置位后,只有MOVX和MOVC指令才能将ALE激活25。此外,该引脚被略微拉高,所以当单片机处于执行外部程序的状态时, ALE禁止位应设置为无效25。PSEN表示程序存储启用信号。程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器执行指令代码(或数据)时,PSEN在每个机器周期被激活两次,即输出两个脉冲,在此期间,当访问外部数据存储器,PS

29、EN信号将跳过两次25,即PSEN将不被激活。EA/VPP访问外部程序存储器控制信号,为使能从0000H到FFFFH的外部程序存储器读取指令,EA端必须接GND26。需要注意的是:若加密位LB1被编程,EA端状态在复位时会被内部锁存 27。为了执行内部程序指令,EA应该接Vcc,内部程序存储器的指令则由CPU执行。FLASH存储器编程时,该引脚加上12V的编程允许电源Vpp28。XTAL1:反向振荡放大器的输入端及内部时钟工作电路的输入端。XTAL2:系统时钟的反相振荡放大器的输出端。3.1.2 AT89S52单片机的最小系统电路用最少的元器件建立并能使单片机正常工作的电路,称为单片机的最小系

30、统图,要使单片机按照设计要求正常工作,完整单片机最基本的工作要求,考虑到系统无需精确地定时功能,且为了方便串口通信波特率的计算,采用11.0592MHz的晶振提供系统时钟。并附加复位电路,组成单片机最小系统。根据电路设计规范和AT89S52芯片手册,设计晶振电路与复位电路如图3-2:图3-1 复位电路及晶振电路图中网络标号RST连接单片机RST引脚,具有上电复位与手动复位的功能;XTAL1与XTAL2连接单片机XTAL1和XTAL2引脚,且同时并联两个30pF的匹配电容使晶振起振,从而设计出如下图所示的单片机最小系统图:图3-3 单片机最小系统图3.2 通信单元硬件设计如图所示,MAX232有

31、16个引脚:图3-4 MAX232引脚由1、2、3、4、5、6脚和4只电容构成第一部分电荷泵电路。其功能是产生给RS-232提供需要的串口电平的+12v和-12v两个电源29。由7、8、9、10、11、12、13、14脚构成两个数据通道构成第二部分数据转换通道。其中第一数据通道由13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)构成29。第二数据通道由8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)组成。从11引脚(T1IN)、10引脚(T2IN)将TTL/CMOS数据输入,并且转换成,然后从14脚(T1OUT)、7脚(T2OUT)将

32、RS-232数据送到电脑DB9插头;相反的,从13引脚(R1IN)、8引脚(R2IN)将DB9插头的RS-232数据输入转换成TTL/CMOS数据,然后从12引脚(R1OUT)、9引脚(R2OUT)将转换后TTL/CMOS数据的输出30。15脚GND、16脚VCC(+5v)属于供电是第三部分。图3-5 串行通信模块电路图R2OUT引脚接到单片机串口接收引脚RXD(P3.0),T2IN引脚接到单片机串口发送引脚TXD(P3.1)。而对应的T2OUT引脚则接到九孔插座的2号孔,R2IN引脚接到九孔插座的3号孔。3.3 其他外围接口电路设计3.3.1 继电器部分电路继电器电路设计。由于单片机I/O口

33、的驱动电流比较弱,达不到继电器吸合电流的参数要求,所以为使继电器动作,需要采用三极管驱动。设计电路如下图所示:图3-6 继电器部分电路图3.3.2 光电耦合器隔离电路由于光电耦合器输入与输出之间相互隔离,而电信号的传输具有单向性等特点,因此光耦具有良好的抗干扰性和电绝缘性。又由于光电耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力31。所以,它在长线传输信息中作为终端隔离元件可以大大提高信噪比32。图3-7 光隔离输入图3-8 光电隔离输出4 系统软件设计系统软件的设计思想是:编制的助记符指令被编程软件翻译为单片机的汇编语言,通过文本编辑软件,用户只需建立助记符程序源文件并将

34、其存为.PLC格式,即可直接运行翻译程序进行翻译,生成.ASM格式的文件,再通过汇编器的编译后生成目标码.HEX文件,最后装入单片机。4.1 系统运行程序根据PLC循环扫描、集中采集输入、集中输出的工作方式,设计了本次设计的系统运行程序。由于单片机的并行口在上电复位后都为高电平,因而设计输出为高电平有效,因而在程序运行刚开始的时候,首先向输出口P2写“1”,将输出口电平拉低。而后调用MOV 20H,#00H将输入映像区20H清空,随后进入一个“读输入逻辑运算写输出”循环周期。在每个循环的开始调用MOV P2,#0FFH 和MOV 20H,P2两条指令读取输入口的状态,由于系统逻辑运算部分设计为

35、高电平有效,而输入状态扫描设计为低电平有效,所以当我们采集输入点信息并读入输入映像区后,首先要将输入映像区的值全部取反,再进行逻辑运算。逻辑与运算完毕后将进入写输出操作阶段,由于在翻译逻辑运算的同时已经在输出映像区24H的对应位将输出量写进去了,因此在循环末尾只需调用MOV P1,24H在引脚中将输出缓冲区全部写入即可。开始程序编辑文件扫描错误检查逻辑翻译结果输出下载程序运行NY监控图4-1 系统运行图4.2 翻译程序设计整个翻译程序共分为四个模块:文件扫描模块、错误检查模块、逻辑翻译模块、结果输出模块。文件扫描模块主要是将编好的程序记录到系统中,为下一步的错误检查做准备;而查错模块主要用于对

36、梯形图和指令表进行语法检查;转化模块用于实现梯形图与指令表的转化8;逻辑翻译模块是翻译程序的核心,主要用于对指令表语言的编辑翻译,使其变成能下载到单片机中的目标码;监控则是由通信模块和上下位机之间的通信,监控下位机的运行,实时跟踪下位机各资源的内部状态8。翻译是通过I/O映像区地址表的建立,操作数字段操作数类型与标号的分离,操作码字段翻译,I/O点对应的位地址的确定等几个阶段完成的。翻译是通过函数Interpreter()的调用实现的。指针指向文件首行读取当前行指令指针是否指向文件末行指针是否为END词法检查无误删除指令多余空格词法检查有误,弹出错误信息指针码搭配是否恰当操作数是否越界文件指针

37、指向下一行YNYNNYYN图4-2 错误检查模块软件设计的思路是设计翻译程序将助记符程序.PLC翻译成为汇编语言程序.ASM。通过研究可以发现,可以利用PLC助记符程序和MCS-51汇编语言存在着一定的对应关系进行翻译。具体方法是:先确定PLC助记符指令语句与汇编语句组的对应关系,翻译时派发地址即可。PLC助记符指令与MCS-51汇编指令对应表如表4-1所示:表4-1 PLC助记符指令与MCS-51汇编指令对应表PLC助记符程序MCS-51汇编语言LDMOV C , BITLDNOTMOV C , BIT CPL CORORL C , BITORNOTORL C , /BITANDANL C

38、, BITANDNOTANL C,/BITORLDORL C , 22H.0ANDLDANL C , 22H.0OUTMOV 24H.X , C读取指令表文件翻译模块51函数库51程序PLC函数库51编译器51连接器符号转换器二进制代码图4-3 逻辑翻译模块4.2.1 I/O映像区地址表的建立输入输出映像区地址表中包含了目标程序中全部可用的输入输出点的位地址。首先建立输入映像区地址表和输出映像区地址表,表结构定义如下:typedef struct IBitadress char *b; int Iid; Iadress;/*输入映像区定义*/字符指针分别指向输入缓冲区20H和输出缓冲区24H,

39、输入缓冲区的每一位的位地址标号由Iid标示,输出缓冲区的每一位的位地址标号由Xid标示。通过输入映像区表和输出映像区表的初始化来观察表示方法:Iadress Ibit8= 20H.00,0, 20H.10,1, 20H.20,2, 20H.30,3, 20H.40,4, 20H.50,5, 20H.60,6, 20H.70,7, ;/*输入映像区表初始化*/通过该初始化过程可以发现:每字节位地址的位标号与输入(输出)表的Iid字段和位地址是相对应的,如输入(输出)映像区地址“20H.0(24H.0)”对应的标号Iid为“0(0)”,与“20H.1(24H.1)”对应的Iid为“1(0)”。 在

40、翻译的时候,映像表中的取用地址由我们通过源文件链表节点中的I/O点的类型来决定,再结合输入点号最终唯一确定一个位地址将作为程序地址。4.2.2 源文件操作码类型和I/O点号的分离当遍历到一个节点时,将操作数(Poprand)字段从节点数据域中取出,并分离操作数字段的I/O点号和I/O点类型,具体方法是:先取出Poprand字段第一个字符Poprand0存入变量Poprand_1,该字段表示了I/O点的类型,“I”是输入点,“X”代表输出点,“0”是ORLD/ANDLD指令使用的固定操作码。然后取出Poprand字段的第二个字符Poprand1存入变量Poprand_1,该字段表示了I/O点的标

41、号。4.2.3 操作码字段翻译当扫描到节点时,首先判别取出的节点的操作码字断Popcode ,通过判别可以确定最终翻译生成的汇编代码的操作数字段和操作码字段其中的一个,通过分离后的Poprand_1和Poprand_2共同确定表示位地址的操作码字段。位寻址指令的特点决定了在生成目标程序的操作数字段时,逻辑量的暂存要选取程序状态字PSW的最高位Cy。逻辑节点组暂存选用了位地址22H.0。源文件操作码字段Popcode 的翻译分以下三种情况:(1) 目标代码地址固定的语句的翻译ORLD 0. 译为 ORL C,22H.0ANDLD 0. 译为 ANL C,22H.0由于这类指令中的位地址是不会发生

42、改变的,所以翻译是固定的,是表示向固定的暂存区22H.0中存入组节点并联时的中间结果。(2) 通过操作码字段的翻译后只需确定位地址的语句的翻译 OR(ORNOT) I1. 译为 ORL C,I1(ORL C,/I1)AND(ANDNOT) I1. 译为 ANL C,I1(ANL C,/I1)从这两句中可以确定目标程序的操作码字段和操作数字段的一个值,而等待确定的只剩下I/O点地址I1了。(3) 需保存中间结果的语句的翻译 遇到成组串并联的情况,需先将上一组逻辑的结果存入暂存区。即翻译为:当ldflag=0时 LD I1 译为 MOV C,I1;当ldflag=1时 LD I1 译为 MOV 2

43、2H.0,C MOV C,I1 两句要指出的是在进行判断的时候首先应该判断条件(ldfalg=1)然后再判断条件(ldfalg= 0),否则很有可能会漏掉需要暂存的中间点。在当遇到OUT指令时,应先把ldflag清零,因为OUT指令表示了一个逻辑回路的结束。4.2.4 I/O点对应的位地址的确定通过对源文件操作码字段的分析和翻译,完整的把少量源程序的语句翻译出来,这些语句涉及的都是固定地址的位置。多数已经得到了目标程序也就汇编代码的操作码字段和一个操作数字段, 剩下一个位地址字段等待确定。确定了位地址以后,整个程序的翻译也就都完成了,这是翻译中最关键的一步。在这里用到了I/O映像区地址表和通过

44、分离源文件操作数字段Poprand的得到的I/O点标号Poprand_1。确定位地址的方法是首先分析分离得到的Poprand_0,若Poprand_0为”I”则查找输入映像区,这时再用变量Poprand_1和输入映像区地址表的Iid字段匹配,匹配成功则取出Iid对应的位地址,这样就完成了位地址的确定。在逻辑翻译之前和逻辑翻译之后将系统程序分别导入到输出链表,而最后输出的就是具备了完整的控制功能的程序。通过后接汇编编译器翻译为.HEX文件,用下载器下载到单片机即可。翻译软件部分运行图片如下图所示。图4-4 主程序界面图4-5 读入PLC源程序图4-6 错误检查图4-7 翻译结果4.3 结论本设计

45、是在分析了可编程控制器系统的工作原理和实现方式后,通过上网和去图书馆查找相关资料完成的。实践证明,用单片机仿真可编程序控制器是合理可行的。软、硬件部分均实现了预想的功能。将PLC的设计思想和实现原理运用于单片机系统的设计,缩短了系统的开发周期,降低了系统的造价,同时具有良好的经济性,实验室样板的造价大约在70至80元,远低于市场同类产品,具有很高的性能价格比,在一些要求不高,控制量不大的控制场合完全能够满足要求。5 仿真调试仿真调试是对整个设计的一种检验,由于时间关系,因此本设计仅采用了软件仿真来验证程序的可行性。5.1 软件仿真调试5.1.1 系统简介本设计是基于单片机的PLC设计与实现,即

46、利用单片机实现PLC的基本功能,由于PLC的输入输出信号由光耦隔离,因此其抗干扰性强,所以在本设计中8个输入,8个输出都由光耦将其与单片机隔离开,而且,为了使仿真效果更加明显,特地在输出端继电器之后接了电动机,当程序运行时,指定的灯会亮起,对应的电动机将会工作。另外,为了能更明显的区别PLC上电、编程、运行不同的状态,特地设置系统状态为上电时,红灯亮,液晶屏显示“Power On”,当系统状态为编程时,红灯和黄灯亮,液晶屏显示“Programming”,当系统为运行状态时,黄灯灭,绿灯亮起,红灯依旧亮着,此时液晶屏显示“Running”。图5-1 上电状态图5-2 编程状态图5-3 运行状态5.1.2 软件仿真根据PLC集中采样输入、扫描、集中输出的工作特点,用24V电源和地来模拟高低电平,高电平输入有效,低电平输入无效来控制电动机的转动,系统上电时,系统输出Y0Y7为0,电动机不工作;当状态开关置编程时,通过拨动输入的开光自由将其连接24V或地状态,此时系统将输入X0X7状态保存,输出Y0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁