全球FlexSim系统仿真中文论坛

搜索
查看: 2433|回复: 2
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
漂吧 发表于 2016-12-7 12:41:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原帖网址:https://answers.flexsim.com/ques ... -flexsim-model.html
关键词:奔溃、调试、建议、可复验的

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奔溃的执行路径,并回答如下问题:在同一时间,这一事件是否触发了其他事件?在这一执行路径上,是否存在定制代码?
       
        当您尝试以上步骤之后,即使您仍然没有找到问题原因,但是,您一定会对问题有一个更为细致的了解。此外,您仍然可以通过尝试将问题单独抽象成一个小模型,并将其进行发布,从而得到更为广泛的帮助。
2#
慧娴亚伦 发表于 2016-12-10 14:29:13 | 只看该作者
非常有帮助的解决模型错误的提示,希望能够推广开来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2024-6-14 06:04 , Processed in 0.055853 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表