设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7341|回复: 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'
7 |% J2 _: X; z- T. G) q*/
6 G7 c% L+ K$ ]" {+ x: L+ bis. A4 K% [0 M3 [4 u5 C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ u. i& S# S6 N1 Jdo
7 u- a% P- g0 Z5 g, }8 d5 w        Lan := rootfolder.Internal.Tools.AOLlanguage;& {, c9 T! f0 C% i/ C7 @
        if current = @.Destination -- else return
- X, L2 E1 Q) s8 N) ^2 S        then
  t: K$ }& u! z3 i3 Q8 D                @.Destination := void;+ |. {# W0 f( x) u* Q5 m
                if @.occupied then1 J0 T; E+ p" J6 K$ _7 J
                        part := @.cont;, j5 c, B6 s, w* k' r; f  C9 f
                        @.transpOrder := void;( [0 @# p- a2 C9 z1 g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# v( W7 U" y1 D2 z/ ?  Z
                                @,root.eventcontroller.simTime);
; A) E; \9 b0 n. Y* ~0 c' H                        @.HasOrder := false;
  o3 ~2 M. M% _                        @.DrivingHome := true;
6 r) c3 h& W1 }7 C& S/ K4 U8 z( O: }                        rgManager.tryToStartTransOrder;
: t( I- g  w: `3 y* Y                        if @.Destination = void& v4 Z4 E# x, J( r* N# \' G. J
                        then -- no transport order for vehicle @9 g. K- T( |4 Q3 x! H2 ~
                                @.Destination :=
3 E' t. A  ~0 ?7 G( s                                rgManager.nearestFreeStation(@,track.~);
0 p5 `4 y* P3 G# P, @  ^: G( f$ W                                newDirection(@);   7 V$ l2 i. ]/ @0 J1 ^# r' v- `$ d
                                if @.Destination /= void then
  q1 `( Q  L8 R' P                                        @.Destination.NumReservation :=
, a7 V5 e% j: Z+ \; @: j/ O                                        @.Destination.NumReservation + 1;
# M# l$ G" I" o$ Q. A                                end;% n% H+ L  `; D+ X/ F
                                @.CurrIcon := "drivingHome";! e5 [  g7 o7 {2 ^7 [
                                @.DrivingHome := true;) w0 v. e$ W* F* L# H3 \+ U) c) d/ T
                        end;
$ o2 P8 v& d" U; q' E' |3 [& ?! ^& u) W+ e' a                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ d. {5 \$ N/ l                        part := @.transpOrder;) z) B9 e5 W1 ~, H1 S& q+ }9 \
                        part.move(@);-- load part' ]  S8 G; q6 B. F
                        @.CurrIcon := "load";, F: C9 H" |* E, h. `9 D* o0 z* _/ p
                        GlobalDistObj := part.globDestination;) X% V  Q! N  }% x
                        assignLObj := rgmanager.rgAssignL;
1 N& I/ N' o1 A& D8 t! T4 D0 B                        row := assignLObj.getRowNo(GlobalDistObj);- x; u- _( N  x5 @; L# P9 W
                        if Row = -1 then -- since 70
4 Z4 d0 t" J7 m' g8 U                                if lan=1 then, F) z9 `* ]3 f8 |& g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 n' A$ C( G1 ?7 Y9 d; F3 \                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# }( S& r4 B9 r5 m1 h                                else
4 ]1 {1 v8 u( o7 d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' u4 M" w9 H" Y3 \7 z
                                                to_str("in docking station: \"",?.~.name,"\""));                                & Y+ D* W3 |2 C6 A
                                end;
7 W" v. l6 X8 z2 }* x                        else3 X& R% z5 R4 {6 S  F5 Q. \7 i
                                @.Destination := assignLObj[1,row];) C1 }$ j) f  ]- K" u
                        end;                       
& W* H7 `$ g+ n) c, `                        newDirection(@);3 k+ h( v3 _! J& b; q) V6 V. d
                        @.HasOrder := true;' a) y& X5 G$ o: V/ W* W
                end;1 F9 s4 `" x" I. Z
        end;! [3 [. y) G  s
end;        -- of the method
. h; D* q7 Z1 I( w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & w8 y" g1 O8 [& M
; r4 g& b" D/ a& _
这是AGV_putin中arrive的method。) A& g( v0 s9 a1 ]

+ H) m6 \) f% W1 ]  v$ g当到达物料速度越高时,这个报警更多,' v% `; @3 n0 _% ^: f5 f6 |+ c# c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 l( G+ j2 L0 v8 B) f* u$ ^% v程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 z* M& ?/ K. d$ h6 Z

, P; |7 \3 C4 @4 ~3 g* ~  m另外一个小建议,就是move,所有的move都可以这样
2 \8 C) q" h) Q" [! M1 p# qif not move() then debug end- O; ]9 z  P" T4 `4 @
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 t' A1 `: \) J. }% m. e
plant simulation中的free libraries有AGV模板,
; C8 ~. D. s2 w里面也有案例。
, c8 Z9 ]# w, o0 |% j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ Y- `6 p2 K5 k

" A8 ~6 g7 I- S5 I: h8 Z/ g我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! S5 }0 b) H- Z. _7 p  V
0 q% ^/ H4 m2 C那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' L/ u% V7 [/ y8 e9 A这是AGV_putin中arrive的method。
7 b7 K4 }, j4 N  V6 ]3 [% K& W. `7 N3 v5 y+ u  U% s& g+ k: j
当到达物料速度越高时,这个报警更多,
+ u! i  ^* b; Y% l' r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-5 04:10 , Processed in 0.023144 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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