设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8591|回复: 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'
5 v9 g8 {; m' P( u*/! E' _0 t2 P% w9 B& C! q$ j8 X: D
is
0 [" H* C& P( x0 D3 _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- C7 r; d8 r7 n* g/ \2 x4 ?5 ido
9 ]: \! `1 h& w# @1 E0 O        Lan := rootfolder.Internal.Tools.AOLlanguage;) }+ i7 _* ~  J, E3 |, `1 w, w
        if current = @.Destination -- else return, s) V( E; X& S3 Q
        then
: @7 j8 x5 F8 L5 |0 A                @.Destination := void;1 ^( C- |/ a) \
                if @.occupied then$ ?& h3 G; \' j; C! k8 B2 {
                        part := @.cont;
8 I' H2 E; o! h1 V" J                        @.transpOrder := void;
8 U& v" r& l$ ~4 f) Y9 {                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, p0 r, N- b1 D% ?                                @,root.eventcontroller.simTime);
& Z) H6 D- ?' B1 g4 ~; P$ ~" J                        @.HasOrder := false;( W$ ~3 X+ C. w( z9 B0 L" R
                        @.DrivingHome := true;4 t" l6 L3 r% o* r: v
                        rgManager.tryToStartTransOrder;
+ d& V6 ^- }  H                        if @.Destination = void
  ]% i7 K) g* U                        then -- no transport order for vehicle @
# n+ _# e; n1 [1 g. m                                @.Destination :=
9 _/ ^/ X7 U* G4 H                                rgManager.nearestFreeStation(@,track.~);
! k5 g* a0 F3 O2 i- [- S# X                                newDirection(@);   ; x) G: f: Q& |* W% y, `4 x
                                if @.Destination /= void then- r. C) F* w4 d- J- i: o
                                        @.Destination.NumReservation :=
' w9 _0 X1 k- [' b; @                                        @.Destination.NumReservation + 1;: P% S9 C; ^- D: c: I9 A' _
                                end;
+ b" k9 b5 r2 M3 C8 {7 Q, ?                                @.CurrIcon := "drivingHome";
/ T2 g5 Q% g. u/ }+ B8 X                                @.DrivingHome := true;1 O% l! A- k- G7 X
                        end;
/ t9 J# e1 C! x0 Y/ G% g/ O; c1 v                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! z4 y5 K% K1 C. r3 m% j+ ~" T
                        part := @.transpOrder;3 f1 z' |4 T  v4 ^
                        part.move(@);-- load part
! J( G; k- V/ v8 m                        @.CurrIcon := "load";( ~; j+ _7 q, L# x
                        GlobalDistObj := part.globDestination;
5 R: P/ O7 v6 [$ Q1 r5 @, Q                        assignLObj := rgmanager.rgAssignL;' d5 u( W; m3 A5 @9 l
                        row := assignLObj.getRowNo(GlobalDistObj);
# {% d  ~! I5 u* I& o  l3 }% O                        if Row = -1 then -- since 70
1 e1 p+ D! h" j0 J0 ]- T9 {# a& z$ b. D                                if lan=1 then
0 E( ~  O/ w# n7 s1 o- U; P4 _                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- e3 V: V, _* f) \- w$ Q, ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! m  s+ T! O! v                                else
4 n5 `% }. [' `+ ^+ Q' x3 Q7 m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, r) ^% |1 ~8 ^4 d9 |' p                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 ^. ^, M$ @! g$ O1 O                                end;0 _' j' ]& _% Y: |6 O
                        else9 h* \2 `! \" b7 T) s+ T! _: U1 z
                                @.Destination := assignLObj[1,row];
+ z6 j; V0 v* [+ q, }$ U' Y  Q                        end;                        ) e: G- e: C- [* P( Y) e/ l0 N, I) X
                        newDirection(@);4 b! r" g8 n9 K% h1 w( R
                        @.HasOrder := true;
9 N$ |2 b- ~( E% C                end;& b( V  O3 z1 [! R7 e6 O
        end;
$ ~# Q: ?! E, D/ i/ Fend;        -- of the method
& i) v5 D4 c# `* |( @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 o- ^& X& u$ k) m7 `# Y1 E2 i8 p

1 h$ C; U3 l# c: Q* v这是AGV_putin中arrive的method。5 E7 z6 H" {1 R2 k
  f, ?. ^/ D' ?* N
当到达物料速度越高时,这个报警更多,; g4 ]/ c- S# k) u5 Q0 @( l! c/ K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 M/ g( c3 Y3 y/ j( u+ u程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  _  Y$ O1 O; Y# E
# s6 W0 A% ~- G0 t4 r) {. Q( t& V另外一个小建议,就是move,所有的move都可以这样
( e9 F; ^: V/ Aif not move() then debug end
3 u% t5 Z+ [' B3 J" J& M+ E9 S2 A& `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# D# v9 k+ @. H! K( h: lplant simulation中的free libraries有AGV模板,
  g0 F+ q4 J" Y# T) |里面也有案例。$ H# B. D- z5 r/ C& g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  p' R* Z* t: c4 a) R6 I" f* d
9 S5 A4 Z9 s- L* V$ [4 m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ s: i- O3 a# b- k+ t1 X; s7 J

6 M/ @1 l5 \- M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - ^; P  D+ `6 u( h) O) O
这是AGV_putin中arrive的method。% O5 Y; F6 O/ c  C& c4 f

$ [$ Z  I! Y: V# A# H$ C当到达物料速度越高时,这个报警更多,

: k; L- t3 m- y8 Q. W另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-14 06:20 , Processed in 0.016797 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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