设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9538|回复: 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'
8 f/ W% |" x9 N*/
3 L& I: b; ~/ d- Y8 Cis
8 Z1 F$ ^4 y8 m5 [* Y: A6 t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" u( k, R% E. P9 V7 Y3 a
do" A  z+ r& f$ r% n- H8 ~3 H
        Lan := rootfolder.Internal.Tools.AOLlanguage;
7 L8 h2 a; B3 a" k        if current = @.Destination -- else return0 d0 K: B( L" g+ i; |0 i0 H- r
        then
3 X* ~+ R6 f, Q, x6 Y                @.Destination := void;
* G" Q& K% b+ s! M' K4 x' E                if @.occupied then
; r3 S5 p& G2 g2 [, [2 }6 ~- B+ _                        part := @.cont;: G7 `: y1 `2 D
                        @.transpOrder := void;
4 h2 U7 Z% w: @3 P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ [4 g( r( w0 t" q" L4 @                                @,root.eventcontroller.simTime);! q9 G% Z' u: q/ Y5 Y  E' v
                        @.HasOrder := false;
) Q/ o& V2 Q9 |8 U5 H: A8 W; V6 K                        @.DrivingHome := true;$ V6 R: v- ]! c* P0 o6 R
                        rgManager.tryToStartTransOrder;
, h( ~. ?9 F0 }) k9 e5 r                        if @.Destination = void# T, O# a1 F' I+ f& B& ]+ I
                        then -- no transport order for vehicle @
# ]. G# I& r1 A9 P* z                                @.Destination :=
$ r9 W! [3 R! o; k$ `' K                                rgManager.nearestFreeStation(@,track.~);" U- |3 C( A! a2 s
                                newDirection(@);   
( A. Y% Z1 Z0 H) d+ W                                if @.Destination /= void then
; }2 E0 R9 b- B, c' I: Z6 @                                        @.Destination.NumReservation :=" T- h; x( E: h  w  R
                                        @.Destination.NumReservation + 1;0 c/ |) s% K3 }% e/ i2 q7 C* W
                                end;
# r- {9 `. H1 k( R                                @.CurrIcon := "drivingHome";
2 e0 a& ~/ \. b' d& F                                @.DrivingHome := true;
  d6 k  J( K0 j- N                        end;8 s3 S6 M. h: b: }: z: A
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) M- b/ p& u$ Z; s8 a                        part := @.transpOrder;5 z" }, J' y$ T- g+ y2 F2 _
                        part.move(@);-- load part
* ^+ v; j  I- c2 A                        @.CurrIcon := "load";, J4 z) R7 ]0 }- ]  y4 U$ g' _/ q
                        GlobalDistObj := part.globDestination;5 i2 Z' u8 o% Q
                        assignLObj := rgmanager.rgAssignL;
( N7 L: m, S2 H5 x( y4 Z                        row := assignLObj.getRowNo(GlobalDistObj);
7 G2 K. a7 a# P4 }+ N7 ?                        if Row = -1 then -- since 70
8 y7 a9 b/ I; J1 k8 F4 O                                if lan=1 then. x5 p8 R7 `( V
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 B  C7 C' |( ^0 A4 O0 F2 ?$ x
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" v5 i" q+ q7 t) [# g8 p- ~6 D- x
                                else2 c  q1 B3 a. O2 S  `$ }
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( P% G& @* X! ^. |* c" a' Q' l                                                to_str("in docking station: \"",?.~.name,"\""));                                ' c% S) ~+ I- _
                                end;
: s2 c+ Y' M* }                        else
: @, i# G/ j, q* J; X) f# x4 M                                @.Destination := assignLObj[1,row];# H$ a0 q" C2 q
                        end;                        : G9 S( Z3 f3 }
                        newDirection(@);
& G, B" C0 R7 @& M. J                        @.HasOrder := true;, U! b; @- K' y
                end;% Z  h4 p% b1 o  ?' n0 z) n
        end;
2 D/ C1 Z: K2 K0 P7 n7 }3 {/ Xend;        -- of the method- \8 \6 v( A; z: f* D7 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 o2 W1 K# f. {4 a  a" Q2 Z

3 O6 o. i; G! {/ c, X; X8 L3 q这是AGV_putin中arrive的method。/ ~# a9 B, J/ a( j
) B# @$ Q, a% E. g# |0 v
当到达物料速度越高时,这个报警更多,1 A5 X7 X% Q8 w1 }5 e; v
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ K0 r! z* z  N$ q5 n. \& [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# |+ r; i; W( R6 w2 [

. D) j6 I- c/ I2 M. q; [另外一个小建议,就是move,所有的move都可以这样. `/ [, ^" d1 L: Z& u$ y) I' r
if not move() then debug end
& T; N% d( [# d( h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& \& p4 ?0 _( F6 s3 A4 wplant simulation中的free libraries有AGV模板,
) z3 J6 Q- ^' a- q6 u# ?里面也有案例。1 T% W  S3 T4 a* G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 P4 e/ Y4 h, o# A

8 [1 d% s% d: Y% Y2 [3 @我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 |; i# `5 H: q
7 V7 z8 D3 h3 x1 V7 K; l) `$ L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + b* {/ x  P) M$ |, u1 i: R
这是AGV_putin中arrive的method。8 w; \, M3 V" b, M  J
/ K$ ^' U! }9 S
当到达物料速度越高时,这个报警更多,

" W. M# q  p  Q+ ~另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-6 17:37 , Processed in 0.015346 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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