设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9075|回复: 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'* C7 q% x5 l4 i- w% j; {
*/4 A' Q# I4 Z! t6 r( I
is2 p) @, `2 i, u$ h* [5 y4 J$ {
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' W" \5 ~# n. ^# X2 }3 k4 Y) C& bdo0 z$ c3 ]7 U; c3 T! N$ @0 ~8 ^& [
        Lan := rootfolder.Internal.Tools.AOLlanguage;, m& o, j' A; Y: I' a" F
        if current = @.Destination -- else return: @+ U% ?2 l) k' O
        then
8 ?  ~. D. c. Y, f                @.Destination := void;
5 }4 Y" O0 ?9 z  s                if @.occupied then% G+ S; ^; H/ j* C7 r8 s
                        part := @.cont;
  s( f4 x6 X+ |9 z) m                        @.transpOrder := void;
2 H6 _8 q' e; M. N) X" e$ v                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 S, }4 X5 ]' z
                                @,root.eventcontroller.simTime);
7 C0 t, w1 U, t) R. T+ `                        @.HasOrder := false;" P$ l8 w! T( w2 u& \
                        @.DrivingHome := true;: J, h: j3 }/ ?% D. x4 C
                        rgManager.tryToStartTransOrder;
! l! M4 e( u3 T* j) Y! T/ t                        if @.Destination = void0 _7 P' ]$ x9 M! D  _
                        then -- no transport order for vehicle @
, H6 o' G5 {2 o# @- l+ n                                @.Destination :=
6 B$ a: R( w/ F) M0 t' |# W                                rgManager.nearestFreeStation(@,track.~);2 I; H: u3 j; s/ r  B+ Q3 K
                                newDirection(@);   4 E" k9 h$ }8 ]+ }$ R& Y
                                if @.Destination /= void then: \2 P3 d2 ^2 j/ C& o7 G' G
                                        @.Destination.NumReservation :=1 j( M# C7 T. V7 T; ^1 k
                                        @.Destination.NumReservation + 1;
) g' t' L$ l% |8 y8 k& a                                end;
" ~1 J8 ~* L) I' g& Z                                @.CurrIcon := "drivingHome";$ i2 T" b# U; R" {1 z: W' }- b+ w1 `
                                @.DrivingHome := true;* d* @( a0 ^4 B
                        end;
8 J  u, `: v3 ?9 f3 @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: p9 a  c* E1 A) U6 O) D" z+ h
                        part := @.transpOrder;9 |" Z$ m& P- t
                        part.move(@);-- load part0 I7 n9 }' a" L. d6 k
                        @.CurrIcon := "load";
7 P. M# t- M& ?- X9 L" A7 ^                        GlobalDistObj := part.globDestination;; k/ x' B; s* a9 W
                        assignLObj := rgmanager.rgAssignL;
  k0 l& e! c- Y" R# s                        row := assignLObj.getRowNo(GlobalDistObj);
# C. {; U6 o( t! j3 c                        if Row = -1 then -- since 701 k) J! m, h4 Q# }4 p
                                if lan=1 then
) g6 u! J) B" R$ D                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 F4 P$ n- D; M8 ~2 A* Q# T
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: v- t% \. O/ E. P1 Z9 ^) h1 c                                else$ o1 V9 V! G  x, F! O% H
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 q1 I% p6 @# y
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) x, [* M& E* J- ?$ v1 Q; X3 r  `& o
                                end;
6 z5 F$ I2 c# n+ w                        else$ [2 s! B& k3 |# o: I7 |
                                @.Destination := assignLObj[1,row];
' i  u) w, V7 E  q9 C2 L* ?                        end;                        * s8 O+ ]& T- t) T
                        newDirection(@);
- k" z4 l( {% y- T5 z2 Z                        @.HasOrder := true;
  o9 I6 B$ H- d& S                end;
1 t# X9 T3 _- G  l( d9 ^# D        end;
9 `1 D7 d7 b5 Xend;        -- of the method5 J5 e8 p' [- E- h/ i$ c# {( G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 F# |9 }3 D' d% I8 g7 ~9 ?+ L4 l, Q9 k# P. ~+ V. x1 q( Z
这是AGV_putin中arrive的method。
5 M" @3 {* R7 O
& {1 }& _. Y. j当到达物料速度越高时,这个报警更多,. s  Q/ l% P8 `% k, b7 V* h2 a
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& U5 ~# m4 _& V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 F  ~1 z$ y* ^  f( @# v/ G2 A9 V* I" I9 P
另外一个小建议,就是move,所有的move都可以这样
- _: c: m' A$ E+ B1 sif not move() then debug end2 Z0 M# a7 R: [, c  n- N" s2 F
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 ?, `* u! F) y3 U0 F4 uplant simulation中的free libraries有AGV模板,
& n8 I) R5 I7 H- c& S" ?4 c2 ~$ D里面也有案例。
2 s2 i! o! F) g9 t& R  T' e2 a. n+ C我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. L6 R# _& c+ T6 \
; k& H4 Y) ^5 G+ w3 d, O; L" D我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # a# Q1 Q1 U4 }- F1 i5 R

2 ?& v6 U; G4 D# o那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# N# Z* ~; E* _8 D/ E. n; d这是AGV_putin中arrive的method。
) F/ V2 n. u" Q3 K6 B2 Q# K" m( S& j3 j8 z
当到达物料速度越高时,这个报警更多,

- f3 Z# n* J; z+ M4 _! Z* `另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-12 00:12 , Processed in 0.015314 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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