设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7141|回复: 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 h2 T1 p- }1 @- c
*/
0 t. _+ R, U5 M4 J! P8 Ris
' Q7 a" T8 v% \. B+ o' }        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, c: j" p8 J0 m5 ydo0 e. {0 U( i7 t0 X% j8 K7 `5 N
        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ N6 ]7 x- X" ^4 p7 N  w& A6 i        if current = @.Destination -- else return) w5 P  c, y5 |+ u
        then
1 d. I& C& f& O( \  t# x; J                @.Destination := void;
  a8 }2 c  v* O+ h* ?( D8 b* g                if @.occupied then
, h- G4 }4 Y, p                        part := @.cont;) d: J! u, o8 t7 y( n5 d* Z5 J+ `
                        @.transpOrder := void;0 _: x) N" ~  S7 @9 Z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) y1 N1 C9 J) O9 p  N& `' R# j$ w                                @,root.eventcontroller.simTime);4 M/ ]% w, @! F. H) ]/ H* W
                        @.HasOrder := false;8 x5 U( q4 N; b! G. [' D6 l
                        @.DrivingHome := true;
5 h3 v, I3 `: T% B8 X                        rgManager.tryToStartTransOrder;( c; ~! `1 O/ C; [4 G5 L
                        if @.Destination = void& f0 B* s- a, F
                        then -- no transport order for vehicle @+ F4 q8 {4 x* B* H' {
                                @.Destination :=
* t& x4 l" z) R5 l7 @& E                                rgManager.nearestFreeStation(@,track.~);
) ^5 H: v, n% L% o1 ^: q                                newDirection(@);   
: L  J. \& S, m! b6 x. n3 D7 l' u                                if @.Destination /= void then* \+ l# P1 q3 t% M+ T3 G5 ~- I# X
                                        @.Destination.NumReservation :=, J5 P! ?. |% ?" F
                                        @.Destination.NumReservation + 1;7 _" F9 _7 g9 _4 B5 g
                                end;& A8 Y% d: D: J, m8 J/ y7 L9 Z' e
                                @.CurrIcon := "drivingHome";3 k4 |: l5 |2 ~2 L( m
                                @.DrivingHome := true;. J+ {- @! V* S) {4 ~; o$ N
                        end;$ y. m0 X: V6 k1 c6 [& `* ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  r  S6 y4 `0 D4 |                        part := @.transpOrder;1 S6 x2 k! H1 M1 y; t; G
                        part.move(@);-- load part6 O8 z8 n) G/ }: E; e4 d
                        @.CurrIcon := "load";
3 w1 O- C$ O$ s" q$ F                        GlobalDistObj := part.globDestination;) r' v. v0 k' \; a; I- u8 L% C
                        assignLObj := rgmanager.rgAssignL;" L  R* [5 `6 c, `5 y
                        row := assignLObj.getRowNo(GlobalDistObj);, Z* u  e& G5 H' a( O! N/ x
                        if Row = -1 then -- since 70+ T. B$ @. Y2 S# J
                                if lan=1 then
, L8 [& x; O( i( E1 {( ^  a4 G                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 R) D4 N% e% h                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 @% \; M& m4 f8 B
                                else2 ]/ ~, m) {" k) V
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- g4 ~# O* P' _) M3 w, {* Y2 C" ]9 j                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 S+ K, ~7 \; q' e$ G, h" K                                end;- H  |, d7 I: j, I# {% ?
                        else7 J; |5 v3 a1 O. P, i$ R
                                @.Destination := assignLObj[1,row];
1 s# Z3 b# @' X- R2 w                        end;                       
8 a8 O7 g& Y! [" Z5 J3 i( z                        newDirection(@);% @6 s4 b- C$ N6 A
                        @.HasOrder := true;! x# h4 f/ B) p* y+ r
                end;  w9 o7 n1 \$ N. y* Q& [" t
        end;
8 P0 a/ f! f1 B+ R; q* O) send;        -- of the method
! n2 J" A8 d$ i  v7 g7 g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : H! Z: C4 w, _+ n, E
; v* V2 Z! z! e5 t9 \4 I
这是AGV_putin中arrive的method。" J! J0 n# n/ o+ |
: I) i0 T, I; ^& T" e) X
当到达物料速度越高时,这个报警更多,& X* j8 y# Q; J! n
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: Y/ ?1 d3 F! ?% k3 l6 f" S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; p5 U* U  C- Z( g; X3 G3 c, w
7 R, S& N' F, y9 M0 o- y
另外一个小建议,就是move,所有的move都可以这样
! A0 r' [* M5 R) n7 Kif not move() then debug end: e8 L& ~+ X, [& |4 a2 m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! j) U: Y+ V/ Uplant simulation中的free libraries有AGV模板,
1 w5 A6 X2 ]" b$ h* F7 I里面也有案例。
; T1 x4 P& H5 A我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ @$ x% X/ `  ~5 o8 M$ N5 n
- n9 f: g7 f6 O- X% O# s& ~我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) F# o& d- E2 E- |
3 U! I$ {+ ^' Y% A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 |# l9 O% @4 o. K9 ]这是AGV_putin中arrive的method。
$ `: ~7 o) O8 U, a8 u+ v% p6 n, i- {( z( j7 G( j. ]) V+ F( @. h! Y
当到达物料速度越高时,这个报警更多,

: W- {1 M* X: p) X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 08:35 , Processed in 0.018514 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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