设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5569|回复: 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'
" R% a# n, K- Z& U2 M6 P*/
& l( l$ h2 H5 B* O( F5 Mis: j6 ?& v2 P3 \' @
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ Q8 t6 \3 S$ [do
( L+ i) g9 L8 w/ K9 ]        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 v; `& ^9 ~/ v: G+ a. m        if current = @.Destination -- else return1 j9 k. O; ]0 l
        then
$ C9 x& y% j7 {, [" x                @.Destination := void;
+ o. S6 D# X3 Y, C2 P0 x                if @.occupied then
, n3 g7 E) V2 ^/ _                        part := @.cont;
# ~0 Y3 u* p. c) a7 Q9 u3 }5 V& c                        @.transpOrder := void;
# |" `' }$ x/ n' Z# E                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! Y) o5 p, R3 \- y: T
                                @,root.eventcontroller.simTime);
* I) l" O& S8 D! j4 M9 L                        @.HasOrder := false;% P1 N5 y6 J, [" b, c/ Z- i, N! t5 t7 g
                        @.DrivingHome := true;
8 e, D: |% V7 G2 ^' f5 Y7 \+ s                        rgManager.tryToStartTransOrder;# N0 v/ m% G+ g. X$ {* R4 i
                        if @.Destination = void$ R; q3 q' c. |) L
                        then -- no transport order for vehicle @8 \2 P. E. ?0 e+ U5 X$ @' _
                                @.Destination :=
( l& `7 ]3 a! u9 K7 J8 e: C                                rgManager.nearestFreeStation(@,track.~);
- X. @; t/ L+ U+ F& D! M                                newDirection(@);   : y2 W6 A' M& i3 a1 g$ o, N/ a
                                if @.Destination /= void then8 U1 m, n$ y: c7 N8 A  o
                                        @.Destination.NumReservation :=$ N+ |% f/ w% x: z; \7 c
                                        @.Destination.NumReservation + 1;/ W) f+ B6 S. S1 X- @
                                end;
! {9 M  m7 v+ C. t                                @.CurrIcon := "drivingHome";. N! R# j4 |! ^' W$ n6 k' b
                                @.DrivingHome := true;
2 o$ o3 T' l0 y# L) F0 E! d6 C, E                        end;" @0 S0 d  c5 e5 O& G3 G
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 E/ Y% G1 g; {& K
                        part := @.transpOrder;
* X+ l+ q+ o  }- d                        part.move(@);-- load part: ?; q: T5 [9 A% p
                        @.CurrIcon := "load";
9 q" o$ z. c9 D! h$ p$ n: W' c- Q                        GlobalDistObj := part.globDestination;
9 S% j4 _. d( }' o3 }) Z- d                        assignLObj := rgmanager.rgAssignL;. b) q4 R" A1 r9 n
                        row := assignLObj.getRowNo(GlobalDistObj);
! W" ^" N* v4 [$ I( O2 X6 p                        if Row = -1 then -- since 705 T; t0 F9 c) m
                                if lan=1 then% g8 T- w( D8 l
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: h4 Y8 t: p; r: Q% p/ @. m/ {3 \                                                to_str("in der Andockstation: \"",?.~.name,"\""));" ]9 N9 f' q  w* \
                                else
. t- f8 w" [8 Z& L9 M8 Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 c6 X; G; @/ X# G
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) p% c7 f' Y8 [8 c; A/ U                                end;
, R$ Z1 f6 j3 ~! f8 N. G! z+ G; p                        else
5 `  G( s6 c$ Z0 F7 ?7 t1 T                                @.Destination := assignLObj[1,row];
1 J* C" Z  g' d6 c0 e7 u$ L% g0 b3 |                        end;                        2 Z6 _- f9 z% v  i
                        newDirection(@);
& T* H! i" Y9 X9 S; |( v' u$ f5 s                        @.HasOrder := true;
4 z' B, f4 w0 n                end;
( b+ Z1 x! t; J4 Y: F        end;% Q* B* ^) P; Y) B8 B: y8 Y. ?7 S
end;        -- of the method
! m" x: z- i) [$ S; r& l; r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  }( |3 \9 u8 Z3 j" d
6 R3 t# w4 z% s这是AGV_putin中arrive的method。3 J: Q) ?: m  M% ]* K

( }( l+ Q4 X9 H, I2 l当到达物料速度越高时,这个报警更多,
, C- F9 F# W2 T) J, C4 m可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 d7 }) E) {, h2 j" Q1 Y: d7 e程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 C/ d* J' r( R% Z' [, m! K# Y: _5 l2 n0 k0 Z3 {, p
另外一个小建议,就是move,所有的move都可以这样
6 b$ G( z' R: E: o& \" c- Cif not move() then debug end, j+ \/ |' I- g6 {# v( r1 ]6 g
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 Z6 S5 u7 u/ x) N7 H
plant simulation中的free libraries有AGV模板,( B- y1 @, s. w4 M$ Y$ H9 J. f
里面也有案例。6 G8 t' ^: y, ^2 j  d; `6 a$ h
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ Z& |, s( V2 v" T

  I# E$ q" C# M7 d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 R, H" f* D- @6 y( \6 F1 [3 T

* E! {% m9 p  l8 w! f+ N0 `; e那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & K; K2 e7 {) w0 t! C2 ~4 O+ L
这是AGV_putin中arrive的method。
! }! M5 Y  y# I) |/ [7 L( R) z: |3 }: E
当到达物料速度越高时,这个报警更多,

5 G, d1 P$ e2 B另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-6 12:36 , Processed in 0.024822 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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