设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6220|回复: 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'. o9 ?5 P8 m# {( G# M8 S0 A/ \
*/
8 \. m1 \: ]$ s) e2 ]7 p- x7 Iis
- N6 q1 n6 J$ b$ u  e% ~2 F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* G  o: p9 `: I$ H1 e, a
do% T. s- U$ f1 L# H  a: Y) a2 l
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 ?/ J4 M/ V7 n" n" k' e        if current = @.Destination -- else return9 t& ~6 ~/ Q: K/ _
        then( i6 @( A9 p3 a0 v) T
                @.Destination := void;9 I% o, H: z; ~! `
                if @.occupied then
+ s& X% n' E6 M$ ]9 F5 E' c: r  B                        part := @.cont;
3 a) ]+ y) U/ {  s, x                        @.transpOrder := void;0 i% a! o- q) Z6 i( b" e% x0 W" V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 |  D- K! B, W4 O' w                                @,root.eventcontroller.simTime);# }5 s: l7 x1 d0 I1 e9 w
                        @.HasOrder := false;/ f3 ]+ P  a' j0 e6 R
                        @.DrivingHome := true;: T; G6 W3 F0 Q4 c5 E
                        rgManager.tryToStartTransOrder;/ i) C7 Z2 h) j1 @& b
                        if @.Destination = void
6 I" Z7 l+ ?: s* }                        then -- no transport order for vehicle @
% r! M4 G! M' X' e& p' y. m                                @.Destination :=2 U8 U1 J& k, K
                                rgManager.nearestFreeStation(@,track.~);
. s0 t. R$ i7 F1 n. Q                                newDirection(@);   
8 P2 {. n; C  y; G1 r3 U$ Q                                if @.Destination /= void then* ?# Y8 ~1 ^1 h& N" e
                                        @.Destination.NumReservation :=
9 m% A2 R) [. Q. h% v, k* C* O                                        @.Destination.NumReservation + 1;  a7 A, s  s- s! O4 L' |6 T6 w! n
                                end;
! s" n% k6 L( y: S& [                                @.CurrIcon := "drivingHome";
2 I" \. i; g8 P$ n5 b- K" f( ^$ z0 M                                @.DrivingHome := true;3 [( o7 s0 m+ r$ a0 H: y
                        end;- W3 @$ N, n0 t, h" ~7 p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- B% v; Y  @% b
                        part := @.transpOrder;9 {% g: M* H2 X4 s
                        part.move(@);-- load part( u' N+ `+ S' d0 A( x
                        @.CurrIcon := "load";/ o) [; f# T0 O: j* M, T# {+ V5 P
                        GlobalDistObj := part.globDestination;" r+ Y2 d. M+ Q: O
                        assignLObj := rgmanager.rgAssignL;
  l; l3 G# ?; v0 l% e* m                        row := assignLObj.getRowNo(GlobalDistObj);
) i! o3 n' e* Q* p8 G4 l3 O                        if Row = -1 then -- since 70
9 ]9 k! {* r6 s! `7 N                                if lan=1 then) C( `/ y& ?( p! U. a5 F
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 }+ S$ ?/ I% ~( i9 h& y7 |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 Q/ w" d2 m' V9 E! ^( n0 F* J
                                else$ L7 O0 |5 \6 k1 X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 F4 z9 \) e& |. t# n! D  g  d% l+ g
                                                to_str("in docking station: \"",?.~.name,"\""));                                " M$ D/ i- r1 X% f" k% S
                                end;6 }' A( T( j8 _1 K
                        else
' y7 |8 {% J# m& o                                @.Destination := assignLObj[1,row];
9 f* Y4 T9 a7 ^; {8 F                        end;                        1 }4 S: O4 V3 L# E8 u  k1 S
                        newDirection(@);7 y  l6 ^5 c) J3 M
                        @.HasOrder := true;$ ]  D) R5 v7 f% H; @4 k; l6 F# P
                end;
. [' Z7 N+ @# h+ g        end;
' `% g( p, y" x( m; K. v1 ?+ Kend;        -- of the method  @0 J/ Q- `( m$ u4 S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 |/ K9 z+ g% E4 J5 Q8 t% B& W' @0 x4 N
1 q. K/ n' e, y6 Q- b
这是AGV_putin中arrive的method。
5 [+ X* P. x, `7 A
# ^5 H8 L# p  K& P当到达物料速度越高时,这个报警更多,/ U5 M) V2 `3 g: x4 a/ x
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# C5 C# ]  M# X! g% e  O) e程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! s+ [2 Q8 w. W1 t) C" Z% _
# g. B2 N: S6 w4 K, ~2 T
另外一个小建议,就是move,所有的move都可以这样
0 s0 _- V& G1 m; U, D# s2 s1 `if not move() then debug end4 p; n6 y3 v" P8 K, O
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) m& G0 ]1 T+ I: J% B
plant simulation中的free libraries有AGV模板,3 U0 B- p( ~4 A# G) K+ B
里面也有案例。2 ]1 U) _4 m9 j; T
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 ^! F) A6 D( K9 X  K( H4 Y5 A+ p) B' C/ a# `4 b. R6 U
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ e; n( t$ V$ d& c8 O( S
! C6 Q: f$ `: B. V# T9 h! u那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: k0 k2 k4 f+ {& B这是AGV_putin中arrive的method。
) q/ ?3 w3 [# j3 v1 A: l$ O+ L) t" K( [% f$ d+ c8 s8 e2 a
当到达物料速度越高时,这个报警更多,

/ O1 C$ h4 Y4 O, P/ ~另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-25 17:00 , Processed in 0.018072 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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