设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8821|回复: 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 S+ U2 N- E3 V( t
*/
2 c' @6 S6 U* i) E& P7 P5 Ois
7 d& ]0 t4 l4 {1 Y1 i        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. h3 H1 V0 M$ Q
do3 B2 w% y$ D! m5 N; g
        Lan := rootfolder.Internal.Tools.AOLlanguage;
  \& Y! j+ j) p% o% x% y$ l; D        if current = @.Destination -- else return
: I& _+ O/ Q+ D( m9 R% P& @9 j4 v        then1 U$ ?: |6 t* k+ [
                @.Destination := void;! \' ]" N" _" B3 @
                if @.occupied then
# W% K- w6 A6 |6 t                        part := @.cont;
8 f5 `) U& j& t& H( v" }                        @.transpOrder := void;; g# G& b) b4 T$ m* P- d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 s; w0 L0 I/ \9 p
                                @,root.eventcontroller.simTime);. h( X1 A1 Q/ q6 C
                        @.HasOrder := false;
( ?% a; v* ]" ~9 z$ [( U# Q8 e4 I                        @.DrivingHome := true;4 B2 t" g4 y& D; k0 m. o
                        rgManager.tryToStartTransOrder;
  k- |  F# j2 \7 [- u$ Q! A* J                        if @.Destination = void0 A; D' x3 h" H
                        then -- no transport order for vehicle @# Z: b5 s" d, D2 H5 L! B
                                @.Destination :=" V/ K- B# w# a2 \8 R5 p
                                rgManager.nearestFreeStation(@,track.~);9 N5 C% z7 r+ `$ {8 n. B
                                newDirection(@);   
4 q: e0 Z1 N7 u. R# H9 z( Y+ v                                if @.Destination /= void then
( Q) z' X( ?4 G) l                                        @.Destination.NumReservation :=
1 ]) \8 X& D# l0 i. X0 f! T                                        @.Destination.NumReservation + 1;
9 g5 e" N3 [! S  w; [7 w                                end;
4 Y) p# P* m' j% \                                @.CurrIcon := "drivingHome";  d$ ?* R7 ?8 f$ E  f6 ]8 c7 M
                                @.DrivingHome := true;
; I; ~4 z2 t; q* Q& G! ~                        end;
( q9 L4 @8 w) F0 A) ^3 `                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" j* n! j/ t$ q" Z+ e                        part := @.transpOrder;: g3 X* G& |" n- ]+ [' `4 t0 D, a3 d
                        part.move(@);-- load part8 Z, q) C$ I; j( y
                        @.CurrIcon := "load";
6 C2 E$ a, P6 [+ P2 s. O! @                        GlobalDistObj := part.globDestination;$ W6 `! R, M7 m7 m
                        assignLObj := rgmanager.rgAssignL;! Q4 M( d; ^" M, c0 l( l. c
                        row := assignLObj.getRowNo(GlobalDistObj);- b3 i2 |: b  K+ l
                        if Row = -1 then -- since 70
; v/ ?2 k0 v1 p. ^1 ~* W4 n1 Q                                if lan=1 then/ s2 o1 W8 g% C( n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; ^8 f2 U- n  D0 t' n) B) U6 o3 q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. o. T- n& X3 h# l2 ~+ A1 O* `! d                                else
! K6 D  n( t2 k7 [9 L1 b) M! _                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ q( F! W) d* M! Y! w+ Q: r                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 t8 l7 c) J: {                                end;
4 T% `0 V$ Q2 j; W4 \! J3 ?" [7 Z                        else: ~4 c* p' V7 N: M, d5 b0 Q
                                @.Destination := assignLObj[1,row];" \7 M$ Q/ @  X1 q6 e2 i
                        end;                       
9 x) }. `$ S1 |4 Y7 B# z6 Q                        newDirection(@);
3 P/ Q0 d4 R2 M  S9 p                        @.HasOrder := true;3 _- G8 Y* h6 K  g7 D
                end;
2 Y: {% n. k2 W" Q  J5 c; q        end;1 A* i1 e3 y) f# {9 V
end;        -- of the method
% f5 H! m9 t1 b' N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. i2 u$ b3 E0 P: U0 c3 p1 P" e$ |
这是AGV_putin中arrive的method。
8 M( d! W' X! S, I" I4 t# [: L6 z8 }* c) b6 w5 ^0 ~& s
当到达物料速度越高时,这个报警更多,; x: N. D& h* O3 [7 C8 k
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* n" j( |& ?& t7 D/ F程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 O+ `/ A" ]( X( ]# b. i( y8 @

  Y# D6 C; O+ M# Q) k另外一个小建议,就是move,所有的move都可以这样
, Y# n) H# Y6 x9 S5 R: fif not move() then debug end$ P6 M7 y! t4 ]/ G$ t% y3 X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. v$ U  c) d( }# W! Pplant simulation中的free libraries有AGV模板,9 w% O" J- N4 ^
里面也有案例。
4 o  I3 z& f2 ?4 d% W我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! j* f' G1 V2 R8 s0 A: c  K- W

& Q2 b" e2 o6 T我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * N- X; o! |. G  f1 C9 W7 M2 Q! f

8 g; e2 \$ c6 _8 o( ^! k8 |2 x5 q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 w4 |' W5 X) H/ @/ P+ V! f
这是AGV_putin中arrive的method。
9 P. \0 s& s6 G4 R, q2 S2 D; D" R
8 g3 a0 y1 x+ U0 {4 l7 c% J当到达物料速度越高时,这个报警更多,
8 X8 |& M5 q( ?; u5 m+ |
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-28 10:57 , Processed in 0.015996 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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