设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7286|回复: 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'
6 O. u8 K" |; V% S4 ^*/
6 G( D8 `+ d" Xis3 `6 W( b, @) i6 d
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) {- I* U' q) P& T3 O# O* bdo6 U3 @; T- @: B$ b* ?& d
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 y5 ~- S  ~9 \8 P1 s; d3 x        if current = @.Destination -- else return
' _* E- V1 X' _        then$ i2 R8 T5 x5 S* \, s
                @.Destination := void;
; D+ E( w5 @8 D                if @.occupied then/ s+ r! k0 L: X  o
                        part := @.cont;
3 p1 l1 [" Q( O5 o: i0 ^                        @.transpOrder := void;( Z; @2 Q. p3 j8 K5 d+ S* }9 f% g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: c- p/ {1 ^& c5 k8 o: z% D' r                                @,root.eventcontroller.simTime);
! q4 P: p& G- U9 W) H                        @.HasOrder := false;$ b, v- S& l+ [( P) @2 v1 w
                        @.DrivingHome := true;
8 i7 Q* O  p. q% [                        rgManager.tryToStartTransOrder;
# q% U# E. R5 f$ E                        if @.Destination = void
& Q3 X- z7 Q& ?- ~' Z                        then -- no transport order for vehicle @
4 G" c6 j% m9 x! H2 o                                @.Destination :=
+ W( L1 {' m, I0 L. p" q                                rgManager.nearestFreeStation(@,track.~);0 Z7 X2 ^( w9 Q: \
                                newDirection(@);   
( B' B3 }) t& O  B0 j                                if @.Destination /= void then
1 F9 b* g& c; R( B. t                                        @.Destination.NumReservation :=
$ w4 j# v) b  P2 Z* r7 S& s                                        @.Destination.NumReservation + 1;/ c  ~, g$ I. }4 l8 Z' o1 d
                                end;
$ A) x- _5 M9 t/ X& i! Y  _                                @.CurrIcon := "drivingHome";
8 H) O) h7 ^2 m" f) T                                @.DrivingHome := true;
: r* w, I( L3 c2 b$ b$ ~. m. x                        end;
: v2 V- K! I9 ?5 v4 {* q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# g/ `5 K6 p& A, @9 T3 s) U# A. Y
                        part := @.transpOrder;
+ r, Y. w( n* o                        part.move(@);-- load part2 y/ x* M' E  P$ d9 y+ Q3 ]
                        @.CurrIcon := "load";3 G* T0 \; _# T& _- w5 n3 n
                        GlobalDistObj := part.globDestination;. T- f! V/ U$ k( j
                        assignLObj := rgmanager.rgAssignL;
: _3 x# C1 c+ N2 s& z4 E. b1 v$ q                        row := assignLObj.getRowNo(GlobalDistObj);
1 _0 H9 P" f0 G- r) O3 v                        if Row = -1 then -- since 70+ F+ T% \0 d" C, W% B
                                if lan=1 then
( @% s4 u; B. f) L; W$ A                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 ^6 O+ K! F5 A" I! p8 o% R  |& @9 ~                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 F# o, V. W& {: }2 a
                                else9 c) P) D: [2 L1 b: J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* k. B" X( Q0 v8 X( L9 J1 q* k: G                                                to_str("in docking station: \"",?.~.name,"\""));                                " I8 \5 m8 Y9 w$ H0 q4 b6 N: t
                                end;- V% N# [; j0 a4 O/ M6 F
                        else/ F  ~( m4 P- w! {
                                @.Destination := assignLObj[1,row];2 i3 @: O; m9 t9 Y) D
                        end;                       
4 T  L% d% Z1 f9 f. t                        newDirection(@);8 d2 s7 R' C. ~! O( r* p# L
                        @.HasOrder := true;
  D7 l& c9 o/ F; W! `4 t3 S                end;
9 x* l  D/ C9 _* ]2 @% P7 W        end;  G( W6 d6 y8 y9 ]# B4 R& H
end;        -- of the method
8 p6 O: e+ t9 L; g  ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, R( K% N. }3 E* m. l1 r9 x
' o4 _) H  d. \+ Q  V5 Z$ q3 t; ~这是AGV_putin中arrive的method。( _: _4 y3 \' a; l4 V  @9 x8 M
3 p# k* c/ d3 o2 R( ~
当到达物料速度越高时,这个报警更多,
& x5 c" p# u# [0 X* ^/ m+ S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! R' W# v0 G9 e0 F! u2 u
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 R# D8 U) x% {0 ~$ I
; u) t. d9 N6 _
另外一个小建议,就是move,所有的move都可以这样% ^8 O+ ^1 j% U4 ~
if not move() then debug end
* i; z8 Q! X* N6 o这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ z5 X( S, w  x, `0 h, O
plant simulation中的free libraries有AGV模板,
7 l' c8 u; S6 K2 @# E" M里面也有案例。
5 Q9 {" P! F, n3 X# J; p2 J' w我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  \- p( X+ b) p* F/ F8 \

# j3 I. W# F* [我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / T$ v' \9 W% x! T* F% o, d( _

8 ^5 F: w$ n3 l. E. u/ ]* a那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / Z1 |, ]/ u: c3 K1 S$ A' |
这是AGV_putin中arrive的method。
( E' ?* p# Y( U+ b5 ^% t; t8 ?; t1 M+ k- h  D
当到达物料速度越高时,这个报警更多,

1 p; C) L# ^9 P  I- ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-1 21:28 , Processed in 0.020335 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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