在工控行业混迹了十多年,一直做与PLC相关的项目,就把自己的一些经验做个总结,由于水平有限,有不足之处还望各位多多指教。
我刚接触PLC的时候是拿着一本廖常初老师的关于S7-200的教材入的门,廖老师的书里讲的步进编程的思想对我之后的PLC编程影响很大,这个思想的好处就是一步一步的执行,当进入下一步的时候同时退出上一步,在程序中只有一个活动步,使程序逻辑很清晰,缩小了问题出现的范围,而且在编程之前先画出顺序功能图,如果顺序功能图画的完整,按照功能图做出的程序基本上就没啥问题了。不论大小项目最好画个顺序流程图出来,养成好的习惯能达到事半功倍的效果。以下曾经做过的一个顺序流程图。
这个顺序功能图虽然花了不少时间,当时工期紧半自动都没试,直接投的自动,管道内可是焦炉煤气,同一根管道又进煤气又进空气,不停的切换,真是捏了一把汗,还好程序基本没啥问题。
做程序还要进行规划,将程序分成不同的控制单元,尽量减少单元之间的联系,举个简单的例子,项目中要用到罗茨风机,风机口有气动阀门,要求开风机的时候先开阀门,再起动风机,停止的时候要先停止风机后关闭阀门,我们可以将风机和阀门看做一个整体,将风机的起动和停止作为一个单元,别的程序段只负责起动和停止风机,不管风机起动和停止风机单元内部的逻辑关系。
作为一个合格的编程人员,程序和变量注释一定要写清楚,这是对编程人员最基本的要求,如果你还还在用绝对地址编程,那么需要想想自己是不是该换个工作了。
另外就是做程序不要怕复杂,不要觉得难就不做了,我们做自控的也算个技术活,用户很容易被忽悠,这是我搞工控这些年经常看到的事,用户提出了要求,只要在合理范围之内我们要尽量去满足,当你完成一次次的挑战之后,你会发现曾经的鸿沟不过是个小水渠,做程序就要自己给自己找困难,流行的一句话就是没有困难创造困难也要向前冲。
对以上我总结五点:
1、编程要有正确的方法,也可称为编程的指导方法。
2、养成画逻辑图的好习惯,画图的过程就是程序构思的过程。
3、规划程序结构,将程序规划成不同功能的小单元,减少不同单元之间的联系。
4、养成建立变量名、增加变量和程序段注释的习惯,一是为自己编程方便,二是为别人读你的程序时方便。
5、不断的挑战自己的极限在能够最大的进步,用户的苛刻要求总是成为你不断进步的推力。
今天就说这几条吧,这说不上是技巧,只是一个指导思想。如果有时间在讲解一下PLC编程的技巧。
楼主最近还看过
回复内容:
对: fayezh 回复内容:对: 鲜花属于牛粪 按绝对地址读写有很大的... 内容的回复!
你说的前半部分是对的,但是后半部分就不对了,拿西门的STEP7中的地址来说,I、Q、M、DB这些都是绝对地址,IB0.X,QB0.X,DB1.DBX1.0,M2.0同样都是绝对地址,符号地址就是用符号代替这些绝对地址,比如现在要控制一台变频电机的起停,我们要建几个变量,分别为远程\就地、运行、故障、驱动、起动、停止、频率反馈输入、频率设定输出,其中远程\就地、运行、故障为DI输入,驱动为DO输出,起动、停止为内部变量,用于触摸屏或上位计软件控制电机,频率反馈输入为AI输入,频率设定输出为AO输出。
开始分配地址:
变频电机位号:M101
用途 绝对地址 符号地址
远程\就地 I0.0 M101_Remote
运行 I0.1 M101_Run
故障 I0.2 M101_Fault
驱动 Q0.1 M101_Drive
起动 M0.0 M101_On
停止 M0.1 M101_Off
频率反馈输入 PIW256 M101_Hz_Feedback_In
频率设定输出 PQW256 M101_Hz_Set_Out
以上是一个电机控制的基本变量,绝对地址和符号地址写的很清楚,使用符号地址后,在STEP7编程环境下,可以查看符号地址的信息。在输入符号地址时常常不用全部输入,当如输入部分符号地址时,在输入的地方会智能的列出与输入部分相同的变量,这样可以很快的找到自己需要的变量。
绝对地址与符号地址的区别在于绝对地址是边用边定义,符号地址是先定义再使用。
回复本条
常用的PLC编程语言主要有梯形图(LAD)、功能块(FBD)、语句表(STL)、结构化文本(SCL),在自控行业这些年见到用的最多的还是梯形图,但是梯形图有一定的局限性,Siemens的STEP7中,梯形图不能完全转换成语句表,功能块语言见过德国佬用过,语句表在STEP7中是功能最全的,可以进行断点调试,语句表在做数据运算和变址寻址方面很有优势。结构化文本类似于高级语言的编程,但是不能混为一谈,毕竟PLC和计算机的执行机制不同,在西门子的博图中好像舍去了语句表,代替它的就是结构化文本,如通用的PLC编程软件Codesys也是主推结构化文本。PLC在不断的扩大自己的应用范围,从一开始的逻辑运算、再到工程控制逐渐有了DCS的功能,再到后来的数控系统,软PLC,但是PLC还是有它的应用局限性,比如PLC与工业相机的结合远不如工控机那般灵活,工控机可以轻松实现CCD函数库的调用,而PLC却不能够完成这样的工作,从siemens1500的几款PLC中我感觉到到他们在计算机高级语言在PLC应用中做了不少的工作,而结构化文本这种类似于计算机高级语言的编程语言在PLC语言与高级语言之间的桥梁作用就会更为显著,所以个人觉得结构化文本将来的应用应该会越来越广泛。
回复本条