设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6341|回复: 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'
9 Y: A; C+ b7 d' H+ m% e+ B*/
6 M$ ~, j. ~, b* ]) |1 O% ais
$ y* i% {2 H0 |. f4 C$ }        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 _  `9 V+ U9 S  v& \0 tdo
/ R4 ^: S" \! I- J$ F7 s        Lan := rootfolder.Internal.Tools.AOLlanguage;4 w: c8 Z# _5 k4 c' Y
        if current = @.Destination -- else return8 |7 p% b2 J! @+ _5 }
        then
4 f  n2 i( s; S4 C                @.Destination := void;
8 X# I( F( S# H                if @.occupied then8 x) Q/ _6 O6 ?3 W% m0 I6 Y
                        part := @.cont;
/ j7 @/ Z& u4 R/ g* l                        @.transpOrder := void;
5 ]9 T2 Y8 P/ z- \) i                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: @6 e' ^3 ~% f. E5 S
                                @,root.eventcontroller.simTime);
" V$ o  n- m0 l$ F* c                        @.HasOrder := false;
2 p1 w0 A( z& |7 T. E  ~, u                        @.DrivingHome := true;1 ?. M7 z3 V- C8 o
                        rgManager.tryToStartTransOrder;
1 T/ @( h) q+ O% p9 T* }. s                        if @.Destination = void. e2 o7 y) }* P1 [8 I' Z
                        then -- no transport order for vehicle @
/ [$ b# i2 n& k2 [+ S                                @.Destination :=
" Q  A! l; H& C                                rgManager.nearestFreeStation(@,track.~);
- k0 F6 l, d1 O8 n. A: E                                newDirection(@);   
5 M' h3 {6 `) w' y                                if @.Destination /= void then
- h1 J" G: b$ l$ `5 g% C                                        @.Destination.NumReservation :=
# C5 l' u6 C- G/ d. w& C                                        @.Destination.NumReservation + 1;
" H! o7 w4 Z( @) C. S                                end;/ u' w* L. o  {
                                @.CurrIcon := "drivingHome";
- h8 K3 c2 O6 g- |6 k                                @.DrivingHome := true;
* _5 X0 y! P& W+ ]3 B/ ]& R                        end;
. ~* |$ L5 \9 P9 z; D                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 t- k* e& `0 l( F8 u4 ~1 ?* Z                        part := @.transpOrder;6 X2 ]7 }! V& p( f' G
                        part.move(@);-- load part0 T$ q: {7 i2 X
                        @.CurrIcon := "load";8 |; k* s" U% c2 r. b
                        GlobalDistObj := part.globDestination;! z6 V# D3 X( K8 j" x& T4 K' _
                        assignLObj := rgmanager.rgAssignL;
/ r7 D9 Z0 p- g' M6 I# d                        row := assignLObj.getRowNo(GlobalDistObj);
# j" ]) m3 q; z! b( @) e: {                        if Row = -1 then -- since 70
6 H6 X1 _5 E' g+ I, S                                if lan=1 then
- M1 ?! `2 [$ `                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 y5 r7 h/ s1 J
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# r( H8 u! o( z9 d
                                else
% A" [( _$ S+ a, l! q& N" a                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ ?! U, D/ H9 I                                                to_str("in docking station: \"",?.~.name,"\""));                                * |6 C! f4 [3 ~9 n# v
                                end;: K2 D) X0 [% t+ u; \
                        else  J" ^+ g/ ~+ w5 O1 |% D
                                @.Destination := assignLObj[1,row];
. T% o0 J* {& a' s                        end;                        5 q  x, U! C8 d" H1 \/ o
                        newDirection(@);
  M; n5 P4 L# m+ R9 Q: {                        @.HasOrder := true;& ?8 D. m$ u( O8 p. A* G: |, E
                end;" E2 M/ Y- G! x" o" O+ O
        end;( G6 {6 D& z" a
end;        -- of the method
1 n+ z8 P+ y" h( c/ `# l$ r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / k9 j! u3 Y9 m5 k/ ?) X. }3 e! r
) g* I! E1 o# Z2 G% H3 r, V8 W! j
这是AGV_putin中arrive的method。! z" T& |: Y$ U5 T/ b5 n0 s

2 ^2 y' ~# [! _% r% e当到达物料速度越高时,这个报警更多,
" C$ P0 |. a& [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* ^, {" }  I1 F$ Z- A
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# E  G# D2 B) o( V) C% ?
2 T) E; v/ q" G8 R0 m另外一个小建议,就是move,所有的move都可以这样
/ \% w) `1 K8 |( q0 _8 S; Hif not move() then debug end
# R1 m1 `0 c4 ^- }. v这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 X+ e! J% b7 l9 m4 ~
plant simulation中的free libraries有AGV模板,
; v7 \$ C' j- Z2 ~+ x* \里面也有案例。
8 A, ]6 n" ?. [+ e! z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 U) F2 b% f. \/ [+ [( f2 ?

' `. F) a) q$ I% `- f9 ]6 p" B6 d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- M7 }% Q1 [6 }/ K7 h+ j9 W2 L3 T/ N& S7 D: p9 |! o
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 t& F* z' w3 X; X9 w4 w7 w这是AGV_putin中arrive的method。
2 H; r* m& r& ~% F4 Y. I. }7 s' U. j5 t0 p% H
当到达物料速度越高时,这个报警更多,

$ C# W2 k; ^7 o/ x0 a8 h# w1 p8 E! ~% {另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-31 18:27 , Processed in 0.021630 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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