返回列表 回复 发帖
学习了
[i=s] 本帖最后由 zorsite 于 2017-5-14 14:22 编辑 [/i]

任务序列好麻烦,偷懒使用端口控制。

根据两条传送带4种不同情况来分别判断机器人的工作位置。
默认两条传送带的输出都处于开启状态。
1.都没有临时实体:
哪一条传送带先有临时实体到达传送带末尾,就在哪一条传送带工作,同时关闭另一条传送带的输出。
2.都有临时实体:
比较两条传送带上的第一临时实体被创建的时间,去创建时间比较小(早)的那条传送带工作。
可以描述为:
2.1如果这条传送带上第一临时实体创建的时间小于另一条,则开启这一条,关闭另一条
2.2如果这条传送带上第一临时实体创建的时间大于另一条,则关闭这一条,开启另一条
3.这条有,那条没有
开启这一条,关闭另一条
4.这条没有,那条有
关闭这一条,开启另一条

仔细分析以上四条规则,其实可以总结为两条:
1.模型开始时
这是模型开始时的特殊状态,当然在模型运行后期也可能会发生。这条规则应写在“传送结束触发”之中。
2.模型运行后开始工作之后一旦开始工作,机器人就要连续抓取8个临时实体,之后再判断下一步去哪里工作,这条规则应写在传送带离开触发中。而这段代码被执行,就意味着:本条传送带(正在输出的这条)输出端口处于打开状态,另一条输出端口处于关闭状态。
所以情况2.1和情况3就不用进行任何处理,保持现状。
对于情况2.2:如果当前传送带有,并且另一条传送带也有,并且这条传送带上第一临时实体创建的时间大于另一条,则关闭这一条,开启另一条
对于情况4:如果这条没有,另一条有,则关闭这一条,开启另一条

一般而言,只要能用语言或流程图把逻辑表述出来,代码反倒是最容易的事情。
思考:如果有3条、甚至4条传送带,该如何设置?
附件: 您所在的用户组无法下载或查看附件
满纸荒唐言,一把辛酸泪。 都云作者痴,谁解其中味?
[b] [url=http://www.flexsimasia.com/redirect.php?goto=findpost&pid=22696&ptid=4787]32#[/url] [i]zorsite[/i] [/b]

哈哈,简单和麻烦都是相对的。所以说FlexSim建模好玩的地方就在于每个人都有自己的角度来解决问题,没有所谓优劣之分,关键是实现目标。
多个传送带情况只得考虑,但是实际上不是很经常遇到(一个运输设备要管这么多输入情况较少)
返回列表