设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4939|回复: 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'
5 e6 x& u  O6 ~*/; i  J1 @: }# |
is7 [/ d3 d0 Q1 D% s
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: E! e, U, A5 f1 O* J2 Y  m# mdo* p+ [2 G3 z+ g( ^  U* x! @
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 l1 q/ G& f5 k; n% C. c
        if current = @.Destination -- else return5 ~2 {) `( x+ m. t" k6 S: k- ^1 P
        then
) ]; g2 o  D" R8 |                @.Destination := void;" {  b- z' C6 }7 i% \  r
                if @.occupied then
6 k  c; p: o: Q4 U7 `                        part := @.cont;. q- e7 ]3 M6 L, C
                        @.transpOrder := void;
! V, }9 a# R8 I8 G0 e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 q$ p! U% N+ w! U% ]2 r1 K8 K# u3 @                                @,root.eventcontroller.simTime);; W  W* E+ o1 s
                        @.HasOrder := false;
7 }) f+ W: X7 N! e                        @.DrivingHome := true;
: C+ S2 z; ^; G- x                        rgManager.tryToStartTransOrder;
# ]$ x" ^/ [. w/ n! |                        if @.Destination = void
! o. r7 c  K3 H/ Z# `& W; }: O                        then -- no transport order for vehicle @: n& z# q2 M: v9 _- I: c, x' b
                                @.Destination :=. e7 Y; v8 i: o+ v& X! D0 ]$ N
                                rgManager.nearestFreeStation(@,track.~);/ }9 g; ~3 Z/ z' z  d
                                newDirection(@);   
/ C3 J! a" B% K$ ]3 @% r. @8 c                                if @.Destination /= void then$ Y8 r; b6 y3 M" O
                                        @.Destination.NumReservation :=/ _6 H. C. e! y" v# u
                                        @.Destination.NumReservation + 1;
, E% H/ m# r. N! `' Z# p                                end;
( ^0 U: c8 u/ j3 e* P                                @.CurrIcon := "drivingHome";
  y) i. ~; W; s( G4 G  a+ g                                @.DrivingHome := true;
% u% |( m( e: H8 k7 T- S+ a% U                        end;
1 S+ M4 n  K1 X' n/ A# ?4 Z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 y" c0 @" B0 o/ [                        part := @.transpOrder;
: x2 A4 k" F% W; c9 @0 A7 X  t- x                        part.move(@);-- load part8 p4 q8 ~: k" ]; u
                        @.CurrIcon := "load";( v# Q( e% o1 P; C4 C/ R
                        GlobalDistObj := part.globDestination;  c0 y: `) K! A0 x0 N
                        assignLObj := rgmanager.rgAssignL;3 e- F6 k9 g1 {( C9 o% n
                        row := assignLObj.getRowNo(GlobalDistObj);
9 n  s4 H- R8 L* _3 i9 b- P$ o' J( B                        if Row = -1 then -- since 70
3 q) O# I, q' ~. K7 Z' f0 f+ a                                if lan=1 then
; H. A, O) Y: n' |/ G- X                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% T0 R$ p7 q6 J) ?" s3 v
                                                to_str("in der Andockstation: \"",?.~.name,"\""));. e" a2 O; e& Q7 Q
                                else- f2 V/ ?1 R9 N  a7 L
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" [& |7 z/ M. _9 S# A  T' T                                                to_str("in docking station: \"",?.~.name,"\""));                               
( x7 Z3 ]3 W4 Y6 e" t1 H                                end;
, {' Q2 D9 W! [, m                        else
3 w: k  [4 a: U" x3 W                                @.Destination := assignLObj[1,row];
0 U+ T1 m+ T% w. t6 N                        end;                        % M6 ^' B5 l5 ^0 J8 J
                        newDirection(@);
/ _6 T3 G/ {& Z/ u( x                        @.HasOrder := true;
, ^+ {* C6 W7 m% |# v. a2 M                end;2 U7 t# ?6 j; o3 \2 r8 L/ n
        end;
5 s6 H9 G. ^7 R7 e' v7 w5 gend;        -- of the method" S* f% Z' A: y+ ~1 ?' V8 I, j- c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : Q/ t/ o4 {( {+ N9 }' z5 ~
2 S" g4 u  f. U* F6 O; d' c+ F. w& k
这是AGV_putin中arrive的method。
1 ]( k1 _% Z/ ?' F/ [6 k
4 `& h) f+ @% ?+ `0 G当到达物料速度越高时,这个报警更多,3 X. l. v* b( ^) D$ Z$ b4 [$ W5 ^6 G8 }
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: A" [6 M( D. C; ]' V$ y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% t+ j1 p0 ^) q# {+ B' [+ v4 @3 r5 R+ `" n4 o
另外一个小建议,就是move,所有的move都可以这样
- [3 V; ^! t: Z- pif not move() then debug end
& n& I& D8 z+ R8 X这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 m7 p8 u" A' H3 gplant simulation中的free libraries有AGV模板,
$ V' Z  c5 A$ w& H( r' V% m7 I7 M里面也有案例。; R' C, ~+ o, a3 ?, x% `/ U
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. s. A$ Q5 l3 j, T( R3 o: s. @9 N
2 s0 O! _/ l3 h0 h- n1 ^# i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  U# {- F* T1 x- `- L4 N2 [7 ^8 c' K. i5 n8 d8 {: e
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* o6 D9 t, K; @+ q1 y这是AGV_putin中arrive的method。2 q2 K9 A+ C8 t; x* X  E/ Z$ `5 @

8 ~: x: d1 W# ^" {当到达物料速度越高时,这个报警更多,

% D8 a) E& [8 ~另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-14 18:10 , Processed in 0.016729 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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