设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9622|回复: 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'  s! n- Q8 ^! l$ S$ L9 a
*/$ I0 L& P" X7 P0 X9 k+ \7 ]
is
: U' z% d0 W5 J( d* J        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ |7 K6 v' c/ C6 n
do9 i3 w- l1 G, E- S+ l! [
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- g* w- M1 ~9 i0 }        if current = @.Destination -- else return! c4 {' t! m* i  x: a1 {' @
        then
. n2 D5 y: N2 ]  l, {5 p# e                @.Destination := void;7 Y9 H: E& J# m/ S& H
                if @.occupied then
+ d4 \( n  p8 F8 u8 P) e                        part := @.cont;
% g$ ^( C  D- Y3 C2 P& A+ V                        @.transpOrder := void;* l9 o  e" f1 G
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; Y6 H* k5 ]1 R- n' w
                                @,root.eventcontroller.simTime);( F* I$ v; L. [9 @8 l" a, |
                        @.HasOrder := false;
  D* K* |  b( A, ~( w) X9 \. ^                        @.DrivingHome := true;
+ O6 Z( M2 X: e9 r) `4 C                        rgManager.tryToStartTransOrder;. M7 k1 O5 E! A
                        if @.Destination = void
# o& n) ~5 G" G; I/ X                        then -- no transport order for vehicle @, s9 K5 q4 `( t$ E$ M9 j
                                @.Destination :=; x2 b& {6 L% m% M% _* J
                                rgManager.nearestFreeStation(@,track.~);: q( Z) Y( D8 _% K# @' B/ m# p/ N& Y
                                newDirection(@);   3 a4 ?" Y& h$ {. d; r
                                if @.Destination /= void then' K2 _. v5 e. a: E! ^1 x/ M: `
                                        @.Destination.NumReservation :=
$ \3 f! m0 c4 K. e9 g                                        @.Destination.NumReservation + 1;
* A& f# k1 g5 H/ y- z- ?+ I                                end;& U7 V9 v/ {* K& a
                                @.CurrIcon := "drivingHome";, z/ E' k; s7 V* {0 Z- G
                                @.DrivingHome := true;1 N! j. w% _( C" r; e9 O% g2 u* q% {
                        end;; O" I: @0 Z0 o2 ]- L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: S/ N. I  X" G5 R; M* \                        part := @.transpOrder;
# f( z* r* i: _8 p$ W                        part.move(@);-- load part
9 P# o: v- T' K$ {6 x. q8 X                        @.CurrIcon := "load";5 q. u2 x7 f2 X0 @5 X7 ~  ]
                        GlobalDistObj := part.globDestination;5 I' K- i- g" k2 L1 H
                        assignLObj := rgmanager.rgAssignL;
- B- a* X% o+ X& H7 m$ }0 f                        row := assignLObj.getRowNo(GlobalDistObj);
. C0 E- }4 u) [8 _1 \                        if Row = -1 then -- since 704 O3 S3 I# C9 L& o
                                if lan=1 then4 ]6 c0 Y: G! m! u! i; i; x0 A
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- J  J+ y/ T% H" E5 V5 E
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" X$ l$ ^& l! x2 D9 w- f
                                else
. ]) {# x# e$ a) O: C. F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 ~5 r6 m$ Q, f- F0 K: I                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ Y2 k" q* L. B                                end;2 ]: r! T" l- w  q: N3 m( n9 T
                        else
+ x% h$ V2 y* B. A0 p$ t                                @.Destination := assignLObj[1,row];
6 I8 Z5 k1 A0 O' `. C                        end;                       
) G: f4 v1 b4 t. W                        newDirection(@);
, i. V6 P: n8 Y# z0 L                        @.HasOrder := true;9 M9 \& b* F8 D4 @% q; M- G
                end;
8 D$ u& F: J- e4 A3 h* y$ Q2 K        end;" o+ _, w+ v* E
end;        -- of the method( z% P5 X8 ~3 _5 P2 ^8 R, c: P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) W$ r9 l. _) g; t# t& }1 K
* c  y- L+ V3 i5 o, R这是AGV_putin中arrive的method。9 d! t! f" I/ T( S/ i' j; |9 U, r. Q
9 S  Q$ C! j' B/ x: M9 G
当到达物料速度越高时,这个报警更多,1 g9 J: x, B5 S- p: e1 d7 h$ [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) D( h% s7 \1 d2 |- z. W; l# j  h程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ Q- w! A) w3 G) T6 y$ y- k* [- n3 ^

; H/ x3 q' R+ s& i" ?* d/ P另外一个小建议,就是move,所有的move都可以这样
5 S( r" i. E7 @9 U' sif not move() then debug end
8 M: g2 t/ W: T* E0 K- F2 G1 [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 A9 P9 Q5 _4 J! S
plant simulation中的free libraries有AGV模板,
+ K) F/ C( z$ R7 D" [, P里面也有案例。
6 z6 H$ L' p  B0 v1 Q% \我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 ?8 b9 B! V1 G6 M5 w$ i, @

4 a7 Z* u3 S. e$ B我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ |$ i; A( x3 n. x7 v, x
9 q5 i- R; _, I+ R4 b  }2 |那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - @# q+ a; ?! j- R1 ]& j7 I4 T
这是AGV_putin中arrive的method。
% x. w) A# l# d, d6 D6 m
5 O' Z4 H7 L6 a+ h3 O4 i当到达物料速度越高时,这个报警更多,

2 u! c2 A! `: s8 i/ _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-12 09:49 , Processed in 0.017200 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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