设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9319|回复: 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'! G7 U' e  b  J1 s  |
*/( H6 w9 X* G/ _" ~9 g$ K
is
& Y/ m# C9 ^0 v# R5 b, i  g        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! s1 {. w: o- b' [1 K
do% y9 r5 Y- X7 [8 l# u- [; S+ P; X
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 r# \) q2 t! Z' q, C        if current = @.Destination -- else return, m+ d+ Q3 B! L
        then
4 [/ E( m/ V& W) A; Y9 s! Y                @.Destination := void;0 i6 A' m& E% h
                if @.occupied then
" F# h4 m( B/ ^6 n, L' I2 N8 h                        part := @.cont;
0 S. G4 P" O5 z. `! `                        @.transpOrder := void;
- d( N3 f! A- Q8 @4 l! n6 s- X% L                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 C$ E( J1 f2 O5 R2 R0 G4 d! n6 D
                                @,root.eventcontroller.simTime);9 Z: |, m0 |  q) t
                        @.HasOrder := false;
5 n' b8 M* B, c9 d* u" |/ }                        @.DrivingHome := true;" S$ b# i/ m8 H8 \3 p* \% c
                        rgManager.tryToStartTransOrder;6 ]5 l& `( t& j, ]& W6 R
                        if @.Destination = void  }& q& F8 N( `; C+ S- F1 v0 L" p
                        then -- no transport order for vehicle @
0 f& Q* K# g6 ], b( B                                @.Destination :=1 D3 q* {, R+ X5 F
                                rgManager.nearestFreeStation(@,track.~);
# V% k, d& d" \/ h" {! k                                newDirection(@);   
8 v3 e3 N3 V# e6 i6 @* `. j                                if @.Destination /= void then& F1 a& n& x; n
                                        @.Destination.NumReservation :=4 g( f8 d( Z: S2 @) c
                                        @.Destination.NumReservation + 1;3 P# P. G' R. B2 g& \
                                end;
0 m$ \) r$ A7 \                                @.CurrIcon := "drivingHome";
/ O8 I6 i3 M3 c1 a, ^: q# F                                @.DrivingHome := true;0 Q: r2 k% u2 ^% I' l" l' H
                        end;
2 [2 e/ t# @$ j                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
3 x* k5 k; p( L4 S                        part := @.transpOrder;. W3 O% a4 s  p  B2 p" q
                        part.move(@);-- load part+ k* Y1 i" t# i. x4 `& y
                        @.CurrIcon := "load";2 a* k6 G2 N) W  M( X0 u
                        GlobalDistObj := part.globDestination;! ^# y; ^9 `5 h5 B
                        assignLObj := rgmanager.rgAssignL;
8 ~8 {" N* h( ]: J1 ^7 @0 L  C7 {$ K                        row := assignLObj.getRowNo(GlobalDistObj);
! |2 p$ k& J3 ?+ ]$ P2 B                        if Row = -1 then -- since 70$ w& ]  F; E' t! f( |2 ]' H
                                if lan=1 then
8 W7 q6 R/ `) S* G6 D5 i# k                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 V$ |2 T7 @. ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) Z5 g! E0 Z7 c- i2 {& m                                else# @, B7 w* @- |2 A9 W" I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 H2 k; {- A+ L! @- |                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 M3 i' R2 |, I8 G2 O0 n" B. k$ |7 u                                end;
" g; ~. h* p: X. L) e                        else: I8 m+ J6 `" B+ e
                                @.Destination := assignLObj[1,row];
& H, i1 [, w% H8 l$ g8 d/ G8 k                        end;                       
# K8 v1 p+ J& F% A: ]                        newDirection(@);* y* J4 U, S7 V. X8 [
                        @.HasOrder := true;
& f, q8 S( Z3 n& i- T" I! K; T                end;
' K0 z! ^* M# ]7 ^, w, @6 r        end;
' l$ x0 W; [$ ], F5 o8 bend;        -- of the method7 i/ p. q5 g$ P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / o2 a; b  ?7 e8 N: o' v% g
  n& [( a4 c+ s% x) Q3 \7 U! ~
这是AGV_putin中arrive的method。' G$ j' y$ `5 P5 V

% ?; R% p; C& ~$ S当到达物料速度越高时,这个报警更多,
2 r# X0 Z  u+ p; F" r. h可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ {; F+ f+ e: ?4 ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- E" G' x/ b3 k% C0 C
# ?5 `% h. \4 |% R  q另外一个小建议,就是move,所有的move都可以这样
: U8 L  v; T( h: d8 S: P( ^& Tif not move() then debug end0 o. G* N8 m4 p  P2 }1 Y  ^3 \
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: x) K4 |1 X, z" z, F! a& [
plant simulation中的free libraries有AGV模板,
1 X. g3 l! v, l& F& k7 ]# F里面也有案例。
; _' H* t* K3 g  Q/ p: T4 g我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' \' J: H# O) z  ~# X6 Y
& X/ a: c; r7 C: A# j% m% W1 g: a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' W  c  K4 A2 ]# g" z& [

3 d; N, V3 P1 O' L1 T8 p那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : o4 B2 [4 m0 m  F  w
这是AGV_putin中arrive的method。
. C4 V7 [  f0 O# ?+ q9 J
: F) q) f4 O$ x+ A& d) T当到达物料速度越高时,这个报警更多,
9 `& M1 H; J2 u# b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-25 06:22 , Processed in 0.025997 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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