基于AT89C55单片机的PLC研究

发布者:脑洞飞翔最新更新时间:2012-01-19 来源: 微计算机信息 关键字:可编程逻辑控制器  单片机  开关量  模拟量 手机看文章 扫描二维码
随时随地手机看文章

随着高职教育的迅速发展,将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] 沈世斌. 三菱PLC 与PC 机间的通讯应用[J], 微计算机信息, 2006,22(4-1):81-83.

[2] 王建明. 智能设备的通用测试.工业控制计算机, 2002, 15(12):10-12.

关键字:可编程逻辑控制器  单片机  开关量  模拟量 引用地址:基于AT89C55单片机的PLC研究

上一篇:PC机与多台单片机实时通信系统的设计与实现
下一篇:基于8250的多机通信设计

推荐阅读最新更新时间:2024-03-16 12:51

FIFO芯片和单片机实现的图像采集系统
引言 在单片机应用系统中,由于图像采集速度、程序存储器和数据存储器的寻址空间的限制,要完整存储30 fps、640×480像素大小的一幅图像是相当困难的。本文运用较高性能的16位飞思卡尔单片机在超高频的情况下直接采集图像,也只能采集到每行320个像素,丢失图像,无法获得一幅完整的图像。本文通过在图像采集过程中增加FIFO芯片AL422B较好地解决了这一问题,相对于采用昂贵的DSP而言,降低了图像采集系统的成本。 1 单目点光源测距原理 野外作业时,需要在运动中知道前方标杆和观察点之间的距离。本文将标杆制成等间距红外点光源标杆,满足了基于单帧静态图像的小孔成像原理测距模型要求,减少了图像处理量,提高了测量的实时性、全天候性。H
[单片机]
FIFO芯片和<font color='red'>单片机</font>实现的图像采集系统
ADuC845单片机和PTR2000的无线数据采集系统设计
引言 在工业控制领域,常常需要采集大量的现场数据,如电压、电流、温度、湿度、气压等,并将这些数据采集模块采集的数据传输到主机进行处理。由主机根据处理的结果,将控制信号传输给现场执行模块进行各种操作。而目前数据传输通常使用的是RS485或者是CAN等网络。这些网络均基于有线传输,有线传输方式存在布线困难、维护成本高等问题,而无线通信技术解决了这些问题,因此被广泛应用在很多场合。随着信息技术的高速发展,人们需要能够准确、快速和便携地获得大量数据,并将采集到的数据通过无线传输方式传给远端主控制室。无线传输具有一定的优势,成本相对低,并且传输中的干扰也较少,这也在一定程度上提高了传输的可靠性。本文将单片机技术与数据采集技术、无线传输技术
[单片机]
ADuC845<font color='red'>单片机</font>和PTR2000的无线数据采集系统设计
基于4位单片机的脂肪秤方案设计
脂肪秤又称健康秤,能测出不同时间人体的脂肪和水分等所占比例,从而反映出人体在不同时间的健康状况。由于测试人体电阻时,需要人体和测试电极直接接触,所以脂肪秤产品要有很强的抗ESD静电干扰性能,本文介绍基于4位单片机SH66P58的脂肪秤方案设计,并对量产设计可能发生的问题做了相关说明。 系统硬件设计 本方案选用中颖开发的4位单片机SH66P58作为主控芯片,实现控制和信号采集处理功能。SH66P58是一款CMOS 4位单片机,该器件集成了SH6610D CPU内核、RAM、ROM、定时器、LCD驱动器、I/O端口、16位Σ-ΔADC、升压及稳压电路、蜂鸣音发生器、PWM,而且内建PLL以及看门狗定时器,低电压复位和低电
[单片机]
基于4位<font color='red'>单片机</font>的脂肪秤方案设计
PLC概述之五:PLC分类
PLC(可编程逻辑控制器)可以根据其功能、结构、应用领域和IO点容量等方面进行分类,常见的分类方式包括以下几种: 1. 按照功能分类(低、中、高档): (1)基本型PLC:适用于简单的控制任务,如开关控制、顺序控制等。 (2)高性能型PLC:适用于复杂的控制任务,如运动控制、过程控制等。 2. 按照结构分类: (1)模块式PLC:由多个独立的模块组成,每个模块具有独立的输入输出接口和处理能力。 (2)整体式PLC:将所有的输入输出接口和处理器集成在一个芯片上。 3. 按照应用领域分类: (1)工业自动化PLC:广泛应用于各种工业自动化控制系统中,如机床、生产线、机器人等。 (2)楼宇自控PLC:用于楼宇自控系统中,如空调、照明、安
[嵌入式]
8位单片机加减乘法算法
;-------------------------------------------------------------------------------------- ;Function: F_Bcd2Binary ;Description: Convert OP4 mantissa(BCD) to OP1 mantissa(Binary) ;Input: OP4 and R_Op1Count ;Output: OP1 ;affect:OP2,R_RamTemp1 ;-------------------------------------------------------------------------------
[单片机]
基于C8051F060单片机的数字传感器系统硬件设计
随着科学技术的发展,智能控制技术开始在电子测试领域广泛地应用。在现代工业测控系统中,人们往往将各种传感器挂接在现场总线上,组成传感器网络系统,各种传感器设备分别作为其中的一个网络节点,通过现场总线实现节点与控制中心之间以及节点与节点之间的信息传输。通常,人们选用CAN总线将大部分传感器连接起来,因此,传感器也需相应地智能化并统一数据接口。本文基于C8051F060单片机设计一款带有CAN通信接口的温湿压数字传感器系统,该系统能对压力传感器输出的压力模拟信号进行信号调理和模数转换;能处理并传输温度、湿度和压力数据,搭建CAN总线传感器网络以实现数据的采集和通信。 数字传感器系统总体方案设计 根据数字传感器系统的任务和功能,系统工
[单片机]
基于C8051F060<font color='red'>单片机</font>的数字传感器系统硬件设计
单片机初学者更好学习单片机的建议
  1、单片机种类不要贪多   单片机生产厂家众多,种类繁多,例如PIC单片机就有多达500种型号!显然要把各种单片机都学会是不可能的,也是没有必要的。实际上一个人会1 2种单片机(例如STC、AVR、STM32等)就足够了。我们多年来做过100多个单片机项目,主要使用的不过就3种单片机。   对于初学者,建议就选一种单片机为主(当然,最基础的51单片机是必学的),把它学透、用精。即使以后需要用到其它种类的单片机,由于基础扎实很快也能学会,因为单片机功能毕竟都是大同小异的。至于选用哪种单片机,最好请教有经验的老师或工程师。   2、学的精比学的多好   有些学习板号称带有几G 几十G的 免费 学习资料,且不说这些海量资料是怎么
[单片机]
8位MCU如何升级至32位MCU
  目前的MCU市场分为三个部分, 8位、16位和32位内核(4位内核MCU现在已相当少用,故在本次比较中将其忽略)。对于这三个部分中的每一个,其规模大体相同。传统上8位内核占最大的市场份额。根据一些分析人士报告,可能32位内核市场占有率已经超过了8位内核。即使目前尚未超过,时间也不会太长。32位内核市场份额是迄今为止增长最快的。8位内核和16位内核仍在增长,但在速度方面远不如32位内核(8位内核的增长速度仍快于16位内核)   在很长的一段时间内, 很多人相信16位MCU可能会被8位MCU和32位MCU取代。目前的32位MCU器件采用最新技术制造(与8位内核和16为内核相比)。   MCU制造商能够使用这些最新的技术,使得3
[单片机]
8位<font color='red'>MCU</font>如何升级至32位<font color='red'>MCU</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved