历史上的今天
返回首页

历史上的今天

今天是:2025年01月19日(星期日)

正在发生

2021年01月19日 | 基于AT89C51单片机的微型PLC详解

2021-01-19 来源:elecfans

可编程控制器PC(Programmable Controller),为与个人计算机PC(Personal Computer)相区别,可简称为PLC。它是按照成熟而有效的继电控制概念和设计思想,用先进的单片机技术来实现I/O的实时检测和控制,可靠性高,编程简单、易学,因此,得到广泛应用。


将PLC技术引进电工学、电力拖动课程,是课程建设现代化的重要措施。在教学经费相对紧张的情况下,我们自己动手,以AT89C51单片机为核心,设计并研制了LD型微型PLC,应用于继电控制实验,取得了良好的效果。


用单片机构成的PLC,实际上就是一个单片机测控系统。用这样一个程序控制的计算机系统去执行继电控制的梯形图程序,由于继电控制梯形图中各被控电器之间是并行关系,而计算机程序控制中,各被控电器之间在时间上是串行关系,二者显然不协调。若简单地像一般单片机测控系统一样,对梯形图各程序行依次实时采集输入端子状态,进行处理后实时输出,是达不到控制目的的。为此,必须采用一次性采集全部输入端子状态,并将其存入输入缓冲区。然后,按梯形图程序行的逻辑关系,从输入缓冲区读取相应输入端子状态,处理后将待输出的结果存入输出缓冲区。最后,待梯形图程序行全部执行完毕,一次性将输出缓冲区的值输出到相应的输出端子,从而完成一个程序执行周期。如此往复,自动进行下一轮的采集输入端子状态……。这种工作方式即称为扫描方式,它将串行程序工作和电器并行工作两种关系协调了起来。另外,单片机执行一条指令的时间是μs级,执行一个扫描周期的时间为几ms乃至几十ms。相对于电器的动作时间而言,扫描周期是短暂的,可以认为在一个扫描周期内输入端子的状态是不变的,而对其状态变化的采集和处理也是实时的,从而满足了实时控制的要求。


系统硬件配置以AT89C51(以下简称51)单片机为核心,如图1所示。该单片机有4 KB闪存,不必扩展程序存储器,其4个I/O口共32个I/O引脚,都可供用户使用,其中P0.7~0.0,P2.4~2.0共13个脚经光耦隔离后连到相应的输入端子X07~X00,X14~X10。可以用行程开关、液位开关、霍耳开关和手动按钮等进行输入。开关接通时,相应引脚为"0",取反后存入输入缓冲区。

P1.7~1.0共8个引脚用于输出控制:P1.i为"0"时,相应的PNP管导通,继电器Ji线圈通电,其触点Y5i接通,可驱动220 V/3 A的负载。


为了与PC机进行通信,系统扩展了RS-232C接口电路。51单片机的RXD和TXD信号经RS-232C电平变换后接至9芯插座。由此可与PC机进行串行通信。一方面,在编程状态时,可接收PC机上梯形图汇编程序编译结果的OBJ指令代码,并存入程序存储器;另一方面,在运行状态时,可将I/O口的状态和处理结果实时地发送给上位机。


程序存储器选用有SPI接口的X25045芯片。这是带可编程看门狗和电源监控功能的E2PROM,有512字节,每字节可擦写10万次,数据可保存100年。上电时自动提供200 ms高电平复位脉冲;有三种可编程看门狗周期;电源欠压,VCC降到转折点时,自动提供复位脉冲。E2PROM采用三线总线的串行外设接口SPI,既节省了I/O口线和电路板空间,又降低了系统成本。因此,该芯片是性价比极好的组合芯片。


软件设计分为PC机梯形图汇编程序编译软件和51单片机软件两部分。前者用IBM-PC汇编语言编写,我们称之为PLC编译软件。本机中我们自己设计了一套TD型PLC的梯形图汇编语言指令系统,有LD/LDI、AN/ANI、OR/ORI、TM/TMI、CN/CNI、MA/MAI、OUT、JP/JE和END等16条基本指令和X00~07、X10~14、Y00~07、CN0~1、TM00~07、MA00~07、10~17等器件。用它们来描述继电器梯形图,即设计梯形图汇编程序。用全屏幕编辑软件将其输入到PC机,即建立了源程序文件。然后用PLC编译软件将其编译成PLC目标程序文件(OBJ文件),并经串行通信口发送到单片机,由单片机将其写入E2PROM。


51单片机软件由编程软件和运行软件组成。编程软件主要有串行通信和写E2PROM两个模块。此时,须将面版上的手动开关设置P2.7="0",单片机即处于编程状态。当P2.7="1"时,单片机即处于运行状态。运行状态的程序主要有:


(1)输入端子采集模块


该模块两次采集P0口和P1口状态,结果全同时为有效,即将其存入输入缓冲区,否则重新采集。用软件滤波的方法,提高了抗干扰能力。


(2)指令分析模块


该模块从000H地址开始,依次读取E2PROM中的字节内容,先读出操作码,对其分析后转向相应的处理程序;接着读操作数,供处理程序操作,从而完成一条梯形图汇编指令的执行。然后再读取下一条指令的操作码……。遇到OUT指令时,将待输出的数据存入相应的输出缓冲区。


(3)输出模块


当CPU从E2PROM中读到END指令的二进制代码时,表示一次扫描周期结束,即将输出缓冲区的内容一次性输出到P1口,从而完成输出端子的刷新。


该PLC的应用可以用水塔水位控制的例子来说明。


图2(a)是硬件接线图,SB1/SB2是启动/停止按钮;SAC是水池液位开关:水浸到时接通,无水时断开;SAH、SAL分别是水塔的高低液位开关;M是水泵电机。

图2(b)是继电器梯形图,图2(c)是继电器汇编程序,即TD型PLC源程序。其中y50是PLC输出端子,我们将它的软件触点y50作为水位上升或下降的标志:y50="0",表示电机已停,水位下降,此时SAL虽已接通,但电机不动作;y50="1",


推荐阅读

史海拾趣

强盛电子(AEC)公司的发展小趣事

随着环保意识的日益增强,AEC积极响应国家绿色发展的号召,将环保理念融入企业的日常运营中。公司投入大量资金进行环保技术的研发和应用,推动生产过程的绿色化、低碳化。同时,AEC还积极参与社会公益活动,为保护环境、促进可持续发展贡献了自己的力量。

意瑞(COSEMITECH)公司的发展小趣事

随着业务的不断发展和市场的不断扩大,意瑞半导体也积极寻求外部投资和战略合作。公司先后获得了得彼投资、架桥投资、深创投等机构超2亿元的股权投资,为公司的持续发展提供了有力的资金保障。此外,意瑞半导体还积极参与各种行业活动和展览,与业界同仁进行深入交流和合作,共同推动半导体行业的发展。

以上五个故事素材可以根据需要进一步扩展和细化,以形成完整的、具有吸引力的电子行业意瑞半导体公司的发展故事。

Agere System(LSI Logic)公司的发展小趣事

在保持核心技术优势的同时,意瑞半导体还不断扩大其产品线,涉足更多的领域,如物联网等。公司致力于提供从芯片设计到系统集成的一揽子解决方案,以满足不同客户的需求。此外,公司还积极申请专利和集成电路布图设计专有权,累计申请近20项专利发明和39项集成电路布图设计专有权,进一步巩固了其在行业中的技术领先地位。

ENERGIZER公司的发展小趣事

为了配合全球业务的发展,ENERGIZER在亚太地区设立了8个厂房和18个国家的办事处。其中,劲量(中国)有限公司于1992年开始进驻中国,并在1998年在天津设立了生产工厂。这一举措不仅促进了中国与国际间的技术交流与合作,还为中国的电池制造业带来了新的发展机遇。随着中国市场的不断扩大,ENERGIZER在中国的业务也逐渐壮大,成为了中国电池市场的重要参与者。

AMOTECH(阿莫泰克)公司的发展小趣事

随着全球电子市场的不断发展,AMOTECH开始将目光投向海外市场。2004年,公司在山东建立了第一家海外工厂——山东AMOTECH公司,专注于全球定位系统天线的生产。这一举措标志着AMOTECH正式进军中国市场,为后续在中国市场的深入发展打下了基础。此后,公司不断加大对中国市场的投入,2006年在青岛建立办公室,2008年更是在青岛建立了中国第二工厂,进一步巩固和扩大了在中国市场的份额。

辰颐电子公司的发展小趣事

随着公司业务的不断发展,辰颐电子开始积极拓展市场。他们通过参加各种行业展会、举办产品发布会等方式,加强与客户的沟通和交流,提升品牌知名度和影响力。同时,公司还注重线上线下的渠道建设,通过电商平台、实体店等多种方式,将产品推向更广阔的市场。这些努力使辰颐电子在市场中树立了良好的品牌形象和口碑。

问答坊 | AI 解惑

tms320f28027的烧写

首先感谢soso了 提供F2802x_CSP_RTM升级烧写插件 有这个就太简单了 找到28027例程,也就是下载2802X的库文件 这里面有个flash的例程,打开这个程序,把那个Example_2802xFlash.c    Remove掉 加上自己主程序例如Example_2802xGpioT ...…

查看全部问答>

usb报文格式!!

请问   usb报文 格式  是如何的???…

查看全部问答>

S3C2410的APB驱动。。。

有谁有,请共享下,可以发我邮箱。。zhaoyd422@sina.com。。。谢谢了。…

查看全部问答>

WinCE 6.0 Pocket PC 通信选择

开发环境:  VS 2005 C# WinCE PPC 6.0 问题:     现在开发的软件要和服务器通信(从数据库获取数据),目前我用的是webservice通信(网络连接是GPRS)。     现软件测试结果:GPRS+webserivce通信速度很慢,时 ...…

查看全部问答>

显摆!MSP430开发的无线抄表系统

    响应SOSO号召出来显摆下,这是2007年的一个项目的初期文档,项目采用MSP430F149作为主控,小区内通过Zigbee芯片完成组网,然后经GPRS进行数据远程传输,上位机完成数据的分析统计功能,已经有公司将项目中的产品推向市场。这次 ...…

查看全部问答>

求教 Timer_B捕获问题

我想利用定时器Timer_B捕获方波时间 ,现在程序中还有p1.3中断 但程序死机 ,将Timer_B中断封掉 程序正常 请问高手 问题在那里 程序如下 /********** TIMER_B 初始化 *********/ TBCTL = SHR_0+CNTL_0+TBSSEL_0+ID_1+MC_2+TBCLR+TBIE; ...…

查看全部问答>

分享一下自制的触摸摁键,有程序,有视频,有真相。

废话不多说,先上图诱惑下大家下 然后自拍了个视频,效果可能不是很好,不要介意哈~ $(\'flv_rZT\').innerHTML=(mobileplayer() ? \"\" : AC_FL_RunContent(\'width\', \'500\', \'height\', \'375\', \'allowNetworking\', \'internal\', \'allo ...…

查看全部问答>

NXP LPC1768宝马开发板第七章——RTC 万年历

第七章    宝马1768——RTC 万年历 开发环境:集成开发环境μVision4 IDE版本4.60.0.0主机系统:Microsoft Windows XP开发平台:旺宝NXP LPC1768开发板 7.1 RTC简述7.2 硬件描述7.3 程序说明7.4 实验现象 1、RTC简述:LPC1768时钟计 ...…

查看全部问答>

针对TMS320C6678的8核DSP芯片,image可执行映像文件发布时采用怎样的部署?

1. 针对TMS320C6678的8核DSP芯片,image可执行映像文件发布时采用怎样的部署? 是跟Linux一样,把bootloader、内核、上层应用程序分开来部署? 即先烧录bootloader,再烧录内核,在内核基础上,再部署上层应用程序? 还是跟vxworks一样,把bootloa ...…

查看全部问答>