设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6568|回复: 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'
% }7 |/ }# I) @4 V: b: T& C, ~*/
1 R/ G+ S: O6 u2 pis5 S1 }/ N- p& U% p8 O& m( V" j7 b9 m1 u
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ F9 M+ n* h; V1 m1 kdo8 v3 N7 h1 P1 I
        Lan := rootfolder.Internal.Tools.AOLlanguage;
& }, D% P9 ^: i7 S        if current = @.Destination -- else return2 B8 H$ v8 e. b8 ~: J( r
        then( D) b. }7 X  F
                @.Destination := void;0 q3 ?! n, k3 J; U/ Q# E6 R
                if @.occupied then
! I8 [1 |/ _- l# s+ b                        part := @.cont;
9 t& o) H$ i: @! e0 h                        @.transpOrder := void;" b7 r9 Z  R8 W2 g; k
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ ]  D" H# @" M- \                                @,root.eventcontroller.simTime);
4 g* A( {1 E) v- p% c, m( |                        @.HasOrder := false;) B; S/ E& d& s8 ~
                        @.DrivingHome := true;+ S& E/ G* t4 x, j
                        rgManager.tryToStartTransOrder;
4 U5 h: w( N  \; }2 B  Z                        if @.Destination = void
4 w9 o3 l1 x. t& z: p6 t                        then -- no transport order for vehicle @, w0 d* S& x7 a0 r
                                @.Destination :=% T1 Z7 m# G4 a& \3 S5 i! A
                                rgManager.nearestFreeStation(@,track.~);
& ^; s9 S" ^! T                                newDirection(@);   
. x! G# i5 X7 w% |4 O' d                                if @.Destination /= void then3 h! Z) |7 N2 K6 ?& S. v& \
                                        @.Destination.NumReservation :=
) M& o5 }$ y8 Y& F                                        @.Destination.NumReservation + 1;
) S. u4 z4 o) h3 Q  {                                end;
3 W: ^$ ]8 [1 p0 D" O7 J) X                                @.CurrIcon := "drivingHome";
! ?' }3 B+ u; t6 K& a( p1 I                                @.DrivingHome := true;- ~% M. |% j, n# _* D& [$ D3 E
                        end;
% L$ a; |+ L" J& h$ q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  q' x# Z3 D5 ~1 y' B/ s                        part := @.transpOrder;3 W9 _" Q  Z/ ^/ h) c
                        part.move(@);-- load part
9 U7 B6 W  [' Y5 [% t                        @.CurrIcon := "load";
. Y/ t: X6 g; `6 a' a                        GlobalDistObj := part.globDestination;
$ b' R+ L9 ~; j/ ]9 q; T' N                        assignLObj := rgmanager.rgAssignL;4 n. z. Q9 U' `# c
                        row := assignLObj.getRowNo(GlobalDistObj);  w/ B; U/ B5 v# e
                        if Row = -1 then -- since 70
# G, [% p. Z* }& D$ ~                                if lan=1 then
1 T5 V) \& h* ]# |+ `- z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- \& F: F1 a; \1 f) i) V  m
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& v; I, i, n2 M6 t' O                                else
7 k, ~& q2 u, T( L/ \/ ^5 k+ X                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# C, X$ ]) S* q
                                                to_str("in docking station: \"",?.~.name,"\""));                                ' x( V2 t' d" F1 p% G2 T
                                end;
% Q! c, |3 R/ W0 u7 y                        else# [7 y/ H% q0 s; l2 d
                                @.Destination := assignLObj[1,row];- l- \# M- w6 Z& a& Q$ Q
                        end;                       
9 Q& q4 ]9 ~' G* M3 x                        newDirection(@);
4 c) V- N# x& u                        @.HasOrder := true;7 r- d, ~' e! d1 q
                end;* K) y3 l) R7 Y) t( O( d& ?
        end;7 J3 ?# P- Z! T9 C, H1 w
end;        -- of the method7 A: E2 s+ U+ q$ x* ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 h1 j/ \- N' B. {6 O9 U

/ h0 `; K  k. I! P这是AGV_putin中arrive的method。
) n0 j8 k- E; p& v6 T
% M) s  U4 l6 K  `. X当到达物料速度越高时,这个报警更多,! d7 J$ s: j( d- A" k+ `( K0 |
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, H8 M+ J3 t* d( j6 k1 ?* X! Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. h4 k0 s( o0 G
' }# E: J, x( Q6 s0 t
另外一个小建议,就是move,所有的move都可以这样0 p9 j& L) m) Q& k' R9 i) O6 ?) y" S
if not move() then debug end
6 k: z& n+ z+ |7 b6 L  i6 a这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' O; |9 d* n/ z, ^7 N  b1 _plant simulation中的free libraries有AGV模板,
5 Q; H  y: i6 K+ I) V3 v里面也有案例。( [9 X7 m6 c) C
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; u9 K0 W: ~; s3 q" o4 z! }- p- d7 w" Q
# s- E+ M/ _  b! Z9 e& v/ U: b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ G# l0 m. E& N' a5 `

+ P% @) K: k6 ^, q7 }2 `; X/ [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 `, _  z" E$ n& {% _. a: {这是AGV_putin中arrive的method。
" N9 k9 x- j% _! ?3 V7 h0 Y4 Q9 D/ u( h8 {# X) k( {  o
当到达物料速度越高时,这个报警更多,

) E+ {/ r  ]+ ]: v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-13 09:18 , Processed in 0.022873 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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