设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10282|回复: 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'* S9 k& m4 j& n- }' D
*/( `4 u8 t; p4 Q0 Y3 P
is
! J" P. Q1 g7 l7 ~, l& q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ F  a0 `2 A4 S, y, ]  I4 Y
do
6 W+ G: z% o3 o) `+ b4 b5 ~        Lan := rootfolder.Internal.Tools.AOLlanguage;9 S0 Z8 C% o5 ^- J; [) |4 u- O
        if current = @.Destination -- else return
* I  O$ m, J4 ?% J6 }/ K        then9 \) P' N" _  T- R
                @.Destination := void;
; i8 ^1 f0 l3 L, R                if @.occupied then
& A( |8 j* |2 v/ o4 n                        part := @.cont;4 `1 ]% o% n* `- |  C
                        @.transpOrder := void;  Z6 D) U0 g! O" t9 W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  i5 i' t% C) |8 @+ r' A) d. ~& D
                                @,root.eventcontroller.simTime);
3 Y& P2 i  o# n1 ]. j# M                        @.HasOrder := false;4 t) {1 Z! Y- l$ i! x" h- ]- q
                        @.DrivingHome := true;3 h" Y0 X" [( d
                        rgManager.tryToStartTransOrder;# F5 x6 ~# o0 A! v& C9 }/ M- Q: ~5 P$ d
                        if @.Destination = void" J; H4 z0 J- [6 L! Y9 c9 ]; w
                        then -- no transport order for vehicle @6 ?, T  e: V; Q
                                @.Destination :=" u4 f  J3 {& M3 V% X
                                rgManager.nearestFreeStation(@,track.~);0 T4 `$ g8 f# t( [1 _5 C5 N
                                newDirection(@);   
: g6 P. z) D9 \* Z3 l' u, Y6 `0 H                                if @.Destination /= void then
$ e1 d) i6 ]6 Z. x6 N                                        @.Destination.NumReservation :=. D. W* h  C" M8 [+ c* S+ f7 E
                                        @.Destination.NumReservation + 1;
8 K3 z: j: P3 p4 C, {8 \- O$ e2 j                                end;  E. @. v" P; W8 K& ^  e
                                @.CurrIcon := "drivingHome";
* J5 h% ?  a, A                                @.DrivingHome := true;
) [- `9 |- @( g5 [8 T! Q5 y+ h# M  Z                        end;" h# U$ h. T  B8 J& F% k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 l6 x3 X) ]" e0 t# |
                        part := @.transpOrder;
2 I+ r/ O7 G+ e+ O- l( a6 g                        part.move(@);-- load part% o3 L; d5 e: a! a* S* n
                        @.CurrIcon := "load";
4 g2 n  {' k# }                        GlobalDistObj := part.globDestination;
/ @7 C6 u7 S' V5 E! o2 Z                        assignLObj := rgmanager.rgAssignL;2 V/ v: R8 _# j0 Y! d. D( d  D
                        row := assignLObj.getRowNo(GlobalDistObj);
, e9 Y- ^  h! Y1 ~& d                        if Row = -1 then -- since 70
  L0 |. B# F; Y9 F) N: q                                if lan=1 then
* H: {9 r3 k8 T8 Z/ O- K  _                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! i* b0 C1 z. M6 G$ Z: O9 ~
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ [' b/ P/ C% y+ z  `/ y8 D                                else; t2 B' R4 A$ M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 [; m9 y  q4 O
                                                to_str("in docking station: \"",?.~.name,"\""));                                & J% A0 @8 ^) k8 g* V3 M
                                end;
1 S  P) b8 c, a6 I7 {                        else
9 t, K' m& u3 e. x$ }                                @.Destination := assignLObj[1,row];0 c2 J. l7 x9 E* j& W& i6 k
                        end;                        5 f! H8 T: j2 a/ c6 q# H3 _; [2 m% N
                        newDirection(@);
2 g+ T$ L, l# ?* c6 K) Q, x4 s                        @.HasOrder := true;) V( R( r! a: U" ^! D) ]* ?
                end;
1 s& l9 O, w* u+ |; p" C0 a4 z) l        end;
( J: O' {; X' k4 z9 `end;        -- of the method
+ H: y, }9 B" c/ ~  u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 r+ k3 C# H9 \! P& e! I0 d, w
8 r; W3 U; O& M
这是AGV_putin中arrive的method。
+ n3 G8 J' `" L. E; L; L; c; y& b
当到达物料速度越高时,这个报警更多,- o3 z9 Z7 f' F7 q: I$ g! z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, ~* Q/ ]. M$ Z8 [* u: H
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  K5 D& I, U5 H  g
, a; a! Y% v8 }5 N! D2 I6 y另外一个小建议,就是move,所有的move都可以这样6 T1 L) W0 {( f8 Q( N+ P6 O( K
if not move() then debug end# p2 B+ J& i) U
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! M) }& q+ @3 a: w8 D
plant simulation中的free libraries有AGV模板,
; z/ i, }6 L' [6 F2 g" U里面也有案例。8 |! k4 h) q2 k1 A4 R! e+ r$ O/ v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 ^1 q$ Y7 o6 V5 d& G6 B5 r1 w0 O5 {7 p8 w" x; ], N' c
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - ~$ k8 I: d6 Q: }# \" p

, [7 ^, S! R/ [' q. d5 @, W8 F那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& w0 R. o. @+ A$ E( `这是AGV_putin中arrive的method。
5 y& W+ [" C) ~. r5 y! I
0 c5 Q. k  \4 C3 q: V1 g  G8 j当到达物料速度越高时,这个报警更多,
/ c6 z' e5 V* O2 v- P* d
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-24 06:59 , Processed in 0.019725 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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