设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6350|回复: 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'
& q9 z  P1 }. ^' Q" ?9 }% u$ Z*/
- `2 h0 j5 w# c: D1 A7 y: J1 Z( pis
2 q( l* j3 k8 k( A0 `        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 B9 U/ P9 v. V2 [" ~6 V# n6 m3 K2 ydo
4 S' X1 x6 X" m; n0 l  L        Lan := rootfolder.Internal.Tools.AOLlanguage;
& c* j# X5 D; I) v) f        if current = @.Destination -- else return! Q0 U. v( T6 `, U
        then
7 @$ ^) P: v8 M/ v' d& C  {                @.Destination := void;) x" S8 q  @3 Z: N! b
                if @.occupied then
9 U! H$ A6 M' f0 O# v9 c& h" q                        part := @.cont;% v' ~: Y7 B6 x9 M0 i
                        @.transpOrder := void;& c% [* J1 x5 h, ?( v) C2 `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 P' f$ m$ \; x3 R3 m/ M$ ^                                @,root.eventcontroller.simTime);0 }% ?, k6 Y! i0 k8 p/ U- e
                        @.HasOrder := false;, C0 G- r$ g1 V9 I
                        @.DrivingHome := true;/ U, ?, \2 r& }; {# V2 r. V
                        rgManager.tryToStartTransOrder;
! ^! |$ w& q( z( N! ]8 l                        if @.Destination = void: N) E$ o* G" X! Z5 r6 x4 ~9 T
                        then -- no transport order for vehicle @0 y0 G; v/ H+ S
                                @.Destination :=
: L3 u4 u% Z9 Y6 i                                rgManager.nearestFreeStation(@,track.~);
; k( e+ D0 }, F( t1 \6 r" a                                newDirection(@);   
. P7 [, ~# q6 q! k$ t+ g/ z: p: v' G                                if @.Destination /= void then
+ T) q2 Y, E/ H5 @  h                                        @.Destination.NumReservation :=: n' c" m! X' ]8 G
                                        @.Destination.NumReservation + 1;' P) \+ W9 W& P1 @- r- c
                                end;
) q; I9 S& u' X1 p                                @.CurrIcon := "drivingHome";4 R( _, G( v; C3 S9 i9 q4 [- v4 ]
                                @.DrivingHome := true;0 G& x' Z8 [  t1 W; M$ Q
                        end;6 U) V% J6 u0 X' d" E8 i
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( ^) G7 T  `  i* W7 T1 \+ Z                        part := @.transpOrder;
2 n3 l7 J- g  u9 ~- u! A$ R/ `; O                        part.move(@);-- load part
! D. ~3 S6 `% k, y  v                        @.CurrIcon := "load";6 s0 W5 `+ I# B3 v- h/ j* i- D
                        GlobalDistObj := part.globDestination;* k9 M, d& e  X  |" u1 g+ U/ n
                        assignLObj := rgmanager.rgAssignL;
# U) f7 V) s& \9 i' O2 e3 Y                        row := assignLObj.getRowNo(GlobalDistObj);4 j$ y' o' U6 R( c& C' n; s" r& P
                        if Row = -1 then -- since 70
/ i' ^9 E& p6 j                                if lan=1 then2 ^! w, }, W' Z: N" E
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),, |: z4 z0 v% `
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ ?! o1 R8 x, R: e/ w+ `" @! G                                else% U# {3 q' A2 E4 I% N# X. e
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' z+ G8 I5 N& c/ F5 h, a/ H                                                to_str("in docking station: \"",?.~.name,"\""));                               
; {( D  T4 x3 a! y" o                                end;
$ ]  {. ~" L& [9 `3 O8 q9 z. _                        else: f( g* ?" r. o0 A, O
                                @.Destination := assignLObj[1,row];
$ u$ S9 G$ n! Z  q1 @- n$ T                        end;                        3 S7 m# [! S& K
                        newDirection(@);9 [0 K5 Q! G2 r" w- v7 J0 E
                        @.HasOrder := true;
2 E$ n- J1 u1 O/ i, k. l, t0 B                end;2 g6 Y. D. T) W
        end;
* g$ z8 P+ x4 T8 S% Pend;        -- of the method
" M, c6 b- L2 H! t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& c' v  I) q( D1 C* B& k
0 a4 Z$ r* w, i) E- T这是AGV_putin中arrive的method。' V, M* [- Z+ ?3 ~
5 U, x% ]5 \! `: E8 ]6 Y2 m8 Y
当到达物料速度越高时,这个报警更多,4 B( O" o% O5 D2 m
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' C$ s* X1 M, {2 k
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& b6 O- i6 b7 I  I5 u# r0 ?( ^' C, D  f1 @: ]9 S9 }) a* q
另外一个小建议,就是move,所有的move都可以这样; e; g% A; y( Q: G* W+ I8 u$ D
if not move() then debug end
8 p- f$ ~2 r: h7 b. U  q/ f这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 f# u/ d  d0 d5 B- uplant simulation中的free libraries有AGV模板,
* c* `! B$ h0 E0 g里面也有案例。+ F- N1 p  p' s# |( r: H7 D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! t$ g2 P8 D- a( A: n
- j0 j: Z! u% f7 C5 b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 A- o0 m6 c. L, \: |" x

+ W' c7 S8 W5 w  G" i那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 H# @  {3 P; s6 C
这是AGV_putin中arrive的method。# e2 X2 o) z( a
' t; v2 b5 Q! H( |& F6 A
当到达物料速度越高时,这个报警更多,

  g6 E: `; c# F) \- x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-1 05:24 , Processed in 0.023868 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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