设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5424|回复: 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'( P% l8 o) Y% B" s
*/5 j, A2 u8 q  R
is0 T4 P/ \- |* _- D& F/ ]% J9 ?! R
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; N5 Z9 `. M: D  L. X% s3 [
do
# ]7 U/ E7 O- f9 Y8 S3 {        Lan := rootfolder.Internal.Tools.AOLlanguage;
( g# C  |( m! j8 `$ U        if current = @.Destination -- else return( \) I) m1 Q( d" G0 I
        then
6 V3 N' r2 T; \! N                @.Destination := void;( D% z# w: m/ d. }) `/ w4 J
                if @.occupied then
3 S2 \" P4 d8 _0 j                        part := @.cont;4 g( b% ?: H' c8 |( n: ]6 G
                        @.transpOrder := void;- p8 U5 S2 T1 {# K' }( u
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; [+ \& T# l3 M5 a' C7 ~1 H5 k
                                @,root.eventcontroller.simTime);. n8 a" L. d3 [; q# t# J; ?$ u, S
                        @.HasOrder := false;/ a) ]- `! Q$ y7 w/ i) f
                        @.DrivingHome := true;* Q; s! q8 {; d& |; A, |
                        rgManager.tryToStartTransOrder;
  i; }  K0 L2 \( @/ l" _                        if @.Destination = void
$ }+ q3 g& U5 O0 U4 q                        then -- no transport order for vehicle @
; ]! x4 h& B" u+ ~# e                                @.Destination :=
: Z4 l0 m# M9 M' O7 X) t, |2 K9 c                                rgManager.nearestFreeStation(@,track.~);. m+ Q7 b, }+ i( }! x
                                newDirection(@);   2 y) ]) }' ]1 I
                                if @.Destination /= void then
8 A# \  R! V2 y8 a$ ?2 B                                        @.Destination.NumReservation :=" G& {6 n1 V0 v0 y" g0 t$ x. s
                                        @.Destination.NumReservation + 1;
+ n& }% M2 U" x/ @                                end;/ e, r% `3 F+ U. A
                                @.CurrIcon := "drivingHome";
5 L, B: s, ?/ f3 I  M                                @.DrivingHome := true;
- O: v; N3 W( z/ W3 Z+ F                        end;
" X1 O2 W. E0 L# ]9 w9 x                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' O2 @7 u/ _- }$ r3 N5 C5 I0 M- ?
                        part := @.transpOrder;
/ v8 I' n8 n6 I4 L, ~2 s) U                        part.move(@);-- load part
1 v' ^$ |' G& M7 B* k2 d- A* \                        @.CurrIcon := "load";$ x" m8 B- l' f8 Q( X
                        GlobalDistObj := part.globDestination;. w3 M0 f9 R2 F; N3 U1 r  w
                        assignLObj := rgmanager.rgAssignL;
, E0 V; m. c( P& A                        row := assignLObj.getRowNo(GlobalDistObj);
& Q8 f6 O) n- h% i5 J0 p7 N                        if Row = -1 then -- since 700 b2 C0 x. j0 Y2 z
                                if lan=1 then
; i/ q: ?" l5 a1 L, a                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: r3 V7 o& U  W- ~: o- o# F                                                to_str("in der Andockstation: \"",?.~.name,"\""));& t6 w# p% r/ N7 w
                                else
; m1 |. U' A( d" j) \) ?0 @                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 m0 _; D& ?* J( Q! P                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 P+ q3 X8 \. f) F6 F0 x3 d) u                                end;! m: G" M9 @, T' e4 G
                        else) v3 z, H, G- ^2 A
                                @.Destination := assignLObj[1,row];
8 C6 w& U# j) V1 F. t                        end;                       
, J) R" Y- x  y1 \/ w6 |                        newDirection(@);
- \2 f; l$ Y7 j: I                        @.HasOrder := true;
* J8 n; C' G1 g) d0 A                end;
+ \; X: V# W( h' a, F, Y, c        end;3 y: ?. g. o% M
end;        -- of the method2 B/ D. h' }& x- v7 ]( B8 l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # T" ~: V+ _1 P$ `0 f
2 z  Z8 t2 \: G4 o" n
这是AGV_putin中arrive的method。' p8 {6 D$ l9 O7 S* l3 Z' D  P

- q' Y9 O% z- l; s当到达物料速度越高时,这个报警更多,
) T* v9 t8 `9 h! f- L可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) k0 o/ z' V7 M6 l% x程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 d# ^1 C) l+ T- A9 I4 f; W. q. b

& v8 n. t' W! p! e1 w/ u& h另外一个小建议,就是move,所有的move都可以这样$ L  t' Y) Q/ [7 L+ y5 G
if not move() then debug end" o( c+ f8 T( d. ?+ x8 y8 m  P- M& W
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# b0 N- z" u- s+ ]) W; R
plant simulation中的free libraries有AGV模板,+ l- Z0 L! b* }
里面也有案例。5 a) U0 R  U8 C+ D& F
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) U4 o# G5 H# a& e2 K2 P' W0 r/ l$ P+ t; p- [
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 4 O9 S2 ?5 p) R9 T) k" V& l! W

( g  n$ Y7 z; J3 c! U) \: N那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - r8 {2 m) g, z8 T$ @. g9 [
这是AGV_putin中arrive的method。# n' O# R: ]1 H3 s2 @
7 i; R& x& ~; r  L- G) j5 \
当到达物料速度越高时,这个报警更多,

2 r! H" }" T0 t/ X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-23 05:36 , Processed in 0.023377 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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