设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9796|回复: 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'
+ a: k* _* `* t*/$ B- H- W" i7 r9 o) G; p; E/ b
is; C4 o  z# m; `2 ~8 ^
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 P! K; w) X: edo# F3 v+ I1 `' Y1 g0 S
        Lan := rootfolder.Internal.Tools.AOLlanguage;
. O4 B# A5 c1 I" X' z        if current = @.Destination -- else return, M! R+ g0 D) \- X0 U) T  U
        then
' O1 d! }8 u( ^, j+ a3 b% @                @.Destination := void;6 e( P( x6 f6 K% m9 F
                if @.occupied then
# i- p8 N* v  S1 q4 `                        part := @.cont;2 a5 N% Z- V# X1 S: }
                        @.transpOrder := void;
' f$ V: ~. v0 @- \( j8 `                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) ]; l& d' e' X$ R                                @,root.eventcontroller.simTime);
3 {8 K+ x3 F8 b9 \9 m: w                        @.HasOrder := false;, `( z: H( P  F, z
                        @.DrivingHome := true;) a0 p. [% I7 f8 U3 E- e# c
                        rgManager.tryToStartTransOrder;6 \& v4 Z) x* ~, }3 _  K7 W
                        if @.Destination = void
' y- n2 d$ f9 y5 z) L, q                        then -- no transport order for vehicle @
/ l( \2 a7 _3 h- u                                @.Destination :=
  T0 `% U" \7 k3 }) q  ~! ^                                rgManager.nearestFreeStation(@,track.~);
) ]) N& ?* e: T& L2 ~                                newDirection(@);   
6 q' C8 T6 B" ^2 h9 Y. B* f9 G                                if @.Destination /= void then
( `+ u' y0 G: z8 G9 c4 |                                        @.Destination.NumReservation :=& D( N4 ^$ a4 _7 r/ O
                                        @.Destination.NumReservation + 1;' l$ L) C" }/ V( _
                                end;$ ~2 K9 b+ e/ R- z4 A  j* \
                                @.CurrIcon := "drivingHome";
# G! z: Q, D# a  T8 X& K. w                                @.DrivingHome := true;
$ E/ [' o* Y1 w; B. _+ |                        end;2 B; Q* D; G% k) ~& G; d8 s7 q4 h
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% x5 _+ W4 ?% o/ I2 U4 s4 z& Q. m                        part := @.transpOrder;% o& X6 d" ~5 Z7 o: [
                        part.move(@);-- load part
4 i# w( s& d* g4 j% G7 e, b                        @.CurrIcon := "load";
! J8 h! t/ d5 j% T$ V: A7 @- }                        GlobalDistObj := part.globDestination;
" Q( u$ N$ H! c  Z                        assignLObj := rgmanager.rgAssignL;6 C8 |3 b5 O6 T0 J3 U0 V+ X
                        row := assignLObj.getRowNo(GlobalDistObj);- m7 _  }) o& |4 B
                        if Row = -1 then -- since 70
3 i0 ?$ k3 d+ u5 d6 a                                if lan=1 then
9 f! g: D* M& n: l( x2 A4 a3 f0 h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( S1 d  t- F7 n+ j( _1 v                                                to_str("in der Andockstation: \"",?.~.name,"\""));. a, t, M( O+ V
                                else- a5 @  a# p4 j. Z" @5 S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 N/ w) e" e& h0 K8 D7 D                                                to_str("in docking station: \"",?.~.name,"\""));                               
  x( v; C% o( Y$ V% v' ?                                end;
) V6 f9 a% F; c+ Q5 _2 S                        else' `9 @: {/ B0 @- }4 i0 o" q' ~8 C
                                @.Destination := assignLObj[1,row];8 `' P! L) Y- y  m% O' V
                        end;                       
2 r/ A4 s+ r# _! g3 C                        newDirection(@);
! {& B( k, C: ^- ]8 r( O: `8 Z                        @.HasOrder := true;( ?' j; c5 X$ q3 a; Q, I; T/ [. H
                end;
, O2 {) D, \9 ^/ o- Q        end;
9 q5 i9 G: L2 p6 Qend;        -- of the method
; K* @# @/ g$ o+ k* P( R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " c0 Q" |) [! Q0 D" e

' Y+ h& H3 A8 c$ C这是AGV_putin中arrive的method。( n# ^& u9 ~+ B' m/ R/ {$ y

2 Q2 A; c7 r0 I当到达物料速度越高时,这个报警更多,9 y. X) r; r9 F/ \7 {. ^% Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ T' q- R# x" }
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& X1 n* a- C9 s& o: a

& l4 x1 ]) l( Q. Q另外一个小建议,就是move,所有的move都可以这样" L+ @: W6 K* j* `6 Q0 k2 Z
if not move() then debug end
4 u0 L& Q$ [% z5 J! W( C7 d& J这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ w  W" }& ~1 S9 ~8 f) m
plant simulation中的free libraries有AGV模板,' ]8 [7 H) o8 t
里面也有案例。
) Y% ^$ ?4 |' r, H, H7 [8 ?# ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 K# a' |. d3 \# V7 |
5 Z2 @/ f! T: p0 ~  v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 R& u/ z2 z5 `; M4 B% F
2 W" v$ X( E+ Z& y2 }那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 ^, U$ {+ f& Y9 x7 b. p5 q& O这是AGV_putin中arrive的method。
4 N4 G8 x( e5 R- ^( s! U' c4 ^' j& K
) H% Y( v  T  y+ s8 }当到达物料速度越高时,这个报警更多,

4 U) \$ O$ Z3 F" ^+ N7 S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-25 19:46 , Processed in 0.018714 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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