设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7768|回复: 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'/ D/ z/ `. l- g$ H# u1 e2 q
*/
' \, B! o- @; q) u# g# Sis; _4 F- `2 \" J, q4 i3 x. |
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 B& t* N: L2 o, @5 |) Gdo4 J7 }  `  T2 m# }) T
        Lan := rootfolder.Internal.Tools.AOLlanguage;& x) ^; x* [- y9 V* j* J
        if current = @.Destination -- else return
" A$ g* d( i, @2 w; l& P7 s( l        then
: Y" q" d8 ?+ Y/ c! y) T                @.Destination := void;
; P& Y2 c; N5 c& R0 t$ ^                if @.occupied then% Q( @2 e! m" x! F0 k
                        part := @.cont;5 f8 T; v6 _1 Z: B
                        @.transpOrder := void;! J9 ]. i/ q+ }" H* W9 |1 Q1 P
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! x+ u) z; b6 l: ^                                @,root.eventcontroller.simTime);# y; ]! a6 v. A
                        @.HasOrder := false;, z: F# n, i: j, T1 S8 A5 w
                        @.DrivingHome := true;
/ n5 N- G/ O5 \+ S! ?: @6 A                        rgManager.tryToStartTransOrder;
% N7 N2 @9 B1 w+ i& q& P# A                        if @.Destination = void2 J3 t! n5 y/ ^% ^! f+ M
                        then -- no transport order for vehicle @
/ r( J2 G& [$ G& @' [1 J+ `                                @.Destination :=
# N5 S2 o( O5 f% p                                rgManager.nearestFreeStation(@,track.~);9 k/ q% F2 S" }; W, P" g& s% f
                                newDirection(@);   
0 t& H) E: w4 U7 H& _, e                                if @.Destination /= void then
  }& L' C2 I. A* b; _! X3 U5 U                                        @.Destination.NumReservation :=
: |# E7 C3 c; \3 l                                        @.Destination.NumReservation + 1;  l* B. b7 k) j3 [: f
                                end;
* N  D0 O8 P  @0 E" I                                @.CurrIcon := "drivingHome";( U/ p4 n# O6 a
                                @.DrivingHome := true;
. v6 F+ O: N4 J3 G( g9 @- ?# K! R# l                        end;1 Z4 o, J! A& N4 [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 ^0 w1 X0 @( I/ Q6 A- W) t# ^
                        part := @.transpOrder;' N: w. X' ~" e
                        part.move(@);-- load part9 I; i2 A" I' ~: W2 y6 k
                        @.CurrIcon := "load";
' B+ N" G9 |( s- w. |                        GlobalDistObj := part.globDestination;
/ I1 j6 X4 Y7 _2 F9 W# F. M0 e5 `  ~! j                        assignLObj := rgmanager.rgAssignL;4 o" Q8 l* z3 N9 i
                        row := assignLObj.getRowNo(GlobalDistObj);  F: I& o: y7 v/ _6 e" Q& L" V
                        if Row = -1 then -- since 706 ?1 k) z+ w5 s( m4 O
                                if lan=1 then% G2 u, E& ~5 a0 R# I; J- c+ B% U
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 Q  `" z% V& M. l- _                                                to_str("in der Andockstation: \"",?.~.name,"\""));& ]" t9 F" P% v1 k, ?
                                else9 @' [0 o8 u$ O# K& G: i3 R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' r' o4 V, X8 a3 f
                                                to_str("in docking station: \"",?.~.name,"\""));                                / @/ @2 k$ b9 ?9 n, S0 t
                                end;, V' G  V7 k9 E/ _: i! T8 |) |; G
                        else) l! ~" A9 N; X7 L: k
                                @.Destination := assignLObj[1,row];
5 G$ o! E& [% h                        end;                        1 c, t) ~, F2 J# e1 z
                        newDirection(@);
9 b: C( q/ R8 I' ]% Z5 j' _8 l                        @.HasOrder := true;4 q4 h  P4 w# b# \- [. [
                end;
  D% ?8 x+ G' v5 W1 L$ Y        end;; V/ s# Q9 t( s+ q) P: g
end;        -- of the method
# I# W/ c4 S! z: s8 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' w" @1 [% b6 n0 Q9 Z$ R
# j. z2 Q" x/ f5 E% g2 a' d
这是AGV_putin中arrive的method。1 `/ }2 n* [- v1 |5 {

1 @5 \' U  j8 n' l" Z& S当到达物料速度越高时,这个报警更多,6 x) P0 ~2 H" C8 ^4 i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: `! a. ~$ B( v, o" s% r程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; Q- e+ j4 v  d5 O8 C) O+ J3 R) ?" w
9 _/ ?+ F2 |. q3 Z! o% x2 ]; u
另外一个小建议,就是move,所有的move都可以这样
" k; X- V1 E( w! Vif not move() then debug end
5 s1 t/ D+ N0 t; }+ m1 G这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 C# T; z+ i; k7 j: @
plant simulation中的free libraries有AGV模板,
! i" E+ v) n# {里面也有案例。
& |! h6 N- D9 K1 T我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 |$ r* g- ~+ e* D; F( y% _0 o+ D% w& o) F% x5 O) c
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 ?4 H! p& K% {, F6 S4 P' H% D* ~
( ~! g9 }! A9 v# e/ E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) ^, `' A3 ^+ L6 v/ `# r' H9 X
这是AGV_putin中arrive的method。! A3 m* e0 s' Z3 i9 C( z2 j
) H# G2 m6 X( [' X. ?+ }! d
当到达物料速度越高时,这个报警更多,
( K' M" s" g3 q5 y5 Q3 G2 B' |
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-28 16:53 , Processed in 0.018647 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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