设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8487|回复: 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'/ L$ P% y7 [* Q; Y6 X
*/0 ]. x7 v4 U" S
is
# O. E2 X, ~& f; ?9 T+ ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 s2 d3 w8 J" w. B  P
do
" l4 v8 Y$ J# H! {        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ v# Q, q: C3 z( Y3 T; V        if current = @.Destination -- else return5 w7 Y; i* g# k
        then; u2 f# G" ^1 }1 d8 K* s
                @.Destination := void;$ ]  i2 }+ G* F5 Z
                if @.occupied then/ j" j, m0 \0 n7 }* z
                        part := @.cont;: J6 c6 ^; {! |% `6 ~
                        @.transpOrder := void;4 M* p/ F! U. i$ d" o8 @/ u
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ i, q/ a  }3 R8 D; B6 t
                                @,root.eventcontroller.simTime);9 |" W6 [* m% P/ e, V
                        @.HasOrder := false;) G8 F+ A/ B0 ]2 g% g
                        @.DrivingHome := true;5 {7 `$ a& t, y+ f
                        rgManager.tryToStartTransOrder;) X0 Q+ M  U7 V
                        if @.Destination = void/ I0 ]/ Y4 B* o- |4 J1 A
                        then -- no transport order for vehicle @) r' Y$ o! O7 q6 g0 z# v% `
                                @.Destination :=# P% O+ w9 m0 [6 m( \" n
                                rgManager.nearestFreeStation(@,track.~);
2 N! r3 n- m, }; M  e; K% H# j$ {                                newDirection(@);   3 R3 G$ s" Y) _5 P
                                if @.Destination /= void then6 T4 G) ?1 o8 Z' n5 j# |4 q; R
                                        @.Destination.NumReservation :=
; [7 }0 Z1 t4 J/ Q, ]: _                                        @.Destination.NumReservation + 1;# Z- S& F9 M  c+ L# i* h
                                end;
- }0 [- ~' q7 i2 Y                                @.CurrIcon := "drivingHome";. @, K: s* o6 U' e
                                @.DrivingHome := true;) R) h: }4 o2 \" [1 \- a) E
                        end;/ `1 ]1 e1 y5 X0 G3 }8 P, I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( j. H& a' b/ j1 a, A
                        part := @.transpOrder;
: S* m9 [8 v4 h/ R1 e                        part.move(@);-- load part0 Q! h& d6 D" ~7 m+ f: c" _1 L  n: u
                        @.CurrIcon := "load";. R0 s7 R+ _7 f, {5 ?
                        GlobalDistObj := part.globDestination;+ A* a# L  U: v
                        assignLObj := rgmanager.rgAssignL;
+ b) Y- V: H2 }5 [) O' y6 R                        row := assignLObj.getRowNo(GlobalDistObj);
/ x. z0 m1 `3 ^* C                        if Row = -1 then -- since 70+ @9 r& P/ i9 v  D' B* i1 x
                                if lan=1 then4 m7 u: Y4 F+ d- R  u  |
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% a5 k1 ?- |2 x3 F1 j$ G9 X9 q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ ?3 a' u; W' K! H1 r8 z                                else* X1 N# N! W+ q! L$ G+ \2 z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 S+ Z' k7 q2 @* M$ T3 U
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ }& `6 K- V2 `" g8 p: m8 c                                end;
; g2 a/ y% o* z; e1 C4 v, [                        else
8 f/ m' H& @; V' y                                @.Destination := assignLObj[1,row];3 m+ S, m& o. X) C
                        end;                       
- a' W8 g) C# V                        newDirection(@);
0 P% `& @" ~9 x                        @.HasOrder := true;4 L) P4 q4 l* X- ~  y
                end;
! C' E' q. q9 D6 H' w* ]        end;- v  {  `* K1 q9 g
end;        -- of the method
% `8 C1 `; F* D6 L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 ~% @4 A" V  N5 M* Z/ R. o. P2 f/ H4 B7 J3 w" V) S+ g5 z
这是AGV_putin中arrive的method。
1 _, y1 q0 s/ m* f0 {, S& p; F) V0 m8 U' b! G$ w
当到达物料速度越高时,这个报警更多,* r- j" i" @- @+ k! D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 e6 |. g3 X* G4 n- L' N
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 a$ `# l- ~$ y' e% h1 F2 U
% S- c6 p3 Z: I1 |$ U$ W$ w9 A
另外一个小建议,就是move,所有的move都可以这样
  @/ y2 U5 B  J/ t: x$ Y& kif not move() then debug end' G9 j; B' h/ Y- h" A
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. ^' N8 v6 A* V
plant simulation中的free libraries有AGV模板,
2 M, P3 k7 K4 r  A/ c6 X4 V. M& G% N里面也有案例。% N5 o# {" g- C
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 C9 d8 j" M/ q4 A& G* {; L
* O* t; B! H& A% G+ ^
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' [$ A2 L' {- o1 Y9 I
; L' O$ X4 S4 h3 L) F# R6 c, l
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 r, u  m7 x8 ^4 [4 x6 z这是AGV_putin中arrive的method。
* a( {2 H, ~7 `# @
" s. v3 @& a# B- {当到达物料速度越高时,这个报警更多,

) c, J, e8 }0 z8 b! k$ Y: ]另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-7 02:36 , Processed in 0.018747 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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