设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8651|回复: 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'
6 m" Y# d  E" n& v( w4 j$ i*/
1 V# \2 I9 D) Q& [0 I8 D. jis" M* B3 a. l. {) X8 L
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 N/ |; N$ T* s$ Y( |do
  E) I) z" P6 n! }2 z        Lan := rootfolder.Internal.Tools.AOLlanguage;
' Q1 ~( x+ D+ k3 x1 o        if current = @.Destination -- else return$ Q: |; S2 z5 h# r2 B9 V4 I9 K
        then8 f. h& s- J2 m/ P- ~8 X  K- a
                @.Destination := void;  B# l( O/ E3 G2 S" ]! K0 u
                if @.occupied then
, n5 C/ X& m% G9 o. D                        part := @.cont;
0 p$ A3 ]4 |+ z) s/ I                        @.transpOrder := void;
% M* [% F9 U  B- S. z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) `7 L9 ~9 H% v7 G5 V% }                                @,root.eventcontroller.simTime);, q! ]8 Y- T  t9 P0 ~
                        @.HasOrder := false;
2 `. ^0 U5 o# d                        @.DrivingHome := true;
* I$ c% ]  H( |8 V: R2 @. }7 X                        rgManager.tryToStartTransOrder;" d6 {2 w. B" D) R1 F5 W" `
                        if @.Destination = void
2 T) ^* G, B$ u# V. ~' X  B# [5 g. q                        then -- no transport order for vehicle @4 T: F2 ]1 J3 J4 {) C) r6 _7 R
                                @.Destination :=
2 ^9 F, G- z6 {/ o) x4 E/ j                                rgManager.nearestFreeStation(@,track.~);
* L) }/ p, A! p, k" f) _7 `% e+ r                                newDirection(@);   / [' V6 `( [6 V# k
                                if @.Destination /= void then
6 t& p/ N/ |) ~/ k- W/ T                                        @.Destination.NumReservation :=
# P* S" W1 r  z; r9 \                                        @.Destination.NumReservation + 1;+ d9 S+ D$ R6 y0 u1 u! |8 g
                                end;% p' F! E) u" t' r; l( O+ F* i
                                @.CurrIcon := "drivingHome";0 V( W/ D2 p9 }. B- z6 D
                                @.DrivingHome := true;' M# A4 e- M1 C8 z/ O! w8 k
                        end;
) P( G0 K7 S1 o! J  r                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 L7 \9 [: _- ~                        part := @.transpOrder;
, t9 Q1 N' E7 Y/ m                        part.move(@);-- load part
3 T& D0 T0 V& e+ {# U2 ^                        @.CurrIcon := "load";
. h3 e/ e+ x- y5 Q  j% f: Y                        GlobalDistObj := part.globDestination;5 d. i& Z; Z( C% w4 B
                        assignLObj := rgmanager.rgAssignL;) P" ~. e' ^9 B6 _
                        row := assignLObj.getRowNo(GlobalDistObj);
! ]: J7 Q: p# D: d                        if Row = -1 then -- since 70
" \& `; m% I2 F9 u                                if lan=1 then
/ Q% \6 D, l1 m# s8 v6 [& @5 y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# n  `( R1 _) s                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 I$ v& ]' z$ i, R! @! B7 M                                else  \; a& N' w5 D4 e6 Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- \) B" T& I" V3 G+ ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                - u, e5 ]# }0 }8 ^( y1 P
                                end;" }  V& j, u' C: U' a8 ^
                        else3 K* }: @" }- y  F4 n/ r( c
                                @.Destination := assignLObj[1,row];$ N# N: a8 C( O. u5 }! N/ l/ @' U
                        end;                       
2 e1 e9 |3 H- T+ P! }                        newDirection(@);
3 x2 \3 P0 S. b9 b. W                        @.HasOrder := true;
# ~: X* H3 F- b' b2 i                end;
1 Q3 g6 `- I3 q6 Z) I) c; N        end;" d6 N9 o: l* t5 u, j9 K) C9 C/ o
end;        -- of the method' v; j& I1 ]" F. @7 X( W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) |5 c, B9 U* u7 ?2 S7 k
) i& l$ _5 s, V' Y# m, ?) ^. E
这是AGV_putin中arrive的method。) o7 N2 |( v8 E  [' Y1 W

; B% t5 a3 \- t0 y, J当到达物料速度越高时,这个报警更多,
- x& P. ^8 M  Z/ z* p可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% }' m: {0 f6 n9 ^) ^程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. O3 @1 d' j; r- V' A
8 h% q+ D. T0 E+ k另外一个小建议,就是move,所有的move都可以这样
8 v: K$ L( q2 C6 Z2 Y% ]/ Fif not move() then debug end) B  A# H, O' B: R4 K4 N6 ?+ \8 C* h) A
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 O' v( O4 V& b! a. |, {* d
plant simulation中的free libraries有AGV模板,& S+ B9 b5 \$ z. U7 x: i$ Z. ]( {; O
里面也有案例。
, O9 v6 |8 c* Z1 x/ c$ n8 z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# m4 K) g1 C$ G- Z3 Q

% g/ w& T6 s' `0 d/ K# m我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 U. w8 b8 ?* U" m' Y  M6 C% s; Q2 Q% [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) K" Y/ A! K; j) v! \% d这是AGV_putin中arrive的method。
; P' A7 U& [$ }: p5 ]& t- h2 m- G+ x8 V" a
当到达物料速度越高时,这个报警更多,

6 e3 p  T; d! |, j% \5 E另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 02:02 , Processed in 0.017770 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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