作者 | 主题 |
---|---|
WWCWWC 至圣 经验值:71712 发帖数:8024 精华帖:145 |
楼主 2018-11-15 08:21:38
主题:修理840Di sl系统液压泵头后续问题1 修理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的输入地址中。 这起处理过程套用那句“有心插花花不开,无心插柳,柳成荫”在这里最贴切不过了,本以为此种逻辑分析并没有什么可写,即便写了也不一定让人家能够看的明白,毕竟还需要理解硬件原理,设备状况。但是类似的问题在现实调试、排障过程中比较多见,稍不留意自己也难免会犯同样的“糊涂”错误。另外,说实在看别人的程序,我总感觉是一件非常纠结的事情,因为要充分理解编程者的思路,无论是正确还是错误的。仅以此短文与大家分享,也望大家做程序时三思而后行,一个小小的疏忽,给用户带来大大的困惑。 |
ALu777386 游士 经验值:240 发帖数:21 精华帖:1 |
18楼 2018-12-08 08:36:50
主题:回复:修理840Di sl系统液压泵头后续问题1
这类故障也是工业项目调试检修的高深课题。我过去在日本的PLC上,都是设计输出改变记录器的。即在任何输出点有变化时,扫取记录输入点输出点的所有信号字。然后记录在各自的计数器上。这样我们会得到一组数值大体相同的不同输出点的数据。 结合上面的故障情况,我的这种设计可以造成计数器的数据变化。从那个数据变化的计数器,可以很快确定输出点,输入点当时的瞬间变化。很容易知道,是哪个输入点影响了设备。 谢谢大家! |