设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6343|回复: 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'( h% B; T0 a( |
*/
& {! o4 Y/ C% W2 V& p# wis4 x# R# T2 U% Q/ Z2 E
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 R4 X8 `6 I) y% ddo' Q0 y1 C' M( W$ D  f# W9 B9 J
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! ~( r! }; @( b$ g- u# F. [" {( ]        if current = @.Destination -- else return/ B& S' U% N6 E9 i% W
        then
2 i; d2 {! O6 k2 r8 L7 L                @.Destination := void;
" Y, \1 {9 D+ y# a/ ^                if @.occupied then
9 K% \7 t# j4 \                        part := @.cont;
+ G2 r' A' r# |* X* D7 r! u6 m* q                        @.transpOrder := void;
5 V7 b* I" I. `2 K4 k" r                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' `8 A+ |- a! c
                                @,root.eventcontroller.simTime);( ?$ [" M6 }! K. c! B  J
                        @.HasOrder := false;# W8 C" d4 B0 @! w) n
                        @.DrivingHome := true;* H# T" N- o$ V; l! Z9 n
                        rgManager.tryToStartTransOrder;
# m3 z0 W8 D* N: t1 Y7 g                        if @.Destination = void# o9 h& i/ W) \1 X% f+ e4 Z( ?
                        then -- no transport order for vehicle @
! F0 v% W6 i2 D9 H" h                                @.Destination :=
% ^$ C. a2 L( a+ x# A                                rgManager.nearestFreeStation(@,track.~);/ n" Y$ B) `5 d' j7 g% y! }
                                newDirection(@);   
( P$ Q/ h' d) M3 l                                if @.Destination /= void then
/ w* b" D3 F2 g1 X9 }/ X; E& a                                        @.Destination.NumReservation :=
3 V: E/ t! T0 s7 N- C- V; W                                        @.Destination.NumReservation + 1;
& l3 R- z/ D8 v1 u                                end;5 ]! C" m" I3 K+ e( Y7 u0 g
                                @.CurrIcon := "drivingHome";
3 T2 @+ X* D! G" ?' `# q/ v                                @.DrivingHome := true;4 A. \* c6 Q2 d* F7 D# B$ W, v
                        end;
" G' ]4 X$ ]+ Q3 P3 l- T% u                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 i, P% e) {4 V5 x) F8 I0 I
                        part := @.transpOrder;8 Z) e' n' A: Y$ h9 ]
                        part.move(@);-- load part
2 m4 d+ k: H( x" q                        @.CurrIcon := "load";
, g4 |7 L* Z7 t+ I$ i                        GlobalDistObj := part.globDestination;
9 G7 g% \! a, E% x/ K" `                        assignLObj := rgmanager.rgAssignL;. m' O0 M' n) v  n
                        row := assignLObj.getRowNo(GlobalDistObj);
1 \% {( a- [: R$ k6 s  e                        if Row = -1 then -- since 70
! ~5 J/ R7 v2 f9 i7 N                                if lan=1 then
3 ~1 P% [0 t/ c2 _7 W3 t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% o+ B5 |/ a& |. k# ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 J+ V+ j0 s. c
                                else8 x" g5 w/ P8 n# n# o- P, N* c+ ^
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 g3 X7 B- g6 y* q4 l8 b4 v8 d+ O
                                                to_str("in docking station: \"",?.~.name,"\""));                                ! A6 A! N: B& B8 @
                                end;6 V  P+ V/ B: `
                        else
1 N, p5 N% g2 B                                @.Destination := assignLObj[1,row];) I# L8 I! q9 [& r6 z' ~5 _* K  ]
                        end;                        3 l3 E3 E7 J1 X9 N
                        newDirection(@);& ^* Y2 R. e5 X; A( P/ d# U! p
                        @.HasOrder := true;
+ |( V$ q) U: U8 C( b% \                end;
9 h' l& y0 u$ ?8 u; q, n+ d/ N        end;
# k9 D5 c. U9 h8 I5 O" {end;        -- of the method! z: s2 {1 o9 r' V3 ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - j7 s/ l; W" l' h6 u3 i* ]: N4 k% [, F

6 `; m6 {* r' r: R5 }1 k, Q! a这是AGV_putin中arrive的method。
  Z) l2 k) Z( R  b
& Q" a& ~, w2 K9 z当到达物料速度越高时,这个报警更多,8 n* O) g# `& R5 L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! g1 f, d4 J9 [3 C3 @  t
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 ?8 @# _& [) f8 ]$ ?2 s
1 r4 z$ x! g; u7 X) t* r另外一个小建议,就是move,所有的move都可以这样
- \$ ~  ~& K1 C  o! Q5 c, o" Yif not move() then debug end
- i1 t( A# |1 B) n' h8 J; Q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ x8 z5 B! r. B+ x; k
plant simulation中的free libraries有AGV模板,
2 R& k, }6 h9 t6 W( J5 q& p, }. k5 ^里面也有案例。- H: ~& c+ z: B0 _& u* x
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: i8 _0 {2 u2 q4 w8 @
3 O8 U# \) [1 v/ _9 |! S
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ u6 ^- f( @/ F) G' S
0 U1 e7 \6 l) Q- [) N( x那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 @: h0 n5 z4 {9 p: \3 c; y8 W这是AGV_putin中arrive的method。+ ?' l% L$ f. n- ^' e2 h$ `, `: y: g) e

8 D+ `& c0 S" v! ?1 N1 J当到达物料速度越高时,这个报警更多,
/ V$ U. A/ A8 Y! q" E  U. @
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-31 20:40 , Processed in 0.021358 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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