设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8497|回复: 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'$ Z- k& U- Y1 }# U0 t9 b3 J
*// {  C$ }2 U3 }% Z- u
is
0 s1 A" F: M9 Z# X6 ~* {. z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ D0 F$ q' j6 N
do4 S8 r5 w+ B2 r* W5 t
        Lan := rootfolder.Internal.Tools.AOLlanguage;1 k4 ~/ Z! N* P1 M  c/ C' P4 m( {
        if current = @.Destination -- else return
1 y$ B; @/ f' y3 G        then8 I+ X$ b9 i" F; z8 {+ i1 }
                @.Destination := void;4 ^( [; L" D6 `4 M  w1 J  i, ^! I
                if @.occupied then1 y/ u6 }  `3 y0 e1 t3 x
                        part := @.cont;
: g7 B6 b7 s, e* P2 R% c6 E/ B' X                        @.transpOrder := void;5 ~/ q* h' y  B
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 _1 i) Y5 M# P0 o! |                                @,root.eventcontroller.simTime);+ f" H& `: K  V1 W+ I4 Q9 n+ y# D
                        @.HasOrder := false;9 ]1 H- A: `( T2 L, T8 u" F3 y5 D
                        @.DrivingHome := true;
- \" e: h! K  E/ \& t- q                        rgManager.tryToStartTransOrder;  [% U/ z* v1 P- L% O( N
                        if @.Destination = void
, H& i$ p" Z4 v# X' a# \                        then -- no transport order for vehicle @
7 F. K3 n' @4 R, K. q$ r& H                                @.Destination :=) {6 M& N2 w+ G1 a& c% a
                                rgManager.nearestFreeStation(@,track.~);3 B1 Z" W2 J, O% j2 U
                                newDirection(@);   
9 J+ y2 ?4 N# Z% h7 c                                if @.Destination /= void then. |9 a5 p! B  O  Q- k& |& L
                                        @.Destination.NumReservation :=* A6 @) H8 {( j% Y
                                        @.Destination.NumReservation + 1;- D  ^  s) o6 r5 J' K
                                end;) I* X4 i" P8 H+ O' V
                                @.CurrIcon := "drivingHome";
) }3 e5 A* z5 @/ P# P' @. U, ^. ~: Z: |                                @.DrivingHome := true;2 q" v7 G3 Q! C2 R8 ?, u3 W3 [
                        end;% t/ {; c, W) |) F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: C6 a. x; T1 k; X% N( h# s) F                        part := @.transpOrder;( ~6 c% ]' F! j7 q1 {  J! N4 B
                        part.move(@);-- load part
9 c- h4 A" W2 k+ N- E5 D8 v                        @.CurrIcon := "load";$ ]8 H- o4 F, m0 C- b% w, p% ~
                        GlobalDistObj := part.globDestination;" M# T7 \8 ?- ^' O4 ~* N0 x
                        assignLObj := rgmanager.rgAssignL;
5 |( e. B0 I& B- c" ?                        row := assignLObj.getRowNo(GlobalDistObj);
9 Q! [5 o6 [* V                        if Row = -1 then -- since 706 C3 U9 Z& ~6 d
                                if lan=1 then
& m& u9 E& A+ c3 v1 d                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; q8 @' u* {, C: A                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 K# Z# P) B/ ~. n/ b/ G9 x
                                else- R- r8 ^* V3 \! j4 v- w& O. h# z0 w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 k( A: o( S& c9 C+ A2 @                                                to_str("in docking station: \"",?.~.name,"\""));                               
( v. ]( ]7 S) d3 m                                end;$ @! ~) K! X% N1 ^/ y3 _  L0 |
                        else+ W5 p0 M1 s* w# H% G
                                @.Destination := assignLObj[1,row];0 ]0 G- t' n2 \* ?) |; P( f
                        end;                        0 k$ A* M5 C0 P4 T& s& d
                        newDirection(@);
  j+ R6 ?( a6 x                        @.HasOrder := true;2 V. l7 G1 S. c( o% E: G
                end;9 B* a9 ?* g. }% y& b2 A5 F9 I
        end;
2 s  x. _6 q- s. t: p3 vend;        -- of the method. G0 v+ _& y# d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) Q6 f; ~6 J! q5 h7 ~

( c! u0 }. X9 N; b! e3 @/ G这是AGV_putin中arrive的method。0 o; l5 P6 X  F# @$ K& m9 p
0 w  p/ R$ P( F' E/ M0 @/ Q
当到达物料速度越高时,这个报警更多,: N7 o( X+ T' K' J/ N& l$ Q/ R& X
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  q% [. u7 ~- q( H4 @
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 J7 l8 o- s1 p7 d9 [) @
  y8 O" B+ `3 [* u* K% q. B7 m, |另外一个小建议,就是move,所有的move都可以这样! w9 I2 L2 F1 r$ o$ q: y
if not move() then debug end& M) Q/ @$ L7 N/ d" k" K6 C
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 a: f# {% \# R+ R" n. S5 \, N, V2 F
plant simulation中的free libraries有AGV模板,
2 L3 l. A1 N! w( o" _6 o里面也有案例。
. _6 j3 p( b/ n5 f' }& V& I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, g$ D) @* _, `" m) R: q2 j
8 _& [6 I/ {2 `2 d, i2 M" Q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % K: U2 ~7 F/ Z" N
( j$ i0 Y/ I/ S+ W9 C, w  N
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! h; R1 l- C7 c# p这是AGV_putin中arrive的method。, D& Q4 t! G8 A; {2 x5 Z; x8 L
2 V% a1 @% ~8 A1 q: V
当到达物料速度越高时,这个报警更多,

' ]' F! i5 |  T8 @另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-7 16:22 , Processed in 0.015492 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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