设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9723|回复: 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'
9 ?& u. [3 y  R  i*/
! x% |( U3 y3 w% j$ s2 C8 Vis
: k9 l: j. t6 O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  k7 q5 r0 W: y. [7 |; {
do
  j) t( x% k$ S        Lan := rootfolder.Internal.Tools.AOLlanguage;/ f1 H5 N$ }* y1 j/ x7 X) L1 l
        if current = @.Destination -- else return
! n. o" N9 f1 m* P# P3 Q        then
' ^+ X4 o# R# N                @.Destination := void;% K5 B  V  }/ T1 K) ]- T+ O
                if @.occupied then. N7 ?% X4 Z% U9 c+ T$ w
                        part := @.cont;! O+ b& u$ O$ Z0 H! q( N
                        @.transpOrder := void;- r1 A& b% S7 h$ v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 z' F9 X4 j. F, Q2 w
                                @,root.eventcontroller.simTime);
6 V5 l; Y$ P+ K$ X                        @.HasOrder := false;4 H* Q. [- X3 F- f
                        @.DrivingHome := true;
, z6 s% v/ d) a2 U, K                        rgManager.tryToStartTransOrder;& N7 {4 H# U! c, u3 A5 s  [
                        if @.Destination = void3 Y- B# V" l6 F+ k
                        then -- no transport order for vehicle @; Y% x! H  I; G# V# A7 y
                                @.Destination :=
3 o7 ^$ B9 f: c' `  q                                rgManager.nearestFreeStation(@,track.~);( s: j  W* N; U1 \& X* L, ]
                                newDirection(@);   
# v  S: j+ d9 j7 Y7 N                                if @.Destination /= void then
( {) z1 |1 C$ N( p1 r                                        @.Destination.NumReservation :=  H& g  v5 C2 i
                                        @.Destination.NumReservation + 1;6 J! v$ l5 Z6 v6 F$ i- m- @
                                end;+ x0 ^+ ?3 d" v
                                @.CurrIcon := "drivingHome";' W* _- k! V$ v6 t# w
                                @.DrivingHome := true;
; S. w( Y* g9 C8 y. i: M                        end;
0 E! D" l1 o7 m7 N; y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- L  o5 D( s( C3 L4 [
                        part := @.transpOrder;
  c8 X  v0 f) o; {& Q8 s) w, J" e                        part.move(@);-- load part
4 B8 `( y# K- r- ]- I) o                        @.CurrIcon := "load";
5 D4 r5 }$ w& T* V3 D2 s                        GlobalDistObj := part.globDestination;
" Y0 a. ]' E: F; M7 v; R* V7 G6 k6 C                        assignLObj := rgmanager.rgAssignL;' J+ ~5 |2 v& X9 a) R* P
                        row := assignLObj.getRowNo(GlobalDistObj);: }- W: i4 m$ b+ a& ]  d
                        if Row = -1 then -- since 705 Q5 V& r$ e$ H1 \3 j8 V& d
                                if lan=1 then
+ P9 Y. P9 y! d7 A, f5 M                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ i9 [# D; ]- L) g2 Y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 i# [/ _+ p7 ^! l* d
                                else
+ f* A0 F9 b, F) }1 R9 _/ s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  |  \# o* Z5 {; |! |
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( P5 B  @/ g/ L6 I) u* u                                end;" Z  _" J: h; x, C; F+ B
                        else. G3 Y4 Z4 c: X5 `( C
                                @.Destination := assignLObj[1,row];& E+ \. p9 h5 \; P
                        end;                        , m" L6 z7 ^! a  P
                        newDirection(@);
& h, R9 c. b* ?) b7 K6 n1 s3 A                        @.HasOrder := true;4 k; ?' [+ \+ h( d+ k
                end;$ J' Y0 K9 B8 P/ E; d6 o* V8 G& p
        end;( q. w- R/ d/ A, D: d
end;        -- of the method( [4 @  S" H/ N7 B2 b: A" r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- N% G9 c( \( x& i5 e5 _  w. Q' c* r; s7 U# e8 |) e
这是AGV_putin中arrive的method。
7 C" I2 k6 J8 k' j' \, m  t# _- X2 }# _! \
. z' P) _; y* l( C+ {0 g$ b; L当到达物料速度越高时,这个报警更多,
# O6 z9 P2 D$ s  p) I2 s可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 y6 b1 M- i' E/ O2 O( c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 K, r3 O+ ~1 |7 K* O" I2 J1 K) X. F# [
另外一个小建议,就是move,所有的move都可以这样) c: w3 y  [! j$ C' {5 u3 D5 f0 R
if not move() then debug end  _! R  C' l8 z3 ?8 R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) x3 F4 ~5 ^' E, [
plant simulation中的free libraries有AGV模板,' k+ W  [  h  F* P1 a6 c  J
里面也有案例。4 J9 z2 r1 W( L( V
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& y3 `" B% N2 B/ l. y1 }8 t" v8 O) L* H
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # ~. y# ^$ Z/ f( n3 A
: R5 T5 z6 V0 L, }
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % n( F! Y0 O/ N5 t' V1 t
这是AGV_putin中arrive的method。
4 S; l( m: }+ l. J1 `3 z: b! n
  [; D) @( c% X3 k当到达物料速度越高时,这个报警更多,
* e) x* X, l' @# |: E, t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-20 12:39 , Processed in 0.023168 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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