设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9218|回复: 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'
# ]6 b! k* ?+ F9 S8 n2 }6 v*/( Y) f6 O0 k  P8 A6 t
is' ]9 u: o2 C& n
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 ?5 H8 G  r5 }+ [+ n
do  X! N( _" {" Q9 B# e
        Lan := rootfolder.Internal.Tools.AOLlanguage;( o# N# y  ?' F0 U; F/ e5 v. P
        if current = @.Destination -- else return
: P) B. n/ y9 f        then$ N  i7 U7 D3 o! I; H' Q+ L3 V
                @.Destination := void;5 k9 f9 M1 P( s* |
                if @.occupied then* z/ n) E, {2 h& J- R. K
                        part := @.cont;
6 }/ V* o: T# v                        @.transpOrder := void;& a9 e4 i; O! j  m  U% X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 y( y9 u- G- Z" o
                                @,root.eventcontroller.simTime);" _/ k- s' U+ s( G, t6 h. }
                        @.HasOrder := false;
$ b+ T, d- _) R; c                        @.DrivingHome := true;
6 k" X! U: ]" f  u' E                        rgManager.tryToStartTransOrder;1 ], j) [  x7 _7 o* c% `
                        if @.Destination = void
+ z/ q5 c% l0 I1 S$ U                        then -- no transport order for vehicle @( m9 m* o6 d$ w
                                @.Destination :=. L4 u" Z; \$ ?, p) i$ [
                                rgManager.nearestFreeStation(@,track.~);# E0 @) h) i, }+ N, W$ G2 t
                                newDirection(@);   ' `/ s6 B* \2 H# F! |
                                if @.Destination /= void then
  }( {9 w- ^" u" D- }% j! }                                        @.Destination.NumReservation :=
6 B6 i6 r9 S7 }% l( N                                        @.Destination.NumReservation + 1;' G- Z% A0 O1 n6 x. L
                                end;* e% H$ o' E4 k1 Q; ~3 @
                                @.CurrIcon := "drivingHome";
) f' k9 r2 V( s: y% ~( S$ p                                @.DrivingHome := true;
  P% y6 Y7 b- k8 u0 B                        end;
$ x' n( \; `0 V3 a) M                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" h- q5 _" ^8 F2 k                        part := @.transpOrder;5 m0 U5 ?& C! v
                        part.move(@);-- load part$ X+ y( b! T/ g9 Z, \
                        @.CurrIcon := "load";3 }5 }( e( {5 E! f
                        GlobalDistObj := part.globDestination;
* D0 o9 Q4 K7 J9 X, o  l                        assignLObj := rgmanager.rgAssignL;6 ~( _! {) C- \
                        row := assignLObj.getRowNo(GlobalDistObj);# J; O8 U7 ^. g5 L9 W* i! s4 |
                        if Row = -1 then -- since 704 g$ `' E5 l' S+ V! O
                                if lan=1 then
' h7 J; ^! Z; j6 h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 @( K% x5 D% B; N, O/ B4 c+ ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ x/ ?1 y. H. W" M* U; I
                                else! D9 [( k3 z4 a+ \; w2 J: P5 O
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% q: ]% N3 E0 |/ T' X3 B
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& e* j! n: F6 G1 _- \3 O                                end;
- u! U& u; H* a- S, W                        else
1 ^) X5 x; Q0 E% g& w% Q: ~. ]                                @.Destination := assignLObj[1,row];5 V6 G6 j* {: m
                        end;                       
, }8 j4 ^8 [$ R5 X5 E- q, j                        newDirection(@);/ g  I: ^+ U9 T! S* `+ R
                        @.HasOrder := true;, u0 F) U+ ?( \+ }1 D* q- j
                end;
) c" }$ w& p4 w3 J( M        end;
5 ?5 v/ I6 Z+ e) L; zend;        -- of the method
: ~1 E2 m9 I0 M  b! |( a3 q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; Z* c  k6 b3 i9 h+ [( X
. @' H2 m# V, R! Q2 H- l. D  D
这是AGV_putin中arrive的method。/ q+ ?6 c8 F! \% R
' Y: L5 i7 c! ]  Y, i8 `1 w- K9 _
当到达物料速度越高时,这个报警更多,
0 o- ]$ `' i* ^. b- p* m; S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- o) R7 [" v" R7 S0 k
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 z9 {7 T; G4 g3 g) L/ T: J9 V: N+ B$ ~' l2 ~( X
另外一个小建议,就是move,所有的move都可以这样* _, `: m& y. j! Z: b
if not move() then debug end
5 J, O# f& B* p这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 F$ n1 b  V4 X- j$ e  ^* Aplant simulation中的free libraries有AGV模板,: w$ s% x# w1 y9 u' x) ^( z, L0 B5 y
里面也有案例。# E, Z  @& h! V; K4 b  w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! P0 g5 f+ m' \
# m) \" C8 Q" t' `1 |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . i: o* a- ?$ ^4 y3 G" h

& K3 f' j% L/ Y  y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. H5 k5 |% b# f( E+ j  v这是AGV_putin中arrive的method。
+ c, ^/ n2 }5 I( `0 w1 Y- d6 O) N7 F3 l5 \6 u9 l( E. {
当到达物料速度越高时,这个报警更多,
. N( ~, t! _: D# A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-19 21:38 , Processed in 0.015941 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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