设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5311|回复: 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'9 p# T5 C8 F4 d2 h$ ]6 q+ J, g; S
*/
9 R9 {& K/ x- M$ p- n3 ?is! k( C; J5 o, A8 X) j
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ C' O/ V7 Q8 S+ Z. w1 E4 Mdo( V* q/ t$ c6 M3 S4 U' W) r
        Lan := rootfolder.Internal.Tools.AOLlanguage;' J9 R; ^3 k: [' e4 M
        if current = @.Destination -- else return
1 g0 ~7 r2 M1 |; j) I& C3 y) _& G  b        then
# w1 b) T) \- E, @  H                @.Destination := void;
3 _9 r; `: G7 w" _$ n* o! X( v5 ~4 c. d                if @.occupied then7 ]7 w) ^3 z4 I" l; b- y. r, N
                        part := @.cont;+ j& |0 M2 ^. X9 u
                        @.transpOrder := void;
( ^7 m& k, t' g0 k* U                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: c9 J. G& z1 J/ V6 }+ s5 B
                                @,root.eventcontroller.simTime);5 ]( s0 f9 _) W) V. {/ C
                        @.HasOrder := false;1 @6 T8 A" z/ A! W% L8 Q1 a* s
                        @.DrivingHome := true;/ \* F9 {/ g! E. L( Y
                        rgManager.tryToStartTransOrder;
$ v: w6 o1 d3 G# ]                        if @.Destination = void, e8 Q0 k9 `9 q3 y5 _
                        then -- no transport order for vehicle @# e: E5 Z' C' K0 K% Y8 d
                                @.Destination :=+ P/ k7 R, B0 }$ c- w9 w, l: A
                                rgManager.nearestFreeStation(@,track.~);
& R7 E) y$ Q7 q; y( c. M/ v                                newDirection(@);   7 ~9 B6 I: E( H. a; N7 }2 q
                                if @.Destination /= void then5 H% z, l' J5 p
                                        @.Destination.NumReservation :=1 u7 Y3 _& O4 T1 g/ E" T, I
                                        @.Destination.NumReservation + 1;; X! w2 L4 g$ A2 O$ G$ {7 l3 @7 N
                                end;0 c1 j) K  P& J8 c# f  v
                                @.CurrIcon := "drivingHome";) D( {4 y5 r. j/ n, L, y0 k$ N9 u( I4 t
                                @.DrivingHome := true;, L( _5 L$ V5 ]- ?/ e0 V
                        end;
3 m: e6 H' A# ~; t                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; B+ D5 U' P, ~/ x8 Q                        part := @.transpOrder;
4 J0 o; x0 C' B7 b2 a4 L4 z4 _                        part.move(@);-- load part
% n8 ]& e% T& n3 {, X8 q; K                        @.CurrIcon := "load";
' g7 v  K# q) F  F; M" _                        GlobalDistObj := part.globDestination;1 O" S3 u$ ]& E6 a) t0 e
                        assignLObj := rgmanager.rgAssignL;
1 c% x  c# V- x  G6 [                        row := assignLObj.getRowNo(GlobalDistObj);
9 c/ ^: K5 Z) A% g" Q" {# X                        if Row = -1 then -- since 70
9 e! x2 O$ T* p' ]$ \7 @% f                                if lan=1 then. i, _( X1 G# y. d: j& Z% M7 q
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 A4 g7 H2 _3 A! m. E                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 |+ \4 _" q1 z$ W: Y                                else
8 k8 S" F+ k3 X% J  a' W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. e4 _9 j* }8 ?0 l' {4 H  {3 X
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' N* S. V3 u1 n. P! ~# {                                end;
; _0 p2 L9 ]9 v" Z0 g                        else
) t* I2 j7 q" t1 O                                @.Destination := assignLObj[1,row];% M" x& t: E- I( E/ ~7 p
                        end;                       
$ d5 v: q' P. z' u1 T" x                        newDirection(@);
. F; Q, K# |* Q/ s1 R9 T- s. g" a                        @.HasOrder := true;2 T5 o9 o5 @7 {8 [
                end;
- B; h1 ?" L2 o, x$ p        end;' I& G6 c- h2 e* B! e* H7 z
end;        -- of the method
- P+ U. f+ f" N, q; R1 d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : l: b) T  \& p7 F

( Q$ G# i9 Z1 g9 n: l4 |! ?1 W5 B这是AGV_putin中arrive的method。$ Q3 \: l( t. J/ `0 U

0 u& h8 I) X1 z% Q# S当到达物料速度越高时,这个报警更多,
; p( E& z3 k; s' ?5 ^3 Q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, Z6 B! g. Y' V; \+ \9 @1 i, D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' ~6 p+ p" @' i) \3 Q9 K
3 F) O9 X: \9 X
另外一个小建议,就是move,所有的move都可以这样, I; a4 P1 W( M5 w9 Q# V
if not move() then debug end. a/ s! H9 F5 d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ w9 i$ D' @, S" zplant simulation中的free libraries有AGV模板,
8 A" @4 p. y5 W! k2 p! S2 o& C里面也有案例。
- |& s# W4 K8 W" g. a: Z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. @/ ?* A) f# ]& i1 |& a9 ]3 o
, B" R) g6 t( T  v' j3 ?# z4 f
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , e6 i* f! J; [- `

" c& p; Z4 A$ l  B$ X那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% ^. q% R. W3 p) B6 ]9 w- A这是AGV_putin中arrive的method。; a: \# ]* E/ ^4 r# S2 x

" g& R9 H% u4 e) u当到达物料速度越高时,这个报警更多,

/ @1 U: F( N+ ^0 _, o  }另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-10 13:56 , Processed in 0.017769 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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