设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7131|回复: 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- y' ~1 ?$ R6 Z7 p8 E*/
: g3 W0 F  ?9 m& p* d& v% Jis# B, u) Y( M$ G+ u; W: F/ g$ J
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) N% I" U8 h5 F
do
6 a+ w- J' m/ S+ A        Lan := rootfolder.Internal.Tools.AOLlanguage;$ c, l* V0 j" j$ [, V
        if current = @.Destination -- else return
# o( ~! g6 z1 Q9 B        then
, W7 h; N( e$ U) t8 Q6 [; U; h                @.Destination := void;
- S. L* B$ D: x9 |; F! \                if @.occupied then
8 T6 c7 F# C% H, S                        part := @.cont;& r2 M& R6 ^/ F( A: R. ?$ _7 z
                        @.transpOrder := void;  a: Q- G# j& x8 f1 g, q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' G3 p$ f0 F9 ?1 \) d; i
                                @,root.eventcontroller.simTime);
7 W  A% n5 h6 a/ r" f/ B                        @.HasOrder := false;
- y$ o2 |# A5 K! t0 s' O. a6 i/ t: n                        @.DrivingHome := true;4 Y3 D& _( c, L+ @0 T8 y7 U) t
                        rgManager.tryToStartTransOrder;
/ _1 \: j! z. p3 R1 {4 A8 t: u) t                        if @.Destination = void
1 V5 {' a" [! |9 J) l$ e                        then -- no transport order for vehicle @
! B9 O7 \( G+ J# R                                @.Destination :=
- W, d/ o8 J' P2 Y- S, O                                rgManager.nearestFreeStation(@,track.~);1 ^( J7 ?. s/ C8 `- M! Y! }, [
                                newDirection(@);   9 w/ P" D8 ~2 N0 ~
                                if @.Destination /= void then/ T* L  Q/ H' }! A
                                        @.Destination.NumReservation :=( |+ s' @& S; u: ^' F# N
                                        @.Destination.NumReservation + 1;
9 N: h  V& u5 l- I8 {) A                                end;
& F' m! m" s$ ^8 o- `                                @.CurrIcon := "drivingHome";% O9 @( a: T% A$ K2 C, A
                                @.DrivingHome := true;
4 h, Y% N" C: w& v; v: k3 w( y                        end;
6 ]' c3 ]( I3 }/ c9 w; @# f9 t: W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ p- C, p: F% {3 ~" v9 ^1 m                        part := @.transpOrder;( X% _1 C6 @+ g; }3 Z% U; m
                        part.move(@);-- load part
& Y3 @4 y/ i% e( u+ [6 |                        @.CurrIcon := "load";
0 C, ]* ^) p! b& j                        GlobalDistObj := part.globDestination;
  }) M  n" b  @# `+ P! ~, j2 E& v                        assignLObj := rgmanager.rgAssignL;
$ N# z& e) m. J3 q! V9 O0 ]/ J                        row := assignLObj.getRowNo(GlobalDistObj);
! w% H8 {( Y# z5 s                        if Row = -1 then -- since 70
; `( f5 ^6 U0 V* y8 F                                if lan=1 then
7 o! m) s$ v1 Z% v/ x: e                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 Q+ u. ]' X8 G' a% Q- |                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 L( o! ?+ ]: }7 A
                                else
+ @* I5 g. T8 O0 J! c( |  S                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ T7 Z1 h+ R9 r  c- C5 K
                                                to_str("in docking station: \"",?.~.name,"\""));                                  W: [& n- Q* u. D. P
                                end;2 z9 m; `" Y+ g! _
                        else
5 C8 I: a/ N6 m# t2 R: c                                @.Destination := assignLObj[1,row];
3 G/ F, _4 i4 ]; L' Z                        end;                        " I! c' {, A' t1 E/ n% t
                        newDirection(@);" Y4 Q" {9 Y* P0 U7 ]/ H$ y
                        @.HasOrder := true;0 }+ |& `0 {5 ~: j0 @! o5 Z
                end;. W9 K( R+ x4 D8 {8 P
        end;" L4 Y' k9 U3 @1 F; r4 G. P
end;        -- of the method3 p+ w% s0 j  a6 |, A2 s0 n  O  A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" |" s! r; ?$ X2 R* D! e" u6 ^
( T3 p+ Z6 M1 n# [这是AGV_putin中arrive的method。) J' B- }& n* o& X" G6 y

& w' b, [' |- ~% v5 u当到达物料速度越高时,这个报警更多,1 @: u( }1 s$ ^" K0 O- G9 _% F
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 L8 H6 C% u6 R( |8 T程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, _  e% [& X* ?+ W7 K6 _) m# u/ S% z0 |9 X, |; a6 w6 E/ r  e
另外一个小建议,就是move,所有的move都可以这样
+ x3 q1 C$ |5 ?9 T9 ?if not move() then debug end
. v. N8 H5 L2 K/ f1 D% k这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, r/ G, ]9 m1 R' v* H  g
plant simulation中的free libraries有AGV模板,* L9 U. [- s$ a
里面也有案例。# D* c# t+ h2 t4 ~& E; }2 M5 Y% u
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, A+ p" Y9 j$ V  O

. i7 p$ y& ]+ b. I8 u# L我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " F) s' ^0 Q$ J$ _1 j1 ^! d3 W

! Q0 G  T) k) L  ^( `; z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 z  @* s- q7 W5 s8 G9 B
这是AGV_putin中arrive的method。
/ k$ ^- _) S  C( K" A/ r& c. F2 s' |! j; J$ P
当到达物料速度越高时,这个报警更多,
- b7 t/ @9 a1 W3 c
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 14:31 , Processed in 0.018634 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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