设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5735|回复: 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'3 \: M0 y- f+ u9 B7 C, U: _/ z
*/
5 E: p6 i6 E8 Mis' {% A/ P. A& r3 T# V' ]' u5 y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; r7 C/ X4 Q8 l: V3 ^4 g
do
( Y7 e! T4 {7 L0 R$ w7 m        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 p( O2 `' D- G; t  `        if current = @.Destination -- else return
1 m* x4 @; M5 \        then
- S9 l( P* `2 V, C( S% z                @.Destination := void;
4 F" i: U! s, Z                if @.occupied then
  N, c/ v) b; `. K                        part := @.cont;9 [- o3 d- A) T. N" c4 o% I
                        @.transpOrder := void;; I3 j: L# B* s; R! d2 \' Z8 I$ f1 s
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 N4 s# D1 {% v  q* {0 ]# d9 |8 C                                @,root.eventcontroller.simTime);* h  W9 I0 ]& x& n! B4 \$ V3 v
                        @.HasOrder := false;; h% ]  @) _" R7 ?8 m+ p& q6 S
                        @.DrivingHome := true;9 @" n, s1 T8 u, {% o- w5 f9 v
                        rgManager.tryToStartTransOrder;: f& A4 u: }3 G. f6 w
                        if @.Destination = void( ?; r2 h) d' w& l6 F, e, W
                        then -- no transport order for vehicle @% A; N  \: r# N  s
                                @.Destination :=
, N% H9 u$ Z# D* H4 N% m                                rgManager.nearestFreeStation(@,track.~);
5 p$ t. f* Z. |$ Q5 }1 x5 }# c                                newDirection(@);   
! h, w" p" v: K8 I                                if @.Destination /= void then& Y. |5 j( t; j+ A
                                        @.Destination.NumReservation :=, s( r4 n, u" o1 {
                                        @.Destination.NumReservation + 1;) c0 c' s4 m# Y/ }6 [  \
                                end;' f& l" F' N" i  i, I
                                @.CurrIcon := "drivingHome";5 z/ Z5 M* k7 C+ n* {9 k8 f
                                @.DrivingHome := true;" U$ q% W+ U8 |$ `/ f
                        end;
& R/ B- O& p9 z  X( p* {, x, v                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* Q5 P; w9 g" [* [$ Y
                        part := @.transpOrder;8 |4 \2 |8 \6 ?$ ~" m0 V! ?
                        part.move(@);-- load part
8 w# T7 H# v" g! |" S* i& U                        @.CurrIcon := "load";- a$ L: g4 e% \& [  L
                        GlobalDistObj := part.globDestination;* @6 F) \' C- f
                        assignLObj := rgmanager.rgAssignL;
' e% R  B3 o. [6 y                        row := assignLObj.getRowNo(GlobalDistObj);. h0 U' T7 b  T0 u  {1 k/ r
                        if Row = -1 then -- since 701 N6 y- {5 @, Y7 t, B2 e
                                if lan=1 then
. d4 r" o* z: y: k) i1 m$ p, W% d" O                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ q! V( }6 P' P% c5 x% y                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 `0 A  Q' _6 F
                                else8 N- c+ o" X1 \' w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" L4 ^( Q9 q# e3 y9 t' ~                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 x: A9 h) a5 l" `0 Q                                end;9 r# W  _! }, C8 \; r
                        else
  L+ y3 t" O/ p2 j1 N1 S2 ?                                @.Destination := assignLObj[1,row];2 `  o! V2 l1 a: q% z0 Y
                        end;                       
# m8 s0 s4 D; u! T* N8 v2 _! B: X                        newDirection(@);1 O9 N; F7 N1 x/ M' [  v* J
                        @.HasOrder := true;1 I0 N/ I; o6 w3 C+ L! H! C
                end;: x* \- k- _2 X
        end;' `1 }. I5 T, s% Q" O: T3 m
end;        -- of the method" p% j6 r, I/ W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 G& u& s: c+ l6 h6 g+ f

* q' P( _- S0 k. Q  S8 T0 \3 m这是AGV_putin中arrive的method。
: \( i1 T6 y! V" q5 ]7 j5 j) r; r0 @" P7 B& u
当到达物料速度越高时,这个报警更多,
$ Y" W" o; `! s) a7 g- x# c可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( B  C  s  d  t! u' c. o3 N7 h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, w) T. V0 s2 F) @4 j8 ^' o
# T+ y+ j3 F. E- p- w
另外一个小建议,就是move,所有的move都可以这样7 p/ u9 h7 w/ p% i" @  J
if not move() then debug end
  v3 v6 T: b6 X1 \这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 s2 G( w$ ~  J7 F3 w. K, R$ Splant simulation中的free libraries有AGV模板,. w! u# K. f$ `9 w
里面也有案例。
+ S% [2 y" V+ `3 |5 Y: G. ]% R( B. Z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, c! R! x; j: n5 i

! d$ _" A! l* @5 |* |我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, V* y' V! S) U: c
$ @0 ~4 o; S" n, B) D) Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + |$ w1 G  k0 w/ J$ U
这是AGV_putin中arrive的method。
* l0 i4 G# d/ _2 J6 r( m
2 @& ]8 m4 B! z当到达物料速度越高时,这个报警更多,
/ ~) ?+ ^8 O# N( E* s
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-15 21:17 , Processed in 0.018600 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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