设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6958|回复: 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'
, E0 B: N2 n9 l1 L*/
# ~7 d& P5 Y, q! R8 Lis4 R8 ]4 j3 X/ G6 \# \5 c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% d6 X) s: ~$ j- _7 c, H4 Sdo1 T$ P& l' ?$ G5 X" K
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 j9 `# c' A3 I+ P% u; R6 ?        if current = @.Destination -- else return- O: P( M& ~6 N2 q5 R/ z! |& \
        then
. v9 y; j  l2 X% F: k                @.Destination := void;
9 [( ~- W: ^! ~% a$ M2 Q# R                if @.occupied then
- N" Q7 O$ H, I7 @5 b- ?                        part := @.cont;2 R4 e- v+ D0 j  a( _& K
                        @.transpOrder := void;
( B; S; O! F8 S' s7 h                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ M' q) a6 c! l/ J                                @,root.eventcontroller.simTime);) \& V3 m8 q1 b0 Z! b- e
                        @.HasOrder := false;
) j9 l3 i/ q2 p' A& r- c( s6 e                        @.DrivingHome := true;
  r+ t& M$ }6 V9 f2 ^3 k& F1 E& J                        rgManager.tryToStartTransOrder;
% K0 D* ^/ D  y7 D" \" |                        if @.Destination = void6 A# N( f' x! C
                        then -- no transport order for vehicle @
) @* [7 T0 O/ Q) `, e( a( Z# a6 |                                @.Destination :=
! N9 c' z# }* ?0 n% {! ]                                rgManager.nearestFreeStation(@,track.~);
( [( H4 `1 z5 X  Z# P                                newDirection(@);   2 G/ ~. \# m) [/ T0 ?- c
                                if @.Destination /= void then" b/ @( @0 ]* c; Y+ x
                                        @.Destination.NumReservation :=
7 D: D: E4 ^3 {2 N! F! }                                        @.Destination.NumReservation + 1;. v* Y- H. I9 m% ]
                                end;& k/ Z2 I' `) A. O8 `
                                @.CurrIcon := "drivingHome";& s* J- Z+ x* P3 ^* ~) |
                                @.DrivingHome := true;- d0 f6 Y; r: v* x7 d5 O, _0 ~# s8 |
                        end;! S- z" ?/ u7 J+ F3 i( t
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# X+ K- ?) w( T+ ~% n                        part := @.transpOrder;& [8 P8 C6 b5 c+ E1 d3 F
                        part.move(@);-- load part
& ~* Y* J% U9 t0 R- H2 |                        @.CurrIcon := "load";+ ]5 g( l6 p, E# U
                        GlobalDistObj := part.globDestination;
: `/ ~# Q0 |5 n* a) C  e* A                        assignLObj := rgmanager.rgAssignL;, G! M8 m: s" M% {$ a
                        row := assignLObj.getRowNo(GlobalDistObj);
5 y3 V5 e6 o% L) t                        if Row = -1 then -- since 70' P3 L+ N4 i2 F/ q2 X& }  A
                                if lan=1 then" ?* J6 V  s, Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" c: x: o4 y5 l$ r                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ }9 o: U& z0 e/ F8 e( p  I2 F
                                else9 Y$ w; r' s$ {! a4 X& n& q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, n; e# E  _* [( P7 l) R
                                                to_str("in docking station: \"",?.~.name,"\""));                                / G/ U4 ?' e! {, \! U8 E6 p; l
                                end;
8 {/ j1 p1 x" w7 Q) k                        else
% j' I3 }6 |4 J7 |% T                                @.Destination := assignLObj[1,row];$ C2 j% X" o3 Y( l9 c3 _5 d! |
                        end;                        1 ?3 u" M  o3 }  x
                        newDirection(@);
8 b* j8 J: O- M3 [1 y                        @.HasOrder := true;3 L. h1 M8 [& j; J4 n* T3 w" V
                end;; Q% Q5 F% U* K3 k
        end;
$ r' z+ M+ a% z/ Vend;        -- of the method0 J6 Q1 i! g7 d2 h6 ^& |) x. E$ n; B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * M/ y$ C/ m  G- Q- d$ v) l

/ K$ C3 R1 z8 q% U8 f$ j- e这是AGV_putin中arrive的method。% X4 W% c. p* A1 L2 n& y
( A+ \2 n7 B; s5 v3 v
当到达物料速度越高时,这个报警更多,9 m/ m6 g5 f! b+ k) \8 _& x# \) h, t" j
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! b; K" B5 r% a9 N' e程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 |6 `+ ~& }7 L5 h! y8 ~0 t$ X. Z" c/ M% p1 d
另外一个小建议,就是move,所有的move都可以这样
, n" d* n: x5 Z2 jif not move() then debug end
$ y9 @  ~$ V) F- A/ W8 z1 K这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 [& H6 M" g. ~" ]) \1 K( c" iplant simulation中的free libraries有AGV模板,
" j- D$ C6 \5 i里面也有案例。
' [8 k7 p7 o  \# D我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( W; f* z4 c# x% }5 }

$ o7 q4 o. a% ]+ l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 @" e" s9 C, R: C! X- V

% U" e# m2 m; x- F! m! E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 |. b! ~- c6 R2 _  t7 g# m$ S这是AGV_putin中arrive的method。
  \. R8 `# q3 Y' G
  u7 I- E- c, c3 H9 i当到达物料速度越高时,这个报警更多,

6 Y9 e2 J  L4 X( h" e$ p4 M3 Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-8 06:30 , Processed in 0.021020 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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