设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10045|回复: 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'" u, G2 [0 Z" K" [" p1 V5 v# D
*/5 v1 A/ S) g# i6 t
is2 ^4 c; @: Q7 m4 r4 L
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 a; f+ b. ~/ ~* l+ ?/ t) a6 ?0 o3 cdo
- j5 v; n/ h1 ?: t; e9 f: V        Lan := rootfolder.Internal.Tools.AOLlanguage;0 F* N; \' a+ b8 ]. V6 ?6 \& P6 w
        if current = @.Destination -- else return' Q) y9 v, q+ j; o
        then, L* N; Z  E4 p# t$ i- J
                @.Destination := void;
* r' G  ]' G* R                if @.occupied then
- P: c. n7 I2 V: T: W9 {                        part := @.cont;+ s* \2 k1 k5 q/ g- l+ M( r6 ?6 M
                        @.transpOrder := void;
* \( L# A) E5 b2 K+ L) W' T( @6 O                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. {  ?1 P0 U: {" J! m
                                @,root.eventcontroller.simTime);
1 E4 ?# M, k  V  d; V2 H4 u/ u                        @.HasOrder := false;
, o% w! p) B9 W                        @.DrivingHome := true;
# E0 |$ \* |% Y5 a+ m                        rgManager.tryToStartTransOrder;
# N6 x' a+ M: N8 ^. m( X                        if @.Destination = void& V- i& m% y- l% H9 n, U
                        then -- no transport order for vehicle @
* U  H" e% J) J                                @.Destination :=4 U6 e  q: r4 T; z. `
                                rgManager.nearestFreeStation(@,track.~);9 x2 q  z- {0 B7 g
                                newDirection(@);   6 G* q3 M6 g3 H/ P
                                if @.Destination /= void then
& l0 ]% c1 t9 [$ H2 d" J/ `                                        @.Destination.NumReservation :=3 R5 }; Z% E6 u% G8 W! A( H" Q% U
                                        @.Destination.NumReservation + 1;
& w% d6 v: F$ U; w9 S                                end;
( E$ ?- _) O* V; x/ X# I                                @.CurrIcon := "drivingHome";
7 h# V  Z! [& h) M8 f1 |                                @.DrivingHome := true;
9 O  m4 ^6 V( j& n  a0 a                        end;
5 ?( x+ @2 [8 l& S0 }                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  b& l- H& ~" l( k* d
                        part := @.transpOrder;
2 ?8 o# n/ X" R4 S2 b0 M8 z                        part.move(@);-- load part
4 |5 O3 u8 Y* H5 G  h0 R2 u                        @.CurrIcon := "load";+ D* a2 b1 {' F* w. ^/ B4 n" @
                        GlobalDistObj := part.globDestination;" Q( O, c7 u' }# u. i
                        assignLObj := rgmanager.rgAssignL;
+ e) v2 f4 t- Y* G& T% V                        row := assignLObj.getRowNo(GlobalDistObj);
% ~( n. f8 E) o! X+ P9 w0 S1 R0 T8 y  t                        if Row = -1 then -- since 709 j. I0 |: ], {9 }0 J3 ~
                                if lan=1 then4 p! U8 x- F6 n& _
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 M0 I/ G" n) D7 C                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 e3 x. c6 S; T5 ]: q) Q9 s) ?
                                else
( \# m* B# @+ a) @" p% ^8 [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! {/ B, j! x" I/ B4 f                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 ?2 N$ j+ T9 S5 j! B1 s/ d                                end;
& K% l4 M* q: b5 k                        else) t6 d" ?; b4 |/ L1 }+ F5 p9 ~
                                @.Destination := assignLObj[1,row];* H! ?: K) o/ H0 c& K
                        end;                        * s* k3 x$ U* |6 M2 h5 V
                        newDirection(@);  p( k% p- q6 X+ R+ u+ J9 J
                        @.HasOrder := true;
8 ]3 \( B9 X. p, q( |$ V                end;
6 V$ f8 w* x/ n) F! B        end;
3 Y+ X) y- I0 R1 Q. Aend;        -- of the method1 B" }! x+ _& I  z5 g- F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ f8 X$ H) g/ X3 G7 C0 C- C3 u& q' `  |) n
这是AGV_putin中arrive的method。
" L- J) L8 r2 i
: v# p  s4 q) n1 ], d当到达物料速度越高时,这个报警更多,
9 _/ d3 m% y) a可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' I. h' Z$ p. r0 A- R. H9 b, d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 P$ }" f9 Z% ^% P
1 C. r4 s  @. Q0 [另外一个小建议,就是move,所有的move都可以这样
/ t2 m+ l/ Z, j: z3 qif not move() then debug end7 n* j2 p, F* b
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  X8 |- ]: {# e7 F8 W8 d/ p
plant simulation中的free libraries有AGV模板,4 W, ~7 \; [- e0 l: H& }
里面也有案例。0 O) F! u% ]& x. s" v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* T5 n# @- D0 g
4 i) c7 T8 T8 x2 X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 v) A5 |: l) _$ v3 w/ Y/ q7 i$ ~  h# _$ Z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) T7 v' j2 g- u$ e9 d) g
这是AGV_putin中arrive的method。
* n( W9 _1 P6 L; |8 x) t
1 r* e) O: l! @当到达物料速度越高时,这个报警更多,

/ @0 p2 o& ?' w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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