设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9918|回复: 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'
1 E5 f: }* h  v*/1 r4 ], r# g& {. F7 S
is
4 z. U3 E! q; N. A+ O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 D; v5 c0 a4 ]" j/ b
do
8 J1 Q, g+ @# i& `) K        Lan := rootfolder.Internal.Tools.AOLlanguage;' p4 r& p* h4 L9 q
        if current = @.Destination -- else return
8 l% F6 H6 [7 S2 `% R% ~2 M6 K6 `# p        then
, B) {/ w# Z8 f                @.Destination := void;; X+ y6 D) W7 ~8 C+ W$ h: Y
                if @.occupied then
" Z% O% O  O) L) Y                        part := @.cont;
$ S1 C" Y  f' e: o! R- ~! e                        @.transpOrder := void;6 W# L. X9 n# q& a. J
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% O) s4 o6 d+ r9 T
                                @,root.eventcontroller.simTime);
  u- j' W, F" I7 k$ K                        @.HasOrder := false;4 E5 Q! L( `7 A. x6 C( o5 V
                        @.DrivingHome := true;$ [& k# M0 S; W+ x0 y
                        rgManager.tryToStartTransOrder;- A) O& o, j' j. r2 t1 U7 z
                        if @.Destination = void# `7 c1 A( s, M" D' V9 M! _
                        then -- no transport order for vehicle @  C% L" r. u, `; {" y
                                @.Destination :=. K) k3 ?4 b9 @7 U* I0 f  ]+ {: R
                                rgManager.nearestFreeStation(@,track.~);$ v* f: S  a0 ~7 }- [- A) V3 a, a
                                newDirection(@);   
3 `. E! R2 ]! ]; S# ^' j+ ?                                if @.Destination /= void then
. _9 ^2 |# i/ f, y3 I                                        @.Destination.NumReservation :=( _. m! H) S$ u$ a* H& q
                                        @.Destination.NumReservation + 1;
! w' j( O( q% a4 E: O# t6 D; ]                                end;- v# x! ?- z, f
                                @.CurrIcon := "drivingHome";
' H' J' ^% }' _9 ^: e                                @.DrivingHome := true;
5 y% C7 ~& P  w' f6 K* D                        end;
$ u* j7 b4 ~, I                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 A1 F4 j* [: R3 x                        part := @.transpOrder;
; {* i$ Z2 O, e$ i( s                        part.move(@);-- load part" I' E" ?8 t3 T3 }0 w, o6 I! p0 X& K% l
                        @.CurrIcon := "load";2 ]" i% H$ P1 Y$ F2 Y9 b' l
                        GlobalDistObj := part.globDestination;
' _. g* [( f" Z# Q6 j, h* d" ?                        assignLObj := rgmanager.rgAssignL;
* N' g* ^$ i' X1 u6 s) F                        row := assignLObj.getRowNo(GlobalDistObj);! G- l3 C" v9 v2 m7 `6 }
                        if Row = -1 then -- since 70
5 _  [/ B4 t0 q4 J! g; R                                if lan=1 then
, x" P+ y5 D1 s. |9 m4 c- l' U                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ ^! D) \# k% ^                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, k' i5 w6 J2 R3 _/ R* H8 U4 ]6 I- _2 q                                else: C! p. V8 n! R( X& a! d, D+ A
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 P# a3 q( A+ g( a: p! a5 b                                                to_str("in docking station: \"",?.~.name,"\""));                               
' t1 I5 p7 u! ^' y. o; e7 K                                end;
$ w8 m" n3 o$ l2 T1 |' e& @                        else
/ Y; q3 A! X* U; ]" L( a2 m! N                                @.Destination := assignLObj[1,row];
4 }3 e$ d. Z9 f. ^0 ?* R; J+ ]4 x7 O                        end;                        5 K3 _' i) ^" t/ u, D
                        newDirection(@);
* L3 }7 p% W5 X                        @.HasOrder := true;
1 i) J! b5 {: K- L' c- v3 a6 i                end;+ z6 p' I1 q5 |) ]
        end;
& U6 w3 m. A2 N5 D0 \9 N4 Cend;        -- of the method$ l  g$ }3 h9 A; x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + h* k) a8 k0 ]$ O+ r# G1 B: t

3 G$ j1 I; c. ~6 u( q( q, j' Z2 O这是AGV_putin中arrive的method。
5 r, C$ F% w; k" t5 m' X. m. @  M% i% r" |& i3 ?& B
当到达物料速度越高时,这个报警更多,5 m' ~+ C' G/ A  h) S
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  s5 m/ R$ O; ]. n* c
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% P1 ?" d# M- @+ _7 N/ e" Y( A

; H$ i* J) ~4 V3 A- e$ e" l另外一个小建议,就是move,所有的move都可以这样% k0 b! m% A. N+ q6 r
if not move() then debug end$ ]" m7 {$ u  r4 \5 S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' |! p! r4 I" j
plant simulation中的free libraries有AGV模板,
. q% z1 ^2 A/ p0 `/ k里面也有案例。- |3 A/ L0 g! h0 O, n2 g5 N4 q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ a9 ^8 ]0 d0 F$ G3 l
) s/ g) b7 W3 O  \, i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 k5 z* B" r! ?( @

& o) ?% G. ^# P3 S那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  O" R8 J. R6 V; H: C) ^: g: ]# R+ q这是AGV_putin中arrive的method。
; _; i; P# h/ o( n. p$ ~; d2 `( z; z
3 |" Y. h9 A* j! f* ^当到达物料速度越高时,这个报警更多,

! |8 U6 M. H; {% U4 c; x: K/ x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-2 15:20 , Processed in 0.017783 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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