设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6131|回复: 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'
& b1 Z0 f3 h; ?*/( C6 E% Z! P3 u1 S. y: [
is+ o* ~; W( S2 x# U3 k% B' ]
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# U& u7 V/ K$ ^( D* ido( p( ~$ q+ m) O1 ^6 r5 M
        Lan := rootfolder.Internal.Tools.AOLlanguage;$ _1 o8 M" z( w
        if current = @.Destination -- else return& t  S4 r  i/ F3 s
        then6 x+ ?- w4 X5 C# Z) [( f6 Y0 V
                @.Destination := void;! Z! [% }/ E: h+ ]' |+ Q8 T' S
                if @.occupied then# t/ n) @4 L4 D3 H% d- z7 ?4 c
                        part := @.cont;2 C3 O6 W; w; W: r
                        @.transpOrder := void;  O8 Z5 K: M" }
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, u6 q  h- X, z- f% J
                                @,root.eventcontroller.simTime);3 B0 _, h  f" r2 ?. U  x4 n
                        @.HasOrder := false;$ u2 i. g( \" l2 T& [$ O
                        @.DrivingHome := true;7 j1 @" f" \/ Z* k. D
                        rgManager.tryToStartTransOrder;4 J. {. E! {5 j0 X
                        if @.Destination = void" O5 e: A6 ?& \2 f5 ]3 P
                        then -- no transport order for vehicle @
  V" k' K( z' R                                @.Destination :=7 i  U" l7 {2 C1 m- j4 |3 G! V
                                rgManager.nearestFreeStation(@,track.~);
* u0 g( a- r0 [# E; }' _                                newDirection(@);   % w5 ^/ n8 C' ?. L9 B2 G
                                if @.Destination /= void then) A1 {& y6 H$ T0 ?* F. R
                                        @.Destination.NumReservation :=9 s$ o( y5 r/ _4 U+ Y) {
                                        @.Destination.NumReservation + 1;2 o0 _* O9 @% g# _# S
                                end;
, b! x/ @' Z! Y0 N/ y& j- M& B                                @.CurrIcon := "drivingHome";, b- u( X* u. Q: x" J6 G
                                @.DrivingHome := true;
5 Z( [# n- {/ N* v) B                        end;- Z  }% P+ k/ s; [; I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 O7 u+ q( N6 Y& D) c- Y' s$ I8 r
                        part := @.transpOrder;/ F: }# \/ B. h/ `; p1 E. I9 |
                        part.move(@);-- load part
' _6 |9 D3 g$ Z4 [2 t                        @.CurrIcon := "load";/ Q! {3 x9 w8 r3 o
                        GlobalDistObj := part.globDestination;
; H" s: O& {+ r                        assignLObj := rgmanager.rgAssignL;: a: m. C& }$ g; D
                        row := assignLObj.getRowNo(GlobalDistObj);' X8 M" t4 i2 _% a2 _3 D, {- A  `" L
                        if Row = -1 then -- since 700 G) M  {: {# R/ I6 U2 Q
                                if lan=1 then
$ Y$ S0 S% m; L5 S7 ^$ J. J                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 x9 ?6 q2 u9 {2 L+ [
                                                to_str("in der Andockstation: \"",?.~.name,"\""));) L; H4 s- m% }4 w- Q
                                else  B! ]  }2 B5 Q; \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 s! }2 N8 m! o1 W                                                to_str("in docking station: \"",?.~.name,"\""));                                8 G& B+ t. J: p$ e5 K
                                end;
7 j1 B3 ^' W  C; \9 {                        else
2 w& S& I7 m7 |  ~                                @.Destination := assignLObj[1,row];
1 F) V+ W* c* T" g& u% M2 U9 \                        end;                       
4 p3 M# U( r6 }5 V* K* G                        newDirection(@);
1 \! y& J: L( e9 w0 z; w1 {                        @.HasOrder := true;' ^  X* ~' ^. O2 ~
                end;
+ y. H1 M* }. P) M+ w2 f8 Q        end;
; ?. [1 ~. `: k! }- Yend;        -- of the method- q9 C7 Z! f9 h* D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 x, Z5 |$ J* r, U& i
7 t3 i3 `7 j6 O7 Z/ p* S0 k
这是AGV_putin中arrive的method。
8 @4 j1 c1 I6 j0 B
& f2 n# x% A( S0 u" v0 K& o3 O2 C$ A当到达物料速度越高时,这个报警更多,
1 j$ m, _1 i4 K" y+ k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ u8 z7 X6 O4 C2 e, O: X0 v
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 x, J* b- T/ \
5 n9 ?- |" d" u$ [# |6 P1 \* o另外一个小建议,就是move,所有的move都可以这样9 y& P1 `- S. s2 @' R+ k
if not move() then debug end5 s2 B; s( d8 r* i9 z- d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 |( K7 [# U1 Y, d* uplant simulation中的free libraries有AGV模板,
3 Z0 t* b! v1 b里面也有案例。' ]+ e" h( x% h3 S# Y4 S$ K
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 x; e0 w1 {8 x7 Y5 I
, y! S8 @6 J: L: a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' N: |; x  C* I/ }- \- I4 P9 @) p( `; Q/ F5 v2 p9 G8 [$ U) V  w* c
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( ~: t+ F$ o# D. ]- n5 c: i这是AGV_putin中arrive的method。0 B# P& X% J9 n( \- V# Q$ ^. h

9 F2 a5 B! d& m# g( z! Q当到达物料速度越高时,这个报警更多,

- ?5 M+ I, J+ z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-20 08:40 , Processed in 0.016351 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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