全球FlexSim系统仿真中文论坛
标题:
编写任务序列调用操作员执行任务时的Tips
[打印本页]
作者:
lulu-luka
时间:
2017-5-14 13:57
标题:
编写任务序列调用操作员执行任务时的Tips
跟大家分享一下我最近学习、应用、理解任务序列的几个小Tips:
6 }4 w. ` x; G- l: h
1.任务序列中的实体引用和定义
" r* G# u# \ r
在Flexsim各种实体中的各种触发中,都会有对应的不同的标题语句,其目的是为了设置引用在代码区域内可以访问的变量。经常可以访问名为current和item的变量,current总是指向当前实体,item则总是指向与特定代码的执行相关联的临时实体。
" d! r- q) ^) r
对于一般的任务序列来说,采用treenode树节点变量的引用方式就够了。(也可以用centerobject\outobject\inobject等函数来引用,但是需要进行相应的S链接和A链接)
0 q; ?; k/ s+ Y Z* p1 A+ A
例如:treenode NN1=node("/NN1",model());就定义了一个网络节点NN1,在后续编写任务代码时就需就可以直接引用NN1了。
F. h# O5 @+ v% C5 {; r' t5 A( X
2.任务序列中的一些任务类型以及任务语句-装载与卸载
9 z1 z4 K; A" Z+ }5 y. r1 s& ?
在编写任务序列进行货物的装载与卸载时,需要注意前后的顺序,即装载货物的时候需要按照顺序,卸载的时候也需要按照顺序卸载,否则就不能正确的进行任务。
+ F2 i9 I1 T& m6 U0 t
另外对于一次装载多个货物的情况,简单的方法就是把装载的语句多复制几次,但需要注意货物的引用(第一个货物、第二个货物),相应地卸载的时候需要按照顺序先卸载第一个,再卸载第二个,在装载货物很多的时候可以编写for循环语句来实现。可以参考这个例子
http://mp.weixin.qq.com/s?__biz= ... 3ta59APORrJJYOVA#rd
/ V( Z8 V6 f+ k4 w
3.在推动模式下用任务序列调用操作员和Flexsim实体自带“使用运输工具”选项之间的设置
$ }) ^; {. A- p Q; Z
在推动模式下,模型中编写任务序列调用操作员完成行走、装载、装载行走到指定位置,选择了采用运输工具中用操作员运输货物,但是没有将操作员S链接到暂存区。是因为不选择运输工具,暂存区直接A链接到合成器就货物就会直接无间隔时间进入合成器,勾选使用运输工具则是阻断直接进入合成器的方式,从而用任务序列调用操作员进行运输作业(行走、装载)。如果同时编写任务序列调用操作员进行运输作业和S链接到暂存区,就不合乎Flexsim运行的原理,模型也就不能正常的运行了。
9 I& S9 V6 \* A# T9 {# W. \7 T
PS:这两天看到论坛里加老师采用拉动方式完成各种模型的例子,发现其实不编写任务序列,通过采用拉动模式结合全局表能够很好的实现模型。
作者:
慧娴亚伦
时间:
2017-5-15 01:25
感谢分享,这里在第二点插一句,装卸顺序固然重要,但是对于装卸过程来说,引用正确的装卸载item更为重要,要切记发布任务和执行任务的时间是不相同的,使用for循环的方式来发布陆续产生的任务的时候务必注意。
作者:
zorsite
时间:
2017-5-15 01:37
我很好奇那个flexsim仿真的公众号是谁在管理……
- R% O4 g6 n7 y6 r# o% U: L
因为比较懒,一直没有深究任务序列、moveobject、releaseitem的工作机制,所有就用系统自带的拉式策略。
+ m& R6 `* E- e" V: ?6 ]& {& m
陈老师的提醒非常重要,经常在群里看到有人问invalid task错误,其实就是任务序列在执行时引用的对象已经不存在了。对于明白其原理的人而言,一看就知道问题出在哪儿,而不明白的,可能就要“拔剑四顾心茫然”了。
作者:
慧娴亚伦
时间:
2017-5-15 02:24
3#
zorsite
X8 q5 M1 C. h ?) @# Y
+ |9 S. ?# {/ L9 b/ f
' I" B2 w1 \! g. f
据我所知,FlexSim仿真的公众号是一位企业仿真工程师(或者说是FlexSim爱好者)私人管理的,跟其他论坛似乎有一定的合作,对于初学的朋友有一定的帮助。
作者:
wangchangping
时间:
2021-1-5 14:13
很好的案例,感谢
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3