设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8804|回复: 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'5 h" d9 U3 s" e7 g  @
*/; s! i8 n6 }  n+ `2 U0 P
is
# M! ~$ {6 ?. g  L! h% i' Q  o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) @& l( {" w1 a9 W" z' I- }& l5 C
do0 o$ u! m7 z; I) ^, v2 a! @6 H+ G
        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 }% y, ^% `& F. D; J0 B" f        if current = @.Destination -- else return
, a) Z% A' A- p: r  d: w        then
& S5 A1 X! s. ?- w. y                @.Destination := void;" C( I# a( [5 M' ?
                if @.occupied then
3 Z7 v/ X4 u# L5 J- U; v                        part := @.cont;" N7 D7 ?; r6 Q- j$ b
                        @.transpOrder := void;
) P% i; ^* y, t% ^! x5 A                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 a1 u6 ]6 t6 U0 |' t; C0 W                                @,root.eventcontroller.simTime);: z; O" H8 Q+ x) b8 y1 j
                        @.HasOrder := false;; [5 [4 l% C! Y8 F- i9 N
                        @.DrivingHome := true;
% g- {2 l; \) m  G0 u1 i$ k/ D                        rgManager.tryToStartTransOrder;& R2 m3 ~8 c9 w  ~  M
                        if @.Destination = void
1 v4 ~. ?- k' T/ \- R                        then -- no transport order for vehicle @+ O7 n2 p  \' l  k$ |
                                @.Destination :=
" ~1 \9 S: H6 f                                rgManager.nearestFreeStation(@,track.~);
! w6 a7 J( X2 s2 z% n9 ^; C& x+ {                                newDirection(@);   3 A8 w' w- A4 e* }* S' h
                                if @.Destination /= void then
2 e+ W) @8 @4 R% I: H' c                                        @.Destination.NumReservation :=, g9 Q3 f+ w) d- ?, P9 `4 c
                                        @.Destination.NumReservation + 1;! w$ d. B' J& Q) x
                                end;) d0 p" N3 \1 h
                                @.CurrIcon := "drivingHome";- r( N$ u: p* m$ |, ]% ^! |
                                @.DrivingHome := true;! H* W# b* M8 U: f& T+ m6 V6 i
                        end;% H  X& |3 K9 f* C" i4 t4 V+ p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" [( G, V1 G6 ]5 Q                        part := @.transpOrder;
/ v, u6 R) @1 Y. L  W  X                        part.move(@);-- load part
7 a0 ~; Z) u- h8 w- d; `: i7 t                        @.CurrIcon := "load";
( V3 @/ _. Q4 `& m# S$ _  g& `                        GlobalDistObj := part.globDestination;
/ ^* G1 {/ N7 A+ Z; D+ m* A                        assignLObj := rgmanager.rgAssignL;3 f% U- D  U7 N& H) i' R/ T
                        row := assignLObj.getRowNo(GlobalDistObj);
" |0 X) y6 B0 C: c                        if Row = -1 then -- since 70
+ C/ ^2 \* a3 i# X: U  Z' V                                if lan=1 then) P% p/ z! ]# @7 {- g, b
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! u5 n, V2 h; Z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  Q& }' i" C& }: I                                else
! ]1 b+ _) q! n  J. M                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 Q2 @  F% v4 f; O) ~                                                to_str("in docking station: \"",?.~.name,"\""));                               
) |* b2 {- \* @8 `. z, B                                end;" M( C4 C: W! w/ B8 X
                        else
0 z( E2 c# q( f8 s                                @.Destination := assignLObj[1,row];
1 a% c2 W8 B* h. V2 f0 c                        end;                       
$ q1 s6 e- O) P4 r4 q                        newDirection(@);9 A( l) c! @6 ~- X2 ~3 E+ o) e
                        @.HasOrder := true;
6 C- ?+ C/ j! C  x1 s( |) k* f                end;
; U: }2 i9 K& \" a* z: N1 |6 Z        end;  C; C" J3 b% _' k: _6 \
end;        -- of the method
, `; _& U0 B$ w8 K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ T1 A& u  J1 T" \. \; t' J4 k' z  M# J- |2 A
这是AGV_putin中arrive的method。
* A& G$ s! H' O1 t7 A$ q2 E" D' t, k6 X4 Q. P! K9 m
当到达物料速度越高时,这个报警更多,
5 A- ^5 c/ ^1 t. \- ?0 p可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: [- F5 c, o/ `  Q9 R) X* ^
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) M0 u" g9 H' j* ?; v  ?: t

* V: ?! e& x3 \. F% Z. Y另外一个小建议,就是move,所有的move都可以这样  n, ]0 |' G8 E4 I+ Y" }4 o. A" [4 o
if not move() then debug end
0 Q0 _& A; b& i" I2 r7 E+ ]- F2 s4 C这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 u8 {/ G% g2 ]2 [+ D; Z4 F, tplant simulation中的free libraries有AGV模板,
$ \2 R: X( H5 b! }8 w9 H0 J里面也有案例。
* Z; b& |) S1 L5 v* @  j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) L/ S) l% \/ E. B5 t$ P1 H4 Z' @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 W/ @- E0 I2 _  K3 D) w- n7 l2 D
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 v# ~7 c0 ^- n: X这是AGV_putin中arrive的method。) V! @' |3 F7 d2 H; W. u8 n/ U
* v# x  k4 i6 \
当到达物料速度越高时,这个报警更多,
1 g1 K" e8 L, }( q: R5 W$ R5 G9 \
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-27 06:18 , Processed in 0.019102 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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