设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7031|回复: 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'
4 U9 n' x" y/ }8 G; ~: ~* o*/
8 A9 w& B+ |8 J+ m6 a* U0 iis3 m, C6 b3 B6 f, k1 X( P
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, y& {# D; u) c5 Vdo
# Q- F  K* `0 T  K        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 V3 L4 ?; Q+ \4 f" q        if current = @.Destination -- else return2 t% y7 s: ~# _$ B
        then* F5 W" [4 w: {. V. T/ Z+ a
                @.Destination := void;; h) o; B9 T# P. I7 Y/ X
                if @.occupied then
3 T$ b7 q- O" w5 S. ^                        part := @.cont;
( V; s" M2 k0 U0 x& R4 q                        @.transpOrder := void;
- M5 W. Y* M" X' j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* w) K5 A- F+ O. q) j- y
                                @,root.eventcontroller.simTime);. s. v" q! k$ w: \7 h  ]; e
                        @.HasOrder := false;
: Y4 W5 w% q1 k& l2 t( f                        @.DrivingHome := true;
7 e: b" w/ `1 W. l# B                        rgManager.tryToStartTransOrder;' F+ j+ _5 Y. q- d! x' z, T
                        if @.Destination = void# r4 T5 w. U) D4 x3 e+ [: y! }
                        then -- no transport order for vehicle @
5 v8 q5 ~3 ]! Y9 t                                @.Destination :=, d2 H) \3 B9 g3 A) _" \8 ^$ V
                                rgManager.nearestFreeStation(@,track.~);* o0 X5 q  ?3 w% h
                                newDirection(@);   6 `, W4 T! }; X- B* H
                                if @.Destination /= void then- V+ j9 o  @& [2 Q5 f/ }& z7 R+ b
                                        @.Destination.NumReservation :=
2 x  z; G! C7 f3 L; i                                        @.Destination.NumReservation + 1;1 x! r) G9 h( g- d
                                end;% K& q: d" S9 ^% P
                                @.CurrIcon := "drivingHome";
* ~' s6 ?" }+ p9 p9 \                                @.DrivingHome := true;2 y! \/ G0 H$ G  W. w9 }
                        end;" h+ @, R. x* q& V2 z; }. q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# v* H8 s5 A2 c9 y) S* E
                        part := @.transpOrder;
2 R0 M1 U6 A, ^) a                        part.move(@);-- load part
9 v8 C, k% h# Y! m/ p) b                        @.CurrIcon := "load";3 g9 z9 X- ~$ I% o1 _
                        GlobalDistObj := part.globDestination;# a3 l  }5 i4 a
                        assignLObj := rgmanager.rgAssignL;6 @2 I/ n' T' c# X& k: U
                        row := assignLObj.getRowNo(GlobalDistObj);# i1 n. z: M* x
                        if Row = -1 then -- since 70* a; O$ r: g0 ~' j# i/ D7 C
                                if lan=1 then
2 h; Y$ {% M5 x0 U( o                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 m, O9 k* N: R/ Y0 s# X, H7 |$ K                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 ]$ H, _7 ^- U; D
                                else4 Q& u1 j9 B0 V, ^  P4 W3 R; f
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 \+ b5 X  D0 O& v' S" w' q6 V; d                                                to_str("in docking station: \"",?.~.name,"\""));                                ( A$ `% v) O" R9 U1 B$ v: t) \
                                end;
& _5 G0 J- i! h& P$ C; {                        else
1 Q6 K* x$ D+ e! o                                @.Destination := assignLObj[1,row];
, \. G2 P$ M& V) d4 D0 J                        end;                       
  ?1 b  u! Z0 @' J: t                        newDirection(@);
# U7 o4 j: e: t0 [4 b- b                        @.HasOrder := true;
3 i% N1 \2 w( ?& L% z, Q                end;
2 l' r' u. R5 o3 x        end;3 N: \) B0 B* @6 ]# p  i9 R5 y9 e
end;        -- of the method
2 c7 D8 l2 s/ `; p- u) N- E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' w$ A3 ^+ v$ m8 b' c1 Y6 v
% }$ k6 T. Y$ t+ z- O# C0 v这是AGV_putin中arrive的method。/ C9 O! G+ ~$ q+ j; ?

6 Y1 H2 b! |  w# _9 {( Q! ~当到达物料速度越高时,这个报警更多,* |# M# I  D2 ^$ a1 W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 k) |+ _9 C+ Z/ U$ _6 R程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% y9 {. Q4 i0 e8 R0 ]
& C$ [8 e# m/ O
另外一个小建议,就是move,所有的move都可以这样" W, h; i3 x2 a! P/ ^9 j  b
if not move() then debug end% x% D5 S7 D4 H  W
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 P9 F( B( R6 M2 \  k! o2 F% y1 d" kplant simulation中的free libraries有AGV模板,1 N% _( F1 Y  j3 {  p7 x- V
里面也有案例。+ p; b- m# }3 V% c" G5 X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" u% H$ m5 y2 z! v* }5 |) f/ m/ i+ I
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - |9 z% j0 N) N. G6 C
2 X" i7 f( i0 D$ s/ S# A6 J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) [& R$ k5 B: j1 u4 w这是AGV_putin中arrive的method。
& g4 I" W7 e4 R$ ~, v
" ^3 c% r0 }7 k" ^, z5 |当到达物料速度越高时,这个报警更多,

* V% B) _/ p4 y) ^& [1 s另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 07:56 , Processed in 0.019627 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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