西姆极客 码农 flexsim如何关闭中间端口

flexsim如何关闭中间端口

2018-12-24

J:对于关闭输入端口,有closeinput(current,*)。如果想要关闭中间端口连接。有相应的命令吗?

李冬:在默认逻辑中,input和output是基于flow(流)概念的,FixResource(固定资源)的上游在默认的连接下会将FlowItem(临时实体)moveobject(移动)到下游。而TaskExcuter(执行器)则是扮演者中间运输的载体。因此没有从FR->TE的过程,而只有FR1->FR2的过程,既然没有FR->TE的过程,自然也没必要去设置开/关的机制。

J:我在搞一个人员安排分配的问题。 遇到了一个想关闭中间端口的逻辑。 或者有其他实现的方法。

李冬:View菜单,Edit Select Objects,在模型中点击你的FR实体(它会变成高亮,或者叫黄选的状态),然后在右边的菜单下找到:

李冬:在这个列表里应该可以找到:usertransport这条属性,记住它的名字。

李冬:这条属性在实体中是一个节点存储着,它的值应该是0/1(关/开),如果你在脚本中,可以使用 getvarnode()这个方法获得这个属性节点的地址引用。也可以使用getvarnum() setvarnum()查询和修改这个节点的数值。

李冬:同理如果以后有一个存储着字符串的属性节点,你可以使用getvarstr() 和setvarstr()查询和修改字符串。这是实现你功能的一种方式,通过开关来控制是否调用运输工具

李冬:Demo 小例子:构建如下图的模型:

李冬:在Queue的离开触发 OnExit中,写入一句代码:

setvarnum(current,"usetransport", fmod(getoutput(current),2));

 

李冬:这句代码的意思是,修改”usetransport”属性,其值等于这个对象的吞吐量总数与数字2求余数。当余数=1时,使用运输工具,当余数=0时不使用运输工具。

李冬:观察模型,新建一个Dashboard,在空白的地方添加一个Output per hour 、。把Queue和Operator添加进去,观察运行结果,Queue的吞吐量是操作员的2倍,也就是说操作员只搬运了其中一半的临时实体,而另一半都不需要他去作业。这个功能就这样完成了

李冬:练练手吧

J:理解了 。

模型:下载地址

以上聊天记录写成日志已获得J的本人同意。

 
 
欢迎扫码转发

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

12 − 1 =

Scroll Up