设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8128|回复: 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'
/ U0 U7 N! z+ m$ z) g$ F*/
3 M& o/ B/ {  e5 y6 Y' Z1 |, His0 p  b& W$ `8 }% [) r6 z3 Y; Z. U
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 Y; l: D3 M( I2 Z5 \# `4 fdo
, t; {7 a0 t7 @: a        Lan := rootfolder.Internal.Tools.AOLlanguage;
& o4 g6 o2 I/ F) }+ k. n        if current = @.Destination -- else return- v5 [+ j) w) U/ h0 Z
        then0 m% e) Q% [7 P, X% h3 k
                @.Destination := void;
# A# V9 v* d* J. k. n2 D                if @.occupied then
' c4 Z! C; Z0 a                        part := @.cont;
% [" l4 p8 c$ j* y' S& m  M                        @.transpOrder := void;
! G6 G. M: `7 Y! x! b9 z% Q                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* o& }8 ?' l' R; I4 b8 g6 S                                @,root.eventcontroller.simTime);2 u: i; h8 ^3 \8 q) b) c2 M
                        @.HasOrder := false;9 L1 O2 P) _9 e7 l0 g7 \2 W3 w
                        @.DrivingHome := true;" U. n; x! O' u/ A/ d
                        rgManager.tryToStartTransOrder;
# E0 `7 O8 \% B( F! h& n( O- B0 w                        if @.Destination = void2 h  Q) F# A* f$ q* X8 e! a6 ~
                        then -- no transport order for vehicle @0 a8 h# C1 f+ T$ l3 k" ?9 `1 v* x
                                @.Destination :=7 f. H# [& y' q( ?- d% E
                                rgManager.nearestFreeStation(@,track.~);$ r5 B, b9 U: r  b
                                newDirection(@);   " A) N* y: }2 P5 ?2 o
                                if @.Destination /= void then/ S! u6 v+ I8 x* n  \; u
                                        @.Destination.NumReservation :=0 u$ Y0 h8 a2 s) ~# g% ~
                                        @.Destination.NumReservation + 1;
8 V0 x+ r0 a7 r: N3 J2 i+ t                                end;
0 W) l7 i# c9 ~- {% L# e' ~; K! `' i                                @.CurrIcon := "drivingHome";% k+ V3 J) w3 v# m# T% r/ R7 u
                                @.DrivingHome := true;
6 T% M* y7 y1 K; x/ `. s% j                        end;
2 g6 i' A9 ^# i$ M* `2 }                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 r4 M- m/ f1 P
                        part := @.transpOrder;( n. W; a6 x1 `
                        part.move(@);-- load part: s, k& j. p% t' q
                        @.CurrIcon := "load";# [) L% q2 ~6 r- t  y$ g
                        GlobalDistObj := part.globDestination;; B- p7 v1 X1 e( }
                        assignLObj := rgmanager.rgAssignL;
9 B3 D/ W, ^3 e6 I1 Z4 `                        row := assignLObj.getRowNo(GlobalDistObj);
" i" s* q' m" I5 D5 h! U' S( A                        if Row = -1 then -- since 70
5 d& y; p9 G& g3 g1 W9 v                                if lan=1 then0 z2 w4 p8 w  y* ], o3 W) Y8 G" ^
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( }6 V" |/ W1 z3 g) C7 L                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* J3 M" |% _. G: i# Y. r$ G                                else; {2 |# F7 S# }! E. A$ ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- I! n( Z' }) K" B: Y# f* Y4 }7 C                                                to_str("in docking station: \"",?.~.name,"\""));                                $ N( f0 S) Q0 |! u# C
                                end;9 n/ A' ]  o" }+ w
                        else- I% j+ ~, n8 {* G# ~* @7 q5 j
                                @.Destination := assignLObj[1,row];
7 d, d4 j1 B) p9 X- T% r  G                        end;                       
' X+ j. ?4 v; t" i+ r                        newDirection(@);7 a: i4 i" _/ M& v
                        @.HasOrder := true;; \9 ^( v" ]; }  i
                end;
$ M$ Y: w3 m( g3 u: `* D        end;. x0 |. o$ b7 g
end;        -- of the method' a8 }3 d* x) P8 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! |6 P6 `/ }$ Z2 c; l2 A
9 A6 _$ k( w3 m( L这是AGV_putin中arrive的method。
2 v$ ^7 v6 X3 M
4 x. G0 G8 e& Z; f1 C当到达物料速度越高时,这个报警更多,
, f& H3 a! n! R  A& `; c可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 T( D4 K+ X9 `; V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 n5 K# A- W. ?# B8 J# p4 |$ w* X  \; F& M# \0 x2 \' S
另外一个小建议,就是move,所有的move都可以这样
# {- J: ]* |' `$ X( `if not move() then debug end
% I& j$ Y  @! ~2 h; j+ [; k2 o这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. H# c5 `3 I0 \, q5 H
plant simulation中的free libraries有AGV模板,
. V1 [- N' \9 y' m, d里面也有案例。
+ ~1 A+ s0 D4 U! a我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% P8 M$ q4 v9 g$ S
( x8 v9 S: P# E0 t
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% d  t1 ~8 y  p; h
5 I. x; }8 E- `* J' C3 ]7 \6 k那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* \) |# v* o" K  ~6 T7 }这是AGV_putin中arrive的method。
" s, M4 D5 h' C, h3 I5 Q) l# S! _* ?% i; M
当到达物料速度越高时,这个报警更多,
% B5 ~: t" q% t1 r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-16 07:13 , Processed in 0.026186 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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