设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6231|回复: 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'
7 T3 r. m7 a% K7 k0 u$ ?*/
, c" N3 l; O- N& E/ Mis
- @, e) ?# [$ B" V1 O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# A$ M6 P3 U% P; zdo3 Y8 }' _0 b  p6 @" D7 s1 q
        Lan := rootfolder.Internal.Tools.AOLlanguage;
" \5 j* Q0 V4 w% c. o        if current = @.Destination -- else return
3 `4 B1 G6 V$ _, B6 o        then
( J& p) z* S: s, L                @.Destination := void;
/ l( z8 u1 }, t  w$ X: W$ L; p                if @.occupied then
9 M/ |5 B7 q# z  d, l% D                        part := @.cont;# E3 C( T/ F' \" _( b" z! [, @
                        @.transpOrder := void;# z) Q$ Y& N1 {; `6 z$ V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 ~( g- F5 N( ?+ a( C+ v                                @,root.eventcontroller.simTime);
$ N& A8 h. X2 [$ |4 u: Y                        @.HasOrder := false;  f5 }8 k0 m3 w' k- c
                        @.DrivingHome := true;" t0 X: {! @  Z/ P7 ~
                        rgManager.tryToStartTransOrder;
, k% K6 n6 W0 N( c0 W6 i                        if @.Destination = void1 i+ Y8 R5 ^$ K/ U% d
                        then -- no transport order for vehicle @5 j1 C3 Z0 l& `7 @' T- [
                                @.Destination :=
8 O$ J0 |$ J5 \                                rgManager.nearestFreeStation(@,track.~);
6 b! P9 S9 x  B: C  o                                newDirection(@);   
) S0 _" c% Y" R+ S6 D; w                                if @.Destination /= void then. a; G4 z/ y* ~9 m
                                        @.Destination.NumReservation :=
8 {" A% J2 @. [1 W1 L                                        @.Destination.NumReservation + 1;9 N/ ~7 l) x, t" a) x- h
                                end;4 B( n  p. w, I7 }8 J; Y7 x. q
                                @.CurrIcon := "drivingHome";4 Q/ H+ `" H* Z' v
                                @.DrivingHome := true;0 N4 }6 x/ n: @4 [
                        end;8 @7 L5 `8 a1 w& K
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( s" P) c! y1 a0 s8 P7 v
                        part := @.transpOrder;6 d/ k" t# R1 J3 X1 |/ M  J# r+ I
                        part.move(@);-- load part1 J3 P9 g$ V: @8 X1 }
                        @.CurrIcon := "load";
4 f6 c+ z7 T, f; E% \: l. \                        GlobalDistObj := part.globDestination;
3 l7 X$ q+ V9 K2 |                        assignLObj := rgmanager.rgAssignL;
% ]2 S8 d  r  o+ y  ~: d! f4 Z                        row := assignLObj.getRowNo(GlobalDistObj);
$ ?, E! X3 Z8 A7 a# v0 W- n" p! b                        if Row = -1 then -- since 70
& l; ^( a; ^1 q0 L+ p                                if lan=1 then* }: Y6 B, |- ]8 c- d5 T
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," q6 ]7 j, j. V2 C8 j, L, u- M# ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));- l  P: P) a4 u4 {, r: x5 r
                                else/ k* g9 t3 M, @9 a6 w; ^: y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' w4 ]) b2 C. X1 b$ `
                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 }( K" H" k: D; T2 x* I2 O                                end;
; [) g- y2 Z: P& k. M' f                        else7 q, K3 W0 F% j+ C
                                @.Destination := assignLObj[1,row];
: L2 Y4 v/ v  r5 C$ u  |                        end;                       
; U5 H7 @: g% l9 S3 @6 w, Z7 a                        newDirection(@);4 H/ O: _9 V% C% P6 W. w; v
                        @.HasOrder := true;4 `2 W3 o, h9 U% o; ]
                end;. O& ~3 O! Z- h1 b& E* \
        end;# A! h5 x4 H# ^8 M
end;        -- of the method
/ i' g; m' g) `( s
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 Q( t8 m. N. w8 c0 D
6 X; K9 t4 f/ i- g
这是AGV_putin中arrive的method。, Y  [* G$ f: _3 `7 h1 e
3 l# d2 U. r; j% U. M
当到达物料速度越高时,这个报警更多,
4 @' J4 z' K. ~可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; E! j" A2 r! b; \' h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% n2 ]- a7 J* ?5 K3 ]$ o5 v1 m- E; |$ l6 t  y/ N# |
另外一个小建议,就是move,所有的move都可以这样. ?3 _- V$ R$ l2 T% Y
if not move() then debug end! A0 D: _7 U4 j$ I' I+ e: u$ v' a1 t' t
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 \" a' l9 ~* s9 `( Q8 P( s# k- Cplant simulation中的free libraries有AGV模板,, L  c* |  E& @; w
里面也有案例。1 I3 i& [( S* I, s9 U1 W2 n
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* p8 k2 W, k7 ?9 }* m
( t! u3 \( x$ i( L8 Y; M3 F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   Y  U% W' F5 y( [( ~* z" s; f
  ?' V/ o2 ~$ e# q! Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 i/ x8 f+ h: T  g) T. ^4 w
这是AGV_putin中arrive的method。4 l3 \1 g( \  F- e
/ _" O. R7 ]" w. ~
当到达物料速度越高时,这个报警更多,
2 S6 d" v; s. q" J8 x
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-26 02:13 , Processed in 0.022147 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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