设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8590|回复: 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'
* W2 E& @7 s, j! S. U- ?) X*/
6 E  o/ ]( W2 e' Z' k5 u- X3 His( c( V* |: C5 u# q( e9 i  c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; X0 r% j2 ~6 L; n/ L) ]  s
do
: ]5 u/ y8 b7 G5 d, A; N1 u        Lan := rootfolder.Internal.Tools.AOLlanguage;
' l$ U: [4 Z: I2 k. {0 w        if current = @.Destination -- else return% j7 \" f7 l. k" }3 n! O" N  k
        then
7 Q) O3 g3 y( x+ z) K5 s                @.Destination := void;# P. Q  T$ c) n% C8 |7 h
                if @.occupied then. u# x  C4 {/ P% P6 @1 h2 M6 L
                        part := @.cont;  k7 J: m+ q0 w! M* R% c* w0 g; W8 G
                        @.transpOrder := void;1 i8 v3 t, @* `, m# W5 m4 a
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ O% V) T8 f# ~) e                                @,root.eventcontroller.simTime);& G6 t/ R( S7 U2 P9 D# m
                        @.HasOrder := false;$ |4 j4 s! U5 ?7 y; h
                        @.DrivingHome := true;8 C  G; v+ S# c2 j" T
                        rgManager.tryToStartTransOrder;$ d4 |9 D  z% Z3 h" N; R4 _
                        if @.Destination = void* n7 K) d+ }, N3 f
                        then -- no transport order for vehicle @
0 v( q* S: m8 ^9 j                                @.Destination :=' j  k  v; L# k, j0 a5 k  L
                                rgManager.nearestFreeStation(@,track.~);
  k; o& P  ~! {& w3 E                                newDirection(@);   . p- v: F4 H; J
                                if @.Destination /= void then
9 B0 w0 h& c0 p2 w  k                                        @.Destination.NumReservation :=+ P' q. E" c, Q7 A8 X* z
                                        @.Destination.NumReservation + 1;
  K4 h) X2 M/ {3 I/ Q4 Q                                end;
2 d8 q  a# x# }                                @.CurrIcon := "drivingHome";
" E" R- g) b$ Y% d3 w                                @.DrivingHome := true;
; C9 K2 \! s, G' k; Z" D5 b! k                        end;
' |" I9 O1 Q$ d: F7 `; l$ H                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, |" [, d' [) M6 ^: Z+ j! s                        part := @.transpOrder;+ L, s0 P. h* j0 B) t3 _* c
                        part.move(@);-- load part3 K9 H- ^1 Q5 @' J, P
                        @.CurrIcon := "load";
0 d) K' L$ W% C* U  r                        GlobalDistObj := part.globDestination;
3 }5 P  t5 N2 i+ r/ |                        assignLObj := rgmanager.rgAssignL;  k# N* u; I/ ^' `
                        row := assignLObj.getRowNo(GlobalDistObj);
' T. p" L- M, d! {; `                        if Row = -1 then -- since 70
2 R9 v: Q4 T/ k* Y* q1 W                                if lan=1 then
) h) \; p: |7 B8 m9 u  q; }4 Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' E: t. H( }9 `2 {0 _$ t9 l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: |1 Z8 Z! U4 i- c: Z/ Z                                else
+ @2 A' [$ _5 U, k  `                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' Q9 `. d& A7 D; s8 X
                                                to_str("in docking station: \"",?.~.name,"\""));                                - \, H  ^, h$ @0 F0 O/ i0 u
                                end;, p9 p* |! E; v4 A* F% `+ F" N
                        else
7 @' {! t9 ~& q6 L                                @.Destination := assignLObj[1,row];4 X# K  N& K# M
                        end;                       
7 B& H" B0 v7 {4 _6 \" X                        newDirection(@);
! q! p2 ~& I* ?" ]( n! s: |                        @.HasOrder := true;
8 l/ q: R3 h( P7 R* k                end;9 x3 e/ W: Q4 N+ f
        end;, T: \5 W' l8 @' I8 T
end;        -- of the method
: I( j! _& n9 z1 y- I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, W9 ^9 `# d5 c0 h
1 A( ~' I4 R% Z- F" l这是AGV_putin中arrive的method。) B$ H9 J' _6 y9 V7 o7 _3 P% r7 }3 Y

5 v8 G. q0 \" H& E3 m1 K& g当到达物料速度越高时,这个报警更多,
. S: q+ q9 ?( f1 q! W2 i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. P1 D% p% V/ T5 D- e8 A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 O: }- L) E' Q
# D5 q/ U* V, J' S2 G
另外一个小建议,就是move,所有的move都可以这样* K4 P7 ^- d% \0 C  x5 [  n; \9 j. t
if not move() then debug end
2 d9 A5 l& V. x7 X$ G这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ ]+ r4 ^0 k: @* {8 p: ]6 Q
plant simulation中的free libraries有AGV模板,- h. M' }" G$ w2 z3 K; w) ]
里面也有案例。0 e: y: y; U+ {, s% [6 Z% @& B
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 V. r+ m# k7 @8 `7 ^* n, f

; h" z. L( V4 v7 y, {& A我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 ~. F. f) f9 h# |
# E6 e: {$ b- G5 S+ K) B那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 e; w( I9 C; T2 C$ o/ d
这是AGV_putin中arrive的method。
1 c2 U& Q  @% W1 N
# j; w- l, Z. Y# }  i% j. N1 ?当到达物料速度越高时,这个报警更多,
. g/ L; ]+ D, P& o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-14 04:49 , Processed in 0.016936 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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