全球FlexSim系统仿真中文论坛

搜索
查看: 18071|回复: 30
打印 上一主题 下一主题

协同任务序列(CTS)与子任务(SUBTS)一起使用的小例子

[复制链接]
跳转到指定楼层
1#
domcylai 发表于 2013-2-20 15:58:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
RT

CTS协同任务序列和SUBTS子任务序列一直是大家学习的一个重点,难点。为了便于大家的学习和理解,我给大家贡献一个小案例:



如图,有两个操作员黄衣和蓝衣进行配合工作,各自将货物搬运至中转站(假设中转站自动将货物组合),最后由黄衣搬运离开系统。

我们知道,任务序列一旦创建,那么操作员的路程就确定了,那么如果在这个流程中如果需要判断一些条件时(例如:货物不够数量?最合适的站点),这是就需要使用子任务序列,让这个问题在子任务序列创建之前进行判断,所以只要解决下面两个难点问题,那么CTS和SUBTS的配合大家都能很快掌握:

1. 任务开始,蓝衣所在的发生器没有货物怎么办?
2. 中转站组装好以后, 黄衣如何操作,是否能将任务序列合并在CTS中?

这个模型我也放出来给大家, 大家打开可以看,脚本代码都在第一个发生器内,注意先后顺序。有什么问题可以提出来,欢迎大家交流!
PS: 模型是用Flexsim 6.0.2 EN做的,大家需要安装最新版本才能打开这个模型 : )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
29#
zhredstar 发表于 2017-6-21 00:43:37 | 只看该作者
感谢分享
28#
慧娴亚伦 发表于 2017-6-14 02:33:57 | 只看该作者
在代码中声明一个变量只是为了后面引用方便,有没有声明变量,以及变量叫什么名字不影响具体命令是否执行。
27#
lulu-luka 发表于 2017-6-14 01:11:08 | 只看该作者
25# 慧娴亚伦

陈老师,那个局部宏的声明是搞懂了,但是第一个那种重新赋值还是有点疑问。
一般重复使用同一个变量名,每次赋新值,该变量的值应该是最后一次赋值的内容。
也就是说我觉得上面那种方式得到的op1travelkey应该就只是最后一个任务TASKTYPE_FRUNLOAD,但是实际上在insertsynctask时,操作员1是执行了op1travelkey变量被赋予的所有值即所有任务。
我不知道这样理解是不是正确的,求指教。
26#
eb_sun 发表于 2017-6-12 15:01:40 | 只看该作者
代码的功底很重要,学习了
25#
慧娴亚伦 发表于 2017-6-12 13:37:32 | 只看该作者
23# lulu-luka

1、可以,重复使用同一个变量名,每次都重新赋值,但是个人不推荐这样做,某种程度可能导致代码阅读困难;
2、这是声明一个局部宏,也就是在这个代码编辑域内OP1SUBTS 就代表了1。宏的作用可以简单理解为,将不明意义的数字转为有意义的一串大写字符,方便进行代码编制或者阅读。
24#
skyuan 发表于 2017-6-12 10:35:35 | 只看该作者
先下载再看,多谢
23#
lulu-luka 发表于 2017-6-12 08:28:26 | 只看该作者
本帖最后由 lulu-luka 于 2017-6-12 08:36 编辑

刚刚把这个例子学习完~基本上搞清楚了TASKTYPE_CALLSUBTASKS的任务类型的作用机制。
但是在楼主编写的代码中我看到了一些我没遇见过的编写方式:
1.
  1. int op1travelkey = insertproxytask(myts, operator1key, TASKTYPE_TRAVEL, current, NULL, 0,0,0,0);  
  2.     op1travelkey = insertproxytask(myts, operator1key, TASKTYPE_FRLOAD, item, current, port,0,0,0);
  3.     op1travelkey = insertproxytask(myts, operator1key, TASKTYPE_TRAVEL, midstation, NULL, 0,0,0,0);
  4.     op1travelkey = insertproxytask(myts, operator1key, TASKTYPE_FRUNLOAD, item, midstation, 0,0,0,0);
复制代码
只定义一个op1travelkey,但是却定义了很多个任务,在模型的实际运行中看来这样编写是有效果的,想知道到底能不能这样编写(可能C语言学的不好,不太清楚代码编写的格式问题),求指教。
2.
  1. #define OP1SUBTS 1
  2. #define OP2SUBTS 2
复制代码
看来这是一个定义和应用的语句,但是没有见过这样的用法,想请教这种类型的引用大部分用在什么情况之下,而且为什么 OP1SUBTS后面还要跟着一个1,OP2SUBTS 2后面还跟着一个2,在后面看来好像没有用到,还是说这只是一个定义的格式问题,求指教。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-8 11:28 , Processed in 0.071739 second(s), 15 queries .

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

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