PLC+单片机.pdf
- 文档编号:3218896
- 上传时间:2022-11-20
- 格式:PDF
- 页数:82
- 大小:2.31MB
PLC+单片机.pdf
《PLC+单片机.pdf》由会员分享,可在线阅读,更多相关《PLC+单片机.pdf(82页珍藏版)》请在冰豆网上搜索。
isibleontrolAN2103COPYRIGHT2008WWW.VISIBLECONTROL.COM1AN2103基于GUTTA一步一步实现一个最小PLC系统AN2103基于GUTTA一步一步实现一个最小PLC系统COPYRIGHT2008WWW.VISIBLECONTROL.COM2009/03/25写在前面的话.4为什么要做自己的PLC系统.4这里实现了什么样的PLC系统.4第1章前期准备.5电脑.5CPU-EC20(8051)仿真器.5安装8051的C编译器SDCC.6安装软件GUTTALadderEditor.6ISP下载软件STC-ISP.7第2章规划.7内存系统.7指令系统.8运行模式.10通讯系统.15第3章添加CPU类型.16配置类型(PlcType.XML).17配置变量系统(ManagerVar.XML).19配置指令集(ManagerFun.XML).22CPU类型的测试.22第4章完成仿真器固件.22熟悉我们的编译器.22编译单个文件.23IntelHex文件的对齐.23编译多个文件.23命令行参数.24变量空间分配的扩展.25基本定义.26硬件系统.30内存.30I/O操作.32闪存管理.36时钟节拍.40串口通讯.43软件系统.49通讯协议.49指令集支持.58运行系统.66isibleontrolAN2103COPYRIGHT2008WWW.VISIBLECONTROL.COM2第5章完成CPU类型的配置.72完成文件CompileInfor.XML.73.74.74.74完成文件swap_auto.h.76第6章综合调试.78编译系统固件.78下载系统固件.80最简单的程序.81逻辑指令的测试.81定时器指令的测试.81计数器指令的测试.82isibleontrolAN2103COPYRIGHT2008WWW.VISIBLECONTROL.COM3isibleontrolAN2103COPYRIGHT2008WWW.VISIBLECONTROL.COM4写在前面的话写在前面的话为什么要做自己的为什么要做自己的PLC系统系统实现一个自己的PLC其实不难(当然要实现一个功能全面的商业化的PLC还是有难度的),只要你懂C语言、掌握一种单片机的应用、熟悉基本的I/O电路、同时有这方面的兴趣(这个最关键)。
在您看完这篇文章后,就能具备一个大致的概念。
在您按照这篇文章一步一步动手实践后,相信您就知道怎么去实现自己的PLC系统了。
为什么要实现自己的PLC系统呢?
抛开商业意义不说,如果您对PLC不是很了解,那么实现一个自己的PLC系统,您对PLC的认识肯定就能上升一个层次。
如果您对单片机不是很了解,那么经过这个项目的训练,自己动手基于单片机实现了一个自己的PLC,恭喜你,你就已经是一个单片机熟手啦!
因为PLC的开发不是针对具体的应用,而是一个平台的规划和建设。
因此这个项目对单片机各个功能的挖掘也是最深入的。
哪怕仅仅只是本文介绍的这个最小PLC系统,就涉及到了单片机的在系统编程(ISP)、在应用编程(IAP)、部分编译、异步串口通讯、I2C通讯、FLASH读取等等技巧。
若您对单片机和PLC都不是太熟,建议您还是先打打基础吧,这篇文章可能暂时还不适合您。
知道怎么做和真正做好是两个概念。
不论是学习单片机还是学习PLC,自己动手实践,是最好的学习方法!
考虑到在工业控制领域中,目前51系列的8位单片机依然是最为大家所熟知的一款。
这里我们就以CPU-EC20(8051)仿真器为硬件基础,一步一步实现一个最小的PLC系统。
这里实现了什么样的这里实现了什么样的PLC系统系统从70年代第一台PLC到目前为止,出现过各种形式的PLC,实现方法也各不相同。
从规模来看,PLC一般按下面标准分类:
1.微型机:
控制点数一般在几点、十几点、几十点。
典型的代表是西门子的LOGO系列控制器、OMRON的ZEN系列控制器、斯耐德的ZelioLogic控制器。
这类PLC一般具有以下特点:
体积小、允许的IO电流很大(甚至达到8A)、自带液晶面板可以现场编程、价格便宜。
这类PLC主要设计目标就是替代旧式的继电器电路,因此这类PLC也叫做PLR(可编程继电器或智能继电器)。
2.小型机:
控制点数可达100多点。
典型的代表是西门子的S7-200系列控制器、OMRON的CPM2A、CP1H、CQM1H系列控制器、斯耐德的Twido系列控制器。
这种PLC应该也是目前使用最多,大家也最为熟悉的PLC。
3.大型机:
控制点数一般在1000点以上。
典型的代表是西门子的S7-400系列控制器、施耐德的Quantum系列PLC。
这类PLC可能更像计算机。
在抗干扰、启动速度上一般还不如小型机,但这种PLC一般有很强的数据处理能力、有丰富的通讯接口、自带冗余系统,一般作为大型项目的控制核心。
这部分就不多介绍了,因为目前我们不需要知道如何去采购PLC,我们是要自己来实现一个PLC!
从PLC开发人员来看,目前PLC的实现有下面几种形式:
1.解释型还是编译型。
isibleontrolAN2103COPYRIGHT2008WWW.VISIBLECONTROL.COM5这是从工作方式上来看的。
解释型PLC将程序分为解释系统和用户指令两个截然不同的部分。
解释系统类似于一个虚拟机,通过逐条翻译用户指令执行对应的操作。
用户指令仅仅是解释系统可以识别的数据,和处理器指令系统无关,可以自行定义。
编译型PLC不存在解释系统和用户指令的划分。
编译的结果就是处理器能够执行的二进制指令,而这些指令的执行能够实现梯形图的图形化逻辑。
解释系统比较灵活,但是效率不高,常在小型PLC中使用。
编译系统具有更高的定制能力,效率也很高,常在大型PLC中使用。
由于CPU-EC20(8051)所用的51单片机IAP12C5A60AD只有1280(1024+256)字节的RAM。
内存比较紧张,因此我们这个项目实现的是编译型PLC。
2.硬解码还是软解码?
这是从硬件角度来看的。
PLC最开始出现就是为了取代开关继电器电路。
由于那个年代通用处理器价格昂贵,PLC一般采用自己专用的位处理器。
位处理器设计上比较简单可靠,且能够和PLC指令表指令一一对应。
随着控制技术和芯片制造技术的发展,一方面控制系统希望PLC除了逻辑处理,还要有更强的数据处理能力,更强的通讯能力等。
另一方面,通用控制器处理器价格不断下降。
随着工艺的提升,处理器的价格除了由处理器的复杂程度(门电路的多少)来决定,更多的由处理器的使用量来决定(分摊了处理器的研发成本)。
不少PLC制造商不再单独的为自己的PLC开发处理器,而是采用通用的处理器。
那么对于PLC特殊的逻辑指令,必须采用软解码的方式来实现。
不容置疑,我们这里使用单片机来开发PLC,也就是所谓的软解码。
3.扫描指图还是扫描指令?
这是从最小的执行单元来看的。
扫描图指PLC直接分析梯形图上的能流来进行逻辑运算。
扫描指令需要软件先将梯形图转换成等效的指令表,然后一条一条执行指令表完成梯形图的逻辑。
扫描图更加灵活,图上的元件可以任意放置,同时比较容易实现运行中编程。
扫描指令对梯形图上的元件放置有一定的要求,不过效率较高。
由于目前我们需要借助软件GUTTALadderEditor来实现梯形图的编辑(当然读者有精力的话也可以自己开发一个),而这个软件是只支持扫描指令的,故我们的目标PLC采用扫描指令的工作方式。
第第1章章前期准备前期准备正所谓工欲善其事,必先利其器。
这里把我们将来肯定需要用到工具介绍一下:
电脑电脑配置要求不高(独立或者集显均可),新旧不限,但是必须能跑WindowsXP或者更高版本。
因为GUTTALadderEditor这个软件暂时还没有Windows以外操作系统的版本。
串口不是必需的(CPU-EC20(8051)自带USB到COM的转换器),当然有是最好的,原生的东西毕竟最稳定可靠。
CPU-EC20(8051)仿真器仿真器它实际上是51单片机学习和PLC学习二合一的仿真器。
使用自带固件的时候,它就是isibleontrolAN2103COPYRIGHT2008WWW.VISIBLECONTROL.COM6一台PLC,可以用来验证读者编写的PLC程序。
若不使用自带固件,它也可用于51单片机的开发。
由于我们这里是自己来实现一个PLC,因此把它当作51单片机学习仿真器来使用,即不用它的自带固件,而是自己来实现一个这样的固件。
建议读者使用这个仿真器,否则硬件上的不一致会造成一些软件资源不可用。
购买办法可以访问我的网站(http:
/51开发板,并对自己做好移植有信心的话,也可以不必重复购买。
需要注意的是,由于51处理器型号上的不一致,您需要确认您的51单片机是否支持至少1024字节的扩展RAM(片内或片外都可),是否支持在应用中编程(IAP)。
因为本项目采用部分编译的形式,IAP是必需的。
安装安装8051的的C编译器编译器SDCCSDCC是一款目标设备可变、优化的ANSIC编译器。
目前支持Intel8051、Maxim80DS390、ZilogZ80、Motorola68HC08。
SDCC是自由开放源码软件,遵循GPL协议。
SDCC的主页:
http:
/为什么是SDCC而不是KEIL?
虽然从各种途径获得的信息是,KEIL的编译效率要比SDCC高(感觉上确实如此),但KEIL是商业软件。
由于我们实现的是编译型PLC,在进行发布时,必然需要将编译器嵌入软件GUTTALadderEditor中(软件提供了开放接口)。
然而未经许可将一款商业软件的二进制文件作为自己的产品发布是不妥的。
另外在我看来,SDCC简单却实用(该有的功能都有,暂时用不到的功能都没有),非常利于学习单片机。
还有一种可行的办法就是,因为我们是采用的部分编译的PLC实现,可以先用KEIL来编译PLC的系统固件,这部分写入单片机FLASH后保持不变,然后用SDCC来编译用户逻辑部分,SDCC随GUTTALadderEditor软件一起发布。
由于本文档介绍的项目主要是以教学为目的,对效率的要求并不是特别苛刻,为了方便起见,这里不论是PLC系统固件,还是PLC用户逻辑部分,统一采用SDCC做为C编译器。
安装软件安装软件GUTTALadderEditor这是一款用户可配置的PLC梯形图编辑环境。
在我们这个项目看来,它就完成了一件事:
读取您事先定义好的内存区域和指令集,提供一个梯形图编辑环境。
在用户完成梯形图编辑后,将梯形图转化成指令表指令的形式传递给单片机PLC系统。
在软件中,窗口框架的设计是比较繁琐的。
所幸的是,这些脏活累活都已经由GUTTALadderEditor完成了。
并且GUTTALadderEditor在设计之初就充分考虑到了PLC类型的扩展。
绝大部分和PLC相关的定义都以XML文件的形式存在,以方便您添加PLC类型(XML文件格式可能对没有接触过软件开发的人来说会比较陌生,其实它很简单,就是用文本纪录一些信息而已,可以用Windows自带的记事本打开和编辑)。
GUTTALadderEditor的主页:
http:
/LadderEditor的下载地址:
http:
/AN2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PLC 单片机