设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5747|回复: 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'
* E+ w! `+ U6 Y, e  P*/
) s  K$ v2 {' m3 Xis
7 ]/ w! m& j6 C. Y6 |9 Y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! ]1 ]" l3 s0 x* `
do9 |' @4 u0 Q, C' }7 U% E# F
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 Y  Z( H* D' f" ~  o/ d
        if current = @.Destination -- else return
/ W1 l) |2 w" v        then9 s+ U* C+ v2 w
                @.Destination := void;
8 y" q9 W/ v# E/ T% z7 y4 K                if @.occupied then/ o9 g. _- h1 ]) S$ K
                        part := @.cont;
; |& U& b2 Q4 y6 q                        @.transpOrder := void;" x1 ~- A7 l- u9 A8 L, X9 z4 B& y9 @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 m$ e! ?( J  W8 Q, J) O
                                @,root.eventcontroller.simTime);, ], ^  J7 P0 w8 X8 \$ I" g
                        @.HasOrder := false;- b: F% v9 G# y( C+ _- x' |" V
                        @.DrivingHome := true;0 h" _1 q4 E% ]: G, z- ?3 ]
                        rgManager.tryToStartTransOrder;
, W1 P2 U/ f$ R                        if @.Destination = void3 b( ?6 [6 \/ A1 t( E
                        then -- no transport order for vehicle @
5 ?0 h0 }) g5 Z/ P3 V  ~                                @.Destination :=. ]& [/ a) X4 e- l: s
                                rgManager.nearestFreeStation(@,track.~);: p/ b  r3 B8 G" D6 C( c8 W  r
                                newDirection(@);   3 T. H' t# ^1 `- w9 f
                                if @.Destination /= void then5 [) s. n: L" f3 ?
                                        @.Destination.NumReservation :=
5 ]2 P! w6 t) `' M' p  h+ f' [                                        @.Destination.NumReservation + 1;- f, I6 R2 H6 _/ X
                                end;- ~0 W" G, \2 z; T, T" T/ S
                                @.CurrIcon := "drivingHome";& _/ [4 ~+ z5 R& W  m: M2 ~3 A
                                @.DrivingHome := true;
( w* O! b/ l. A) |/ d% r$ B                        end;, G( M% ]: D9 C- G& K; X4 Z$ L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  Y* Q- R, N+ t. E' j
                        part := @.transpOrder;% D+ N9 P! f, F9 n
                        part.move(@);-- load part, Q$ X$ ], O. P7 d, h3 f- R' F3 v
                        @.CurrIcon := "load";+ P- S3 D* H, W' z4 `* e
                        GlobalDistObj := part.globDestination;
3 ^9 j" W8 M$ {, V# I' J+ n                        assignLObj := rgmanager.rgAssignL;! K: G# v# i( f# Y/ O5 Q3 x8 }
                        row := assignLObj.getRowNo(GlobalDistObj);
. m  I) ]) |5 W* q- G5 C7 b                        if Row = -1 then -- since 708 k2 U3 s) h: E) `
                                if lan=1 then5 w5 [- a% ]+ o6 z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ l% R" j3 E8 V' A2 ]0 Q                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 Q. F" ~5 _2 s# N0 t) }- X8 u( \8 @                                else
% C- C3 X$ s: J6 H7 x- a) m, q, l. r: U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- {. B2 R$ x: x. s- l                                                to_str("in docking station: \"",?.~.name,"\""));                                ! l+ y; k( h5 g) ?
                                end;1 ~4 S' h, v  {7 ?
                        else* P( `* j( }) r" l, ^
                                @.Destination := assignLObj[1,row];
2 \  y4 |' Q/ m+ F4 S% k8 @8 D                        end;                       
9 k! R  l$ P/ l" Q& a1 G0 ?. ^% F" C                        newDirection(@);
+ h+ P2 }! G  p0 q0 r% t, G                        @.HasOrder := true;
4 ]9 L0 H9 U) v                end;/ j8 b) h' P% j: ?$ R. {
        end;
! }& w9 x3 d# @( ]# v( lend;        -- of the method
. V- W( ^, |, M# ~0 S9 g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , y( p( ]( K5 F. e% T2 K
) X, Z" I& _  J9 N
这是AGV_putin中arrive的method。! y, `' W  X% x- @

; s& @/ {; C' q( ]0 m2 s% K0 p当到达物料速度越高时,这个报警更多,
, a9 Q! C/ T2 V" x; m可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 D: b4 y1 [/ x0 W8 e7 n6 b程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# A3 @" k) D! F1 {3 g# l
% @) {9 j& B  D' [: I4 y! j另外一个小建议,就是move,所有的move都可以这样
1 e& D+ N' n: ]9 J0 S* Gif not move() then debug end7 U, a% n+ x4 p
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: D( \" ?1 ?7 d3 {( k. Y" J
plant simulation中的free libraries有AGV模板,+ d3 Z/ U* o8 k. t; M# W3 D
里面也有案例。& }' @; I2 ?, k$ T# h  A, Q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 Q. ]8 Z: T- k; N
( W" f" o5 _  c5 ~" b3 E* Y" }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# `, X7 f5 H6 Y4 N! `+ x" G- q8 D" ~5 c3 _9 L$ K: @, w# `8 i
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; V2 S# t; N0 e8 R1 w8 v
这是AGV_putin中arrive的method。5 M5 |+ f6 k4 E8 I) b/ @

3 n1 t, g' e  ?+ u+ z; o当到达物料速度越高时,这个报警更多,
% N. ~' _) r. ^: H
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-16 18:17 , Processed in 0.020251 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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