设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9246|回复: 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'
, N4 {' e5 ]( u9 q' V*/5 C: Y- S5 F4 R; g, B2 h
is
- ]) W: O4 Z# Q1 d* e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" n9 p& K; s9 u4 i+ P7 t# I  ]0 xdo
. E& z0 T4 q  w        Lan := rootfolder.Internal.Tools.AOLlanguage;/ _; N5 x. s1 w! l
        if current = @.Destination -- else return
( V% x6 s8 P9 D7 i) D7 d/ ?" B        then! {! w! J" T2 |; n% _* v: H
                @.Destination := void;
0 D/ j% T, ?/ z                if @.occupied then$ j$ M( |9 r" ]% Q+ R* K
                        part := @.cont;
( A( y5 Q- @1 A5 x, V, a0 b% I* ~6 x                        @.transpOrder := void;) Y, J1 W5 i3 A: `# ^
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 S4 p1 x2 T( _+ k4 d! r7 w$ g                                @,root.eventcontroller.simTime);
$ t6 p. `7 q0 ]& I                        @.HasOrder := false;
7 j" o' ^( t1 t, u                        @.DrivingHome := true;- E9 }1 y4 X8 a$ X
                        rgManager.tryToStartTransOrder;0 s" O& M2 P2 e& t. V
                        if @.Destination = void7 q6 T0 m" C+ M+ r0 |/ ~
                        then -- no transport order for vehicle @: t! b4 i! m9 y* E* v+ t+ H: ~% [
                                @.Destination :=- p" E3 [* F7 {. r3 Z$ o6 u
                                rgManager.nearestFreeStation(@,track.~);# i  @1 z' l/ e9 W1 g) t! _
                                newDirection(@);     T! ?+ n5 g7 x( j
                                if @.Destination /= void then" R) o% [& Z8 Y6 j; _, ?- P
                                        @.Destination.NumReservation :=
: Q9 ~; V# _6 p5 M                                        @.Destination.NumReservation + 1;+ O: u" u9 I7 ~
                                end;7 W! v" F0 }) _" g3 S
                                @.CurrIcon := "drivingHome";0 j9 {8 X. s8 N7 t
                                @.DrivingHome := true;
! L8 H# M6 ^# w4 f5 e0 q2 e                        end;- ^5 r- b' ?3 h! A% F: {* b& z' N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- C: M" H: H( a5 A; ^, g1 z                        part := @.transpOrder;
, f6 g: m+ g# C" m                        part.move(@);-- load part& k9 q# h" s+ z, u8 l
                        @.CurrIcon := "load";
0 V5 c' N9 Z1 M, H. [                        GlobalDistObj := part.globDestination;' o: U9 L, K& V3 j3 S+ ^$ o
                        assignLObj := rgmanager.rgAssignL;
9 d- ^0 c( n, v" t: j                        row := assignLObj.getRowNo(GlobalDistObj);3 B: R% y) \! n7 V% m- Y6 ?6 `3 k
                        if Row = -1 then -- since 70" M8 }6 r% ~* r* h" F& H
                                if lan=1 then
! R& h1 B+ t8 [& n* b                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 c6 _: }7 w5 T2 b; W
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! o, \: q: ~+ {, o                                else
/ s+ }8 Y- {* Q% T* s! n- d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 E5 w/ {! \% G9 d  E& \0 |
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) R, c+ [3 s) C
                                end;; ~# H& d' L/ I7 E+ @+ i0 H
                        else
1 ?0 d& P5 ]+ ^* y$ f                                @.Destination := assignLObj[1,row];" a4 [0 x9 d8 e  i4 W  u: F) f
                        end;                       
. V# N1 n8 T& ?( R3 y$ a                        newDirection(@);
9 D1 b$ X: U' b! D* T2 x8 p4 L5 x                        @.HasOrder := true;2 u+ M0 R0 e, ?; `0 |1 r' a/ k+ v
                end;" d  Z$ K- }* A* n
        end;1 K( s  p: B3 b' v: b" K7 N
end;        -- of the method
; L! t, {0 o9 H. ~6 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) x2 s- k# \3 j: t% ?
8 N  p  B* N0 S) ~. G8 ~
这是AGV_putin中arrive的method。: F! A( J0 d+ f0 \

2 F; i9 T/ G  _9 b当到达物料速度越高时,这个报警更多,
: y$ u; Z0 U2 y* B% u可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( z- g2 U/ ]9 V% ]) I& g8 ^程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 v8 K2 h4 [( s# u5 u0 f' f) S

% a: z# Q  V4 N另外一个小建议,就是move,所有的move都可以这样
0 X7 Q3 M/ Y5 }" c# Bif not move() then debug end" Z8 p" @8 R+ x' T4 ]
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; l, x; g9 c+ {' w0 n2 g' Pplant simulation中的free libraries有AGV模板,1 D* F5 W2 H; z2 w
里面也有案例。
. u; W2 z  _7 J9 l) E0 f3 i我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  A- y# x7 O( t+ \8 z- ]1 n3 {/ N, a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( q  H+ k, l; d" s
8 b( Y) I; ~; U" A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) X, ]7 l1 Q, C- l1 A
这是AGV_putin中arrive的method。9 t$ I2 Y) V7 Q

4 D# }* p4 b" X# S当到达物料速度越高时,这个报警更多,
# ^' i: n9 N6 _
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 22:48 , Processed in 0.015982 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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