设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10287|回复: 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'
# p8 D; }$ r8 |- H) m9 A*/" l$ C) K  M* b! G/ q: h  v. d( j
is  p8 V$ R2 E' N3 ]% j2 c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 C* H* Z. o& g* a9 y, P6 fdo  n- x' }3 l( e$ v3 x
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 |* L  T- V7 K; y6 H6 ^! q
        if current = @.Destination -- else return
+ t* E+ `7 s; W2 ]% a        then' z6 ^7 R0 S: g, g
                @.Destination := void;
4 r5 p7 v& f7 @' G& S                if @.occupied then
: B4 v& \- G% ~* h  G1 g                        part := @.cont;
& q2 z/ W( R1 a2 L, z" }! S, [# U                        @.transpOrder := void;) C; c; N* }2 y5 C4 z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; h1 e: |. N9 T+ c
                                @,root.eventcontroller.simTime);: @* I/ f- Q3 J8 @+ w3 k! ~
                        @.HasOrder := false;
7 w# B8 B4 U& H  s                        @.DrivingHome := true;
7 x/ [$ i- M4 V                        rgManager.tryToStartTransOrder;
* J/ H4 _2 h. |+ u                        if @.Destination = void% s+ w, P( Q0 f; V9 g
                        then -- no transport order for vehicle @
! x+ k& F3 ~! e8 U  |) d                                @.Destination :=2 n( Q2 {9 P  D# P) O) \
                                rgManager.nearestFreeStation(@,track.~);
% O: P* l5 `4 V( l                                newDirection(@);   
7 n/ D' c7 p" j- d. c                                if @.Destination /= void then
' x9 W4 v3 D; o8 }0 U                                        @.Destination.NumReservation :=
5 j2 D& ]6 X' L" E7 N! b8 @0 Z                                        @.Destination.NumReservation + 1;5 _+ B1 k1 v7 i8 l" T8 E
                                end;
1 S& ?9 O; G$ m  ~8 C$ A' f                                @.CurrIcon := "drivingHome";
( e! v2 W2 N( `* k/ E% q% y                                @.DrivingHome := true;
- J4 |9 q# |( |  T6 z                        end;/ L6 T/ o" O/ x4 _
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& Y- p9 e8 u' U, N, d2 u
                        part := @.transpOrder;- ]# |( A3 F6 I0 _2 J+ G
                        part.move(@);-- load part
/ q! Y% B. q* A                        @.CurrIcon := "load";6 ?7 Y7 E7 U' c" F) s  @
                        GlobalDistObj := part.globDestination;8 d' s0 o7 {6 z: m
                        assignLObj := rgmanager.rgAssignL;1 X9 M$ a* o- q/ ?. }1 {
                        row := assignLObj.getRowNo(GlobalDistObj);
/ V6 x6 n! H% s! F) _                        if Row = -1 then -- since 70
" k! d) t: Q& d& K  {( I                                if lan=1 then
* i: @* A$ b5 G- |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' w, j6 G; J6 }1 L' c                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ I3 }  |& ]* S: Z4 c6 g5 d6 i: w; y
                                else
4 K$ W9 B* T4 W, |- a& R: Y  S                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 f3 B* r6 I4 e0 @& M
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 q1 ?) }8 C3 i1 p6 I                                end;
5 [; |+ [2 T( D& M                        else
) h- {( ^8 ?  f! w0 [' z" V                                @.Destination := assignLObj[1,row];
8 _) Z8 h$ J; U; I                        end;                        * S8 y5 b3 r: m. M
                        newDirection(@);# c4 ^/ ^# y. i8 [2 u2 d  l
                        @.HasOrder := true;8 ?* B9 S+ C. x. }; Q8 T
                end;
, G" B1 z. y, ?0 n" M- F- V        end;
6 b* Z" |# \0 ?7 {0 eend;        -- of the method
0 J4 O$ @# ]7 I$ c& G! s0 ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( j* w5 t% m1 p: |5 ]: q3 ^5 E. V5 S. _5 i
这是AGV_putin中arrive的method。
$ ?! h) ^3 U6 C) B7 B5 o% O0 M
当到达物料速度越高时,这个报警更多,
4 S2 z. T1 }4 d- m% H1 O% y; B可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! v) g( ]% {" f7 P$ J" s1 {0 C: Y. k
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ P4 X" Q  A$ B$ _) f* d4 G( Y
/ }/ U2 a6 l) A( C另外一个小建议,就是move,所有的move都可以这样
( R8 ^4 N4 c2 d" T- u4 M  Fif not move() then debug end. {$ s4 g& X; l( Y5 L: B2 t
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, m9 j: w& l0 [! i$ yplant simulation中的free libraries有AGV模板,0 S% N/ i% p& e& ?! [5 E3 l7 p
里面也有案例。
: P, U: ^) j) K- I: C我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ Y' h6 \3 A. S8 O/ g* ^
+ s+ M: z: A/ _6 f7 k; w
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * k! d- b/ j" G
. i1 P( F2 s+ d9 T. `- s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % v( D$ c& U" V2 q* f: C+ S
这是AGV_putin中arrive的method。
( o# M+ r4 H+ B6 f1 U1 N6 ~
$ M: c* V; s# m: F  t7 e4 F* R当到达物料速度越高时,这个报警更多,

4 O8 c/ k4 i) R3 |0 e; l% I另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-24 17:04 , Processed in 0.017807 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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