设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7041|回复: 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'' q5 h5 J+ q5 a/ b' h" o& F
*/; s; V! [& l3 \' u, `, W
is
7 j: a8 y/ `4 B% F, S% d        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 Q/ k. @" e& J4 H7 u& P) h9 u! e, }
do
3 _, e0 b% x- H4 S        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 l( T; B# Q' r5 z        if current = @.Destination -- else return8 ~% u. e0 [+ ]- ~& o
        then
7 L3 j0 k3 f* J& j                @.Destination := void;+ H* P# Q; L2 U
                if @.occupied then' j; H. r& R3 }
                        part := @.cont;
, Y! u% ~; r/ y6 Y) \- v                        @.transpOrder := void;
0 L' D$ _; Y8 o                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 i& ?+ N' _, \" X, E0 E+ ^$ ]                                @,root.eventcontroller.simTime);) D( T) u4 d  Y1 d  k5 y# ~: e
                        @.HasOrder := false;8 u. b. d0 [1 e- H
                        @.DrivingHome := true;
* k5 `; X2 w6 y2 _" ]                        rgManager.tryToStartTransOrder;
- e9 _. `; ?# ~8 \9 ^4 R- i/ F4 [5 ~                        if @.Destination = void
% d/ Q5 M( p$ R1 h( ^- m3 [                        then -- no transport order for vehicle @8 y/ P$ F9 U- ~4 k9 ^, C
                                @.Destination :=
0 ~8 U" s: `7 {( i) Q8 d                                rgManager.nearestFreeStation(@,track.~);
5 t* n$ F7 P2 [! N                                newDirection(@);   . @2 ^* j$ a* d. }, F
                                if @.Destination /= void then! e7 H0 F. ~: |5 R" u
                                        @.Destination.NumReservation :=( S( d: m1 T2 e0 s2 _( U1 L
                                        @.Destination.NumReservation + 1;
9 Y4 y4 W4 |$ A2 _. `0 l1 K5 i                                end;
, T3 y5 n% L5 \- `# x                                @.CurrIcon := "drivingHome";
: e1 L, n3 w* r( i( g                                @.DrivingHome := true;
. Q2 p$ x8 p) [                        end;3 v9 Z- B( n" K$ p% {$ B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; a$ s# a: _9 V/ u                        part := @.transpOrder;
0 X( l  L  W# ^& A# \0 g                        part.move(@);-- load part
3 ?6 j2 a' P" Y. f' `* ?% ~# g1 c                        @.CurrIcon := "load";' R1 S; j0 x) y0 I* m
                        GlobalDistObj := part.globDestination;
2 q/ O1 N) r2 [4 [                        assignLObj := rgmanager.rgAssignL;
2 w7 x  F! u5 x                        row := assignLObj.getRowNo(GlobalDistObj);
" S0 m: w+ L) q: k                        if Row = -1 then -- since 70
# @* X  a* H% b2 n( c  S7 X                                if lan=1 then
" x, s6 B  x# Q                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: a$ h$ A6 m* A- z) d  q                                                to_str("in der Andockstation: \"",?.~.name,"\""));+ O9 `4 k& F" g. {3 r- p- F: V$ k
                                else
2 i. h+ r- j' u$ h+ K                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ Q" x3 u% ~0 K$ b; ]) P' S                                                to_str("in docking station: \"",?.~.name,"\""));                                2 X5 F& B6 \2 g& j* k6 s
                                end;7 R! B+ X; [; c+ R( H' b  ?& Q
                        else+ k; h) h5 ~4 _
                                @.Destination := assignLObj[1,row];: ?5 r, z# {" i3 l6 F9 {
                        end;                        & r9 O# Q/ U5 t, K  O
                        newDirection(@);& Q# J1 M$ w2 s5 o" S8 C( N; P
                        @.HasOrder := true;7 }+ L7 E+ j2 w4 d: P1 }
                end;
2 Q5 f7 I0 U! f0 Y7 \        end;) }7 M' ^/ l: t
end;        -- of the method/ g' E* F3 k" p  ^+ V6 F: _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
0 y( T4 e; N, C* F' X/ A8 Z
$ q9 J$ M9 j# M/ F4 w这是AGV_putin中arrive的method。- R3 x. k. [6 U  }9 h7 O

) H  g, k' {; l+ x当到达物料速度越高时,这个报警更多,
. O4 |3 z5 q; ]0 X! a可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  I, Q) G: [  {# v8 N程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 X# Z& G8 j3 k" o
$ n& |3 M- F( R; A3 E
另外一个小建议,就是move,所有的move都可以这样
3 q' K% ?8 t* {8 ]; X- t7 bif not move() then debug end6 i, u. A4 h* Q" P! E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) f* _' G5 A( Q1 H$ `  }plant simulation中的free libraries有AGV模板,
( h7 N" ]  r7 M- G里面也有案例。
' I7 o8 ?3 J/ x: Q6 p我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, U5 H2 H; `3 O  Y, e3 r% g

* f) P9 ^+ i- O" a& n我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ w* H0 B* \; C1 D
# y/ C4 }  V& z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ g$ a, x3 }" Z, m  X这是AGV_putin中arrive的method。0 Z5 G0 u- W; I+ Z% F3 ^6 v3 _

+ R, F' _5 C' Q7 D) D" V$ U% w$ H) {当到达物料速度越高时,这个报警更多,

2 q. O+ [/ E% O, H$ N: `, M另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 23:07 , Processed in 0.017025 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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