设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6116|回复: 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'* x. f$ h: t8 _3 ^
*/
' j' F4 z/ E" C" G1 gis
  c6 e1 b1 `* l        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ q  {6 S" V9 |3 s# Wdo
. X8 t1 Q! E3 z) h# \- ^6 ^6 A4 J        Lan := rootfolder.Internal.Tools.AOLlanguage;
. I! {8 A& z; L- g) ^, o3 M        if current = @.Destination -- else return
3 H) H5 {' h1 H* x: a        then
- E( ]( v1 Z' m3 z. a8 W                @.Destination := void;$ U0 Y- i- F5 x7 {6 m8 y
                if @.occupied then
9 I" q" H/ p; Q  ]; k( P                        part := @.cont;) p9 S/ A1 }2 F) K1 b0 l# }
                        @.transpOrder := void;
  J4 J; X1 K) Z- }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: |; z, S) G/ B3 n& h$ V" O2 E6 w3 _
                                @,root.eventcontroller.simTime);: I  }) v" y; i- O: W5 B: S
                        @.HasOrder := false;/ q3 S! C" K0 a" V( H
                        @.DrivingHome := true;
; Y0 u7 K5 N8 B4 u8 r  i0 m+ p                        rgManager.tryToStartTransOrder;
% z, r  d5 x5 B% Q                        if @.Destination = void5 ]0 B3 H8 K8 w% [3 ]3 ?8 D/ M
                        then -- no transport order for vehicle @1 i4 l5 W  _. u$ u: @& [
                                @.Destination :=
9 C4 K- M3 D& ^6 b                                rgManager.nearestFreeStation(@,track.~);
% a5 g8 y! t- }( `# S" i                                newDirection(@);   
) |& W) R7 |) i# K/ f$ k9 I                                if @.Destination /= void then. M# {0 g- B' A1 S! ~* i; f
                                        @.Destination.NumReservation :=
4 W& e3 T* j0 M/ |) q+ a                                        @.Destination.NumReservation + 1;( u+ k9 T5 w* l' r  n9 ?
                                end;8 `' d# K+ d& f6 x/ {2 j
                                @.CurrIcon := "drivingHome";3 r" j3 _; q! z4 m/ _# m+ w
                                @.DrivingHome := true;4 `0 u; {) f9 i# U8 m
                        end;
0 a) ]3 Q- e/ F. G* D6 f& Z0 l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; _2 o1 o3 i8 \  c" A( }
                        part := @.transpOrder;' n0 i" b) R, m% P+ u, [
                        part.move(@);-- load part
3 p8 W# V! B  z& w! P. S1 q1 Z                        @.CurrIcon := "load";( O+ \; G0 |: r4 X9 l* V. V
                        GlobalDistObj := part.globDestination;+ l1 @$ [, p  L/ U4 Y9 r
                        assignLObj := rgmanager.rgAssignL;6 R8 a2 l2 {7 b1 |
                        row := assignLObj.getRowNo(GlobalDistObj);+ q2 F% e$ e* N- c5 C9 U
                        if Row = -1 then -- since 70
% W& p) j9 u2 S9 s# U% X                                if lan=1 then
- J0 `9 f) V8 ]0 T9 t% F                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! a3 ?& Z/ n2 ^0 R- c: m                                                to_str("in der Andockstation: \"",?.~.name,"\""));* H8 ]- d% b0 m' d1 F
                                else# G' p1 I" j& k  Z6 U* k2 i5 g; S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," ~+ }8 l7 w0 o$ \2 `
                                                to_str("in docking station: \"",?.~.name,"\""));                                - j- ?' d" [) J* U
                                end;( y) z9 \! r! e: O1 L9 k6 @7 y
                        else9 E1 `' X7 I' B( o# v. n
                                @.Destination := assignLObj[1,row];3 k2 v& ~3 i6 D' w. `
                        end;                       
7 ]( ~  m( T8 l& V                        newDirection(@);0 v% f9 [9 m: p8 ~$ ~, v9 I4 [
                        @.HasOrder := true;
; N6 q1 D- @% n2 y$ t# G                end;
1 s1 o! c( G. q5 X! t5 J) k  h1 o        end;4 g" d* d4 e8 @9 M4 r" w" O
end;        -- of the method
* e0 ^# z, d1 e4 u; s6 d# ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  U7 Y+ w3 z/ z. P* c  m- p0 d2 o( z9 U  Q0 G" R1 q: d* A* F3 j
这是AGV_putin中arrive的method。9 B* E" ?+ F) j7 ?/ _

% d: w# [9 d  Y0 q+ U0 @当到达物料速度越高时,这个报警更多,8 C; S9 _; W4 p0 k  F8 I! I; m% }4 A
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# d- w, z& M7 I9 K! ]" v
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; V) E1 h8 B5 `) G8 ]

3 D2 e; K4 S2 R1 X: X$ P+ ^另外一个小建议,就是move,所有的move都可以这样
8 o& ~% C' m1 n/ Tif not move() then debug end
8 q1 p% d+ {) V9 R. T这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 D% p6 R! o& P9 n" U! n5 O7 L" n1 nplant simulation中的free libraries有AGV模板,
; m) |* I# X: r/ t里面也有案例。$ l' d& X' b# |  |6 m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: I, J0 f: L6 f7 g" y- @! y
( S8 r) a4 j, Z5 y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 G( B6 |$ w% C
+ f, x" c# X. P那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) g& |$ S% Y/ I5 X这是AGV_putin中arrive的method。
8 ]0 z% A) I2 x( n8 ?2 \' r8 ?9 [" U1 X; s* A" X
当到达物料速度越高时,这个报警更多,
# t- U0 V7 g% X* Z) E
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-19 13:22 , Processed in 0.021369 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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