设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9303|回复: 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'
+ z& K& i; R! c" G3 T( d4 Z*/
& K7 U( V! M+ m$ W% K0 Wis
$ v+ e+ d2 A" Z' c- G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( y( i/ h8 s0 Z
do
1 H# i" V6 [" j6 ^' z2 x0 L        Lan := rootfolder.Internal.Tools.AOLlanguage;) I  W! F3 C% h
        if current = @.Destination -- else return0 O& ]1 b" \; t3 v" I
        then5 L: f% ?' B& i  Y$ @: o" V
                @.Destination := void;
3 L, `: [% a5 B  l+ k                if @.occupied then) f' R0 v( u/ r: ?
                        part := @.cont;
6 D5 z& Q/ V7 N2 Z  r                        @.transpOrder := void;/ Q) o% i8 G" V6 @# Q" \; n" V9 |# @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, E6 G+ `4 R) C  }7 ^4 E                                @,root.eventcontroller.simTime);0 _% N$ ?6 e5 {1 s7 j* M4 w) H
                        @.HasOrder := false;
; [9 n  x, @) \1 v3 q3 d) r$ E) j& }                        @.DrivingHome := true;9 t. u/ J  |  `- ^% O% K
                        rgManager.tryToStartTransOrder;
: T  w# t* s3 A2 [" K                        if @.Destination = void: {2 h1 g, S% S6 y; a/ B! ~
                        then -- no transport order for vehicle @
/ A9 z- o/ K/ i4 w6 `2 N6 E/ i                                @.Destination :=( q0 Y" s4 @; z7 m, H6 o- f: k
                                rgManager.nearestFreeStation(@,track.~);$ M" R- B/ o& S5 c+ m$ A
                                newDirection(@);   4 n: x, E+ x% N! t# f
                                if @.Destination /= void then
" e. u) N" Y# G, M0 Z0 n3 v                                        @.Destination.NumReservation :=
% h4 s* r# L3 y8 h& X0 c, `                                        @.Destination.NumReservation + 1;" A# s, Y# K! ]: G$ G
                                end;
+ |: \7 Q- [! G) t                                @.CurrIcon := "drivingHome";  j: v3 j. N2 }! j
                                @.DrivingHome := true;- Z# e0 U, |/ k2 S
                        end;
% X" J$ @. x( o8 }- J! {7 B4 I                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 T7 ^( M$ N% v3 O& W; Y8 Q7 S8 [' N                        part := @.transpOrder;- [# v- d; w. X2 Q2 y
                        part.move(@);-- load part
* t  X: V5 S% l9 v; }; U( Q                        @.CurrIcon := "load";& b/ r7 K" V$ ?' Y, y$ Y' X
                        GlobalDistObj := part.globDestination;9 u( k6 f# f* U' V9 I6 \$ t
                        assignLObj := rgmanager.rgAssignL;
( x! \+ z0 ]# X, b3 V2 {, X                        row := assignLObj.getRowNo(GlobalDistObj);/ n( M8 A) U( Q2 K  X
                        if Row = -1 then -- since 703 F6 }, r4 K+ G3 e" |; @
                                if lan=1 then
( [! d  O: `6 U; c7 w                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. p/ U6 u4 D3 p& Z, ]% q) V                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  V4 c. W& C$ q' a                                else8 Z4 u: J) s/ y1 P" A
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ R/ y4 j* }  A. E                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ ]) D( ^/ R+ E                                end;$ C! l8 g# \- M7 v( i" _) l) s9 t- e' a
                        else; w" M& U, U% B% l$ D
                                @.Destination := assignLObj[1,row];6 r$ m8 I, u- \& I* t; K4 x7 I& R
                        end;                        : B9 K( h0 J& b  w/ D9 ^% T
                        newDirection(@);% ^. s! h4 b0 L* L" S: m
                        @.HasOrder := true;
3 ?6 C! K& o1 b! Z0 T+ n( s% n! I                end;
: N( R& u6 N9 ~8 u# m        end;9 D- I  f  U/ |9 K3 l
end;        -- of the method
2 ]9 K& c) x' n3 R- D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" u9 f. I5 a. S8 y5 I! X! x' w! h1 }! b( l
这是AGV_putin中arrive的method。
: D8 Z( x0 A, J' V; O; q. w2 F! z7 ]4 S/ C/ q0 f6 B) H8 K/ x+ k
当到达物料速度越高时,这个报警更多,5 A6 A& O3 K% q% T% b0 |
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, Q; ^+ |7 i8 O5 f' s% \" w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& p9 G7 ^. t9 l6 l. S: V1 Z# C4 Q" b1 w
另外一个小建议,就是move,所有的move都可以这样$ G# O  i0 d7 B# y$ j4 m! M
if not move() then debug end7 c. _. m7 z- F, J8 o
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 A# h, Z  N0 |. T" e. [" Y
plant simulation中的free libraries有AGV模板,
( z4 K; T0 s; Y6 N! E& Z里面也有案例。
7 w  \$ e# k; a/ u: B我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ _& {6 s+ \+ g9 b" e* m
9 X0 f: ^5 {" n) y; x1 x4 ], {9 _2 v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 e/ F: a3 v( D0 @" `  D( ]4 T- G* |) }8 Y7 @+ S# u
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ G4 E: A( G" a7 T2 V这是AGV_putin中arrive的method。
" }. a! Y0 r( S4 b0 U# s3 d7 I4 R# M! F, L
当到达物料速度越高时,这个报警更多,

9 g2 A- `' D/ \7 a& A, }另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-24 04:21 , Processed in 0.014101 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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