设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8458|回复: 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'
1 v& v' D& [+ Y8 x+ ?*/) y" a' k0 H, b1 N6 d( q
is
2 `( F( U  f( [) J8 ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 V$ z* Y* F) a7 j! e! |% udo$ _, Z: Z4 }; A5 B* @* I( X
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 T/ f7 Y9 s+ u7 U- ^9 q: C        if current = @.Destination -- else return
. ^) o3 l* u4 d        then1 F5 N5 y  o1 p1 z& t# y
                @.Destination := void;( t. |' n& d& G3 A: d
                if @.occupied then
7 ^, g& h4 F! ~% U7 ]5 g- Q3 _2 l# F                        part := @.cont;
* w5 B6 E7 E* F9 d) G; s. u                        @.transpOrder := void;/ o& w$ T# _0 x2 M" R
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ Z9 H+ l! ~) e6 G) m1 m3 {                                @,root.eventcontroller.simTime);! p$ U( K; P- Q
                        @.HasOrder := false;% Q( L) }: }  T, @1 o& f" u
                        @.DrivingHome := true;3 S6 O1 q% X5 r" z
                        rgManager.tryToStartTransOrder;
9 |% R7 i& h: z9 x; x                        if @.Destination = void
; x; n1 c3 d0 n' v; ^2 u                        then -- no transport order for vehicle @
" L4 [8 v4 O0 A  F                                @.Destination :=
, K. ^$ N" @6 W( _3 U                                rgManager.nearestFreeStation(@,track.~);4 Y- P& W& f* `8 `- k, P4 p
                                newDirection(@);   4 q' R  v6 W/ y4 n: q
                                if @.Destination /= void then4 ^4 m3 j8 @6 Q: x' T- U
                                        @.Destination.NumReservation :=6 C: U5 l& g7 Z1 l: g8 R- {
                                        @.Destination.NumReservation + 1;0 t" x& F1 t4 D* z% m& e& B/ ~
                                end;
+ |9 p4 o- C% v9 H1 f& G                                @.CurrIcon := "drivingHome";# z9 @! t& N0 w" B
                                @.DrivingHome := true;* [5 k7 ^! X! E) k
                        end;( I; s; H/ V! C  w& H7 Y6 C
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* @8 v. ~6 r' v; K
                        part := @.transpOrder;+ M0 B( q& V' V  J; a
                        part.move(@);-- load part
# l+ ~* u6 T& l( @! i/ M2 e                        @.CurrIcon := "load";
8 C3 L, j. M# O% c0 B# X% l6 J                        GlobalDistObj := part.globDestination;
, n; e& Z$ E( k/ _" `6 T                        assignLObj := rgmanager.rgAssignL;
" r4 @% ~5 r7 f# h3 w# P2 x                        row := assignLObj.getRowNo(GlobalDistObj);
1 W+ t) U- F+ m: D2 Y  }" K  y7 T                        if Row = -1 then -- since 70
$ n- {# I" D; h9 J                                if lan=1 then- l  P: S8 a$ j0 t5 r
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 w1 |8 p, @+ `  x* ^' Z6 B5 \                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; M! \3 e# M3 J8 L5 o* ?                                else
- R; V# g" s' T5 u  r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& ^8 `  |2 a5 r3 Z& [1 D4 x6 O3 P
                                                to_str("in docking station: \"",?.~.name,"\""));                               
* b2 J0 u0 l* W. R9 f# n                                end;
: f& Y( s; N9 }5 l                        else
! j" {2 t4 N: M. u$ H- f1 }                                @.Destination := assignLObj[1,row];
$ m' v% M, p% Y                        end;                       
0 `/ G) T, y" b9 e/ e1 ^$ D4 q$ S8 v                        newDirection(@);
# M+ O' u' \4 C1 \5 y: d2 l                        @.HasOrder := true;
4 m0 V6 ^* s: ~9 _                end;
. h/ I* x$ R# W: \' W/ F        end;  k/ h$ _( ^  h3 O+ e
end;        -- of the method9 E. {5 L! F. `! K) m' x' |- G. [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 i1 {0 p9 O2 l5 w
4 K( H- {1 Q- y: T. B- E这是AGV_putin中arrive的method。
2 ^7 Q: ]& t. d) x: s6 U5 \: G- r2 C
  P2 ~5 A# n( B' ^( j& t当到达物料速度越高时,这个报警更多,# R+ T. B$ E2 u/ B" V; c  i6 S
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ e0 L0 @7 x6 s% g
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 R* k3 R7 n' g: v) m# W
0 ?/ v- D& A5 ^: X  `另外一个小建议,就是move,所有的move都可以这样+ V# P3 w+ U6 |$ Z  Z
if not move() then debug end
& W2 o( I! C$ }8 Y) _这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 ]9 p! ?* w3 D( y( C! ]9 mplant simulation中的free libraries有AGV模板,
8 B; m3 {) t; M- D里面也有案例。3 [( a/ ^) b( ^8 W! a
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 t0 n: ~+ p$ V2 a( o4 Z. U  P+ D* Y% d3 Q$ o# u( t) |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 s1 [) {- _2 l+ e4 L8 y" n
- g% A& P3 u% P/ c/ g# G8 _
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 @5 K" M/ ^; e: A4 f( x这是AGV_putin中arrive的method。& b# c! H+ K' Z* d

- l9 w+ T0 a( _. ?* f" A( c当到达物料速度越高时,这个报警更多,

% I# l; x/ ?6 W) q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-5 07:43 , Processed in 0.016354 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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