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