技术论坛

 一个看似诡异的程序分析过程

返回主题列表
作者 主题
WWCWWC
至圣

经验值:71500
发帖数:7980
精华帖:145
楼主    2021-08-26 10:38:40
主题:一个看似诡异的程序分析过程

一个看似诡异的程序分析过程

  昨天同事电话求助说有一台压力机设备(西门子400系统),前天还好好的运行,昨天设备保养后试运行就异常了,主要表现为主滑块在手动模式下,无法下降运行,其它动作目前还没有发现问题。

  动作没有,除了外部硬件(液压、电气)原因外,具体程序控制也是“问题”查询的基本方法。于是,我到现场后,拿同事的电脑监控相关程序的输出,监控结果确实没有输出,那么,顺着这个控制程序查找到2个安全的必要条件是机器人在安全区域没有使能,另外一台辅助设备的原点显示已经到达,问题锁定在机器人搬运的原点信号没有通过总线给到压力机设备中。无论我让同事在总线上发送或者关闭机器人原点信号,这台设备的机器人原点判断信号就是没有反应。交叉引用看程序应用,这个信号点居然没有线圈驱动,难怪,总线的信号切换无法反应到压力机设备的相关信号上。

  由于是安全信号,这些信号均是压力机的关键信号点,得需要先理解信号的来龙去脉。首先查阅整体信号之间的传递,该总线为profibus DP通讯,通讯数据交换在I/O区域,而我监控到的信号是M地址区域,说明这个系统应该需要有一些传送指令,把通讯数据传递到M区,查看交叉引用,这个M点地址没有线圈,也没有类似的传送指令,那么,它是如何传递的呢?其次,话说这个设备之前运行一直正常,而设备保养后异常的可能原因会有那些?一时也无法追根溯源到现状,只能先放弃再说。手头着手分析相关的机器人原点信号,确实这个设备系统上也应用到这些关键信号,我又让同事通过手动切换信号的通断,确认这些信号的作用后,我大胆尝试着给这个机器人在原点的M信号,做线圈驱动控制。将程序编辑后下载,让同事再次切换信号的通断,信号切换正常。让同事启动设备,在手动状态下,试着运行设备正常,再继续做单循环也正常,说明本次问题的根源是这个机器人M信号,没有得到信号的传递,就是我开始交叉引用那里看到的没有线圈及指令的驱动,这个是这个程序的怪异之处。

小结:

1)  之前正常而目前出现问题,关键问题是这个M信号点没有得到一个需要的状态值,而之前一直运行正常。这个问题不亚乎这个程序不是最终版本的,可能由于同事经验上的欠缺或者操作失误,造成程序的丢失。

2)  如果程序没有丢失,那这个M点又将是如何使能的呢?很显然,在日常验证程序时,经常性的会遇到一些所谓的诡异情况,假设我使能一个M点线圈地址,然后我删除这个线圈,其结果这个M线圈所驱动的触点仍然会保持删除前的状态值。在此,可以想到可能出现问题的出处、及初始化的重要性了。

3)  就此另外一个根本原因就是程序逻辑方面的基础问题,对一些程序的基本知识点的缺乏,造成一些问题出现时,无法判断问题关键点出自哪些?说到底还是基本功问题了。

  我也经常性的看到某一些同事,在处理简单故障时,急于就成,通过简单粗暴的修改程序或者直接强制某一些点,来判断可能存在的问题,这样的处理非常不可取,也不理智、也无利于安全。所谓诡异的程序原本就没有,有,也大多是人为原因造就的。今天看到论坛上有一个问题,有感而发的想起刚刚昨天的那件事情。


您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。