设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9731|回复: 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'
( A9 b" }, g0 ]' {  e% u*/7 a1 L. G+ t+ w4 ?! ~
is' s+ D1 \, O' K" y  S- Y% p2 n
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& p4 s! o8 e8 K
do
0 N' ?5 B" @, O0 d! U; d0 t( O        Lan := rootfolder.Internal.Tools.AOLlanguage;/ C  h# ^+ Q$ E8 ?
        if current = @.Destination -- else return- S  v* |7 W/ T4 C4 `
        then) F' v8 B7 q* I6 V6 F/ N2 p
                @.Destination := void;
9 R& F0 s; V( K1 v+ r                if @.occupied then, o; n3 Y0 Z* `/ R1 s4 X4 r5 i
                        part := @.cont;7 u, a  Z, ~8 M- _6 l
                        @.transpOrder := void;
' ~& |% M( ]1 u# O9 K+ I2 A                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ b+ l9 T0 s' A9 v                                @,root.eventcontroller.simTime);
# g) i0 N7 L3 ?1 X( w' b8 J( m                        @.HasOrder := false;" |# e- W! \6 X+ i8 s, K
                        @.DrivingHome := true;
1 {( M, w, Z* z: ^  |: M                        rgManager.tryToStartTransOrder;
! ?3 W" _4 a  `; a                        if @.Destination = void
# n4 J. G! y  l6 b9 Q' N0 ^) w0 M                        then -- no transport order for vehicle @
- R: c3 b% n6 o8 U% W) A7 |                                @.Destination :=0 L, ^# }; b7 i2 ^
                                rgManager.nearestFreeStation(@,track.~);% M5 h) }5 r1 s5 }, G$ d; s& k
                                newDirection(@);   3 b/ x8 k# }& w3 O; G$ G
                                if @.Destination /= void then# e+ U6 A/ H$ M6 c9 v0 l. ~0 A
                                        @.Destination.NumReservation :=2 T# W3 B# t7 P2 c  }" {# X4 ^2 ~
                                        @.Destination.NumReservation + 1;+ N# l2 G. p' p" {- g# l
                                end;
8 \, x% W8 W2 n3 F' q                                @.CurrIcon := "drivingHome";
8 Y( r& J7 ]; s" T3 i. J: }                                @.DrivingHome := true;6 \  {' p+ B( g* z! O
                        end;; |# l/ l) q5 M; n& o8 _8 _
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 [& \- `$ `# a' _2 l# q
                        part := @.transpOrder;# x3 ~( k  J# E6 Y
                        part.move(@);-- load part
. \( N+ ?+ o) j0 q) ?* Q                        @.CurrIcon := "load";
0 Q. b+ X: |/ [. Q/ q) B7 H                        GlobalDistObj := part.globDestination;4 {4 @0 @1 N& s6 {$ z) q# n) d
                        assignLObj := rgmanager.rgAssignL;
7 W  ?; g, |; b* |. k! S                        row := assignLObj.getRowNo(GlobalDistObj);- n# E4 b( [9 [& c
                        if Row = -1 then -- since 702 W* B# i: g/ [( W' J9 t
                                if lan=1 then
( {3 |; y: K# |9 F( v- H                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* L5 u; J& v- t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 a# `, k- e: G1 E/ e6 i6 E# a                                else
* i; g) ]8 X# o# R' E                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 |' }- w% F  a                                                to_str("in docking station: \"",?.~.name,"\""));                                ) x" j+ H9 Q4 c3 \2 Q2 h% \) E
                                end;
8 l/ T% ?  I/ n9 [                        else. F; J( `( H( u( p
                                @.Destination := assignLObj[1,row];
: Y" b' x, O4 m# U, V& h8 l0 G                        end;                       
' d1 G/ e, U) L- Y                        newDirection(@);( J) \. G* {) ~: [0 m, q
                        @.HasOrder := true;  o, X6 [& M7 q5 S' z1 D, |. M
                end;
! A4 x2 V6 U" w: X: Q        end;
; I! d  P/ X4 n, k0 zend;        -- of the method
+ j3 Q* }1 \" ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. V. J7 T8 X# c) ]: t& _: U1 E( l# R9 y
这是AGV_putin中arrive的method。
! p0 z  @6 u9 o; Q0 Q% s8 j, @. J; @! \$ _: \
当到达物料速度越高时,这个报警更多,
# |8 K+ Z9 h# R- p可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! q/ s$ y3 P: i程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 V- }  F" ~/ y# J$ c+ Y. B) l
% n. N7 l  V* q2 P# j  @另外一个小建议,就是move,所有的move都可以这样/ q( O# B* t3 Y6 V& |: o( U" n
if not move() then debug end
$ ]; Q; e4 w' }; ?9 ]) ?$ c! c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 t8 ]( D) |% X  ~plant simulation中的free libraries有AGV模板,
4 X/ }2 H: e$ R' n0 u里面也有案例。
8 X( ]# L$ D* ?' M我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 [7 f/ \' \; q* J' ]

0 O. L8 Y' D- ~/ F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 c: L: a2 t# e( L1 ?1 f5 W. C

; {5 a( G# l; q8 ?4 m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 F3 H9 T6 S! p/ E, m$ P2 S
这是AGV_putin中arrive的method。
! v6 b5 U3 I  `/ X. h* L/ a2 S
7 j5 \! p" R2 g当到达物料速度越高时,这个报警更多,

1 O( M$ _/ {1 g, L% h) u另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-21 03:16 , Processed in 0.025257 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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