设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9858|回复: 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'" C$ o* j% p5 o- A  ]6 r
*/
! ]- u  N: n* g% a& y) ris) P! ~: R6 x$ P7 k% B" _3 k5 S% O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: Z9 o# _/ F3 J% T+ j/ o$ O
do
$ f3 |( @' i/ s# b+ ]        Lan := rootfolder.Internal.Tools.AOLlanguage;% v7 z8 v/ x+ p/ E
        if current = @.Destination -- else return  X$ m9 X8 t! ~$ Q
        then
" s5 o, {- I7 x" s' a( S) \                @.Destination := void;" E4 N' F. E5 L0 u# G) i% T
                if @.occupied then/ ^6 {! l/ R3 q" G- T$ m
                        part := @.cont;
. O. n. j9 o6 z. f7 o                        @.transpOrder := void;1 n6 f( t7 v+ e. @5 c
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 F* h) I2 z/ w2 m
                                @,root.eventcontroller.simTime);- c2 L) B1 e* ?9 l/ r/ V
                        @.HasOrder := false;! j9 a6 t  s2 c" m( b& r' m
                        @.DrivingHome := true;
3 Y/ Z$ f# r) |; Z$ F, @& n                        rgManager.tryToStartTransOrder;
; b- E+ w$ X( U6 _& ^: Y                        if @.Destination = void- h4 P4 }- i1 A, [1 n
                        then -- no transport order for vehicle @
  O' y& D( Y3 L3 z2 N# X0 x9 M% X                                @.Destination :=
5 E2 `4 s# f+ L7 _" ?' V                                rgManager.nearestFreeStation(@,track.~);
. P# e. b, b. P' C. y% O7 C                                newDirection(@);   
$ W( S% ]! I& d0 b                                if @.Destination /= void then, B1 p) E; g7 ]' x3 I
                                        @.Destination.NumReservation :=; B) V' v# A, y( ?. h
                                        @.Destination.NumReservation + 1;
! x& ~( T, x. R8 u* p8 i; k$ d8 w                                end;( |  W! G+ x1 s
                                @.CurrIcon := "drivingHome";' f% \' N) s& q, g7 W
                                @.DrivingHome := true;( k* C+ F9 c! J7 X% _% |
                        end;
% n6 X9 p/ Y1 w" f- Y' H9 p$ `1 G6 Z! Q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 k% I0 `1 W6 ]; J# G
                        part := @.transpOrder;
) t9 j  M# l* g7 \9 \$ U                        part.move(@);-- load part
) Y# m' I1 p  r7 S0 c! G2 j1 P                        @.CurrIcon := "load";
9 u0 R/ h3 V: G# w1 a7 [                        GlobalDistObj := part.globDestination;% W: {. W9 w- s4 l# r
                        assignLObj := rgmanager.rgAssignL;
3 e: I4 Y! [+ w                        row := assignLObj.getRowNo(GlobalDistObj);
: s4 Q7 I) r$ P8 Q                        if Row = -1 then -- since 70* q1 ?8 E; Q  u( U, T' ?8 _
                                if lan=1 then7 x, A6 X9 m/ c( c' j5 k: ]
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ a% J' \- E) j5 c
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# V; S- X5 }/ ?
                                else
0 R* [, l- x% w# A" G/ R                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 P0 a5 k- N  F6 ~* P# I" E
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 G/ A' |, ]3 I/ I- y. @+ Z                                end;; @* C1 J3 D  b* M4 j7 l0 F
                        else
$ F: b0 g" u6 S4 y4 ?                                @.Destination := assignLObj[1,row];5 j$ o1 `) S) O& d- [6 D. j
                        end;                        8 r9 o8 }7 G; ~1 A9 }# y
                        newDirection(@);
6 n' t1 `. {' Y$ Z" s" T                        @.HasOrder := true;8 h0 [# l0 G6 b4 g" I: q; F: ^8 c' H2 e
                end;
7 @, A  `2 x4 n  F9 R: \        end;
5 h7 W% _* p8 ]6 k5 F2 F( E1 N- v+ {end;        -- of the method
7 @/ E. z$ H. i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / p% k$ @( L  B/ |- Z6 ~3 k

4 @4 y- @, b( X4 t! W# e. K: J! `这是AGV_putin中arrive的method。& {/ }( Q" ?/ [# g4 y

5 T- t7 G' I8 u" V/ s/ j1 n当到达物料速度越高时,这个报警更多,5 d8 N& U2 e" A! v' {
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% z' b2 F( Y7 N5 w8 N- y+ f程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& q2 m8 o( R  A# l' r6 ?: g6 w) s: Q4 ~6 y/ H% r* p
另外一个小建议,就是move,所有的move都可以这样
! Z' [- i0 B' y) d' uif not move() then debug end$ h# V# I& E4 Y5 p, y' Y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; P2 g1 ]4 \7 s5 h/ P
plant simulation中的free libraries有AGV模板,
8 d! X3 x2 H$ _2 {" M" \2 w里面也有案例。6 }& e  u) X. @( U
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! c# h* d0 d9 g+ T7 d. V
" U3 Q, ~+ R0 F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 k% O) X0 x9 K1 m! X# Y' R

+ a& U3 k0 N" j- I那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : W; Z( C9 Q" N, R' f$ t! p0 T
这是AGV_putin中arrive的method。
3 F, e0 K; J6 V, M3 S0 S4 O( ]5 k$ V6 T& p. ?. L8 z
当到达物料速度越高时,这个报警更多,
7 a) f; S$ t+ u  T0 A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-29 20:05 , Processed in 0.018284 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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