设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5655|回复: 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'
' m1 f- V! _( k*/
) y% z; m; i9 I; p" Pis  F9 c. C: j3 B8 Q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% ]) }) }. q7 U9 odo
4 b! ~6 j, I0 j: g) f) a0 F. X        Lan := rootfolder.Internal.Tools.AOLlanguage;
( G0 y, F$ h( b8 ]5 q) p        if current = @.Destination -- else return
' d/ \: k1 F1 I6 a2 h4 }0 _# g        then8 M7 M3 Z; y0 B. l+ K
                @.Destination := void;
, m  Z# h6 s, k: N1 x) A                if @.occupied then4 G1 y( Q, e7 V8 u% D4 R1 x
                        part := @.cont;
1 s, B4 ^% v% q# F& \8 n% {3 o                        @.transpOrder := void;
2 q2 o2 X9 a1 t$ h( X2 R4 O$ F, P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 M" ]% @) A; i  r9 n7 E1 d                                @,root.eventcontroller.simTime);
, u) l& G, Y( i; V& A, Y8 K! U8 z                        @.HasOrder := false;
) D5 L' i- v! ]7 s# y                        @.DrivingHome := true;' }+ J( S$ V( G) A: m  N
                        rgManager.tryToStartTransOrder;0 ]0 {) I. x- S/ K
                        if @.Destination = void
! N0 I+ Y1 p! D5 ^                        then -- no transport order for vehicle @
2 _8 Q" k: _% G: s( T; F                                @.Destination :=: T2 S* v) s" K+ ?, c
                                rgManager.nearestFreeStation(@,track.~);
4 c& b" l- x% Z' f2 Z: {, i9 k& V( b                                newDirection(@);   0 x2 c6 u$ Q$ N8 U: s
                                if @.Destination /= void then
+ Y6 i8 y$ J& N( T' M4 \# E, j0 N3 ~  l, I                                        @.Destination.NumReservation :=
' K, H1 M% ?4 T/ H8 v4 r1 O1 p                                        @.Destination.NumReservation + 1;& b: n; k# j5 `$ {
                                end;
6 }" w$ I4 ]# j/ @8 ^7 V                                @.CurrIcon := "drivingHome";
" Y' K0 R$ ]  H7 l/ v                                @.DrivingHome := true;
$ A. h, y" Z0 m# P; X8 u! i! i2 A4 i                        end;6 E7 o) c8 M& b! E! `6 Q, r7 p+ W
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 j; R( B  }; r1 J) b6 \
                        part := @.transpOrder;
2 E: d; @9 X2 N* Y3 p3 B                        part.move(@);-- load part% U+ K% d8 ~% R' P
                        @.CurrIcon := "load";9 @! m( ~, Y8 |9 r' y1 _4 U
                        GlobalDistObj := part.globDestination;
$ T- p" j8 f( h  N0 q4 j$ o                        assignLObj := rgmanager.rgAssignL;
7 l2 j0 u. s+ H3 q+ v  r' z2 g                        row := assignLObj.getRowNo(GlobalDistObj);& t% p3 \( K" F$ x# X1 j! k5 F4 a" g
                        if Row = -1 then -- since 707 W8 o5 [4 A& A6 @( g# E9 r
                                if lan=1 then
1 k$ q8 n& n. d                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, m+ }# q5 L+ }" I                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# W& ~5 u. T5 q7 T4 V( ~                                else
5 _1 q$ s. _3 Z  h+ Y. B. h6 d& E8 m0 H                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 ^( x5 t2 w* L/ d1 s, l9 p
                                                to_str("in docking station: \"",?.~.name,"\""));                                ( O# c! N  m0 m/ G% S( X( Z" j8 ~( X
                                end;
" f. e: F! X3 j! x$ h5 f; u                        else4 ~; Y% Y) {, Q4 e* \# i
                                @.Destination := assignLObj[1,row];3 p! y- O( K8 _* n6 h" f) I1 V$ J8 E
                        end;                       
4 e7 L) o% s/ K& M                        newDirection(@);8 \- ^4 [* c* V8 B4 _+ B( t7 J
                        @.HasOrder := true;
; S" F) D* X' O8 m$ @                end;8 J- b  V  ?5 y. _2 n3 f! B
        end;: g0 q; k. P4 G) F. s6 r
end;        -- of the method
/ B, ?4 }8 |  A  Q% W$ H$ k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & b0 L9 b* L2 R1 A% ^1 a1 P! Y8 v

5 ^7 F& z5 V3 Z" m% o0 _0 n这是AGV_putin中arrive的method。
! p! f; g5 a  L4 |9 ^8 ]: m9 {  j/ G% o& Z3 J4 o$ Y" V- @! Z4 N
当到达物料速度越高时,这个报警更多,
# N! M( I) L+ a可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 Z2 C* ?: `' o, Q2 C
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) @5 N, K+ D0 P4 J6 Z0 [4 z
/ ~2 u0 L1 `" P9 ?5 a' ^另外一个小建议,就是move,所有的move都可以这样" R9 g' W$ d, J. o* S3 K9 u; w0 w0 f) u
if not move() then debug end
& e# z! T- T; D1 O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# C' L3 |; g2 b1 q
plant simulation中的free libraries有AGV模板,* \# V& P' J/ n. z3 k& Q2 Q# M, z" T* T3 s
里面也有案例。
; R' c8 a  ^2 X5 x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 a7 {# I4 L5 z4 i% k
9 j' l3 F! S) c. E  ?我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 Z/ d  ~+ `, c8 X0 _* l: J" Q! I; B- q5 m' O6 ^
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 X! |) x) I% E+ y6 D- v
这是AGV_putin中arrive的method。
% f5 ~) d; q* L  k
3 k6 Q6 R' r" N! m6 B, \当到达物料速度越高时,这个报警更多,

8 a% E7 f" X. c. P另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-11 19:38 , Processed in 0.019893 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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