设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8719|回复: 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', S  o" C. x; @6 b: ?
*/: D) {0 a8 o& ~- g0 M8 I) W
is! K6 d8 Y0 F' [: m2 e& N4 j+ v+ F
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" M! k( k1 Q9 L' d
do5 b8 N- i) a( b# Z
        Lan := rootfolder.Internal.Tools.AOLlanguage;$ z6 G- y9 |$ \- N
        if current = @.Destination -- else return
" n/ v+ R# @. }        then
; M: {+ T! q# W                @.Destination := void;
7 F, s0 B" L1 B: W                if @.occupied then5 I' |9 n9 N5 d; G0 G5 ]
                        part := @.cont;( a9 Y# R6 F) }* G: |
                        @.transpOrder := void;
+ f/ V, v& L2 Q& g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 D/ U  i& p% c% r. S: J! S& T2 p                                @,root.eventcontroller.simTime);* |/ F$ G- o3 ~5 Q; ^% k+ _9 w& k1 ?
                        @.HasOrder := false;; G% }% D- S# u6 l3 L2 O" s
                        @.DrivingHome := true;) b# h+ n9 @& h  M0 a2 o" N& W. l
                        rgManager.tryToStartTransOrder;8 z: q) r; @3 X6 z2 C+ [3 L
                        if @.Destination = void6 @; ^; B9 x; `. N
                        then -- no transport order for vehicle @
% c+ ^/ N% R) c7 Z( R                                @.Destination :=
# c) X" {& y; n, ?' p- q                                rgManager.nearestFreeStation(@,track.~);
! c8 |1 t, ]5 W! y                                newDirection(@);   7 j6 x% C, S6 m$ f' ]3 W" M9 n0 }
                                if @.Destination /= void then
6 X- a8 y) h0 N# x2 q& I7 `$ S                                        @.Destination.NumReservation :=
2 M* z$ i, l+ U7 V5 Z+ ~                                        @.Destination.NumReservation + 1;/ W% q" [/ a% z& A" j' k5 X# K
                                end;' E' D2 f0 Y1 w/ p7 y! i( M
                                @.CurrIcon := "drivingHome";# ]9 d4 d+ R! x
                                @.DrivingHome := true;4 N: ?! T' @, l6 L3 B1 h3 }
                        end;
/ Z2 U5 S! g6 j. o* o) p. O, q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ v$ ?( _9 N" H5 b6 I                        part := @.transpOrder;$ \$ }1 ^( H* H* o0 A1 Z  j. m! X
                        part.move(@);-- load part
: |$ j' K% y# A                        @.CurrIcon := "load";
! w2 U( `/ A8 f& X                        GlobalDistObj := part.globDestination;
! o- y! [# q8 {4 p3 R1 P                        assignLObj := rgmanager.rgAssignL;2 x; Q8 @, U# M. O9 f
                        row := assignLObj.getRowNo(GlobalDistObj);
1 n8 A; f7 `: l                        if Row = -1 then -- since 701 j1 u2 Y  f  ~4 h* ]4 k
                                if lan=1 then
4 T" F7 [* z3 e3 q, o+ W9 \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; n- p4 C$ _) |4 J. b0 D                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 T8 o+ m- _  z) r3 L: A% I
                                else
% M( L% d* Y! y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, S9 s1 q# T- m1 y! Y' ]6 R
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ f! T) h4 S) Z) c                                end;
; J0 H4 n/ ?" l. E. H6 U, R9 D# j8 s                        else6 i" |9 d/ f( a, ]; L3 P- A
                                @.Destination := assignLObj[1,row];% Q  i$ q( O' B; J4 `
                        end;                       
4 N. Q1 j! ~0 F0 _! C4 ?& V                        newDirection(@);9 C; l2 X# {, W  d
                        @.HasOrder := true;# E+ c7 x6 b4 M1 C6 T6 X
                end;6 q1 X4 a& W. r& C* }$ W
        end;
: o; B( u/ _+ f. N5 D9 K0 I0 dend;        -- of the method
& s* s" g  C! D$ v* S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ f; `1 l1 @6 v' ~; h# ~5 i: \3 h: Y6 f5 g- A: k" @
这是AGV_putin中arrive的method。8 g7 v8 |# U" i
7 K+ m, B5 K. ]( x8 D, N+ E( }# P
当到达物料速度越高时,这个报警更多,
9 v0 A+ ?; ]! Z' d# c  \. B+ x0 U1 K可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 F2 s+ A8 t: B% z3 t9 u$ R7 [6 x程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 r5 K& Q! z4 g5 N; R

( J+ \  b& g2 X0 e另外一个小建议,就是move,所有的move都可以这样  x4 i# C' v$ p5 B1 B( ]
if not move() then debug end+ r0 y; P' \" a. _! o% {) I* D5 Y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  Z1 D$ L/ ]& M) p9 Uplant simulation中的free libraries有AGV模板,
. g2 _7 _, }+ A里面也有案例。
; Y% |/ [4 w& I* i- m& U9 j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# n. E8 U5 z' S6 z' T4 w
3 H, B" P, W& |$ p8 `) R我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , \9 Q0 P& V9 J7 e' s

$ E' h+ y4 J& [- I, Z* f' b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . u/ [0 v. b5 z/ `
这是AGV_putin中arrive的method。. n7 _$ }9 S7 J. |4 L5 z% O$ X2 I
, f. V" t6 ~- W- n& v" \, u
当到达物料速度越高时,这个报警更多,

& ?$ G1 Q0 ^' F0 [( ~另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-22 07:36 , Processed in 0.016108 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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