设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7797|回复: 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'+ Y, G5 ]4 v% ~$ K) D! _6 M: }
*/
7 h8 |  L# M: g. T3 tis
8 C7 H; n) H. h        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ ?/ Q4 h. R1 d0 X8 U8 \' P( odo
9 K/ q4 h* Q* U1 v1 H6 j        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 r3 B# m9 H" n2 A+ w" `; o        if current = @.Destination -- else return! v# v/ C3 p" ]) i
        then$ q. G: y' j4 t. W6 R- Y0 t) ]% x
                @.Destination := void;6 a5 m" N+ y4 V4 T
                if @.occupied then
7 w; U$ _  c! {3 t4 T! k                        part := @.cont;3 y5 ~+ I& C" |
                        @.transpOrder := void;
, [$ C" g! F9 C, p1 H; X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 X; Q6 C8 V1 ~0 ^3 O$ y$ P                                @,root.eventcontroller.simTime);& G8 }$ q7 H- ^- S. ?
                        @.HasOrder := false;) W  e  m- j& v9 k1 m
                        @.DrivingHome := true;/ F% Q4 ^4 J1 v" i
                        rgManager.tryToStartTransOrder;7 x/ ?1 B+ T9 \$ Q% r$ R  j
                        if @.Destination = void
. Y' K  s( a5 t, t$ F; h% V                        then -- no transport order for vehicle @# r% x+ ]/ c& H  f4 n
                                @.Destination :=; t* L) t* a- T" N
                                rgManager.nearestFreeStation(@,track.~);
: o% o  @1 ^* S& a2 m                                newDirection(@);   ) s$ v5 `# L/ e6 ~7 U+ p4 U
                                if @.Destination /= void then* _& }" ~- b5 ]6 k. Q3 h2 R5 c' _
                                        @.Destination.NumReservation :=% ?/ y5 E4 p9 |7 B% d2 ~
                                        @.Destination.NumReservation + 1;# s& U# V# i; b6 A: I+ ?
                                end;3 ~. w8 K$ \  _2 D4 {* d# V
                                @.CurrIcon := "drivingHome";1 Y$ m0 ~8 R5 }8 q
                                @.DrivingHome := true;
3 Z9 J, }2 P. j; J5 P                        end;; |& E- E0 t0 E3 N: {( ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 D0 e! J0 T9 R6 \- @# t                        part := @.transpOrder;
# w. B3 P& s0 t0 [8 @! l/ E                        part.move(@);-- load part
; u$ I6 }" B, |" \( ^, w, \                        @.CurrIcon := "load";
. T/ O7 t/ `, k( s' z: a) K& B4 m7 O                        GlobalDistObj := part.globDestination;
$ h! S' z0 f( ?& a$ F  j/ z                        assignLObj := rgmanager.rgAssignL;
0 ~/ ^6 H) c/ ~                        row := assignLObj.getRowNo(GlobalDistObj);( u5 e2 _6 V) X# l, Y) @2 S, Q
                        if Row = -1 then -- since 70
! s: v9 u0 \* |6 e8 |2 z                                if lan=1 then
! G, v3 @# E  V6 p  X8 W                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( |0 K0 O2 S, z1 O                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 q  d# A& t- U+ S$ b0 e3 l
                                else
# v8 C- D( X" |+ H( G( \                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 O0 M2 T1 J6 C( S; {3 M
                                                to_str("in docking station: \"",?.~.name,"\""));                               
, ]- |8 @0 {* F, `8 z                                end;
7 `& W. @' [+ ?( O3 T9 B: n" y                        else2 A) }- n* t2 x2 Z  _- S+ b/ W( H
                                @.Destination := assignLObj[1,row];: W, ?  s' l% b( o
                        end;                       
0 _  Q# n; |" h  E                        newDirection(@);
: b9 i, R& U' B                        @.HasOrder := true;$ g2 d( w& Y1 ]# v) O' q
                end;9 }0 ~/ M+ l( m8 w! b9 [4 G
        end;
! E, w% L8 o2 j) k' l" I  s2 Kend;        -- of the method! v% z5 g' r2 o3 a; m) k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 f& m4 c. E( l0 @" Q$ w5 k  g- ]4 |+ t2 W* ]
这是AGV_putin中arrive的method。2 n2 ~& I0 j4 y' Z% R

) S1 l6 ?$ U5 f/ o1 T' a当到达物料速度越高时,这个报警更多,
7 Z) h( [: W& Q. Y* @! a3 ^可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 O% O  h! P$ c$ F  G程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& l7 Y: ]0 ~$ T) P. D2 L( L% {* P
' U1 l7 |7 j( [- o; y$ k  U另外一个小建议,就是move,所有的move都可以这样
8 k! _2 W5 V' H- S7 X- Iif not move() then debug end
& m3 Y0 s" l" J' [$ Q; ^这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 N7 R) f+ J& P: ?- rplant simulation中的free libraries有AGV模板,
+ G) T  |0 U7 V$ g; O6 K里面也有案例。
& L' ]) V9 w4 W0 P& @我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! B) P& i$ l: A3 a! ^4 P, Z2 z8 N
2 A! n0 u7 R) d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 S' C: D8 d3 C" E9 o3 B5 H7 q: y, K8 u7 r0 y8 Z- `
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & \7 j$ ^0 z: `5 ?, h% L
这是AGV_putin中arrive的method。3 n1 z4 m. f: Y  f, }
% R9 _0 c9 U0 W' g9 Y
当到达物料速度越高时,这个报警更多,

7 P  K9 J3 x  g' p2 d- F另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-29 16:17 , Processed in 0.016324 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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