设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8969|回复: 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'
" c2 |3 v( v) w$ K0 C7 i*/1 b, B# V) Z$ ^' |( q5 E
is9 Q9 @( n7 A/ O9 V, m0 T. F- s. ?$ ]
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  `' f; j3 i# M: V9 ^do( X1 K9 D1 B$ |3 L$ S5 a7 k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
; ~1 L, O5 J9 U( I( `. S; D        if current = @.Destination -- else return7 K% [" w# H3 D& @
        then+ h. {& ]; o9 P5 X
                @.Destination := void;
, R2 z) t7 X" P                if @.occupied then
( P. f: z/ \4 G& p4 w                        part := @.cont;# O) o' H$ k8 s5 K. [
                        @.transpOrder := void;1 `/ N) i8 M+ V  ]) G' f( H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. l7 w. x* u1 Y( H0 W1 y* E                                @,root.eventcontroller.simTime);
& M8 E; I1 p% h* h2 H8 F                        @.HasOrder := false;
* L) M, h" n6 X9 f                        @.DrivingHome := true;
! {/ l' }" r# a3 a( ^6 D                        rgManager.tryToStartTransOrder;
; z( F* |- \- s                        if @.Destination = void# e) Q: I0 \" F# }
                        then -- no transport order for vehicle @- M  {, q* q$ ?: J6 e$ ?7 e- {
                                @.Destination :=5 l$ W( s; q9 Q% d+ y5 M6 m6 B
                                rgManager.nearestFreeStation(@,track.~);- B3 j& h" F  o# ]
                                newDirection(@);   " |5 U) W% e( T9 J+ }! a
                                if @.Destination /= void then/ Q& A3 W: y; Z) K2 m6 A
                                        @.Destination.NumReservation :=
- ^" Q# w  f. \' \% p1 l8 s                                        @.Destination.NumReservation + 1;
1 Y/ {( f& C4 ~" Y) P) R8 X                                end;& y7 N( a3 O% z
                                @.CurrIcon := "drivingHome";
* j. ?; G9 q$ F, L& n                                @.DrivingHome := true;4 T, m: e* D/ Z8 o: W$ c7 n0 H
                        end;
: C& w0 `! A: C                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; A! N9 C: q( z7 ~: h                        part := @.transpOrder;' X  ~7 v( ?6 ]# }' s6 ]
                        part.move(@);-- load part) b6 i7 t) h* J8 U% \5 W
                        @.CurrIcon := "load";
9 Z& E5 h# l  Z# K$ d                        GlobalDistObj := part.globDestination;
$ {: W; g/ @6 I" E                        assignLObj := rgmanager.rgAssignL;1 Y" G2 d* J* @/ F' V% K
                        row := assignLObj.getRowNo(GlobalDistObj);9 ^$ P8 A; z3 v/ V9 L; P5 J
                        if Row = -1 then -- since 70) h0 I3 ?/ h4 K0 u
                                if lan=1 then
( G1 W- ?5 g( s                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: z& ^+ p' H7 I: o/ C5 g6 E* [                                                to_str("in der Andockstation: \"",?.~.name,"\""));* ]  G4 V4 [4 {2 t+ K% a# Y4 I6 e
                                else
6 V( d: Z* e6 H* x% X0 ]+ D5 K7 f                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' m5 t: t( \1 \8 C; Z+ G                                                to_str("in docking station: \"",?.~.name,"\""));                                , }3 m* I2 {0 b- S
                                end;
, i0 v- z. U0 {+ [/ w& _                        else3 O5 N0 ^* m' O! J1 Y3 n9 }
                                @.Destination := assignLObj[1,row];
* y7 U6 c. O  [3 D( ^                        end;                       
" ~3 R3 h. x. m4 C* r, S                        newDirection(@);" q; i* k. n6 E* d7 t1 }' M9 h
                        @.HasOrder := true;
$ d) c  Y. k/ l  }8 _                end;! l0 C& G; T4 Z& p) r8 Q1 D
        end;; K% |" J$ x; G* T
end;        -- of the method
$ W0 r8 W, e. p* V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. s" B/ T/ U: ?
( G( c- ^- P! [这是AGV_putin中arrive的method。6 a! M5 H2 X6 r  Y! [
* B% U  k9 l2 Y: g# }$ M
当到达物料速度越高时,这个报警更多,
8 |# f2 ^  z3 h7 n9 W* A; F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 k2 y. ~, E! e* W- H程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 V3 G. D: k9 E# j0 k% d5 R+ l

2 I/ |, g: t: W2 H  |$ |- j- [+ [另外一个小建议,就是move,所有的move都可以这样; ^; Y, |% N8 U5 x% Q  R7 h. `
if not move() then debug end
, W1 A% X+ Y; `, k& o* J9 w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' O) W2 ]* @' jplant simulation中的free libraries有AGV模板,
8 r+ `2 {$ P; Y' L/ v里面也有案例。
3 S9 D3 L/ X$ N3 W% |4 H1 b. Y$ b我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 u" S# ~; u  D9 t1 n4 [) z
/ s+ |5 F. w4 I: o# K+ T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  D8 Q% U1 G( W! Q# ?% J0 H) f  ^% z2 j
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: [+ @" g/ |" t, c这是AGV_putin中arrive的method。
" N" L# |# g% E6 ?
# `, u( U' i* U3 p( x当到达物料速度越高时,这个报警更多,
( k8 a9 E5 A: M6 S7 e9 o' L
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 19:01 , Processed in 0.015258 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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