设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6143|回复: 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'% @2 M; o  v# q/ e3 W, h, G+ i
*/$ I% @* `7 L5 p) E
is
5 V! k4 J- Y4 s# h, o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 v6 ]: L8 Z: bdo( D% }: @* }- r! A$ P
        Lan := rootfolder.Internal.Tools.AOLlanguage;
; s0 X( A# [- t- a, y, Z. `3 N        if current = @.Destination -- else return
# g% C8 |( ]' b% K4 R1 p        then
3 u4 Z7 P# I9 \3 s, X2 N: ]                @.Destination := void;
" E0 {: `% R* N, x                if @.occupied then
; b( l4 o8 O6 E- @                        part := @.cont;
' Y8 j% c" E4 O  S  C                        @.transpOrder := void;
! p* W" ?* y+ Z* r( o                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
; G* r6 w1 X4 q                                @,root.eventcontroller.simTime);
2 \* C; H: h" H& ]  A% c( G5 g                        @.HasOrder := false;3 ^, q1 E  _) O* e8 p
                        @.DrivingHome := true;3 k5 g4 O, Y! I5 d; t. b2 P
                        rgManager.tryToStartTransOrder;
% p' b, @/ b! E9 t% i9 b                        if @.Destination = void/ _, H' {. U& @% x! z
                        then -- no transport order for vehicle @
* F5 L- R9 |# f6 \$ W0 f                                @.Destination :=3 T# G, Q4 C+ n0 X5 `% V' t
                                rgManager.nearestFreeStation(@,track.~);+ j1 G; k2 E7 W
                                newDirection(@);   # B! i+ K8 L7 ^. I, V  _& L5 X
                                if @.Destination /= void then
' b- b* p' F' f2 l$ g4 g& h                                        @.Destination.NumReservation :=
. k) L; U/ z1 s" L; F% a                                        @.Destination.NumReservation + 1;
3 |6 m% T+ g& I, l" W* C5 q                                end;
* z$ {9 U4 G* ?1 `                                @.CurrIcon := "drivingHome";
7 n8 q, K, p1 h                                @.DrivingHome := true;1 S( _! O% _1 k$ A6 d
                        end;
$ J2 N2 f( s7 ~) w                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ D  K% A- r! s7 F
                        part := @.transpOrder;
# [3 Z& u  E2 W0 P2 h                        part.move(@);-- load part. R" t+ _, I1 j
                        @.CurrIcon := "load";1 H5 u+ R5 e- N. N
                        GlobalDistObj := part.globDestination;/ Z' S+ \2 ]0 Q& {' h
                        assignLObj := rgmanager.rgAssignL;
5 D6 H4 z9 T' T$ J% u/ B6 s                        row := assignLObj.getRowNo(GlobalDistObj);
% M3 m, H4 O( g) o$ j                        if Row = -1 then -- since 70* j1 J8 R! w" }) [9 j* z
                                if lan=1 then1 P2 w  `+ j* m2 X3 `
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  t( T; t  e- J  P                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ q0 b9 Z7 S) Y0 m: _4 G% ?4 A
                                else
% p7 E  @% _1 H% I3 b0 s2 D                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% c/ B7 X& c! ^/ [) x' s
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 P# w9 V7 S  l( t- o
                                end;7 K1 `, J* k2 R- T/ r: p9 Y3 ~
                        else3 n  Z9 n- ?5 h1 W' I; X
                                @.Destination := assignLObj[1,row];
* v' {* ~) S4 G1 n- v5 [: J# V4 v                        end;                       
  k0 s% h" V" @, F. F( l                        newDirection(@);3 g" k4 T' |5 K' `6 m. B
                        @.HasOrder := true;" x! j. f' }; E
                end;2 ^1 w, m: y2 ^; j. F0 ]
        end;- @8 |2 v; v3 d. g  @' g( A
end;        -- of the method. @8 R) T2 Y8 x* a+ Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; ~: z* C# i; B. `( \& t0 ?: ^

  Q  u, h* P- _这是AGV_putin中arrive的method。5 k/ b$ n/ |7 L2 P; p: E

: r+ ^& X( M) w0 _' T3 k当到达物料速度越高时,这个报警更多,% g) n8 P) A3 D) _/ }4 Y5 S! c' z% z' q5 i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: I0 [" G( c8 p9 T程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& f; t$ X! V) f& r- f) r. u1 c
' r% r# r6 j/ B( @5 k2 d, z) e/ J
另外一个小建议,就是move,所有的move都可以这样# b$ Q+ z, K* ]
if not move() then debug end
- E. h( y4 E" ~/ \这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. E( e% w+ Z. P- y" g
plant simulation中的free libraries有AGV模板,
' u+ n$ ~4 T) W* _里面也有案例。4 }' J& A# C" e
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# H: s* {8 I. W5 t* `* L
% N2 j8 z" G6 J$ s* s
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ }" w" }# K2 Y6 _

; y6 w$ g% L7 w" E. k/ s& `1 Q; c/ D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . ~* I2 n7 ]$ u0 O) c( m* E& i; T( B
这是AGV_putin中arrive的method。
# D5 r4 Q- |$ `8 I( o. `2 R6 D$ `. M
当到达物料速度越高时,这个报警更多,

; h& h, @* B- j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-21 05:28 , Processed in 0.029389 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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