工控人生进阶篇之系统编程
PLC编程&HMI组态对于每个工控人来说可谓是轻车熟路,但是这个过程却又是别有一番滋味挥之不去,久久不能忘怀。譬如指令、公式、参数都正确,外部没干扰,接线、开关也正常,但是设备就莫名其妙的会停下来,此种情况就属于程序编写上的漏洞。
如何才能够提高程序的稳定性,减少程序的漏洞,让程序按照既定的规则(工艺)运行得无比顺畅呢? 这就需要我们去按照一定的步骤,编写合理的运行机制,来量化编程这一过程。
STEP_Ⅰ、I/O分配-------合理的I/O分配是程序稳定的坚实基础。
★把功能一样的输入、输出归结在一起,如图:
这样做方便程序编写,查找方便,外部接线也不容易接错。
★如果点数允许的情况下,X0、X1、Y0、Y1预先空出来,留给需要高速计数和脉冲输出用。以备工艺上的变更。
★急停按钮,停止按钮,前进、后退、上升、下降这些极限限位,推荐外部接开关的常闭触点,程序里面用常开触点,这样的好处是,不会因为开关失灵,冲过限位,而造成机械设备损伤等意外。
★模拟量的选择是,优先选用电流型,现场实践证明,电流型比电压型抗干扰能力高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的运算负荷,同时也提高了设备运行的稳定性。
工控人生路上的小伙伴们,你们准备好了吗?携手维控科技与您一起开创新的编程之路!
楼主最近还看过