设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6292|回复: 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 j# w% G& Q, d5 s
*/5 o6 ]# }2 {% C- v8 }
is0 s2 `$ C# r$ J2 w
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; O1 _7 W: \, J& B( P; C( ?* O
do; x- K4 _8 l& W' y- c$ J
        Lan := rootfolder.Internal.Tools.AOLlanguage;- j% j- A- v* p0 U
        if current = @.Destination -- else return
; W+ }1 M4 s* k. V9 R! p  [        then
& |; a! X" ?/ d+ S; t                @.Destination := void;
6 @" G, J# S8 B, I                if @.occupied then
4 K" q6 j3 E  i" u+ H; W5 x                        part := @.cont;
9 w& o6 G9 H2 E0 F. f                        @.transpOrder := void;2 ]! R) `# {# Q2 \+ G: _& z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
- r" F$ o7 B7 ~- z                                @,root.eventcontroller.simTime);
8 H+ g: j4 d5 ~, ?                        @.HasOrder := false;
+ F) D6 ^; _; {" w9 m$ e: _                        @.DrivingHome := true;
, P% ]9 c, {5 R$ v( K+ N                        rgManager.tryToStartTransOrder;% P- M+ P* [$ G! m* z
                        if @.Destination = void
0 l% L$ O3 G9 b: k$ X                        then -- no transport order for vehicle @
! h8 Q" b+ x  y2 c2 v8 O                                @.Destination :=
+ S& O: m/ C/ {0 D* P/ k  N                                rgManager.nearestFreeStation(@,track.~);
  G' N2 d- s0 x; h7 c0 r1 N% O                                newDirection(@);   
/ \% k7 m. x( R7 `2 Z6 B' J# Q1 e, [% K                                if @.Destination /= void then
$ v7 Q! s5 @  F0 V3 S* q4 U7 b/ w                                        @.Destination.NumReservation :=
6 D2 ?  y) p7 Q0 B: L$ A- O/ \3 R                                        @.Destination.NumReservation + 1;- n' `$ k. T3 e' x7 i) ?
                                end;% ]. ^+ Q- }3 e7 Z: Q
                                @.CurrIcon := "drivingHome";
% F/ \, k) p7 k# j                                @.DrivingHome := true;
) l2 f# _  G" e( i                        end;
! g0 j% l3 F2 [/ R                else -- the vehicle @ is empty, both vehicle and part are in the same dock station, R; s/ b5 X9 U7 F$ Q6 {" U( X+ c
                        part := @.transpOrder;' N; K5 Z; h  C5 o! D- f7 \8 x. r
                        part.move(@);-- load part
/ J) T" E, O; m6 P                        @.CurrIcon := "load";
, o- X8 m" }3 m  y& W+ M& x                        GlobalDistObj := part.globDestination;$ }. t+ k. s) ~: p
                        assignLObj := rgmanager.rgAssignL;
. v5 A. [+ `4 f9 e5 M+ F4 D) Z                        row := assignLObj.getRowNo(GlobalDistObj);" ]. [8 T- Y, ^) N+ c# i
                        if Row = -1 then -- since 702 f* Z/ I( \9 l( K# Q# }' m
                                if lan=1 then* J' q% ]8 S9 P- y" H6 r
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 g7 r+ P& _+ w5 G2 [$ z& |  S( L- U                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. W0 y4 t! v$ m, o                                else  ^8 G7 e- u  c1 B5 Q4 u
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  {: S( ^/ C- l! Z
                                                to_str("in docking station: \"",?.~.name,"\""));                                , ?: ~* a8 F6 x8 C8 M
                                end;' h% O$ g7 m% X% Q6 v. E
                        else
6 I# a( Y+ r) b                                @.Destination := assignLObj[1,row];
/ E. D: ]- y0 F7 {4 v$ Y: u                        end;                        - D/ C# {" K6 l
                        newDirection(@);
+ K+ g4 W8 o; P                        @.HasOrder := true;
* f# x6 o0 E; l# i& Z( J8 `                end;/ n- ]- I: R% B: E' n: |- d
        end;
! k6 \* L8 ~4 s5 X) C2 rend;        -- of the method) D! i) I7 u2 k0 o4 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 R1 D  i; h3 }6 L& t& R% d- p4 Z6 e* O. ]% u# d
这是AGV_putin中arrive的method。9 U+ k4 W' |+ F4 J  @* a: ^

; m5 @" N7 j1 b, t/ u7 `当到达物料速度越高时,这个报警更多,! B# O7 i4 {/ ?3 G; \* i1 F- u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 a% v* P$ ~1 G1 p5 O+ [
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, w+ R9 P" H$ N- S. x& y8 j
' R9 t- z* i3 A" q
另外一个小建议,就是move,所有的move都可以这样* t+ p  e$ s$ @/ O, b3 d  R3 y, l
if not move() then debug end+ s* p  f: _0 O  V( W, v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  G& g. b$ ~9 Z$ a
plant simulation中的free libraries有AGV模板," e  h0 B% j9 h( b4 }' K* I
里面也有案例。8 P  E% l& D8 c0 B1 U# f  [. h
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, |/ }' G* {/ ]8 j" L  C! f3 }! z* Q) R# a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 f$ O: }$ K* Z" _; I' Y6 f
9 }6 o5 ?3 P) u# N6 t) E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) G5 |) ^8 H1 w0 S9 b8 A( O0 D这是AGV_putin中arrive的method。
. k+ _) o2 m2 E; f8 ?  ]3 M, k- P+ J( l% ^" k: @8 Q
当到达物料速度越高时,这个报警更多,
) o. I+ n/ X8 V( h7 k0 b6 g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-29 03:13 , Processed in 0.019315 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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