设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6453|回复: 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 i; ]; A7 E7 o% i4 C
*/
' |* @- `8 q# E* mis
) T. i0 [3 [2 `8 u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& M8 I8 \4 h% \4 D  Ldo3 c3 ^' s0 Q, K; u+ q& V; i* O8 ?( L& M
        Lan := rootfolder.Internal.Tools.AOLlanguage;! {& l' d6 g+ ]3 K
        if current = @.Destination -- else return
' ?! X- b: @1 ^: X7 J3 a2 j) G) C" m        then2 H# f! b1 H/ E! H2 D& F
                @.Destination := void;
1 s: B: d6 c/ ]* F0 A                if @.occupied then
! d/ }3 T  L' u! o: Z' ?" Y                        part := @.cont;3 S4 @8 B: C! c
                        @.transpOrder := void;
0 |4 X) n$ T/ k6 G* v                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 A6 y9 o' q# R3 W                                @,root.eventcontroller.simTime);
; D& b8 ~* _3 F4 H                        @.HasOrder := false;
  U8 R* a0 ]& M. ?- P. P  e                        @.DrivingHome := true;' _  o9 u* D7 K5 T7 j) v# g/ g3 ?
                        rgManager.tryToStartTransOrder;+ v# B/ `0 k, y: x" o5 f1 k
                        if @.Destination = void
' P6 l6 n9 a. K: _7 t: Z. j                        then -- no transport order for vehicle @7 c, e" R; l$ K7 F; @
                                @.Destination :=) C9 s0 E3 v# e: K5 |% \/ |
                                rgManager.nearestFreeStation(@,track.~);; z+ t" C+ `- p' W# B
                                newDirection(@);   
2 i& q, P: P  t' e                                if @.Destination /= void then: t% ]+ H9 e, U5 b+ I
                                        @.Destination.NumReservation :=/ i* [. Y7 P/ Q4 t
                                        @.Destination.NumReservation + 1;* i8 T7 o& \! w: V
                                end;
1 L( [+ f; P7 l7 Z: X                                @.CurrIcon := "drivingHome";
7 R. W- z9 T( D/ N3 l) ]8 V2 ~8 J                                @.DrivingHome := true;
, D, x0 Q. x& Z9 [( u; [* H; D                        end;& ^+ ~  b2 Z6 U* Z9 t! Z6 M- p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station, L" k" _5 w( e, a1 y9 w6 U
                        part := @.transpOrder;9 [1 t; Y4 H! ^( w' X' P
                        part.move(@);-- load part" c* @$ |1 J% P; k2 Q# B$ D7 R# g
                        @.CurrIcon := "load";# z* G/ ~2 e  b" @5 @# ~9 F
                        GlobalDistObj := part.globDestination;' N: p# c4 ~% c$ e2 V7 m
                        assignLObj := rgmanager.rgAssignL;
0 k2 o. m+ x+ Y- }                        row := assignLObj.getRowNo(GlobalDistObj);
; D: H0 e: u3 r5 E                        if Row = -1 then -- since 70
% |4 ~* e5 T$ n7 Y4 l- l6 R" L                                if lan=1 then
& k( b% {. F  O: z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 ~& v. P% r3 j& h                                                to_str("in der Andockstation: \"",?.~.name,"\""));- C: x  U  f3 G9 v5 X0 g- I% Z4 m3 U
                                else
( k2 C, w( V' {- k* n  s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 {5 z2 |, |4 I3 I8 `+ e
                                                to_str("in docking station: \"",?.~.name,"\""));                                # i7 J, M8 R" g$ e/ s9 b0 y6 B
                                end;0 B; z5 s6 g1 @0 r& a
                        else! }1 M: C% d5 f9 c8 O0 D$ h
                                @.Destination := assignLObj[1,row];( N" K8 _2 K1 `, [* \9 E
                        end;                        8 R- f1 t- l! w$ F: K' l
                        newDirection(@);
( I( e) V! X1 t: D' k% P- S/ V& S                        @.HasOrder := true;
; x% V9 g& K. A: }4 m                end;, k+ s7 L1 t: U* ^( q! L* C& Q
        end;4 v. E2 n; B' Q: |  a
end;        -- of the method
& W/ D: l) `* B+ A# x7 U$ e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 Q, i1 t$ U9 X  o+ |6 r$ \

4 T- J1 ^1 T3 \这是AGV_putin中arrive的method。8 S# d9 e2 W3 b+ _! o

5 }' A2 W8 d9 d4 j/ I当到达物料速度越高时,这个报警更多,# U) R* B8 S4 }4 I+ F* d+ k
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% ]) w0 j0 T" V2 d; a6 I! b: u
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) z8 s+ o# L( p4 [4 `

$ l3 T  R  F, z* @2 b/ y% I9 \另外一个小建议,就是move,所有的move都可以这样/ a/ ]% D1 h, d+ {, R0 s" p2 A
if not move() then debug end
$ \! b- r$ |5 Y' O) ^* U5 `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 s$ t4 c1 b; q/ pplant simulation中的free libraries有AGV模板,
- {0 k9 E" C: Q% ~里面也有案例。
0 J* s. U' {6 p4 g- I8 m9 ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 T) e! F+ b0 y5 K! `- W/ ?, n) J. {! P4 T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . E6 t4 K( T  I% j- p# ^2 [& y
1 K+ r& d2 w7 K5 P8 @3 I
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" I2 L1 H  c+ R; c这是AGV_putin中arrive的method。
  i) O5 v/ |$ J9 ?0 v' K7 j. Q/ I* {
当到达物料速度越高时,这个报警更多,
: j( T% y, q, `* U# @% k
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-7 14:01 , Processed in 0.024913 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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