设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6344|回复: 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'7 t7 b2 g, V6 E& t1 j) f0 B
*/
, f% v9 _% j8 H- O7 Z# M0 f2 mis0 Z+ i& I. i$ W" p% O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: I" {' ]) _( O& b6 |' q
do5 D/ D8 O' v0 M/ O+ X0 \3 O# H. |9 ^  P2 }
        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ Q: F; e* Q6 s( x" N& ~        if current = @.Destination -- else return
3 m$ C8 J' ^4 I+ @: s! _  Y8 F        then, [( @6 \* }" B2 M
                @.Destination := void;! a4 Z% M/ t" ~( Q- G
                if @.occupied then
/ c" M! {. k+ r                        part := @.cont;3 ?. N$ p  D& m: C' C& X( B3 d
                        @.transpOrder := void;
' r) N5 w3 a* }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& {$ j; G- T. @, ^2 c1 a& G                                @,root.eventcontroller.simTime);8 Q5 ~3 M2 y, f7 v
                        @.HasOrder := false;, _5 N: w6 X* G6 E4 t! _
                        @.DrivingHome := true;
7 y' j5 Q8 s# ^# ~* B+ H                        rgManager.tryToStartTransOrder;& Q0 g+ @) a, ^
                        if @.Destination = void
6 I0 R% F8 t/ ^/ J! i3 U, f, V; y                        then -- no transport order for vehicle @" @# D4 K4 u& P7 v  X8 L
                                @.Destination :=, R3 K2 k2 ?4 T( T+ h" V0 V4 R. D
                                rgManager.nearestFreeStation(@,track.~);9 C% A) i  z) H( M' V; |6 L
                                newDirection(@);   , Q5 P/ r0 I0 z$ C4 Z
                                if @.Destination /= void then
3 l( q5 g+ A! [3 N+ R* X4 ?4 t                                        @.Destination.NumReservation :=
1 y0 T4 B* D9 z# \8 F) F, [' r; z                                        @.Destination.NumReservation + 1;; c9 y  @! U' N6 C
                                end;5 o# i, T5 s; j3 v" P0 @
                                @.CurrIcon := "drivingHome";0 \0 ?+ Z6 D0 a8 v0 [3 R5 v
                                @.DrivingHome := true;
' `3 E; E7 t0 ^: Z1 l                        end;2 T) K! K$ s/ t. f8 }( D+ j# M
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; X0 ]1 W8 l; o- d: ?
                        part := @.transpOrder;8 Y( h+ M2 N% ~" {' t; b6 Q
                        part.move(@);-- load part* r, S( D; S9 @6 p6 e5 n
                        @.CurrIcon := "load";
$ P& m, B. {$ G* y# D9 X, ?                        GlobalDistObj := part.globDestination;
) W) J2 d- v- Q                        assignLObj := rgmanager.rgAssignL;
# W% @) q8 l4 N/ }7 Q                        row := assignLObj.getRowNo(GlobalDistObj);1 O+ k/ \" D$ T; o$ R& g; g
                        if Row = -1 then -- since 70
3 W; Q) J7 A5 p, J$ q                                if lan=1 then5 d$ C% E1 N/ m0 ^9 N
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, |, Q/ `2 L- P" f/ W                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 ]" U5 n& ^* i9 H3 ~3 v' @9 Z
                                else
" W& O& Q: y% ^5 [6 w- |" }) ]$ ]  o% r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 t$ ]) C9 U. A  V$ g, O, m& ]& `7 y
                                                to_str("in docking station: \"",?.~.name,"\""));                                % {& X# r  \+ c# K: m
                                end;
+ P/ i$ p$ g: b8 a) Z4 Q                        else
; j! _8 q" s6 ?  s0 g7 z                                @.Destination := assignLObj[1,row];
* ?8 ~; [3 |" |3 Q7 V" v                        end;                       
/ F% _( Q' k$ f( ]- z                        newDirection(@);5 [' T2 p* X* E; F
                        @.HasOrder := true;
+ {3 U) O& S# ?# U                end;. o, X# G* V8 h# q! I& D
        end;9 i3 @% d' v, S/ [# `0 Q* R
end;        -- of the method
3 o' ~3 ~" I- C4 L: K' S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - F8 [+ h7 K; K0 j5 A0 D% m) C1 j
0 X- z* p. ^+ x* ~1 F: X1 v' d
这是AGV_putin中arrive的method。4 d' }6 S. C3 w0 c! h0 D, g

: {. f5 ^% [1 h4 t  G" j1 L当到达物料速度越高时,这个报警更多,
! Y- t$ {3 Z1 n7 w- Q( W$ i: k8 @可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" Z& Z6 k4 K% S6 F3 o$ s8 K
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, j$ z& A2 w) |
+ \* t; W5 U8 X  u( a另外一个小建议,就是move,所有的move都可以这样: a3 f( k$ m" F8 |0 x
if not move() then debug end! H1 f( M5 M9 o; P& ?$ C
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# u* X/ v! r8 Wplant simulation中的free libraries有AGV模板,/ n: @: R+ `- P
里面也有案例。
9 ?/ j* ^( J( G# y$ b% Q6 T我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ x: B$ f7 H3 R* ?" T2 D5 j

. h4 h3 l- n6 I我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : Q/ M- x6 Q0 Q& N" X

; W9 Y* l& J" @  J$ ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / r& e( J. Z- K9 {4 C+ x- ?8 E
这是AGV_putin中arrive的method。
1 S+ y# O0 v& E5 ]0 W2 g1 F9 q1 b  n
9 b. E6 ?0 G1 J! W" X  w当到达物料速度越高时,这个报警更多,

0 {' p. z( `! E  Z' g: _* W另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-31 21:04 , Processed in 0.021696 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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