设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9428|回复: 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'
1 o* I/ V. U$ ^7 ^0 h# {*/5 ~) o. N' @. C. |3 v* l/ s
is, ]8 U& |4 A0 C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# A2 V  n. i' B/ ?# ]* Y  a5 Z
do
3 O* s3 Z  e" I        Lan := rootfolder.Internal.Tools.AOLlanguage;
: o+ L0 z! P. m% Y0 [        if current = @.Destination -- else return8 q' l3 \3 @# a5 r
        then1 ^8 _) X% u2 C( }) w+ F
                @.Destination := void;/ m6 Q) Y7 G+ K& M4 }* d& V- Z
                if @.occupied then: o  B% z6 k" X/ l  T
                        part := @.cont;1 i4 o3 A3 u/ f( h
                        @.transpOrder := void;
! e% Y& V2 `* M  J; {" W                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 r4 k! X. e+ d# `- }9 I
                                @,root.eventcontroller.simTime);
% F5 \* n4 O+ v1 ?  _                        @.HasOrder := false;' t4 H5 s, t2 w1 f- {1 ]% N
                        @.DrivingHome := true;7 X+ C; V! w) X% X1 X3 e- v/ d
                        rgManager.tryToStartTransOrder;
4 @8 x1 o+ Q: q; N* u* e1 L6 k                        if @.Destination = void$ p7 }( N: Q; ~- n- C
                        then -- no transport order for vehicle @
2 Z' o2 V8 w3 K3 k( i% \                                @.Destination :=7 s# ^: T  a6 f5 D5 j  H, Q
                                rgManager.nearestFreeStation(@,track.~);
# F- B, b1 B. f  p' K+ D0 a                                newDirection(@);   
# X, @6 g7 w  h                                if @.Destination /= void then2 Y- g" q( V  `6 E7 Q6 x6 s
                                        @.Destination.NumReservation :=
; @+ l& X' K. y- ~" q                                        @.Destination.NumReservation + 1;' G- ]: ]$ }6 y: ]- Z$ w' j  S
                                end;
/ Y4 ?7 s' p/ `3 ^  ^* x* Q* o" F" n                                @.CurrIcon := "drivingHome";
6 t0 h5 D! V+ P- |. o  w. n# ]4 x                                @.DrivingHome := true;
* b' U6 s$ K* t                        end;% g- S0 |! w0 e3 \2 b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 j- ]' w6 u* J, F' U$ z( B
                        part := @.transpOrder;
' _2 V$ Y, M! u0 W                        part.move(@);-- load part8 N* I  N, L3 u& k
                        @.CurrIcon := "load";
- i9 T. W0 R' X2 y3 p; i                        GlobalDistObj := part.globDestination;- u( G# v/ _" J
                        assignLObj := rgmanager.rgAssignL;
0 ^3 b* r- b& B7 M                        row := assignLObj.getRowNo(GlobalDistObj);5 O7 F8 a4 J& d6 z' Y
                        if Row = -1 then -- since 70
. M/ W. @0 }2 W3 O5 D- Z" e                                if lan=1 then
+ C" c2 M& B0 C3 c8 c+ i" h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% @  J! Y  y& a; P. l6 U
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" M( M: x8 Y1 V" w/ J' {                                else
3 F: F7 G1 i4 d% b                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 R: @# q& r, w0 |) R" I& z0 T9 ~8 b
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 f0 I  O; S* ]% ~% V) c                                end;$ d& n, J7 Q0 ]& u
                        else
- k7 K: m: a; p! v9 N$ R                                @.Destination := assignLObj[1,row];
, S, H. @" f- m" N- }3 Z4 P3 T2 n% \                        end;                       
7 O" t+ C  V3 u9 r9 I7 \                        newDirection(@);& i2 @8 c4 V5 N  }- n7 @
                        @.HasOrder := true;% [' z8 d0 ^- A- Q- e
                end;
: _, B7 R4 n  c- c" ^        end;9 N6 I+ \! r1 ^' I- p, @  w3 O" k
end;        -- of the method/ L, l0 Z# \% R' g4 j5 L+ C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 D4 w3 a! {" d+ {) J1 m
: M/ q+ G( E! F% Q% o# P
这是AGV_putin中arrive的method。
1 f6 F2 J3 z3 ?. J3 T: K& @+ v9 \4 k9 D( N
当到达物料速度越高时,这个报警更多,6 G  j3 I" b  p# r9 I& w+ `. Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  p$ f  m3 `% C0 m' _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' Z& l  A# _7 e) ^  }- y- D+ o% M

7 w( M3 C, Q- O- T另外一个小建议,就是move,所有的move都可以这样
* T3 L6 ~$ B/ o/ M6 V' z8 wif not move() then debug end: M, J, u( ~) L1 y6 P  I: a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' [  X9 ?+ ~7 j: @0 p6 K$ O9 A, ^plant simulation中的free libraries有AGV模板,
1 e, t0 W' t7 T/ F# g里面也有案例。
. S) E% y) z' k$ B我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 y) x: a, Q8 \; Q# l6 ]" ?
/ [" _6 `+ p6 ~7 @5 S& T; v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- S% G) f" ~8 `  ~4 j1 p: p" a& k. ?9 B, w, J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * b# M% V  v) a" \
这是AGV_putin中arrive的method。
' @; E1 f+ [2 S$ P/ ~3 |* o
9 ^7 I3 s7 R4 |& ]4 m: Y+ Q1 K当到达物料速度越高时,这个报警更多,

% f9 h% G1 ?1 W% j" V另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-31 18:00 , Processed in 0.018420 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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