设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8987|回复: 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', g" _9 f2 S* E. C0 E  m
*/" Q# l8 Q4 m( H, \
is
2 }! d7 ^3 T9 k3 p% Q2 S& O+ T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' W4 w+ R0 o: L7 U7 q+ w! Tdo
( |# ^: G4 z' p" f        Lan := rootfolder.Internal.Tools.AOLlanguage;
: n( s7 C& \5 q0 T4 N: \% i' `        if current = @.Destination -- else return
2 {" w8 a  W% t% ~# e        then
' g1 }( v$ h; m/ `7 V& J                @.Destination := void;; h% ?4 N0 V' R& }
                if @.occupied then
+ b2 c; I5 O, K9 k+ c                        part := @.cont;% W" E' g8 m. G1 T+ ?
                        @.transpOrder := void;
8 D& U8 z# X7 f/ X+ R+ L                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ q6 {$ B! D0 I, G) \                                @,root.eventcontroller.simTime);
3 l3 X* b  b/ o                        @.HasOrder := false;
- l, o! E5 k( H- m# {                        @.DrivingHome := true;4 Q- F  x! U( \8 v
                        rgManager.tryToStartTransOrder;" H8 r( a" w1 A, m, b+ ]: o
                        if @.Destination = void- X. C7 `0 Q; `
                        then -- no transport order for vehicle @8 U- E, d: k- J
                                @.Destination :=* I) O  \! q1 B; i6 ?/ j! m$ K# |
                                rgManager.nearestFreeStation(@,track.~);
$ X, ^) \3 j( N' W+ V. T& i0 X6 I4 x                                newDirection(@);   
" a$ H6 w! Z0 w$ o" \- g* _3 e; h; K; Z                                if @.Destination /= void then* r% H4 }$ \, j, E" V7 C% ^
                                        @.Destination.NumReservation :=3 c/ k: d0 h, _: [' e8 C" k
                                        @.Destination.NumReservation + 1;
# M$ j( E. q, w( h) ]                                end;8 {2 S4 T- @! U, h: ]/ k* d9 _) c
                                @.CurrIcon := "drivingHome";
3 Y2 _( s% D) _& z' O) y  L; Q                                @.DrivingHome := true;
5 v8 j- a4 \: ]! e7 {) C8 ^6 f7 w- z                        end;0 ]" K. b  b* L" a+ K6 |0 J7 `9 g7 J, L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) o9 n% x* k% d4 m# R                        part := @.transpOrder;
& x; k) q  _+ M                        part.move(@);-- load part  c& I& Y/ H) w# O6 M4 H* H
                        @.CurrIcon := "load";
2 T) O' G- |$ ~4 }* ]& E                        GlobalDistObj := part.globDestination;
  v1 q, b( l# _/ U* I/ P8 Z                        assignLObj := rgmanager.rgAssignL;) J* j4 @$ x! x5 V. }' z
                        row := assignLObj.getRowNo(GlobalDistObj);
8 y8 y; k: g/ C# L0 r" X) e5 x1 _                        if Row = -1 then -- since 70* q( {  a) a0 C
                                if lan=1 then
( R( ]8 E. u6 h' L% r# T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ Y5 w1 j8 P1 m! i5 D                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 z3 A- _) D4 {                                else: W4 g& A7 u/ Y4 B. O4 l' L7 z/ c+ S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ p  S, V! k7 U                                                to_str("in docking station: \"",?.~.name,"\""));                                , O# P! I7 u: K$ n4 c2 P& h- `; i9 H8 b
                                end;
( C8 Q: F/ v! V. ^+ E0 Z( X' {                        else3 ?9 k" O1 G9 V, F. Y& [
                                @.Destination := assignLObj[1,row];4 p: m' o, \7 d" y
                        end;                       
; t" T: V  O5 f# z( c+ f. X                        newDirection(@);. J' s; B. Y6 @5 \: ^
                        @.HasOrder := true;
  a! b' q( K* m2 v8 s                end;1 O8 E6 M$ Y6 V; v  {; K& J1 Z
        end;! K, V' {6 ?& `4 C# T
end;        -- of the method' t  V6 u' l; c9 n3 W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " c' U; |( k$ E: [. x3 T0 ?

- E/ E3 V! X: c7 D4 I这是AGV_putin中arrive的method。
5 K' s& J3 a, v- s5 @" m6 Q, M% k1 M8 C7 [
当到达物料速度越高时,这个报警更多,
- S8 o" G( k6 |* h可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 y0 E& s2 R( N* J& A3 h4 D: ^
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 _. _0 D) ]$ W; {4 t  `: u

6 s: c4 o) Z3 O9 K8 Z另外一个小建议,就是move,所有的move都可以这样6 T; q, y( U: {8 n
if not move() then debug end1 d" `" B* I0 K$ h# Q) R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 @2 z5 v5 W3 m# t9 o
plant simulation中的free libraries有AGV模板," v2 @) ?* T6 v" ?! I$ h3 c
里面也有案例。& Q  v8 D# j! \0 A; K2 o& I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( x! S6 T9 _, U4 Z9 R! _
; g, g7 `$ i: L$ Y$ N# ^& n我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. w% j! X+ R) q4 P* ^1 z: w
% Z1 K, W! M2 j7 m# _. k1 Z# x那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ ~$ ?9 `# I7 W# J. Q) O这是AGV_putin中arrive的method。
2 @4 O% a4 m# z: I7 H5 ]! v
. g( ]/ C6 H8 R, }当到达物料速度越高时,这个报警更多,

, I: q7 n, t7 E( m另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 18:57 , Processed in 0.015504 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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