修理840Di sl系统液压泵头后续问题1
设备修复后二天的连续运行,及机床参数的重新调整、25040#等报警问题得到的解决,但那个一天一次或几天一次的设备“无辜”停机问题的处理过程还没有与大家分享过,感觉有写电视剧的了。
在前几天调试系统液压泵头时,“无意”间发现了一个制造商(编程者)忽视的程序逻辑关系,今晚拿来与大家分享一番(控制程序已经修改完毕)。
事情的来由是这样的,该840Di sl系统有一个控制上滑块上、下运动的液压伺服泵,该泵前几篇文章中有较为详细的描述修复及排障过程,泵为轴向柱塞伺服双向变量泵(Rexroth),订货号SYHDFEE-10/250R-VZB25U99-0576-A0B1C;配套的控制伺服阀组及一个外部反馈的压力传感器给定VT-DFPE-A-22/G24K0/0B1C/V控制器组成,阀控部分原理图,图示:
该伺服阀组有一组泵头故障报警输出控制器3#端子至plc输入I81.6,这个被忽视了的报警逻辑控制由此展开。
首先,描述该报警输出功能:当泵头检测到系统压力给定值没有到达目标值;或者液压换向时负载侧可能的被“吸控”(双向流量作用);或者泵头温度大于80℃等原因引起的故障输出,正常时,该位输出为1,报警时输出为0。
控制程序段描述:
A "verz.Steuerspannung ein" //系统启动1S延时后
A "Hydraulik ist eingesch." //液压站全部启动完毕后
A "GA Regelventil Z BB" //I81.6报警输出位
= "REL Z-Achse betriebsb." //Achse betriebsbereit an ADI4
该程序段的含义为当系统启动完毕;液压站启动完毕且没有该泵头故障报警,则,输出Q61.0给ADI4轴模块。
ON "TS Steuerspannung aus*" //系统停止按钮
ON "GA 1ste Not-Aus-Kette ok" //控制柜急停OK!
ON "NC".E_NCready
ON "NC".E_NCKready
ON "GA ADI4-Ready" //ADI4模块就绪
O "verz.Schimpke Not-Aus" //冷却站启动完毕
O "verz.Hydr.Oel Not-Aus" //液压站启动完毕
O "verz.Hydr.Mot.Not-Aus" //P1/P3泵电机温度正常
O "verz.Hydr.Not-Aus Beh.l." //液位正常
ON "DB Pilz".E_Not_Aus_Ok_SSB
O
A "Hydraulik ist eingesch." //油泵完毕启动完毕
AN "GA Regelventil Z BB" // I81.6报警输出位
R "ges.Steuerspannung ein" //复位系统停止
该程序的大致含义是,抛开其它控制、判断条件,当I81.6故障时,该位状态 = 0,则复位系统停止"ges.Steuerspannung ein"标志位。
故障报警程序段:
A "verz.Steuerspannung ein" //系统启动1S延时后
A "Hydraulik ist eingesch." //液压站启动
AN "GA Regelventil Z BB" // I81.6报警输出位
= "ALMSG_DB".C1.FDD_RID_5101xx[2] //FM 510102 vs+einlesesperre 泵压力故障异常
该故障报警程序段的含义:当系统启动;液压站启动完毕后,如果该泵故障输出状态 = 0,则表示泵存在故障,报警510102#信息。
上述程序看起来并没有不合理之处,但实际应用时这个逻辑顺序关系与硬件的匹配使这个故障被“人为”隐蔽。
假设当泵头故障出现时I81.6 = 0,或者干脆说该点存在接触性问题,该I81.6 = 0被plc捕捉到,那么由此程序控制复位系统启动标志位"ges.Steuerspannung ein",系统启动一旦被复位,泵就连带被迫停止工作,泵停止工作后报警也就“自动”复位了。
注:该设备的系统启动包含控制电源的启动,也包含该伺服控制阀这部分电源,而控制器报警输出3#端子调用的是NC逻辑。一旦出现这个报警,设备就“自动”停机、故障信息也不可能被显示,且会给用户判断停机故障,有摸不着头脑的感觉。
一直来该设备存在一天一次,或者几天一次的“无辜”停机,这样的停机次数非常偶然,曾经为此找过好多次,总是很难被查询到真正的问题所在。但是在这次排障中被“无意”发现了这个控制逻辑关系,非常隐蔽,没有仔细推敲实难发现无辜停机的根本原因。这个“无意”实际上是维修泵头时,泵头偏转角度被我任意调乱,使故障输出标志特征变得明显。查找和发现问题困难,解决问题就相对容易的多了,将程序修改为:
A "verz.Steuerspannung ein" //系统启动1S延时后
A "Hydraulik ist eingesch." //液压站启动
AN "GA Regelventil Z BB" // I81.6报警输出位
S "ALMSG_DB".C1.FDD_RID_5101xx[2] //FM 510102 vs+einlesesperre 泵压力故障异常
M 2.1 //MCP板上的复位按钮I3.7
R "ALMSG_DB".C1.FDD_RID_5101xx[2]
当然,也可以通过其它方式修改控制程序中的不足。另外,为了杜绝可能的接触性问题,将程序稍加修改为输入点延时“滤波”方式:
修改程序段:
A "GA Regelventil Z BB" // I81.6报警输出位
L S5T#1S500MS //暂时定义断开延时1.5S
SF T 15
将T15替换到原I81.6的输入地址中。
这起处理过程套用那句“有心插花花不开,无心插柳,柳成荫”在这里最贴切不过了,本以为此种逻辑分析并没有什么可写,即便写了也不一定让人家能够看的明白,毕竟还需要理解硬件原理,设备状况。但是类似的问题在现实调试、排障过程中比较多见,稍不留意自己也难免会犯同样的“糊涂”错误。另外,说实在看别人的程序,我总感觉是一件非常纠结的事情,因为要充分理解编程者的思路,无论是正确还是错误的。仅以此短文与大家分享,也望大家做程序时三思而后行,一个小小的疏忽,给用户带来大大的困惑。