设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8316|回复: 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'
0 s' d6 z" z' `( b*/
# s6 \: \7 d; N7 |) gis
% X' J* s  x/ T- e. ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' c5 L- c: H' u, O1 Ydo
  {3 ]# `; U* {6 `+ P+ M0 W4 @. \        Lan := rootfolder.Internal.Tools.AOLlanguage;
% }% n+ X, H- V9 H        if current = @.Destination -- else return
# W% b0 V% E6 v        then
/ d) u7 v3 C' u, T                @.Destination := void;
( Q$ Z& F5 S; t2 z. h0 C0 [                if @.occupied then
8 B8 y5 r" H7 m: _: i                        part := @.cont;; q$ H5 s3 O  {, l- f
                        @.transpOrder := void;7 \: Z7 d0 Y% B) `7 F
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 m1 G- J9 L4 g2 r" Y                                @,root.eventcontroller.simTime);, _7 a+ M' q9 F( C. a- [6 R) H( g
                        @.HasOrder := false;, n! f( c2 u+ k5 J
                        @.DrivingHome := true;
2 u" D1 z" R2 U2 f$ N) [, h$ N' h                        rgManager.tryToStartTransOrder;7 F9 }: C3 F2 u) J# a' }: [4 j
                        if @.Destination = void
4 \/ h; Z8 M% Q( p                        then -- no transport order for vehicle @
7 W, j) O$ k1 |1 q( Q9 l' }8 A                                @.Destination :=, c3 B" I& t0 q8 q3 @
                                rgManager.nearestFreeStation(@,track.~);
! o9 L9 e6 E7 T, t7 {+ P# L                                newDirection(@);   - d$ s4 d  F7 x2 Y  Z1 J
                                if @.Destination /= void then
3 L* L1 g: g$ \+ L                                        @.Destination.NumReservation :=
) I; y5 H, q" ?" _0 ?& ~                                        @.Destination.NumReservation + 1;
  p+ T8 F  i8 y# _, t( @4 J+ Q                                end;
; p( B+ u" F; ]7 v) O6 h, X) Q                                @.CurrIcon := "drivingHome";
# k0 X. @" w  o: D4 l) w3 G                                @.DrivingHome := true;
4 [( B; K# D. J. R, H  w                        end;
. i2 `7 q0 t1 N6 F                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 U- z! ^  F6 ~: W
                        part := @.transpOrder;9 x/ Q) C! N4 M+ j* `
                        part.move(@);-- load part1 A/ B" \* u  o( i6 ]" G
                        @.CurrIcon := "load";
$ f' t( V" D, A6 a7 m( c' z9 E; w                        GlobalDistObj := part.globDestination;2 `( g: z: T  v
                        assignLObj := rgmanager.rgAssignL;
; k- d2 T4 a3 R1 G. n                        row := assignLObj.getRowNo(GlobalDistObj);
6 x( s- T9 s' \& f8 {9 Z; u# J- z                        if Row = -1 then -- since 70
. q$ u' Z. [. ?+ n                                if lan=1 then
" K' M, g$ S2 ?7 v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& A  Z# }5 P) r9 B* U6 _                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& \- y$ X& O' J* I* N' I                                else! n6 }; F: w7 |' X4 c0 J9 C
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  o3 o; R, O! a1 L  w; b3 ?
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 ~6 i. X2 }/ _                                end;
. l; e6 a3 j! e% k$ g  l1 X- G                        else- c  M. @! {" [5 N8 M3 D9 c
                                @.Destination := assignLObj[1,row];
) \, w* M9 V# y3 D% I                        end;                        : z  }5 v' G+ m
                        newDirection(@);
( p4 ~9 K$ p. _2 |9 G                        @.HasOrder := true;
. q: m! B: r+ H* u: J                end;
3 c. Q! j- e: \& P( _& r) K3 [        end;
5 R; f) j/ k: e* t* d+ l8 iend;        -- of the method, Z% S# v/ l5 r/ y5 F8 ^, |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( S0 x( f; ^4 O; H" I& X& S$ }  Z- ^3 k1 G
这是AGV_putin中arrive的method。
% a, q2 s: m/ Y) J1 D0 r' J- ~" D- R/ T: k
当到达物料速度越高时,这个报警更多,
6 A# `/ w2 W  J0 L5 V2 g" t) j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 ^2 u! ?/ W& ^: M
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# H7 e7 e% U& w3 A

: K/ f% \. w8 ]8 C. ~另外一个小建议,就是move,所有的move都可以这样
5 U/ p5 p4 U7 `$ H. Fif not move() then debug end, W# ?3 m6 s+ {( f- k" p
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 g4 _, u5 J6 b, G" y8 q7 x) f9 fplant simulation中的free libraries有AGV模板,
  L- r" O! |7 g1 T4 ?, w& R里面也有案例。
$ R) [! A5 N* E- r+ E: b我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* N. j, z& E) S
; q' @, a6 R9 r# o1 `8 w5 j- q6 M9 J
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % u. F; c8 H$ F( i: B& {# E

- k1 N/ T2 O& c6 U5 Y4 k8 Q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . Y) L8 [3 o0 f* {6 v/ Y
这是AGV_putin中arrive的method。
' g  r  N. {' e! l/ m- p5 X) f; e# a) n2 ~" t% F0 W, T/ k
当到达物料速度越高时,这个报警更多,

7 A- ]) c4 [! n7 x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-27 12:51 , Processed in 0.015819 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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