设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7738|回复: 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'
6 X+ ^1 r1 j3 E8 v1 p6 r$ C; m8 H* O*/
' d5 X% K' d. ~# Lis5 c% n. r- O: t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! b+ F9 D" x  C. i/ q0 {& U! Ndo
+ A. v: F- U; {: J1 {# M        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ U/ H9 L. R  s  g        if current = @.Destination -- else return
8 K, b9 u; v8 \! o        then
0 I7 S4 d% P+ f6 U- Z, y, x                @.Destination := void;! @& A4 G7 u# |) ?1 W$ X
                if @.occupied then' M$ {/ _; S% d  X5 {/ L5 E8 k. X
                        part := @.cont;
1 A. p' k( v1 n                        @.transpOrder := void;
3 O* W2 w" c: K- [0 w0 p" M# Q8 S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& J) m5 M/ S9 n  l1 |                                @,root.eventcontroller.simTime);
' h' R& R2 K: Z                        @.HasOrder := false;
! z4 G  y- _9 \7 V" D$ r4 V5 E- G                        @.DrivingHome := true;/ U  k2 \" R& i5 }) _
                        rgManager.tryToStartTransOrder;
7 Y9 i) m' ]0 P8 t" X5 ~$ C                        if @.Destination = void5 g) @4 O2 ]  `7 L6 e
                        then -- no transport order for vehicle @
. [3 @. P3 R- V                                @.Destination :=
% R: A, x/ S/ t3 ?2 V5 y3 E                                rgManager.nearestFreeStation(@,track.~);) }7 _2 j3 O3 e9 a$ }! O7 v
                                newDirection(@);   
4 `1 l; C* B: y3 v% Y' L) [                                if @.Destination /= void then" ^6 i* O, W! x& l$ K5 ]/ }+ u
                                        @.Destination.NumReservation :=
3 m4 |7 O4 Z$ ]9 z) ?! o8 i                                        @.Destination.NumReservation + 1;5 W% G) l. U/ F+ z
                                end;% \- h# p4 W8 Z! ?. Z* Z2 a; v% @
                                @.CurrIcon := "drivingHome";
% v' z; q, J. v* ^$ c- `  U' B                                @.DrivingHome := true;* l- K6 m: {% f4 n6 w
                        end;
* o9 Y: L- d1 a+ d! F3 y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& v" f0 E2 x& u, P7 _                        part := @.transpOrder;( Y! O$ _% L% |, k
                        part.move(@);-- load part
! [; ]7 X" ~; F0 l3 Z; V7 Q                        @.CurrIcon := "load";
6 A: w* Y, c# f. b) g                        GlobalDistObj := part.globDestination;0 I3 O! P+ K* K9 \7 J
                        assignLObj := rgmanager.rgAssignL;/ A, g: g6 W/ E4 o5 y$ G5 p
                        row := assignLObj.getRowNo(GlobalDistObj);
; h- u1 V! R7 B9 \6 h- g( n                        if Row = -1 then -- since 702 y; Q7 f! H4 U: d
                                if lan=1 then  I8 o+ ?9 M: a( v& T8 j- w. }  O/ {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 T7 T* U7 c, z9 E( F  D. ~, L% F; \                                                to_str("in der Andockstation: \"",?.~.name,"\""));& d& m+ e: ]/ B" r' t4 S+ s0 E
                                else4 J# a8 U+ \6 T" I  p2 k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# ~& l! l) N* g( N                                                to_str("in docking station: \"",?.~.name,"\""));                                * M0 d8 ~1 t' X4 n. w+ c
                                end;7 L; ?1 W5 K8 E& W7 o6 Z9 ~1 A( F
                        else
( I# G: V) A# \8 k3 [" k: J                                @.Destination := assignLObj[1,row];
' \' r( j  \, x( _' k                        end;                        4 W- h: g$ z$ ?: X! H
                        newDirection(@);
( U! O) ?1 e9 d3 E8 e6 X                        @.HasOrder := true;
8 I/ }. e) l$ v4 C* u                end;+ R/ Y+ W5 c4 g* ]7 G
        end;
! U' ^4 u, M0 I6 V4 ^. i) M. Aend;        -- of the method/ j: T; Q$ d3 m: S, Y) I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % u. l2 K" E; E8 G5 X3 K: D

- H5 o7 x! D1 E' E9 b* F( ]这是AGV_putin中arrive的method。
$ |. m  v7 q' }# X0 i0 F- r
9 {" n+ \1 H8 p' ?& r: k6 u当到达物料速度越高时,这个报警更多,
: j! \2 f  s6 y: |8 i7 C" F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- p  i4 ?0 M7 S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) S- a2 _' b& Q

, Y7 {% q4 ?8 x/ Z1 W- H另外一个小建议,就是move,所有的move都可以这样
; N* F7 P  G: h. f: bif not move() then debug end
8 P5 _+ y7 T6 O0 E1 T* P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) V; x! j7 s9 n0 Q" U$ Xplant simulation中的free libraries有AGV模板,8 c; c) j2 g9 h9 K3 d: R) E( i: Q8 M
里面也有案例。0 Y! I9 f; ^, r$ Y9 `. J1 N) @% y
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" M, W" O- h% h' G

8 v* r1 E4 _$ b3 s( g, D  P. I我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 4 B% |& y3 T+ K3 ^+ U6 i

+ x" |% g, J  \  b7 @那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: `* |7 R' s. e' f3 C3 F这是AGV_putin中arrive的method。
% U! g* G5 [1 s3 ^. U, m) x5 B
5 L' b0 f* T2 J& y) l! H3 G当到达物料速度越高时,这个报警更多,
# u) z0 y1 M" n6 C& t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-26 22:41 , Processed in 0.020758 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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