设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5497|回复: 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'
& D) e( r, x- Z  m3 j$ \0 U8 }7 b*/. M5 l2 A# Z  J: \- w
is2 G5 E; M/ z9 k# D; ?: c& W. r
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) }  a1 a" ]+ x! H
do
& s% s3 e# I+ ~5 m$ {1 d% [2 D        Lan := rootfolder.Internal.Tools.AOLlanguage;3 n( q- f4 X6 z1 w
        if current = @.Destination -- else return, V% t# H! a8 ?) p* Q
        then$ ^: u" @- Z3 u! o
                @.Destination := void;
/ O( m! j4 {) m- M* `: W                if @.occupied then
% ^7 g. k1 h8 [' O1 }, ~# }9 N                        part := @.cont;
4 e. N, t  H) r6 m) F; Z                        @.transpOrder := void;7 f$ Y, ^! p6 [$ ]8 u- \
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 P7 ?- d. X# W+ @8 P9 p" b9 v$ c                                @,root.eventcontroller.simTime);
2 S! L& c' T) n' w* T( l, {                        @.HasOrder := false;8 `+ n, U) b, c% O
                        @.DrivingHome := true;
6 m5 \+ Z4 U8 X; r3 S: b5 @" B                        rgManager.tryToStartTransOrder;% F7 J+ D1 R$ g$ {: Z9 }' G
                        if @.Destination = void
/ m* X7 e8 p+ `# t" ?2 H4 k                        then -- no transport order for vehicle @* i, v; W2 j1 w( T3 g" A: L8 ?
                                @.Destination :=
9 i' W2 T$ S; D% |) Y                                rgManager.nearestFreeStation(@,track.~);
( E  z6 A. e; Q, E                                newDirection(@);   . h0 c7 D3 i. l8 q) p6 B7 S
                                if @.Destination /= void then/ w" q  c; \9 u. @7 O8 {; J- A/ V
                                        @.Destination.NumReservation :=
0 n; H! i1 w; v5 ~$ k                                        @.Destination.NumReservation + 1;! K, o$ B' [0 I; V# b9 q: G
                                end;
, D5 _: V4 P/ `0 _& V( Z. t                                @.CurrIcon := "drivingHome";
3 ~' L: [9 a' G- G                                @.DrivingHome := true;
/ w& j+ \/ @! y0 U4 @                        end;
% `. W& m. i! e                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  @& y# Q' M) ~/ S: v3 T) |                        part := @.transpOrder;
- ~9 q: [' q* K$ _8 ^                        part.move(@);-- load part7 e5 K2 [5 E% E$ j  v
                        @.CurrIcon := "load";
; M) d8 d7 R) b0 Q                        GlobalDistObj := part.globDestination;
6 Z9 B  F. Y9 v6 C$ M                        assignLObj := rgmanager.rgAssignL;- _/ s6 ?7 s  U' i
                        row := assignLObj.getRowNo(GlobalDistObj);
, ]! n3 {+ e, u8 k( j+ N! j6 i" p                        if Row = -1 then -- since 70" B! Y# e" v/ i
                                if lan=1 then
0 F! a1 I8 H. I- m7 n9 G4 H                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 z5 `( K& L( c4 [# c
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& t& ?/ e8 h* s( a* \
                                else0 Y0 k& V& s/ V* g/ C' C
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- X/ I( j5 ]. S/ O
                                                to_str("in docking station: \"",?.~.name,"\""));                                % s2 s+ T/ _" n
                                end;6 |' M9 `1 Z9 V% m
                        else
3 I2 ]" Q  J& R/ L9 {% o) N                                @.Destination := assignLObj[1,row];
1 K" \% l6 y: h, O! Y% Q! S. l5 V                        end;                        * C) C' L$ ^. K1 f6 k3 O* g
                        newDirection(@);
; y* F' N' P' p                        @.HasOrder := true;
' e- E+ _' D* b9 e8 H" Y                end;& W3 R) O# m8 u! O% {3 e
        end;
6 ^6 [% O% [. @$ iend;        -- of the method
% M* l# ?! X9 A- A3 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ J) x7 \! m8 n* {* I$ \9 h

8 N: B! Q3 t7 x" r; n6 B3 \1 ~这是AGV_putin中arrive的method。; P7 |) m( J7 S/ Y$ z
6 v" a) M# d  I3 a3 f7 ?
当到达物料速度越高时,这个报警更多,
5 c! t/ Z; Q( q1 `+ c可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& ?, h$ P1 O, Q5 u# N8 V/ A! ?程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' x2 O3 j' }* r' ]; C& m! t! H- `# j1 z; {, \
另外一个小建议,就是move,所有的move都可以这样3 q( x$ q, \* A$ `9 f) M' ?
if not move() then debug end
4 X! r5 P! P5 p9 z  x5 T这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 P8 b9 _% y+ C; _
plant simulation中的free libraries有AGV模板,% L: }+ [# n1 E& Q, m4 g
里面也有案例。7 H6 Q& V( Y1 x+ k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ v/ x' g3 g2 g7 _& F4 s3 k5 X8 m9 `; d" r- o/ P9 X+ s4 g
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 S: n5 @; i9 I; a7 S

* D) w0 v  d$ b7 V那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# ^' X5 @! p/ O4 n这是AGV_putin中arrive的method。$ F% W  V: g9 o
/ H/ s  `% ^1 k" x# a! h( g/ o- T2 ^
当到达物料速度越高时,这个报警更多,

" i- |; `# ?) p; `& z2 _$ ?, @另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-28 06:03 , Processed in 0.017431 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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