设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6620|回复: 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'
/ b. m  f, I" X- e, p*/$ N* G% x: D+ F) y* K) q
is
5 f/ @  |' [, t3 X( U. \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ ]& b" R  r" g' h/ ?do
% b7 v, g$ C' A        Lan := rootfolder.Internal.Tools.AOLlanguage;
# d7 q6 b# U4 m, Z        if current = @.Destination -- else return  Y4 C7 T& W3 F  v: {
        then
' E! @: u( ^  s) G0 L7 O                @.Destination := void;
7 n4 @6 P) @4 R) d% q' O, M- G0 X0 l' H                if @.occupied then' l+ ~" J4 C0 R( F6 |
                        part := @.cont;
( ?: s; t" W/ ^: Z: f6 `0 m                        @.transpOrder := void;- l  g* d: C1 p! T) G) `7 M
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. T7 j4 e9 p# T$ X
                                @,root.eventcontroller.simTime);! C$ y% o1 [8 {- E3 |3 b2 y
                        @.HasOrder := false;: O8 j5 h1 [* |4 Q2 X9 q
                        @.DrivingHome := true;
  N' T: V7 A6 w# N1 P9 A+ I8 a                        rgManager.tryToStartTransOrder;
) A1 s0 S2 s+ b  u- t! s                        if @.Destination = void, {. B% }$ G$ k: [3 u4 i, x& E4 L. a
                        then -- no transport order for vehicle @
2 K8 D3 O, R5 y6 _                                @.Destination :=$ F4 }6 {) D' c* [* I! K5 H; y' i  [
                                rgManager.nearestFreeStation(@,track.~);
3 w( G: \& I: ?- s4 _                                newDirection(@);   
5 A- s" q- {4 t1 x: C- N. ~                                if @.Destination /= void then
  Q* R$ G8 R; U/ D  d! w                                        @.Destination.NumReservation :=
7 }. A3 Z( r% Z8 j6 q: Z  |                                        @.Destination.NumReservation + 1;! P% Y- I- f7 t5 U* [2 B8 q
                                end;8 j$ ?! t2 `3 s9 D" ]! c) |  p; @
                                @.CurrIcon := "drivingHome";5 E& l8 ]+ F. A9 |8 l1 ?' s
                                @.DrivingHome := true;
3 t+ E  L, E+ W                        end;6 n6 S9 D2 i: o
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ W" f5 }4 Z! p2 A- v' p                        part := @.transpOrder;
* L- a$ S; }& J& U8 I                        part.move(@);-- load part- z, b4 Y+ E. _* g
                        @.CurrIcon := "load";& V( f; l- T3 l7 ]8 H
                        GlobalDistObj := part.globDestination;* L! p5 S& i1 J0 y
                        assignLObj := rgmanager.rgAssignL;# {# b+ A1 z; G/ d- x, z1 s  }+ q
                        row := assignLObj.getRowNo(GlobalDistObj);
: ~: ]; p& v, Y- b+ L) U                        if Row = -1 then -- since 70
8 Z! O! i0 z$ x( F                                if lan=1 then4 G( c( e0 p4 r, e) r0 Y4 q
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 |. R$ t! {- Q4 Y* L7 Z                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" C) P  _, m1 S' z1 J                                else' w8 L' W, V; ?; g
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: j2 `) i* ]5 N9 [                                                to_str("in docking station: \"",?.~.name,"\""));                                . y4 K2 A. P+ ?( A  N' d9 B
                                end;$ U3 o: k# x+ _- g
                        else
1 H0 x0 g" x% c                                @.Destination := assignLObj[1,row];
4 p% Y5 Q& }. |5 I0 i; }# p) m# f9 v# |                        end;                        : o+ @% C- m: r
                        newDirection(@);
6 h! P  ?* E2 d! r- a3 l$ q                        @.HasOrder := true;
- n0 T2 _6 x0 Y4 u8 {. T                end;7 K& z& c3 }2 m6 {* {) z
        end;
4 [' `6 W9 U; y, rend;        -- of the method
0 j7 j6 ^( b* s& k  _* O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ `3 O0 M% q6 x) n7 v5 Q( q6 v# U4 `2 _; T1 t
这是AGV_putin中arrive的method。
, j3 S& A. d( X; ~3 |+ g% M
: E- `# p1 T7 o& ^; W3 S6 ?当到达物料速度越高时,这个报警更多,
' }; ]! q+ S0 c; p" e6 V$ U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ d& L/ b- I% _: C, ]3 S3 [2 X: J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% ]* v" l7 o; ^$ d  n
+ I( Y* U' F) U6 ?0 N另外一个小建议,就是move,所有的move都可以这样
$ \5 j; C$ I% N7 r: P3 O' P/ a$ y, Jif not move() then debug end7 a1 a3 w9 f0 w' Q1 m  U
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 t5 K0 m5 L: w3 w/ F4 m7 x
plant simulation中的free libraries有AGV模板,
7 n7 ]3 a) @& I6 z; I里面也有案例。& g! @  s/ N2 i$ O' F( h& A- ?& R) J
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 k* _& V  O( N* |: h1 \  h
; x" a% D5 U* K6 Q! x/ b$ b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( X4 P8 i; ^4 ~( c6 Y" l8 Z- g3 f! ^2 p$ \2 c# p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + e# Q( u8 ^0 c( J  ^
这是AGV_putin中arrive的method。
- D0 J/ z0 A+ s2 e& A  y7 `7 n7 m7 l
当到达物料速度越高时,这个报警更多,

. v: L, l% u, M7 `$ _+ V4 ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-16 18:32 , Processed in 0.015858 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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