设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7508|回复: 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'
# F4 j$ k5 b2 e$ _0 R% s7 i. W( o*/& [+ y4 `2 K5 T
is! b8 v+ ?8 ]4 }: x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. Q" B+ ^) w# e0 ?( Edo: ?3 y3 L6 q* P/ e* l1 `
        Lan := rootfolder.Internal.Tools.AOLlanguage;2 a1 ~0 [1 q( u  |2 a7 f9 D
        if current = @.Destination -- else return. f' r8 K* K9 Y3 q+ O# Y0 U
        then
3 b( y6 F5 z: I: I( C                @.Destination := void;
2 D: C  p! E% [) t6 e                if @.occupied then9 ~3 I% z# ]0 A  [( Z1 Q* g5 a
                        part := @.cont;' D" s! c% a1 M* U* e
                        @.transpOrder := void;; R' {# k5 ?# h9 u0 v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 j6 }" b( a6 ]+ ?8 t: |
                                @,root.eventcontroller.simTime);
% }* {& `: {3 d; S& e                        @.HasOrder := false;$ M: a$ p# b" d9 p
                        @.DrivingHome := true;  E/ A: v# Z$ ?0 c& o
                        rgManager.tryToStartTransOrder;
  N7 h9 X" _' P# t/ n2 J, o                        if @.Destination = void
! m; `+ K' M! h8 W6 b6 Q                        then -- no transport order for vehicle @
3 ]8 {( W# E0 S) Q8 A. a                                @.Destination :=
# V7 Y* g+ H( t% \8 P1 V) L                                rgManager.nearestFreeStation(@,track.~);/ S/ `6 V9 K2 ^; {  X& C; b
                                newDirection(@);   3 M7 ^- M0 M, u8 b" ^! e
                                if @.Destination /= void then
$ X0 _$ E! P5 [3 B. J+ S; G3 l                                        @.Destination.NumReservation :=
  K- t" r2 `; C- t8 s                                        @.Destination.NumReservation + 1;% i, U/ Z( c4 F9 I
                                end;  v; Q* {3 A/ z; ]6 |# {5 V' Q
                                @.CurrIcon := "drivingHome";! W. @5 v7 W  z8 q) h" ~
                                @.DrivingHome := true;
& l; o, r  e) @% j                        end;
% x) O3 U; p# s2 [- `                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- \$ P+ P. |' \+ {" c* Y  O, ^2 F& H                        part := @.transpOrder;* f9 M' j6 f$ @* k9 ^
                        part.move(@);-- load part
3 v* T7 b) i& P0 a- h                        @.CurrIcon := "load";% n' a) s& Y; g: V/ m& s
                        GlobalDistObj := part.globDestination;; J, m3 ?5 D9 _' ]. `# W
                        assignLObj := rgmanager.rgAssignL;
6 U; G  T9 H& }1 U* E6 x9 ], _5 D1 X                        row := assignLObj.getRowNo(GlobalDistObj);! _+ y; y. H7 g
                        if Row = -1 then -- since 70
. \' H, b! k. @2 F' [# C) s                                if lan=1 then
1 a8 r9 u1 S* L$ `; d4 f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) I2 a; O: ?2 w2 N
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 B# u1 Q% T( F& s2 J- {                                else
5 N7 J" P& f2 Z- X" ~                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! w" M' H3 q8 B& y8 o! f# y. m( S& M% X                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 C" N% x- o, ~" m! G- M. H1 Q                                end;
! h2 z! }  n- Z. m% ]0 t                        else
5 Y7 I9 ~6 ^/ @! a- k& v6 e                                @.Destination := assignLObj[1,row];
6 D5 c" p2 t5 q8 A$ X                        end;                       
3 a9 a/ K& ]3 U2 b$ |- g! c( _* E                        newDirection(@);( I6 h2 |& t) q) k& @8 W
                        @.HasOrder := true;, z# {$ T5 G7 B1 a
                end;8 {  r5 B0 t* u0 X* |% |0 p
        end;( W5 G6 v5 ^3 S9 q
end;        -- of the method* E2 f7 q( _* ?/ z. t8 I0 r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ J: A. q: U; E2 ^

3 M  R2 U' G" V: L1 @! V% r/ g这是AGV_putin中arrive的method。: m: W3 ~% H8 S5 i( k0 m9 W

" ^5 I3 L9 {4 x/ o$ M+ u当到达物料速度越高时,这个报警更多,# W3 _0 o6 R  \; q: T5 Q1 H
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 U7 R# M; h* E/ @3 R4 \* ^程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( i$ I4 G5 J4 S& J1 X3 b
' Y% x+ B8 M% @" g另外一个小建议,就是move,所有的move都可以这样
; h1 S) G2 v3 }: J, H# }* Aif not move() then debug end/ c5 e4 P9 A( _
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 V2 p) C' S5 ?! m& g8 z$ mplant simulation中的free libraries有AGV模板,' C8 B. a6 _7 ~: U" E5 H+ i
里面也有案例。6 l3 K. F- D: K" R+ j( P
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 [+ U% \9 Q" E1 C

6 ~' d; e. h" O* ?7 ~我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & }* f) b# N- h! b# i

' A$ X4 N* n/ Q  k% o那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * i/ z7 x0 |7 y* B5 _; d" z
这是AGV_putin中arrive的method。  i& K6 h5 \& |
+ F3 N8 R/ t: t' Z* Q
当到达物料速度越高时,这个报警更多,
+ L9 X1 T8 u! r5 y$ f. @) ^2 e" J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-15 12:04 , Processed in 0.018323 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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