设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7204|回复: 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'
& H* Z. z/ V3 m  m4 o( H*/- Q4 I! [7 m# d) b2 Y7 B2 g
is$ @3 Q4 @$ k' e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& t' V) Z/ U) }4 \7 y* s
do
$ S* v. k6 }- B$ F" d' s        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 {# T3 [" X  ?( r6 j        if current = @.Destination -- else return# ]+ S: ]; c; X. i/ u
        then& z; R$ \' [) I
                @.Destination := void;, v/ r) b5 A1 C+ _
                if @.occupied then2 [4 W+ V7 d4 t6 i
                        part := @.cont;
( G: s' v- [! {' D* G; [                        @.transpOrder := void;
2 c4 K% E; C' K) o7 `& d, T8 O' t+ l                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: M( {$ }1 b9 a                                @,root.eventcontroller.simTime);
3 c( n1 a. Q# A' a6 G                        @.HasOrder := false;
5 }4 H% Y5 o) c; ~* A+ h- E                        @.DrivingHome := true;% T: T1 \. E% c# l1 {$ W
                        rgManager.tryToStartTransOrder;' ^6 i8 ^$ b9 d3 z4 p4 o2 q
                        if @.Destination = void
- Z' s! Q+ U  W+ Q+ B0 }  |                        then -- no transport order for vehicle @
% P3 V6 V* e' c* o                                @.Destination :=9 h' g7 l$ k& h  w! K
                                rgManager.nearestFreeStation(@,track.~);# O6 d! w7 Y4 X' X
                                newDirection(@);   6 O! j( X' _" D% r0 n2 t- @; \
                                if @.Destination /= void then% ^. w3 t$ I( ~, Z( V, l% f
                                        @.Destination.NumReservation :=
7 S4 K5 \% E+ ^9 l                                        @.Destination.NumReservation + 1;4 M1 I  B6 Z# z" T) @
                                end;
3 W: ^2 O7 D) p0 l1 F1 I$ q& V                                @.CurrIcon := "drivingHome";2 C7 O( Z6 k; A, ]6 o
                                @.DrivingHome := true;9 {8 x, Y/ L' l* F2 Y( ~! y
                        end;
0 I% L" N& L% i                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 Z5 x" u* \) j/ W" _+ Q
                        part := @.transpOrder;/ K- j# D4 M& k: K5 O; r* f. `
                        part.move(@);-- load part
& C. T9 u" t+ U! D                        @.CurrIcon := "load";
9 b5 \8 p3 y4 l9 L; e                        GlobalDistObj := part.globDestination;
: P. H  \( t; i; V$ J! C$ o( F, H                        assignLObj := rgmanager.rgAssignL;
) f. m, B" F% b( S) _* i' Y                        row := assignLObj.getRowNo(GlobalDistObj);! w+ D( A, o, M' h
                        if Row = -1 then -- since 70
) }9 \# c# ?9 F. w+ P) b* k                                if lan=1 then
3 p9 ^3 [/ j* R& ]3 h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  J7 I  `0 B6 u+ _# O* D( L, S6 W
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% M& b  A( y2 ^8 ]2 ]* M5 H                                else
% F! g, B- y; @' J* P2 K7 [0 w  E* `! ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 |1 i" y+ Q9 W* `                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 H( J, [# t0 r# x                                end;
- ?- Y$ W% F) J3 [7 @$ C                        else' Z7 O6 t: e$ M1 d' q/ Q
                                @.Destination := assignLObj[1,row];. A8 \- _8 a4 l1 Q% n
                        end;                          y% Z0 O3 h& ?" i* Z3 o
                        newDirection(@);' L/ m# f8 b' `' D" |; Y
                        @.HasOrder := true;
- t+ t$ Y- J% X! G% n$ p/ ?                end;1 o) x# W  ?" Q5 N. G
        end;/ o9 d( J5 e* D! A& q
end;        -- of the method: G5 u7 }8 ]: e; r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) d9 I( {2 Q4 ]8 g9 d8 t4 b. j
; g* f9 w7 i! X/ b这是AGV_putin中arrive的method。- M8 W) N7 Q9 \2 t% G
: `6 M- V/ {) q$ ]
当到达物料速度越高时,这个报警更多,8 G6 ~" k' J7 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 x$ j/ V+ z0 E$ X. |; r% u+ n
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' |, P! Z9 q% S: X
. l4 ]: S6 K. B  B% c& p: v9 B另外一个小建议,就是move,所有的move都可以这样
" ]- @- }5 x8 x2 Y7 M" W. ^  W2 ~8 Nif not move() then debug end
; x! |  R* B8 _( U这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# t* u% }0 J( m
plant simulation中的free libraries有AGV模板,3 ^; X; t% M+ J& c
里面也有案例。* o2 A4 y' c8 K1 ~5 g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 ]+ A0 J- }7 W" ]. B" R) e& ^1 H( m2 S& ~9 C  y. Q  x. s) _& Y  H
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 x' r+ ]2 X: ~! o. P
" u. r7 I/ s& D9 J/ B3 m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ @% m0 `  T8 ~2 {7 x' a* {这是AGV_putin中arrive的method。
0 S. i+ p/ r$ ^3 S0 P! P5 e4 @5 Q) N  M) o3 l6 v2 D
当到达物料速度越高时,这个报警更多,

- I* ~, j/ C. Z# ]  c& w$ k另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-26 19:01 , Processed in 0.021217 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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