设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9783|回复: 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', ]' f! g* e; T  N. N+ o
*/
& V/ e* Y: w5 @0 `( x1 u& D! @, gis
. ]/ o) u/ G! {# w' F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  ~* I+ A! @: K3 Y& p/ g
do9 J" `5 t) b5 R, f0 V. c
        Lan := rootfolder.Internal.Tools.AOLlanguage;
. _, c# E$ ^$ E* v0 u' v        if current = @.Destination -- else return: d8 p" B% o& U! X
        then, b' C1 `& K1 m/ c+ r: d; e, ]
                @.Destination := void;
- H8 h9 V5 A6 [                if @.occupied then
3 B0 |2 m% S' I* _+ d# S                        part := @.cont;
5 m" U* ^$ G# V7 a, V2 N9 u                        @.transpOrder := void;: ]2 C5 _6 o# I4 p- m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& t' i1 [) E5 _- n- ~8 o& `
                                @,root.eventcontroller.simTime);$ C, Y- ^( t; w# |6 g
                        @.HasOrder := false;" B  S4 P4 v' M" \
                        @.DrivingHome := true;1 a# L3 [/ B. @3 c1 Q: H) S
                        rgManager.tryToStartTransOrder;5 f1 r1 \$ o5 n* v3 v% v
                        if @.Destination = void
7 u; B* ^8 Z9 [9 o, j4 V% [, V9 W                        then -- no transport order for vehicle @& k! Y5 d) e! q% z2 r( ~
                                @.Destination :=
! U! r) k+ S. W                                rgManager.nearestFreeStation(@,track.~);
( l, h* w3 ~( z                                newDirection(@);   " i/ D" d" z4 t+ r3 v+ V! J
                                if @.Destination /= void then
& x4 _6 w. a9 |0 x# ^8 e; E! u4 U                                        @.Destination.NumReservation :=
; F8 T; I. l, y* j; r+ D. n                                        @.Destination.NumReservation + 1;
  w# \& a  M9 s7 X- @                                end;$ G) q3 Y0 R* z* F! Y  F, }5 A
                                @.CurrIcon := "drivingHome";
2 ?$ T5 g- G3 Z0 h5 N3 \                                @.DrivingHome := true;
9 t9 W, o  p; G7 {/ c; l                        end;
2 ^+ n; J  W" d6 y. \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ ~9 s/ k( [4 ~( P* X! j4 B
                        part := @.transpOrder;
+ p) z) p" [. G: ]1 \9 o2 n6 P+ _) C                        part.move(@);-- load part4 Y% f+ U* {* Z, [% H3 i9 a
                        @.CurrIcon := "load";. S- W  k+ V2 @& u, u
                        GlobalDistObj := part.globDestination;8 [. I: A+ o8 E5 L* ?  W
                        assignLObj := rgmanager.rgAssignL;
, x' u" X% d8 O+ q$ O                        row := assignLObj.getRowNo(GlobalDistObj);
8 l: r0 T+ m5 q5 P" {$ t5 ?( E                        if Row = -1 then -- since 70& N  T7 }& r0 @- r
                                if lan=1 then
$ {3 O! {" r* |( Q& ]! k" v: @                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* ~& ~) u& `  }
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 |3 I$ l3 \- ?& s. h* t) Y5 k+ L                                else) c, n7 K+ D* Z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* ?/ F2 x  Q+ U5 h* p' \! F( ~2 q+ \
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' L1 D$ j' v$ B                                end;
/ R3 z- H8 p$ ~& \                        else3 y) U" M: ?8 U9 T  J9 V
                                @.Destination := assignLObj[1,row];+ ~! S5 l" V5 d" U2 h) P# O+ G) n
                        end;                       
/ |" A8 u4 p2 l                        newDirection(@);
8 o; N6 Q5 p. {# }0 A; a2 }$ N9 H: n2 {. M                        @.HasOrder := true;
5 F2 b/ F, A1 ]8 e! K* z                end;
, ?* X+ l" O. O- D4 ^        end;
! n. }" a7 E3 E+ @. e+ Send;        -- of the method
9 U9 U. y% R9 A7 |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; V% W( g. J5 @0 f! L, ]' y2 l+ x$ X# H1 F- f  g0 w
这是AGV_putin中arrive的method。8 K' J3 d' ]4 R* j6 b, ?5 u7 f9 R
0 W: |+ P  l; r" E
当到达物料速度越高时,这个报警更多,
' N0 ]6 y% u2 L可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% K; T- |7 J3 K0 |2 f8 C程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 U, j- n/ v# R8 V* R
3 p  a; N7 Y6 L9 z! y0 F+ ?7 |+ u. @: z* b
另外一个小建议,就是move,所有的move都可以这样, e$ s: x2 C. \  h7 N
if not move() then debug end
7 W0 [8 L/ b) ^' a# X这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% I4 |9 K; D! o) {* k4 uplant simulation中的free libraries有AGV模板,; p& k( A4 Q5 M/ o! z2 h8 `
里面也有案例。, c( x* w" a' Q: @( M- T0 V
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 s9 K! K. [/ ~' x

5 O; J- R1 U# ~我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 `+ E$ @6 u. R, K. E4 t4 q9 O- ?1 Y. K2 S% X: E* @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 d+ t: z4 m2 ^8 u这是AGV_putin中arrive的method。
. S" K) X2 Q: e. m9 t* D3 v) |
当到达物料速度越高时,这个报警更多,

1 D9 @, p, }4 |) C4 [另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-24 18:42 , Processed in 0.020534 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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