设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9499|回复: 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'5 U! x" \8 `9 X1 c( F3 g8 O1 @
*/
4 a0 C: N( a3 B; c+ b3 D. H& R# k- P9 e4 Y3 ?is, R9 ]9 ]0 M8 l. W
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& e1 O( P! x7 v& w* Rdo
, j4 ]" u+ O- }        Lan := rootfolder.Internal.Tools.AOLlanguage;. C/ S  N/ o4 [: ~, Q5 x7 ^+ Z
        if current = @.Destination -- else return
: l9 `! p" R0 p# e9 ?" a+ t' h        then- t; y! U/ q& O- v  W( d% ?) R
                @.Destination := void;
5 [; k2 Y9 V+ _                if @.occupied then  p' c9 e) @) f$ K
                        part := @.cont;
  p5 ^- e) o9 K2 S: a1 v                        @.transpOrder := void;
/ I" S9 k( M" T) D! D, ~                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ O4 L$ L8 ]& m1 g                                @,root.eventcontroller.simTime);
( f1 H6 H% H! P& T. }1 ^7 v# M  [                        @.HasOrder := false;
& I, `! G  A% Z' j, e" H                        @.DrivingHome := true;, B" b6 b6 Z/ B0 c/ T4 l: P
                        rgManager.tryToStartTransOrder;
0 c2 h6 R1 Y' B                        if @.Destination = void
3 s+ k" }( n. M$ d) Q) W, j) i+ [( h9 `                        then -- no transport order for vehicle @
+ i/ s3 ^2 S' l" t8 k7 S$ k$ x, R# j                                @.Destination :=5 D5 k/ W; C! f# z
                                rgManager.nearestFreeStation(@,track.~);& z/ v3 j+ Z; v1 G2 d( l$ ]
                                newDirection(@);   0 P! O4 t9 F# l3 X
                                if @.Destination /= void then
3 I2 G, ^) A4 l1 |( L                                        @.Destination.NumReservation :=
# J+ N' }- {- V& f; \                                        @.Destination.NumReservation + 1;
, j' ~  |& I. L: c, J                                end;
4 `1 L# G) N2 F' I' L                                @.CurrIcon := "drivingHome";9 I. X: L  a; ~: c. a8 k
                                @.DrivingHome := true;
! N* u2 g8 M$ d5 b2 A5 x3 A                        end;
4 x$ I  ]5 U5 ]7 S+ M, E4 U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- X! C7 B& S7 b( h" r                        part := @.transpOrder;
  ]8 Z' r! J8 X9 T$ r! G1 v                        part.move(@);-- load part
! F- k6 S+ b7 N" j( l0 A6 d                        @.CurrIcon := "load";' D1 G" o5 \; E! z) `6 ]3 B6 V
                        GlobalDistObj := part.globDestination;
- O" X, b3 _' O! y& s                        assignLObj := rgmanager.rgAssignL;
' E5 ^. k0 {- ]/ N                        row := assignLObj.getRowNo(GlobalDistObj);6 o9 ^3 [9 p7 a
                        if Row = -1 then -- since 70
; [) a7 {, P/ s+ ~$ T                                if lan=1 then2 Z/ a% Y1 B+ r- \+ c" d" y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 l" f# \7 S; q- q" J: ~* ], n                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- u, \  A2 v$ T4 M( M                                else
/ b& i8 \* O. ]$ Q' g4 w4 n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; R5 `* k; L4 {7 l& S                                                to_str("in docking station: \"",?.~.name,"\""));                                4 V1 H- t' h. l3 I# l+ g
                                end;
  G/ F- Z. k& c* I* T2 u                        else# Q$ _* W6 m$ e% q% X; p0 S+ \
                                @.Destination := assignLObj[1,row];
! p! K- t* e9 e3 T                        end;                        : Z* t. m/ |8 R# R2 _
                        newDirection(@);
* M6 d" b7 K7 A" _- W                        @.HasOrder := true;7 v8 H  f! Z( v8 n6 r
                end;5 ]/ }, S: T1 K. V) `$ D
        end;
* D$ l; U$ o8 P/ T9 D- A3 R  Q! Qend;        -- of the method1 U1 B1 z* K# U+ A1 _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 g. K: g" K6 T" d7 O7 [
! i4 S8 I! w, ~3 h/ y/ X这是AGV_putin中arrive的method。
/ q; q( x/ H& o! X* R$ N/ C
: `* }9 A3 x% A# I当到达物料速度越高时,这个报警更多,2 {$ e; O: |' Z/ O+ x8 l0 W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& r1 {$ v3 C4 A5 U1 y* y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! m, o7 u% c7 L$ D; X# v2 a/ S& Q3 `+ L+ I8 p
另外一个小建议,就是move,所有的move都可以这样
: I! b7 h( ?) _. G+ cif not move() then debug end
- t$ }) n% Q8 ~% V% s" Y* q9 W1 G! Z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 D, g) t% {8 ^6 M$ u* Xplant simulation中的free libraries有AGV模板,2 H8 t8 ~* [) ?
里面也有案例。
- d( \. q4 b/ u" z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 {  y/ W/ S: d4 u& X5 \

0 F- ?( ~9 S$ M我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ e( f- V1 [2 R7 I8 }# u3 k& |+ M: a
. ?3 D* {  X( V1 n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 [! N6 R0 B! |; g: R这是AGV_putin中arrive的method。
( {5 H; a7 x5 |, M- g: Z
& R  W- }5 ]6 v7 P当到达物料速度越高时,这个报警更多,
& b1 @& ]4 j( U! g  Y9 V
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-4 13:24 , Processed in 0.015643 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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