发帖
 找回密码
 立即注册
搜索
2 0 0

[官网翻译]如何调试FlexSim崩溃模型

信息公告 92 2 2016-12-7 12:41:31
原帖网址:[url]https://answers.flexsim.com/questions/21144/how-can-i-debug-a-crashing-flexsim-model.html[/url]
关键词:奔溃、调试、建议、可复验的

Shankar Narayan问:
        像机械钟一样准时,在仿真时间7800秒,我的FlexSim模型突然奔溃了。
        然而,非常抱歉,我无法附上具体模型。尽管如此,任何关于调试FlexSim模型奔溃方面的建议,都将令我受益匪浅,在此,我真诚地表示感谢。

Ben Wilson 答:
        以下是标准化处理步骤:
        1)清理常见的问题或错误。在系统控制台中,是否显示了任何警告或例外?如果有,那么请基于提示信息进行跟踪追查并对其修正。此外,基于内部关联性,应对所有的错误加以修正,这其中包括与此次主题不相关的错误。
        2)将模型设置为可复验的。根据FlexSim的主菜单,打开Statistics > Repeat Random Streams。基于此功能打开的前提下,对您的模型进行保存。基于此功能,若您的模型每次奔溃的时刻并不一致,那么您的模型是不可复验的。此时,您需要根据用户手册(FlexSim Concepts / Model Repeatability)中的相关建议,去设置您的模型,最终,使得您的模型具备可复验性。
        3)寻找仿真奔溃时间。首先,您需要再次打开模型;其次,您需要设置一个仿真停止时刻(在奔溃时刻之前);最后,通过降低速度,使得模型当前运行时刻无限逼近模型奔溃时刻。
        4)达到仿真奔溃时间。根据前文找到的仿真奔溃时刻,您需要设置一个合理的仿真停止时间。举个例子,假使您的仿真奔溃时刻为7800.00,那么设置您的仿真停止时间为7799.99。当模型运行至仿真停止时刻时,您需要打开Debug > Event List,去查看一系列即将发生的事件。
        5)分步调试每一个奔溃事件。通过使用run controls' Step button,对每一个预置事件进行调试,并对执行列表中的每一个事件进行仔细观察。
        6)留意奔溃事件。在这一系列事件中,一定会存在一个引起仿真奔溃的事件。因此,希望您能够足够仔细地对其加以辨认。
        7)找到原事件(引起仿真奔溃的事件)并进行调试。重复步骤4)—5),直到定位于原事件前的一个事件。具体如何进行调试呢?如果有关于原事件的定制代码,那么请在代码中,使用断点,从而进行代码调试。
        8)追踪一个隐藏问题。如果关于这个原事件,不存在定制代码,那么请检查由此事件引发的其他事件是否存在制定代码?比如,“进入暂存区,离开暂存区,进入下一个对象流”,这一事件可以视为同一事件。请尝试同时跟踪引起FlexSim奔溃的执行路径,并回答如下问题:在同一时间,这一事件是否触发了其他事件?在这一执行路径上,是否存在定制代码?
       
        当您尝试以上步骤之后,即使您仍然没有找到问题原因,但是,您一定会对问题有一个更为细致的了解。此外,您仍然可以通过尝试将问题单独抽象成一个小模型,并将其进行发布,从而得到更为广泛的帮助。
──── 0人觉得很赞 ────
2016-12-10 14:29:13
非常有帮助的解决模型错误的提示,希望能够推广开来。
2021-1-6 17:22:03
收藏了
您需要登录后才可以回帖 立即登录
高级模式
返回
信息公告
热门问答
查看更多
1
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
2675
224
2
FlexSim2016 中国象棋
FlexSim2016 中国象棋
1707
44
3
Flexsim二次开发之塔吊
Flexsim二次开发之塔吊
1586
45
4
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
1479
34
5
快递分拨中心案例~新手可参考
快递分拨中心案例~新手可参考
1189
62
博主榜
+ 45331
+ 10630
+ 7753
4
+ 6759
5
+ 6323
6
+ 6321
7
+ 5341
8
+ 4710
9
+ 3722
10
+ 3628