设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9992|回复: 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'# g) J* y+ I) S
*/
6 K3 C5 X9 {% G! H9 D8 cis
) N2 W# i0 D7 E. u& E% R9 }        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 f  F9 B. Q, u
do
' b" f9 O! @* y7 ~' G1 v  d3 \0 s9 T        Lan := rootfolder.Internal.Tools.AOLlanguage;
, I1 r( r* l3 i# q        if current = @.Destination -- else return0 @; q: U2 |, k2 Z& ?6 r5 e
        then
9 d% w8 _: A4 H0 Q! C4 h+ \                @.Destination := void;9 n% P! l. `( s5 _4 I3 W' Q% ~
                if @.occupied then
% ?& W, J0 Z5 n" J# [! d                        part := @.cont;, [2 j3 m5 ]3 y( G2 [( A8 q
                        @.transpOrder := void;2 M& q* x# v$ A: z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' e3 q. H, S, ~8 f5 S                                @,root.eventcontroller.simTime);& ~7 X* E1 M& p
                        @.HasOrder := false;
4 a9 I: B/ A" G- V6 X/ [, J                        @.DrivingHome := true;  J* `6 K& ?2 w8 t3 a1 H5 y( E
                        rgManager.tryToStartTransOrder;
, l' i9 n  c0 n  Z+ [* m                        if @.Destination = void
6 f/ o! t* y( z5 j+ h) U6 ]                        then -- no transport order for vehicle @  h7 ]% v, I1 C3 c) \9 T3 @/ Y
                                @.Destination :=
- z7 D5 H4 f1 q0 I2 ]7 a) }                                rgManager.nearestFreeStation(@,track.~);. o& i! e2 P2 B. q# D) r, F' l" T. z, w
                                newDirection(@);   * c, A5 c3 w' r: h# U
                                if @.Destination /= void then
) M9 E1 M/ _1 I                                        @.Destination.NumReservation :=1 D" E7 [: o4 Z6 b0 L. ^5 S
                                        @.Destination.NumReservation + 1;
, Y5 t) r% v% w6 U+ o: Q                                end;+ w% K) u- q' P& D
                                @.CurrIcon := "drivingHome";: M% u" x. m3 Q' d
                                @.DrivingHome := true;: G2 I3 q/ Q* Y/ O+ m" n
                        end;
  {7 B+ [. D0 P2 M/ k                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ \# v% c6 l' t, G                        part := @.transpOrder;
/ N) k6 n( Y9 k! H; N                        part.move(@);-- load part; M0 D; l/ E% v/ q
                        @.CurrIcon := "load";; ~8 [  ?" f4 ~/ i2 Y
                        GlobalDistObj := part.globDestination;( R0 W% P, N3 _/ j7 s
                        assignLObj := rgmanager.rgAssignL;
& h3 @& e" {+ D8 W4 L                        row := assignLObj.getRowNo(GlobalDistObj);
) B- N1 h$ K  l; H6 R  R                        if Row = -1 then -- since 70. }4 M8 r0 v' Q' I2 ^
                                if lan=1 then
! B. {6 N- D8 S+ B                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 Y4 l# \9 g) w! I  [
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 W2 D: [4 w1 O  Q" h
                                else, Q8 B5 \8 k. H8 \7 ?/ i; ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 Z6 }' J1 V% C4 [! Q/ K                                                to_str("in docking station: \"",?.~.name,"\""));                               
' M+ k% g( o2 B& Q0 s) E# ^                                end;3 C* F$ J: N- s9 w
                        else, C+ A: H  g8 m, T/ U" G- V
                                @.Destination := assignLObj[1,row];
" N7 p# Q. q1 ?* r3 [$ j5 ]5 A                        end;                       
6 \1 u/ ~8 C4 V* Q                        newDirection(@);0 V! `) W  C, e+ M" F
                        @.HasOrder := true;+ d0 f3 S7 k9 l
                end;2 L/ u+ U5 _  K% U8 b3 n
        end;
% M" G3 g4 o: @4 [1 Aend;        -- of the method$ }6 x7 ?% w5 I- Z$ F$ p" n) G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 B- }/ T/ L6 ~8 T
+ Y5 r2 J0 R- M; l0 t这是AGV_putin中arrive的method。1 m. ~+ O5 s' x9 J1 R3 ~! e

3 |! x" Q: n$ c( @; Q6 ^/ a当到达物料速度越高时,这个报警更多,8 b; @* u' A) ?- r, b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. |6 N+ M6 ^3 D1 B* G' _4 y$ J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  J5 \- u4 `# f) ?/ f- f
: ?2 U; r0 k# X. q
另外一个小建议,就是move,所有的move都可以这样
( x3 q1 S9 h1 J2 p) Kif not move() then debug end
# J8 H+ E( v  S$ i7 [' e这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% k2 O8 c* f2 S
plant simulation中的free libraries有AGV模板,
/ c0 L; W# W/ m( e6 `里面也有案例。
) R: R0 I; x' ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 w; Q9 ^: N/ k
) f* r# X# I; `. y! c2 e' c' M8 v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 {. W  l& h+ c! z9 e7 p; I7 G( f3 e# R
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 o" E! r% X+ z4 |这是AGV_putin中arrive的method。
" w2 y  L0 D$ u: Y7 C9 S4 T0 V! O1 b
当到达物料速度越高时,这个报警更多,
4 f- h4 |$ W7 }0 M* C9 ?2 C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-6 08:15 , Processed in 0.017382 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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