设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9896|回复: 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 Y6 k/ S( _/ t) K2 ]/ \
*/
4 D! w$ K; ?$ K# m2 Wis
  j$ m2 O" }! E2 ]$ `0 h6 }* ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 C& N+ s# b+ S8 @' ^do) H! c% ]( R+ ]& s
        Lan := rootfolder.Internal.Tools.AOLlanguage;7 }9 f! R+ s0 y0 r6 u- N- o3 o
        if current = @.Destination -- else return
9 P6 G/ t  L: x        then
' d  ?0 V7 \' m" o' h) ?5 x! k/ j1 x: ]                @.Destination := void;: D! ]) D' I/ e
                if @.occupied then( \$ r$ L- U* z
                        part := @.cont;  {, x: k- L7 G: e
                        @.transpOrder := void;
9 l) [2 A0 w9 W3 w- O& v                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 F7 \7 w9 A4 Z8 Q! Q( o, _                                @,root.eventcontroller.simTime);* C- ^' v8 Q4 L3 Z3 z
                        @.HasOrder := false;
9 v$ M7 L2 h( v8 M8 b                        @.DrivingHome := true;
9 g  S; L% h7 W- o                        rgManager.tryToStartTransOrder;
; l7 U/ n# B5 a5 O: @( Z! _! n                        if @.Destination = void
8 p  Y9 S. d7 e  k1 s                        then -- no transport order for vehicle @- T9 L4 {% _4 v' R$ P- _% \
                                @.Destination :=5 _* T" _/ Z& F
                                rgManager.nearestFreeStation(@,track.~);
) ?: Q. U+ @" C: H                                newDirection(@);   
. e4 @  }* ~$ {                                if @.Destination /= void then
' M2 M; ~* i! E6 ^# l1 C                                        @.Destination.NumReservation :=& U) R; F  T# A" B7 F( z) M. L
                                        @.Destination.NumReservation + 1;
( U3 \5 l! k! @! \/ o% ]                                end;' ]8 R7 U4 t# v. E3 c5 k
                                @.CurrIcon := "drivingHome";! A0 [# h* J! L
                                @.DrivingHome := true;- a1 y7 Y! Q4 C! q+ H
                        end;
6 K2 @' r" D- c' Z* @- x                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% [, ^- D6 y! I5 L& {& G8 O7 `
                        part := @.transpOrder;; N' `7 i: y4 i- p4 }$ s
                        part.move(@);-- load part! x  t. W- K8 l7 z; S3 e
                        @.CurrIcon := "load";: ?( U% o+ ]5 C2 X9 P
                        GlobalDistObj := part.globDestination;- U" X1 p1 m$ D7 \) u
                        assignLObj := rgmanager.rgAssignL;2 i2 M, J, g8 E3 u6 r. J" A9 e
                        row := assignLObj.getRowNo(GlobalDistObj);
: o0 n; o) w& k7 k                        if Row = -1 then -- since 70
7 ?3 ~4 p! k4 p4 A) v# i( m' R( l: a                                if lan=1 then/ M7 O8 G+ m; G0 ~- U3 s
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ q9 g/ e9 ^+ p  x- x                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 ^) a9 H: r. w9 E
                                else5 J8 j! a! F% N; f  {5 C" U
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 ?" N2 A+ z* Q+ L5 l6 \3 X( F, p5 `                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 g1 c! y9 Q, r: R6 a$ O                                end;9 D+ `8 R" l6 }- h* P: L' N( _4 o  D
                        else4 [* c! q" ?0 r$ S" I5 e: d0 L
                                @.Destination := assignLObj[1,row];; Z$ e0 T/ r' G7 d' i! G
                        end;                        + q6 w, J& C0 e8 h
                        newDirection(@);
) r0 I" x  Y1 p+ I4 d9 U                        @.HasOrder := true;
5 S9 s( q5 G8 V) |* m                end;
9 O$ F0 m. e& {$ e$ G8 F        end;
( K" i8 E8 [- S6 ^6 d2 N' bend;        -- of the method
  m2 @7 _; s. {0 \; c  Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! J: i7 Q5 _6 H- z1 Y; w
& N7 F& T; Z6 {6 B: l1 q9 z8 L; E这是AGV_putin中arrive的method。
3 I" `/ P: J; z" s# J& a4 S. @( b3 H
! E! `' x4 M+ Q/ t# ?& B当到达物料速度越高时,这个报警更多,
  ]' B0 a- V; F' I可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  t, o( H0 D7 v9 @* D
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ C: v' H# I. R- ~  e3 l
) y, c8 V" a  e# W另外一个小建议,就是move,所有的move都可以这样& ^# c2 _. q5 o2 x* i$ \
if not move() then debug end
6 t' [- j1 E+ S9 p: V8 E; \/ M' C这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 D  h( @6 C* V7 e0 n
plant simulation中的free libraries有AGV模板,' [7 K# U7 u& E6 K  A% @, I
里面也有案例。
( L' N) T  p4 L/ n! u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 e) ?! C5 k' j' s) L+ u
1 J+ |) f8 e) ~9 q: v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* y, i* O/ R: {  ?" M- u& L  P; J
* T" h! d: T! B0 w; O那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 a, \0 m* r# ?' b  \
这是AGV_putin中arrive的method。' M3 n) b& l) j* _7 m
4 j# Z& j: Q3 N( X
当到达物料速度越高时,这个报警更多,
$ r/ r: {- A  `; l) o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-1 06:05 , Processed in 0.019415 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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