设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7208|回复: 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'5 D* i$ M, u/ h) e0 F# N
*/! N( T$ U2 D+ L: O$ M# I( Q
is+ _: G$ S: u$ ^  a9 j& D" R/ [3 P
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, l5 A" H# {6 ?
do
8 c# i- s. S" b        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 ^( c' n* u% Z5 m, ?. a! |        if current = @.Destination -- else return
, i+ {4 R7 h  g: L$ h: D  o        then) I9 `1 b  n2 S+ c' W/ E% J
                @.Destination := void;5 N6 u8 N" `3 V& j. m, \7 K  n
                if @.occupied then
: g! W' B) k; Z3 ^# W                        part := @.cont;
+ T9 Z  ~0 o* v; k                        @.transpOrder := void;% [, q; V7 m; C3 C* t
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 ]" j( m! _- V3 N) V+ I                                @,root.eventcontroller.simTime);
) f. F( z- R4 @# A                        @.HasOrder := false;, |4 o+ D2 A7 R
                        @.DrivingHome := true;  P5 F% j; h9 W$ X6 y# G( w- S
                        rgManager.tryToStartTransOrder;
0 _1 |/ @7 R5 p8 k( T4 S+ ]                        if @.Destination = void% E3 a8 c" D* Q" H, ]
                        then -- no transport order for vehicle @
/ t& R5 z, N1 ^. f                                @.Destination :=
1 A( a5 |$ A% p8 Q) _, |+ S                                rgManager.nearestFreeStation(@,track.~);# q/ S7 @( B, ^
                                newDirection(@);   % ~* h) P  V( v. g( l6 s
                                if @.Destination /= void then
8 O! S7 q8 [: Y* Z                                        @.Destination.NumReservation :=: ^) _6 H5 r1 Y! L# _" ~
                                        @.Destination.NumReservation + 1;
( L. s2 z% @( y                                end;8 P+ F4 x( m: A$ t
                                @.CurrIcon := "drivingHome";
9 _/ R; L4 e/ w! C* }% {3 {9 O                                @.DrivingHome := true;
& O/ Y9 S/ _$ `- c! _3 P  K                        end;) G6 P* U' K) z; r  [3 |7 k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  z: R. n  W" L* {6 O. B; K
                        part := @.transpOrder;& R$ `3 X  ^" K$ s) U7 ~
                        part.move(@);-- load part
9 G0 r+ {$ D9 J/ g3 m# W                        @.CurrIcon := "load";% G+ Z7 H# P: O
                        GlobalDistObj := part.globDestination;* c1 H# |) y) }0 y: y; o
                        assignLObj := rgmanager.rgAssignL;& w3 w) z$ T0 L3 v, k" n
                        row := assignLObj.getRowNo(GlobalDistObj);, s' T: k( e0 R  [
                        if Row = -1 then -- since 70
7 n+ `6 t! |" U' ~1 i                                if lan=1 then! l9 U' ^3 h; l% B  E, w
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, f0 a8 u9 H  Y4 L( R                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 \- i* O+ [) H, a/ s3 e/ J; m
                                else2 j5 p: o$ a/ g/ L5 D: G: O& Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 Q* v/ k3 x* o
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; i) s3 H, {3 K7 U) U2 P+ l5 r( N5 E                                end;7 r1 ^# ?6 E# }3 |/ y& o4 r' E  F; r
                        else
7 A6 ?8 ~% J3 i" ]9 z                                @.Destination := assignLObj[1,row];# c1 \$ h$ m1 l+ Y' Z2 u0 }  G) O
                        end;                        & T  P: @. M3 A5 A' E" ?) v% c
                        newDirection(@);
, h4 K% ^+ I- X1 A                        @.HasOrder := true;. _" e, c' T8 ?& J9 w( u1 _/ b! J  x
                end;+ f: w  c/ u3 K. ]: W" d3 U
        end;
& {5 Q* T; f" s& y! p% q5 `end;        -- of the method2 R& |  D  J4 L4 K" Q& y" P6 R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . E% @1 P; {1 Z7 |7 W  D) P
; U( I- X7 Q4 y- S! O% t6 W
这是AGV_putin中arrive的method。
1 }2 W3 T0 z( _3 H. B  j
0 W- L9 E: L6 g; b当到达物料速度越高时,这个报警更多,
& k+ @2 _  D3 y. P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ f0 C2 c6 R, m4 T; H+ n8 `/ J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! n$ H  ^# z' k' v. K. A8 e* _2 R1 D* D; y- `0 f8 b5 T
另外一个小建议,就是move,所有的move都可以这样
2 {, R  _& K5 B$ n0 Wif not move() then debug end
, L! V1 K' s8 P4 D3 n这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) Y$ o; R, j; x# _9 S% {+ gplant simulation中的free libraries有AGV模板,8 j, R. p  ^% H- L# z
里面也有案例。
/ q; B+ c7 ]6 a) Y2 A+ M8 S我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 _- o3 t: H" S$ G6 [% b+ H, ?$ z+ Z  A" B, [  F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' P5 f  f4 `5 M

! p( U1 M: ~* }那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : l. s8 @* {. e, d8 w
这是AGV_putin中arrive的method。% r& X' I# l" w5 i
, C! k1 ]' t% ]- B
当到达物料速度越高时,这个报警更多,

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

本版积分规则

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

GMT+8, 2026-3-27 02:44 , Processed in 0.018453 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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