设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9605|回复: 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'
! I9 M- d" C+ C/ L# i/ v*/# a. S* E" T6 B; n. h; T8 u; G
is
9 u# F: ^1 c+ Z# l: ?4 r  M5 |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 W3 k2 C) r. F+ S9 Tdo
; W4 Q. W( A0 h% c        Lan := rootfolder.Internal.Tools.AOLlanguage;$ W8 L) ~- H0 v) S3 L5 v
        if current = @.Destination -- else return
" p" V  i# F4 W. t4 U        then( p& C5 w4 `; u* q
                @.Destination := void;0 E" L4 x6 a$ z& Q5 F$ @3 L
                if @.occupied then" H9 u9 p9 H8 p$ D# e$ ]
                        part := @.cont;
8 R$ b8 x) g2 z+ k& W                        @.transpOrder := void;) P- _- _% ?! U1 L: j* S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,( H- ]4 B5 ]/ B* k0 G: Y, p3 }; E
                                @,root.eventcontroller.simTime);
7 H. h, b' j: `- ~( q                        @.HasOrder := false;
' r$ r2 {; @: o. D. ~+ Y, l4 f0 S                        @.DrivingHome := true;
) I2 F9 E) b+ y( o( q" K                        rgManager.tryToStartTransOrder;
* P# K5 @; h: ]( H                        if @.Destination = void! |( Q5 h4 z' N: y% m2 h
                        then -- no transport order for vehicle @$ n2 Z) P5 y) H% }; ^2 M/ H
                                @.Destination :=( B& V! v) y# ^6 x9 g6 |
                                rgManager.nearestFreeStation(@,track.~);9 w# F* v$ W9 s
                                newDirection(@);   
- |' _6 }4 b9 i: B                                if @.Destination /= void then6 b: g$ o( J: [9 Q7 z
                                        @.Destination.NumReservation :=
5 \# b4 D1 E/ s9 Y  Y                                        @.Destination.NumReservation + 1;
' @: u2 W7 Z0 Z' ?- C( N& B3 W                                end;
- d8 L- J2 V! Z: e                                @.CurrIcon := "drivingHome";
/ ~: u+ z8 O, B                                @.DrivingHome := true;+ p6 l- N7 ]+ b4 c! H+ k( [; h; i
                        end;
' i" z# `/ k! N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! J4 D2 k8 J& |" r$ |
                        part := @.transpOrder;
' |5 o6 {5 `4 J7 i% Z  h. g- ^                        part.move(@);-- load part
2 D( M4 G/ K, p: I- c2 u& B8 x4 _                        @.CurrIcon := "load";
5 H$ X: Q5 c* G# \9 T1 f0 A                        GlobalDistObj := part.globDestination;1 o7 i% x5 Q* g
                        assignLObj := rgmanager.rgAssignL;
# \; L# e9 v6 q% a                        row := assignLObj.getRowNo(GlobalDistObj);
% O% @. C( b+ r                        if Row = -1 then -- since 70
* B" J/ ?7 I/ {+ G+ W                                if lan=1 then
# d* M: j) q' L6 ^& Y" e1 r) Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 L& s0 h* {) f/ k& p
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# c2 ]" D  y# |8 Y! B% \3 `* o% b                                else  i, ?$ }- y$ c. d$ U
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' u9 \8 K# [8 r& |- i
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& U9 V2 H( X: q2 Q& r2 g( O                                end;$ q5 e/ s1 G6 v2 Y% y
                        else% O" v0 ?" l* J7 |8 E* i- s
                                @.Destination := assignLObj[1,row];
% f0 ?& C9 d! O2 B& |3 I                        end;                       
$ z3 t1 t  I$ x; `  z                        newDirection(@);
' V+ P- K8 [  I, ^/ t0 [9 W/ F                        @.HasOrder := true;1 F( A, b- M& U2 B% v
                end;, S! d* Z7 H- j5 P
        end;
3 ~% y# w) X" }2 U2 lend;        -- of the method$ \/ z9 I2 A" T  @9 ^$ a& A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 }; n2 b6 x+ w$ a: Y
1 x0 X' U1 t! |  ?# Z这是AGV_putin中arrive的method。
% r: x3 |+ f0 m/ X* O. c- P3 J
! E7 k7 S/ g4 i! j# T1 f6 V当到达物料速度越高时,这个报警更多,
, Z+ x" v* ^$ ~# w  M可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 q. [$ w0 ^+ I( ~4 n; g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 r9 ]6 X2 x! N+ N
: w4 K4 Z7 c7 q, L1 ]) B2 t另外一个小建议,就是move,所有的move都可以这样" v( m5 D. [# F8 I
if not move() then debug end
- e! E& T0 t* c+ t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 {! v  i% k% q
plant simulation中的free libraries有AGV模板,( t) @5 v6 X8 u, H( `# V/ H' p
里面也有案例。
8 c+ r3 P; l' h* K6 C/ I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ B% X5 B" r2 r0 b7 U1 e7 B- O7 u$ ?* j; ]  A9 G4 q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & `+ v5 B1 K  n

( i1 }2 a( `4 s. }! {! U8 g7 J那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 r/ }4 p5 b& s/ ?6 F% V) n
这是AGV_putin中arrive的method。  k" B, Z& J/ }4 B. f1 [

9 V8 l) W1 z5 Y  k当到达物料速度越高时,这个报警更多,
- b; e$ v! i- {- ?: ~
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-11 07:12 , Processed in 0.020701 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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