设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6727|回复: 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'  q, `' J% ]( O2 l1 [7 ?8 e
*/0 G$ `8 ?5 Q# T' O& `: ?1 j
is
/ {* P/ _( J: k! d6 `2 N7 t8 \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 c) J! @; r* L/ c1 B9 K* q5 S3 w1 ~
do- e& v8 H3 P* w* \4 {
        Lan := rootfolder.Internal.Tools.AOLlanguage;; S! a  l" J/ c0 r+ ?
        if current = @.Destination -- else return6 L, O$ d; w1 G2 i
        then- n  m" U4 \3 [% K0 _2 }
                @.Destination := void;
9 |, M. ^- j3 K                if @.occupied then; Z! D4 J+ B3 B7 Y4 o4 E
                        part := @.cont;# ?* y- v# |% {% a* k2 \
                        @.transpOrder := void;
/ m" e' |& x+ X0 h4 g% r) S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- z" |. k$ `6 W  }* B
                                @,root.eventcontroller.simTime);
% y' i# G% F9 w5 _/ F                        @.HasOrder := false;
/ X3 B: X# y8 }7 `                        @.DrivingHome := true;* R' W& S( d8 Y) d5 x
                        rgManager.tryToStartTransOrder;
& D) q+ W! M% O. B; g6 T                        if @.Destination = void
) t; G, C5 u( n) f% k* [                        then -- no transport order for vehicle @! s/ R+ D4 c& C; ~# E9 V5 b
                                @.Destination :=
: Q6 s& ~/ V% L$ }7 R4 d                                rgManager.nearestFreeStation(@,track.~);& g3 c( Y  G2 U  w0 Z; M
                                newDirection(@);   
2 B- o: q2 b- v/ C4 I                                if @.Destination /= void then
; q& M- E! i# |0 T                                        @.Destination.NumReservation :=
: \8 a: o: [5 O( l% e! C5 y                                        @.Destination.NumReservation + 1;
! O) C! D8 m& C( v" h                                end;
  z) b7 Q; t" N                                @.CurrIcon := "drivingHome";. L- O7 Z  v, {( f% |  y) l" Q
                                @.DrivingHome := true;, g* M* F- Y  }% U8 I
                        end;# k5 |* h$ x( B; G, N, e& _/ j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, ~/ H( {3 D" ^$ t' U3 ]  U* R                        part := @.transpOrder;
* a# ~7 G2 e, N5 X                        part.move(@);-- load part
2 M* K7 p. d! G& J4 w                        @.CurrIcon := "load";
% H8 G: u: p9 x4 p0 w                        GlobalDistObj := part.globDestination;! ^* r( y; b! o; n, @
                        assignLObj := rgmanager.rgAssignL;
; b8 X- ?9 Z8 `, G* T( |                        row := assignLObj.getRowNo(GlobalDistObj);
* l% Z; B8 ~$ h% w$ \" }                        if Row = -1 then -- since 70
7 W, ?* e7 q( [! r1 E                                if lan=1 then
' n& I: l( g2 t  W                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- e$ [  w, \% ]- i$ {  ]) b
                                                to_str("in der Andockstation: \"",?.~.name,"\""));* V) m+ o1 v; q+ ~
                                else. z! K; b0 c/ y* l4 Y' r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 N0 B" ~7 W% @' V) X8 m& W
                                                to_str("in docking station: \"",?.~.name,"\""));                                6 L- |7 ?, Y1 I% J, `! I; P! S
                                end;. ?% W" m2 ]( T
                        else
% o" t- h/ c% U' f- F                                @.Destination := assignLObj[1,row];
: m9 v' ]9 W7 K( ?; v0 @5 b                        end;                        : o" C( C: F9 t' a% ~
                        newDirection(@);# F* _  d# p) R( O! E/ i. Q( `9 S. n
                        @.HasOrder := true;
9 F1 P( D; D; K. M                end;: _. q  [6 p/ ]
        end;
# D( C+ g1 c. |end;        -- of the method, @) ?" C2 V- F8 V: o6 N: ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , l% z: Y3 _& L+ x
5 q. f0 b2 y: F
这是AGV_putin中arrive的method。
* K; |4 C/ @* [3 M1 c1 G& L& r  L5 H  \& e
当到达物料速度越高时,这个报警更多,
+ W$ t9 \5 \) V8 L" W4 q$ ]/ ^$ Q% b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; J' A" B! L$ |8 ^
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 C9 m) g2 a1 b8 V4 e

7 H$ C' l( b, s# s* g另外一个小建议,就是move,所有的move都可以这样
. s5 u/ t  I# {9 ?/ Yif not move() then debug end
& |$ |& O* P2 j0 }2 W/ m$ A; b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, ^2 y$ L, P3 ?" E  [plant simulation中的free libraries有AGV模板,
$ I! {" g: K, `7 I- k里面也有案例。& {  U0 d& p  |5 T/ j3 m0 b# {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 j0 c6 _5 r8 M" Y) n8 q

4 o; b; [6 L! m% F% U3 W我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& n+ l8 ~4 n% }, E; Y9 Z
% r1 H; K% ?$ w, O那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  p3 z% ?) |/ p' l1 }8 k$ m这是AGV_putin中arrive的method。1 \) p5 X- n8 G! g

: ~$ C8 B2 S& T7 J5 t, s  f! u当到达物料速度越高时,这个报警更多,
5 Y, J0 n5 e) e0 b" s" R' Z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-23 02:24 , Processed in 0.017744 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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