设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8030|回复: 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'$ m  Z, b; B7 l
*/- [7 N( h# v$ o- w8 K3 |
is
8 C! G! d8 _0 U7 w        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# I! ^( x) f/ c- {do
0 x$ k. o# [1 I% o; v        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 b, ^, |" Z$ a# @        if current = @.Destination -- else return
2 n! g& }, }2 L) y1 |' b' P        then
. D6 }0 a: t. G# Z1 v. T0 j7 L4 O                @.Destination := void;$ ]5 b+ x, _1 x: B( U& U
                if @.occupied then
# t, w& Q* U3 F; R" y, V9 H; p                        part := @.cont;! B& ~( L7 K% Y  i/ H
                        @.transpOrder := void;
1 ]6 ]; `3 ]; S/ c& [6 v' P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, ~  O+ x) U  _; I/ n$ M
                                @,root.eventcontroller.simTime);, u+ t* R( p# z. T8 R/ f  ]% M8 x
                        @.HasOrder := false;" G1 Q5 N8 `' S- I2 g: U9 t- d
                        @.DrivingHome := true;  {0 L# O3 u: N/ E( m# E
                        rgManager.tryToStartTransOrder;
! J5 @9 q0 J! R- I* E3 M                        if @.Destination = void
  i8 V: e* f+ B- Q7 O1 j- G0 Y                        then -- no transport order for vehicle @
0 ]  j( Y# ?6 @2 L8 {/ H7 U+ Z                                @.Destination :=; y1 m$ v: ]2 Q8 x( S& t4 @( w
                                rgManager.nearestFreeStation(@,track.~);
, m0 ?; S% r) ^* A                                newDirection(@);   
4 d: E$ F1 C$ y4 r7 J                                if @.Destination /= void then* Z. x, K. i/ H: h! W
                                        @.Destination.NumReservation :=: ^. l7 ]0 z$ i; e) P: J3 K
                                        @.Destination.NumReservation + 1;7 n" a) x9 K( S- \% ~
                                end;- L. m$ z$ l& ~; d
                                @.CurrIcon := "drivingHome";( r9 x$ B- P" o! S8 B
                                @.DrivingHome := true;
9 c" m, l5 T5 l) e- W. C                        end;
4 ?$ m- y+ ^: |. e1 S/ o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' d7 Q3 ]/ \# q+ C+ q& o
                        part := @.transpOrder;
7 m/ v) M# @, d2 j3 b% Y# j& x                        part.move(@);-- load part; D9 G% O  n  u1 _2 v0 I2 b8 Q
                        @.CurrIcon := "load";9 b' `5 \3 b4 w- r4 B
                        GlobalDistObj := part.globDestination;1 e. w7 [, C# X' T6 _6 u/ u
                        assignLObj := rgmanager.rgAssignL;, w; G1 B" Q5 S0 M: G: d1 i' p' m
                        row := assignLObj.getRowNo(GlobalDistObj);- N" C2 o( l4 O) S7 m0 |
                        if Row = -1 then -- since 70
) F! t7 n, l2 U* w6 D  R# H3 U* F' m                                if lan=1 then' f. _" c7 l$ K* H3 q0 j5 d- l0 y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. L* z! l- D, |1 ^( r
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. j. ^2 q+ \# l, k" S5 ]1 m$ F! N                                else
6 D; J  q4 ?- A# `/ p2 b: E, g# V) {                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 c0 Y. ^3 ^8 j1 T                                                to_str("in docking station: \"",?.~.name,"\""));                                , u1 P. w* k# ^9 t- Q) i7 k
                                end;
" r, @2 Q/ ?. y. h: L" M; V                        else
1 ]6 ?( M9 l# k( c                                @.Destination := assignLObj[1,row];
# \* \$ C/ Q. n: g, D) }                        end;                       
' N' P" ~; s  N9 P; x- r8 A                        newDirection(@);
; s/ z' I2 Y: h9 ^: H! X                        @.HasOrder := true;' J$ Z7 l3 q8 v& S; U+ k3 i
                end;
9 R9 {+ m0 J; q) k        end;: W/ ^, Y- V. _7 W' F
end;        -- of the method
& J% R& z7 ]4 g. G& u" \' U7 h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : ?6 `5 q$ Y) l
  h& s% f; Q( _* f3 `6 B* S
这是AGV_putin中arrive的method。# Y, s9 b  Y" o( \6 ^, E

& M& m  d! A: s: f8 H0 ?当到达物料速度越高时,这个报警更多,3 l- M5 \. ^+ r3 l; T5 w: {# z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' j; J" B  X0 ^. ?$ ~/ m* z9 R# ?$ C程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! R/ t8 ~- {+ c  k) Q1 g* ]
. ^2 F0 y( ?. |2 B8 z, [6 J$ r另外一个小建议,就是move,所有的move都可以这样1 S6 y8 m; k' d! y' b- c
if not move() then debug end& D3 _+ q  ~: [# u1 W$ ?( j
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ X: i' I/ f" K' N: E
plant simulation中的free libraries有AGV模板,/ {/ R% G/ G* s" K% C( O
里面也有案例。
8 R5 B. L8 o1 C5 r" \' |' ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 ]/ m/ y/ x. s# C6 \* A+ ~  Y3 w* l" g1 j2 N* ]; U
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . D1 `2 Z9 m' ^0 v3 N
; I& }" `8 y: [) }
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ O- {0 z" k' k/ f0 s5 A) b/ Z! G6 U
这是AGV_putin中arrive的method。
2 y9 K# e7 U: v: U- ?7 ?, e) C) [+ L  d% d$ \
当到达物料速度越高时,这个报警更多,

2 }6 M8 Y1 g4 l. w$ J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-11 19:28 , Processed in 0.015943 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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