如何提高PLC编程能力 点击:43319 | 回复:507



AncientSword

    
  • 精华:6帖
  • 求助:5帖
  • 帖子:162帖 | 802回
  • 年度积分:367
  • 历史总积分:12484
  • 注册:2006年10月16日
发表于:2017-09-24 22:33:13
楼主

在工控行业混迹了十多年,一直做与PLC相关的项目,就把自己的一些经验做个总结,由于水平有限,有不足之处还望各位多多指教。

我刚接触PLC的时候是拿着一本廖常初老师的关于S7-200的教材入的门,廖老师的书里讲的步进编程的思想对我之后的PLC编程影响很大,这个思想的好处就是一步一步的执行,当进入下一步的时候同时退出上一步,在程序中只有一个活动步,使程序逻辑很清晰,缩小了问题出现的范围,而且在编程之前先画出顺序功能图,如果顺序功能图画的完整,按照功能图做出的程序基本上就没啥问题了。不论大小项目最好画个顺序流程图出来,养成好的习惯能达到事半功倍的效果。以下曾经做过的一个顺序流程图。

    这个顺序功能图虽然花了不少时间,当时工期紧半自动都没试,直接投的自动,管道内可是焦炉煤气,同一根管道又进煤气又进空气,不停的切换,真是捏了一把汗,还好程序基本没啥问题。

    做程序还要进行规划,将程序分成不同的控制单元,尽量减少单元之间的联系,举个简单的例子,项目中要用到罗茨风机,风机口有气动阀门,要求开风机的时候先开阀门,再起动风机,停止的时候要先停止风机后关闭阀门,我们可以将风机和阀门看做一个整体,将风机的起动和停止作为一个单元,别的程序段只负责起动和停止风机,不管风机起动和停止风机单元内部的逻辑关系。

    作为一个合格的编程人员,程序和变量注释一定要写清楚,这是对编程人员最基本的要求,如果你还还在用绝对地址编程,那么需要想想自己是不是该换个工作了。

    另外就是做程序不要怕复杂,不要觉得难就不做了,我们做自控的也算个技术活,用户很容易被忽悠,这是我搞工控这些年经常看到的事,用户提出了要求,只要在合理范围之内我们要尽量去满足,当你完成一次次的挑战之后,你会发现曾经的鸿沟不过是个小水渠,做程序就要自己给自己找困难,流行的一句话就是没有困难创造困难也要向前冲。

对以上我总结五点:

1、编程要有正确的方法,也可称为编程的指导方法。

2、养成画逻辑图的好习惯,画图的过程就是程序构思的过程。

3、规划程序结构,将程序规划成不同功能的小单元,减少不同单元之间的联系。

4、养成建立变量名、增加变量和程序段注释的习惯,一是为自己编程方便,二是为别人读你的程序时方便。

5、不断的挑战自己的极限在能够最大的进步,用户的苛刻要求总是成为你不断进步的推力。

今天就说这几条吧,这说不上是技巧,只是一个指导思想。如果有时间在讲解一下PLC编程的技巧。

1分不嫌少!


楼主最近还看过



wangpengju

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 21回
  • 年度积分:0
  • 历史总积分:361
  • 注册:2017年9月28日
发表于:2017-09-28 14:06:16
21楼

多谢分享,小白拜读了。

wangpengju

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 21回
  • 年度积分:0
  • 历史总积分:361
  • 注册:2017年9月28日
发表于:2017-09-28 14:08:16
22楼


回复内容:

对: 鲜花属于牛粪 做编程要有创新,尽量不要去做重复性的工作,及时做同样的... 内容的回复!

非常有道理,虚心学习

研讨会宣传员_3259

  • [版主]
  • 精华:3帖
  • 求助:110帖
  • 帖子:1927帖 | 14403回
  • 年度积分:102
  • 历史总积分:64749
  • 注册:2020年3月27日
发表于:2017-09-28 16:36:28
23楼

流程图就是思路,没有思路就没办法干活儿。

yangfayi007

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 32回
  • 年度积分:0
  • 历史总积分:133
  • 注册:2011年4月20日
发表于:2017-09-28 17:57:16
24楼

不错哦,流程图,编程可以有

NJCYFJF

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 445回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2017-09-29 10:45:02
25楼

谢谢楼主分享编程心得,小白受教了

学境无涯

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:455
  • 注册:2017年5月11日
发表于:2017-09-30 02:58:46
26楼

回复内容:

对:谢谢你的爱1999 顺序流程图很重要,能让很多问题变的简单     内容的回复:

跟着大神学习,向大神的境界进发

诚123

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 62回
  • 年度积分:19
  • 历史总积分:450
  • 注册:2017年8月01日
发表于:2017-09-30 10:35:04
27楼

编程小白,受益匪浅!

yecao

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 254回
  • 年度积分:68
  • 历史总积分:5511
  • 注册:2003年8月07日
发表于:2017-09-30 16:31:22
28楼

思路清晰,编程事半功倍,给楼主点赞。

社会主义接班人

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2017年9月30日
发表于:2017-09-30 17:45:25
29楼

回复内容:

对:鲜花属于牛粪 很多人想学PLC却总是徘徊在大门之外,其主要原因一是因为没有实践的机会,二是胆怯怕干不来。自己搞 些 电脑模拟,或是买个二手PLC自己研究,都不如一上来就开始做项目。虽然刚开始遇到的问题会比较多,但是只要坚持下来就算入门了,其实刚开始做的项目难度都不会太大,网络信息现在很发达,技术热线,供应商的售后支持都可以帮我们跨过这道坎,做工控往往 是遇到了问题才去读书查资料,没有谁把PLC完全搞透了再去做项目。     内容的回复:

自动化大四一枚,请问师傅能给一些建议吗?在网上投了简历发现没人带新人,好迷茫

不错不错

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 30回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2017年9月26日
发表于:2017-09-30 20:59:40
30楼

都是大神 膜拜 一直也是在自学 不敢出手 也只是最基本的一些 哎 不知道该怎么办


电气打杂

  • 精华:0帖
  • 求助:5帖
  • 帖子:16帖 | 229回
  • 年度积分:686
  • 历史总积分:3431
  • 注册:2007年12月28日
发表于:2017-09-30 23:04:10
31楼


回复内容:

对: 我家小胡 楼主好帖,虽然内容不多,但是受益匪浅。其实我就是楼主提... 内容的回复!

依然还在用X1,X2,Y1,Y2这些绝对地址写程序,,,我是不是不适合潮流了~

电气打杂

  • 精华:0帖
  • 求助:5帖
  • 帖子:16帖 | 229回
  • 年度积分:686
  • 历史总积分:3431
  • 注册:2007年12月28日
发表于:2017-09-30 23:04:12
32楼


回复内容:

对: 我家小胡 楼主好帖,虽然内容不多,但是受益匪浅。其实我就是楼主提... 内容的回复!

依然还在用X1,X2,Y1,Y2这些绝对地址写程序,,,我是不是不适合潮流了~

gk2017

  • 精华:0帖
  • 求助:1帖
  • 帖子:15帖 | 113回
  • 年度积分:350
  • 历史总积分:6194
  • 注册:2017年9月20日
发表于:2017-10-01 18:45:24
33楼

谢谢大神分享经验 受教了

gk2017

  • 精华:0帖
  • 求助:1帖
  • 帖子:15帖 | 113回
  • 年度积分:350
  • 历史总积分:6194
  • 注册:2017年9月20日
发表于:2017-10-01 19:02:50
34楼

回复内容:

对:电气打杂 回复内容:对: 我家小胡 楼主好帖,虽然内容不多,但是受益匪浅。其实我就是楼主提... 内容的回复!依然还在用X1,X2,Y1,Y2这些绝对地址写程序,,,我是不是不适合潮流了~     内容的回复:

变量地址编程那是高手玩的 新手还没有那个能耐玩不转 我就见过别人的程序输入 输出都是位组合 没有X Y

sjklzn

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 14回
  • 年度积分:0
  • 历史总积分:74
  • 注册:2008年11月25日
发表于:2017-10-01 23:58:12
35楼

小白受教了

鲜花属于牛粪

  • 精华:6帖
  • 求助:5帖
  • 帖子:162帖 | 802回
  • 年度积分:367
  • 历史总积分:12484
  • 注册:2006年10月16日
发表于:2017-10-02 00:16:21
36楼

按绝对地址读写有很大的限制,写程序的时候要对着IO表,如果将变量表建好,变量代替绝对地址,在编程的时候直接输入变量就行了,而变量是自己安装一定的规律建的,很容易记。日系有些小型plc都没有变量寻址的功能,但是都在往着方面发展。像西门子新出的1500系列也取消了绝对地址,软件中的绝对地址只不过是软件声明的一片区域虚拟出来的,以后plc的寻址都会向变量寻址方面发展,变量代表的只是内存一个存储单元,没有什么v区、m区的区别,这样的好处就是可以动态管理内存,提高程序执行效率。

鲜花属于牛粪

  • 精华:6帖
  • 求助:5帖
  • 帖子:162帖 | 802回
  • 年度积分:367
  • 历史总积分:12484
  • 注册:2006年10月16日
发表于:2017-10-02 00:34:45
37楼

有时候做程序遇到需要一些重复执行的动作,比如说一个运动控制程序中,气爪要取两种料放在不同的工位上,这两次取料和放料时的动作都是重复的,取料的时候是气爪打开,下降,夹紧,上升几个动作,放料时是气爪下降,打开,上升几个动作,可以将取料和放料看做是一个单元,每次使用他们,就跳转到这个程序段去执行,这样程序就会简单很多,程序跳转指令可以跳过不满足条件的程序段,减少了程序扫描的时间,提高了运行的效率。

鲜花属于牛粪

  • 精华:6帖
  • 求助:5帖
  • 帖子:162帖 | 802回
  • 年度积分:367
  • 历史总积分:12484
  • 注册:2006年10月16日
发表于:2017-10-02 01:05:04
38楼

做程序要有清晰的思路,画出顺序流程图后,先将程序的功能先实现,先不说代码的利用率和执行效率,第一步先将整个流程写完整,之后查找漏缺的连锁条件,程序流程走通之后,开始优化程序,看那一部分代码比较相似,将这些比较相似的代码合并成一段,重复调用。

鲜花属于牛粪

  • 精华:6帖
  • 求助:5帖
  • 帖子:162帖 | 802回
  • 年度积分:367
  • 历史总积分:12484
  • 注册:2006年10月16日
发表于:2017-10-02 01:09:28
39楼

如果程序中有多个设备执行的步骤相同,只是其中的参数不同,比如有四个池子需要配药,每个池子的配药量不同,其它步骤都相同,就可以将池子的配药过程做成一个功能块(西门子plc中的叫法)或AOI文件(AB PLC中的叫法),将每个池子与配药相关的设备作为功能块的参数,比如配药时需要加药和水,通过液位控制加药量,那么新作的这个程序块应包括设定设定配药量,液位,进药阀门开关状态,打开、关闭控制 ,进水阀门开关状态,打开、关闭控制 。这样就将程序简化了很多,这就是参数化编程的思想。

我想好好学习

  • 精华:0帖
  • 求助:1帖
  • 帖子:24帖 | 418回
  • 年度积分:226
  • 历史总积分:1422
  • 注册:2014年1月08日
发表于:2017-10-02 10:01:42
40楼

这个必须要赞!!!!!!!!!!!!


热门招聘
相关主题

官方公众号

智造工程师