设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7640|回复: 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'2 U/ n- S* B4 g4 c: E" T; P2 f
*/
( F$ ~4 x6 W# i5 i$ b$ ]. cis
* H7 {& F" m! w. ~" f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: R5 |; G4 k5 ^9 y' Q  H# e
do9 m! C* h3 }* F: ^
        Lan := rootfolder.Internal.Tools.AOLlanguage;( W9 E& {+ R# G* x
        if current = @.Destination -- else return
& v: l7 P& c7 ^+ Z        then
; `4 `& \9 ]+ T. W# Q* t                @.Destination := void;
4 u8 N* W0 Z0 _: N9 {                if @.occupied then
3 Y2 [3 q& ~. s9 Z; T' `8 `+ `                        part := @.cont;  p+ v, L, U, E9 l" a6 ?. c% o
                        @.transpOrder := void;
% j4 }: ?/ x% ]7 R7 {+ L/ O                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) P4 ?' W" |8 Z! Q4 X& s3 a* }                                @,root.eventcontroller.simTime);/ h) V5 y: _) o; h
                        @.HasOrder := false;
0 F1 R6 V% p) Z8 Q( P' G4 s% M                        @.DrivingHome := true;
) E- T9 N. T3 o# X: w, n                        rgManager.tryToStartTransOrder;
3 H1 n$ z9 z' c0 J/ ~& m1 u                        if @.Destination = void2 H; k' a7 `% O3 P. a5 G
                        then -- no transport order for vehicle @( Y# h8 m& f8 n
                                @.Destination :=
, l2 z9 E/ z' @4 x' N                                rgManager.nearestFreeStation(@,track.~);
8 h9 T1 V( T& _. S# F! l                                newDirection(@);   ; x' W, y; r1 Z$ r9 K9 J0 b
                                if @.Destination /= void then
2 Q; U& O' T( ~$ e, z, F" g                                        @.Destination.NumReservation :=* h- b0 D6 V7 `) W9 a, r
                                        @.Destination.NumReservation + 1;9 H0 \; o0 X+ }: V$ h
                                end;: A5 o4 a0 E' c6 P5 @& m7 V; N
                                @.CurrIcon := "drivingHome";$ L# E& F' M2 g- h
                                @.DrivingHome := true;
1 {8 d, E& z+ I  F$ `( H7 j                        end;
& w; |6 B" c# Z9 Z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ U3 B3 j" u" ~6 z) g/ _                        part := @.transpOrder;( P) P4 G& [% \% E
                        part.move(@);-- load part
) Z1 j$ r% r, g2 i$ G6 q9 G                        @.CurrIcon := "load";* l$ A5 I- f, P4 _
                        GlobalDistObj := part.globDestination;
9 R, J5 ^% Z+ `/ _" q, ^                        assignLObj := rgmanager.rgAssignL;
0 u% P3 ^; P" B7 x5 e' X                        row := assignLObj.getRowNo(GlobalDistObj);
$ k5 a% B( ?" R* K  V8 A                        if Row = -1 then -- since 70
9 q' \8 ~) i% Q5 X8 u% N                                if lan=1 then
$ P6 {' U  H1 R% c) D                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( ^) c7 u9 `. D* X- V1 a+ M' G
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, }9 g8 V2 k4 T# R5 G% O                                else
: e, a" o+ m$ A( Q; Y5 n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 T5 k6 Z/ k4 _0 R) N8 O" H* |                                                to_str("in docking station: \"",?.~.name,"\""));                                + y2 u( o! e% J% @: Z1 Z" W
                                end;
# f- m: t% V8 I% t* v5 V1 y3 p& y                        else
3 v. A& }' T+ @8 N$ T% v- C                                @.Destination := assignLObj[1,row];
9 b% k0 C+ q  ?$ g, t5 g/ x                        end;                       
8 ^2 f( C& p: z9 i7 `# n4 g                        newDirection(@);
' P6 c6 ]1 a7 r& S* w- _: F                        @.HasOrder := true;
$ f" D! L- V0 I( u- Z+ `                end;  G1 A' g5 ^# u/ z% V. D" I
        end;* u, y: `! K# u/ J) N# X2 l
end;        -- of the method
3 _9 e/ D" s; M* j& ?3 }# X; @: N% z9 a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 B. ^( k* d9 z' q' q  i5 g( h. X- o6 j* i" t  v% H/ Q! O0 z/ n
这是AGV_putin中arrive的method。9 r1 p, c% n9 G( R1 d) R
& A8 [" e4 i5 x: j- s; P
当到达物料速度越高时,这个报警更多,
# c% L) f+ _3 }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% K/ b  }$ L( `5 \0 Y2 W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% {  s" g" I/ p. R
1 S$ H7 n( e+ o& g! \) p0 m: K& U另外一个小建议,就是move,所有的move都可以这样, H/ B! V7 I; Z. s; C# s* }& ?
if not move() then debug end1 L( t& L* f; [! {5 ]
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: l5 C8 c/ }( |. p
plant simulation中的free libraries有AGV模板,5 |% X! A# o2 j0 ^
里面也有案例。  j; b9 X+ Z" X  I; u' o% j
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 Q7 _7 ?8 A9 `+ @- Z$ M; q
$ `; L0 R* r, q3 X0 d9 S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" ]* n0 B. @% t. R/ {( B' g) m5 [8 e) B! n
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ F8 ]  Q0 F' g这是AGV_putin中arrive的method。
- Y$ Y3 H& n+ G6 E) d$ T9 K% |- h8 K8 t  q  n+ y6 ~
当到达物料速度越高时,这个报警更多,

7 B/ C) P4 L( \. f, D( q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-21 19:17 , Processed in 0.025044 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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