积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 单片机 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
利用AT89C55单片机实现工业和教学使用的PLC系统
 
作者:王建明 刘丽君   来源:微计算机信息    点击数:124   更新时间:2008-7-14
您可以添加到网摘 让更多人关注此文章:

    摘要: 可编程逻辑控制器(PLC)广泛应用于众多领域,为了推广PLC技术,设计了一个基于AT89C55单片机的PLC模块,集成了多路开关量I/O及模拟量输入以及高速开关量输入,成功应用于工程项目中,并投入实验室使用。
关键词: 可编程逻辑控制器;单片机;开关量;模拟量;监控

随着高职教育的迅速发展,将PLC技术引进高职教学并作为一门较为重要的课程,在高职教育中已达成共识,是课程建设现代化的重要措施。本文在研究AT89C55单片机后,以该单片机为核心设计了一个综合PLC系统,集成了多路开关量I/O及模拟量输入,并可以通过RS232/RS485与上位机进行通讯,已经作为若干高校的实验设备使用,并且,在要求较高的工程项目中也得到了具体的应用。


 


1 PLC的硬件功能设计


该PLC的设计思想基于三菱PLC的操作语言,仿照三菱编程器的操作,利用AT89C55单片机作为主控芯片,辅以其它芯片完成相关功能,其逻辑图见图1所示。为了达到教学目的,在设计思路上和常规的PLC有几个不同点:一是为了使学生更多地接触不同的输出方式并进行相关的实验,设计了两种输出形式,即8路继电器输出和4路晶体管输出,而且,继电器输出的端子中有四路没有公共端子,三个端子完全引出,由学生自由组合,可扩大控制范围;二是在输入上,除了16路开关量输入外,还设计了2路模拟量输入和高速开关量计数器输入;三是源代码开放,工科院校自控和计算机专业都开设单片机课程,由于条件所限,学生将实践和学习相结合的机会并不多,鉴于这种情况,将源代码开放,学生可以学习、补充、修改程序,既完善了PLC程序,又锻炼了教师和学生。


在大部分PLC中,例如,三菱[1]、欧姆龙和西门子等,上述功能一般由独立的模块来实现。这里将各种功能集成到一个PLC模块中,可以降低实验设备的成本。在图1中,为增加学生对输出模块的认识,可控硅模块可以和继电器模块互换,结构只是一个可控硅光耦(例如MOC3023)驱动一个双向可控硅(例如BTA10-600)。


IC卡的目的是当学生使用编程器编程时,用来记录学生的程序,有利于程序的修改和调试以及教师评分,用于实际工程项目中的PLC省略此功能。串行通信接口支持RS232和RS485两种标准,拨码开关给出本机地址,使用RS485接口组成监控网络时使用。





2 单片机语言的选择及系统软件设计


一般说来,现在通用的单片机编程语言有汇编语言和C语言,C语言编程方便、易读,但需要占用较多的内存,从而导致执行速度变慢。PLC是以循环扫描程序行的方式来工作的,对实时性要求较高,一个扫描周期一般不大于20ms,这样,当程序较长时,速度就显得尤为重要了。因此,选择汇编语言作为PLC的系统设计语言。


由于PLC语言是面向用户的,可以支持的语言并不是单片机可识别的,而且要求可以由用户修改并下载到单片机的程序存储器中,因此需要一个译码模块,在执行中把每一行用户程序翻译成机器可识别的子程序或过程。具体实现的方法为:


用户程序4个字节为一帧:“XX XX XX XX”,其中第一字节为命令,例如,OR、 MOV、OUT等;第二字节为执行元件,例如,继电器、输入等;第三、四字节为相关数据,这与不同的命令内容相关,例如,“01 10 00 03”定义为“LD Y 03”,“00 XX XX XX”定义为“NOP”等。但是,数据区不足以表达数据,可以有后续数据,也是4字节为一帧,以FE为第一字节,例如,“FE XX XX XX”,这样,就将命令帧和数据帧区分了。用户程序下载到 EEROM(FM25640),由主程序依序读出,再交译码模块翻译后执行。


程序中较难实现的是继电器的上升沿或下降沿检测。在PLC语言中许多情况是要检测上升沿或下降沿的,有近千个继电器,在每个循环中对所有的继电器都进行检测记录,无论时间或记录位置(寄存器)都是难以实现的,故开辟了一个存储区,专门记录激活了(即使用中)的继电器状态,在程序运行前,先对继电器扫描,把激活的继电器依序登录,当程序运行到该继电器时就对该继电器进行当前状态同前一周期状态比较登记,当前一次状态与当前状态相反时便认为是上升沿(或下降沿)到达。


 


3 开关量I/O的软硬件设计


开关量I/O是PLC的重要内容,一般来说,为了提高抗干扰能力,输入与MCU之间是通过光耦隔离的,考虑到成本和尽量减少接口的占用,采用16选1模拟开关CD4067(U8),4条地址线用4个光耦521-1(U10-13)隔离。


由于受光耦响应速度和扫描周期的限制,不允许使用每个周期依序查询的办法,故在程序中设计了一毫秒定时(2)中断,每毫秒查询一个接口,同时将接口状态映射到BIT 30H-3FH,因此,只需要对BIT30H-3FH查询,便可知道接口状态。中断程序如下:


                 ORG 2BH


LJMP      INPUT      ;每毫秒中断一次


INPUT:      PUSH   PSW


                 PUSH   ACC


           PUSH   DPL


           PUSH   DPH


           MOV   C,     P1.4


           MOV   A,     25H


                 MOV   DPTR,  #INPUT1


                 RL    A


                 RL    A


                 JMP  @A+DPTR


INPUT1:    MOV   30H,     C


                 SJMP   INPUT2


                 MOV   31H,    C


                 SJMP   INPUT2


                 MOV   32H,    C


                 SJMP   INPUT2


                 MOV   33H,    C


                 SJMP   INPUT2


                 MOV   34H,    C


                 SJMP   INPUT2


                 MOV   35H,    C


                 SJMP   INPUT2


                 MOV   36H,    C


                 SJMP   INPUT2


                 MOV   37H,    C


                 SJMP   INPUT2


                 MOV   38H,    C


                 SJMP   INPUT2


                 MOV   39H,    C


                 SJMP   INPUT2


MOV   3AH,    C


                 SJMP   INPUT2


                 MOV   3BH,     C


                 SJMP   INPUT2


                 MOV   3CH,     C


                 SJMP   INPUT2


                 MOV   3DH,     C


                 SJMP   INPUT2


                 MOV   3EH,     C


                 SJMP   INPUT2


                 MOV   3FH,     C


INPUT2:    INC    25H


ANL    25H,   #0FH


           ANL    P1,    #0F0H   


           MOV   A,      25H     


           ORL    P1,     A


           POP    DPH


           POP    DPL


           POP    ACC


           POP    PSW


           RETI


首先保护PSW、ACC和DPTR,读入当前输入P1.4至C寄存器。25H是CD4067的地址映像,指向当前输入地址,将当前地址乘以4(跳转地址占4个字节),跳转到相应位置得到输入映像,指向下一个输入地址,然后,恢复被保护的寄存器,返回。程序代码长度为103个字节,执行所占用的时间为0.018毫秒,完全满足PLC的实时性要求。


输出分为两部分,8个继电器输出和4个晶体管输出,由于单片机上电时端口被置位,为了防止出现上电时误导通,故而选用PNP管8550作为继电器的驱动管,使得上电时晶体管处于截止状态。在软件上只要对相应端口复位,继电器动作。


 


4 PLC的测试与应用


利用文献[2]中的通用多功能计算机监控系统测试软件,在摄氏40℃以上的环境中对PLC进行测试,采用CRC校验,每4秒发送一个数据包,连续测试48小时,PLC都能够成功识别数据包,并返回正确的结果,完全能够满足实际的工程要求。


内蒙第一机械制造集团公司是国有特大型企业,生产军用装备。该公司的液压件打压试验台,就是采用该PLC进行监控的。全部试验过程通过PLC、数据采集卡、工控机等进行控制。试验过程及结果通过计算机显示屏随时监控,并通过打印机打印输出试验数据。


在北方奔驰重型车辆制造有限公司的发动机转速测量中,也使用了该PLC。这两个监控系统目前运行可靠。该PLC还批量投入实验室使用,在高级技工考试中也得到了成功的应用。


 


本文作者创新点


本文利用AT89C55单片机实现了工业和教学使用的PLC系统,系统稳定可靠,并用于实际的工业控制系统和教学设备中,对于替代昂贵的进口PLC和节省教育经费具有重要意义。


 


作者简介:王建明(1957-),男(汉族),内蒙古包头人,包头职业技术学院副院长,副教授,主要从事计算机监控技术的开发研究。E-mail: wjm7591@yahoo.com.cn


Biography: Wang Jianming, male, the Han nationality, born in 1957, deputy headmaster and associate professor of Baotou Vocational & Technical College. His main research field is the development of computer monitor system. E-mail: wjm7591@yahoo.com.cn

[1]



相关文章
· Microchip推出适用于8位、16位及32位PIC®单片机和...[87]
· 基于SPE61A单片机的非接触式高压验电器的开发[173]
· 多通道智能温湿度测试仪的研制[206]
· 多通道智能温湿度测试仪的研制[167]
· 51系列单片机输出PWM的两种方法[235]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM嵌入式系统基础教程(N

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
赛普拉斯为用于机器视觉与运动分析应用
赛普拉斯针对机器视觉与全息数据存储应
金融危机来袭 台湾LED产
半导体市场环境恶化 安森美
Vishay 的新型&nb
Intersil推出采用小尺寸QFN
富士通微电子携手西安电子科技大学成立
纤巧和高压的 LDO&nb
华为计划收购北电业务 华为
华为计划收购北电业务 华为
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
四折批发各种数码相机,摄相机等...
最低价销售各种品牌手机...
震撼出售各种品牌笔记本电脑等!...
IC design 的流程...
电子工程师,别拿一分钱不当回事...
新款安全多用途非接触式芯片(T...
关于ARM启动的一篇文章!...
Linux网络设备驱动编程...
linux文件系统基础知识...
求奇想达QXD-DM642开发...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网