设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8761|回复: 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'
# W- N$ c6 v9 W% \8 [/ a*/
5 O! M0 T# f8 P% J6 n5 I1 `is
4 Y/ V( z! U' `; L0 K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 ~& P  }# g) Q" I  Wdo+ N( w9 Y" i( B$ \& r. r
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, D9 N7 d8 g+ e0 H8 Q1 K, E        if current = @.Destination -- else return9 L5 k  e1 S0 n9 P8 G
        then
' Z" C2 z) U+ z% `8 r                @.Destination := void;
% e- H; m7 X( C9 u  [' U0 v* ^3 y                if @.occupied then
5 |6 Z! K& D, o1 u& ^+ [. p                        part := @.cont;
+ R; w/ l4 S/ X% Y( {0 D                        @.transpOrder := void;( F2 q) l0 W  e# Z, c4 y9 D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* f; u7 ]0 y( z) {
                                @,root.eventcontroller.simTime);+ c; ]1 i2 B) \: t% B
                        @.HasOrder := false;
/ h4 e9 K" C0 h' R# x5 g                        @.DrivingHome := true;' A0 b2 c3 y  w) X+ M6 p
                        rgManager.tryToStartTransOrder;
& k1 y; ~; o4 a  p! v4 \% J1 O                        if @.Destination = void# Z) B% Z, y9 f1 ]
                        then -- no transport order for vehicle @
! k- i+ H3 x; X* U  [- k$ s                                @.Destination :=) f1 |& Q9 G& u. D; f3 Z1 B
                                rgManager.nearestFreeStation(@,track.~);, D3 {( p0 Q* x% F( a4 m
                                newDirection(@);   . k" c1 y7 \; H/ U1 \
                                if @.Destination /= void then
8 H& u2 A) L. q8 z                                        @.Destination.NumReservation :=
( b# f1 v; [, ~! f3 i                                        @.Destination.NumReservation + 1;
8 w1 F& ?0 B& k- S  }# C/ L- P& g                                end;
1 D- v9 ]5 W1 {) j- N                                @.CurrIcon := "drivingHome";* X: m7 p- G) |1 p% x( `" @) k
                                @.DrivingHome := true;* S) j! V- f9 f8 d: \' A
                        end;$ U1 o& Y0 l; S. @$ m5 P. e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! Z9 m- c* f; i$ R6 C' ^                        part := @.transpOrder;
7 C) {. e8 t* M& S& N% O7 M& \                        part.move(@);-- load part
- X. E; \/ B, _2 V: ^. [! e& ^                        @.CurrIcon := "load";" ~0 I! }* c% _& N) }
                        GlobalDistObj := part.globDestination;, u: _$ `6 q( f/ }& |4 ^; p
                        assignLObj := rgmanager.rgAssignL;( V0 v# O' k' a$ ]7 T
                        row := assignLObj.getRowNo(GlobalDistObj);% V5 @# M4 l+ w7 l
                        if Row = -1 then -- since 707 M. x7 g/ a) P
                                if lan=1 then  _* p0 F$ n# C0 \. D9 o( ]! O
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! R( I" _( j3 `' |0 @' v
                                                to_str("in der Andockstation: \"",?.~.name,"\""));: a) N4 c3 l& X7 R# J& O
                                else+ @2 h5 Y" K: S* G! l5 s
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 y$ l5 f' U5 B- i8 v! V                                                to_str("in docking station: \"",?.~.name,"\""));                                6 ~+ i4 b; O4 E
                                end;& F: D0 O" u3 |
                        else# e* T3 o0 ~; y! w" ~: a
                                @.Destination := assignLObj[1,row];4 I2 t: \, o, e& S' s
                        end;                        0 o: e% z0 z# _% J
                        newDirection(@);# P/ M7 ]( B# [/ @8 V
                        @.HasOrder := true;5 U" `1 h5 w, S; g! S$ Y, [3 r0 y
                end;
& z3 y7 Z9 b6 ?8 T( ^6 \        end;* r( z7 [% X( x
end;        -- of the method
* \4 {1 Q& S7 L2 R/ c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' Z+ K3 Q- W, p
1 X! e4 c! C; s/ O$ F" j
这是AGV_putin中arrive的method。3 u3 x. }# h3 @) O" e2 n5 K
$ S7 J( c2 [0 J' K" J  J/ J1 u9 F
当到达物料速度越高时,这个报警更多,
6 z, F% o7 E* s可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' q1 y, W  X2 R& }% x程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* a/ G* U9 V' G& t0 ^$ I( V
0 V& h, I! m6 j( V, s. K' l8 ?. K另外一个小建议,就是move,所有的move都可以这样
. I. c% o0 Y6 v& O1 V* A7 _if not move() then debug end
7 m& v6 |: n8 [: ~2 Y4 m: ^这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 B$ o, K; M: j
plant simulation中的free libraries有AGV模板,
3 Y5 I% n  A+ a7 E# z' t里面也有案例。. j, M3 j+ @* i" t
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 B' i7 _7 N8 q/ q' c) R) |2 j! g5 d( q! p  J2 D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & u' y  L, c& R; a' I

3 b) Y- Y5 n2 q$ T3 C6 _# _% T那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- B& k4 G/ @& ]& e这是AGV_putin中arrive的method。
( y: M: C# J$ d/ O( j
* ^2 v& K3 g) B+ f当到达物料速度越高时,这个报警更多,

/ c1 g  F9 ]3 V+ H  R另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-24 23:44 , Processed in 0.015774 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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