设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8003|回复: 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'
& g9 }2 F5 W5 ^8 P" \7 L*/7 ?7 b+ h) r( w" [. k
is7 g% d' @  Y- x+ }' P0 g- }
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 b$ ?8 ]+ b: Z7 z  L% ydo7 g! ~  w- n" s, @/ n
        Lan := rootfolder.Internal.Tools.AOLlanguage;6 d+ U) b/ i9 r! X5 }
        if current = @.Destination -- else return! n5 @* G: C: J+ s: c
        then' i0 Q6 j" M% N+ T* }
                @.Destination := void;
2 u1 H* X7 _5 _9 j7 Q; z3 i                if @.occupied then# R/ @9 x% b7 R+ X
                        part := @.cont;
$ ?: [2 f; P5 ^" \0 ^                        @.transpOrder := void;
) D3 U. \$ W( Y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 U% j0 j7 c# t+ y                                @,root.eventcontroller.simTime);
5 X; {0 f/ c+ r; r0 e# W                        @.HasOrder := false;
' K) A9 E! F0 T* ~' \/ X) R1 I7 n. R                        @.DrivingHome := true;$ J8 U& h; n+ ]! i
                        rgManager.tryToStartTransOrder;5 @: D( a2 O3 K
                        if @.Destination = void" B+ g, y5 i, X- e) M) d( G1 W
                        then -- no transport order for vehicle @0 D, n% o; F1 L, j
                                @.Destination :=
+ G; @; z) I) T, n; V, i                                rgManager.nearestFreeStation(@,track.~);0 {1 G* o0 s6 i( a0 Y# I
                                newDirection(@);   
, J: N! _' G" F, m/ R% R                                if @.Destination /= void then
; E* B$ k2 }, k; Z                                        @.Destination.NumReservation :=8 `& `3 [* v" m: {1 c, F: |
                                        @.Destination.NumReservation + 1;/ m3 a! ?2 G* h2 \* q) r
                                end;) ~% M, U6 x5 t9 K' ?0 I
                                @.CurrIcon := "drivingHome";* o/ y, U" L$ g0 C/ k
                                @.DrivingHome := true;3 m- e6 S3 M+ P  y* i* {- }' I% h
                        end;( h% R" W  i4 ]: L+ j% r& @$ p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 T/ }! e( V- \* A4 g) d7 R
                        part := @.transpOrder;
( ~4 v7 N; S7 O; N, l8 {                        part.move(@);-- load part* L6 e5 |- d0 s7 T, {( m; m
                        @.CurrIcon := "load";! X! y4 u. A) T0 D1 ~% R8 L
                        GlobalDistObj := part.globDestination;
  i$ G8 V3 b) F. i0 T                        assignLObj := rgmanager.rgAssignL;5 x7 u1 }4 k! ]3 d% }: X, X
                        row := assignLObj.getRowNo(GlobalDistObj);
- z0 f6 G% w8 ]) y( L2 d' \* h  V                        if Row = -1 then -- since 70' p% P' w" E! i9 D
                                if lan=1 then5 k9 l0 `% D6 H, D% C! U: w7 ^
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; c- k' p4 _4 a; h4 l                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 ?- D/ Q, k" y; |' }# d4 j+ p0 o$ [
                                else( `+ F5 I4 @4 t& a* k0 I/ [% M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! F" P4 o: A8 L* z3 d* |) N                                                to_str("in docking station: \"",?.~.name,"\""));                               
( m0 _5 J0 m8 E5 @! }. M/ G2 _                                end;
( I; k" V/ q, X" n3 b8 q                        else2 f& c3 V# F8 W9 U* S1 F; a9 E
                                @.Destination := assignLObj[1,row];, y" r+ X3 R' Z; W& L/ x) U
                        end;                        ' r, z( V! v/ g3 i% E) h
                        newDirection(@);0 u: x# _/ O  \- ]/ P, b/ r3 @
                        @.HasOrder := true;4 `5 b, O& H% P6 v& d2 e& ~9 R
                end;
1 r& }$ L) L2 p& K  o        end;
/ Z1 W) J# Q' Send;        -- of the method
8 ^; k+ F4 j5 S7 T& u) q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 T+ u7 T5 X- F# P5 m: P( U
& @5 o! G' _6 ?% O
这是AGV_putin中arrive的method。
- {. q! W2 Q. |0 m2 f7 ]9 U% `- Z, k; t) n
当到达物料速度越高时,这个报警更多,4 j( T7 K7 W" k' |! y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 a+ i( W8 ?0 n% ~0 x6 r程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 A3 K. w7 c) k
$ b5 k; q6 u; x  l* M4 x* Z/ C
另外一个小建议,就是move,所有的move都可以这样
* u7 j' s6 `  |& q- l. V! s  wif not move() then debug end* x8 S2 _9 e' C; {5 a6 I& P( c
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, Q# T! }9 w" fplant simulation中的free libraries有AGV模板,6 |4 {# D& |4 Q8 B4 ~; U, C% k
里面也有案例。
+ e0 L9 @; n5 X% {% i2 S我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" u/ E; P# s: v1 ?# G

/ k* E" j) b- Q3 J% ]4 j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + a- f, B# r2 Y! z5 x9 {
- R5 V6 o# G' F% I- X# ^4 Y) _
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( n  w8 j0 P/ r这是AGV_putin中arrive的method。- M1 Z: `1 L" k& U$ |
; w# z5 {+ R8 j% m/ ]0 _& o
当到达物料速度越高时,这个报警更多,

( I# w8 t. f% H% |( X% r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-10 10:51 , Processed in 0.018514 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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