设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8884|回复: 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'
; f. F% D+ ?8 {0 m*/
# f4 D% z2 h/ k+ B. `is( W" B1 E+ ?$ e  @, D
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) ~. o! z* B3 S0 ?+ i
do% X) L3 E$ e9 b% z9 U: s
        Lan := rootfolder.Internal.Tools.AOLlanguage;
' X8 c- A/ k. ^3 O3 P4 J+ a  n        if current = @.Destination -- else return
, T% f( n3 d$ c) D3 ]/ v        then
' `8 Q4 H7 f- j8 a, R. u                @.Destination := void;
/ Z' \4 c6 e  E7 M                if @.occupied then' e$ l$ I, M  r9 |& o/ r/ f# C5 f; n
                        part := @.cont;- g$ \) k) G9 ^. _
                        @.transpOrder := void;" d9 l0 T& Z+ t# o4 H! v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ p$ N$ W+ D( @3 @
                                @,root.eventcontroller.simTime);
8 q& y: R8 V( O5 Y3 L                        @.HasOrder := false;' H! ~; J& q' |! h6 n
                        @.DrivingHome := true;0 _  `" f6 e9 @8 p- o
                        rgManager.tryToStartTransOrder;
; f) ?" m6 P0 H                        if @.Destination = void
1 l5 W2 y6 u5 s) w" B$ U                        then -- no transport order for vehicle @
2 n3 j0 ?; p# p7 S$ V$ ]/ i3 i                                @.Destination :=5 J; D* l  H' f2 P, L2 w* [3 N
                                rgManager.nearestFreeStation(@,track.~);7 V- d! k6 L5 b3 o2 c; d
                                newDirection(@);   0 r+ T6 P) [& v3 s7 k7 G! f" B$ F
                                if @.Destination /= void then
6 @! M( z( p! t. x# R# u" E                                        @.Destination.NumReservation :=
# o0 [. t0 }, F$ g( F: S! _0 Z# l                                        @.Destination.NumReservation + 1;
& a% D9 G8 G* Q& P                                end;& R$ F: U" A! J$ o: ^
                                @.CurrIcon := "drivingHome";
( G4 ~  d" t6 k# K2 v" O                                @.DrivingHome := true;, @  I  j0 L8 D% M' `; N
                        end;
, G1 H, w/ m- M2 h" L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 I3 F& t; ~8 l( G  m
                        part := @.transpOrder;/ w8 Q' `# Y9 \0 X; `$ y4 R+ Y5 Y
                        part.move(@);-- load part
  [+ f0 U* N% F) K6 w2 {                        @.CurrIcon := "load";
% W/ }, i0 i+ Z$ T; q/ I% l/ o                        GlobalDistObj := part.globDestination;
# a  [5 }+ {6 w) F) k) G% w                        assignLObj := rgmanager.rgAssignL;
- F2 O2 U, n$ s8 Q. `1 y& M8 ]                        row := assignLObj.getRowNo(GlobalDistObj);* ?! t/ D* l& X/ G  k: Y# m
                        if Row = -1 then -- since 70; ^$ X) S, `5 }- ^* x
                                if lan=1 then+ f+ g+ m* g4 y/ x
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 w1 X5 O% E+ `: P2 j4 R                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 ~$ j7 a6 s5 B! H) f0 W
                                else( N, O& B2 t: _; f& ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 [- p3 ~/ N( _7 M2 @/ P* Q7 s
                                                to_str("in docking station: \"",?.~.name,"\""));                                , i9 k8 ^/ o- a4 a" R
                                end;3 r' f. O" d' c4 Z7 |8 g$ v* o8 I
                        else
9 g% Y/ c/ D6 [3 Y; S! t% C6 T                                @.Destination := assignLObj[1,row];
6 Z; R, x7 r! V                        end;                        0 I1 a7 U3 d4 B; P( W" q- m5 D+ o( O5 c
                        newDirection(@);! d5 I9 }! Y: G' U+ k* j9 P3 C
                        @.HasOrder := true;6 {- X/ a4 e  o9 ~1 ^) E0 M8 ?
                end;& K5 e* E& s" |9 F) Z
        end;
% L3 ^5 H5 _. J" }- c; ?end;        -- of the method' j% r5 P; r" W7 v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! A0 a* c3 ~, d" f" c% b  n! k/ `- K8 T: w
这是AGV_putin中arrive的method。2 }! S2 t, ^5 k6 ?1 ^) q7 f

% h; o. A9 K' S4 x" E" G( r! s当到达物料速度越高时,这个报警更多,
5 h! o6 G  ^. ^3 z8 l可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# g: }" G. u! ^" E2 d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 i" ~: \, j; n% N" u; `  ~
' r6 H; B- K) E, x另外一个小建议,就是move,所有的move都可以这样
- k) T0 T; k: Q6 _" \! w/ Iif not move() then debug end, H" e: ?( t" r! h0 N$ r5 [
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 Z* m( a4 R7 j' w
plant simulation中的free libraries有AGV模板,( c- \* o6 m& `3 F/ @
里面也有案例。$ g/ g, r1 B; K/ c
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 s5 V) M* |) s# W. {  f  t2 G; I& s7 n0 b8 e$ o
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& i% F/ c8 b- t, G  N( P
' a# }+ N, b- |$ v# F6 O* U那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / M9 {3 h% {9 V9 c. v7 V
这是AGV_putin中arrive的method。. P) J: B" [7 m+ ]& A6 r
9 u/ G* W# S& N. K+ d
当到达物料速度越高时,这个报警更多,
- X: R2 E( b: v- t- C/ B
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-2 08:07 , Processed in 0.015649 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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