设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6679|回复: 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'
) b7 ~$ W1 m5 [" M2 X8 G*/
' z+ z" l* B! I# T7 f2 E+ A% K8 Mis
/ m0 ~. w. C( }5 }6 s        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 q" O) Y1 ^6 F& k4 \) t1 b
do6 b4 w( `% M, P3 R3 S$ c+ N
        Lan := rootfolder.Internal.Tools.AOLlanguage;% G+ ^# b0 G% S
        if current = @.Destination -- else return) j- F7 J1 j! x8 S4 N. i0 z2 l
        then2 Y' h8 w7 P' a) ]
                @.Destination := void;  X& z2 F' ^1 f" q( @3 a
                if @.occupied then
* W7 b2 T8 A9 S2 O; D                        part := @.cont;2 F3 [4 e2 M  C7 B& I
                        @.transpOrder := void;! M) n6 k2 E; y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: }% `. q6 Y( f' i
                                @,root.eventcontroller.simTime);
4 _& o$ P# ~/ \% D8 F+ S' |2 y                        @.HasOrder := false;3 f: m$ V/ `2 \$ P
                        @.DrivingHome := true;6 M* L3 A4 W/ U, O8 D
                        rgManager.tryToStartTransOrder;3 y3 }# ~9 n' @& r  ~/ y
                        if @.Destination = void/ O! A2 _2 _+ u3 `) K, Y1 ]
                        then -- no transport order for vehicle @
! t- ?5 f' q3 V7 z" ?                                @.Destination :=
1 F1 O" Q% ~4 l9 P5 G                                rgManager.nearestFreeStation(@,track.~);
1 {0 r& D0 S+ ]" e                                newDirection(@);     T' p5 b1 t6 g/ ?+ m, E
                                if @.Destination /= void then
; s! a, i  y! M                                        @.Destination.NumReservation :=% o4 Y  k" R9 V
                                        @.Destination.NumReservation + 1;3 N" A* f" ~* d# Q0 q
                                end;0 x" y5 Z! j! a% Q. T, ?
                                @.CurrIcon := "drivingHome";+ f8 q# R$ {8 ?( D
                                @.DrivingHome := true;. m8 w- A9 i$ z! E% z/ |% [$ K: ]
                        end;! y# ?$ @; r$ f2 F+ D' S4 p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; c- ?( n; o6 u
                        part := @.transpOrder;' f; \; `! m9 k9 t" u
                        part.move(@);-- load part  K1 |) D1 t1 W
                        @.CurrIcon := "load";
0 o9 F- k1 N" ]7 w                        GlobalDistObj := part.globDestination;
" e$ X5 @2 ?0 Q" ^                        assignLObj := rgmanager.rgAssignL;0 @; u4 \8 z8 x. U3 x; b( h6 _0 g3 C
                        row := assignLObj.getRowNo(GlobalDistObj);
. k' k5 v% @: ~" S                        if Row = -1 then -- since 70# t  |$ Y. G, T
                                if lan=1 then0 W: F& _. M- D* }- q: F' F. T' C' H& |5 m
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 n# V+ {! J! A' l/ ^3 o7 T9 _1 s
                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ u' F# B3 R" B# ?& h
                                else
- u9 j# s2 C# \" h9 J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! M$ b% w" L! x
                                                to_str("in docking station: \"",?.~.name,"\""));                                * M/ [! ]2 v; ], Z
                                end;
1 b) S$ [" q9 F/ A5 Z6 C                        else& Q' l3 [* ]4 t
                                @.Destination := assignLObj[1,row];' I# ]% S6 j6 `1 ?- R4 ?
                        end;                        & k/ H. l1 w2 d6 {" k* q
                        newDirection(@);8 h! m; }7 f  x+ s( C. P
                        @.HasOrder := true;% p/ K- ^3 M: N$ R4 O& I
                end;$ O. B) F& T. r1 {6 q5 \
        end;
" X+ L2 r) N! l$ x& a6 O3 y8 F% l/ aend;        -- of the method
) w: g' d5 g; w, L4 w' N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: u4 b, D/ _0 Q% q- Y/ n! b) I( M& G* ~
这是AGV_putin中arrive的method。
* z8 x* }0 Q7 D  X" y* H3 g- _/ |! e
当到达物料速度越高时,这个报警更多,. ?7 G! p7 p, v* L( d. U
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& z. u7 {- W3 _1 q0 s1 M
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ V, Y. V5 b" i9 x3 V  d

( h& f3 Y  u( E' P1 z+ w另外一个小建议,就是move,所有的move都可以这样
" |8 T6 D1 g2 iif not move() then debug end. z3 l: R) M- S7 y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 s- F" E: F! splant simulation中的free libraries有AGV模板,, ^5 b/ m- p& z' G
里面也有案例。
, M. B3 t" O7 S, }8 [$ i3 c我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 R' x$ A7 t2 ?* c3 Q

& I' M+ N' H9 L, G: i; |" L# ?我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 f) C4 L8 v" f+ f7 Z
  V% {: y$ Y1 U4 L( P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ n3 i, G4 v' q% R* k0 z- n! G这是AGV_putin中arrive的method。
0 q2 B2 Y4 W, v; s4 M! Z( Z
" ?# N# I) W- G2 `! _当到达物料速度越高时,这个报警更多,

. s- V0 r" L  w3 z: _+ ^# J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-20 13:16 , Processed in 0.019076 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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