设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9529|回复: 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'
2 t/ d' W$ q4 o% R*/
- a0 O5 S) {) D: U/ Iis, v) S6 t. m1 t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" v6 |2 g" e& E, wdo
  N/ A8 F1 T2 U+ ]( y4 S        Lan := rootfolder.Internal.Tools.AOLlanguage;: U& C; Q. x# c' a
        if current = @.Destination -- else return; f3 W$ v+ i0 D: L+ }
        then
1 M" T* X2 \+ B                @.Destination := void;1 R9 ?, l  V5 k( t: B% R
                if @.occupied then
& ~# `7 y2 i# J6 d. @4 `" R                        part := @.cont;
6 E8 Y5 ?9 Y/ q+ a                        @.transpOrder := void;
" d7 q' A1 E2 {                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% r! }& p. j4 W! P) }
                                @,root.eventcontroller.simTime);
: _# Z2 X; F, c                        @.HasOrder := false;& U, T0 M$ f4 t: {0 ^- T
                        @.DrivingHome := true;
+ O, b& r+ \6 J4 `3 L" K& f                        rgManager.tryToStartTransOrder;
/ U* t( W# G7 B+ h                        if @.Destination = void! G4 |8 i& w: [' a1 m& w5 B3 d7 g
                        then -- no transport order for vehicle @: q1 x  J1 ~! B. q$ ?) Y
                                @.Destination :=2 [: p1 T. [( R
                                rgManager.nearestFreeStation(@,track.~);! f, {/ f; H1 i) _
                                newDirection(@);   + t  x0 g4 t3 T3 @9 `
                                if @.Destination /= void then
4 u( X5 _. G7 D( R4 X8 U                                        @.Destination.NumReservation :=0 z% B' }7 c& v0 i" o& s+ b
                                        @.Destination.NumReservation + 1;4 [. B2 ?6 J: l
                                end;
; B1 l- H8 H6 O: ]9 x                                @.CurrIcon := "drivingHome";; A; l& C: w9 K% n
                                @.DrivingHome := true;# X0 K  A& t+ W$ c( n! o# u
                        end;& D  `- U+ d/ W1 E* ^& g
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  ~0 J; l) f3 @3 F" }' N5 ~                        part := @.transpOrder;+ A# u4 q7 }( i8 ^
                        part.move(@);-- load part. W/ `: d7 U+ H2 z: v% m, D6 Z/ y# h
                        @.CurrIcon := "load";
: v9 R( ~& B' R% Y& p+ l2 U3 [9 V                        GlobalDistObj := part.globDestination;
; j& c- {; y; V% A  \                        assignLObj := rgmanager.rgAssignL;$ r7 B8 J$ n+ V
                        row := assignLObj.getRowNo(GlobalDistObj);8 P) D- e/ U0 {- _; u
                        if Row = -1 then -- since 70
8 z* E$ X9 L; u! d                                if lan=1 then( a1 M6 a' e$ \
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, K, F: S: x0 W5 g                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& A$ v8 s3 G/ ]' r! D                                else- s, T, s. X: b) R) P; J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 K5 f- K0 e4 s) r
                                                to_str("in docking station: \"",?.~.name,"\""));                               
- Q* G/ O& s& l8 ]                                end;( O# b- C7 J+ H* f& M
                        else
) `0 E# q+ \2 Y- a/ ^                                @.Destination := assignLObj[1,row];
, H8 l3 J4 [' o0 z* q                        end;                       
4 H$ S% P5 l+ F9 n" y9 `; [5 G                        newDirection(@);( e# w  P- Z1 p$ q
                        @.HasOrder := true;
/ }% w7 d/ n3 f                end;
% n1 E. f  L9 ~6 r. c        end;
+ ~+ D! M" x; R- O( i% _end;        -- of the method) Q' \$ g2 f  |+ |1 v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 A5 S" N. ?. n9 B2 ~' r1 `
9 C& g" m& @9 E3 p5 b8 Y: X- J+ L这是AGV_putin中arrive的method。
$ i: G( I( U7 J# }- e! a' U3 p- N
9 x1 E* i  w0 G0 J* [当到达物料速度越高时,这个报警更多,
" M! I3 y6 N( V5 X& q8 R. T' g" b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 Z# y5 V) w8 q4 E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 y" D. ~  I" N% t2 ]
' l4 S+ x2 x1 ?
另外一个小建议,就是move,所有的move都可以这样
0 K: M5 R* w8 T8 a( U; Vif not move() then debug end2 y0 N: \) F% s; i2 e5 Z: K
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 f4 p; U9 Y. U$ C  Xplant simulation中的free libraries有AGV模板,8 f# F  o% S9 y+ E
里面也有案例。+ {7 J# `  \( f8 Z' a
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% [+ t1 m# W  i5 D  A& {
7 Z* U% M' d) D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ c) Y& A2 k: D8 m- ~5 a8 r; ?! Z# W5 K1 D4 J9 G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , q7 S3 R. D: s  S
这是AGV_putin中arrive的method。) ^; f' i  i% W
) ~6 O$ o9 ^! Y: h' r
当到达物料速度越高时,这个报警更多,
; J/ W  U0 _4 t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-6 10:11 , Processed in 0.018590 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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