设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9580|回复: 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'
* T1 t0 z6 r% {& I9 @1 ~8 m0 o/ S- D*// J7 s0 C; X( ]$ L, \  T
is
, N& {. ?8 X8 \) f: C0 @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  Y. b/ M, _' |; c4 o- a) O9 \( zdo
. z+ u: L. s3 p        Lan := rootfolder.Internal.Tools.AOLlanguage;
" |7 V# r2 J3 t4 Y/ N        if current = @.Destination -- else return' V5 {# G5 Y9 o* E) N
        then
5 c0 l3 M; ?& h* j* ~* _/ x                @.Destination := void;
# |* F' k! z* ?1 c4 ]2 m& u                if @.occupied then6 G- P% G+ d5 o9 M1 D
                        part := @.cont;
* c0 A/ [; h" k                        @.transpOrder := void;+ N$ H2 |- [  I8 l2 L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# ?& h/ R! s2 W6 l- b- [
                                @,root.eventcontroller.simTime);3 I, v9 |0 z( F4 r
                        @.HasOrder := false;. ~6 l/ ~1 s' b$ z! I
                        @.DrivingHome := true;
5 W) O, R4 m" o7 d; ~                        rgManager.tryToStartTransOrder;
0 h2 _0 ?: d( y' \                        if @.Destination = void
* x3 a" _9 F, h" f' y                        then -- no transport order for vehicle @
6 X# r" E  h" E, o; E                                @.Destination :=+ G" o0 T- E5 j1 J
                                rgManager.nearestFreeStation(@,track.~);
( }) [- I! |6 t0 r1 A                                newDirection(@);   / p; u0 [0 Y, b+ N
                                if @.Destination /= void then
1 y! \+ }$ ]5 h! V0 i8 ~8 m                                        @.Destination.NumReservation :=; Z' Y4 F# w' g5 C$ G
                                        @.Destination.NumReservation + 1;/ W9 j. J. n' C- \7 P
                                end;
& _& o6 j" e' f) Q                                @.CurrIcon := "drivingHome";+ @5 `' c5 A( n
                                @.DrivingHome := true;! O; \4 L2 H9 T8 r7 m$ j3 e
                        end;+ H+ g  h" Y' z1 T' }/ P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 C& b* ~1 H/ X2 L                        part := @.transpOrder;" C  A  ?' j5 ^5 s7 \5 W0 q0 L
                        part.move(@);-- load part
. y' {+ c& I' O" O0 H                        @.CurrIcon := "load";. G8 m( @' ?5 l$ O0 L1 i! ]) e1 G$ D
                        GlobalDistObj := part.globDestination;* Z4 d7 x8 |5 _  L
                        assignLObj := rgmanager.rgAssignL;
% o; r- Q8 L9 g( t                        row := assignLObj.getRowNo(GlobalDistObj);8 l, L  _. ?- o5 S
                        if Row = -1 then -- since 70
  |5 _" |+ C0 G                                if lan=1 then6 F4 S5 Z& [9 X4 D8 d( s7 f# y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' Y: h: s' r8 _1 O                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 b$ z& i2 S& ^& X9 L  C- D                                else/ [1 R1 p6 ?' H$ t  D. g$ W
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% s8 q6 c/ O* E0 L+ J
                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 F* S" i( m) r7 b& n# V                                end;
4 d7 L! s6 \* |. G" r% G                        else( i1 C8 a/ }4 X7 ]0 E
                                @.Destination := assignLObj[1,row];
# N) L7 W. ]" {* U4 X3 t9 j* `# }                        end;                        . T+ y2 }7 p- r3 j! L' p
                        newDirection(@);& W; B9 m, {* _" N1 N; ]! d( n6 ~4 s
                        @.HasOrder := true;
- S& \' r+ D) G% |                end;
3 ]$ v' l& `4 A! n1 c0 b, ^4 C        end;" O, ~* Q) D; E0 h- R; E: |
end;        -- of the method
3 Z7 r( [$ t8 k, u2 a1 R/ q  C0 g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ \$ G: O5 f+ f  |9 }" D' S7 b: X% I5 U# q1 ~
这是AGV_putin中arrive的method。
# O; K- J8 S8 f
) {# U6 }, y3 B! T( \当到达物料速度越高时,这个报警更多,8 D1 K1 O/ J" m0 e. U
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 ?9 N# L( b& u- N4 P程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 B8 R7 \# A6 e3 a' x
  a6 T: P" v3 C% g& M另外一个小建议,就是move,所有的move都可以这样. q# {% H7 @- N( K* X% d
if not move() then debug end" D) }% N$ O2 Y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 ?) ]: J2 a. ^3 S* m- N) Eplant simulation中的free libraries有AGV模板,
  T* t% H& p4 C; x0 j2 g  @5 ^里面也有案例。- w4 F1 M( y; E+ R3 S2 x3 n7 Z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 f$ v5 L& Y8 }# d
3 c5 i, o1 K" `
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 S6 L/ r+ G6 O* h) Q8 K# ?$ P
/ H( K& p9 n! X' x; D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" C9 g$ M" |) k9 {3 ?$ }这是AGV_putin中arrive的method。
: z+ J; c8 h3 ]& X. e
3 m9 t" `. ~. P9 x; Z当到达物料速度越高时,这个报警更多,
$ N3 J" @! B% V6 u2 [) w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-9 14:13 , Processed in 0.016210 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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