




免费预览已结束,剩余7页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于at89s52单片机的小型plc的设计与实现the designation and accomplishment of the small plc which is based on at89s52 singlechip11摘 要可编程控制器(plc)以抗干扰性强、可靠性高和编程灵活等特点在工业上得到广泛应用。其缺点是价格比较昂贵。单片机也以其价格低廉,编程灵活,控制能力强等优点广泛应用于工业控制领域。把两者的优点结合起来,利用plc的编程思想和实现方法,结合单片机价格低,编程灵活的特点,设计了一种小型可编程控制器。本文介绍了基于at89s52单片机的小型plc的设计,阐述了软硬件结构和实现的基本方法。关键字 可编程序控制器(plc);单片机abstract programmable logic controller (plc) has been widely applied in industry because its strong antidisturbance, high reliability and flexible. its disadvantage is very expensive. but single chip microcomputer has been widely applied because its low price flexible and strong control ability.combining their advantage together, this paper designs a smart plc with using the method of plc programmer and advantage of single chip microcomputer. this paper introduce a hardware and software design method of smart plc based on mcs-8051。 keyword programmable logic controller (plc); single chip;1.引言可编程序控制器(plc)是按照成熟的继电器控制思想,结合计算机技术、自动化技术、通讯技术来实时控制的先进控制系统。plc广泛应用于工业生产,在工业控制领域占有重要地位,与机器人、cad/cam并称为当代工业自动化的三大支柱。可靠性高、接口类型丰富、能适应各种复杂的工业环境是plc的突出优点,同时plc采用面向过程的编程语言,编程简单直观,易学易懂,使用灵活方便,工程技术人员经过短期学习即能上手。但它也存在不少缺点:内存有限,编程优化调试困难;产品多为进口,价格昂贵;针对性比较差。特别是当环境条件尚佳,控制量不大,控制逻辑不太复杂,控制要求不高时,它的优势不能完全发挥出来,而且会提高系统的成本。鉴于此,根据可编程序控制器的实现思想和理念,设计小型的plc控制系统具有较大的实际意义。本文中笔者借鉴plc的实现思想和运行原理,利用性价比比较高的at89s52单片机设计了了一种小型plc。2.硬件设计 此次设计笔者在plc结构和实现思想的基础上进行了一些尝试,把系统程序和用户程序合并到一起,即不区别系统存储区和用户存储区,不设常驻cpu的系统程序,而是在上位机通过编程软件将用户程序和系统程序合并在一起。此方法简化了硬件结构了,整个硬件系统由单片机at89s52以及外围接口电路构成。其硬件结构图如图1所示:2.1 cpuplc常用的cpu有8位16位及32位通用微处理器和单片机。自从单片机问世以来,已有不少产品采用单片机制造可编程控制器,如常见的msc-8051系列单片机,就被一些公司用来制造小型可编程序控制器,特别是该系列的单片机具有较强的布尔处理机,更适合用来制造plc。此次采用的at89s52单片机即是msc-8051系列的衍生产品。2.2 i/o单元i/o接口的数量是衡量cpu性能的主要标准之一。本系统的设计定位是:应用于控制量较小,控制要求不高的控制场合的微型可编程控制器,故本系统设置了8个输入点和8个输出点,这种设计完全可以满足该工况的需要。plc工作于工业控制现场,而工业控制现场往往环境恶劣,存在着电磁、噪声、振动等各种干扰,因此plc要正常工作必须具备良好的抗干扰性能。工业现场中,电磁干扰是较为严重的,因此为了实现良好的抗干扰性能必须把i/o接口和cpu从物理上隔离开来,以防止干扰信号的串入。plc产品为了实现接口电路与cpu隔离通常采用光电耦合器隔离的方法。本设计已采用了这种方法,使用光电耦合器把输入输出接口同cpu隔离开来。光电隔离电路如图2所示:图1 硬件电路图at89s52p2.7 p2.0ledr1cr210k+5vsw 图1 光电隔离电路图2.3 电源部分为了取材方便节约成本,电源部分采用二手的计算机开关电源,取+5v供给单片机,+12v供给接口电路。为了避免干扰的串入,控制部分和接口电路分离供电,分别用两块电源供给,提高了抗干扰性能。3.软件设计软件系统的设计思想是:编程软件将编制的助记符指令翻译为mcs-8051的汇编语言,用户只需通过文本编辑软件建立助记符程序源文件并存为.plc格式,即可直接运行翻译程序进行翻译,生成.asm格式的文件,再通过汇编器的编译后生成目标码.hex文件,最后装入单片机。3.1系统运行程序依照plc循环扫描、集中采集输入、集中输出的设计思想,设计了系统运行程序。由于单片机并行口在上电复位后都为高电平,而输出设计为高电平有效,因而在程序运行一开始首先向输出口p1写“1”,将输出口电平拉低。而后调用mov 20h,#00h将输入映像区20h清空,随后进入一个“读输入逻辑运算写输出”循环周期。在每个循环的开始调用mov p2,#0ffh 和mov 20h,p2两条指令读取输入口的状态,由于系统逻辑运算部分设计为高电平有效,而输入状态扫描设计为低电平有效,所以当我们采集输入点信息并读入输入映像区后,首先要将输入映像区的值全部取反,再进行逻辑运算。逻辑与运算完毕后将进入写输出操作,由于在翻译逻辑运算的同时已经将输出量写到了输出映像区24h的对应位,因而在循环末尾只需调用mov p1,24h将输出缓冲区全部写到引脚即可。3.2 翻译程序设计软件设计的思路是设计翻译程序将助记符程序.plc翻译成为汇编语言程序.asm。通过研究我们不难发现plc助记符程序和mcs-51汇编语言存在着一定的对应关系,我们可以利用这一对应关系进行翻译。 具体方法是:先确定plc助记符指令语句与汇编语句组的队医关系,翻译时派发地址即可。plc助记符指令与mcs-51汇编指令对应表如表3所示:整个翻译程序共分为四个模块:文件扫描、错误检查、逻辑翻译、结果输出。逻辑翻译模块式翻译程序的核心。翻译是通过i/o映像区地址表的建立,操作数字段操作数类型与标号的分离,操作码字段翻译,i/o点对应的位地址的确定等几个阶段完成的。翻译是通过函数interpreter()的调用实现的。plc助记符程序mcs-51汇编语言-ldmov c , bitldnotmov c , bit cpl cororl c , bitornotorl c , /bitandanl c , bitandnotanl c,/bitorldorl c , 22h.0andldanl c , 22h.0outmov 24h.x , c表1 plc助记符指令与mcs-51汇编指令对应表(1)i/o映像区地址表的建立输入输出映像区地址表中包含了目标程序中全部可用的输入输出点的位地址。首先建立输入映像区地址表和输出映像区地址表,表结构定义如下:typedef struct ibitadress char *b; int iid; iadress;/*输入映像区定义*/字符指针分别指向输入缓冲区20h和输出缓冲区24h,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)”。 在翻译的时候我们通过源文件链表节点中的i/o点类型来决定从那个映像表中取用地址,再结合输入点号最终唯一确定一个位地址作为程序地址。(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点的标号。(3)操作码字段翻译当扫描到节点时,首先取出节点的操作码字断popcode 进行判别,通过判别可以确定最终翻译生成的汇编代码的操作码字断和操作数字段中的某一个,表示位地址的操作码字段,须通过分离后的poprand_2和poprand_1共同确定。在生成目标程序的操作数字段的时候,逻辑量的暂存选用了程序状态字psw的最高位cy,这是由位寻址指令的特点决定的。逻辑节点组暂存选用了位地址22h.0。源文件操作码字段popcode 的翻译分以下三种情况:1)目标代码地址固定的语句的翻译orld 0. 译为 orl c,22h.0andld 0. 译为 anl c,22h.0这类指令中的位地址是不变的,因而翻译是固定的,表示将组节点并联时的中间结果存入固定的暂存区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 22h.0,c mov c,i1 两句需要指出的是在进行判断的时候需要先判断条件(ldfalg=1)再判断条件(ldfalg=0),否则可能漏掉需要暂存的中间点。当遇到out指令时,把ldflag清零,因为out表示一个逻辑回路的结束(4)i/o点对应的位地址的确定经过对源文件操作码字段的分析翻译后,少量源程序的语句已经被完整的翻译出来,这些语句涉及的位置都是固定地址。多数已经得到了目标程序也就汇编代码的操作码字段和一个操作数字段, 剩下一个位地址字段等待确定。确定了位地址以后,整个程序的翻译也就都完成了。这是翻译中最关键的一步。这里就用到了前面建立的i/o映像区地址表,和分离源文件操作数字段poprand的得到的i/o点标号poprand_1。确定位地址的方法是首先分析分离得到的poprand_0,若poprand_0为”i”则查找输入映像区,这时再用变量poprand_1和输入映像区地址表的iid字段匹配,匹配成功则取出iid对应的位地址,这样就完成了位地址的确定。系统程序分别在逻辑翻译之前和之后导入到输出链表,最后输出的就是具备了完整控制功能的程序。通过后接汇编编译器翻译为.hex文件,用下载器下载到单片机即可。翻译软件部分运行图片如图4、5、6、7所示。图4 主程序界面图5 读入plc源程序图6 错误检查图7 翻译结果4.结论本设计是在分析可编程控制系统的工作原理和实现思想后,通过查阅相关资料完成的。实践证明,用单片机仿真可编程序控制器是合理可行的。软、硬件部分均实现了预想的功能。将plc的设计实现思想用于单片机系统的设计,降低了系统造价,缩短了开发周期,并具有良好的经济性,实验室样板的造价大约在70至80元,远低于市场同类产品,具有很高的性能价格比,在一些要求不高,控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人力资源管理师考试重点知识梳理
- 2025年公办中小学编制教师招聘生物模拟试卷及答案解析
- 2025年核试验反应堆及其配套产品合作协议书
- 2025年陶瓷过滤器、过滤管合作协议书
- 2025年参数测试仪器项目合作计划书
- 2025年形状记忆合金项目合作计划书
- 2025年自动化生产线成套装备项目合作计划书
- 期末测试(含答案)2025-2026学年人教版四年级数学上册
- 2025年中低压电缆连接件项目建议书
- 贵州省黔西南布依族苗族自治州兴义市2024-2025学年五年级下学期期末数学试题
- 执业兽医机构聘用证明或服务协议
- 身体尺(课件)二年级上册数学人教版
- 化验室检验和试验管理制度
- 欠款转为借款合同
- 公路隧道建设施工技术规范学习考试题库(400道)
- 严重创伤重症监护
- 人教版六年级语文上册生字表(带拼音词组)-2023修改整理
- 初中生自我介绍范文给老师
- 北京市建筑施工作业人员安全生产知识教育培训考核试卷ABCDE
- GB/T 14048.7-2016低压开关设备和控制设备第7-1部分:辅助器件铜导体的接线端子排
- 议论文如何议论-使素材紧扣中心论点的方法
评论
0/150
提交评论