设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9052|回复: 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'! C6 Y' G6 u5 o3 G) g. H: t! B+ H
*/: ~& @. h4 y% x$ f9 o) c
is
5 v: b5 K0 p0 n0 i  l        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, x  h" S. x' `. K' i3 z5 Y# vdo
- p& |% n! d; F& G2 z5 ~6 j( D        Lan := rootfolder.Internal.Tools.AOLlanguage;
  U/ t9 o' r9 [& M/ [6 L        if current = @.Destination -- else return5 p0 ^" o  m8 A& k/ `% y4 ^! ~
        then
- x. V. T( r; Y: k" E+ P8 A                @.Destination := void;
4 O3 B8 o+ Q- o+ R8 Y                if @.occupied then! V( H# g1 P5 |- |" u. K# U8 G
                        part := @.cont;
; H1 Y7 L% d9 {& w                        @.transpOrder := void;
/ |2 D; n) i1 _& \: U3 v6 h. v) T* F                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. ~9 S, p6 O4 Y
                                @,root.eventcontroller.simTime);
% Z; Z- e1 E, M0 C                        @.HasOrder := false;  G  [$ b' X' {& S  }9 p( R
                        @.DrivingHome := true;, G7 Z" R7 m  [+ [: H
                        rgManager.tryToStartTransOrder;
% J3 S9 X5 |+ U7 L. U9 l2 @8 P# L3 @                        if @.Destination = void
/ Q( g  G+ g5 \1 d6 T2 x                        then -- no transport order for vehicle @& O* ?  J  e8 {8 \, {. \- v6 f5 ~
                                @.Destination :=2 t* R9 L3 j; v- H
                                rgManager.nearestFreeStation(@,track.~);
+ U1 q0 |* s' Q; A' r                                newDirection(@);   + @9 D- J# R( B. o* M
                                if @.Destination /= void then
4 ^3 u" u$ R' s' {                                        @.Destination.NumReservation :=/ N1 ]+ m2 r. ]# ]* e5 a8 o
                                        @.Destination.NumReservation + 1;
# \2 W2 g& G. y! _8 |% B# L% C                                end;
- b/ I* l& ~. j" ]3 H: i. \                                @.CurrIcon := "drivingHome";
+ k  w% k- Q0 C2 ^" y                                @.DrivingHome := true;
9 q  o% t% r  K  m$ O- n8 H                        end;
) _/ I- ?2 @: D  I2 }; w0 j) [4 b                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 o+ B& u) q1 l: z; [0 g; U                        part := @.transpOrder;
7 C7 @" D6 j8 I5 [5 a  W7 a. b                        part.move(@);-- load part
( q& B5 R/ y& |3 `                        @.CurrIcon := "load";/ ^1 D! ?# z& k! m! `+ ^% C& D
                        GlobalDistObj := part.globDestination;5 h% |& O& ~) L; z5 a, L1 G
                        assignLObj := rgmanager.rgAssignL;
+ h1 t' c% L/ L; z9 F                        row := assignLObj.getRowNo(GlobalDistObj);
6 ]/ r5 O9 h/ L! @0 P6 P" W! g                        if Row = -1 then -- since 70
9 V! k+ x9 F: ]) w- ^                                if lan=1 then3 o8 a; U/ ?, o  U9 {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ C) r( S' I* }5 r! f                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ Y, Y/ o2 I4 U9 k3 k* z7 u                                else
& d8 v5 _3 \" A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; }4 d. H: P, n! D1 r4 c- _6 W                                                to_str("in docking station: \"",?.~.name,"\""));                                / M, G2 b# U$ {+ X% \' B4 v, r
                                end;
2 J7 a3 f' v- t4 L# d% k                        else2 C6 {- b$ q3 B: [2 j6 k6 J
                                @.Destination := assignLObj[1,row];3 U* {+ w  ?5 y; K# n0 ^+ e
                        end;                        : A! \& {1 S/ z3 q1 n/ J; _
                        newDirection(@);
, T1 h  f* ~5 V, o" R                        @.HasOrder := true;" D: r6 i- V+ N7 L0 J
                end;
3 Y' f9 |* P. @, h' f/ v        end;% K# U3 V2 D/ I9 k5 d* R5 U: w. N
end;        -- of the method+ |; [  v" _: B. ~) z3 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- d% d# w. _8 c6 X0 U
  ?, U" a8 a0 g' k+ T" P这是AGV_putin中arrive的method。
: a# ?* d% t  W' R) |' j6 X/ @& |* n/ p+ l+ x  \" _% h
当到达物料速度越高时,这个报警更多,2 p5 c4 a) \5 b6 A* }1 Y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ m9 \4 v. u# C: x6 `0 y8 ~$ o
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ H: _' R+ p: c" L

" w2 K7 D- W2 j9 P" \4 b: d7 I另外一个小建议,就是move,所有的move都可以这样
  e* B0 Q, S1 q3 nif not move() then debug end2 u3 y! t6 Q( T/ b1 A% i; y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# {" K9 }' y+ \+ W- ?' y; k7 {
plant simulation中的free libraries有AGV模板,
7 @4 _; M. y" K里面也有案例。' U" @' @! J, C- H# }, N$ K
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* X! R3 p1 \! {1 E

1 q8 }* g1 l; u+ n我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 ?. U3 w  R7 ?  K4 h! l* l5 p5 Q! t$ V9 |7 L. k
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 e; Y' A4 g! C3 t" Q
这是AGV_putin中arrive的method。0 z/ f9 M: W$ p# N8 Z& H* u/ ]

$ U* f" G% Q$ A9 K+ E当到达物料速度越高时,这个报警更多,
+ e  Y1 {' _+ q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-10 22:31 , Processed in 0.024510 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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