设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4589|回复: 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'
6 u9 ?% P: q& H*/
% t, G, r6 j; _3 jis4 h) `! X$ P5 N' e9 L# r0 L  V
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ ?5 U% W2 U( t5 m1 i* zdo
6 D5 s8 t4 P! Q$ A( B4 c        Lan := rootfolder.Internal.Tools.AOLlanguage;/ s9 F8 q- h" u9 @# g8 O+ M
        if current = @.Destination -- else return
+ ?* }7 A3 b4 i# t0 l7 H9 W        then! Q8 ~$ R, }8 o' `( k
                @.Destination := void;
$ u% @# @" F# r, C! [. K                if @.occupied then
7 d7 T/ i) o4 Z( c! q/ `+ ?: g                        part := @.cont;
# y$ K- N4 l& i+ U; X                        @.transpOrder := void;
; B. @1 n# ~2 ?' Y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- S6 [% P6 V; L. [" ^, j' z
                                @,root.eventcontroller.simTime);
# J! N7 J9 c: P0 F                        @.HasOrder := false;
% [% [- l0 r3 j; m                        @.DrivingHome := true;0 F' c5 P; D: A# m6 H0 z. E3 _
                        rgManager.tryToStartTransOrder;, A/ n# b9 u7 d9 O  Q$ y
                        if @.Destination = void
# f& U' }6 V9 n2 P# \6 V                        then -- no transport order for vehicle @
& b' k6 z( n3 V- b                                @.Destination :=: {. j6 I6 @% N( \; ]% T5 L
                                rgManager.nearestFreeStation(@,track.~);5 ]0 ]  f/ x- ~& }% s7 w/ q) t0 t9 [
                                newDirection(@);   3 }  ?4 |5 D% |" _/ A" v0 d; o0 r
                                if @.Destination /= void then
& X4 Y. b& b6 a% G9 |5 i* B                                        @.Destination.NumReservation :=# Y0 k! L; L" b3 S+ H$ S& q
                                        @.Destination.NumReservation + 1;; Z3 W! b/ Y, e6 ~! V4 I3 U, y- F- A
                                end;# z# p) C+ f# x* Z1 j
                                @.CurrIcon := "drivingHome";5 F9 b/ G5 P$ a7 J  E# r  [& u
                                @.DrivingHome := true;* [( ~. [' |9 P! a
                        end;
* ~- m) v" G( W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 }( ^+ O% [# x3 G
                        part := @.transpOrder;) X# _1 V/ s- D  b8 Z5 l% p
                        part.move(@);-- load part
7 p9 ?, r. V) {7 |3 B                        @.CurrIcon := "load";% |; o3 {- {* V% @: d6 Q- C. Z! R
                        GlobalDistObj := part.globDestination;$ b6 o2 g& b. y2 n! _" d3 g
                        assignLObj := rgmanager.rgAssignL;4 c1 l1 l# ~+ Q$ J4 g! y
                        row := assignLObj.getRowNo(GlobalDistObj);+ v$ `, _; y) c+ {( U1 X& r
                        if Row = -1 then -- since 70
5 E/ {+ t$ Q; k- V4 p* l$ }                                if lan=1 then
0 m4 M/ ^( Z' A" d  u9 u" ], m% J: O# ]                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" Q5 u7 w. ]# A- ]6 X                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 g! F1 l2 N! Y
                                else# C! g* I- r9 i# |2 I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ @0 `9 f( ^1 ~# a$ m) l- y* K
                                                to_str("in docking station: \"",?.~.name,"\""));                                . n! @, ~3 o& z% Q3 D; h6 A+ U3 t
                                end;
" |# Q) n6 d2 O$ a8 k                        else
. |  N6 \# u! I% y/ S5 s1 z                                @.Destination := assignLObj[1,row];" c, `  g4 X! W. D
                        end;                        8 c2 l- b. T% U
                        newDirection(@);
, L7 V. N  m3 i                        @.HasOrder := true;$ z+ X- g% ^' k
                end;
1 p6 [# `7 d: A8 X$ W5 X, s. \        end;2 I4 A$ G, s! d& B; w% g
end;        -- of the method" Y7 h( M4 q* q& n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" E- z8 W$ c7 T" ~
1 Q1 Y  O" ^1 ?0 K! ]这是AGV_putin中arrive的method。1 L! i* Z+ t' M" N( Y1 A* R2 u

1 ?  n: s. a7 A; y& G6 Z当到达物料速度越高时,这个报警更多,; @8 n$ [* L' [$ S% u5 b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& I, e8 Z; I) R, J" L  d+ j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 c9 e4 u! E: a% f8 P0 E3 N
; J& J8 T5 ?( v: Z3 k8 m1 s
另外一个小建议,就是move,所有的move都可以这样0 m/ ^) b6 K8 a" ^8 ?
if not move() then debug end
% S: ~1 N0 ~) s) x这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 O& f3 X/ i, X5 @# Q
plant simulation中的free libraries有AGV模板,
+ g. _6 [8 ]; Q' h9 J+ Y! B里面也有案例。$ t* M+ L$ x) P% x9 N0 J9 P& [
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 |9 H" g5 m0 G) A. [! K% X; O' g
6 U* X  x% h2 J8 B! P
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 P+ {: u1 |2 r% a

& k& _% M- |9 |1 Z$ N0 V+ |$ [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " ]7 m1 f  `& A
这是AGV_putin中arrive的method。
. m  d- S4 z* Q9 y- K, l' s8 o
7 _' {" C3 _% z7 X3 k! p$ B# b$ R8 p当到达物料速度越高时,这个报警更多,

, {8 h9 W1 Y( i, Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-5 06:18 , Processed in 0.015085 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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