设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9593|回复: 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'
0 q5 {) ?4 X& ^$ i+ G*/
- K# e1 H, f$ T) `, q& ]5 Sis2 z9 _6 t% ?7 E/ `: a( g6 C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 i  y$ V5 `" u
do
% Z) B8 z9 B6 D5 O+ F        Lan := rootfolder.Internal.Tools.AOLlanguage;  Z, X* t" J* }! W" ?  J
        if current = @.Destination -- else return
5 M8 _4 j1 n) I/ L5 s! n, _4 q( c. @        then9 y! l0 }( p! I" J
                @.Destination := void;
" l+ ?: R& X9 u2 N/ j0 j                if @.occupied then
0 i+ L0 b, ~! C. g                        part := @.cont;+ c4 S) F) W* S! n8 {2 z
                        @.transpOrder := void;
& ?( a; |' ^; j: ]7 T  u5 X& K) N                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! X) N: q4 e2 B  l% S, a                                @,root.eventcontroller.simTime);( B7 A0 @2 M: A& e! a/ h) r
                        @.HasOrder := false;6 {9 z4 y2 j' J4 n
                        @.DrivingHome := true;
( W! H# Q1 x+ i' W- S, q+ c* F                        rgManager.tryToStartTransOrder;
$ C8 c) x* A, A                        if @.Destination = void
& G: \8 D- s7 _, E; {                        then -- no transport order for vehicle @
! I1 ~7 P) c* R" f1 B4 ]9 e                                @.Destination :=6 M9 M+ y) a$ p- q& w  M- G
                                rgManager.nearestFreeStation(@,track.~);/ C" [  ?1 h+ l5 Z, I1 n
                                newDirection(@);   7 E/ b$ _/ }8 m& Q' E; P
                                if @.Destination /= void then* @, y5 W$ J" ]$ y$ g
                                        @.Destination.NumReservation :=
, c) @* B, A9 w                                        @.Destination.NumReservation + 1;6 i7 Y1 ]" T1 d# B/ n1 w
                                end;: A! _; K! |7 w
                                @.CurrIcon := "drivingHome";
* Z! C, g! ^! B( R# s                                @.DrivingHome := true;6 K9 |  L6 _. y/ a! B+ A
                        end;
( z' C2 g/ K! K* k- e                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* G8 D6 L3 N$ i) R* Q1 B/ X% X2 X
                        part := @.transpOrder;" E% ]' ~- v2 s+ Z! C" F
                        part.move(@);-- load part
, o0 r, L4 `& n  O                        @.CurrIcon := "load";4 O2 {; q1 N; E
                        GlobalDistObj := part.globDestination;" \+ v2 I  G2 _; I# G: v3 t
                        assignLObj := rgmanager.rgAssignL;! O* w; h& o) n! g" M! S1 W) A, S
                        row := assignLObj.getRowNo(GlobalDistObj);
  d8 g, M& q0 Z( s# F2 ?) q: X                        if Row = -1 then -- since 708 T. n8 u: J: {" o& x9 f
                                if lan=1 then$ v5 E1 K# R# f' I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! a8 d, Z1 W; }( ]$ ]
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 ~$ \0 q4 _! y
                                else
# \6 X, L" a" H                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ S1 S; G: e; C& X/ i2 x/ t* m
                                                to_str("in docking station: \"",?.~.name,"\""));                                2 N: Z! i3 a+ a. g9 R& B" p
                                end;; i7 a2 D- a) [1 p8 y
                        else
8 O2 e2 A: X6 S5 W: x" ^. ]2 Q6 a                                @.Destination := assignLObj[1,row];
. [. q7 Y5 B, h                        end;                       
! O4 ]; f" W4 d* F                        newDirection(@);% i& n/ j8 p  Q: I6 u) @
                        @.HasOrder := true;
% C" v3 G, h4 ]* B% R( ^1 r                end;
/ d9 B% l) h7 Y7 q. n% C4 E) v  p        end;
/ G, c2 i  B$ tend;        -- of the method# h" I9 G3 P# W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) r5 Z3 z7 N, b$ d6 @6 k. Y9 v! W4 E6 S8 e+ @! d! \
这是AGV_putin中arrive的method。
! A( C6 m6 G$ Q  p* |1 S7 i& p( Z5 h3 S) q- R, X- S$ j$ X5 l2 o
当到达物料速度越高时,这个报警更多," |3 z# D: c5 g9 t8 x) C: ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 [# l! r* e( S5 G" J, `* _( {
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ v5 W; |% P4 q. [# [/ r: V

" x" w( ~* q6 v- o4 C! f另外一个小建议,就是move,所有的move都可以这样* x' H! P8 q( ~& p# K8 |8 [7 @" V
if not move() then debug end
2 e" q5 N9 P7 c, q$ U% b; y, x* n2 Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! }2 K; u+ Z& |8 h! `3 m6 Eplant simulation中的free libraries有AGV模板,
) q9 U& g( R+ a' D* Y# s% x里面也有案例。
5 G+ ?* J1 t( E2 y3 E我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 r8 K+ Z6 C5 j# R. V1 m. G  G# j/ `6 Q) N5 f4 r& r/ ?3 v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 m. X6 N- y  S0 }+ c5 K3 d. O2 z3 y9 y& C/ U' G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ T9 m# K! @3 L1 p7 X; {& r这是AGV_putin中arrive的method。4 u: e, A. h3 q9 w( }( m3 k5 l

, q! ]% C; s7 g$ C/ W5 _$ A8 T( |  ]当到达物料速度越高时,这个报警更多,
1 u# B! I( ^! ^1 d# T1 M$ E' }! O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-10 12:04 , Processed in 0.016354 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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