系统非常稳定,所有代码“立正” 不要乱动

2021-12-05 10:41:03 浏览数 (1)

工业控制涉及到信号系统、控制系统、执行系统,控制系统里又有各个控制器、HMI、通讯等,控制器里还包括硬件配置、通讯、异常响应、用户程序等多个部分,HMI里可能有脚本、报表等。这些就铸就了控制系统的复杂性。当然,经过这么多年的发展,工控系统也不断在进行规范化、模块化,减少系统间的耦合,降低系统的难度,提高系统的可靠性。

但是,当一个系统(或设备)有比较多的关联设备,并且相互关系较多时,其复杂性还是比较高的,控制系统软硬件设计都不是容易的事情。

关于轧机的调试

比如说,某轧机需要随着轧件的前进而不断改变轧机的速度,来控制不同部位的延伸量时,就要判断轧件的位置,并根据预设好的逻辑和参数来计算轧机的速度,实时下发给传动设备进行执行。轧件的位置判断需要一些传感器来进行初始计算,然后是根据轧制电流来进行理论推测。他们互相交织在一起,并且要考虑轧件咬入异常等情况,这种情况下,我们修改任何一点逻辑,都可能引起意想不到的不良反应,反映在现场就是轧制质量异常、堆钢、甚至断钢等损失。

对于这样的轧机程序,其修改流程比较严格:方案设计、专家审查、离线修改和确认、在线修改确认、生产跟踪、备份等,一旦发现异常,还要马上恢复原备份,维持生产。

有一次,我们为了增加传感器信号的可靠性,为传感器增加了一点软件滤波,却导致了跟踪程序的不可靠,进而导致了大量轧机的质量异常。分析发现是改动造成,只好灰溜溜地改回去。

感想

所以,工业控制系统,有时候你看着里面漏洞很多,但是,你又不能轻易修改,因为那些是经过很多专家修改、工业生产验证过能用的东西(可能不是最优的东西),那些明显的问题没有被修改,很可能有原因,要承认:他们不比我们笨,我们不一定比他们聪明。

后来人的优势是:随着技术的发展,原来没有办法解决的,可能现在能解决了。我们只要能把新技术应用进去,也许就能带来系统性能的提升,当然,有时候也未必。

从这个角度看,能把轧机系统顺利调试出来的人,都值得工控人去膜拜,上世纪九十年代,ABB的某外聘专家调出了某轧机的头尾壁厚控制功能,他一直被我们尊重和惦记。某自动化公司的小姐姐某盈枚在某轧线改造中,创造了一次轧制成功的奇迹,奠定了她在公司的地位。我听闻后,也非常敬仰,见到她时,必须立即让座!

大系统如此,小系统就可以随意了吗?稍不注意,也会啪啪打脸,举几个小例子。

关于水系统的调试

最近,某水系统的Profibus-DP网络不稳定,现场远程站点频繁故障,由于该水系统为某炼钢系统供水,因此,不允许随时停机。为了防止站点故障导致的停泵事故,原程序设计了一个液位连锁切除的功能,一旦检测到站点故障,则立即切除液位连锁,但是,操作人员需要及时发现该情况,并手动处理,在网络恢复后,手动投入液位连锁,否则,也可能导致补水问题,而跳泵。不管怎样,这种连锁,确实能避免立即跳泵,赢得一些处理时间。

最近由于故障频发,为了减轻操作人员的负担,现场人员提出,如果是短时间的网络故障(前期看下来都是低于2s),能否不切除连锁?这样在站点恢复后,还是会自动恢复原状态的。大家一想,好事呀,好像也没有什么不良反应,于是,欣欣然,立即增加了3s的滤波

不曾想,后来,竟然出现了两次网络故障后的跳泵事故,对于产线的影响着实不小。大家就傻掉了,怎么都想不通,开始四处怀疑(系统有两个液位信号的连锁,怎么还会跳泵?)。

我仔细分析了泵的保护逻辑,发现:在出现网络故障时,这两个液位信号(一个开关量,一个模拟量)都会出0,然后延时1s后跳泵。原来的设计里,网络故障出现后,会在1s内切除液位连锁,屏蔽掉跳泵信号。但是,我们为切除连锁增加3s的延时后,液位连锁信号就其了作用。最后,将跳泵延时从1s修改为5s,才比较完美地解决该问题。

从下图可以看出,信号的变化与网络故障的变化是同步的,由于不同的泵组对于开关量的液位信号采用了不同的逻辑,这也导致了有的泵组会跳,有的泵组没有跳。至于为什么会这样设计?大家也是面面相觑,不知道原设计的玄机,而不敢乱改。

关于水系统的升级

再举一个小例子,某水系统的PLC升级,对应的画面也进行升级。由于是软硬件都是同品牌,因此,兼容性还是不错的,只要照原来的程序进行修改,基本就可以运行。设计单位自认为没有压力,不可能出错呀。但是,调试时,还是发现了一些问题:

  1. 某设备不动作,一路查上来,发现PLC板卡没有输出到柜内端子,仔细检查,才发现转换底座搞错了,把DI的底座用在DO上(前面更换时,我们反复提醒他们核实,他们坚持说,两人核实过,不会错);
  2. 操作某变频器时,在HMI上找不到输入位置,设计人员坚持说,原画面就是这样,还好有个老师傅坚持说原来肯定有输入子窗口的,于是打开原来的系统,才真相大白:设计人员认为那个子画面没有被引用,自信地删除了
  3. 某设备的运行反馈在画面上没有变化,设计人员说没有这个点,就准备用输出命令来替代。我们找来图纸,告诉他,肯定有这个点。翻出老程序,发现原来这个点定义为备用,他也选择性地忽略了

感想

在有完整参照的情况下,尚且会拷贝走样,如果是添加一个新功能,不知道还会出多少纰漏呢。这一个个的例子都告诉我们:搞工控,不能过于自信,要低调,尽可能在继承优秀做法的基础上,多想想相关专业、多听听工艺、操作人员的意见,这样的控制系统才会越来越完善。

dp

0 人点赞