设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7648|回复: 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'
4 [; S6 M7 H0 c8 S& Q/ ?* \0 H*/
+ o" o# k! ~; b5 A) yis( Q( u' e( ~# U! e: ^  ^
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! B5 O' o* @* O& W7 X6 R1 [7 O
do
/ `* r: q5 \. y( s) l) U, r        Lan := rootfolder.Internal.Tools.AOLlanguage;7 H9 Z3 }/ P( ?0 K
        if current = @.Destination -- else return! w7 |- t* L4 X. L; I6 K7 W
        then9 ^( M( E: x+ ?
                @.Destination := void;6 a1 i5 b  x% p+ g" n
                if @.occupied then
& b* {) q, X- f9 ~: T1 m2 A                        part := @.cont;
* \4 y1 o; e$ t; x% h; s+ J+ F                        @.transpOrder := void;
' f" n5 C3 b3 D* E3 y" X0 D; [7 l                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" q1 f/ s2 v  c! j                                @,root.eventcontroller.simTime);
) c3 U+ o$ y& X9 M4 b; O2 F                        @.HasOrder := false;9 G& h. I9 z5 U3 U: [2 a$ J% ?) ]
                        @.DrivingHome := true;9 |* a. N6 ~) H. \* A
                        rgManager.tryToStartTransOrder;
0 J* @; Z4 P3 v- Y                        if @.Destination = void# ?9 O7 Q& w" b: Q3 B
                        then -- no transport order for vehicle @& T' z* q1 o7 h+ t6 H- Z- o9 R
                                @.Destination :=
% J/ ^* Z8 r# C9 J                                rgManager.nearestFreeStation(@,track.~);2 |' R+ \' E5 ^! f
                                newDirection(@);   
' a$ L: @+ l9 h% ~* K2 j                                if @.Destination /= void then; R" @+ L5 M1 A" k- o2 ^! `
                                        @.Destination.NumReservation :=7 Q3 A* F/ t2 t
                                        @.Destination.NumReservation + 1;
4 z! {; X9 C+ b! @- ]9 G                                end;
0 l, o! [( I- N2 b0 _' b2 x9 R: o                                @.CurrIcon := "drivingHome";: Z( a- z) M" W' N% U6 Z* z
                                @.DrivingHome := true;' N& n- i9 m' T& @. S
                        end;: T! ~' g; F7 o
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ X7 C+ W# y" |4 A                        part := @.transpOrder;
4 c. _5 N1 ~* T3 H- M9 {% R                        part.move(@);-- load part
* v9 i& {! ]7 b' B0 A! L- s- D, i                        @.CurrIcon := "load";
# n" z3 u5 c: }/ Q. b8 y2 s                        GlobalDistObj := part.globDestination;
1 J! N. p, P1 K& \7 Z" k                        assignLObj := rgmanager.rgAssignL;
5 }; _9 x, V8 ?( T; x$ {                        row := assignLObj.getRowNo(GlobalDistObj);, g6 C9 K, G: Y, i- d
                        if Row = -1 then -- since 70
8 Z8 Z. J) Y7 C1 i+ x$ T) C" \% k                                if lan=1 then
9 r; s! h, {) c$ ]- U4 {; F                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- K) u- F; X4 t# H! H3 z% E
                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 D. Q- t. a# f6 X5 e6 N! \/ d+ t
                                else3 [1 K6 u: f/ O! Q+ M$ X$ X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% {) t4 T, l3 j) {9 b% P                                                to_str("in docking station: \"",?.~.name,"\""));                                  j% \, z; N" Y9 p' e
                                end;
7 p8 X* N7 \8 q                        else
: _; d; ]& n, L, {! ~) g                                @.Destination := assignLObj[1,row];
* t9 M7 g4 T! G( y2 p                        end;                       
6 k: @  {! o" o$ C0 H9 i                        newDirection(@);
5 l  x) q: T' d3 D# Q6 A                        @.HasOrder := true;! U% x4 n) q5 u: }3 I- j. }2 I
                end;
1 k# R! n1 [: I& f! B# k/ g        end;1 a1 t1 p3 \/ M; S' H* n% [
end;        -- of the method6 c8 R4 I' a5 C/ W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* G/ `( J, n1 A3 b: U9 f- C5 w' F5 O0 d6 J, c
这是AGV_putin中arrive的method。
6 }+ y- ^' q% y0 N5 v* c/ q4 E$ H+ O( c5 I5 H1 W& _/ Q& [0 y
当到达物料速度越高时,这个报警更多,
% u5 @2 f$ O8 o可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" B# f" r$ W" b1 i2 i
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! |% ~$ b% w  i) F3 \- @: M' d! Q, L& W6 @" K
另外一个小建议,就是move,所有的move都可以这样
5 j. [- U& M% w4 Zif not move() then debug end" `6 U4 m$ o( H& t6 C6 G
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' l% J- B* E& r( j4 F
plant simulation中的free libraries有AGV模板,. A& g4 a6 }3 Z
里面也有案例。
9 ~5 ^/ c9 M4 y0 C, w$ b# J我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: d& J$ G: e6 b  W2 W7 c% S

) b. b0 M8 A' T& E4 _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; ?6 M' l  d0 f
6 G6 q1 E% R1 ~' D
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% {3 T9 {: Z' O+ v+ @4 \3 x1 T4 @这是AGV_putin中arrive的method。. h0 J6 u3 V" W% H! _4 D* r* a6 y

0 B8 [: ]( D" v& K当到达物料速度越高时,这个报警更多,

- h2 Q- V6 r; l" I1 H, {4 y+ \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-22 06:19 , Processed in 0.015203 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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