设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7075|回复: 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'- q2 [' h$ y1 Y
*/
7 B" O; }3 v% C; }is
$ }( n5 r$ I" C. T! `* ]# X        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 w  }0 f! q5 |% `. d6 n$ S& R0 E
do2 p! ?. @0 @8 N" S+ c" q
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- _: v' n/ j1 L, B* m% R        if current = @.Destination -- else return
+ u% c1 b  L! N0 x5 S/ \        then2 r+ r5 g7 X0 R+ _* c5 o; Q
                @.Destination := void;7 o1 P5 r, I, x4 G+ A: Y8 h; G
                if @.occupied then
  e+ U# H0 v/ u, j& s6 z( S                        part := @.cont;! q3 V  P, r7 J% z6 C5 u2 G
                        @.transpOrder := void;
" w4 @( v, R; U                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 R" ^8 y9 V% r5 J/ G0 D                                @,root.eventcontroller.simTime);
  v8 T& k. x6 T! l3 v8 v                        @.HasOrder := false;
* j" N' E: O% A9 a                        @.DrivingHome := true;& B9 l& t0 T/ H
                        rgManager.tryToStartTransOrder;/ X' Z9 E5 B8 f7 e* B/ `
                        if @.Destination = void
$ N1 G* v6 O, W, Y5 m2 W' b5 b/ v                        then -- no transport order for vehicle @9 r# z8 S, p% c2 G7 @
                                @.Destination :=' c9 v, m+ n  C1 N0 D: y: m1 \
                                rgManager.nearestFreeStation(@,track.~);- k. F! B% f6 f/ Y' A: h
                                newDirection(@);   
3 I! ^/ h" J/ }  K                                if @.Destination /= void then
! r3 b% k2 j, M5 P/ c7 I% v                                        @.Destination.NumReservation :=
. i) g2 W: ?" d4 N                                        @.Destination.NumReservation + 1;1 J, u8 J1 ]0 y, Z: W/ _
                                end;
+ `* e9 [0 B+ u1 L9 m                                @.CurrIcon := "drivingHome";$ j8 ~' e/ m9 Q! L7 n
                                @.DrivingHome := true;" D+ A" U3 x9 r5 U" w. D
                        end;
; R2 L2 Q/ s& P3 E# Q9 P6 [                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! ], S- ]# d& y
                        part := @.transpOrder;
9 i2 E0 j( X$ X+ K7 w; t                        part.move(@);-- load part
: M7 B5 R0 B: @0 I! |4 w                        @.CurrIcon := "load";7 A) a1 x6 \& I" K, J
                        GlobalDistObj := part.globDestination;5 y% ]7 |- O* u- k5 b9 s- B
                        assignLObj := rgmanager.rgAssignL;
& ]3 Z, L/ T: S% q$ }                        row := assignLObj.getRowNo(GlobalDistObj);  C" n' Y  G$ A) {; j" [" V- U
                        if Row = -1 then -- since 709 g6 M4 h2 H2 U% {& u- R
                                if lan=1 then
; ?3 E' ^# m2 F9 R0 O0 ]                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* P$ [0 y# l( O8 e8 q0 I
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* S) O) J& S8 Y! m& Y6 ?                                else
2 a  w6 ]) o; p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 {1 W$ l" d1 L$ L: ]6 O2 G                                                to_str("in docking station: \"",?.~.name,"\""));                                  y7 j/ ]/ c7 a1 `
                                end;
& u) D9 d' c% h7 }5 ?; u) o/ o                        else0 q& d+ B' l" `  g% p
                                @.Destination := assignLObj[1,row];
, o, N# p/ }% e  f/ z, Y                        end;                        + [; B2 M6 W' E6 q4 n9 {
                        newDirection(@);
0 I6 C. A, |4 U                        @.HasOrder := true;
3 g  X9 d6 p/ G                end;5 p2 a# b& J) W- `; y, |$ u7 P7 @# }
        end;" {' V$ \1 ^0 K3 Z, X5 o
end;        -- of the method5 F$ x, P7 U- v2 A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 [) B' P) g# D& \$ E% u, E2 G& C7 K1 U) T9 ]8 |, x
这是AGV_putin中arrive的method。
0 W5 c5 E+ J: K. J* `' h
6 W7 `  d1 b8 R9 B* f当到达物料速度越高时,这个报警更多,1 h; i: f; q$ k  ]. h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& G1 J2 m3 v4 D0 z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 O2 u+ v3 k- A
  X: h. \' }& x! G, Z8 \
另外一个小建议,就是move,所有的move都可以这样
. j  N6 F1 ?) \/ T: N' N& ^2 x/ dif not move() then debug end
2 {4 X7 {' U/ `& b1 N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# `" Z- d/ b3 e- S! }. Iplant simulation中的free libraries有AGV模板,
! ~% R- [; h8 y* y: X里面也有案例。: Z2 n4 q: @* Q' B- W0 n" l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! ~. h; j1 }, x8 T6 z( I
' N+ p$ C( {2 ^
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) h! z, A. r; [: ?- J

& Q  A/ f  {/ n% R) `3 S那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + g7 S3 C* `: y$ h! l
这是AGV_putin中arrive的method。  P1 y, `6 a; ^( l  l
1 N+ P" {* n0 H; l, p2 B4 O% h( k
当到达物料速度越高时,这个报警更多,

& z# d% H4 `$ J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-15 06:02 , Processed in 0.027088 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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