设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6368|回复: 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'- W$ [) |4 ^4 E: B
*/& {0 Z! W( J4 D3 Y
is# C. X5 b# @  x: B0 e$ T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( N" b! {8 F( M5 _5 w% N) ]' @- `do8 V7 a: m3 U  s; a  |
        Lan := rootfolder.Internal.Tools.AOLlanguage;' o' b% l: {$ J4 ~% }1 V. D9 H& C4 ?
        if current = @.Destination -- else return
( A% U4 \3 y# W  T        then& I; O: N! ^% e
                @.Destination := void;8 o6 o" M, l$ E) D3 d+ U7 a
                if @.occupied then
4 ]3 y1 S8 J. J                        part := @.cont;
# `: b: b! ^5 ?) V! e/ T, |$ S                        @.transpOrder := void;
/ B  _& e  V% ?! F% i: Z: s                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 ^* M5 z( J/ d1 V                                @,root.eventcontroller.simTime);
1 \+ W; \1 \# v, @4 m                        @.HasOrder := false;
1 k! ]: F2 y5 [' [                        @.DrivingHome := true;  t3 F' \' i, d1 b# m
                        rgManager.tryToStartTransOrder;
; O1 i# W, o. P6 {                        if @.Destination = void8 J: ?( I. |1 Z
                        then -- no transport order for vehicle @
& s# Z5 ]- M( }                                @.Destination :=
4 x$ |' a4 J5 f: r9 u9 _                                rgManager.nearestFreeStation(@,track.~);8 L& B+ U/ m4 }2 D/ d
                                newDirection(@);   
) Y9 ^6 L" t$ F7 X                                if @.Destination /= void then
$ Q8 q$ E6 ]/ T                                        @.Destination.NumReservation :=2 y8 L( A; S( w: e' W
                                        @.Destination.NumReservation + 1;
. D& \# l* d- M                                end;$ ]5 F' H5 u9 c+ C+ I& P7 z5 ]
                                @.CurrIcon := "drivingHome";/ L, k! d% h2 B( h& G$ ^
                                @.DrivingHome := true;$ J7 g7 Y8 j& s' p4 ^: I% i
                        end;7 I  q; y; v8 p" u5 P/ G
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. X7 ?* v* a3 G; ]. T* J9 K                        part := @.transpOrder;1 z% B7 \; {5 C" y+ E1 d
                        part.move(@);-- load part
0 y7 t4 \" ?1 V% d2 e                        @.CurrIcon := "load";
( A: |2 Z2 `! F: q* t7 F                        GlobalDistObj := part.globDestination;
: S5 P: p" e' m' H                        assignLObj := rgmanager.rgAssignL;: C8 d( A3 W6 `' a
                        row := assignLObj.getRowNo(GlobalDistObj);
+ ^8 k! q1 x' f0 \                        if Row = -1 then -- since 70
, y+ c9 \; {' H                                if lan=1 then
+ u+ e9 _% i; R+ _  _                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" f) J, |% u# M" P, C# b                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& |! G/ G. b4 \                                else
- r" `( {2 H- g. M, h8 X                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: F: `4 z" Y7 E6 O" G7 a
                                                to_str("in docking station: \"",?.~.name,"\""));                                4 G+ Y4 L- j# T
                                end;: R2 \# F. \) v4 k4 {  b) j
                        else' O- l, Z( R; _0 |2 x# U& w
                                @.Destination := assignLObj[1,row];
, T  V1 K' `1 K. Z                        end;                        3 f  I8 n, f8 ~2 }, V3 a
                        newDirection(@);# A  M7 y' m2 m, O6 ]1 @
                        @.HasOrder := true;* G" D9 M2 {2 x* ?
                end;5 F+ \$ I- U0 N  T0 p
        end;
( w- E8 t8 e6 A% qend;        -- of the method
" E& {: S7 |! t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # E& ]" g, ?4 X: V3 c+ I2 C

- J, _" a8 y9 K这是AGV_putin中arrive的method。
6 L% i/ \: E$ F& [1 t& ~4 R
8 H) Z$ n8 \0 s% B+ u! ~当到达物料速度越高时,这个报警更多,% n8 i" b$ T4 N& K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 f" U8 G! ~( X: p2 B6 l
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( {1 L  O: w7 O- x) g' U* A; w4 ?
另外一个小建议,就是move,所有的move都可以这样" j" ?2 T+ c# u) z& B, p
if not move() then debug end
' T% Y/ w  z+ \! |这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 R6 e' Z( H! v2 O# g
plant simulation中的free libraries有AGV模板,# P  c$ D$ K& `1 i! D. J" }
里面也有案例。
9 |. c# w% x  x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 h* O8 _1 |  u: g5 H: e: f  R7 F* P
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ V2 t$ ^4 t6 ?. \

$ f8 Q/ \& z( o6 R: b+ H$ p1 X4 Q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, i- V# B2 i3 N  k: x/ V这是AGV_putin中arrive的method。
! c3 D& Q; p' `
2 @/ d' A4 O0 Z; Z当到达物料速度越高时,这个报警更多,
5 h! ]. `+ ]' j8 e& `
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-2 03:54 , Processed in 0.015905 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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