设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6805|回复: 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'# B* T3 J& x# U9 w
*/
1 Q( }, q! u) S5 Z5 C0 K' H; Q5 his
, [" j, J% `; A7 O- Z' ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 a- R' F$ x* D2 g9 b5 _. c, r
do
2 @! H% B3 u1 R" w  @' v  g3 S        Lan := rootfolder.Internal.Tools.AOLlanguage;2 r% a) q7 ]+ Y5 |
        if current = @.Destination -- else return
  e: S7 D9 ?0 p8 D8 {% _        then
: s0 s, C1 D* o                @.Destination := void;& M/ `4 G" K1 {& K
                if @.occupied then
2 x/ U4 P' ~' Q                        part := @.cont;
( E  N. D8 |# @                        @.transpOrder := void;; X: l' F: N$ H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: y( f! [1 ^' H% i
                                @,root.eventcontroller.simTime);9 Z1 P3 A% C) G0 W0 v9 B
                        @.HasOrder := false;
, B8 C# J' I: a; K                        @.DrivingHome := true;
" q# \# ?( x  A% e                        rgManager.tryToStartTransOrder;4 B; s. P: |/ i; e0 F
                        if @.Destination = void) S/ S4 a/ z: P+ h8 D& ]" L  h
                        then -- no transport order for vehicle @
$ q& J1 }% r! e" x  t* r                                @.Destination :=- E5 ?! N, ]& |* N9 A
                                rgManager.nearestFreeStation(@,track.~);) m: u( g) L# s8 a* w& y1 v% j
                                newDirection(@);   - _' D! a! Z3 K* C* R( M4 h$ N
                                if @.Destination /= void then
6 i/ q& r0 ]& R: X( N& P. f& N                                        @.Destination.NumReservation :=
" O! L3 W; v, t6 o- A8 T                                        @.Destination.NumReservation + 1;
" ~5 O8 g5 y2 J: D: S                                end;
, I3 c/ R, E. H* E+ S" f$ y                                @.CurrIcon := "drivingHome";, h1 P" J, n3 W' |4 V
                                @.DrivingHome := true;
- ?- d7 x% C0 o8 W( T* X% U                        end;* F+ O- `7 c* \6 ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& X1 Y; z/ f. ^+ V1 e. g& R                        part := @.transpOrder;/ `# A' W7 G+ \( p7 b; m% u
                        part.move(@);-- load part" ]: c) \& W! y8 Q2 X+ y5 n
                        @.CurrIcon := "load";- b$ H# R1 P/ l: e+ @  B
                        GlobalDistObj := part.globDestination;; j! f2 D1 x% i2 n  w. u
                        assignLObj := rgmanager.rgAssignL;
3 c! L9 ?! M0 H' c% i* q' ~                        row := assignLObj.getRowNo(GlobalDistObj);
& |+ h1 L. ]( p) n. l. k                        if Row = -1 then -- since 70
! a0 a5 e' I/ E: c0 i                                if lan=1 then; c/ P6 ^% p- U( s2 P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; `) d: C; X4 A# C4 Q6 M
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: B- `- t+ u4 a* l" r                                else
) Q/ f6 M0 W' l+ r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 a5 y) R, P8 b8 v- G0 H* p, Z                                                to_str("in docking station: \"",?.~.name,"\""));                                1 @/ q- {4 h  ~$ U+ }
                                end;
1 M: ~: F! b' P$ Y( s                        else
; f  m/ J6 T. H                                @.Destination := assignLObj[1,row];
8 e1 X: {7 [6 D) [& Y                        end;                        ! {* k: j5 {0 p2 y
                        newDirection(@);
* n2 M' G6 O# {9 }1 m                        @.HasOrder := true;* i4 |- l; b5 {* I2 e3 b
                end;
& p: C- n; x) ~( Y. K4 _        end;
8 @3 F" @/ F% i0 E/ ?: U% nend;        -- of the method! B9 Y4 ~6 C0 M0 y5 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 S* R/ p" @( i* S. R

) J- A. Q, d7 A' r这是AGV_putin中arrive的method。. k9 M- A1 W" {! [/ x- o+ A2 J" E
, ?6 U8 _/ b1 b: [9 q% e! D
当到达物料速度越高时,这个报警更多,, U. {) m9 |7 O3 Z; A, l) S' X
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, M4 r; @/ b4 @1 _程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 H7 o6 t* ~, Q/ }% W
2 Y# ~: n8 o: G6 \- N3 e' Q5 {, E+ @另外一个小建议,就是move,所有的move都可以这样
* R# ^  l: J  H1 f2 j- _( tif not move() then debug end
" J# `6 y2 u% _( W" W& h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; w1 x* |2 f$ q5 W: f, yplant simulation中的free libraries有AGV模板,3 [2 Z/ i2 E4 [
里面也有案例。
1 B+ f: Q( O. H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 R0 y5 ~( l% `
8 V) q2 @) h. U! T! d5 Y. u我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% Q! b1 y, b, l4 r' N( r( P: l* P! G$ c2 n% d3 ]
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ x  `. ?, I3 `- h; g9 h" d5 D这是AGV_putin中arrive的method。8 W, i) V5 q. H3 Q+ I+ ]9 I

5 m/ b6 o! I3 l当到达物料速度越高时,这个报警更多,

2 |  y& t$ ?' M% K2 w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-27 19:07 , Processed in 0.021635 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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