设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9284|回复: 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'
7 l8 d1 _- d5 p( z4 D! h% c*/
# a; p; J* s  Dis1 Q- f4 ~9 C/ a1 C, p& k5 _7 S
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ H7 a* f' r2 S1 j  W) U- a( ]1 }do
* ~& y$ q0 ~- l4 ?- P        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 W4 s: y6 u& G( z8 x$ O0 z        if current = @.Destination -- else return# X) [) ?. i8 G
        then# x  `2 Q- U1 Z$ C6 Z* z  }/ ^! h
                @.Destination := void;
3 X7 N7 I8 d- D) l# G# B/ \6 s                if @.occupied then/ d( h5 l# E: L7 g+ T- S+ Z3 h5 h6 A( s
                        part := @.cont;
- F* u% F- g2 j& |                        @.transpOrder := void;  M& {8 d& j+ g' Y3 B
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 L: {1 \* @8 q" A% m                                @,root.eventcontroller.simTime);
2 D9 U& w: f' ]( k& }6 i. V                        @.HasOrder := false;5 i! n# Q9 q# Y8 B6 i
                        @.DrivingHome := true;1 S# B: |" p+ R! w) G  A9 \* Z* I3 C
                        rgManager.tryToStartTransOrder;! k- ~; p/ I( G' g
                        if @.Destination = void3 k1 a2 \: ?8 N9 B4 H
                        then -- no transport order for vehicle @
( b0 W: R% ]8 L& {4 @                                @.Destination :=
. ]. A" p' y0 r# E  Y- Z3 F                                rgManager.nearestFreeStation(@,track.~);
  f8 n# r' W+ v2 L+ m                                newDirection(@);   + F& `, b; ?  {0 W: ?
                                if @.Destination /= void then" w& x1 _4 ~% d9 M/ Y# a! A- v+ w
                                        @.Destination.NumReservation :=! G0 j+ _  ]6 ~8 o& ]
                                        @.Destination.NumReservation + 1;9 W1 ^' f# S# a  [; [9 C, Q  |& h" u, p
                                end;
3 }& n3 ?5 l+ I5 S5 B: {                                @.CurrIcon := "drivingHome";
7 h7 C# W4 ?/ v4 U: G' L3 d& u                                @.DrivingHome := true;% H9 E: L9 I/ w/ L4 }' w( Z
                        end;3 \3 J0 ^) v3 `0 N4 A0 u( ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 @: m2 G' T# H0 o& o+ X: i
                        part := @.transpOrder;
7 F5 r% N0 e+ t7 z9 \" @. x                        part.move(@);-- load part
( B5 [" w0 g% P; q                        @.CurrIcon := "load";; t5 M. N% k& w6 Y  R4 Z7 B- P. u5 Y
                        GlobalDistObj := part.globDestination;) b) o* S/ F6 d% ~! \( t
                        assignLObj := rgmanager.rgAssignL;8 Y, N7 b$ q1 t4 f, h
                        row := assignLObj.getRowNo(GlobalDistObj);  r$ O, s3 k5 v6 m" R: y- L/ i8 |
                        if Row = -1 then -- since 70
: |0 j" ?" i. |" T( R! C. \8 H% N" D6 w                                if lan=1 then
3 j" @( U5 C" c" W9 V7 T8 |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: O( Q9 K" c+ Z                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 V6 @" w1 H3 ~! i$ G8 i
                                else/ m6 b7 Z+ B) `/ C% x6 ^
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( n/ G' B$ c- V2 E9 Z/ B
                                                to_str("in docking station: \"",?.~.name,"\""));                                8 h4 b6 |4 O2 F, P1 t* w
                                end;. x+ |6 t: \* ?8 u1 G1 `
                        else* y3 }# n, F1 l/ o9 o/ q( y
                                @.Destination := assignLObj[1,row];( s8 M- S" Y: V; }+ O5 c
                        end;                        ! N1 e  [$ Z3 S7 i* ^, ?+ J
                        newDirection(@);: ~6 }( z" s" {4 I- k) U1 ~
                        @.HasOrder := true;
5 e; i8 H% a* B6 p! |$ t                end;3 o7 N& U+ G3 t; U
        end;
/ S/ w. ?& {$ t4 \$ j9 B, xend;        -- of the method7 W' }0 p# R& J* V# O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   Z* e; z0 O( G4 l# ]- _
$ _, N+ c( f4 N. x4 H; j
这是AGV_putin中arrive的method。
! a0 v3 \  _2 Q$ i; Q- u+ e
' i' S- p! M- O) N& N当到达物料速度越高时,这个报警更多,
6 V) X9 F7 V: s; M  v: _, L可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 _" R6 A+ \7 h/ ?* ^# X程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ u  t$ |. z+ G" W& l+ w8 H' E' G/ J# ?3 n
另外一个小建议,就是move,所有的move都可以这样2 e( L) e- q$ e4 W
if not move() then debug end* o9 t4 y1 s2 y. t& Z. y3 s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: Q4 B& j* l- M' i
plant simulation中的free libraries有AGV模板,- O) Y0 o- E- }  ?4 h
里面也有案例。8 G8 N6 k9 V& ?# Y8 T7 d) c
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' z1 M9 ^. \9 e5 m8 D3 |. n

  H; z7 W( f4 |  o& L- X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 [9 L9 q8 c9 F
: M8 u8 m9 _' S: S% @: R0 n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / v( S0 k- O% o  U& e3 y8 W
这是AGV_putin中arrive的method。* m8 k6 E! @& d; D0 u; ?

# e4 r: ?/ {& Q  U% D) r当到达物料速度越高时,这个报警更多,

0 s# `' m/ Z+ W0 @8 P. V另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-22 20:25 , Processed in 0.015312 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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