设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8374|回复: 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'
1 S) a& W& b7 F- Q7 O- r9 B+ i*// H: i$ l) h# n0 Q9 x2 r+ N
is! e+ \2 z3 k- `! y4 Q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ ]4 K& j' ]1 d5 X. o. Bdo
  f2 p! S& a4 q2 v        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ I# @# E% ^7 y1 ^        if current = @.Destination -- else return
' W) w6 S( G# ~, L& o1 Q        then
3 m1 c. u+ [! K  D, v: f) X, \                @.Destination := void;1 R, {. x; N! t! t; v4 l9 B7 R1 ^% Z
                if @.occupied then
' g9 z% p6 c: F; F8 I% T, D                        part := @.cont;0 @! E1 ?8 m5 ~5 p" P/ J2 c* W
                        @.transpOrder := void;1 Y; z) j; x: N
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  f5 c6 v/ N4 `% Y2 j* I
                                @,root.eventcontroller.simTime);
" g  x. M" j; ^/ O8 K- ~* D                        @.HasOrder := false;$ o; M- E  s$ F6 P1 k: g
                        @.DrivingHome := true;; H+ z8 t! B/ k, S8 J
                        rgManager.tryToStartTransOrder;
# G, G8 \7 K2 ^' j' r                        if @.Destination = void
  g6 B  w3 ]) _7 B/ A/ n                        then -- no transport order for vehicle @& b7 x+ g/ ~: V: U3 ?8 w; D
                                @.Destination :=" P% \3 f. H& u; v1 N% Z/ H# H+ D
                                rgManager.nearestFreeStation(@,track.~);
& _/ Q: t7 z7 r, B) |- n1 c                                newDirection(@);   
& D6 ]2 X; j! B$ D$ H                                if @.Destination /= void then- c" n( ~0 A8 T' r8 R- [9 [
                                        @.Destination.NumReservation :=* j7 i: {# y! V* a. m
                                        @.Destination.NumReservation + 1;; N5 D* m8 F, ]/ R* ]+ q
                                end;
9 L/ E/ [+ v- _9 A! {# Z                                @.CurrIcon := "drivingHome";9 b2 t) h: \+ M4 G; ]1 @# a# N! p
                                @.DrivingHome := true;
# a* S& ]+ r5 T% S                        end;$ F9 W1 i+ n! p9 [5 C) {+ ?* k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  x5 u" }* u9 A4 p8 `% V
                        part := @.transpOrder;
: V% f( F: ^+ I, O7 E2 x& ?2 T                        part.move(@);-- load part
2 M1 [1 E; H$ D3 }$ N                        @.CurrIcon := "load";0 l1 |! ~# ?: x3 K, e1 v* M
                        GlobalDistObj := part.globDestination;
. h$ X2 M  P+ R4 f8 K0 c  H% K                        assignLObj := rgmanager.rgAssignL;3 U9 c5 b3 f$ W/ }* G2 _
                        row := assignLObj.getRowNo(GlobalDistObj);) g6 ]# c, v/ \  J
                        if Row = -1 then -- since 70* {& ~( a  H4 }2 O1 W1 G
                                if lan=1 then
0 P. E2 ]" f% L3 ]" R* @% \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) T( V! \) W5 H4 S1 K+ w1 o5 N                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 k6 v! k+ @4 j5 F7 {2 N5 V$ P" D                                else8 k) B7 a: s/ c3 h5 D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ S6 X; \- `# x; [6 p2 A
                                                to_str("in docking station: \"",?.~.name,"\""));                                * V! I. z  V- ?$ K) N2 v
                                end;( X% Z( f. |" T8 ~
                        else
, a$ x2 I! \9 e' @                                @.Destination := assignLObj[1,row];6 C' v( f$ b! D
                        end;                        3 ~) _  }5 h$ D* w6 s5 z/ B
                        newDirection(@);' y3 G) g; A# T. v. e$ D7 J* |
                        @.HasOrder := true;
. |# c. d/ |9 N8 b. C% [                end;
  c& W$ n/ c3 O- b" {( B        end;
, ]1 H9 `1 C6 o. s' N  Send;        -- of the method/ |5 {# r+ y) r6 l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 s! X- b- [: V" Y- R9 S% c  M2 T
" u% p) E$ _6 Y7 g' y
这是AGV_putin中arrive的method。
0 x2 i, q0 U7 x; {, _; f  P! S* Z6 E+ R6 Z
当到达物料速度越高时,这个报警更多,. y; X* {- D& ^
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' [! Q, N* v1 Q7 ^- C% V, P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 ~3 f4 }7 D1 P5 o; G  P# @3 P; c' D' t: p
另外一个小建议,就是move,所有的move都可以这样' W8 n% K1 f8 Y2 m9 @/ I$ a" n' [& L
if not move() then debug end
% ^) [0 c, n! s) ]" v1 u& r这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! V6 l* f9 ]3 C1 n' Y2 D* w- s8 ]
plant simulation中的free libraries有AGV模板,
. K, l$ x" ~, C里面也有案例。
, W: X$ H; X  }1 t% b  Z& O' e我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! N7 M$ a$ ^. u/ |9 X6 v* R3 ?% y# c- C6 g3 R- l; v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& F6 F& b4 \% e1 s# o
6 S7 f8 O& D" d- h0 {0 ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ `4 v; g: c# k; a这是AGV_putin中arrive的method。
. D! R. X: @% x4 }0 m% A
) N- y) c* t9 x3 ?5 W当到达物料速度越高时,这个报警更多,
( v* ^9 |& S8 y0 `, g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-31 07:31 , Processed in 0.017455 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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