设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9379|回复: 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'# y6 c$ P5 x1 k6 |5 o# t# ^# u
*/
8 f; U6 B/ ?. A/ f+ {* ~; Fis
; \/ k. G( B, C' x" Z5 N! P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 X) l, F+ K! {6 N. _do- G; u, s9 Q: ]" Y9 k) \* A% F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, T$ h  Z0 e1 |/ P) p( v9 e1 S6 W        if current = @.Destination -- else return
4 I. M0 Q( h. j/ D, g        then
8 ~2 a' f7 w- T  v2 }$ ^# W                @.Destination := void;
- V, |% V  e2 p2 ]1 I                if @.occupied then' F: m. j! R. j7 ^! a. M
                        part := @.cont;3 v8 P( c; ]7 `& }2 w
                        @.transpOrder := void;3 x; A3 u: \9 I. C: i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" R% m* Y1 c5 M' R                                @,root.eventcontroller.simTime);/ s' C, L1 a' Y8 m  M3 o# n
                        @.HasOrder := false;% a7 r/ ]7 D% \- Q  v
                        @.DrivingHome := true;+ ]7 L" Y$ p; i  m+ z
                        rgManager.tryToStartTransOrder;- ?- A# ^8 h% c6 [
                        if @.Destination = void
% k. O6 E+ Q* B! p- _6 J3 {4 V( Y; l                        then -- no transport order for vehicle @
1 A" Y- |- g7 O* W/ W. Y                                @.Destination :=
4 X7 N8 T$ G) n! X                                rgManager.nearestFreeStation(@,track.~);
4 T/ i; _5 S% c$ N& ~$ C4 h" E                                newDirection(@);   
9 [8 x7 V& \$ X. j# M! e+ I                                if @.Destination /= void then
, l7 X% @, D7 h2 p! w                                        @.Destination.NumReservation :=
: c& K0 \* U9 i( {# p1 p                                        @.Destination.NumReservation + 1;$ m  N( X6 e+ x& ?6 l8 M& j
                                end;
9 c% W* D& L. m4 C$ F% ~                                @.CurrIcon := "drivingHome";6 Q: v% A$ z* L* ^4 B
                                @.DrivingHome := true;. w; ]6 H7 H  Y6 R9 G
                        end;
/ p  W6 H. ?6 B- V2 O) ^: {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 {, R! x, b2 R+ }. C4 V) g                        part := @.transpOrder;5 Q+ g, o1 Z3 h2 D4 ], C
                        part.move(@);-- load part
! ?) ^# z/ o1 N! d! |) {                        @.CurrIcon := "load";
2 E2 V$ w6 M  L8 T; c0 n                        GlobalDistObj := part.globDestination;" v) _* V) P( r- y/ x
                        assignLObj := rgmanager.rgAssignL;
7 i- D' T- K% t2 ?                        row := assignLObj.getRowNo(GlobalDistObj);' |% C  x# l8 t
                        if Row = -1 then -- since 70- {# t; a$ j( u, Q0 |8 k
                                if lan=1 then) T  z9 p* j3 K. C0 }; m
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; [0 Y# v$ }, g8 ?* r4 U0 s                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 _4 {* }+ c! q; M: f                                else
' [# C8 z8 T; q" C+ O, u                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! ]0 M2 s; A( F# I& J2 P$ g, X1 k
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 l; H: U. I2 d; b; ]' G& F- V5 S9 v                                end;4 _( \; \6 c% i) q( q
                        else, p2 v; @  T8 I: b
                                @.Destination := assignLObj[1,row];9 p( F5 L9 S. ~* I' k
                        end;                       
; n/ ~. w& l/ @; S* t6 A                        newDirection(@);
( m% @" h) Y& T0 ?- \% n; z                        @.HasOrder := true;
4 B; x) k) U3 s" ^& c% E                end;
3 p% J8 }* f) e% j8 n        end;/ n7 s- E3 H4 l. o
end;        -- of the method
! T3 x7 U  }: j, |! }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   a0 T4 j6 p7 s: t
3 A+ u4 G6 r+ f' v9 `
这是AGV_putin中arrive的method。! i: A* y, x; ~# h3 R' u& w% Z

5 e+ M7 ]6 t3 ~" t9 M( _8 r4 u当到达物料速度越高时,这个报警更多,
* J* `0 P6 `7 v8 J+ _! g可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% m; t9 ?1 g# T9 u6 D7 f
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& m2 v! b  Z5 w: U1 I5 @' z
* T! R* Q2 ~2 A6 q. n& H& N
另外一个小建议,就是move,所有的move都可以这样
; c( v1 J7 A) g8 kif not move() then debug end
9 f" K5 a. A5 w( j/ F这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, i+ |7 W/ R2 [, Y- h* ~& Eplant simulation中的free libraries有AGV模板,8 g& E# w* x) @3 `7 m7 Z: O; b
里面也有案例。/ g6 x# l& G9 H( N; B. e& F
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) b4 ^) k1 [; h0 P4 N
1 E" C4 @7 p$ ]( c* J" J我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * w- @5 }3 z% D8 k9 O) z3 O
7 X7 S0 q0 [- |, e5 X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, W% e: e2 D# p; r, j' n( t这是AGV_putin中arrive的method。
$ B  m* J0 _( w1 L& E5 Y8 b0 J5 o6 Y9 }
当到达物料速度越高时,这个报警更多,
; R7 ?! \8 ?$ F6 F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-28 23:40 , Processed in 0.021846 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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