设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8545|回复: 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'
& ]9 B. E% C1 K, _, j*/% M: w8 ^- O+ @! k
is( P6 O; A' b+ I
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) o" X' Y! l( [! N6 J) r6 Odo# I; I( `+ L3 J9 ~4 ~
        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ Y$ D5 z8 |$ T3 I7 I8 z        if current = @.Destination -- else return
: ?' B  z& I9 Z5 j) q        then8 o$ p$ @5 }6 b& F# N/ o
                @.Destination := void;5 ]7 y2 A$ ~$ j4 C+ a
                if @.occupied then
" C% ~9 j, e3 J" }3 i, A2 m1 d  `- N6 O                        part := @.cont;
" _1 l6 |7 H% i& e' a& x                        @.transpOrder := void;
: G9 B, |% V+ @6 w                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," k- @( U+ Q3 R% \( W' S1 z
                                @,root.eventcontroller.simTime);
& ?  b3 e7 h$ R  \7 _8 P! R                        @.HasOrder := false;
$ U5 d% \% \% |                        @.DrivingHome := true;' L& l( I7 s5 e! N
                        rgManager.tryToStartTransOrder;
9 b& g' [9 l: {/ F                        if @.Destination = void! z! J) p1 x5 L. ?* Y
                        then -- no transport order for vehicle @: T4 u/ P. g- e
                                @.Destination :=
; l/ y  ?/ t/ m. ~1 ^* O                                rgManager.nearestFreeStation(@,track.~);
6 I- P( r6 z- r% ]5 V                                newDirection(@);   6 J7 |3 J- o) a( t8 u
                                if @.Destination /= void then2 s6 _) t8 H1 F+ r* I
                                        @.Destination.NumReservation :=
9 g. N* s+ i( t                                        @.Destination.NumReservation + 1;
0 v5 Q# P/ i' K2 R5 e' K( H* s7 p0 ?                                end;
5 ~6 y: n' w5 Q( x                                @.CurrIcon := "drivingHome";  e' R9 ?  X9 Z1 M6 }
                                @.DrivingHome := true;) d. M2 D  B0 f, h( E! V% _) \1 o
                        end;
0 f% H4 d' ~( n: ~5 a; J* n                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 {! @$ X! _9 }! x: s
                        part := @.transpOrder;" V$ a; N# x$ G% D% P
                        part.move(@);-- load part
: @2 v2 r: V1 }( d* \/ J( m                        @.CurrIcon := "load";& ?+ d2 S$ ?% w) M5 W. v
                        GlobalDistObj := part.globDestination;
0 t, G* D4 m. {3 b) [* @. H                        assignLObj := rgmanager.rgAssignL;
6 K. x  W0 n7 _+ U* Z9 t                        row := assignLObj.getRowNo(GlobalDistObj);
, I8 G' e8 }3 o, \                        if Row = -1 then -- since 70
- |) X. y6 Z) s                                if lan=1 then2 I8 Z7 ^% [5 I# h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 J1 m# \4 T( V% Q  Z                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 ^6 d2 n6 V! o" f& q" M
                                else
3 r% w" L( V) J" Z& K                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( R' }* ]- O2 r: U2 O" l                                                to_str("in docking station: \"",?.~.name,"\""));                                " [9 a2 I+ o  @2 i: p# {- H0 B, j
                                end;
; `0 J  a8 M, z5 n4 U                        else
& e- T3 `# l; J1 b  z( d* z! w( q                                @.Destination := assignLObj[1,row];. M8 I) q; v7 _+ m
                        end;                          {3 ~* i, o2 K/ ~6 l# C9 J
                        newDirection(@);+ F/ Y2 d1 G3 R) n, h& X' Z$ X
                        @.HasOrder := true;
9 C: q& o$ L6 F7 M5 u                end;
: [; G9 H3 A7 G5 V8 h9 H' I# ]        end;
" ]. n. @( U5 n0 d: R$ w' nend;        -- of the method
+ z# [' m5 v+ J# c& _) W$ n4 w) J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 L, X1 _: L4 ], J* w0 }* u
; f* B3 B' c, d) t+ c4 F
这是AGV_putin中arrive的method。
# L" C3 S, l; k/ U, S+ s! b. ~9 W. c! O8 g# B# _7 C0 S
当到达物料速度越高时,这个报警更多,+ E3 z! w) l+ H* ?$ A" R: k, k
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 y" Q& B; e( z  {( P. |
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. u, d( [# T& T, j  h# Y& b' _: L1 D- e
另外一个小建议,就是move,所有的move都可以这样
  |* R4 X* o* O; {: @if not move() then debug end
( j0 R( S1 r) A6 R) D这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. s( N$ J; {8 u5 x
plant simulation中的free libraries有AGV模板,
) n# A+ g( N$ n$ P& h里面也有案例。/ n+ H* ^# |: y5 s! e" e
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ c1 S' d7 t* S: c: p) ^

* K/ @6 ^9 a% T3 O6 f9 Y2 i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 t* E4 h" E: q, M& [) x. Z9 [( U* ]
7 K9 ^2 a: {. O: o4 N: B. Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ y$ l+ [$ C+ Y% K8 u7 D这是AGV_putin中arrive的method。6 P% t: Y  v( E# }, X  K6 w! K2 p
5 v( b* n( Z" ?, B2 F
当到达物料速度越高时,这个报警更多,
2 P' q' Y) V, N: p! B/ X4 R3 w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-10 17:49 , Processed in 0.030434 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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