设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9252|回复: 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'/ B0 j" @- c% [1 Y4 `8 i
*/& K. p+ {  t* c. M# ^
is5 D4 f% f" H! Y/ n/ Y9 a: x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 Y0 H; \% a; G& _do7 W& Q! o* }- ?- l2 ~8 J  D
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 b4 r" n2 Y8 z( V* y0 r
        if current = @.Destination -- else return& d5 U0 @- p9 U+ E2 Q& Y/ h
        then  x  {- |" M5 m7 b: o! d5 P' C
                @.Destination := void;" B0 |6 z# `8 p
                if @.occupied then$ u& B4 X, D7 q! b
                        part := @.cont;
$ }  }  S, F. p                        @.transpOrder := void;2 ]$ X4 ~. C1 a' D; H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: t. m% f9 y& x
                                @,root.eventcontroller.simTime);
8 a, v. O" C8 \$ |. W- d8 K                        @.HasOrder := false;- V6 R; s# w& N7 U/ [6 `7 ]. d
                        @.DrivingHome := true;
3 w) L. L0 S$ H+ k' Y$ Z                        rgManager.tryToStartTransOrder;8 v2 z; N# x, P1 M9 E9 }- p
                        if @.Destination = void
8 k' u1 n3 {0 A& u/ d7 I                        then -- no transport order for vehicle @
9 W' M- q  x3 S) w' W2 ]                                @.Destination :=/ P1 e# Y9 i" n# A
                                rgManager.nearestFreeStation(@,track.~);
, n- Y+ g3 {1 G( I5 B6 _                                newDirection(@);   
' l- f) I! ]3 F, w9 }5 m! l# M! |                                if @.Destination /= void then. a$ V7 P7 e; k
                                        @.Destination.NumReservation :=" k6 ~% _$ ?1 y8 E) e" x1 N
                                        @.Destination.NumReservation + 1;- _6 E* N( R! q. b/ ]
                                end;$ Y7 R1 w- v/ b# h  I1 h8 W
                                @.CurrIcon := "drivingHome";
& s5 G; ~9 ^& }  Z4 K                                @.DrivingHome := true;
% B/ t2 @8 T5 M/ I7 P* r: v! ~                        end;2 Z; C/ w, p& M9 \) R1 u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  E9 B* h" g: S/ L+ N' Y( D                        part := @.transpOrder;3 A& |6 Z7 b' l- K, _' O
                        part.move(@);-- load part
$ G/ K( w9 s! p0 G! j4 |                        @.CurrIcon := "load";) @! w. X8 d" Q7 f" |% X0 P
                        GlobalDistObj := part.globDestination;* e  C5 `; W# c5 w2 x
                        assignLObj := rgmanager.rgAssignL;, Q  U) P7 s5 |- _( r, Q
                        row := assignLObj.getRowNo(GlobalDistObj);9 \+ \) B7 v; Z7 c2 G) e
                        if Row = -1 then -- since 70
1 J6 I' D9 I* s0 a9 I: e+ E                                if lan=1 then0 F- b$ q8 ^9 I8 N* T( q/ q3 m
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! Z0 R/ l9 m- E* S: C
                                                to_str("in der Andockstation: \"",?.~.name,"\""));% P3 {8 a9 V* u6 Q
                                else
) x/ a! F8 W0 F! k                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. {7 R1 d# F9 x& b; C+ ?                                                to_str("in docking station: \"",?.~.name,"\""));                                ) v; e$ X: E  k4 M
                                end;5 R9 B9 [# g* @1 K5 a1 I
                        else
$ k# d) c' [1 [8 o                                @.Destination := assignLObj[1,row];  [* U0 _5 |0 \8 T3 q2 A+ ]' O
                        end;                       
$ f% U7 b$ Z3 m. H: b, a                        newDirection(@);
5 @2 M. s! D5 ^. L) N5 y& n                        @.HasOrder := true;# g1 N3 D4 A' m! Q- h
                end;
. a7 Z2 d( }# z' J1 F5 c4 B" X& {        end;$ l! E( @! |1 Y( X! D
end;        -- of the method
0 V0 A1 @5 r1 h) K! x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' F0 O: I$ ~3 u& X8 n; |

3 O! p9 V1 B! }) s" S* q这是AGV_putin中arrive的method。0 A+ w5 m4 ~* t, s9 |8 G
! Z: D& [9 J* J8 X" E& z: L& l
当到达物料速度越高时,这个报警更多,  p& r; o: y* n4 T% a# a8 c! \
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; F& o* B# z% D8 x3 D, t  w8 T
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 O2 Q3 x$ P, `7 a. z
, l/ E; U; F$ _9 g) a另外一个小建议,就是move,所有的move都可以这样
3 I! V* R6 f0 @5 Vif not move() then debug end
- ~. c# c% ?$ ?' Y  b% ]3 \3 q" D这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ x' d/ Y+ }1 Z( \* f) Bplant simulation中的free libraries有AGV模板,
3 {7 Z9 O0 v4 ]/ v" d里面也有案例。9 `7 J+ t# ~/ f6 B& J
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ J" X0 X* j/ ]$ ]3 F: i; U

1 e8 q; {8 w- Z; x我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& ?; m2 _3 o% B+ P
) N& U  `9 M# n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 O/ p( P9 ?4 v+ a4 _6 W1 ^* V
这是AGV_putin中arrive的method。
6 u2 c) `- ^) ~% u( |# n3 x2 o, p6 _2 r
当到达物料速度越高时,这个报警更多,

3 B/ `  B( @* T+ D另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-21 05:31 , Processed in 0.017243 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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