设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5612|回复: 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'
4 }3 x' O/ T1 S6 C8 N*/
( R7 h+ u, m. w" k) ~  \is
3 v) H2 o. V. T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 T: c2 y' g  Q1 Hdo' R6 {" E' d- p, @$ A7 @
        Lan := rootfolder.Internal.Tools.AOLlanguage;' ~0 }8 Q) ~' V9 B/ z5 |4 Z7 j
        if current = @.Destination -- else return
% i, |* S. H; X' P( L% d% n/ A% Q        then
# g( K- @. a( m                @.Destination := void;5 {5 I6 |, N) w) q
                if @.occupied then" g0 D: r  f- P# L. E( V$ `
                        part := @.cont;9 F2 h$ G. D; k- ]+ Q) e1 {
                        @.transpOrder := void;
6 N" z* g6 N8 J; G: s4 z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 t0 R  t+ ~( v; p6 E9 y4 |* o" y
                                @,root.eventcontroller.simTime);3 C7 i( Z7 _4 u: l: F4 ~
                        @.HasOrder := false;
$ y2 c* H9 B, O- H1 r' p% w* T                        @.DrivingHome := true;
. Q( n3 r" e- `' E; N- {                        rgManager.tryToStartTransOrder;4 m. C$ ~; W; m. K0 I$ _/ f+ Q' \1 i
                        if @.Destination = void
3 I2 b5 H% W2 m* G                        then -- no transport order for vehicle @
6 @9 D# n/ i/ g" n% v                                @.Destination :=
" g& W# e, [4 K. `- |3 S5 v  S5 ?                                rgManager.nearestFreeStation(@,track.~);, M6 x6 R4 j- b4 k8 m& v  ^: n
                                newDirection(@);   
8 ?# ^* n* _! C. K2 k0 p: @0 Z                                if @.Destination /= void then
8 m. |: Y4 T. B. D, P                                        @.Destination.NumReservation :=) K% \( A! `" Y9 ^% n4 N
                                        @.Destination.NumReservation + 1;+ ]! D1 K+ y' r' l, d! |0 n. Y, u
                                end;
) ?6 h& I7 F6 O                                @.CurrIcon := "drivingHome";. j, z3 W) X& r2 u$ G
                                @.DrivingHome := true;
/ x* C, L' i6 Y) x1 L                        end;% v5 i6 S1 N0 c; m% `! |% @% e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 ^5 u* q/ U9 b% L                        part := @.transpOrder;. i+ r* ?4 S: J3 F/ [
                        part.move(@);-- load part+ ]* v* ^+ j* ~8 Y# Q0 s
                        @.CurrIcon := "load";
% p2 x2 C/ Q) Z; ^; ?: K# ^/ \2 B                        GlobalDistObj := part.globDestination;$ B3 n4 A1 Z7 t& v  L
                        assignLObj := rgmanager.rgAssignL;( f3 N8 F9 a' `8 M0 d% g' U
                        row := assignLObj.getRowNo(GlobalDistObj);
8 z+ `* K0 s/ w$ h% d                        if Row = -1 then -- since 70
* J& Y2 U4 o+ v/ Y$ j' c& m# M, {                                if lan=1 then7 ~* w& P) K5 T9 l( D; D0 W% S
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" J. X1 r9 i- X                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ `- p, j4 _/ o4 J3 `1 @4 o) W1 M! K
                                else
0 s3 ]/ G0 Q) ?& L2 |$ r9 D5 A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ |, u2 m. ~2 }4 Y5 a  k" B
                                                to_str("in docking station: \"",?.~.name,"\""));                                $ S# N8 G2 v. p4 i
                                end;
+ S: L: A! }2 a2 g% L3 S; R% m                        else: C* }, e% i6 i( r( R; H% d
                                @.Destination := assignLObj[1,row];6 H/ k! K0 ?7 x7 f$ ~
                        end;                       
0 V1 k6 z& n! u9 R3 n  }6 H4 Y                        newDirection(@);$ s% J+ C# [7 K7 }6 N$ V& r* ^
                        @.HasOrder := true;
' G2 W  n6 d4 s4 d4 ^% U2 o                end;
& F2 J9 Q. i/ B2 P3 x) ~        end;+ d& D5 U4 N1 h- B. o: d/ Y
end;        -- of the method2 @, I+ K; X+ t* Y+ `+ o' z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  u& B: m- ?* L6 y6 W0 L+ t; X: g$ m( t4 h/ i# L& h6 ~& E8 Q/ ]# Z
这是AGV_putin中arrive的method。. R" F" _! j' N0 w& n

/ W! L  k+ x7 O( o& G, c& f: F+ S当到达物料速度越高时,这个报警更多,9 @/ ^1 ~8 Z3 {, O9 |0 J5 f+ i/ a- x3 k& A
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 D) d) l# U9 F4 J8 c" X
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 K; p( w4 e* q1 S0 ^1 N
  Z3 W2 ~* I# y9 z
另外一个小建议,就是move,所有的move都可以这样! z' i, S" ^1 W
if not move() then debug end6 V2 G" {+ p% T. r# x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, B. t2 j' o- c  c: D" u
plant simulation中的free libraries有AGV模板,% u* u5 G8 x. R4 X
里面也有案例。
( s. Y5 T  F- E7 Y7 H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 X( P% F; {% L" r
% K$ P) u5 g; i1 T9 H
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( _; d  W) \" y

  H0 F3 s% |( p: t那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - Q6 B4 ?- }  s- j
这是AGV_putin中arrive的method。
( Y4 ?& v2 p1 V9 B8 {6 r9 c& K. C1 G$ e6 U  Y: O
当到达物料速度越高时,这个报警更多,
: W3 _/ d9 i5 D! Z3 o% K5 _
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-9 01:38 , Processed in 0.022832 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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