设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6214|回复: 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'
  k( R: [; m" R+ t; J*/
7 g: j$ M- \$ e5 G% ^7 W; Cis
7 c$ o4 a  u9 e4 s  {        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ S, F+ _+ [  v0 X# Ldo
* ^6 f& @$ U5 n) z        Lan := rootfolder.Internal.Tools.AOLlanguage;9 S! h8 ~$ o& \1 v8 [
        if current = @.Destination -- else return
* ?' @$ H( ~7 g4 j  `6 _$ i3 [! P        then' ?9 s4 s: h( T
                @.Destination := void;' x+ [4 V# A7 o" v, }" f5 ]
                if @.occupied then) S) n4 W1 J. X
                        part := @.cont;: _! O4 v- u' |% e7 f
                        @.transpOrder := void;& _8 w7 a! Y% ?0 [5 v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! F' J* H1 i6 O" B                                @,root.eventcontroller.simTime);
1 {, [, C6 `# V/ q  s' m+ e% T                        @.HasOrder := false;( B1 ]2 f) _& i5 F
                        @.DrivingHome := true;5 i, t  U2 }* r  X. U' z0 S8 Z4 w" H
                        rgManager.tryToStartTransOrder;9 _+ b( j* u% i( C& t
                        if @.Destination = void
( k- \* c# L) O6 Z" c+ m# W+ h  l                        then -- no transport order for vehicle @
& C1 Y4 k! p1 ~1 }                                @.Destination :=
; @# V* l4 p' n, p' z                                rgManager.nearestFreeStation(@,track.~);" _7 z9 I9 ~+ |, F+ s5 L
                                newDirection(@);   
( S, i, C$ s( }. g  A) F# F                                if @.Destination /= void then: }  A, ]  ]: Y$ ]
                                        @.Destination.NumReservation :=. x9 N, N' j* @4 ?7 i3 ]9 i9 V
                                        @.Destination.NumReservation + 1;# S  f1 a7 k- Z/ b3 }( }1 `
                                end;
% a) w8 u: B5 ~                                @.CurrIcon := "drivingHome";0 [5 a* L* A/ f9 n2 X
                                @.DrivingHome := true;
4 d! }3 \  q% G* r9 V                        end;
. w7 M! }3 B$ j7 C5 H# U5 L; n                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 M% H, M4 V( {& o% c6 Z; N3 W                        part := @.transpOrder;. Z! ], f/ S6 m, o. ~5 E
                        part.move(@);-- load part) r- r: q7 C8 p6 r& A: q
                        @.CurrIcon := "load";
( E  e# O8 z) }- t7 T  K2 J6 t                        GlobalDistObj := part.globDestination;
9 H% A+ w: r/ a6 v                        assignLObj := rgmanager.rgAssignL;/ p) k0 z8 D5 J$ K# i. @! W
                        row := assignLObj.getRowNo(GlobalDistObj);
. ~5 S" w4 @0 _- P+ u5 o) g                        if Row = -1 then -- since 70
+ E5 q- s5 g: {. x  l                                if lan=1 then
" G5 @3 e: V/ a6 t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  H7 h" W' s5 j                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 K2 F& a% S4 p% F8 s- i. k
                                else
+ h; z" }$ p) y- e  `                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 h- Q% p% E$ X8 V                                                to_str("in docking station: \"",?.~.name,"\""));                                3 }2 {$ u) q7 k/ p* a
                                end;
# ]/ s9 J6 e0 `; q) r                        else
- h$ R  v! m& V; d8 g' N% ~                                @.Destination := assignLObj[1,row];
1 D" m, p: n8 B8 \2 ?1 d. M% m% h                        end;                        8 }. Y! Y7 C- G" F3 `2 w. O/ d' E
                        newDirection(@);  _* E) Y* }8 F
                        @.HasOrder := true;
# F0 T, c2 T0 B( y3 B  N6 ]5 s; }                end;
/ V; L4 h: N( d, r4 c        end;+ B: ], \9 j& }# d4 L6 j* T' s! `
end;        -- of the method
, J& G% d9 O, M6 V9 q; F8 j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 w, g/ o0 a1 N5 o$ s( i, j* t. |" d
% k, M; J4 a0 v1 \2 X这是AGV_putin中arrive的method。
( r* \4 ]( h- x( q% M4 \# w6 l
3 E4 f4 F/ v; q8 ]: {( \当到达物料速度越高时,这个报警更多,9 J+ |# x) P. w/ Y/ @6 e4 [+ i% u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 x/ D7 d1 Q% Q! v2 V) o, b& j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 i, l6 V4 l( ^7 m7 x; [$ M* ~; L. n# f3 @6 K9 v+ }) s
另外一个小建议,就是move,所有的move都可以这样/ B& z9 L, Q6 {6 e# d$ i
if not move() then debug end" K8 [/ j3 v" P! P: Q: G7 Q) I+ ?
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; h, B2 c$ `( S" l9 P# B" Z+ c; Q6 l
plant simulation中的free libraries有AGV模板,5 X, q; g8 d0 t1 x( o
里面也有案例。
& `( E' Q9 o/ H% c我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" Y" k' J2 |4 M3 \" C
) j5 N. ^& c* t. [2 T& X; @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" h4 H: ]/ q4 p* R
3 p: Q; n# C0 W; }) Q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: k0 l5 t7 t+ b& s0 N这是AGV_putin中arrive的method。
1 ?0 g/ G) q) \! b' y; n/ {
1 E2 p9 R; O* Y$ i9 O! K/ a当到达物料速度越高时,这个报警更多,
. e! q0 b# W8 H/ U& J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-25 05:59 , Processed in 0.016648 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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