设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9341|回复: 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 u% r. c' }" I! F* Q( C3 U
*/$ A1 o6 x6 N, H% S
is$ J" s0 A. W1 }0 T  U4 s
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ K6 B( i4 ?7 P  xdo- j7 N2 p) z6 |
        Lan := rootfolder.Internal.Tools.AOLlanguage;0 p; K2 b2 O/ Y5 W
        if current = @.Destination -- else return
  p+ q4 B7 m2 u( I4 n/ M        then
5 a) X6 X+ [8 q0 I3 m                @.Destination := void;
4 k6 F( i% E; m2 ]8 ?                if @.occupied then: u" f; T+ p( ?3 E0 r# X# m& l8 \
                        part := @.cont;
- y* V5 W3 V* z# m0 K! ]                        @.transpOrder := void;
' Z. ~" R; P4 p# p0 f6 D  H; v                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 w4 F, N; C7 k; a2 e3 t
                                @,root.eventcontroller.simTime);& C9 h4 \* T5 Q. `/ R! m% J3 z, W
                        @.HasOrder := false;
" {) }: X1 ]; T+ w4 V& x6 N                        @.DrivingHome := true;/ I9 [9 u$ \; \& M% b7 W
                        rgManager.tryToStartTransOrder;
* b6 n: ~9 _0 u) I0 k                        if @.Destination = void8 k" F% @8 k0 j4 b- B3 r$ w
                        then -- no transport order for vehicle @- J/ E& M2 A* r' V: D
                                @.Destination :=
; L: i) ]. z% @) u                                rgManager.nearestFreeStation(@,track.~);
# ^# v) l% q4 L( }# f1 G                                newDirection(@);   7 Y0 g) n$ u! ~& i* b
                                if @.Destination /= void then
# R3 A# R6 y5 g6 I                                        @.Destination.NumReservation :=
4 l1 {# K. w; E* R* U& ^) q                                        @.Destination.NumReservation + 1;
3 |% B& h9 O5 n8 M2 }6 {' k                                end;
, o) d; U8 z( j                                @.CurrIcon := "drivingHome";
3 ~4 F4 z* z/ @% F                                @.DrivingHome := true;" T) j  q( _& t; [$ C! s$ ^
                        end;8 I7 _" m' N* Q1 [* k8 y- |/ y( F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' H( f5 f& E2 N2 {9 p2 L                        part := @.transpOrder;( ?/ O, ?6 E% n( A5 C$ y* d
                        part.move(@);-- load part
0 U0 z: p+ W# ^0 r, M3 {$ Z                        @.CurrIcon := "load";
- s. ]1 P5 \9 E; O; h                        GlobalDistObj := part.globDestination;
. c! ?) b: r) j+ c# Y                        assignLObj := rgmanager.rgAssignL;
) ?) p* o9 v/ L1 P; x                        row := assignLObj.getRowNo(GlobalDistObj);  ?  i. w8 r7 Z5 }; D# \
                        if Row = -1 then -- since 70
; X7 w& C4 B1 Y1 X6 Q                                if lan=1 then
# n1 X) ~: o9 D( r; ~- D4 u% N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 x( u. h" T4 u5 z' y& A+ D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 x9 {: I# f  P' L) R' Y# C# A# y
                                else5 J% C( G2 Y) Q2 N8 z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- \# x0 [2 b+ Q1 q" ?2 i: B9 A                                                to_str("in docking station: \"",?.~.name,"\""));                               
. v) s% b- a9 n! }) B) W                                end;
# ]  K5 H% S. `, n0 k9 L                        else
" S9 b7 q" b- D( v* i: e& Q" B6 m& M                                @.Destination := assignLObj[1,row];+ t; `1 |4 c9 |6 k$ b  c; e
                        end;                       
2 T( }1 l5 ]7 a" _, K3 }                        newDirection(@);
* w, K; s# W/ Z8 y3 _4 g                        @.HasOrder := true;
! Q2 f2 k) l) M1 x                end;
$ J, D7 Y: \6 w        end;
, W5 d9 v- `. t( L5 x! Q  Nend;        -- of the method; J9 R2 c& o4 g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) H# b) G, q5 Z5 _$ g

! c% A6 ?8 q6 q+ M这是AGV_putin中arrive的method。
. j9 _+ c! U+ G) U
) _7 @3 g7 s8 O8 W2 B2 s! ^0 R( p当到达物料速度越高时,这个报警更多,
; `/ ?- \; a3 o  ?9 v3 i% Z* `' C可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ ~; J( s1 S( p3 E4 ^
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) x) n; W" J/ s  z
) k4 l/ @& v8 J+ g. B* v3 c! V; H另外一个小建议,就是move,所有的move都可以这样: d7 k  U  z& I9 N, ?, A
if not move() then debug end$ i, }* G# ?" {; y- d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' t9 J. p& u1 a8 x5 J4 i
plant simulation中的free libraries有AGV模板,
& d) a3 ~7 H/ H里面也有案例。
; a- z/ O4 q0 |4 g( r3 a$ B, ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ z* R; e) o# D7 B- q0 [& x+ U- i- O9 `  g7 x- e
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) F2 ?1 t$ a3 Z; ]! A1 c& g
- x0 a! o3 B5 T) u/ a& z) r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! F% h9 b( K/ I: D4 L* J' A' X. A) V0 i这是AGV_putin中arrive的method。
4 @6 J& T6 S6 [0 m5 l1 _0 h
" V) I6 Y' s# q当到达物料速度越高时,这个报警更多,
) P: {  L0 {5 M  o0 m3 d; i
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-26 13:04 , Processed in 0.017757 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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