设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6532|回复: 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'- W% Y: e' A' q# u$ E5 m) t
*/
  z" W2 g  a) X" his9 R' I2 j* h: M/ }
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# R: Z) P! }; r, xdo
6 i9 Y  L# ?0 r& g2 r        Lan := rootfolder.Internal.Tools.AOLlanguage;( ]5 V8 P0 ]( a; L) Q' _9 z
        if current = @.Destination -- else return
# j3 a  N% t- z* E        then
( t1 }& i/ q5 _. r                @.Destination := void;
7 D- S, }2 Q% R( |, X                if @.occupied then
" @/ n# r! L: A. B( Q                        part := @.cont;
9 |" ?# W: ]+ ]4 Y  t6 T                        @.transpOrder := void;. ?) l9 g2 D$ @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' f$ O& }! I7 A' _4 H                                @,root.eventcontroller.simTime);
( z, L2 y1 I% J- [. [0 |                        @.HasOrder := false;3 P; d: J" l& w! F  j8 R* V2 C
                        @.DrivingHome := true;$ p4 |) w5 U' P+ C% a9 ~
                        rgManager.tryToStartTransOrder;
% n: |2 y% `" W2 v, h2 T                        if @.Destination = void1 a& R/ Y7 ^* N' W" }1 v3 c6 m
                        then -- no transport order for vehicle @
  W( x6 s8 }% g+ r. W% Z9 b9 {& e                                @.Destination :=
- }4 H; c7 G# Q" i2 F2 t                                rgManager.nearestFreeStation(@,track.~);- X4 |9 C% H% ]6 ?& t" B+ j( O
                                newDirection(@);   0 k! H% l8 |+ k. E! }% d, p, v' S
                                if @.Destination /= void then
7 w/ Y. u/ m" s, p+ |/ c! |                                        @.Destination.NumReservation :=/ f: @7 J- r. H, R- a
                                        @.Destination.NumReservation + 1;
$ r/ d# ?) T0 b1 R! ], Y                                end;
+ |: h3 I8 E# c: M, t                                @.CurrIcon := "drivingHome";
; X) b- N0 @3 G8 @                                @.DrivingHome := true;& a# H! t$ M3 n) V8 z
                        end;1 x* h0 D! z/ M$ |! H3 M
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ F4 e& t. M2 D/ ^
                        part := @.transpOrder;5 c. m& ~; {9 V: ^+ w1 v; Q1 s
                        part.move(@);-- load part
7 v  M6 e4 m5 r1 G1 J" G) A                        @.CurrIcon := "load";
: W- c1 c- ?8 K: j  s: ], ]                        GlobalDistObj := part.globDestination;& t' n3 h5 R/ Q6 _  M
                        assignLObj := rgmanager.rgAssignL;  }2 X4 u( H6 s& A
                        row := assignLObj.getRowNo(GlobalDistObj);
+ z  n+ R( ^" }! q1 P& K3 U                        if Row = -1 then -- since 70
* v/ v/ l3 d& Z. b) ^( Z1 h# A/ G                                if lan=1 then
  Y/ ?6 A# ~8 }: u# O5 {                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 d( G% E% |. [& |& T8 o+ G& \                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ {' S+ K( ]0 n4 |/ u3 @# _
                                else: Z+ p. Z+ C8 M' r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  \, w: |4 {6 i                                                to_str("in docking station: \"",?.~.name,"\""));                               
  f1 U6 M# _9 ~( ~: X! i                                end;. h6 q6 J# q4 m3 V/ m7 Z0 g0 g
                        else3 F' J  S0 B1 {& r
                                @.Destination := assignLObj[1,row];
8 T. q! c2 f! h# W3 u( Z5 [$ k                        end;                          |. x" h9 Z6 T, A$ M" i6 U$ G& o  f/ A
                        newDirection(@);
( l7 `7 z" A9 O! v6 D                        @.HasOrder := true;8 k2 b8 {0 N3 x/ R1 a- ^
                end;
* X  t. _1 P( j* w3 J" k        end;0 w7 {. o, [; w3 U1 c/ ^, b
end;        -- of the method2 F" B# W; a9 H' Z& f3 j# s3 z* `2 Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; K% \3 m7 {# O: p( Z4 x- n* i9 \4 l: r' d+ Y4 v% b  T2 Z
这是AGV_putin中arrive的method。
. s0 ~+ o5 S) o4 I3 \$ {" ^7 P( A' w/ Z
当到达物料速度越高时,这个报警更多,
9 K' H3 l* u; q+ X9 s# A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ ]' w  O4 O! m$ d. T程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 T) t) a. g3 j9 ]- Z) f' j
7 M; Q* i* X8 d! F% k
另外一个小建议,就是move,所有的move都可以这样
' `6 S. Y) y( ^. \/ w  h, P8 a3 U7 Iif not move() then debug end+ p0 [3 Q8 w& @1 o7 v# l
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# ~' l9 O( E' K  {- Vplant simulation中的free libraries有AGV模板,' C) r; J* |+ ]2 }
里面也有案例。
" }$ j4 r8 r# D4 [: r( G+ z- {我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 T  k9 G" o* @  W
3 U0 O- l7 s  v' {# n6 u$ [
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ A" }: s" |, z% @2 J! T$ U

, D8 w) q6 W. [% m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 Y& Z' \- \+ t* G' Q* L$ N这是AGV_putin中arrive的method。
5 B6 q# R7 ?9 Q2 h% n$ m: i3 C, g* z6 ^. _: J; @6 R
当到达物料速度越高时,这个报警更多,
; v# e3 k8 B) \/ `$ w6 h
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-11 09:48 , Processed in 0.017715 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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