设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7961|回复: 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'3 C9 r* x0 e& y8 b
*/( B1 z/ ]1 z. A" l/ V( M8 p; ]
is
, F; e! ]. b6 A4 Y. e& o' Q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% X  E3 w# c; {- Udo
) [8 `# O# W0 D* Y        Lan := rootfolder.Internal.Tools.AOLlanguage;! ^" \# l+ [% H: @* U
        if current = @.Destination -- else return4 B' |' V1 ^0 j9 F3 V# Y* i
        then2 |8 B/ ]0 x. e4 B' N  H" z
                @.Destination := void;+ r3 m( e( y4 H& B8 Z( F6 z
                if @.occupied then
5 Z; f  v* A  M" m: P                        part := @.cont;" r; [: g5 `8 a
                        @.transpOrder := void;$ {; p; d9 F" f# V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! l; O; Q# j7 l2 T+ I1 d                                @,root.eventcontroller.simTime);7 B3 a0 _3 ^# N
                        @.HasOrder := false;# R* U- o5 N  F. \. |& Q1 h
                        @.DrivingHome := true;: |& n4 n( o3 C1 ~) ~
                        rgManager.tryToStartTransOrder;' y8 r! B. y6 q$ [
                        if @.Destination = void
; g$ U/ M4 }. b- n( Q( K6 ^                        then -- no transport order for vehicle @+ t: S, B% o5 d/ E& W4 ^9 a/ I
                                @.Destination :=
: m& }* l2 S. x% w3 b                                rgManager.nearestFreeStation(@,track.~);5 B# d; _! x+ ^# n, a# p0 L
                                newDirection(@);   
6 k3 }1 O0 Z% a/ |" e                                if @.Destination /= void then% x& r1 Z/ @/ ~
                                        @.Destination.NumReservation :=
/ i: k& l& [, I: ~: v6 i                                        @.Destination.NumReservation + 1;5 w  v9 k( i4 ?& w
                                end;
9 s: I+ h# h1 J- [8 p5 U7 u                                @.CurrIcon := "drivingHome";
4 W# C5 L% [  Q/ |; x) K% m                                @.DrivingHome := true;# V! L4 V2 C5 @, w
                        end;
2 n3 t& p9 Y) y& C: r                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& j& Z4 A5 D$ ~" _6 E
                        part := @.transpOrder;
6 q' h9 O8 C. w* v9 E                        part.move(@);-- load part$ I3 P9 i. J5 h$ H$ ]
                        @.CurrIcon := "load";
4 }8 S5 f6 p1 K* d* I                        GlobalDistObj := part.globDestination;
& k, E; m' b2 L$ Z% O" d6 Y                        assignLObj := rgmanager.rgAssignL;
1 I9 P( c2 y$ J6 X1 e, k                        row := assignLObj.getRowNo(GlobalDistObj);
, R4 A# h  f, W                        if Row = -1 then -- since 70
% c" p5 ?6 A3 t: g, v! s, j. D                                if lan=1 then
$ E3 V9 r% F, Y9 o& B6 Z$ d                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. q. O0 n5 ~  I. V0 K
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# p6 s4 V# i6 ^9 g
                                else( H! ^' Q0 l) V
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ I. s9 D* \$ S9 H- n5 R
                                                to_str("in docking station: \"",?.~.name,"\""));                                2 T1 t9 S. k1 M. V% j
                                end;
$ B% r; N" h8 ^& ]9 u/ s                        else5 z% `! ]7 P/ I/ h0 @" b) F
                                @.Destination := assignLObj[1,row];
% S5 G: I' t7 C                        end;                        & ?# e: O1 d1 Z2 J
                        newDirection(@);
9 w$ N; X0 H. ^$ r                        @.HasOrder := true;  I7 x5 L- N9 Z% ]2 ^
                end;
& Z) _' }+ i2 b* o* d        end;( |% R. i9 D! |& t( g* v6 o
end;        -- of the method# e; b7 v6 v5 {1 R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 ?* F$ b! u+ J
3 }2 p# _9 u& H8 k2 f, T/ q( [
这是AGV_putin中arrive的method。
( T+ c4 s: |  B* d3 P. @# l: }0 F
当到达物料速度越高时,这个报警更多,+ {5 k/ h% y2 ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: P6 U' ~0 ?+ \: K; O" V$ A
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 @- E) W! Y/ C( x; J2 l2 T2 M, i6 C9 k3 \$ y& {
另外一个小建议,就是move,所有的move都可以这样
$ \# |3 S3 P* I; gif not move() then debug end
# q3 S# p7 h! S  [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 I" t% i" H8 ]- D+ J8 lplant simulation中的free libraries有AGV模板,% B7 L3 t7 B" n! ^" T: I& K0 l% D9 P
里面也有案例。
0 g& r) k$ p5 l' J' d我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ `% ]0 ~7 U/ M' }' q7 q! }" `
! R, R6 Y0 X. g  q* F! N$ w
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 Q' d. d& A! T5 V1 o5 F/ ^: |9 [  p/ |( }
0 W8 S) \9 I% W3 j5 N8 ]5 `) k* x* }5 A那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 _8 m) x' w' Z; C4 E3 _7 F  M这是AGV_putin中arrive的method。
; w- `- g0 q, y' v
: m6 _( `/ k  _9 M当到达物料速度越高时,这个报警更多,

& s: o# x& c8 O; l7 ^4 D另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-7 20:01 , Processed in 0.020265 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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