历史上的今天
返回首页

历史上的今天

今天是:2025年03月11日(星期二)

正在发生

2018年03月11日 | 电工学PLC编程入门基础学习心得

2018-03-11 来源:互联网

十年前,刚开始使用PLC时,也是一头雾水。仗着自己对硬件、工程知识的熟悉,和对组态软件的粗浅了解,硬着头皮接下了任务。当时已经来不及接受培训,相关资料极其缺乏,仅有的参考资料是一本英文的S7-200手册,以及西门子网站上找到的一些全西文的示例,总算在三个月内完成了系统的构建、软件的编写工作。


期间走弯路、出故障是家常便饭,经常搞得我茶饭不思,而且还由于操作不慎烧毁过一台PLC。所以我非常理解那些刚入门的网友两手抓瞎的感觉。


在此,粗略的总结一下自己的学习之路,供网友们参考。


1、编程需要坚强的毅力和足够的耐心


人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。毕竟编程工作是对人的毅力和耐心的挑战。我所在实验室中,很多学生看到我编程序就会惊讶于我面对这一堆堆符号所表现出的专注。


其实,这是兴趣使然。兴趣使我具备了足够的毅力和耐心。经过无数次失败后,当看到一个个符号按我的思路整齐的排列,PLC按我的要求有条不紊的运行时,兴趣得到了极大的满足,如同打通了一个游戏的关口。所以,我告诉这些学生:你们看到的是一堆枯燥怪异的符号,我看到的却是一群热情奔放的舞者,而我则是她们的导演。


2、编程需要敢于实践的信心


只有不断地在PLC上运行这些指令,观察运行的结果,才能弄清PLC指令的作用。很多初学者对PLC一脸的迷茫,往往是出于一种畏惧,担心损坏设备。而这些畏惧是没有任何道理的。仔细的阅读手册是非常重要的,但是仅靠读书是成不了一个工程师的。更何况手册上的内容并非面面俱到。


我在接触到那些不熟悉的指令时,喜欢单独编一个小程序,让PLC运行。然后逐个修改条件,观察运行的结果(MicroWin为用户提供了非常好的监控手段),反过来再重新理解手册的描述,这样就可以非常直观的理解这些指令的作用和使用方法。


不必担心自己写的程序会有什么问题,会影响PLC的正常工作。程序有没有问题,只有让PLC运行了才能发现。而发现问题并解决问题就是对自己能力的提高。撇开硬件操作不谈,单就软件来说,我还真没有遇到过由于软件问题而损坏PLC的事。


在这里不必担心继电器电路接错线可能造成的后果。所以,大胆的实践是PLC编程的必由之路。


当然,大胆实践并不是野蛮操作,而是必须遵循必要的规范。还有一个要注意的,在程序未经可靠性证实之前,千万不要挂接负载,以免造成不必要的损失。数字量的输出有LED显示;而模拟量处理可以采用一些硬件或软件模拟手段来解决。


3、编程需要有缜密的逻辑思维


编程本身就是一种逻辑思维过程。在高级语言中,使用最多的是ifthenelse、select这些条件判别语句,这就是逻辑中的因果关系。PLC程序就是由这些因果关系组成的:判别条件是否成立,进而决定执行相应的指令。最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。


在PLC中,以虚拟触点代替了继电器的金属触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。即使引入了继电器电路难以胜任的数值处理过程,PLC从根本上还是在执行一个个因果关系。


所以,理顺对象的各个事件之间的逻辑关系,是编程之前必须精心做好的准备工作。我在接到一项任务后,第一件事就是整理出一份逻辑关系图,与用户反复商讨,取得用户的认可,然后才真正进入程序的编写过程。


4、不可或缺的相关知识


PLC的程序是直接作用于对象的具体工艺过程,那么对对象具体工艺过程的理解是非常重要的的。我在与用户的交流过程中,会用我所掌握的UnitOperaTIon的知识分析用户的工艺过程,协助用户整理过程控制中的各个逻辑关系,甚至包括各种仪表、硬件的配置。

这得益于我原本所学的专业。当然,不能要求所有搞PLC程序的工程师都有我这样的经历。但是有两门知识却是不可或缺的:一是过程仪表的硬件知识,包括传感器、变送器(二次仪表)和PLC本身,这是构建控制系统的基础;二是过程控制理论,包括各种控制模型的原理和应用,其中最重要的是二位调节和PID调节模型。


PID调节是目前用得最广泛的过程控制手段,且变化多端。学习PID最好的方法就是读书。几乎所有讲解过程控制的书籍都有关于PID的内容,多读基本相关的书籍对理解PID是很有益处的。我发现不少网友在进入PLC领域时,缺乏这些相关知识。这并不可怕;可怕的是当事者不能静下心来弥补知识的缺陷。


我们不要怪罪学校没有教授这些内容,而是要注重自己如何去学习这些知识。工作中遇到的许多问题是学校里没讲过的,这不能成为我们拒绝工作的理由,而应该以积极的态度去应对这些问题。


我的体会是,为了解决工作中的问题而学习的知识,比课堂上学的东西更容易记住。


5、养成良好的编程习惯


每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。一是理顺逻辑关系、时序关系,编制程序框图;二是合理分配主程序、子程序和中断程序;三是合理分配寄存器,编制寄存器符号表。


PLC编程更接近于单片机,或者说PLC就是模块化的单片机。因此PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,一定会出现不可预想的后果。编制寄存器符号表不仅可以避免上述问题(MicroWin会有问题提示),而且可以使程序具备更好的可读性。这和VB中定义变量有异曲同工之处。


VB编程中关注的是事件,不强调主程序和子程序的观念,因为VB主程序的工作是由PC的操作系统完成的。PLC则不然。


PLC程序是以主程序为主干的,CPU不断的循环执行主程序,只有触发条件成立时才会调用子程序或中断程序。即子程序和中断程序所执行的任务不是全时需要的。


如果把这些任务都放在主程序中会无端增加主程序的工作量,降低程序的效率。这点和单片机的编程思路是一致的。子程序的使用可以使整个程序的逻辑更清晰。而且子程序可以分开编写、调试,最后“安装”到主程序上。这样你可以一个一个解决问题。


PLC编程,无论是LAD,抑或STL,都不如VB那么直观、有趣,更不如CAD那么形象。但比单片机的汇编语言的可视性强多了。对于初学者,LAD(梯形图)的编程相对直观,更容易上手。


最后,PLC提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。


本文转载自「工业机器人」,搜索「indRobot」即可关注。

推荐阅读

史海拾趣

Greenray Industries Inc公司的发展小趣事

GreenTech自成立以来,便专注于绿色能源技术的研发。公司早期投入大量资源于太阳能光伏技术的研发,成功开发出高效能的太阳能电池板。这一技术不仅提高了能源转换效率,还显著降低了生产成本,使得太阳能发电更加普及和经济。随着技术的不断成熟,GreenTech的太阳能产品逐渐进入国际市场,为全球能源转型贡献了一份力量。

Horn公司的发展小趣事

面对电子行业日益复杂的加工需求和激烈的市场竞争,Horn公司不断进行自我调整和转型。公司加大了对自动化生产线的投入,提高了生产效率和产品质量。同时,Horn公司还加强了与下游客户的沟通与合作,深入了解市场需求变化,为客户提供更加个性化的解决方案。这些举措帮助Horn公司在电子行业中保持了竞争优势。

福建国光公司的发展小趣事

随着汽车、通用工程、液压/气动、珠宝和医疗设备等行业对高精度切削工具需求的增长,Horn公司不断加大研发投入。公司成功开发出超硬切削材料如单晶金刚石(MCD)、多晶金刚石(PCD)和立方氮化硼(PCBN),这些材料的应用极大地提高了切削效率和加工精度。Horn公司的技术创新不仅满足了市场对高质量刀具的需求,还推动了整个切削工具行业的进步。

EUCHNER公司的发展小趣事

EUCHNER公司的历史可追溯到1940年,由艾米·安士能先生创立的工程事务所。艾米·安士能先生是一位热衷于机械运动和系统工程领域的创新者。在1952年,他成功发明了世界上第一个组合行程开关,这一创新技术为公司的未来发展奠定了坚实的基础。1953年,EUCHNER公司正式成立,开始专注于机电控制产品的研究与开发。

Axiohm公司的发展小趣事

随着国内市场的饱和,Axiohm公司开始寻求国际化发展。公司制定了详细的国际化战略,先后在亚洲、欧洲和北美设立了分支机构和研发中心。通过与当地企业的合作,Axiohm成功打入多个国际市场,并根据不同地区的需求进行产品定制。这一战略不仅拓宽了公司的销售渠道,还提升了品牌知名度。

Brainboxes公司的发展小趣事

Brainboxes公司成立于1984年,总部位于英国利物浦市。创立之初,公司专注于数据和I/O连接产品的设计和制造。凭借对串行通信技术的深刻理解,Brainboxes迅速在行业内崭露头角。其早期产品,如串口服务器和适配器,因高度可配置和可靠的特性而受到市场的欢迎。随着业务的发展,公司逐渐扩大产品线,涵盖IO模块等多个领域。

问答坊 | AI 解惑

如何鉴别芯片真假,cecclab为你解答

怎么判定芯片的真伪? 概述: 通过化学腐蚀及物理显微观察、简单电性能等方法,来检验鉴定器件是否为原半导体厂商的器件。 检验的内容: A、货品外包装、湿度标示卡、器件日期批号等检查确认及记录 B、外观检测,器件的表面状况、印字标准、重 ...…

查看全部问答>

WINCE SDK平台改变后出现的问题!求助!

WINCE SDK平台改变后出现的问题: fatal error LNK1112: module machine type \'ARM\' conflicts with target machine type \'SH3\' 这要怎么解决啊???…

查看全部问答>

串口读取数据过滤

在用ddk做驱动时,在对 IRP_MJ_READ截获后 然后改变指向的buffer中的数据 最总发现用串口调试助手读取数据时并没有改变串口读到数据的内容, 请问应该怎样做能够从底层改变收到数据,最终使用串口调试助手时显示的是我修改的数据…

查看全部问答>

求驱动函数

菜鸟请高手指点 有三个设备A、B、C A是最底层,然后挂载B到A上面,也就是原来设备栈的顺序是 A--B (由底到顶) 现在我想在A,B的设备栈里面加入C,但是我不希望设备栈的顺序是 A--B--C(由底到顶) ,而是希望希望设备栈的顺序 是 A--C--B(由底到顶) ...…

查看全部问答>

SEFS安全透明加密内核

软件名称:SEFS安全透明加密内核 软件版本:1.0 建议分类:系统安全/文件加密 软件大小:635K 安装平台:Win2000/xp/2003 软件语言:简体中文/繁体中文/英文 软件授权:共享软件 软件主页:http://www.sefs.net 支持邮箱:admin@sefs.ne ...…

查看全部问答>

LPC2141的无刷直流电机控制系统设计

LPC2141的无刷直流电机控制系统设计 导读: 无刷直流电机是最常用的无刷电机。它易于驱动,速度可调且工作寿命长,适用于各类大小型工业应用,诸如小型马达的控制(如12 V直流无刷电机)。 关键字 LPC2141   ...…

查看全部问答>

怎样在vxworks设置网卡的混杂模式?

vxworks 下怎样将网卡设置为混杂模式vxworks 下怎样将网卡设置为混杂模式? 我想利用vxworks编程实现将网卡设置成混杂模式,希望高手帮助!…

查看全部问答>

vb上位机 51单片机下位机 编程

Visual Basic设计完成了上位机界面;同时利用51单片机作为下位机微处理器,采集无刷电机运行工作中的电压、电流和转速等基本参数,通过串行通讯口将数据上传至上位机系统中。上位机系统对下位机上传的数据加以分析计算,直观的绘制个参数的变化曲线 ...…

查看全部问答>

大电流可控硅 问题

请教大侠,大电流可控硅是否可以串联作为控制电源的开关?…

查看全部问答>

电子工程师(开发)

电子专业本科以上学历,长期(至少五年以上)从事电子产品开发,能独立设计单片机软件、硬件,能独立完成产品研发,拥有丰富的开发和工艺经验。待遇从优。 五年以下工作经验者勿投 工资:3000-8000元。 福州名品电子科技有限公司现位于福州市科 ...…

查看全部问答>