设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10077|回复: 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'
  w9 ~" C" C, x8 |3 I# r" c# c*/
; k1 ^5 h7 z6 z( N) z+ ois
' ]8 x: B2 g% r, V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* M+ b. M" a- H) I' d' }8 t* j
do* D6 B- ^" W  {5 \/ }4 N7 K5 d
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ R6 w9 h4 f4 i+ g$ {$ G% d
        if current = @.Destination -- else return
4 J- U0 X9 P+ j% R0 a* k        then: `( O& [* v; {/ B) K* h
                @.Destination := void;: {, r) g1 ]6 ^- D+ d
                if @.occupied then7 X$ K! p! o: H0 X: i
                        part := @.cont;, t; F2 V3 p- W- P0 F
                        @.transpOrder := void;+ Y/ v/ y5 D$ v. [( c2 a9 G' e
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ A' p! \, V$ s! s/ h6 f) [4 S- t/ u                                @,root.eventcontroller.simTime);
3 U( Q- A, o/ S$ p: Y+ X, [$ d                        @.HasOrder := false;0 h9 {9 F& @! m( F& U
                        @.DrivingHome := true;1 A3 ]( B+ K+ p. |$ O7 l2 Y" w+ P7 h
                        rgManager.tryToStartTransOrder;
/ x0 ^' V, n6 z2 C* T" Q( Z                        if @.Destination = void
. N9 R4 T: s7 F+ \5 G( d9 B% e; {( I                        then -- no transport order for vehicle @
# M( {" }$ z: e                                @.Destination :=
8 I2 j  b$ `! m; \/ t                                rgManager.nearestFreeStation(@,track.~);% ~' U/ n* i- y
                                newDirection(@);   # J( ]$ ^' b; f# f% I
                                if @.Destination /= void then% a* e' ~+ ]8 {' X4 O
                                        @.Destination.NumReservation :=* n4 G# W. n  ^
                                        @.Destination.NumReservation + 1;# n( I9 X- ^2 E" `
                                end;
; o" j8 F6 C9 _                                @.CurrIcon := "drivingHome";
0 `- \5 K  Z" n7 U5 \/ z                                @.DrivingHome := true;7 j# c* f4 p7 V* |! ^
                        end;8 r5 l6 {0 o" V% w5 y' B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 n* A: A# Z: q/ b, x, B
                        part := @.transpOrder;
, m4 [: ?( v, ?7 D. h: e                        part.move(@);-- load part" w- j1 l, p) D
                        @.CurrIcon := "load";
7 \  y/ C' D6 W7 O                        GlobalDistObj := part.globDestination;5 Z4 V, I# E5 C$ i0 \. {
                        assignLObj := rgmanager.rgAssignL;* L" r) j+ a' D# T7 m
                        row := assignLObj.getRowNo(GlobalDistObj);
0 o; J; \& i/ u( @                        if Row = -1 then -- since 70& }* @8 e+ ^, M9 I4 t. \
                                if lan=1 then% f5 j- J3 b( V' }! n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! X- n1 F: e( _+ g+ b
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ F. }3 e: p9 Z  a& x, M' }                                else
7 e5 G3 P& r# u0 m8 K* l                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 H3 Y! P. q+ b7 q' I0 e                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 l5 }' B8 u) {; y+ v. M                                end;0 f* \* y" d- t% n0 Z
                        else
2 r* I1 n1 ^6 ]9 r                                @.Destination := assignLObj[1,row];
* u0 g' o$ {4 G0 e" ]: e                        end;                       
  J1 M3 P- j1 }. d+ M( c                        newDirection(@);" g/ r" B, r4 f
                        @.HasOrder := true;
2 N4 J  c' \' k                end;
# r7 \! U( \0 M( x# a        end;
' w) w3 k3 e7 v9 ]1 {end;        -- of the method9 Q; m6 S; e0 m2 {. M( D6 S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ B4 U8 F$ ], P3 U
+ Q: Y/ X' X) C0 m# U$ u& L这是AGV_putin中arrive的method。2 J9 n' L( D. Z% v' f0 e; _  E
9 ], i' y& ?* ?( `$ V1 P
当到达物料速度越高时,这个报警更多,* _0 {! c3 d" Z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. s# [' ?$ z! O+ _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 l* Q  B0 ~/ |% O3 X7 S+ K; v" P. [% a  J' w( J
另外一个小建议,就是move,所有的move都可以这样/ y) ?' a9 G) x( D: H- p+ }, I: d. F
if not move() then debug end
. d% l$ ^$ g; s这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 i/ U# j* c/ g
plant simulation中的free libraries有AGV模板,/ R2 R" k! e& P  L8 Q* t: h+ H+ L
里面也有案例。( W# d) D$ D+ i9 O+ S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ M1 `- [' z5 H1 n" r" Y& Q
* C% V+ L  E& F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % a% Q& U$ z. U8 M
3 a9 M3 a; U7 \5 P) O4 G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, v2 ~* ~# Z2 @: q, ]这是AGV_putin中arrive的method。
: x! T' d# P+ P0 E# N! y+ `, B9 j0 i' Z1 p# t
当到达物料速度越高时,这个报警更多,
0 \! \9 t2 M! h+ o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-12 01:32 , Processed in 0.018499 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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