设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6219|回复: 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'
& e" ]' S9 o- p8 D  x$ Z*/
! Y/ c7 E( S8 R% Ais
( M& i! L# b3 e) t" S6 ^0 `  O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- A6 M( {, `/ a; X; Bdo
/ w: t! o) I. O1 n) a        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 ~3 ]% e$ S( q/ [' l7 p, f        if current = @.Destination -- else return  d3 V* z5 |/ a, T  O0 r
        then: t* E1 W9 t, Q- a/ \" g
                @.Destination := void;* U8 F$ d$ ^3 n+ x4 B
                if @.occupied then1 d! ]: k/ X1 T5 u" K0 I# j
                        part := @.cont;
+ _' t& v+ W: |0 Z" B                        @.transpOrder := void;
# j8 C: p) Q4 w, Q2 y/ @5 f                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  Z. J5 _+ @. f8 e6 O; q& C; }                                @,root.eventcontroller.simTime);
( P7 }/ M8 o9 u* H* c                        @.HasOrder := false;- i- |/ p5 v, j
                        @.DrivingHome := true;
8 r1 P4 c, |4 e; d1 _3 E                        rgManager.tryToStartTransOrder;* {! ?* M8 k* {( w4 h' R
                        if @.Destination = void
! n( v# u/ d- A5 E% o$ y                        then -- no transport order for vehicle @
7 }! {- _4 t0 ^! W, s( ^                                @.Destination :=9 y( x: U' C* ]! Y
                                rgManager.nearestFreeStation(@,track.~);8 e/ X: m9 O& U* R
                                newDirection(@);   
1 x  a5 K% C6 l2 o$ [9 `" ?                                if @.Destination /= void then! f9 f5 Y$ V3 G" i
                                        @.Destination.NumReservation :=
% F2 F: G; z  Q2 G! F6 N" A                                        @.Destination.NumReservation + 1;2 U: \* N$ A/ A+ i
                                end;$ i( w1 m6 G( m; @7 N% V& W
                                @.CurrIcon := "drivingHome";
1 u- }6 V9 _4 g; k) T; F' D3 }                                @.DrivingHome := true;
4 B  j  o0 t! n8 e6 H                        end;
0 e1 T& ~: l7 D( O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 C5 `& w' X: z$ |
                        part := @.transpOrder;
3 V( R( R  l3 y. `7 p                        part.move(@);-- load part  |! r; z' @; t* p9 w
                        @.CurrIcon := "load";
. s2 X3 M' y+ p! Q                        GlobalDistObj := part.globDestination;
  O3 }: G: Y5 Q                        assignLObj := rgmanager.rgAssignL;
; S4 L" Q: ^3 b, s0 ~! a                        row := assignLObj.getRowNo(GlobalDistObj);
9 ]0 A" C& Y5 {9 ?                        if Row = -1 then -- since 70
, u  a3 d# \  i4 X6 ?                                if lan=1 then" _: u6 [, g3 K$ w' B5 `
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 [4 z  z3 q2 o6 a% M# A                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! m; r5 e# p6 B( ~) ~4 P5 P% S7 c                                else
* C8 X, J+ I- L                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* o6 W' _" Y! E" b                                                to_str("in docking station: \"",?.~.name,"\""));                                  W  b# ~6 I4 P2 }
                                end;9 {: E% j) r& ]8 |7 P! @  O+ @
                        else
. k& o% U  t0 N( t& e9 X; k: [                                @.Destination := assignLObj[1,row];
: `8 N$ ]5 c5 A# s5 x. a2 y                        end;                       
3 M4 M: m* `( @; |* Y1 }9 f8 n                        newDirection(@);5 F9 p9 g$ `# ?) o# T
                        @.HasOrder := true;
) B1 Z1 o6 a! L/ B; {                end;
) s% x0 j6 W$ B! M$ F% R1 _) f9 f# Y        end;
# n5 X! h' L/ ^( {end;        -- of the method
; z9 `, a$ ~: w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 G, l1 \9 v% W2 ?) _' \
( B6 y" {. e6 v$ O6 A0 p. Q这是AGV_putin中arrive的method。
0 I% a/ Y- y7 n' j( C+ Q  H  @; @3 x1 o0 N% J
当到达物料速度越高时,这个报警更多,
) |9 G. p5 M: j* e1 M: U; L可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! `2 U5 H0 S) Z, D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 Y+ r- u1 O8 T( Y) [' n* E' Z/ ]: ^" _3 g% I  w& I9 j
另外一个小建议,就是move,所有的move都可以这样
8 V5 A& \( x: |% }' `5 g* Cif not move() then debug end
: X7 U  B" ~) G9 }0 X$ u6 @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' s5 ~1 z& x+ V" P
plant simulation中的free libraries有AGV模板,' l0 M$ U+ }5 t2 l: R1 ?' G/ _
里面也有案例。7 U  w! P( h" j3 [
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  _0 S6 Q) X' h* V3 ~  G2 F7 C
. y7 G+ X6 H$ f0 @! [% D% E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 Z) O5 ~) x+ O  S
+ _! @; R% {/ {8 m: Q$ z7 I$ [" b
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % S% g7 {9 i8 L* q* K9 R" `
这是AGV_putin中arrive的method。
2 p  f( _0 P! J" W/ @: [* }* T0 g9 ]$ ~( k4 A. W
当到达物料速度越高时,这个报警更多,

! E. ?6 \/ E( U8 W另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-25 11:59 , Processed in 0.017724 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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