设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5625|回复: 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'
+ k! q+ A7 P8 W. ~. o3 a/ z* I0 H, J*/
4 P) V% U  [2 nis
: o' O/ f5 s  R$ j6 |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; [: l, @3 X) p( }8 q+ |+ }1 ]
do
9 H: L" g) I; a5 O0 d        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ g/ c1 d5 L& H0 W# K6 U3 |) ~2 b        if current = @.Destination -- else return
# n2 k- F9 T4 y) U; ^$ s6 X* D% `        then
7 _% E7 Q( a6 w" s& a                @.Destination := void;
% p1 s9 K% v5 D3 N4 @                if @.occupied then9 J+ R- Y0 F: \, Q8 J
                        part := @.cont;; K: u" m4 y! a2 }& S9 J
                        @.transpOrder := void;4 N( e9 `( b; t/ k) n  b* `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 S, R0 j% }/ ]7 b, S- h
                                @,root.eventcontroller.simTime);  D7 f5 Y5 q. V" ^5 J, v3 L
                        @.HasOrder := false;
) C  W. |& I' ^/ ~8 c$ p2 G5 j1 P                        @.DrivingHome := true;
+ `1 z# h  h- [. ~) i: l                        rgManager.tryToStartTransOrder;' u. F1 Y/ s' z( G$ [
                        if @.Destination = void# p' r: h* t& l, {3 i
                        then -- no transport order for vehicle @1 }( x9 J. ^3 N- O
                                @.Destination :=: r: U1 A! v5 y3 z
                                rgManager.nearestFreeStation(@,track.~);
/ z2 U% ~1 l' ~2 ?7 ]$ p4 B, J                                newDirection(@);   7 ]' z  U* F6 O: m; f
                                if @.Destination /= void then
& ~0 v: N, p+ `" t                                        @.Destination.NumReservation :=( q/ L6 @/ H2 v, \/ k* b
                                        @.Destination.NumReservation + 1;
/ h/ |5 u$ g5 n1 K                                end;
0 @2 f: h" B1 W: B9 [                                @.CurrIcon := "drivingHome";: }  I# |, w& i9 @$ T
                                @.DrivingHome := true;$ y! @, d7 e+ [+ ~1 s6 A
                        end;
2 d& Q8 O% ^# c                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: C1 o9 e; i  t. `0 g7 c% c$ a                        part := @.transpOrder;: ^  [3 H) X2 ?0 ]
                        part.move(@);-- load part, {/ y. O4 ^3 E" n
                        @.CurrIcon := "load";
8 m% A( {4 V3 R# c. c9 `4 m                        GlobalDistObj := part.globDestination;: t' N1 f+ g( w) ?5 @6 W
                        assignLObj := rgmanager.rgAssignL;
, ~2 Z6 f" ^3 `6 R7 I                        row := assignLObj.getRowNo(GlobalDistObj);
4 D  {- F% b: f0 |  R! T! l                        if Row = -1 then -- since 70' Y; d4 Q# \( V6 `- U% M1 t
                                if lan=1 then* q! i# {+ Z, B# z8 F5 C: K2 V( W& u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: w" M3 }. w1 K6 s
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ y1 q. ?/ P7 u* R7 {                                else
4 e; ^/ y! x# B4 k3 F- M0 G9 [4 A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# S1 a2 ]' W+ n2 D  s( j. o                                                to_str("in docking station: \"",?.~.name,"\""));                                9 {( u: `* V1 N$ Z+ B, S- G$ ]7 {4 ]
                                end;3 j: d" j' r/ i& t
                        else
* [& H2 I, O1 W1 W1 \                                @.Destination := assignLObj[1,row];
. u6 i3 I6 d6 F. Z4 K                        end;                        * `/ T0 W8 m' U! m2 R/ Z; d
                        newDirection(@);
! A* Z- a0 l; n5 Y% m% U/ J9 t                        @.HasOrder := true;
1 u& c. W+ S4 T1 v; J                end;( O9 D+ T: g& l) j
        end;: R- r/ ~- {* D- ~8 W" W3 u& \
end;        -- of the method
7 K9 h7 t5 t7 [( x6 C6 e- ^# P; }8 T& c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % [8 j$ {6 t6 ^; U$ ^
' X, w% R) [7 Q' x- q, Q
这是AGV_putin中arrive的method。2 p& J2 z; E0 m( O6 @2 B

- c+ ]0 k3 f& J4 [2 ~# o( X% J& ]. c2 U当到达物料速度越高时,这个报警更多,
0 `! w0 q* W3 M& [, v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, Y1 c$ g% @8 d7 i2 d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) E0 U. X8 \9 x# `2 b
7 _8 r( |$ M1 k8 d另外一个小建议,就是move,所有的move都可以这样
6 O, C/ ?8 N* j4 ^if not move() then debug end) l# q6 z3 z$ Z( y! z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, |$ J1 j% c5 A+ O9 B$ Z3 W* T: `
plant simulation中的free libraries有AGV模板,
, x" A0 p7 }8 @9 W里面也有案例。
" m% B* T; m6 Y- V我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& z! \3 u1 e- Y) Q( Q3 E
. J2 g4 M, Y2 f
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, d6 P  }/ ~1 k8 D" I9 f, z9 J9 p# I! Z* T: L+ c/ A5 D% N3 F6 O
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 V* ]5 ]7 H! r6 x: U  L* `% a
这是AGV_putin中arrive的method。
: \) m% n" F8 }2 S) `0 ]- _6 }! J. o4 e' ^  R2 Z! n/ x1 H& k
当到达物料速度越高时,这个报警更多,
1 j* J3 R; F5 R
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-9 21:50 , Processed in 0.019027 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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