设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6616|回复: 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'9 E3 W& ?% c* K
*/
" z$ L4 B4 E, ^is
4 `) I0 Z- E% K3 X& d8 ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* Q# v+ e# f+ R' h
do
  C% g% \5 h$ |2 I, H' O/ ^        Lan := rootfolder.Internal.Tools.AOLlanguage;. f! ?% |' w3 l* B, T$ K
        if current = @.Destination -- else return( a8 f- Q6 r2 D, [
        then
5 G( M- M4 d( q9 r7 e$ w7 p                @.Destination := void;
" o$ c8 V/ }2 E                if @.occupied then0 c# o$ T; Q* j0 G' q7 H
                        part := @.cont;
+ ]7 p  M- B+ @) G; z& @+ w                        @.transpOrder := void;
. O  g& x* J; k8 [$ g3 @/ ?                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 q3 D. G8 ^! C9 r  y% u. ~" K
                                @,root.eventcontroller.simTime);$ P/ B$ \# f0 J; _# b1 z! ~. L
                        @.HasOrder := false;% F+ N, K+ {/ n: }3 i
                        @.DrivingHome := true;5 }8 X( d" d; @3 ^8 n
                        rgManager.tryToStartTransOrder;) a; v: `2 Q8 c* ^' o0 r1 H$ I
                        if @.Destination = void
7 U+ y6 G  M. x% Y6 V3 I* z: A                        then -- no transport order for vehicle @
$ J( [  f/ k! ^- z, C- n  n7 c                                @.Destination :=
7 ?& l, E( v  z7 m" A* Q! @9 H                                rgManager.nearestFreeStation(@,track.~);6 a: j( {" r! r. d6 s; N
                                newDirection(@);   
0 ^$ ?9 n' w) ^4 p4 _: v                                if @.Destination /= void then' \. g0 ]0 {$ Z6 P
                                        @.Destination.NumReservation :=
$ [( k$ l+ R  P$ V. D* O                                        @.Destination.NumReservation + 1;1 Y+ N# s, ~8 y
                                end;
, {- D# L, j# x                                @.CurrIcon := "drivingHome";
( A6 L7 ~" d8 \( {2 E. P, i                                @.DrivingHome := true;; j. D6 W- G- g/ T6 K
                        end;
6 E& H+ _! o% s                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 N# K: D" |  z- U$ i
                        part := @.transpOrder;
6 T, b2 O- _& W" j0 y* S                        part.move(@);-- load part
! w9 z3 |' {$ R( q  A3 T9 ~                        @.CurrIcon := "load";
% d1 o) T5 W$ x, Y4 t( q! D# v                        GlobalDistObj := part.globDestination;5 E: r8 h% e% Y. R; B/ C5 \$ G
                        assignLObj := rgmanager.rgAssignL;
# _6 w- m2 A1 R$ T                        row := assignLObj.getRowNo(GlobalDistObj);
8 R3 Z3 [! K0 U                        if Row = -1 then -- since 70
, ^! y# G2 d2 |* `9 I                                if lan=1 then1 U2 d/ u+ n/ F( ^* r) p
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ Q, v0 z$ c1 N/ m8 G                                                to_str("in der Andockstation: \"",?.~.name,"\""));+ H# g: K3 M% ]4 ]
                                else) W9 S1 b& \( N. U' N, D5 _& z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# o. f: ?8 t0 q* m7 }/ z                                                to_str("in docking station: \"",?.~.name,"\""));                                0 p& d0 p' L  b8 E/ ^. C
                                end;
1 o0 k, n9 P, l" U                        else
  `7 r  J- K. f5 d$ ^* z                                @.Destination := assignLObj[1,row];
' p  @* @7 c! T) p/ o) n: I' j2 n                        end;                       
5 R+ W7 m7 k- B1 o5 t* I9 k" N                        newDirection(@);
. o3 r( C$ R; o$ e3 |                        @.HasOrder := true;
7 @( V% o0 M. m- v3 K, k                end;! q+ X/ m  M& ]: p
        end;
, y- e& \+ }( R2 Z5 oend;        -- of the method& t9 w6 b& i, I9 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 h+ }& w7 ?& t" P  h. F2 ?6 ^1 |

. u3 [% l9 m8 b+ y  ~' D5 ]这是AGV_putin中arrive的method。! q. u6 y# l: `* _( K
6 b& o& V8 X" v4 P/ R" d. J; @
当到达物料速度越高时,这个报警更多,* O5 W$ U- y5 ^! t1 n
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* c: ~$ r8 U6 z- Q3 `5 x/ [$ y" G
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' G7 R8 D1 N4 j& ~$ E
/ m/ w2 t9 M* }7 D6 d/ N9 E/ J另外一个小建议,就是move,所有的move都可以这样
) d( I9 c$ |1 u) I3 Cif not move() then debug end4 [4 H+ t; p' Q/ p
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; ?5 `: w- g; W
plant simulation中的free libraries有AGV模板,
/ H$ O/ L' E* Z; o2 K3 ~" H里面也有案例。
. Y$ C, v  X+ l- B, t/ g: {$ S我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: h( ?0 t; G% M: i6 S# H' }! K5 \) ?: p) D  X( Q2 R7 ^3 r
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; f8 V. k# B! S4 a6 ]/ S
/ j0 C$ Q; i3 V1 S2 e  ~2 f* t4 I
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) o$ F3 c5 F' s# ^$ y5 `& z  d
这是AGV_putin中arrive的method。) p5 E" e, B+ S" j: q; `
) g0 r0 N% }& y$ X) x
当到达物料速度越高时,这个报警更多,
$ s: ]4 A% |4 u5 e* l
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-16 13:44 , Processed in 1.500709 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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