设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9182|回复: 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'# D! W! ?# a5 [6 ?! j+ u
*/
- i6 M2 t* m+ q0 zis
7 v9 q# u7 N) W9 J2 G+ c        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 ?5 o/ d+ g! m* e3 A. Gdo
! a# b* [3 u! w9 w3 l1 P1 q        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 I1 r* k$ q" j! a        if current = @.Destination -- else return
! |; G! U, g/ x* j% i" g2 z        then
/ c% @1 z+ b  \5 |5 o% L                @.Destination := void;: C% |4 a2 b: V7 ~  [9 h
                if @.occupied then1 X4 z! K* V7 b8 X
                        part := @.cont;
% U+ Q5 g7 |6 Y$ \- q* `5 s                        @.transpOrder := void;; G1 N$ f% u# ?3 ]" ^. X1 d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ v) W, i9 E5 X9 p5 `
                                @,root.eventcontroller.simTime);
  W9 u7 q9 f+ T( T; ?" [                        @.HasOrder := false;
9 R; O% y& r( C  E                        @.DrivingHome := true;! Y/ K* c  Y" I# O
                        rgManager.tryToStartTransOrder;
3 _+ A* p- E, `! A' B( b8 }9 H                        if @.Destination = void
& ~9 q# P1 v0 _3 D2 x/ R                        then -- no transport order for vehicle @
1 B2 r8 n& J. L& W8 m                                @.Destination :=
  Q& N" l' H" |  E' {8 S; O+ h0 m                                rgManager.nearestFreeStation(@,track.~);  \. u$ b7 P3 h' v7 u2 \4 c
                                newDirection(@);   
" G' r9 d% G) [, D# W1 j" I                                if @.Destination /= void then
8 L( W- k  x0 l6 w                                        @.Destination.NumReservation :=
, T* w/ m- R" [' y- S- b9 t) k                                        @.Destination.NumReservation + 1;
" K5 C" Q, Z" p  f9 e. P- G2 G                                end;. v/ [) j% @- ?" A8 r
                                @.CurrIcon := "drivingHome";* U# h. [" U# V" x) Y! w& i7 d* o
                                @.DrivingHome := true;
$ H( v- x+ Q1 d" ]' ?, W                        end;
6 ]7 N* H. g0 y/ O6 k7 }  R4 q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( h; f9 A# k0 i. H' g3 M4 |                        part := @.transpOrder;% H& q9 y0 f" R. d* q
                        part.move(@);-- load part# Q; O: s% v! O
                        @.CurrIcon := "load";
" W$ ^# i4 j/ L3 t* }3 @                        GlobalDistObj := part.globDestination;
' b, Y5 |/ p) W& n. |                        assignLObj := rgmanager.rgAssignL;% b; A+ `9 g" E/ P( r' D/ g
                        row := assignLObj.getRowNo(GlobalDistObj);6 n, Q. \" t* s
                        if Row = -1 then -- since 700 Z4 t0 h1 y, M5 F" G
                                if lan=1 then/ _9 m0 v8 p0 ^3 y; V
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  A% X3 v9 w9 R9 \, |2 ^: G                                                to_str("in der Andockstation: \"",?.~.name,"\""));) J* S3 I. `) x2 s, |* f( x, e; n! Z
                                else" Y" w% h1 l& [) D6 W& T
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 f6 N2 s/ I, C  a% w
                                                to_str("in docking station: \"",?.~.name,"\""));                               
* z& K# ?+ N9 }& B8 B9 P                                end;6 f9 [/ x* Y  L' I; |$ A" @0 l
                        else
+ h, {" E5 t, j6 c7 ?9 G                                @.Destination := assignLObj[1,row];
8 {2 w# o, U3 e7 F2 o                        end;                       
4 O& F5 G( k: a0 T                        newDirection(@);
' A: u! s/ M. u) }1 L' [" T                        @.HasOrder := true;( a3 B* s2 k; e3 B8 ~
                end;2 m- C" Q, e4 |/ _9 ~
        end;
5 G8 C) [; ^. |7 y; [end;        -- of the method9 X; j6 o8 d6 r* |/ F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 M' n- a7 l* d% Z0 {/ o" b4 l- F7 ^

' Y$ R" y; m0 ^这是AGV_putin中arrive的method。
/ ?3 m. {8 P. W7 \) m3 D1 L; m" h: o: b( d7 B# T8 a" S' D" E" x
当到达物料速度越高时,这个报警更多,
' n. S5 x3 X! G% h" c- _可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! d! ^7 m" a* ?9 s" _程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  f* ~5 X# o$ s" \9 I3 X* r( K7 T
另外一个小建议,就是move,所有的move都可以这样6 J1 |) P7 y3 F! m9 _. {0 A) R2 U3 X
if not move() then debug end
9 v% G6 I6 j8 ]# C4 k; l( e6 w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' o7 H2 k0 a: W0 y5 d/ ]
plant simulation中的free libraries有AGV模板,6 e- t! G% @7 H: ~
里面也有案例。
  t. `* V. L/ `& m- o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 w* B7 s0 S8 W$ ~
. O4 U5 E" j/ }  Y7 h7 \1 _: h0 |我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 K* q$ E% \6 y7 K5 D7 `4 n5 K; f' S" v9 c, M
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, C% p$ d/ Z2 r- y1 N7 |4 Q0 h这是AGV_putin中arrive的method。
, T3 d1 \3 D7 ]( @3 y+ J
0 w( o+ @  ?" T" w当到达物料速度越高时,这个报警更多,
( A, x- x4 P% {! P, Q4 g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-18 09:29 , Processed in 0.015154 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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