设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10056|回复: 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 F! h6 O/ M3 Y) j" m1 p: t! b
*/
6 l/ O: Q: F; l& d/ ^$ M* {is3 W( ^  d/ [- b
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. J5 O$ X3 }. B; N1 J, Ddo; {, v/ y3 u& n5 P  o$ \
        Lan := rootfolder.Internal.Tools.AOLlanguage;
% n/ C8 {. z# ^1 y& [        if current = @.Destination -- else return
+ ]$ X8 z- o% T        then
3 \; L  X" a  V0 H( Z9 D                @.Destination := void;: Y1 b% U  Q/ |' @5 _
                if @.occupied then* `& x* Y% t+ i- v
                        part := @.cont;
6 V! o: T/ z8 B9 s' }% c% ~                        @.transpOrder := void;( E# H) s: P% E& a& E- ?1 q5 C+ U* P
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# V) q; W9 w) b) T                                @,root.eventcontroller.simTime);6 ~/ y$ Q+ m& K
                        @.HasOrder := false;
9 X" m" Z3 K* o" @, ]/ n                        @.DrivingHome := true;
- [. o) ^6 z5 X" W* d* N0 P+ J* [" \                        rgManager.tryToStartTransOrder;- K) x/ O; q5 o. g/ M4 l
                        if @.Destination = void
$ u+ q" b; x! @0 x: K6 T' P! b                        then -- no transport order for vehicle @5 |1 o* B9 f' m  Z1 P& Z. r
                                @.Destination :=9 l# b+ b( ^/ j/ G' n8 h0 F
                                rgManager.nearestFreeStation(@,track.~);
7 k( b4 J$ t) Z5 V2 T  ^                                newDirection(@);   ! t6 I  V- e3 _$ b0 G* z+ ]3 {
                                if @.Destination /= void then2 F7 t: M: i- j$ B! e8 J/ u
                                        @.Destination.NumReservation :=" R: s" f- t; U$ e
                                        @.Destination.NumReservation + 1;
8 }" F1 Z  a4 u- y                                end;9 w& _' [5 T7 d: S
                                @.CurrIcon := "drivingHome";
3 z! X; x' S/ h( k0 |% r                                @.DrivingHome := true;2 x- I- A. p) v& Z( E
                        end;
0 [$ x7 a  H# _- E9 T6 L3 {* S2 N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' J2 g0 p5 d7 h! h# W6 O) I$ [                        part := @.transpOrder;0 g9 p4 v. ^* O  e8 R. P1 r" R, x' |
                        part.move(@);-- load part
1 ?3 S) ?# v; J4 c                        @.CurrIcon := "load";) U0 }" U) ]6 H7 h
                        GlobalDistObj := part.globDestination;3 A' O  b7 [1 B/ y5 _7 i3 I
                        assignLObj := rgmanager.rgAssignL;, q) |6 Y0 G  a1 O( ?
                        row := assignLObj.getRowNo(GlobalDistObj);& K1 Z/ \7 v7 I2 F
                        if Row = -1 then -- since 70
$ T$ A, x0 i! ~) a; q" H9 }                                if lan=1 then
- h' A4 S) s1 Z# h" n                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ Q$ [$ k! q6 I
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. F7 @( R/ [# o' N/ a" s: N( M                                else8 O8 N' A2 n+ }. M; M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 p/ e1 T) Z) W# a2 x. K6 `- X/ V5 d& y
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! O+ D% V9 c1 W& g  R                                end;1 l( `! K6 T1 h) v
                        else' y  z% r9 k6 e$ D8 D/ j
                                @.Destination := assignLObj[1,row];7 A# T9 P9 f- ?* ^8 a
                        end;                        0 z) T/ j$ _8 ]+ r' ?, K
                        newDirection(@);- H6 {2 _) P. l9 G; t0 m
                        @.HasOrder := true;+ t% ?2 n* {7 R% C( d2 b- O% @
                end;9 V* j! t! A8 U
        end;
; G8 c3 O6 l1 e8 h6 o6 \+ G; I5 mend;        -- of the method
. H+ v1 B% h: Q  [8 S# g0 [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 X! W  Q" o5 y4 f* I+ d) C& Q7 ^1 z+ N) S0 H9 O: t6 k
这是AGV_putin中arrive的method。/ Y# u2 H- g- K6 g
" w9 W. s9 _9 t5 {% g3 n$ g3 q
当到达物料速度越高时,这个报警更多,
5 m  s4 n, f$ \  J/ O+ ^可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( m! X+ [) t. M9 h  t3 O
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 _. a6 O3 O8 {8 u+ v$ ^6 K9 |; D' X; b( B8 L7 X
另外一个小建议,就是move,所有的move都可以这样' O5 [0 Y3 o& S9 T
if not move() then debug end' t& ?1 [* K# Z/ V, F& B7 ^
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- u# p8 ~  d) j: u; P. |- V4 fplant simulation中的free libraries有AGV模板,
- f- c  ~0 Y( a5 C7 h8 H里面也有案例。9 e6 C6 o2 K" D! M- B! E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# K" E, X4 }$ J7 N* p/ i7 d+ S

; X( u7 j% l0 z  X, f) m5 j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ G1 S$ B+ K! U- ?9 L& V
* V# p: w' x5 c* E3 d9 o
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ {1 q1 G& H( Q3 \  b这是AGV_putin中arrive的method。  p: K+ Z! J/ b1 l- [
+ \, T& x! t& s$ Y. o0 X3 s& H: `
当到达物料速度越高时,这个报警更多,

" y; ^, n( H% w) z, x( z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-10 19:25 , Processed in 0.017492 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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