首页 上一页 1 2 3 下一页 尾页

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系统的维护和改进带来许多困难。
 



FF帆

  • 精华:17帖
  • 求助:0帖
  • 帖子:77帖 | 3116回
  • 年度积分:0
  • 历史总积分:7271
  • 注册:2005年11月04日
发表于:2008-03-04 13:02:00
1楼
不错的设计建议,

xuyq71

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 1138回
  • 年度积分:0
  • 历史总积分:1520
  • 注册:2006年9月27日
发表于:2008-03-04 13:26:00
2楼
不错的设计建议,

茗风

  • 精华:4帖
  • 求助:1帖
  • 帖子:77帖 | 1272回
  • 年度积分:0
  • 历史总积分:5069
  • 注册:2006年11月16日
发表于:2008-03-04 16:06:00
3楼
那什么样的设计方法更好呢?大家来说说.

ylwcn2002

  • 精华:0帖
  • 求助:4帖
  • 帖子:6帖 | 143回
  • 年度积分:0
  • 历史总积分:566
  • 注册:2007年10月24日
发表于:2008-03-04 19:09:00
4楼
绝大部分人用的都是梯形图编写程序,有这么多的缺点,那有什么好的建议呢?、

PLC_先生

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:1064
  • 注册:2004年3月31日
发表于:2008-03-04 19:35:00
5楼
用结构化的编程方式,我只在siemens PLC里面用过结构化的编程方式.比如一台普通单向电机的控制,我们可以结合它的输入和输出接口做成一个FC,如果程序中有比较多这样的设备,那么我们可以反复调用.比如双向电机/电磁阀/电动执行器/各类控制盘,我们多可以给它们编写一个功能齐全的带有I/O的FC;然后在另外一个FC中多次调用就好了.如果我们再上升到某个高度:我们可以将PLC控制系统做成一个用户自己定义的操作系统,那样每次我们编写程序,按照这个模式来编写,我相信会大大减少编程开发时间.当然要配合结构化DB,和有规律的符号,详细的段注释,等.......如此这样,一个控制系统很快也就能搞定了.

西城教父

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 68回
  • 年度积分:0
  • 历史总积分:306
  • 注册:2008年3月01日
发表于:2008-03-04 22:56:00
6楼
梯形图的好处是直观,简单,易于上手

天方夜谭之不在话下

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

一奇绝尘

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 227回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2005年4月26日
发表于:2008-03-05 13:49:00
8楼
结构化编程是否对技术人员要求高呢??怎样培训呢

一奇绝尘

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 227回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2005年4月26日
发表于:2008-03-05 13:50:00
9楼
怎样得到培训呢

神左手

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 17回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2007年6月01日
发表于:2008-03-05 17:09:00
10楼
恒压供水的模拟量处理?

PLC_先生

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:1064
  • 注册:2004年3月31日
发表于:2008-03-05 22:24:00
11楼
结构化编程的入门是比较难了些.我们还是从简单的学起,先是"线性化"编程;到了对程序的有了较高认识的时候,再试着采用"模块化"编程;等到"模块化"编程思维再提升到某个高度的时候,"结构化"编程的雏形也就产生了."冰冻三尺,非一日之寒"!思路决定方向.只要对PLC感兴趣,就会有热情,有了热情才会有激情和动力.兴趣也许是成就某件事情的源动力.为你所爱的人,和爱你的人好好学习吧!

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2008-03-06 10:08:00
12楼
很好,非常感谢,学习了。

PLC◆补考生

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 201回
  • 年度积分:0
  • 历史总积分:180
  • 注册:2007年4月14日
发表于:2008-03-06 10:48:00
13楼
自己创建的两个技术交流的群
希望大家共同学习探讨
共同研究交流PLC,单片机,电气元件,电气线路,制图等电气知识。
请大家多提技术问题,多问多答,共同进步。 
群1:18607630(未满,全国范围)
群2:42322663(未满,只加本地,吉林地区的技术人员)
希望我们可以成为朋友。

蓝天月亮

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 1447回
  • 年度积分:0
  • 历史总积分:3594
  • 注册:2007年10月22日
发表于:2008-03-06 12:15:00
14楼
说的不错

高渐飞

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 101回
  • 年度积分:0
  • 历史总积分:426
  • 注册:2002年4月07日
发表于:2008-03-06 15:35:00
15楼
看来上面有人把模块化和结构话编程搞得不是很清楚,按西门子的说法,大量使用FC来实现代码的可重用性的编程规范称为结构化编程,大量使用FB来实现代码的可重用性的编程规范称为模块化编程。
    本人以前一直使用西门子称为的结构化编程,但当我真正的接触了一个大型的使用模块化编程的程序后,终于体会到模块化编程的优雅和高效,现在再让我去使用那种没有模块化编程的小型PLC,如S7 200,那简直是令我难以忍受的事情,这也是我明白没有一个外国工程公司使用S7 200的原因吧。
   当今我最认可的编程规范:
  程序结构由FC搭建,具体的控制对象由FB实现

PLC_先生

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:1064
  • 注册:2004年3月31日
发表于:2008-03-06 19:17:00
16楼
就siemens S7-300/400而言:我个人并不赞同大量使用FB;因为大量使用FB会耗费比较多的背景DB;这样一来DB的数目繁多、如果采用多重背景数据DB,那样DB的结构又会变得复杂。用FC结合共享DB足以处理绝大多数运算,我们可以将一个DB分配给x个FC使用,编程人员可以预先定义好,并规划好共享DB的结构,最好按照某个工艺段最大数量工艺设备来规划。比如我们可以把某个工艺段设备控制放在某一个FC里面,上面那个规划好的共享DB可以专门给这个FC使用,这个FC里面可以调用用户预先开发好的或者库里面的各种模块,从而来完成这个工艺段设备的控制。下一个工艺段的程序结构思想和这个相同,建立另外一个FC,拷贝上面规划好的共享DB,这样共享DB就不需要再去建了,最好FC和DB号码相同,这样更有利于编程和程序的管理;比如FC201控制的是工艺段1,而对应的DB可以是DB201。本人也读过德国人开发的大型PLC程序,人家编程确实非常优美、而且典雅;可以说是PLC程序中的艺术品;学到了不少东西,得到不少借鉴。我把我目前做的项目OB1的结构拷贝给大家参考一下,我希望我能给那些热爱PLC的人们提供一点点启发和帮助,同样也希望能与大家共勉。 //╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ // ★★★DCS与1#辊压机、2#辊压机系统通讯程序★★★ CALL FC 301 //接受来自1#辊压机的数据 shared db DB301 CALL FC 302 //发送数据到1#辊压机 shared db DB302 CALL FC 303 //接受来自2#辊压机的数据 shared db DB303 CALL FC 304 //发送数据到2#辊压机 shared db DB304 //╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ // ★★★1#、2#水泥粉磨系统底层(PLC)控制程序★★★ CALL FC 310 //群组预警、过程报警、主机设备运行时间记录等 shared db DB310 CALL FC 311 //熟练进料及存储系统 shared db DB311 CALL FC 312 //石子、石灰石进料系统 shared db DB312 CALL FC 313 //石灰石、石膏进料系统 shared db DB313 CALL FC 314 //粉煤灰库顶袋收尘系统 shared db DB314 CALL FC 315 //粉煤灰库底流化、输送系统 shared db DB315 CALL FC 316 //水泥配料收袋尘系统 shared db DB316 CALL FC 317 //1#水泥配料系统 shared db DB317 CALL FC 318 //1#辊压机预粉磨系统 shared db DB318 CALL FC 319 //1#球磨粉磨系统 shared db DB319 CALL FC 320 //出球磨斜槽袋收尘系统 shared db DB320 CALL FC 321 //1#球磨出料输送系统 shared db DB321 CALL FC 322 //2#水泥配料系统 shared db DB322 CALL FC 323 //2#辊压机预粉磨系统 shared db DB323 CALL FC 324 //2#球磨粉磨系统 shared db DB324 CALL FC 325 //2#球磨出料输送系统 shared db DB325 CALL FC 326 //水泥库顶袋收尘、斜槽输送系统 shared db DB326 CALL FC 327 //1#水泥库底流化、出料系统 shared db DB327 CALL FC 328 //2#水泥库底流化、出料系统 shared db DB328 CALL FC 329 //3#水泥库底流化、出料系统 shared db DB329 CALL FC 330 //4#水泥库底流化、出料系统 shared db DB330 CALL FC 331 //5#水泥库底流化、出料系统 shared db DB331 CALL FC 332 //水泥包装系统 shared db DB332 CALL FC 333 //太空包包装系统 shared db DB333 CALL FC 334 //水处理系统 shared db DB334 //╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ // ★★★★1#、2#水泥粉磨系统模拟量处理程序★★★ CALL FC 361 //模拟量地址从PIW512~PIW575(每个群组32个模拟量)shared db DB361 CALL FC 362 //模拟量地址从PIW576~PIW639(每个群组32个模拟量)shared db DB362 CALL FC 363 //模拟量地址从PIW640~PIW703(每个群组32个模拟量)shared db DB363 CALL FC 364 //模拟量地址从PIW704~PIW765(每个群组32个模拟量)shared db DB364 CALL FC 365 //模拟量地址从PIW766~PIW827(每个群组32个模拟量)shared db DB365 CALL FC 371 //模拟量地址从PQW512~PQW575(每个群组16个模拟量)shared db DB371 //╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ // ★★★1#、2#水泥粉磨系步进型PID控制程序★★★ CALL FC 381 //开关型电动执行器控制群1(每个群控制16个回路STEP型电动执行机构)shared db DB381 CALL FC 382 //开关型电动执行器控制群2(每个群控制16个回路STEP型电动执行机构)shared db DB382 // ★★★1#、2#水泥粉磨系统连续PID控制程序★★★ CALL FC 385 //连续量型PID控制器控制群1(每个群控制16个回路连续量的PID控制器)shared db DB385 //╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ // ★★★评估CPU执行PLC程序的时间以及PID程序初始化标志位复位★★★ L #OB1_PREV_CYCLE //Cycle time of previous OB1 scan (milliseconds) T DB300.DBW 0 L #OB1_MIN_CYCLE //Minimum cycle time of OB1 (milliseconds) T DB300.DBW 2 L #OB1_MAX_CYCLE //Maximum cycle time of OB1 (milliseconds) T DB300.DBW 4 A M 17.0 R M 17.0 //OB1第一个循环结束复位初始化标志位(用作PID控制器初始化)

wrq73

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 149回
  • 年度积分:0
  • 历史总积分:1876
  • 注册:2007年6月30日
发表于:2008-03-06 19:31:00
17楼
好好东西 学习

有点郁闷

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-03-06 21:24:00
18楼
恩 有点道理

zxjun

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 418回
  • 年度积分:0
  • 历史总积分:806
  • 注册:2006年12月07日
发表于:2008-03-06 22:11:00
19楼
好!!

PLC_先生

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:1064
  • 注册:2004年3月31日
发表于:2008-03-06 23:11:00
20楼

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 下一页 尾页