工控人生进阶篇之系统编程 点击:460 | 回复:6



weconE

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 6回
  • 年度积分:0
  • 历史总积分:19
  • 注册:2014年12月16日
发表于:2017-04-08 11:13:03
楼主

工控人生进阶篇之系统编程

    PLC编程&HMI组态对于每个工控人来说可谓是轻车熟路,但是这个过程却又是别有一番滋味挥之不去,久久不能忘怀。譬如指令、公式、参数都正确,外部没干扰,接线、开关也正常,但是设备就莫名其妙的会停下来,此种情况就属于程序编写上的漏洞。

    如何才能够提高程序的稳定性,减少程序的漏洞,让程序按照既定的规则(工艺)运行得无比顺畅呢? 这就需要我们去按照一定的步骤,编写合理的运行机制,来量化编程这一过程。

STEP_Ⅰ、I/O分配-------合理的I/O分配是程序稳定的坚实基础。

          把功能一样的输入、输出归结在一起,如图:

          

          

这样做方便程序编写,查找方便,外部接线也不容易接错。

如果点数允许的情况下,X0X1Y0Y1预先空出来,留给需要高速计数和脉冲输出用。以备工艺上的变更。

急停按钮,停止按钮,前进、后退、上升、下降这些极限限位,推荐外部接开关的常闭触点,程序里面用常开触点,这样的好处是,不会因为开关失灵,冲过限位,而造成机械设备损伤等意外。

模拟量的选择是,优先选用电流型,现场实践证明,电流型比电压型抗干扰能力高80%

条件允许的情况下,优先选用模拟量类型去调控第三方控制器件,因为模拟量的响应速度要远远大于通信的响应速度。

 

      

STEP_Ⅱ、内存软元件规划-------稳定的程序离不开良好的软元件规划。

          相信大家会有这样的感觉,同样的工艺,有的程序看起来错综复杂,没有头绪,而有的程序看起来清爽无比,一目了然,这就是内存软元件合理规划的结果。       

一般来说我是这样分配的:

       D0~D10分配给触摸屏系统区使用,画面号写入,画面跳转,语言切换等。如图

 

 

 D20~D99分配给通讯,特殊模块的配置,和计算用的常数使用。如图

    


   

        

其它需要运算的以偶数开头,用浮点数运算,这样既能提高运算精度,又能避免地址冲突和叠加,(维控全系列触摸屏支持浮点数设置和显示)。因为双整数运算乘法和除法存在余数问题,使用浮点运算就能避免这个问题。例如:D100~D999作为中间变量使用。

 

    在多轴控制系统中,建议每轴的运算存储寄存器也要区别开。

      例如:D1000~D1999分配给Y0使用。    D2000~D2999分配给Y1使用。

          D3000~D3999分配给Y2使用。    D4000~D4999分配给Y3使用。

 

 

D6000~D7999分配给触摸屏上的数据设定和显示,并在注释里面加上字母H,表示这部分寄存器都是触摸屏上的。并且地址格式32位浮点双字,这样就避免和程序里面的寄存器冲突、占用等问题。

 

M元件的规划分配和数据寄存器D的规划分配同理,做到同区域连续使用,切勿乱序使用。

 

建议地址规划的时候使用EXCEL表格规划好,然后在导入到PLC程序中。Wecon PLC Editor支持软元件注释的导入导出。

元件注释触摸屏上用的加字母H,自动的加A,手动的加M,中间计算的变量标注个*星号,还有隐藏访问的也备注上*星号,这样在使用中,就能避免冲突叠加,也能方便后续的升级和查找。

内存规划就象仓库划分区域一样,不同的区域存放不同的数据,不同的用途,划分不同的区域,做到有迹可循。

 

STEP_Ⅲ、参数计算部分编程------先乘后除,提高计算精度。

          建议所有的数据运算全部使用浮点运算,这样触摸屏上的参数显示和设置用统一的格式32位浮点数。

          触摸屏上的显示参数控件和设置参数控件用颜色加以区分,这样不会误导操作人员,也会避免不必要的麻烦。

            例如蓝底白字为显示控件,黄底蓝字为设置控件。

 

      ★做四则运算的时候,先乘后除,提高计算精度。运算公式,先进行精简,精简之后再拿到PLC里面来做程序。对于复杂的运算公式,鉴于PLC的梯形图实现起来不直观,可以放到触摸屏脚本里面来实现,计算完成之后,把结果再回传到PLC里面。维控全系列触摸屏提供强大丰富的脚本计算功能

 

 

先进行数据运算,运算完成之后再拿运算结果去进行比较,或者执行其它的动作输出。

 

STEP_Ⅳ、动作执行程序编程------安全、互锁、保护。

    第一编写紧急停止、停止、限位部分的程序,防止调试的时候,设备不能停下来,或者造成机械设备的损坏。

       首先要保证安全,想停止的时候,能停下来,其次才能进行其他部分程序的编写,一套没有安全保护机制的程序不是完善、完整的程序。

    第二进行手动部分程序的编写,方便机械部分调试的顺利进行。对于正反转的控制,不仅外部接线要进行电气的互锁,而且程序里面也要加上互锁部分。对于SET置位指令,要考虑是否用了锁存寄存器(断电保持型),在上电初始化的时候是否加上复位RST,以防设备突然启动,或者动作不按照预定动作执行。

    对于高速脉冲输出指令等使用,要先进行其脉冲频率、脉冲数量、加减速时间等参数的赋值,然后再启动高速脉冲指令。

       

 

 

    ★第三进行自动部分程序的编写,当手动部分的程序编写完善之后,自动部分的程序可谓是水到渠成。

      在此推进大家使用DECO指令去做自动部分的程序,该指令条理清晰,逻辑性强,后续增加、修改、删减动作方便快捷,故障查找也方便。详细使用说明,详见《维控编程手册》&Wecon PLC Editor软件帮助。

 

    

STEP_Ⅴ、整体程序优化------减轻PLC运行负荷,精简程序。

          PLC扫描周期的时间长短,对程序能否顺畅执行,起着至关重要的作用,在输出响应要求高的场合更能体现出来。相信大家都知道,总体来说PLC程序步骤越多,PLC的扫描周期时间越长,因此就需要我们去把整个程序进行优化。

          把程序优化成若干个子程序,基本数据的运算,手动部分的操作,配方的上传下载,在执行自动程序的时候,以上程序并不是必须要执行的,因此就能把他们切除掉。

需要说明的是,指令的扫描时间和指令的执行时间不是一个概念,只要指令在主程序里面,PLC都会去扫描他们,具体执行与否是要看指令前面是否导通、使能。

譬如,M80导通的时候,PLC则会去执行后面的四条浮点除法运算指令。当M80不导通的时候,PLC则不会去执行后面的指令,但还是会去扫描他们,并不会跳转下去执行别的指令,当程序里面这种状况多的时候,还是会延长扫描周期的时间。

    所以整个程序就有了化繁为简的优化空间。

 

           以某一电子凸轮程序优化为案例,该程序总体有2099步,但在自动运行的时候,实际只有242步,PLC扫描周期0.2ms~0.5ms

 

 

  ★优化要点如下:

      使用M8002初始化的参数,因为只执行一次,所以放在一个子程序里面,用作上电初始化。

 

  

P0初始化子程序

 

 

其中画面5和画面6分别是机械参数和工艺参数,由于设备在自动运行的时候,这两个画面的参数是不会去更改的,并且也增加了画面按钮互锁,在自动运行的时候,不允许修改。

 

其中画面寄存器是D90

也就是说,当触摸屏在第五画面的时候,设备不在自动运行状态,PLC会去执行工艺参数(电子凸轮表格)的运算那部分程序。

 

 

 

当触摸屏在第六画面的时候,设备不在自动运行状态,PLC会去执行机械参数(手动)那部分程序。

 

 

    经过实际上机测试没有优化之前,因为有凸轮表格大量的计算,PLC的扫描周期为1.3ms~1.9ms

    优化之后在设备自动运行的时候,实际程序只有242步,PLC的扫描周期为0.3ms~0.5ms,缩短了PLC的扫描周期时间,大大降低了PLC的运算负荷,同时也提高了设备运行的稳定性。

    工控人生路上的小伙伴们,你们准备好了吗?携手维控科技与您一起开创新的编程之路!




楼主最近还看过



水中的蓝天_55

  • [版主]
  • 精华:1帖
  • 求助:3帖
  • 帖子:54帖 | 1689回
  • 年度积分:0
  • 历史总积分:13042
  • 注册:2004年4月02日
发表于:2017-04-08 11:58:09
1楼

不错,值得学习!给楼主一个攒!

水中鱼

  • 精华:40帖
  • 求助:4帖
  • 帖子:286帖 | 3802回
  • 年度积分:0
  • 历史总积分:15037
  • 注册:2011年11月10日
发表于:2017-04-08 21:53:38
2楼

谢谢楼主分享,学习中。    

Z~D

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 258回
  • 年度积分:0
  • 历史总积分:196
  • 注册:2016年10月20日
发表于:2017-04-09 12:53:13
3楼

学习了 谢谢楼主的分享

小兴仔

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 37回
  • 年度积分:0
  • 历史总积分:169
  • 注册:2017年10月19日
发表于:2018-12-24 16:51:54
4楼

绝对的经验之谈,很是受教,谢谢!

wahaju

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 87回
  • 年度积分:0
  • 历史总积分:114
  • 注册:2009年9月19日
发表于:2018-12-24 23:29:58
5楼

感谢 感谢  学习中

ZHI_GOOD

  • 精华:0帖
  • 求助:1帖
  • 帖子:14帖 | 541回
  • 年度积分:0
  • 历史总积分:111
  • 注册:2015年10月04日
发表于:2019-12-11 17:03:45
6楼

感谢,感谢,学习学习


热门招聘
相关主题

官方公众号

智造工程师