设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9369|回复: 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': f6 [3 x, x8 t1 |4 y7 ~
*/4 T1 u6 i9 j2 F2 k' o  O. k
is
% X0 F5 E" _- A/ N, G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 ?; N# _  Y! H* q9 e) [" ido. ^; m4 ]; a. ~( ~
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 V) o) ?. k9 _3 |
        if current = @.Destination -- else return& S% ]4 y) E* i9 B$ o( C, a
        then; N8 E$ U2 l; p. i% k7 D* X
                @.Destination := void;
0 a  A7 F8 f6 f9 p' G4 H, h( \                if @.occupied then8 c% g+ ]0 _7 D
                        part := @.cont;
- o. ]; D' ]4 U6 s  ~  o                        @.transpOrder := void;: n+ b, \+ V) }9 f! z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 g8 s, @, L" d$ ]3 G5 o; @) X                                @,root.eventcontroller.simTime);
. F6 b  u9 b6 [- a1 _2 V, R                        @.HasOrder := false;
0 z2 i$ o2 n- q  c4 b, G; a% }' g                        @.DrivingHome := true;
: ^& S4 d3 m8 y" r1 G1 I# m9 g8 ?+ Q                        rgManager.tryToStartTransOrder;' i4 {+ x1 y# j
                        if @.Destination = void
# k; ~; r5 b" }  F+ F: g. {4 @                        then -- no transport order for vehicle @
  C+ B3 o7 U* j" F3 }1 s) y$ B% S  h                                @.Destination :=
$ _/ Z* A+ Q1 ]& `( P) A8 h! O  Z                                rgManager.nearestFreeStation(@,track.~);
+ R( P2 \* S0 M0 s$ j9 m/ j+ v                                newDirection(@);   & T8 ^: |% u" J# L
                                if @.Destination /= void then
6 G/ ~; B  f6 X2 z; K) D& `6 P. d                                        @.Destination.NumReservation :=2 c, U+ r8 L9 q! R/ r! Q: T/ Q
                                        @.Destination.NumReservation + 1;* w( h/ v0 }' h  I
                                end;4 Z- p$ E+ |# v" R
                                @.CurrIcon := "drivingHome";$ g8 B# v. ~8 @" o  F5 S9 X& a
                                @.DrivingHome := true;
- n! \! i+ x8 ~0 a. k: Z" o                        end;' M' B1 ?1 @6 I3 D% |# k! x& M2 ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: f% b4 q; j9 h- J, r7 I* K
                        part := @.transpOrder;! l2 O, N) `/ h/ h
                        part.move(@);-- load part
$ ?+ B( X; u) S+ s                        @.CurrIcon := "load";% n# a' d, A% _6 \3 Z
                        GlobalDistObj := part.globDestination;
% M- c0 a6 i( F6 H, i; m                        assignLObj := rgmanager.rgAssignL;
( g% O( \* E7 X, p2 E% D7 P; k                        row := assignLObj.getRowNo(GlobalDistObj);: h) m, R" `: l, P
                        if Row = -1 then -- since 70
+ K$ g% o: f9 i2 _& a                                if lan=1 then4 I8 V( Q$ m8 v) B, v& j) \! y$ V
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 B1 J: d. ?8 b" i$ w; b$ @$ D. y                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 S( z* ^. ]) |$ Y, w* W
                                else
( q4 t5 E0 a0 {9 [2 ?; Q+ d; Z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 q8 i+ b& C) O. [- Y                                                to_str("in docking station: \"",?.~.name,"\""));                               
! y* u& S( m7 K! z+ V$ m                                end;
, P! N9 U9 m' Q- F                        else8 u+ s  J4 F9 X2 p, O8 H0 W
                                @.Destination := assignLObj[1,row];7 _4 c' l* C/ f0 E0 K% P! G
                        end;                       
" i+ V* C( Y, a$ y* l- d7 N% y                        newDirection(@);
( O; L' W+ c- F6 |" ?                        @.HasOrder := true;
4 A' A% G+ T& V. \% u$ @" B                end;
# e8 `. _6 f$ H) ~" h        end;
# O. |$ M3 w" D3 d+ P& m$ [& Zend;        -- of the method5 G* ~: d* m* j; e2 d. b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" z' q' A- c" a$ j. s8 ?' E5 E
, J: o) v+ a) \' H  e: K这是AGV_putin中arrive的method。
) j. x! F/ @( q2 O, E! w1 }& t* W5 z6 t, |  N5 c
当到达物料速度越高时,这个报警更多,
5 ~. x0 u1 M3 u1 ^+ x3 I可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; e. u+ ~) s: e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 e5 I( j0 \6 e% r) J/ e2 W9 h1 Y* R1 Y6 }
另外一个小建议,就是move,所有的move都可以这样
. A9 s& `9 b2 L  b( r5 X6 Bif not move() then debug end& ]3 j% k7 \) H) z) W
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" e  y: t* c  q! X' _5 D. oplant simulation中的free libraries有AGV模板,  u. q0 z8 |* z2 r2 n$ N( X
里面也有案例。0 A1 G) \, W( [/ v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 R4 V1 n1 m2 G1 r) c

( w+ Q$ r% P3 W# \0 Z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . J+ T% a4 \; T- m- C& Y

* N* `7 [, P# l. {* K2 E" z6 k9 n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& u0 S# g; k0 j, T, |% s+ Z' W$ }4 u8 V这是AGV_putin中arrive的method。
9 H; g4 w6 e  |, c& Z! ]5 {: j
+ {5 S' c4 s3 ]" a* |当到达物料速度越高时,这个报警更多,

+ {( ~' o( h! q9 C另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-28 09:07 , Processed in 0.015440 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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