设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8451|回复: 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'* t( W! I" k! ~6 \$ n- t$ c2 _
*/
  \" U4 u7 V. H* t- ^3 ^is! R( P& k& k( D8 f
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( r6 I* }( _8 Cdo1 G1 |; i& R& c, I  G
        Lan := rootfolder.Internal.Tools.AOLlanguage;" k3 R* Q. B2 x
        if current = @.Destination -- else return
: S$ G( _& {- C% w7 M! A# }4 F3 Y        then
8 J: c0 S/ H" X! v0 Y! R                @.Destination := void;6 g5 B, D, o. K' }" \
                if @.occupied then
" h  _% w8 x7 F3 w4 y9 c                        part := @.cont;
! ]  \+ _& j' D0 v" M7 e                        @.transpOrder := void;# u$ c5 G; }9 G# x  s6 y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 ~4 Z& F% s% l                                @,root.eventcontroller.simTime);
& [" M  f7 i' T; e0 T' I: c+ }: [                        @.HasOrder := false;7 r- N0 E5 @- S% A" \3 e: w
                        @.DrivingHome := true;7 \3 t, ~1 @" I4 |
                        rgManager.tryToStartTransOrder;. E4 i4 h7 ^: w9 G1 C
                        if @.Destination = void4 M$ Z' k6 z1 s6 b6 U: Y9 P
                        then -- no transport order for vehicle @
7 u4 p% a% Y+ S/ \& Q                                @.Destination :=  x! p6 N* }& D+ M7 [
                                rgManager.nearestFreeStation(@,track.~);
- A( Z3 Q: v3 ~8 G! P, S7 F, Y                                newDirection(@);   2 g) h5 L; I2 _
                                if @.Destination /= void then- ~/ x# r6 a  _
                                        @.Destination.NumReservation :=
2 s( g3 |# D* g# R. K! G4 u* k                                        @.Destination.NumReservation + 1;
$ s0 ^: ~/ w; U                                end;! m- O) c- c! }  _9 p* v
                                @.CurrIcon := "drivingHome";
, N4 L/ s" N$ f$ ^0 l: J0 `- Z                                @.DrivingHome := true;
" W# {7 B% e' A+ q                        end;
( w, T, l' g0 r                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' [* h% c+ h8 ^/ E+ d0 H$ w
                        part := @.transpOrder;
+ ]  h4 I- |  F2 K: |' m                        part.move(@);-- load part
3 B0 i( k% }" a+ ^                        @.CurrIcon := "load";( G/ Q! B1 F5 L: f/ Q
                        GlobalDistObj := part.globDestination;
" y8 D. i1 X, ~# M! {6 G+ j8 z                        assignLObj := rgmanager.rgAssignL;  K  N* B4 f9 y2 g: a) s9 P( T7 B
                        row := assignLObj.getRowNo(GlobalDistObj);9 ?5 T; B' _0 q- n8 T0 V" n  `
                        if Row = -1 then -- since 708 U8 z" e0 W$ S3 u# [9 h+ D$ i
                                if lan=1 then  `+ U- ]% s* w8 R% h' N; Y( e/ [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 i) l) Z4 a( K& p
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# @8 z" q/ u9 D& P5 q; q9 b                                else5 V% d. |( |0 v  B
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," |4 c1 L. K0 r
                                                to_str("in docking station: \"",?.~.name,"\""));                                + c3 A( {# x% p$ v: N& [# @
                                end;$ w' m$ l/ ?( W, N2 e
                        else
" @. d& z2 Y: t0 Z                                @.Destination := assignLObj[1,row];
- q1 p6 d0 G( }3 e+ N2 r) s. g0 Q5 r                        end;                       
, p' Y6 L5 x# [+ i5 }9 ]# W5 u" G                        newDirection(@);: J0 x  s9 r! L: k$ H% P
                        @.HasOrder := true;
0 |- D, A/ V; Y6 h- X" p                end;
' Y6 M6 t; q$ Q8 C5 `& ]        end;
9 F; l0 Q( S" \# u3 L. s# `6 ^, b& Bend;        -- of the method8 ~( N6 d, [5 u7 s* i( B) Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / c- C* e/ `; l6 v& v' `

3 j; c/ b3 J- P* c! Y* _这是AGV_putin中arrive的method。! ~* X7 p" K$ x- R7 w
& W9 w" u' y, r3 u, t
当到达物料速度越高时,这个报警更多,
; h! j9 v0 ~: g% x& ~# k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 G, I7 p( T7 G3 o  f6 X1 B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ V) Y0 O4 w" D! g/ `- _

# ]5 V  u$ q' i0 R& ~/ \另外一个小建议,就是move,所有的move都可以这样
- Y- q! R. [! M% Y* Kif not move() then debug end
8 A  ^* k0 g1 ?6 e这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ L. O' l) p: i# C8 cplant simulation中的free libraries有AGV模板,
, }9 T, ^4 x4 f( Z  o里面也有案例。/ T1 v4 h* e2 m# p+ E: W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& z: J8 e7 t% l/ y

( f& K2 l$ z0 H& P% t我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * g9 O1 u+ Y, Z0 F( k

0 s4 j! i4 x+ s; d4 l5 \那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , u0 F- G* o1 x3 }
这是AGV_putin中arrive的method。  v- I' P! n% s6 t

0 k; S& k$ ^; N) j5 t1 X当到达物料速度越高时,这个报警更多,

7 M8 m! Q4 Z  J! m+ }+ f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-4 18:03 , Processed in 0.019917 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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