设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7764|回复: 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'. M% c' h3 V, Q1 J1 N1 _
*/
, m% p" Z- @4 n9 Iis9 ]" L+ H) i1 U
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 }# L# J3 r$ h/ [- Mdo
% [- S1 N4 ]5 R        Lan := rootfolder.Internal.Tools.AOLlanguage;+ `/ p, Q* V2 Q( }- D- O
        if current = @.Destination -- else return5 o$ x+ F9 w8 k+ _
        then$ }  K, L# p5 m
                @.Destination := void;( u! t# @. q2 z9 C  E: \
                if @.occupied then
" L7 N8 D  l$ `$ j                        part := @.cont;+ U  M8 [' E4 C; h
                        @.transpOrder := void;
6 s! |. D9 v9 `. o& R' Q1 P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  }6 f2 [" F/ f1 T$ J  w% h
                                @,root.eventcontroller.simTime);
- L1 S; I& }, w& W6 k9 ?4 b& j                        @.HasOrder := false;
2 f. `; L/ S5 ]: W7 ]" r% V2 _                        @.DrivingHome := true;
2 }: a9 h+ a1 |+ U* H                        rgManager.tryToStartTransOrder;
) E$ y! w% k6 ~( ?* z+ v1 j& [3 S                        if @.Destination = void
8 t+ |; `4 H  q, i: q& H                        then -- no transport order for vehicle @
4 D) r- b" ^+ o                                @.Destination :=- G6 P) @" o! V# z, m! U; H
                                rgManager.nearestFreeStation(@,track.~);
3 Q! s5 T+ V+ D2 U: d, v                                newDirection(@);   ( N! O. j1 e& I% A  f
                                if @.Destination /= void then
% E$ K7 k; Q# m. `$ o8 ~                                        @.Destination.NumReservation :=
3 l* N" @5 o( V                                        @.Destination.NumReservation + 1;
! c" i5 b! x+ I                                end;
/ H0 [6 X0 d6 z  b, R  Y! W! i0 t                                @.CurrIcon := "drivingHome";
: ^6 S& B, u( a/ k6 Y8 }# [                                @.DrivingHome := true;
6 U% q1 D; n5 w. f$ I/ ]) S3 n" S                        end;
* \0 ^' Z4 @) [9 c8 C, u2 W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( x4 }7 [! w; ], g                        part := @.transpOrder;, D6 J( J* ?) a# b
                        part.move(@);-- load part
, [: e# i0 m7 B: [9 U                        @.CurrIcon := "load";+ |, G- d2 N2 Y: ?- G3 W: c
                        GlobalDistObj := part.globDestination;1 _: z; M& W0 K7 K# [
                        assignLObj := rgmanager.rgAssignL;* H! J/ u' F) {$ i
                        row := assignLObj.getRowNo(GlobalDistObj);9 r; R% t2 V/ O/ r$ ~1 H( o
                        if Row = -1 then -- since 70
+ [$ C& ]( u8 w4 Q0 Y                                if lan=1 then
! }# a: O7 J5 h7 b% |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," m& S2 Z- p0 z3 f. `
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 V+ d/ J1 X! T3 z" }' p1 r' \                                else
6 M0 r" K2 H0 ?( D1 ~6 i& T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; k1 L# y" B; J, ?0 z8 g
                                                to_str("in docking station: \"",?.~.name,"\""));                                , R" {( u: h" s+ `* Y4 r! t
                                end;' ^! p. K" ?* y+ z, |
                        else
+ D* `1 E  A. M. N                                @.Destination := assignLObj[1,row];
( x$ M9 J# N! C5 V, x0 e                        end;                       
' D8 W% q8 G! F; W4 X- B' B                        newDirection(@);
8 K, M9 t  A: [8 C! |                        @.HasOrder := true;& |, t- ]) z) J
                end;
6 Z5 ^  P% i3 D( S9 x4 O        end;
, W  n- w; g  C+ ?7 z) n; h& dend;        -- of the method" P9 @- a% l8 ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! b' u3 z$ E3 {* x/ {1 ~( r- m

# f* w: J$ a" q. p) F1 l8 J这是AGV_putin中arrive的method。
; D9 K  J. S1 g, Z; Y6 [3 S4 q' o$ A
当到达物料速度越高时,这个报警更多,
2 k! ]6 o2 m+ k2 _% m; n2 J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 A' g" m6 Z1 m" k3 h; }" s4 @1 e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 e% Z7 v# o& o* }+ ~4 d7 |8 B; \3 B/ v: `0 m% k9 t* Z
另外一个小建议,就是move,所有的move都可以这样' V6 K3 @, G1 G6 V7 w4 G
if not move() then debug end
( B' P& W$ s/ Q. N, o$ c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ Y$ ~  h, n) Z+ x& n9 m- A
plant simulation中的free libraries有AGV模板,
2 v! d( r$ ]- g3 |9 N6 C# [里面也有案例。, G) h5 m" R$ h! A8 K
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
2 b8 K1 f% P0 x9 Q8 X4 V; Y0 [8 o/ F' l/ D" |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * z0 i3 S; J  ]: v# i

! L. f6 R  b0 T那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 `0 a/ c, a  \; n这是AGV_putin中arrive的method。* M0 z8 P- L$ e( e& L8 h) }

0 {: s  m" Y8 \% M9 Q+ G$ ?5 i/ M当到达物料速度越高时,这个报警更多,
! A; r) S5 [  K7 ^/ ^$ J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-28 12:32 , Processed in 0.017227 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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