设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8154|回复: 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'( P% P1 ~! C) }+ ~' E1 u
*/7 o8 [. k4 \. C* a+ ?3 s- t
is
$ V3 N' @! A% Y* p; ]        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# ^7 ]; s7 x, g" n4 h& V) Jdo
; c: {% r$ e1 l% N! B! r/ L3 B2 z        Lan := rootfolder.Internal.Tools.AOLlanguage;! j$ k- i) w% a7 z& w6 Q7 A; K
        if current = @.Destination -- else return! q! [1 u# C# R, Z' Q7 n2 _
        then
; o7 o( U7 U# q                @.Destination := void;3 x; w6 S, U7 d9 y( x
                if @.occupied then
" K" N- _5 \( Z% _1 X0 C  Q1 P' y% O                        part := @.cont;
7 a. g% H8 Z2 M& ~                        @.transpOrder := void;
' w( E6 H. M8 ?                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 t, ]# U5 }4 O" ]2 I
                                @,root.eventcontroller.simTime);0 S1 F& r0 F- I. \' A4 G
                        @.HasOrder := false;
, \1 D, H+ o9 @& @' C( A5 M                        @.DrivingHome := true;
. r( z" q4 g# t/ K0 v                        rgManager.tryToStartTransOrder;, D" W- E/ E9 e3 J7 |
                        if @.Destination = void  W% K; o' y& j0 x8 z
                        then -- no transport order for vehicle @
+ L9 }2 W9 U* S- H5 G: S6 x                                @.Destination :=
9 b+ \3 K. W, d. O                                rgManager.nearestFreeStation(@,track.~);5 N8 {- \6 ]( _  |6 F
                                newDirection(@);   2 w6 O  \9 b0 L9 r2 ]
                                if @.Destination /= void then
  \/ Z: ~  v4 s                                        @.Destination.NumReservation :=
$ D/ V! e' Y5 j                                        @.Destination.NumReservation + 1;" [( r2 X# Z. ^6 D& H
                                end;" `, w- [+ D4 E1 [
                                @.CurrIcon := "drivingHome";
. \- z5 a. ?, C$ `& ?                                @.DrivingHome := true;/ H* U/ A0 I8 H4 [$ s
                        end;. O& {% L9 z9 O* ^# ?: [/ X/ k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 y1 Q& N9 A+ {! z* U4 T
                        part := @.transpOrder;' ]' Z0 w$ B% a' z2 Q- L
                        part.move(@);-- load part
" l9 l5 @  i/ ?! c4 z- c% W& n                        @.CurrIcon := "load";
! X$ n- T& N' A) s3 h2 n! b* J) j                        GlobalDistObj := part.globDestination;$ i% w- S5 K/ L+ z, Q- J
                        assignLObj := rgmanager.rgAssignL;/ n4 P- m2 X- z4 r* H
                        row := assignLObj.getRowNo(GlobalDistObj);
1 Y* Z6 \4 F0 E: T) t/ p                        if Row = -1 then -- since 70
9 z! r2 J* M4 r0 w3 e" L( y                                if lan=1 then
( ~; w0 M2 W$ T2 M* T6 t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* a; \- P8 f  _+ g                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ O- P- y: p7 ]
                                else& A6 U* T- y9 ^# \4 s- Z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 L+ w' Z' n2 I. N- Z' k                                                to_str("in docking station: \"",?.~.name,"\""));                                * G3 [0 [, Y0 u4 t
                                end;2 w' {; S' G* s
                        else  q; G3 ~' Y, C% E7 {
                                @.Destination := assignLObj[1,row];3 c9 _- ?% I! ?
                        end;                       
+ U# \0 m9 u' F& R& R8 o3 w                        newDirection(@);
7 q6 R+ Z: x# ?6 G9 C0 [- ?/ ?                        @.HasOrder := true;& P0 ]% V- B( C
                end;# _7 Z% J4 G, R: J
        end;
, z; [+ R5 |  [end;        -- of the method# l1 r" H' h. u7 ?* d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " y, Q" v0 V& g9 z

0 A$ V$ @+ e# {" j0 ~/ [1 w这是AGV_putin中arrive的method。
+ o* m7 N$ T% Y5 N+ r; w& ^7 U1 [) v7 h, o: \
当到达物料速度越高时,这个报警更多,
# T. A! I0 V) L8 z: Z+ O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ y1 d( j: Z4 k; U+ x程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 U1 u: X7 m2 @9 S
' `# S. u- E' ~另外一个小建议,就是move,所有的move都可以这样% Z. t3 a3 e1 k
if not move() then debug end
1 ]( d% K' o! s4 j; s5 T  ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 M- d1 `( W- I4 U0 d, \% Cplant simulation中的free libraries有AGV模板,
0 e9 L* I! x; M$ n- }里面也有案例。
) k. L6 L, ^/ r我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 \* [( v8 Q; c, ]% o, {7 Q, k  Y. q5 s: d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( P2 x# o- m! E2 k& z: y. @  \

7 B; G+ D5 `! F2 @1 s8 E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 n2 E; B$ f0 S9 F+ d, k
这是AGV_putin中arrive的method。1 c: `) F# i# V6 S

7 G" t2 c: e) \. Z$ J当到达物料速度越高时,这个报警更多,
3 [0 r# x6 I: v3 h4 L' f
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-17 21:29 , Processed in 0.028914 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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