设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7382|回复: 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'
* V! |: a+ V$ A( E7 f" f5 O*/
7 Y5 o+ z2 J5 v+ c6 B" e% kis
4 I' l) I8 p% z2 k- T- F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& \6 I8 j% v/ M; e4 A6 S
do
' a! k% ]- @6 D) b/ t# S        Lan := rootfolder.Internal.Tools.AOLlanguage;0 m+ c% t3 k  I5 M
        if current = @.Destination -- else return
& t; a' q  p! \& G" l        then
) \$ Q* `+ P! c2 T3 O# D" u                @.Destination := void;
* e! y) B" c5 c1 T                if @.occupied then
9 Q& `9 [7 H3 k9 X( i- f* t                        part := @.cont;' T- \' ~" F' p, z
                        @.transpOrder := void;* b3 i3 [' a5 M5 u+ o$ o
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* F: J) o' ?5 }5 ?
                                @,root.eventcontroller.simTime);
3 {: W, L2 l2 ]$ w: _& d( y* S, ~                        @.HasOrder := false;
) p6 n( x/ H; k: W. h                        @.DrivingHome := true;
/ t" S. q% M" R5 s! B3 r                        rgManager.tryToStartTransOrder;. H& e) v3 l( F5 M. u. X( Y
                        if @.Destination = void
6 B7 V: ?+ o6 i. C) O                        then -- no transport order for vehicle @
$ K/ n0 C. h6 f                                @.Destination :=
- i, }5 E/ Y' n2 l  B7 v                                rgManager.nearestFreeStation(@,track.~);* D; D# X& n% A" [; ]
                                newDirection(@);   
; [6 M0 o! e5 X/ X6 G                                if @.Destination /= void then
) X& {8 y/ E3 H  ?2 @                                        @.Destination.NumReservation :=6 F  \9 @& B, p# g
                                        @.Destination.NumReservation + 1;+ x2 l5 W4 H3 s% g8 u. b2 N, C) n
                                end;* S: H; g% ~1 ?0 D  r
                                @.CurrIcon := "drivingHome";
: i2 G( D3 t# T! \* R% j0 o9 M+ G& s                                @.DrivingHome := true;0 N) F* l4 t0 g  T4 t. L
                        end;0 }# X1 g- B; N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 j* F3 J4 f0 A8 ]8 ~
                        part := @.transpOrder;
" j+ e8 e* v* X  k; e" @                        part.move(@);-- load part' k+ `, s5 W8 w) n
                        @.CurrIcon := "load";: ]6 r; |' J- t  D3 o% \3 ~- t! c
                        GlobalDistObj := part.globDestination;
5 k) g% ?* Q5 I2 J                        assignLObj := rgmanager.rgAssignL;
, n. c6 D* F; C6 J                        row := assignLObj.getRowNo(GlobalDistObj);8 C4 d4 s6 ]5 z% ^
                        if Row = -1 then -- since 70
$ r+ I9 r4 A& z2 M" w                                if lan=1 then
% o+ }, r3 d6 H' }1 l9 O                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 R# c$ N$ J4 d. c" u
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  ]. p' x9 X8 n, Q
                                else3 j$ D; n6 k( ~! S- Z  q1 k- m! S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 Z+ d" }1 C4 P& z
                                                to_str("in docking station: \"",?.~.name,"\""));                                ; @2 M# F$ e8 n- N( \! R
                                end;5 n2 A2 r+ G/ |" I( O  Z6 {% A( g
                        else
8 B, H' S" o/ s3 ?1 L* E                                @.Destination := assignLObj[1,row];- d4 p0 ~) E1 |* e( j( J. O: b( O7 P
                        end;                        ; v! Q& L8 e" J
                        newDirection(@);0 Q! `' }" i5 a: B2 \1 q; r
                        @.HasOrder := true;+ o, R4 M" q0 n! ~8 G2 q" U0 l
                end;
: \' L( j) a* ?- b% G        end;
* o, r- ?  n0 a9 i. \) vend;        -- of the method
' z- v7 W) Z9 a# t! d& }8 A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " v) Y: I+ Z/ Q+ j+ W  Z4 E2 T

, X1 L% |' {6 d0 N0 f这是AGV_putin中arrive的method。
% J9 y4 i1 ?1 _2 p  H; I. w  z( V$ P% z
当到达物料速度越高时,这个报警更多,% K) O+ F3 b( z% C% E; W2 [; T" Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 e( w$ a2 s5 I4 n$ b$ v! A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  k( t6 D6 T7 q% d4 u% M$ |' W: I2 d9 r7 q7 I
另外一个小建议,就是move,所有的move都可以这样  A2 s3 V8 f7 N' p, h1 V! @' Z
if not move() then debug end: m( \' a1 C% U8 i) A7 F" H
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* ?( C! j' d" N1 Wplant simulation中的free libraries有AGV模板,
! @1 q5 j- {4 h8 Y! o( C; L* h里面也有案例。3 a; X8 l8 T, E8 |, g" k  }! g2 a
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 H, R) w/ t0 c% B5 ~) `' Y" z8 u& {6 v
0 L  W- p5 D* t! K& {我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 K2 c! k) `& `9 i9 o$ Y  \1 q
1 r; f. r# c# g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) w7 g" w3 B. V' t这是AGV_putin中arrive的method。
0 k- @( H+ O1 n& K6 T- I/ r
7 a7 k7 z. U# _- a( J当到达物料速度越高时,这个报警更多,

* S, L5 M. E: P  u% i另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-8 15:28 , Processed in 0.019074 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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