设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7887|回复: 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'
2 `5 s) M4 W7 W1 K# A5 u$ d*/
- w5 N% J- x2 Q+ \is
3 a/ g/ C" v, N6 C" u3 ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ X  l0 ]! T' ~9 Q( H1 @6 F3 ^
do5 O/ m" B7 U; y- C' N
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 A% K6 U; u" T3 d7 b        if current = @.Destination -- else return
7 C" S; e5 e; C/ n9 A# Q        then
% n) n: Y# z/ _& h& f' c                @.Destination := void;
  j# \% d. ~. e  f                if @.occupied then/ r; i, p& @  Z8 x7 N& _% M
                        part := @.cont;
- H; l: ~' T4 r                        @.transpOrder := void;
. Y: c0 C2 v- ~9 w% j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 g7 x) q" ]! C7 Z: Z/ e  E                                @,root.eventcontroller.simTime);
4 W+ f/ a% k% g4 h6 e1 H2 e. h                        @.HasOrder := false;5 i6 l, U% @  L8 |. C7 J
                        @.DrivingHome := true;" C, w1 f! d* K- ]! ]
                        rgManager.tryToStartTransOrder;7 t" G* o( s; f
                        if @.Destination = void3 V8 h" F' y  c; `9 T
                        then -- no transport order for vehicle @
- X8 X7 N/ W! D: _: V                                @.Destination :=
3 y( w. V/ C* y                                rgManager.nearestFreeStation(@,track.~);
2 E9 E0 E: Y& L# I$ [  @2 H* _0 d                                newDirection(@);   
3 R* Z; M" a3 V                                if @.Destination /= void then& m6 t% R' I1 L. o; M
                                        @.Destination.NumReservation :=
# j1 J, Q* {5 V" Y5 X                                        @.Destination.NumReservation + 1;5 L, N2 s. ]' s
                                end;
. `: z+ ~/ e, b& W/ N                                @.CurrIcon := "drivingHome";
, l' K3 F0 g  a$ [. O+ t0 d                                @.DrivingHome := true;
/ ], R9 k$ L8 H2 ^                        end;2 `- D2 d, o# ?6 q1 S( Z8 `& F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. b4 ^8 X7 N6 ?1 B$ C9 g- }/ E' c                        part := @.transpOrder;
( A/ F) G" D9 l7 f/ _7 F; }8 g                        part.move(@);-- load part: _' M& P- c  e# Z
                        @.CurrIcon := "load";! L2 a4 w5 v, [5 l* B
                        GlobalDistObj := part.globDestination;
$ n$ c. x+ R$ z! m% [  ^# Y                        assignLObj := rgmanager.rgAssignL;
; Z4 r9 u8 ^. T1 ]& n5 L5 E                        row := assignLObj.getRowNo(GlobalDistObj);; q5 h9 f% S% `2 a
                        if Row = -1 then -- since 70
- ]4 A+ V! D2 t! p1 A% [                                if lan=1 then
2 Z3 v, ]) I/ e( j( E! [                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  v; y9 R1 y/ R, w0 y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 P1 j$ n9 I. b$ ^$ `1 E- _6 V1 I
                                else1 c2 i. k1 F8 o+ X7 X, d0 P: C
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ l  \# {8 X$ R4 u+ ^6 H- v
                                                to_str("in docking station: \"",?.~.name,"\""));                                & C. f5 _1 G7 s) i8 l0 w  z
                                end;2 \% s% u2 w" g1 W; C6 c
                        else. b9 G% y9 k$ l8 z! X+ [: s3 U! @
                                @.Destination := assignLObj[1,row];, r7 P4 n2 ~) p+ z- G) p
                        end;                        ( Y5 D/ ]! e9 k# K1 S. q# s
                        newDirection(@);
6 X8 J) {( D" u                        @.HasOrder := true;
, P# Z. {5 I& W' z5 o1 z                end;: p$ t" L, W# ^+ A* M( ]
        end;( a0 B  A; y* T' d
end;        -- of the method
( V  {( U6 E# v' D- r* ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  @9 O  S5 k( L3 ?1 ?7 l0 I* C7 W, @, `: ~
1 F  R1 `$ |  t这是AGV_putin中arrive的method。
9 Q( ?0 l5 W* C9 R3 `
5 h( t) G' y. b, d当到达物料速度越高时,这个报警更多,
( y4 x. E) u  t可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( @& A% T6 x1 ^3 H8 i0 c0 k% Z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, D8 c# k% E1 k
9 }  `. _! M2 t  p2 C: N) @
另外一个小建议,就是move,所有的move都可以这样
! m9 S) o  h) d7 T  M4 `+ Uif not move() then debug end
  d6 x# C& \9 v这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. Z4 B2 o- I/ P& p8 u5 s8 Lplant simulation中的free libraries有AGV模板,5 d' V% L* p8 S  R2 G
里面也有案例。+ `. x2 s! d' ?5 w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ m0 z* x+ U$ A: e
0 E9 W' _% f7 V" O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) ^8 ?$ F5 j, |9 _8 u6 ^# Q
$ O; K  T0 y" _( e1 X+ {3 e. F
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 M! G: k* g/ k0 Q5 q
这是AGV_putin中arrive的method。
5 k, l5 y# c/ @! b: |' H* A" P9 G% p" N' ~% Y- x
当到达物料速度越高时,这个报警更多,
) v5 R# x6 x: A% A. t+ o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-3 12:00 , Processed in 0.020236 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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