新手电气人入门第一课:如何提高PLC编程能力?不要怕不会和困难
在工控行业混迹了十多年,一直做与PLC相关的项目,就把自己的一些经验做个总结,由于水平有限,有不足之处还望各位多多指教。
我刚接触PLC的时候是拿着一本廖常初老师的关于S7-200的教材入的门,廖老师的书里讲的步进编程的思想对我之后的PLC编程影响很大,这个思想的好处就是一步一步的执行,当进入下一步的时候同时退出上一步,在程序中只有一个活动步,使程序逻辑很清晰,缩小了问题出现的范围,而且在编程之前先画出顺序功能图,如果顺序功能图画的完整,按照功能图做出的程序基本上就没啥问题了。不论大小项目最好画个顺序流程图出来,养成好的习惯能达到事半功倍的效果。 以下曾经做过的一个顺序流程图。
这个顺序功能图虽然花了不少时间,当时工期紧半自动都没试,直接投得自动,管道内可是焦炉煤气,同一根管道又进煤气又进空气,不停的切换,真是捏了一把汗,还好程序基本没啥问题。
做程序还要进行规划,将程序分成不同的控制单元,尽量减少单元之间的联系 。举个简单的例子,项目中要用到罗茨风机,风机口有气动阀门,要求开风机的时候先开阀门,再启动风机,停止的时候要先停止风机后关闭阀门,我们可以将风机和阀门看做一个整体,将风机的起动和停止作为一个单元,别的程序段只负责起动和停止风机,不管风机起动和停止风机单元内部的逻辑关系。
作为一个合格的编程人员,程序和变量注释一定要写清楚 ,这是对编程人员最基本的要求,如果你还在用绝对地址编程,那么需要想想自己是不是该换个工作了。
另外就是做程序不要怕复杂,不要觉得难就不做了 ,我们做自控的也算个技术活,用户很容易被忽悠,这是我搞工控这些年经常看到的事,用户提出了要求,只要在合理范围之内我们要尽量去满足,当你完成一次次的挑战之后,你会发现曾经的鸿沟不过是个小水渠,做程序就要自己给自己找困难,流行的一句话就是没有困难创造困难也要向前冲。
同时做编程要有创新,尽量不要去做重复性的工作,及时做同样的项目或设备,也要去尝试有没有更高效,更稳定的方法,将创新作为乐趣 ,原来100行的程序如果能用两三行去完成是不是很有成就感,将公司的各型号设备程序搞成一个通用程序,是不是很有挑战性。编程枯不枯燥在于你的态度,如果你认为就像搬砖一样,天天重复,那就枯燥,如果你觉得你每天都在创新,就不会觉得枯燥。
很多人想学PLC却总是徘徊在大门之外,其主要原因一是因为没有实践的机会,二是胆怯怕干不来。自己搞些电脑模拟,或是买个二手PLC自己研究,都不如一上来就开始做项目。虽然刚开始遇到的问题会比较多,但是只要坚持下来就算入门了,其实刚开始做的项目难度都不会太大,网络信息现在很发达,技术热线,供应商的售后支持都可以帮我们跨过这道坎,做工控往往是遇到了问题才去读书查资料,没有谁把PLC完全搞透了再去做项目。
对以上我总结五点:
1、编程要有正确的方法,也可称为编程的指导方法。
2、养成画逻辑图的好习惯,画图的过程就是程序构思的过程。
3、规划程序结构,将程序规划成不同功能的小单元,减少不同单元之间的联系。
4、养成建立变量名、增加变量和程序段注释的习惯,一是为自己编程方便,二是为别人读你的程序时方便。
5、不断地挑战自己的极限才能够最大的进步,用户的苛刻要求总是成为你不断进步的推力。
今天就说这几条吧,这说不上是技巧,只是一个指导思想。如果有时间在讲解一下PLC编程的技巧。
如何编写优质的PLCPAC程序?这份作业建议你抄一下
如何编写优质的PLC/PAC程序?首先来看看我们收集到从业者是怎么说的:
A:编程这个东西只可意味,不可言传。总体感觉开始偏向计算机语言编程的风格,有异曲同工之妙。从标准化到模块化,再到面对对象,编程风格不断变化。是因为控制复杂程度不断提前,项目越来越大,越需要清晰的思路。
B: 自动化控制要求从业人员,丰富的理论知识和实际维修经验。编程思维缜密是从日积月累中来,要多学人家的经验结合自己的实际情况,勤学苦练。要有锲而不舍的精神!向老师学习,希望多写更多好文章,让我们学到更多懂得更多。
C: plc编程不仅仅需要对工艺流程很了解,还需要很清晰的逻辑思维和结构思维,我很认同通用程序用标准化的编程语言,核心功能用特殊指令或封装成功能块,做到简洁明了又有一定的保密性
D: 写程序就应该有足够的词汇积累,能用指令处理就不要用技巧处理
E: 我经常就是先把这套设备得控制流程了解清楚,再根据客户需要的功能分步骤编写,手动,自动分开编写,自动相同的部分做在子程序里可以重复调用。调试有问题的时候找到对应动作的区域修改就行,不影响整个程序的其他动作。
F: plc编程不仅要对工艺流程、工艺要求有充份的了解,还要进行程序标准化;可编程控制器(PLC)技术广泛应用于各种工业控制领域,它具有流程控制、数据采集、设备控制与输出、工程报表、数据与曲线等输出强大功能.这些标准功能使用能做到标准化程序并封装成各功能块,这样就便于程序调用和调试,程序BUG会更少。
……
针对这个话题,我们邀请大神邓李老师来给大家谈谈他的总结。邓李老师是工业自动化专业,从事专业课教学十二年;后进入罗克韦尔自动化,任培训师和现场服务工程师十八年。具有丰富教学经验和现场工作经验,已出版专业书籍三本(《PAC编程基本教程》、《集成架构中型系统》、《ControlLogix系统实用手册》),在行业内颇有影响。满满都是干货,希望对大家有用。
毫无疑问,每一个编程的项目开发人员,都希望自己编出的是好程序,什么是好的程序?尽情地施展聪明才智,别出心裁,标新立异、奇思妙想、独树一帜、与众不同就是好的程序吗?我恐怕不能苟同。我认为好的程序应该具备如下几点:
严密性
逻辑严谨,执行准确,绝无疏漏,这点应该是共识,这个严密不仅有控制进程的严密,还有例程调用的严密,指令执行的严密。严密性跟编程之前的规划也是有关的,紧扣生产过程进程,分析控制对象的动作,仔细地规划项目的程序结构,安排执行的顺序,这都是保证严密的基础。
正确性
勿庸置疑的是控制逻辑处理的正确,针对控制对象的逻辑关系选对指令。正确地使用指令是非常重要的,什么情况该用什么指令,正确理解指令执行的过程和正确设置参数,给予输出指令的梯级条件是否正确,预扫描和后扫描的影响如何,这些都是需要考虑的,尽量避免指令或例程的陷阱。
对称性
现场很多控制对象的活动具有对称性,尤其是一些具有互锁关系的动作,对应编写的逻辑处理也应具有对称性,例如几个互锁关系的同类控制动作,除了梯级条件和数据状态不同,梯级的逻辑结构应该是一样的,尤其是规律性的交替执行。对称动作采用不对称的逻辑执行,本身的严密性就值得怀疑,对称也是判断编程严密性的一个准则。
规律性
控制过程的动作大都具有规律,基于分析控制过程的功能方框图,在编写的例程中要表现出这种规律,哪些是常规的主流执行动作,哪些是重复执行动作,哪些是条件式的调用动作,哪些是设备之间的约束关系,以及生产进程的显示,都要有脉络清晰明了的体现。
可读性
程序是写给别人看的,别人很容易读明白,自己以后也能很快读明白,当时的得意之作,不要过一阵连自己也读不懂了。思路要清晰,表达要清楚,这点可以参照写文章的心得,有中心、有层次、有重点、有排比、有修饰,规律和对称的编程自然是可读性强的。当然,每个梯级逻辑或操作数的文字说明是必不可少的,这将帮助我们理解过程处理和编程思想,说明有时比梯级逻辑本身更重要。
标准化
对待同一个需求控制的处理,可以用指令功能解决的,不要技巧编程去解决,因为指令功能是共性的,如何设置参数,如何运行指令,都有固定的模式,大家具有共识;编程技巧有时是很个性化的,即便构思非常精巧,但别人很难把握思路,特别是后期的维护人员不容易读懂程序。尤其PAC控制器更是提供了标准化编程的平台,即使是新手也能编写出规范的程序来。
以上几点,最能体现好程序的是标准化,只有标准化的编程最容易达到严密、正确、对称、规律、可读,标准化往往是长期经验积累的最终形式 ,可编程序控制器的发展历史,就是一个沿标准化方向发展的过程,直接用于编程的指令系统表现则尤为明显。
在PAC控制器系统中提供各种编程方式,更是多方地提供了标准化的编程平台,这对当今项目开发所追求的短工期、高效率、低成本的目标,具有十分重大的意义,并在实践中得到认可。
此外,标准化的编程还在项目开发者和现场维护人员之间达成了某些共识,使后者更容易解读程序和查找故障,这在生产实际中十分有效,尤其是某些行业,本来就有一些共同遵守的规则,更是要通过标准的程序来体现。
(图源:RA官网)
面对同一个需求,我们可以看到二种编程处理情况:
技巧处理 ,可能是非常精妙的技巧,让人拍案叫绝;也可能让人百思不得其解,经过解释才让人明白;或者广泛流传的一种技巧,让人们达到了共识,如自保持位逻辑的编程方法。不管是什么情况,技巧是个性化的处理,难以作为标准。
功能处理 ,根据指令的功能和固有的指令编程模式,让解读程序的人很快理解处理的目的和结果。这是通用的,所有的人都容易明白的,指令功能是共性化的处理,标准的做法,但是需要学习指令的运用方法。
编程的一般原则是,能用指令功能处理的,尽可能不要用技巧处理。
道理是显而易见的,只有共性的东西才是可以共识的,容易共用的。毕竟一个程序项目是大家共有的,具有从开发人员移交到维护人员的延续性,要让更多的人更容易参与项目。
我们学习编程,一定要研究指令的功能和相应的运用方法,用以编写标准的、易读的程序。所以,我们要对控制器指令系统中的每一条指令,给予充分了解,参数的含义、指令的动作、执行的条件,才能准确无误地使用指令。尽可能使用指令功能处理问题,尽量避免使用技巧编程处理。
此外,养成良好的编程习惯也是至关重要的 ,记住某些指令的使用惯例和典型处理,这是前辈经验流传,良好的编程习惯可以帮助你避免落入一些程序运行的陷阱,以免在调试系统时为某些逻辑处理结果感到困惑。良好的编程习惯可以让你对自己编写的程序具有自信,准确坚定地排除不可能情况,不会盲目质疑而耽误了调试的时间。良好的编程习惯是经历了考验的工作方式,保持它可以减少错误的产生,加快编程速度,提高工作效率。
图源:互联网
编程序就跟写文章一样,你既可以写成一篇随心所欲的散文,也可以写成一篇思维慎密的论文。读散文每个人都可以有不同的理解和感受,甚至得出不同的结论;论文却可以让人准确地理解作者所要表达的内容,其论点明确、逻辑清晰、层次分明,结构严谨,论述清楚。把程序编得像一篇论文,应该就是编写好的程序的基本要求吧。
编程序跟写文章有许多相似之处。
写文章 ,有中心思想,段落大意,在阐明一件事情时,你会围绕这件事情在一个文章段落里进行描述;编程序 ,有核心控制,运行进程,面对一个控制对象,在一段梯级逻辑中,编辑相关的逻辑关系和工作状态处理。写文章 ,你掌握的词汇越多,遣词造句的能力就越强,表述事情就越清晰准确;编程序 ,你对指令的功能理解得越清楚正确,运用指令的能力就越强,在不同情况下能准确地选择适合指令。写文章 ,描述相似事物类比的排比句,让人易读且更容易看清事物之间的联系,并有阅读美感;编程序 ,工控对象很多情况下也具有对称性,如果你编写的程序逻辑关系上是对称性的,同样有阅读美感,并让人感到逻辑上值得信赖。写文章 ,有开头和结尾,概述式的开头和总结式的结尾前后呼应;编程序 ,有初始化的处理和结束的处理,数据的进入和数据的送出信息流向清楚。写文章 ,时不时的引用成语熟句,言简意赅,耐人寻味;编程序 ,按需求引用专门的指令,调用特殊宏汇集,梯级简单,处理隐藏。在学习编程时,你不妨想象你在学习写文章,就像中小学时你的语文老师教给你的那样,先从造句开始,然后学习写段落,最后完成一篇文章,并在写作过程中积累词汇和学习表述,提高写作能力。我们的编程训练也应循序渐进,从基本的指令开始,编写简单的梯级逻辑,然后学习围绕一个控制对象编写一段梯级逻辑的处理,最后完成一个小的项目,并在编程过程中,熟悉指令和训练思维,提高编程能力。
本文由邓李老师为《工控百家谈》《工控参考》撰写,转载请联系我们授权。
相关问答
PLC程序结构怎么搭建,自动流程图怎么才能构思缜密没漏洞?
原图文请查看我头条号文章结合项目的实际情况,选用合适的程序设计结构,注意编程常用技巧,可以事半功倍。题图:西门子S7-1200PLC来源:EVERYPIXELPLC...过...
对机械电子很感兴趣,动手能力也还可以,手工做过航模,可以找个什么样的工作?
如果对你有帮助的话,可以点个关注每日更新机械设计实用知识教学在RoboMaster比赛中,我们发现参赛的机器人有各种各样的机械结构,像8个轮子的工程机器人哈尔...
学习编程,该不该从娃娃抓起呢?
感谢邀请回答问题!现在生活中一直有一个叫做少儿编程的,然后在“最强大脑”中也看到不少神童获得编程的一些奖项。他们都赢在起跑线上,年纪轻轻就获得了这...
前辈们,有人知道不,实用的PLC控制系统哪家专业,PLC控制系...
[回答]通过PLC控制系统16控制右气动系统14驱动焊枪15朝向工件G移动,摇动十字托板12对焊枪15的位置进行微调。通过PLC控制系统16控制电机6旋转,使得工件G旋...
有谁知道木柜的制作过程
第一个柜子,PLC配行线槽,总体还酸可以,但是有整个板子散热可能要差点,这应该就...1、起稿:构思确定后,起稿布局,对画面进行具体的描绘,画出黑白效果。修改部分...
大神赐教!液体灌装封口机具有哪些特点?十万火急!
[回答]灌装封尾机还可选用PLC控制,人机对换插口,其迥轮盘以凸轮轴驱动器,速率较快,精密度较高。液体灌装封口机原浆、油类灌装封口机的设计构思在市场需...
有没有谁给我推荐一下 姜堰励才中学短期班学全脑识字训练,...
[回答]脑开发可以提高孩子的记忆力、想象力、专注力、思维能力、创作力等等,让孩子学习效率更高,更轻松,学习成绩更好。姜堰有一家专门做右脑开发的叫光明...
土石分离机效果如何?
[回答]PLC智能操控系统,不但易上手,更加提高了原材料筛选的准确性,客户在操作屋内便可掌握设备运转状况,若发现异常状况也可及时提醒,防止造成更大的故障...
增值电信业务经营许可证有什么用
[回答]团队管理剖面什么是团队管理剖面传统的组织评估方法是以个人为单位的,而今,组织评估越来越倾向于以完成任务的整个团队为评估单元。查尔斯·J·马...
服装与服饰设计。?,服饰设计学校排名怎么样来扒一扒?
[回答]具有参加2020年全国普通高等学校招生考试所要求的资格,符合国家的体检要求。报考我校服装与服饰设计、服装与服饰设计(中外合作办学)(中日合作)、环...