设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6906|回复: 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', s. p( a2 O4 P2 q; c1 Q
*/, D& e3 o0 x+ f( c* L3 c6 ]" b1 F
is3 n$ [8 b; G' c# H" t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 x6 U) d, ]/ D; H
do, {8 P: B& ~  g
        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 P+ y4 ]5 S# ~" R3 O        if current = @.Destination -- else return  J* T% J- x4 ~. g
        then; h4 Y$ j5 |" \; I( l5 X
                @.Destination := void;' k8 {: W% y4 {2 ]$ K
                if @.occupied then; @. j  V# c* v; D% f3 c4 R
                        part := @.cont;
/ O8 L7 V/ h' U# C$ ]6 V                        @.transpOrder := void;1 K" p2 k8 U' z( _0 D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ T& ?6 V% E3 S                                @,root.eventcontroller.simTime);
- N% T8 Z0 E# J% @; }2 Z, H                        @.HasOrder := false;
1 g) Z# \0 j, ~" p9 B5 B                        @.DrivingHome := true;
; P1 {6 N1 z4 I' w' ?3 R; G                        rgManager.tryToStartTransOrder;; m4 H3 W7 }) W$ {4 e" a
                        if @.Destination = void
' K( x  h, P1 A# D                        then -- no transport order for vehicle @% [1 ]3 ?- |+ z' J/ V; X
                                @.Destination :=1 W# [  S' \5 k# A; Z1 t3 U( r0 e
                                rgManager.nearestFreeStation(@,track.~);
8 u$ |7 E: B% ~5 U! V7 _/ c. f                                newDirection(@);   
7 p( `- p6 M% Z% o$ n' e                                if @.Destination /= void then
0 l) {3 q& O8 Y$ x3 D6 B                                        @.Destination.NumReservation :=' ?4 V* g  b) {8 w' D
                                        @.Destination.NumReservation + 1;7 c+ u- `7 v- ^) H5 U) G
                                end;
7 E4 Q% h4 ?. T6 E# z6 e) v                                @.CurrIcon := "drivingHome";
! d" J. \3 a  `5 D: W                                @.DrivingHome := true;! s- @  B  |: I2 ?3 K& y
                        end;' `1 A1 p- e# y2 F6 r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- K. r& L; C1 _% x' v- @$ X& \
                        part := @.transpOrder;
# W) V% l, h( H3 ]# R# c                        part.move(@);-- load part/ h" \. u6 j; j& Y  {$ O# S
                        @.CurrIcon := "load";
( |1 G4 i: _  f+ l! H                        GlobalDistObj := part.globDestination;
. d. L' ?+ [& J7 V: C                        assignLObj := rgmanager.rgAssignL;
2 h8 n0 o5 F( t, l) K6 `6 C: Z8 n& w                        row := assignLObj.getRowNo(GlobalDistObj);. u: u0 s/ P( D: q7 p* S  C2 L2 R8 W, g
                        if Row = -1 then -- since 70
' |6 Z1 Q. k& b: D. g                                if lan=1 then2 s! z8 N' p: h4 ]7 |4 _
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 H) b+ R2 \* C9 P+ C* n3 D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 F7 @% u4 ]- R6 R0 y! z                                else! ]% \7 J, l8 u" ]. A& F, y/ X& Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  _) `# b' D5 O3 a                                                to_str("in docking station: \"",?.~.name,"\""));                               
, P: }+ q# v, a8 ^  {                                end;
& u) F8 x0 ^; y& i; f9 @* z: t2 E( D4 g                        else
; `* y# W+ e; s, B( L! ]                                @.Destination := assignLObj[1,row];& e# X0 J* C! W4 @
                        end;                        - @! q$ A! [3 c2 Q4 H1 b: j  v+ B
                        newDirection(@);0 J; [$ d; k- s0 |3 y8 ^, s
                        @.HasOrder := true;- W2 \8 O! ]+ }
                end;) ~2 a% A9 x9 D) ?
        end;
, _; k! T+ h5 W* v" a* ~end;        -- of the method
! x' ~: o) k0 L1 I5 D7 l$ n0 [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 C- ~. l' t5 F+ v7 z8 C2 Q8 F- X1 m2 z$ i6 K' K5 ]# }  Z1 T
这是AGV_putin中arrive的method。( |3 b" `9 H  I" d4 ]
& H. e7 J0 q0 Z+ z3 B
当到达物料速度越高时,这个报警更多,
# {1 `, X8 G" A  i9 s$ {可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* ^6 h9 X; j+ V5 f, ^, O5 ^0 \
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* H4 _% {1 x/ j5 E, d* W8 V

2 P# b$ v+ U! [# Z$ m; }; a4 A5 J另外一个小建议,就是move,所有的move都可以这样6 m  X( n0 P: v$ P% g, _0 J4 ^
if not move() then debug end$ ]# Q7 E9 U  v+ I) X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* d& v, H; u6 L2 ?plant simulation中的free libraries有AGV模板,
) t3 Z8 w* e3 J; V( z2 }/ C里面也有案例。
8 f9 {; n7 I+ e" L$ x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: O! c% m" e' o/ ^3 a1 M

+ x2 R, ]; z6 z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 B% S) m/ K) B9 w
0 k6 F$ i6 e- W1 m# I
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 s, m; X2 X. A4 M5 I' a! Z3 U
这是AGV_putin中arrive的method。
! Z6 {0 i" C; K+ G0 G4 P+ T  h# h% g$ g: e- Q' B
当到达物料速度越高时,这个报警更多,
: n3 \. o/ e! O8 X. H
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-6 01:01 , Processed in 0.019822 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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