设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9563|回复: 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', V: `! y! d( V2 W4 |2 B. [
*/
; S$ [6 w# o' u! L) d% Qis
8 B5 r  z  m5 j( x/ n9 J/ {( M' G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) O0 r% A2 I$ o! B# |+ p1 x# zdo$ b3 i# D6 `# E  {5 L+ x
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: g$ b5 r6 [( z: d; }        if current = @.Destination -- else return' h# r& A4 u5 z4 q
        then4 Q1 }- ^/ x4 `% a8 }
                @.Destination := void;/ r2 g" u0 ~( S: h7 h- D8 b. i
                if @.occupied then) }6 K: x. e; j4 ?- I6 H
                        part := @.cont;, t" P6 |: ]* \" b1 \
                        @.transpOrder := void;, `% a, @# o" N: I4 G% C) F! f" D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 n- ^# Y: D6 z" M6 z                                @,root.eventcontroller.simTime);+ H; U6 t0 C' p3 A! b
                        @.HasOrder := false;, z' H' [2 t7 ]( S0 P) f4 Y
                        @.DrivingHome := true;; y9 j) f% u' }$ g2 ^; u
                        rgManager.tryToStartTransOrder;
# s0 g" e; r# F/ y7 q$ ^3 ^% l: F                        if @.Destination = void
( a- I% x8 B) k1 O5 D                        then -- no transport order for vehicle @
. z- p( b$ N% c6 p, ?" ?2 z+ C+ B3 j( Q                                @.Destination :=0 n$ J0 S! C. j
                                rgManager.nearestFreeStation(@,track.~);' D# }# O( A, Q
                                newDirection(@);   
8 L3 y& ?0 Q- N3 F4 q! R                                if @.Destination /= void then2 W% d) C- v+ k- |8 R+ A: r: x
                                        @.Destination.NumReservation :=
3 O' o" {. j( w( v# Z                                        @.Destination.NumReservation + 1;
* U/ f" o8 ^% r* p# W/ a' @) g                                end;
& R5 ]" s  M8 B2 S' g                                @.CurrIcon := "drivingHome";) E! c) v% H% w: ?' |% u3 J& o2 S' {
                                @.DrivingHome := true;
) n% V9 i; s2 n                        end;
1 _$ r4 i; I' Y2 d  L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! m" p' Y5 K) X; r1 z* P1 y                        part := @.transpOrder;$ G) t" z. J* \
                        part.move(@);-- load part' s$ @* E2 c& u) U
                        @.CurrIcon := "load";' Q6 w7 z* u' N) T
                        GlobalDistObj := part.globDestination;6 h% j7 ?# B2 R4 Y
                        assignLObj := rgmanager.rgAssignL;0 b! b  u6 ?0 l. y. _4 \; c
                        row := assignLObj.getRowNo(GlobalDistObj);* Z( G5 r8 k& ?6 a
                        if Row = -1 then -- since 70
/ n- Z7 J% `7 ]0 x9 h7 z                                if lan=1 then
- L" E3 W3 M; ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ K! y2 K5 a! a1 E$ d                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* c8 ^* p* u- y9 ^* f9 e                                else, a% }& O: |! v3 u9 R- _
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 D3 o4 X" z: B: j! }
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 b' R, k5 e' @( p- m8 S/ P
                                end;
' e( ~" \  W3 i( M2 n                        else% T8 V9 i! G; T9 t* Z
                                @.Destination := assignLObj[1,row];
$ a/ S5 ^, x8 f+ O5 j' \- q                        end;                        2 p8 i- E# t2 m
                        newDirection(@);
- |$ j2 P) L+ K* ]0 D                        @.HasOrder := true;) ~! o! {( E  B+ w
                end;
+ I  g4 W: d5 `: W5 v6 o        end;" i7 P8 }4 ?1 Q5 H  M* g# z* ~
end;        -- of the method3 w1 R5 h3 }4 b0 H- `* M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / U  }) _) f; [8 d

$ C! h! G* n1 b( j( W这是AGV_putin中arrive的method。: I3 i2 ^5 S  a* f# T

! F% _: q# u& d6 ?7 J当到达物料速度越高时,这个报警更多,
) |' X' t. |+ p0 C" b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! \) u: F' e, V7 \( ]) z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- N8 o" I- I# S* Z7 {0 {0 j

; ~& K5 e  z# d4 E) u$ @& A另外一个小建议,就是move,所有的move都可以这样
. [% \) Q4 Y6 nif not move() then debug end
7 l  C+ m, @0 x' H& ]/ S! E这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 e) n2 n3 \+ F7 j: Rplant simulation中的free libraries有AGV模板,
$ j8 J- N, E* E4 C1 h( f0 n里面也有案例。3 j1 y6 {- ?/ E% e
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 q3 u4 D7 t# q+ C0 s& \
! R# y6 g6 f' e" Z, C' x
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ z, v/ E' v' `7 D* H. ]0 F
. h$ h/ ~% v! b- v$ ~- v( b( A那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # A% C5 D- a9 D6 u  y; Y
这是AGV_putin中arrive的method。
, [+ A# J- [! d3 e3 s1 a9 j( u. `, }" M7 p# i; q: l# f4 q
当到达物料速度越高时,这个报警更多,
& b. V3 N! f0 t, C% B3 K6 v4 O$ ^
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-8 06:34 , Processed in 0.018880 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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