技术论坛

 程序死循环

返回主题列表
作者 主题
bbr
游侠

经验值: 395
发帖数: 107
精华帖: 0
楼主    2020-06-06 11:01:37
主题:程序死循环

1500程序正常运行时扫描周期20ms左右,没过几天就会出现超时停机,看门狗时间150ms,也在OB80里添加了“RE_TRIGR”指令,没有作用。
咨询热线答复仔细研读程序,看是否有可能死循环?但是由于程序庞大,且出现频率较低也无规律性,因此无法找出原因。

停机时也无法定位到出问题块。
请教各位大神,是否有其他办法能够定位到死循环位置?或者能够避免CPU停机的好办法?

设想当中断进入OB80,跳转到程序末尾,这样就可以跳过死循环部分,不知能否实现?

20200525181446_92.png


匆匆又三年
侠圣

经验值: 3279
发帖数: 310
精华帖: 8
1楼    2020-06-06 11:28:39
主题:回复:程序死循环

你最好检查下程序有没有跳转,或者当某某条件满足退出循环相关的程序

有事联系邮箱 203161926@qq.com
Zane
至圣

经验值: 76110
发帖数: 19121
精华帖: 378
2楼    2020-06-06 11:31:00
主题:回复:程序死循环

就是读程序,找到有循环的部分

Zane 注册自动化系统工程师 Always save before download
百夫长
侠圣

经验值: 3343
发帖数: 650
精华帖: 1
3楼    2020-06-06 12:01:19
主题:回复:程序死循环

一个块一个块的屏蔽看看啊,重点关注有跳转的程序

罢了,罢了.
百夫长
侠圣

经验值: 3343
发帖数: 650
精华帖: 1
4楼    2020-06-06 12:35:07
主题:回复:程序死循环

想到一个 办法

大概这么一个思路

设置一个变量   A


A:=1

call  fc1


A:=2


call fc2

.

.

.


A:=N

CALL FC N

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

然后在OB80 里面写程序

B:=A


当有循环超时的时候,OB80就把A的值赋值到 b


到时候检查 B的值,来定位超时的程序





罢了,罢了.
nnnn1234
至圣

经验值: 21146
发帖数: 4995
精华帖: 57
6楼    2020-06-06 20:32:38
主题:回复:程序死循环

按你的图片里最下侧的提示:可能的原因,去查找即可


The darkness is no darkness with thee.
937193679
游士

经验值: 207
发帖数: 5
精华帖: 0
7楼    2020-06-07 09:00:46
主题:回复:程序死循环

我觉得你应该看看程序,是不是正常运行时候,哪个条件满足就进入到死循环里面了

bbr
游侠

经验值: 395
发帖数: 107
精华帖: 0
9楼    2020-06-08 08:31:44
主题:回复:程序死循环

死机时在诊断缓冲区也点击查看“在编辑器中打开”,结果直接跳转到了设备视图的主站视图,无法查到有价值的信息。

程序太庞大,我们几位工程师读了好几天,也没找到出现问题的可能性。屏蔽某段程序也不现实,设备正在连续生产,不允许去实验,并且是好几天才出现一次,因此很多的查错手段无法用上。

4楼的模型值得借鉴,通过这样可以定位到某个程序段,我来试试看

Zane
至圣

经验值: 76110
发帖数: 19121
精华帖: 378
10楼    2020-06-08 08:42:38
主题:回复:程序死循环
是不是设备款没结算清,设备商在程序里埋了雷,否则不会这么难查的
Zane 注册自动化系统工程师 Always save before download
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。