如何提高PLC编程能力 点击:43248 | 回复: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分不嫌少!


楼主最近还看过



摇摆在线

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 39回
  • 年度积分:2
  • 历史总积分:63
  • 注册:2015年8月30日
发表于:2017-10-19 16:07:52
81楼

正在学习中谢谢楼主分享!!!

郭坚清

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 68回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2017年8月07日
发表于:2017-10-19 21:25:53
82楼

楼主大神,崇拜!!!我也好想成为大神这样的人,为别人答疑解惑。

郭坚清

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 68回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2017年8月07日
发表于:2017-10-19 21:37:21
83楼

大神,我是编程菜鸟。我们老总说学编程要用基本指令去完成程序,只有深入了才能试着用高级指令编程程序,这样对吗?


lairen

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 35回
  • 年度积分:0
  • 历史总积分:127
  • 注册:2016年1月06日
发表于:2017-10-20 01:28:37
84楼

刚刚入行的小白,感觉自己写程序就是一直在模仿别人没有自己的思路

angguangtao

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 104回
  • 年度积分:0
  • 历史总积分:146
  • 注册:2011年8月25日
发表于:2017-10-20 08:59:37
85楼

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

AncientSword

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

回复内容:

对:郭坚清 大神,我是编程菜鸟。我们老总说学编程要用基本指令去完成程序,只有深入了才能试着用高级指令编程程序,这样对吗?     内容的回复:

高级指令常常是由基本指令组成的,完成特定的功能,我的建议是在工期不紧张的情况下用高级指令,熟悉了高级指令的应用才能够读懂一些复杂的程序,提高的会更快。

不负卿泽

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2017年10月21日
发表于:2017-10-21 12:49:39
87楼

回复内容:

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

如果都学的不怎么样,怎么进入做项目啊?

AncientSword

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


回复内容:

对: 不负卿泽 回复内容:对:鲜花属于牛粪 很多人想学PLC却总是徘徊... 内容的回复!

在实践中学习有针对性,如果不做项目只是漫无目的学,而做项目则是用到那块学哪块,我都干了十来年了都觉得自己对PLC懂得只是皮毛。等你做完一个项目你就熟悉了做项目的套路,这是你在学习中学不到的。

dongmazhang

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 107回
  • 年度积分:0
  • 历史总积分:104
  • 注册:2017年5月05日
发表于:2017-10-23 10:13:06
89楼

说的真好,羡慕,鼓掌

gk2017

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 23回
  • 年度积分:0
  • 历史总积分:103
  • 注册:2017年8月08日
发表于:2017-10-23 10:25:27
90楼

不错,写的很好啊


antai186

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2017年9月22日
发表于:2017-10-24 08:49:05
91楼

厉害了给你点赞  

xuesong0607

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:61
  • 注册:2014年4月10日
发表于:2017-10-24 16:12:52
92楼

这个思想的好处就是一步一步的执行,当进入下一步的时候同时退出上一步,在程序中只有一个活动步,使程序逻辑很清晰,缩小了问题出现的范围,


土匪小弟

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 94回
  • 年度积分:0
  • 历史总积分:301
  • 注册:2016年12月19日
发表于:2017-10-24 17:45:24
93楼

初学者,学习了,流程图,模块化程序。

搁浅时光

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 52回
  • 年度积分:4
  • 历史总积分:179
  • 注册:2017年9月29日
发表于:2017-10-25 11:01:41
94楼

很好的文章,mark

xiaoma0421

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2017年10月28日
发表于:2017-10-28 23:18:59
95楼

恩,非常不错。

炼狱113

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 38回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2016年5月31日
发表于:2017-10-31 12:21:03
96楼

很有道理的~~~~感谢~

无语了

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 24回
  • 年度积分:0
  • 历史总积分:96
  • 注册:2017年4月25日
发表于:2017-10-31 14:50:14
97楼

楼主体会很深呀 ,赞同楼主的观点!!!

黄浦

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 47回
  • 年度积分:0
  • 历史总积分:104
  • 注册:2017年10月31日
发表于:2017-10-31 15:20:06
98楼

楼主好样的,小白受教了!!

七月过客

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 55回
  • 年度积分:0
  • 历史总积分:214
  • 注册:2014年7月21日
发表于:2017-10-31 17:09:44
99楼

第一行我们要做的工作就是比较变量是否有变化,我用伪指令来说明,IF(Alarm_Var>Alarm_Var_Temp) And (Alarm_Var<> Alarm_Var_Temp) Then Alertor=1 End IF,下一行 Alarm_Var_Temp=Alarm_Var,将Alarm_Var的值赋给Alarm_Var_Temp,使两者再次相等。,

没有懂,当A.>B,并且A<>B,返回1并结束?A<>B什么意思?怎么开出呢?

回复内容:

对: 鲜花属于牛粪 以上是我做程序的一段思路,有个很有用的技巧,就是利用数... 内容的回复!


自动化老菜头

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 94回
  • 年度积分:0
  • 历史总积分:104
  • 注册:2015年8月10日
发表于:2017-11-01 09:34:00
100楼

有没有技术大牛愿意加入我们的,专门做德国设备在中国的软件服务。PLC,NC。。840D 的机械手。


热门招聘
相关主题

官方公众号

智造工程师