设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8207|回复: 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'% k" k% N1 C. ]3 J# p' q
*/
" x9 O( I5 P" ^1 t% e5 P3 a% |is
" Y, ~. D1 {1 H! }6 ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 s9 `( C% o2 z3 jdo  U* J0 ^' }9 H* k
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 H1 B5 d5 T2 r3 w* Z- `+ Y
        if current = @.Destination -- else return
7 ^! h7 i1 Y1 N6 N        then: |! l' \; ^, u3 A2 {& J1 }. n
                @.Destination := void;7 r1 k' w0 c) C9 A" l0 f
                if @.occupied then8 i' _! _  N$ `" F* g  J
                        part := @.cont;5 ]1 n/ _" Q, {+ c$ K, Z6 j
                        @.transpOrder := void;, R/ Y5 C/ d0 z! `, J3 ?& H/ ^
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. n( y6 U8 o; ?7 }3 E3 @                                @,root.eventcontroller.simTime);
4 t1 e: i/ C* K$ r& x# q) W% l. f( n4 Q                        @.HasOrder := false;
* ]( T% h6 t1 |/ Z" O9 ~8 K                        @.DrivingHome := true;0 X2 y2 f# Z4 m+ o! r
                        rgManager.tryToStartTransOrder;' o# c+ k+ Z1 N4 u
                        if @.Destination = void9 O4 k8 R7 r; w- u* S4 O: g
                        then -- no transport order for vehicle @% c$ P+ O1 c* g* V& u; v/ j
                                @.Destination :=
" |' E% j! a! u3 u8 y1 w                                rgManager.nearestFreeStation(@,track.~);- t$ P( B/ f; a+ s
                                newDirection(@);   4 M, t8 `1 X- k$ S5 W6 C
                                if @.Destination /= void then- w7 P. p, b# S
                                        @.Destination.NumReservation :=5 J, w8 F' j+ L6 I) i
                                        @.Destination.NumReservation + 1;2 z# n9 v2 W+ h9 H
                                end;
) s( Z  {2 H$ C2 l                                @.CurrIcon := "drivingHome";
. c% {4 z$ z+ c0 a* X$ G3 I                                @.DrivingHome := true;* X3 v0 F' l, A$ [4 R( l$ `/ y
                        end;  y8 Q# f2 z! @3 [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; v3 O' D% `( V3 L
                        part := @.transpOrder;
/ J, R- b. \4 d( _$ ?7 X2 x: N" h) I                        part.move(@);-- load part
9 M/ ?2 j- l* X2 V  U                        @.CurrIcon := "load";
! ^2 I# g. c6 V# e6 U6 \7 g# P( `                        GlobalDistObj := part.globDestination;0 Z/ y, o" L  U# {; D4 N1 d8 D
                        assignLObj := rgmanager.rgAssignL;
' j: z- c: b5 j+ Z                        row := assignLObj.getRowNo(GlobalDistObj);
7 q% D, M8 K% r- B% \                        if Row = -1 then -- since 70
- d( C" T, z( s$ Z  R# ~1 `                                if lan=1 then
$ e! l3 S: _$ a& Y: g3 \) E                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' B7 I4 C+ K0 @2 d- w6 l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' a0 M6 S! B- e, L' B
                                else
8 y* j0 z: B  E0 u4 c( Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ m" H( H# I8 I9 d( c( W3 Y                                                to_str("in docking station: \"",?.~.name,"\""));                                ' Q  z7 C8 T6 Z2 F  V
                                end;# B* ~/ ~1 l& B& R3 N7 c- c
                        else
0 O7 r6 L$ j& x' s& j                                @.Destination := assignLObj[1,row];! K2 m/ F/ O: u- G, O$ C- l- H3 z
                        end;                        ! V3 w$ K. ]3 Y- y7 J/ |* |
                        newDirection(@);
& ~; L& x+ r$ f                        @.HasOrder := true;
3 A( |1 X  d4 E+ ?# x: Q5 r                end;. l3 i. x5 {( e6 s( c4 z! H
        end;9 U9 v6 a( q( }
end;        -- of the method
. n# u" |' K* H* W% j$ j$ J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 p5 Z% R6 l3 O* u
0 C. l/ u% `9 m) y/ `这是AGV_putin中arrive的method。
4 w/ G; q' e& c. c: T* q; g
3 n) D& Q* Q2 w: {当到达物料速度越高时,这个报警更多,/ T) N& D& |9 ~" D9 t8 D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. K5 i& D0 G3 a9 v- N  d) S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ @" P) i1 p8 _7 r( g. ?- S/ P# P; ?- h  |" {* u& d. y
另外一个小建议,就是move,所有的move都可以这样* }+ g5 g+ _7 ]! A  P- h0 u
if not move() then debug end" }" A7 [6 w' ^9 w" J/ m$ t+ K. a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" D) d* b1 w# ~, N( S# Wplant simulation中的free libraries有AGV模板,' j4 x) g" R" }$ }( e2 P
里面也有案例。
! n' R, E2 @3 }* u% {' A5 ^我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* N; v4 f3 u0 Z
: J& S# M& f" K3 l/ O8 `, W' [我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * g/ o9 J4 J9 J: v4 u
+ T& W5 _( @7 x/ [- n8 {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % C  b' F% d8 c! z& O: ^& H
这是AGV_putin中arrive的method。
" s( z( G1 `5 _0 H6 w" M6 \, f! ?4 g3 M8 C2 f! P# V) D( M
当到达物料速度越高时,这个报警更多,

  ?. _5 U6 D8 U7 p另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-20 19:00 , Processed in 0.021743 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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