设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6799|回复: 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'! A% d: H; e3 q% R9 V8 l6 n
*/5 v3 @( A5 O  ]/ f* T
is7 X7 A% y+ D! C. |) B% Y! H
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 x! `) E' w( s2 Y& `
do
  m, R! R) H# Q( F, d4 K( X: E        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ z5 S" ^8 ~" D        if current = @.Destination -- else return7 z4 |( }& g2 d3 M0 c- ^! d
        then
& U9 `9 ?/ X$ K" R8 J* _3 ^                @.Destination := void;
7 r) o7 [6 ]& I* h) z. P                if @.occupied then& P% N6 `# E5 M( v; \
                        part := @.cont;6 }  s. L0 T% D9 h; V$ H
                        @.transpOrder := void;
. P/ n, r8 d  N/ k5 r$ X1 D  [  i                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ Q: r0 C8 Y6 g3 G                                @,root.eventcontroller.simTime);
3 z1 V; o, y6 p* Z$ F  j                        @.HasOrder := false;
3 s7 ?  M2 L. b, E+ {                        @.DrivingHome := true;6 T7 w$ z2 }1 U- z$ k) @6 v0 o
                        rgManager.tryToStartTransOrder;5 _8 j5 L% Z+ V2 t; Y6 M
                        if @.Destination = void
- L8 P  v+ K" h* g0 n7 P$ z" a) s% Q                        then -- no transport order for vehicle @
. Y" M+ k! u* s$ X, j& d3 b( n9 ^                                @.Destination :=" J$ F  e( W9 `
                                rgManager.nearestFreeStation(@,track.~);
" ]8 Q0 S/ m0 z+ ?) H6 \0 {1 d                                newDirection(@);   
+ e9 Y- R* f: u; P) u4 @. u                                if @.Destination /= void then
" }( V4 e- _) R5 E                                        @.Destination.NumReservation :=
( b0 N+ ]& d! m3 \: T  F                                        @.Destination.NumReservation + 1;
9 r8 A/ c2 j; C& ~                                end;
& S2 G  y/ e* ]3 W; z                                @.CurrIcon := "drivingHome";
( T- o/ K( B" Z- z+ q                                @.DrivingHome := true;
, {" F, f) E; U) A3 c$ N                        end;/ @1 Z2 s$ M) v& g  u# `4 ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& k, F8 C$ W- g4 f5 A
                        part := @.transpOrder;; H# c8 \) z$ K8 w' v3 ~1 I% U1 t
                        part.move(@);-- load part
) ^1 G2 N& {& Z4 z$ L  U  y) p( m                        @.CurrIcon := "load";
$ ]  k' j. i/ q4 O. p                        GlobalDistObj := part.globDestination;/ I' B7 \" k& _5 u! Q; W, w
                        assignLObj := rgmanager.rgAssignL;  P5 c3 H$ \% e8 S
                        row := assignLObj.getRowNo(GlobalDistObj);8 Z, a  Q6 B; ^7 v
                        if Row = -1 then -- since 70
3 H; J  v! B, P5 |! }# o                                if lan=1 then
* _7 |; {4 e# U- Y' Z2 |1 N5 y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 O8 \- j/ y" [                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 y' A! {+ m" n1 ^- ]* d                                else
; e  g7 ^. Z4 @; ^- Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# s' |) m2 [1 ~4 G+ R6 c8 O+ ]                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 X* i) g" I/ q7 h2 S  q7 X                                end;
2 Q0 ^1 T8 C  [- j, }                        else9 Z  H  h* U8 T
                                @.Destination := assignLObj[1,row];
7 Y! Q/ R6 N2 N6 \                        end;                       
* z0 Z( N3 [, ^3 r                        newDirection(@);
. r! C$ u( g6 ^4 F/ r                        @.HasOrder := true;
: G% \. Y& F; i                end;
! i7 Y/ b$ e4 K1 n* f        end;3 W% g8 u. Y8 i+ H& V' Q
end;        -- of the method
0 W$ k' e4 X( |9 E* E% @) m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 J5 @. J, v5 S2 h( d0 E4 W& z

1 W. f  e! U! A+ |, j7 ?, s这是AGV_putin中arrive的method。5 j( J- e% i' b) G4 P

" G4 V- c& e; T当到达物料速度越高时,这个报警更多,' }" e5 K8 H: h- {- y9 [2 I3 y/ ^
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- U. k' p/ P8 O) I程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  \" J/ U8 g  C* J7 a

7 v6 U" l$ R/ g6 c9 K# a另外一个小建议,就是move,所有的move都可以这样% d) `. X% }  L$ v" d2 d* _8 c
if not move() then debug end
  P1 G" c" c' t: t. a" B1 E3 e8 f这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& @' I! h0 ~! w6 ?/ `4 h- T- k
plant simulation中的free libraries有AGV模板,
/ I+ v% |3 t- i. H, u4 H) ^) e4 c里面也有案例。
3 [- Z" \* H9 x; s& ]' y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; [7 a" y' s( L" _; B9 a3 o0 {, W& i/ ]9 f
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# K7 U0 z) ?& \! B' f" B* I- t( P5 ]1 m# _& @3 n" m
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 Q( i% B/ b6 ]1 U
这是AGV_putin中arrive的method。3 B4 w8 ~) B2 [8 ]. m' I

! |. o+ V- ~' \0 o- `当到达物料速度越高时,这个报警更多,
+ T# n& }. `2 m& L/ q' ]  s( n
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-27 09:30 , Processed in 0.021366 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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