设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6105|回复: 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'& Q) R' L. W+ \6 R
*/
! t2 D4 E* t. W! z' d4 Lis2 Q" U$ A9 |8 T, J6 H. L. t$ b
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' G0 b" W4 ?3 S. }! z4 Fdo
1 T9 [% x2 F, P9 \, Z; y        Lan := rootfolder.Internal.Tools.AOLlanguage;
  W' J' V% a  O6 X        if current = @.Destination -- else return$ y/ i' a& ]; X& i/ e1 p8 U
        then) \( p3 a  I$ Q3 D; M5 M% b1 u
                @.Destination := void;
7 C2 |* i6 M7 V% K6 K& [                if @.occupied then
2 l4 C& d6 m# b2 E: v& d& Z                        part := @.cont;) s6 H. ]7 p( J, U
                        @.transpOrder := void;
' g( L& X' u/ `# [                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' y; h8 L* x& G
                                @,root.eventcontroller.simTime);/ T' c1 B% v0 z" i, \) q
                        @.HasOrder := false;, W7 T6 L& A$ x. e
                        @.DrivingHome := true;
: M) c: g* d1 F* z9 ^) P$ B                        rgManager.tryToStartTransOrder;0 G7 o% {& d" V# W; k- ?; ]2 S+ e
                        if @.Destination = void1 H0 H9 ~  i* Z$ X1 ~3 y
                        then -- no transport order for vehicle @
* u9 ?5 [* [3 B" q  k                                @.Destination :=+ M' i, t4 I9 v$ L9 U7 ^* B3 ~5 y
                                rgManager.nearestFreeStation(@,track.~);0 S" r% B/ C, p
                                newDirection(@);   $ G, X) @( F- a3 o& f; m5 x8 T* l8 m
                                if @.Destination /= void then
6 {1 b. e& Y* B! n! _4 t+ A5 n                                        @.Destination.NumReservation :=
: t. }, @, J( H) j2 z$ j                                        @.Destination.NumReservation + 1;
- X0 Q; `4 {& }5 ?. c/ Y, x$ `                                end;& j% E, \: d5 d( K
                                @.CurrIcon := "drivingHome";
+ v$ K! j- O0 x; z8 M/ d3 \( V                                @.DrivingHome := true;% \+ c& A; D$ q+ U1 t/ D
                        end;
5 p$ j1 @- f" b( _9 S% Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. x0 Y& m, ]* v- l! E
                        part := @.transpOrder;
: t) Y! t: a& X  e                        part.move(@);-- load part
" X, h0 r. h% |8 K) H6 M1 _                        @.CurrIcon := "load";
' M5 ]# i2 x' N+ L/ b! B* I4 @0 G# c                        GlobalDistObj := part.globDestination;
* p# V1 f1 D  V9 K8 I                        assignLObj := rgmanager.rgAssignL;
8 C& c$ q0 I0 K5 z, d8 W                        row := assignLObj.getRowNo(GlobalDistObj);5 S0 C9 x" l! q" r
                        if Row = -1 then -- since 70
5 ^; r4 i/ B! i1 A                                if lan=1 then' z) z/ ^7 i  G2 A# ~. X
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( O  O. D: I, F& ^: x
                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 }8 \+ {  P2 g7 U& \
                                else
) {) ]# g& ~! {$ h                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ Q0 j3 k1 b  Z, `% ?                                                to_str("in docking station: \"",?.~.name,"\""));                                ; y! O2 n8 n/ J2 R9 g. {
                                end;5 f) H4 Z9 y! X9 X
                        else
6 o' T. y1 l; w+ X; S                                @.Destination := assignLObj[1,row];
1 @2 T4 m: d! n# S1 X                        end;                        ; Q( ^+ h5 o1 a1 U) {* }- ^7 k
                        newDirection(@);! q. Z  |. Q' j" J; b
                        @.HasOrder := true;8 |4 e2 y6 d  W1 c
                end;
1 m9 b) k% j- c- y0 N        end;2 {. _1 V9 K2 l7 e, T, y6 L
end;        -- of the method
3 Q+ ?' {' b( K) Z' O- U8 T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' R  f, v" @. m7 w5 C" [8 h
" u7 H+ v3 [5 H7 ?这是AGV_putin中arrive的method。" F, s$ a& A3 Y$ _7 k

$ G" F0 H6 k$ f3 o( y# t2 B; f当到达物料速度越高时,这个报警更多,; {/ G0 v" A5 e& P: T1 \; N  m+ a
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! x6 X3 B# ~6 A' u程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: A+ P! G  y' n
7 h% M. b  f7 `; _8 \
另外一个小建议,就是move,所有的move都可以这样, I# H; P2 j5 d0 H8 q8 t
if not move() then debug end
7 m2 r# Y+ G7 x+ ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) M$ V- V4 T/ z' ~  F7 Lplant simulation中的free libraries有AGV模板,, h  @5 i/ f) P# f9 T5 d
里面也有案例。- W4 i* c5 D- N2 K6 s+ i
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 i% Z( q; X3 ^* e4 T

1 w' g; ]/ l; S. T8 {0 f我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # p, U" |6 |2 @1 o6 z0 p. q

6 n( N3 e. P3 B3 c3 g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' P' Y  s) Z9 b5 o3 J5 _2 _这是AGV_putin中arrive的method。
* ~3 u. N7 ^* N$ H* u$ |" C- G% a2 P
当到达物料速度越高时,这个报警更多,
% N* s4 U5 n1 k$ K/ p1 i* K
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-18 20:44 , Processed in 0.017038 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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