设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8793|回复: 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'8 `% G! H6 y* J
*/
& C: ]9 C+ u% z- j. E* ris
# t: A3 L8 I1 j; K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( u3 C' C2 z' P" }
do, L9 C9 C2 S. J* \: O; c
        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 [$ }$ N) R) G. v        if current = @.Destination -- else return
' ]' b9 Z) G4 m8 k: T        then
! [2 K7 C6 N) Z' V7 T. I                @.Destination := void;
* L1 _# N$ k  w/ X1 A                if @.occupied then
3 k3 V0 Z* b) b* l                        part := @.cont;: k7 n7 [7 Q5 Y, g8 R
                        @.transpOrder := void;5 q3 [1 `; \* [; ?8 t# r' ]) O$ T
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ w8 w& I# _9 x- w                                @,root.eventcontroller.simTime);
. H- I9 i( i: W3 s                        @.HasOrder := false;
4 Z( A3 H4 F2 R* s2 S# a$ S& N7 _                        @.DrivingHome := true;
* U; [$ J% m1 a& t/ C5 h1 f2 J1 J                        rgManager.tryToStartTransOrder;
3 n1 L  u0 e( L+ l6 ?                        if @.Destination = void
3 t; m& [1 u0 U, W( k% k4 }                        then -- no transport order for vehicle @
9 K: \+ D) r' B( b5 h                                @.Destination :=- S$ |- W1 @# B
                                rgManager.nearestFreeStation(@,track.~);
8 u9 ?8 D, D2 k. F5 A  `4 L                                newDirection(@);   
' B8 S! ~! s" c7 E+ O4 n) S) v                                if @.Destination /= void then
' |* v- \& J! x% R                                        @.Destination.NumReservation :=: S. @2 G; U" V) m+ j
                                        @.Destination.NumReservation + 1;
  y  x: t1 o1 X* T& [' q                                end;9 ]- `: _# w+ D7 t5 k2 y
                                @.CurrIcon := "drivingHome";( B5 F% R+ r3 j& R
                                @.DrivingHome := true;" i. e: B3 r. d; f
                        end;! M4 j* p0 Y0 v3 I% a) j" ^9 ?; i
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 m! r8 [9 w; Z. U& ~; a                        part := @.transpOrder;7 p3 Q# j' m: E  q) o) L/ y$ ?
                        part.move(@);-- load part# p& S1 i; R, ]$ r* T
                        @.CurrIcon := "load";
! ]' L0 ]/ X0 z1 `# N: O                        GlobalDistObj := part.globDestination;9 N& e/ n" l  s6 S6 ~& o; w
                        assignLObj := rgmanager.rgAssignL;
. h6 K7 E4 F1 \* j* V                        row := assignLObj.getRowNo(GlobalDistObj);5 v' d1 P+ }5 ?$ d& a
                        if Row = -1 then -- since 70
6 ]8 d$ D3 }3 b5 @& Q                                if lan=1 then
9 x# _; N: G8 Y9 Q                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* y. x4 v- k7 U+ |+ a0 D                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. n* K/ y/ o5 K* K$ B7 i6 O; T" @2 A                                else
3 m1 T) W( h$ L( b6 [6 d& N4 o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ m0 s8 e1 H  y! K0 ]& r; I
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( V/ C' R* q/ _( m5 w# w                                end;: {5 r, O  Y- e) Q
                        else
8 Y5 Y% w1 u, K7 v' q9 h                                @.Destination := assignLObj[1,row];
; Q  `/ N8 c8 }# I' h: Z: P                        end;                        8 J7 Y) `, H, j; r6 e2 u( C& i- Q/ [/ l. Q
                        newDirection(@);
6 F4 j4 s5 R( g9 a& y5 E                        @.HasOrder := true;" F$ e6 h( J5 S# L1 U& o% v* W6 O
                end;4 j& S1 R7 ]  Y. d4 F
        end;/ Y/ M4 F" }+ p, f5 T- x
end;        -- of the method
" M: f7 N/ u% Y" }! o1 b3 b( ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 U5 }. \/ s* U& V
6 i; k, I0 E5 L: {5 |: p这是AGV_putin中arrive的method。0 {$ ~* c6 U. S: N, s5 c: p, z- A

; @( ]! A% n2 h$ T当到达物料速度越高时,这个报警更多,$ X6 ]6 L6 O# a# g2 C3 ?- P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 h7 T, w9 }. @, A. L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ b9 Z2 T' \, v, F+ L$ ^+ h' h7 x
7 r. s) r. f# Z( a0 i$ i另外一个小建议,就是move,所有的move都可以这样
$ t% M( o% A6 F. Eif not move() then debug end
! ^% U7 P5 B/ }" G这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; Y% M; Y& ?, r8 V6 j
plant simulation中的free libraries有AGV模板,. Y4 x4 g) M/ ~% w
里面也有案例。4 Q) r" h( E' a: _& A# P
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! m3 j- G- `8 Y' p6 L: N
. V! Z0 i1 b/ q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " ^3 b+ X& Y3 z5 K' ^2 `* S% t

4 C. q3 t/ h0 v' u) O. H" C# ~/ |那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & }4 ?, h7 g0 G. P
这是AGV_putin中arrive的method。
' r9 [2 s2 K% q2 D2 ^+ W4 v
# D+ \# ]1 d: a! T" r% l& o当到达物料速度越高时,这个报警更多,
9 b  ]. y1 W  l6 y6 S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-26 15:14 , Processed in 0.014638 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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