设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10306|回复: 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'! Y6 ~' K1 H$ j2 W
*/3 K: ?3 q! P+ G* J" V
is
" ^  g4 Z1 n( {; f: `        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# [0 V" C  z9 i: E/ ^
do5 P" D7 ~* U3 a6 ]- k6 s$ q( l$ w
        Lan := rootfolder.Internal.Tools.AOLlanguage;2 {0 B' }) P8 i$ p: c8 }) u# f! f
        if current = @.Destination -- else return! v7 `* ?' v$ G- p0 d; I8 w0 A
        then4 ]1 V* G4 R% s! X& g/ b
                @.Destination := void;
: J9 p# @9 e- g( P2 s3 P% N+ U                if @.occupied then6 v/ X/ `, M+ E
                        part := @.cont;
  z, o  W7 G. s' j! k& J7 t" O' a                        @.transpOrder := void;
( M, m! Y2 ?; H; f. D& Y$ L                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," T9 s7 O- z. O- s8 E$ ^  f0 E, @
                                @,root.eventcontroller.simTime);
3 U3 w- H' [' y' T3 [                        @.HasOrder := false;2 B+ U8 x) P- U9 Y: S; m7 P6 V
                        @.DrivingHome := true;3 ~) Y9 O' R( N, K
                        rgManager.tryToStartTransOrder;2 U% ]2 A! i% S
                        if @.Destination = void
- b( [4 d( p. L/ a7 H0 m                        then -- no transport order for vehicle @
) @6 t3 Q- L' L1 d- m. V! c# V6 p                                @.Destination :=( m$ Z" _  {4 C
                                rgManager.nearestFreeStation(@,track.~);. i: X+ B  G; ], U. f
                                newDirection(@);   
* J" s8 E8 J! j+ M" D5 ?7 r; W# f                                if @.Destination /= void then
: e/ x3 b0 ^) C" R                                        @.Destination.NumReservation :=
) W. v# C' {' V9 Z# }' Z6 A! ~3 g                                        @.Destination.NumReservation + 1;
) T3 @9 C; n( v! {, S1 }                                end;
6 o7 e) F1 ~: m) G; Y/ f* @" m- _                                @.CurrIcon := "drivingHome";0 P8 g  k! N, c0 b
                                @.DrivingHome := true;
9 S, P1 ^# E0 @' S% T4 H                        end;
8 d! o" N) B  i& f, B; K                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" d/ p- B8 ?* G5 Y& C( ^
                        part := @.transpOrder;8 Z8 v6 [1 z6 i8 ^  n
                        part.move(@);-- load part1 u1 x5 I: `+ ?5 Z
                        @.CurrIcon := "load";
' F7 D  A/ l% [! ~4 v! E( d                        GlobalDistObj := part.globDestination;) X9 l  b0 g( g1 _* T9 D* F9 D
                        assignLObj := rgmanager.rgAssignL;/ }! Z+ t: L* H+ }
                        row := assignLObj.getRowNo(GlobalDistObj);" C: j1 Q0 G* r+ W! o5 a5 g
                        if Row = -1 then -- since 70# R" M: m# G' E8 w
                                if lan=1 then7 a5 o% I" Y5 n# _# S8 x' D, G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ c9 ]2 }. a; u5 U3 l                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 p: n7 {4 o0 b8 V6 f) S* S( M0 \
                                else
1 v6 @! R. L% N5 Q6 N0 W2 w( c9 h7 v                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  M* T; x3 H- x; i7 m                                                to_str("in docking station: \"",?.~.name,"\""));                                8 N0 p: G5 L/ ^  G+ l2 Q; n$ R
                                end;% s3 [) }( d- u  n# m
                        else
2 p, h& G2 y3 S* c9 k2 \                                @.Destination := assignLObj[1,row];
1 F6 g4 h* c5 u' K. X0 w1 |                        end;                       
4 R3 @' k6 X# \5 r8 u$ U5 k  k                        newDirection(@);! A, f, g+ D# S0 M
                        @.HasOrder := true;% v+ ^1 {4 W* J4 ]7 ^
                end;
$ p* r, S' [) q        end;, g7 `& j: ]* W/ U7 O9 Y. ^
end;        -- of the method3 ~8 s! b  \2 H' s5 f  g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# ^8 g' u' ~3 d7 s2 |3 X4 _3 r/ n' B# d# z. Q5 m
这是AGV_putin中arrive的method。
( N8 B  v" X1 s) l1 w$ G$ I" B! O
当到达物料速度越高时,这个报警更多,
' ]* i1 H1 _) N7 V6 H: u& G! p可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 Y! l+ ~8 N4 ]' _/ y/ h' H$ C
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% V  b: f2 W+ I! A0 b  \& h7 p/ W1 O0 F
另外一个小建议,就是move,所有的move都可以这样0 p; u! }  Z% X$ d, y; W5 o9 O
if not move() then debug end7 E$ i( t: b# \# _, }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ H3 ]0 W% Q  ^7 p0 l9 ]" i
plant simulation中的free libraries有AGV模板,
) ^3 ^1 T4 P5 e) _( G, K里面也有案例。* |, j$ i, O, g7 e
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' R1 ]- F( k  ^' Q' o
7 H0 ]8 ~# J, O+ S/ P" U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % X+ p$ B+ i! z/ ?: n* X
. E& ~3 }* Z: \; u+ R% y1 ~4 v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- ~$ \' f) n. j& l; T6 o9 u这是AGV_putin中arrive的method。- R' m! F6 n0 }! i
5 G; S& N/ e. ~7 N
当到达物料速度越高时,这个报警更多,
9 H) l, e$ [  w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-26 06:26 , Processed in 0.021561 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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