全球FlexSim系统仿真中文论坛

标题: 請求break掉任務序列的方式 [打印本页]

作者: r0805995    时间: 2015-3-5 21:05
标题: 請求break掉任務序列的方式
本帖最后由 r0805995 于 2015-3-7 16:15 编辑
' [- Z! M( g5 n& C, F+ N+ e
9 d1 B2 |- _! p+ \+ M例如有A B機台,當robot取得任務序列抓B機台上的加工物件放到A,robot正在travel時A機台breakdown,但先前任務序列已經先觸發,所以他依然會將加工物件放到breakdown的A,我的想法是
/ m1 \3 q3 n! t/ _: j
. n$ Q& }2 ]5 }2 x( l( }9 \在Onbreakdown的觸發 寫一個指令來摧毀這次的任務序列。
作者: 慧娴亚伦    时间: 2015-3-6 00:20
建议试试先占任务
, j" o6 Z3 p: h& D) I用户手册中可以搜索Task Sequence Preempting,找到关于先占任务的相关信息。
作者: r0805995    时间: 2015-3-6 18:46
謝謝慧嫻,之前用任務序列有注意到preempting,但當時看不懂其用法,經您的提點讓我想起此方法,待我研究一下再與您進行討論,謝謝!!
作者: r0805995    时间: 2015-3-7 15:21
慧嫻 我嘗試用了 PREEMPT_AND_ABORT_ALL 和 PREEMPT_AND_ABORT_ACTIVE
% t6 s+ a* D$ b5 v1 h我到tree內部檢視,發現robot只是建立這次的任務序列,前一任務序列還在,能幫我看一下嗎,* v3 F& V: @# K. D6 m  i" ]" e

0 K. G* @1 ~  O( }, X: I# @8 }按回復系統一直顯示加載中.............  無法傳模型,故將模型傳到最上層的PO文內
* a; X/ k) N3 |+ d# P8 O8 A# V8 R+ S2 v6 N. _) b& G( `5 ^
p.s 事件發生在Runtime 為2558秒時。
作者: r0805995    时间: 2015-3-7 16:16
本帖最后由 r0805995 于 2015-3-7 18:24 编辑
" [1 Q" H6 d' [: M3 u5 ]# ^+ p, N8 A2 K* S" b3 M
4# r0805995
1 T5 g$ J# h" R
5 A# c+ Q1 ^0 l1 E4 V7 l# a" r可以回復了,我將模型重傳於此4 \, o  D- H" Z, n; z
4 c; t8 [) z% ]8 t  z" n7 I
Version 7.1
作者: r0805995    时间: 2015-3-7 17:07
我找到一個方法可以達成此做法,但是比較暴力
. |1 }" U0 w+ r  Ttreenode robottask = node("/R_2000iB>variables/activetasksequence/1", model());
1 r+ t: C3 _* C# C) ?' B8 `- Wdestroyobject(robottask);
+ l1 z+ l. d- G* }  \, W, X: A) k  t0 {! O" v: ~  k
雖然解決了但還是想知道preempt的用法,我的測試過程不管有沒有加入preempt 任務序列都沒有變化
作者: 慧娴亚伦    时间: 2015-3-7 21:23
destroyobject(task);方法我也常用的,我觉得这个方法挺好的 :-D
. w- e8 w, d2 N+ @& P8 R$ y2 F- k; M下面上传一个简单的对比,PREEMPT_AND_ABORT_ACTIVE和PREEMPT_ONLY的模型,可能对你理解先占有帮助~
作者: r0805995    时间: 2015-3-8 03:04
7# 慧娴亚伦   i" c: Y: x/ K+ G# r
: f4 h5 Z, @$ @2 r. K
不好意思 慧嫻   我找不到你程式的觸發點~~  能請您稍微詳細指點一下嗎?




欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3