PLC程序的经验设计 点击:3845 | 回复:51



天方夜谭之不在话下

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:44帖 | 326回
  • 年度积分:0
  • 历史总积分:5189
  • 注册:2006年1月04日
发表于:2008-03-04 12:24:00
楼主

1、PLC程序的经验设计法

在PLC发展的初期,沿用了设计继电器电路图的方法来设计梯形图程序,即在已有的些典型梯形图的基础上,根据被控对象对控制的要求,不断地修改和完善梯形图。有时需要多次反复地调试和修改梯形图,不断地增加中间编程元件和触点,最后才能得到一个较为满意的结果。这种方法没有普遍的规律可以遵循,设计所用的时间、设计的质量与编程者的经验有很大的关系,所以有人把这种设计方法称为经验设计法。它可以用于逻辑关系较简单的梯形图程序设计。

用经验设计法设计PLC程序时大致可以按下面几步来进行:分析控制要求、选择控制原则;设计主令元件和检测元件,确定输入输出设备;设计执行元件的控制程序;检查修改和完善程序。

2、经验设计法的特点

经验设计法对于一些比较简单程序设计是比较奏效的,可以收到快速、简单的效果。但是,由于这种方法主要是依靠设计人员的经验进行设计,所以对设计人员的要求也就比较高,特别是要求设计者有一定的实践经验,对工业控制系统和工业上常用的各种典型环节比较熟悉。经验设计法没有规律可遵循,具有很大的试探性和随意性,往往需经多次反复修改和完善才能符合设计要求,所以设计的结果往往不很规范,因人而异。

经验设计法一般适合于设计一些简单的梯形图程序或复杂系统的某一局部程序(如手动程序等)。如果用来设计复杂系统梯形图,存在以下问题:

  1).考虑不周、设计麻烦、设计周期长

  用经验设计法设计复杂系统的梯形图程序时,要用大量的中间元件来完成记忆、联锁、互锁等功能,由于需要考虑的因素很多,它们往往又交织在一起,分析起来非常困难,并且很容易遗漏一些问题。修改某一局部程序时,很可能会对系统其它部分程序产生意想不到的影响,往往花了很长时间,还得不到一个满意的结果。

  2).梯形图的可读性差、系统维护困难

用经验设计法设计的梯形图是按设计者的经验和习惯的思路进行设计。因此,即使是设计者的同行,要分析这种程序也非常困难,更不用说维修人员了,这给PLC系统的维护和改进带来许多困难。
 



wxzbj

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 362回
  • 年度积分:0
  • 历史总积分:549
  • 注册:2007年12月04日
发表于:2008-03-07 05:16:00
21楼
"线性化"编程;到了对程序的有了较高认识的时候,再试着采用"模块化"编程;等到"模块化"编程思维再提升到某个高度的时候,"结构化"编程的雏形也就产生了
很好的思路,需要大家努力

苦学

  • 精华:0帖
  • 求助:0帖
  • 帖子:28帖 | 1034回
  • 年度积分:2
  • 历史总积分:2430
  • 注册:2005年3月13日
发表于:2008-03-07 10:49:00
22楼
好好东西 学习

四川电工小吴

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 131回
  • 年度积分:0
  • 历史总积分:268
  • 注册:2007年5月23日
发表于:2008-03-07 18:22:00
23楼
好东西,学习了

jinniuhill

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 133回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2007年9月13日
发表于:2008-03-07 19:07:00
24楼
学习

不怕下雨的风

  • 精华:3帖
  • 求助:0帖
  • 帖子:68帖 | 337回
  • 年度积分:0
  • 历史总积分:936
  • 注册:2007年1月25日
发表于:2008-03-07 19:26:00
25楼
不错,是转载的吗

电笔

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 645回
  • 年度积分:0
  • 历史总积分:785
  • 注册:2005年4月02日
发表于:2008-03-07 19:48:00
26楼
学习.......

PLC_先生

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:1064
  • 注册:2004年3月31日
发表于:2008-03-07 20:09:00
27楼
呵呵,没有必要转载吧!我接触siemens PLC 也有12个年头了,也是从底层做起的普通技术人员。从学校毕业参加工作时,主要是从事电气、仪表、自动化设备的维护,踏踏实实摸了几年底层硬件电路;对基本的电气控制原理也就略知一二。后来逐渐涉及到PLC以及上位的HMI。12年的工作和学习也有了些这方面的积累,在这里看到有很多热爱PLC技术的人们,所以写了些自己对siemens PLC编程技术的一点体会,让那些热爱PLC技术的人们提供一点点参考和帮助。并把最近做的项目OB1的结构提供给大家参考;从而来说明“线性化”,“模块化”,“结构化”编程它们之间的联系和区别。我个人认为凡事还是从底层做起,不要发过自己还没有理解的东西。编程如做人,如果连人多做不好,那么也写不出高质量,优美的程序!!!!:)..................:)               ◎_◎   

tigermes

  • 精华:2帖
  • 求助:0帖
  • 帖子:14帖 | 83回
  • 年度积分:0
  • 历史总积分:132
  • 注册:2004年3月05日
发表于:2008-03-13 14:57:00
28楼
楼上的够抒情,有境界。

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 9回
  • 年度积分:0
  • 历史总积分:56
  • 注册:2008年2月25日
发表于:2008-03-13 15:56:00
29楼
收获良多,谢谢!!

无尽空虚

  • 精华:0帖
  • 求助:1帖
  • 帖子:6帖 | 233回
  • 年度积分:0
  • 历史总积分:313
  • 注册:2007年12月09日
发表于:2008-03-13 19:12:00
30楼
不错的设计建议,

电工小刘

  • 精华:2帖
  • 求助:0帖
  • 帖子:52帖 | 894回
  • 年度积分:0
  • 历史总积分:1222
  • 注册:2007年1月07日
发表于:2008-03-13 19:24:00
31楼
写的不错

suchang

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 41回
  • 年度积分:0
  • 历史总积分:105
  • 注册:2007年1月08日
发表于:2008-03-13 22:50:00
32楼
不错,学习

高渐飞

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 101回
  • 年度积分:0
  • 历史总积分:426
  • 注册:2002年4月07日
发表于:2008-03-19 16:02:00
33楼
对于你说的使用FC+共享DB的方式,几年前我也是一直这样用的,也如你说的,使用共享DB会节约一点内存,其节约上我个人认为主要体现在In/Out等参数不需要在共享DB上占用位置,至于你说的一些数据能被不同块使用,我想下面用到FB的地方数据是不需要共享的。但使用FB,我更认为是一种编程理念的问题,我们只针对最基本的控制单元使用FB,像一个电机,一个阀之内的,而你上面说到的譬如:2#球磨粉磨系统,可能会包含一系列控制对象,我们只在最基本的控制单元上使用FB,单元之上的层次使用FC,这样就可以把程序结构和硬件结构完全一对一的对应起来:
第一层:自动线层
第二层:控制柜群层
第三层:功能组层
第四层:设备层
仅需要在设备层使用FB,在它之上的层次则使用FC+共享DB,不同的层次使用不同的数据结构,同一层次使用相同的数据结构,理论上讲:FC+共享DB等效于FB+背景DB,但之上的层次为何使用FC+共享DB,这是从编程思想上考虑的,FB可以看成是黑匣子,我们只需要知道它的功能,不需要明白它里面的代码,所以它可以使用语句表或者SCl这种不易阅读的语言编写,对基本的设备控制单元,就可以这样编写,而FC是需要不同人员去理解的代码,所以最好使用梯形图/功能块图编程,可以这样理解,FB是最基本的执行单元,它直接对应现场的执行元件,而FC是把这些基本执行单元进行有效的连接从而实现复杂的工艺功能,而FC的结构层次直接与硬件结构层次对应,如果说把程序和硬件结构进行一对一的关联,我想我找到了这种方法。
    当然,FB是西门子独有的结构,在schneider的Unity中,我们采用的就是类似于FC+共享DB的方式,并不是说Untiy中的DFB没有它自己的内存空间,而是它自己的内存空间为动态内存,无法被HMI访问,所以采用共享存储空间,并传递至IN/OUT参数,但编写程序的方式仍旧类似于FB,所以说这是一种编程理念的问题。
   怎么样都能实现,但需要选择更为优雅和面向实际的程序。

PLC_先生

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:1064
  • 注册:2004年3月31日
发表于:2008-03-19 21:22:00
34楼
   楼上的这位兄弟呀!呵呵,不会吧!你这样会误导那些热爱PLC技术的人们哦!!!如果按照你说的“理念:最基本的控制单元使用FB,像一个电机,一个阀。。。。。。”。请问,如果一个大型的PLC程序种有300台这样的基本单元呢?再按照你的理念来“面向实际”,你仅仅在调用这些基本单元的FB时,你就耗费了300个背景DB,请问这样的程序优雅吗?还能说面向实际吗?
   还有你在选择编程语言时说:“最好使用梯形图/功能块图编程”!我个人认为,不要用“最好”这个词,用建议比较好些。因为不同的编程人员有不同的专业偏向,人们总是喜欢用自己熟悉的语言来编程。比如:熟悉电气硬件控制线路的人们,一般喜欢使用LAD(梯形图)来编程,这样他们看起来会感觉程序很直观;那些熟悉电子电路和逻辑控制的人们,一般喜欢使用FBD(功能块图)来编程,这样他们看起来会感觉逻辑性很强;那些熟悉汇编语言的人们,一般喜欢使用STL(语句表)来编程,他们会感觉执行效率高,能实现任何功能。siemens PLC编程,还可以通过其它语言编程,比如c语言、类似pascal语言等等来编程。所以我个人认为不同专业偏向的人们,采用自己最熟悉的语言来编程方向是对的,没有必要规定非要用某种语言。对于编程语言来说没有最好的,只有最适合的。siemens PLC编程语言适合很多种专业偏向的人们,这也是siemens PLC由狭隘变博大的一种思想体现。所以,上面那位兄弟,你不能再犯《瞎子摸象》的错误了,不要违背了siemens自由、博大的编程思想原则,看问题也要有一个高度,才能看清楚问题。
    我个人对编程的建议:凡事从简单的做起,先是"线性化"编程;到了对程序的有了较高认识的时候,再试着采用"模块化"编程;等到"模块化"编程思维再提升到某个高度的时候,"结构化"编程的雏形也就产生了。结构化编程:使用自己最熟悉的语言来开发各种基本单元,在这些基本单元或者说“模块”完全调试ok后,只要清楚它的输入和输出功能,可以把自己开发好的特定功能的“模块”放在自己创建的“程序库”里面。然后再用自己最熟悉的语言,配合良好的程序结构,在真正的用户应用、控制程序里面调用库里面的“模块”。其实在siemens S7-300/400 PLC里面,FC和FB已经没有上、下级之分,他们是平级的,可以相互调用,也就是在FB里面可以调用FC,在FC里面可以调用FB。已经比S5的功能强大了很多。 上面的这些文字希望能给那些热爱PLC技术的人们一点点参考。我还是那句话,冰冻三尺,非一日之寒!思路决定方向!因你博大的思想而深邃!希望能与大家共学、共勉、共进!! ^_^ ◎_◎

今夜无眠

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 132回
  • 年度积分:0
  • 历史总积分:318
  • 注册:2005年3月08日
发表于:2008-03-20 09:18:00
35楼
学习

高渐飞

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 101回
  • 年度积分:0
  • 历史总积分:426
  • 注册:2002年4月07日
发表于:2008-03-20 11:14:00
36楼
这有什么稀奇的,在我们的一个S7-400程序中就用到了260个背景DB,而你没有用个这种编程方式,就不要认为它是什么误导,我有个同事在六年前就创建了自己的一套类似于你上面所介绍的标准化编程,将编程时间由两个多月缩小到一个月内,将对编程人员的经验要求由三年以上降到两年以内,但其思想却只不过来自上世纪八十年代德国的大型自动线程序。
     有见识才会有眼界,有比较才会得出优劣,只用过一种比以前好的东西就不要去否认世界上有更好的东西。
    

高渐飞

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 101回
  • 年度积分:0
  • 历史总积分:426
  • 注册:2002年4月07日
发表于:2008-03-20 11:15:00
37楼
这有什么稀奇的,在我们的一个S7-400程序中就用到了260个背景DB,而你没有用个这种编程方式,就不要认为它是什么误导,我有个同事在六年前就创建了自己的一套类似于你上面所介绍的标准化编程,将编程时间由两个多月缩小到一个月内,将对编程人员的经验要求由三年以上降到两年以内,但其思想却只不过来自上世纪八十年代德国的大型自动线程序。
     有见识才会有眼界,有比较才会得出优劣,只用过一种比以前好的东西就不要去否认世界上有更好的东西。
    

PLC_先生

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:1064
  • 注册:2004年3月31日
发表于:2008-03-20 19:32:00
38楼
哈!果然这位兄弟你的做法和我预料的一样。你们这么浪费PLC DB块的资源也能算是好东西吗?也能称得上是优雅的程序???不要把观众们的大牙也笑掉啦!请问上面的这位兄弟,一个不能合理分配PLC内部资源的人,能写出优雅,高质量的程序出来吗?看来你们的这种编程思想还停留在模块化编程的境界哦,还无法领会和欣赏结构化编程的真真魅力!还需要磨练和提升。希望你有一天能编出一些真真优雅的,高质量的程序!

tigermes

  • 精华:2帖
  • 求助:0帖
  • 帖子:14帖 | 83回
  • 年度积分:0
  • 历史总积分:132
  • 注册:2004年3月05日
发表于:2008-03-24 09:49:00
39楼
..

yjd159

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 312回
  • 年度积分:0
  • 历史总积分:417
  • 注册:2007年3月03日
发表于:2008-03-24 10:02:00
40楼
恩。。。plc编程也只是在走高级语言的老路

再过一段时间就不是讨论结构化编程了


而是讨论面向对象型语言了-_-#

热门招聘
相关主题

官方公众号

智造工程师