设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6770|回复: 9

[求助] 用AGV模板发生了以下错误,请解!

  [复制链接]
发表于 2011-11-5 16:38:28 | 显示全部楼层 |阅读模式
问题在哪里?

本帖子中包含更多资源

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

x
 楼主| 发表于 2011-11-14 10:37:54 | 显示全部楼层
没有解决,再顶一下。
 楼主| 发表于 2011-11-17 11:03:27 | 显示全部楼层
/* called by:        entrance ctrl of the object 'track'
3 [' R% z5 \5 y+ s4 k. T*/
7 T. \# \. m9 f/ B2 _0 N: his1 [. t. l5 k4 W9 D, g; w' M5 W
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* r; C/ W1 Y8 d$ g( d
do
: s- y- T' ?: n. z        Lan := rootfolder.Internal.Tools.AOLlanguage;
- `  C5 H( Z( D. ~        if current = @.Destination -- else return7 Y7 W) s& Z* {
        then$ N+ \/ x; d* j: U% l2 x% h5 V
                @.Destination := void;6 b9 w! S8 e0 e, M
                if @.occupied then' Z3 E% \& p& k) d
                        part := @.cont;
2 I  \$ \3 [+ z                        @.transpOrder := void;; U7 U* C  f/ a; ], b* g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 D( M9 {2 f9 [: n" R+ K
                                @,root.eventcontroller.simTime);4 F9 P/ |( u+ y% ~% w
                        @.HasOrder := false;" R* F  e; ^$ V# M3 R2 Q' f. q
                        @.DrivingHome := true;1 V' `, Z; S" R& B
                        rgManager.tryToStartTransOrder;
5 l0 B0 C9 w* L( \5 ~( N                        if @.Destination = void
# P1 j1 S) m9 ?- @4 T                        then -- no transport order for vehicle @
6 n8 v) a3 w1 S) o( U                                @.Destination :=% R/ P. |; f7 J3 q
                                rgManager.nearestFreeStation(@,track.~);8 O1 g+ \) D. A2 |/ @+ d& Z( y! }
                                newDirection(@);     O! i, w( J$ B% C, S; |" n
                                if @.Destination /= void then8 |5 X  Y2 O% _( ]# G
                                        @.Destination.NumReservation :=
& p' t  ^4 ^, ]                                        @.Destination.NumReservation + 1;
  y7 P& V: m) @2 [6 s+ f+ X- ]3 v                                end;
& l% v, X6 f4 q9 N                                @.CurrIcon := "drivingHome";
( L: `+ ^) y5 l/ O. O5 N                                @.DrivingHome := true;- ?- `7 z$ ]  k; n
                        end;
) k" q' v% {! R( F& J  z" |9 B  ^1 v. i                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& y% G: V/ Z; u; ~9 c: \' q  y, e5 y* z                        part := @.transpOrder;. K' ~# w' }- d, N3 i
                        part.move(@);-- load part+ S$ i! }8 f- _0 P
                        @.CurrIcon := "load";1 H- b) l  ^  d3 B' T& Q3 Q6 s
                        GlobalDistObj := part.globDestination;
* G4 B4 A3 K  u                        assignLObj := rgmanager.rgAssignL;) p; Q. ^' f$ s* J& k4 l, ^
                        row := assignLObj.getRowNo(GlobalDistObj);, h8 G  H% a& o* {* s/ ], l+ B% U
                        if Row = -1 then -- since 70$ a. ~5 g: L8 W3 H
                                if lan=1 then
, e4 I% [' h  O0 {) F9 y) o                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* w. ?% K; e& o# k! S                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 t* m; h+ f5 k* F8 I- a
                                else
, g7 t. a$ _6 X2 b7 `/ Y+ R1 D" |                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% E; `  H. R& z3 j! R7 |  Z                                                to_str("in docking station: \"",?.~.name,"\""));                                ! d/ ^& E$ Z% Y  J' L* q
                                end;
/ H; T, {% @, S) W! b2 s4 E                        else
4 e  N- Y; J; l' m1 e% Z                                @.Destination := assignLObj[1,row];3 [7 K, T3 I: m
                        end;                        ; n3 }9 J( D/ }/ o7 R% u& ^
                        newDirection(@);$ S- B( s& N( I' E* v
                        @.HasOrder := true;8 D7 c' W; ?% v$ A8 S' M' f
                end;, W! {# L9 J( k8 C; {" G
        end;5 H" d" ?" _* s' E+ j
end;        -- of the method+ h' {* N7 \1 U4 }. x. W) k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & ?& L% ~9 K- a

7 j) e% C6 S% R. n- h这是AGV_putin中arrive的method。
' H% S, u$ ]0 c2 [8 n9 m) [2 c
8 Q! k- T8 _7 [+ C: |7 C当到达物料速度越高时,这个报警更多,3 W& i+ v  f/ Q8 i+ A9 Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" u6 s7 u0 x8 e! [1 r) y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' {. \: |: Z1 n( @& h4 y

# V* w- O, b0 K另外一个小建议,就是move,所有的move都可以这样
1 u' S: C0 T4 W( l+ |if not move() then debug end) R% t3 \1 O8 J5 e1 N+ b
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' h: P& l2 ~  j! h
plant simulation中的free libraries有AGV模板,
: l. Q/ i+ g0 n2 s; @里面也有案例。9 M$ h$ o4 h% x3 c8 @- V! P
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" |& H% t3 T9 {* T6 o! C- O  d5 P
" V! {& h% K8 D' l4 M! e我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( \& l$ c- V! E- F
$ C( S8 a4 o1 Y9 _+ x那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & E/ N& y7 u. _5 i$ Q6 E
这是AGV_putin中arrive的method。
9 H: {$ n" j: f1 Z- T& }6 i
5 z0 s( x! `) O+ x当到达物料速度越高时,这个报警更多,
. ~2 }+ V3 G  P$ h6 |- T% v+ D
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-2-25 20:06 , Processed in 0.018866 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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