设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7426|回复: 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 p2 Z0 l; O$ A& m7 b8 _' m2 W*/
' @. X/ t% k- uis. ?& B( V) r& \  Z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ _0 R5 z1 f: _5 C) pdo9 G( R/ `( x, Y; v
        Lan := rootfolder.Internal.Tools.AOLlanguage;( q) l! y. o2 l( z$ w" R: H! |
        if current = @.Destination -- else return
& S$ q* |7 l, |5 J. C        then
' I9 {9 e: b5 ^4 J* a4 i2 d                @.Destination := void;5 v) n: P! K' Z6 _+ r
                if @.occupied then
3 y4 O# h3 g) \% E; p                        part := @.cont;' g0 V6 l/ J4 N5 J  b+ B) g
                        @.transpOrder := void;, k# X+ u0 V" K" |$ o* v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 Y: A6 [& ?" |. J5 S8 T/ `0 q& n
                                @,root.eventcontroller.simTime);3 ]: K! z8 M: k4 H% `6 u9 D
                        @.HasOrder := false;
) Q5 U# W# Y: e1 `4 J                        @.DrivingHome := true;
9 |  V3 ?3 U+ V* a: O                        rgManager.tryToStartTransOrder;4 S2 ^0 K7 }' W
                        if @.Destination = void, h7 D7 C6 y) L
                        then -- no transport order for vehicle @+ H/ ?/ \# o# `  m
                                @.Destination :=" W% J# ?; g, T; j
                                rgManager.nearestFreeStation(@,track.~);
  v( o6 n0 }8 x                                newDirection(@);   
8 Z8 G  x5 [- z! L+ R9 e2 G# w                                if @.Destination /= void then
6 e- M# i3 b+ a2 O( o                                        @.Destination.NumReservation :=
6 k; }4 F. d  c* A) z" \) }                                        @.Destination.NumReservation + 1;
: H( j6 t4 i* k                                end;4 K6 p$ x; }4 R- Y5 G
                                @.CurrIcon := "drivingHome";( X5 u! h; Z6 N) ^- j  I& m6 s
                                @.DrivingHome := true;
3 a; v) T. _- D8 z* {8 n. {                        end;7 t+ ]2 P) k: K7 Y. g
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ ^: [' W" E+ i! A1 i6 r5 O, i                        part := @.transpOrder;5 c( _  I+ L: U
                        part.move(@);-- load part2 T8 O% q# N; v% T$ q6 ?0 Q# Y0 L
                        @.CurrIcon := "load";$ N; q  h" t- v8 N* l
                        GlobalDistObj := part.globDestination;
! e3 T. }8 {* N; N3 l5 D  j5 _% _2 n                        assignLObj := rgmanager.rgAssignL;
& k* \& |( e; c) M                        row := assignLObj.getRowNo(GlobalDistObj);
8 g" |- ~$ |0 B3 `$ @+ j                        if Row = -1 then -- since 70
% y8 r% N( Y, R" p- L, g4 Z2 x' _1 N. O                                if lan=1 then0 U- r4 M0 j  b8 p0 o" Z7 U
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 X8 c5 L8 F: R, m4 r3 |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  E- @) R: `/ H  T9 J                                else# D/ P$ A$ O1 J4 _' m1 u3 M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: ~: z3 b9 m4 [                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 b' w9 R. r$ ?( F+ j! e                                end;
1 b( t( w, ~3 s0 e                        else5 }) |1 F8 A" F/ h  o; n( c
                                @.Destination := assignLObj[1,row];
/ L0 w- v* Q: ]8 i8 l2 |, h. X                        end;                       
! V% ^1 _' ^# s, b# f                        newDirection(@);& J0 J* z* b& h/ Z# j! z; V
                        @.HasOrder := true;
  `1 r' w+ ^: G+ j+ i1 Y0 d6 P+ d" y0 `                end;8 w1 K7 D. O: H$ n" a# S4 F% S
        end;
" H/ T8 N( u5 |( O$ L& aend;        -- of the method  |# C4 x4 v$ l, B+ |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  o5 H+ w* i8 k1 l
/ I9 t! j2 k, q8 k: V$ G这是AGV_putin中arrive的method。
3 X9 l" w& Q/ A4 a8 \$ N$ W4 s- P. x
当到达物料速度越高时,这个报警更多,. P- }" H! O: P( P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 Z. y9 ]+ {. f) z  r" Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! @# [+ w6 h  C5 ?$ R8 |
% |- @( s$ W' @. D+ {. `5 y! W: m
另外一个小建议,就是move,所有的move都可以这样
0 o# U9 z1 v$ q/ O  l5 j  oif not move() then debug end- U' r4 F$ C% y! ]1 N7 a) Q4 _; }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% ?0 b& G: V) G9 f+ v: F
plant simulation中的free libraries有AGV模板,
/ I8 m* Z* t% O; s0 Y+ [里面也有案例。$ e; C) E/ [# k8 q# g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: R/ S9 p+ H1 [$ D# V. g7 e- Q7 p/ w, G
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 _. l) V8 o/ e( |6 W
2 K# E3 n$ s* F% M( u. u那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . j5 d# R9 U$ J# o/ t) }1 T
这是AGV_putin中arrive的method。  _/ t& I1 g( A) P: \; @) \% v
% j/ X: y, q  W' |9 i& v
当到达物料速度越高时,这个报警更多,

, d7 ^) W$ V1 D+ q$ z+ R另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-10 21:07 , Processed in 0.022263 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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