设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9710|回复: 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'- h7 z; x2 B# \0 O# O) M
*/: e6 U" C! @! T. s* E* c1 ^0 Q
is
4 t( T5 L+ v6 i% P  v" |" x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ c, x2 N4 k# m. l8 E% odo
; [& B$ X6 e( {& f        Lan := rootfolder.Internal.Tools.AOLlanguage;0 l& F/ ?  z/ Q( `/ V7 e" k9 M5 A
        if current = @.Destination -- else return
  X: N% j. B( Q$ h$ g        then
; A4 r* E, X+ q# ^: p                @.Destination := void;
, d$ s+ [0 s, w- O# Q8 a' t( _                if @.occupied then- i: w6 ^0 _, }
                        part := @.cont;& p6 N8 r$ w% z9 S: j* f
                        @.transpOrder := void;0 L9 c% e2 g3 e+ _0 Q& F) R' K
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 j/ W! j7 S2 `3 |/ f: w                                @,root.eventcontroller.simTime);
1 S: j- Z! q  A3 z                        @.HasOrder := false;: f5 i8 E# h) d+ [# @, t9 t
                        @.DrivingHome := true;; ?! p" o( T' p) o) d
                        rgManager.tryToStartTransOrder;: a2 @6 x7 U+ ~$ I) |2 i% t
                        if @.Destination = void" e6 l  c/ A) g
                        then -- no transport order for vehicle @
0 N% ?* [! [! X& m0 n$ [# g                                @.Destination :=
5 L: d! |4 z; L8 \                                rgManager.nearestFreeStation(@,track.~);
8 `4 [, n  a% g! r: L1 O6 _                                newDirection(@);   9 ?$ k6 @1 R$ X7 f4 f, u
                                if @.Destination /= void then8 c6 j9 @$ S1 a- `
                                        @.Destination.NumReservation :=
  G  k$ k7 ?& g7 }+ R2 }                                        @.Destination.NumReservation + 1;9 s# O( Y1 T3 M( u' Q
                                end;
% b4 z9 Z7 \/ k- d                                @.CurrIcon := "drivingHome";# r0 O$ s! g3 @+ |- T. N! J6 c0 Y
                                @.DrivingHome := true;
4 w( j; Z! q' q7 R* B" z                        end;/ |) @; H) P! X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ T; z! v5 q6 b7 {1 X' C+ s: T                        part := @.transpOrder;
0 P7 E, ?: Z( S                        part.move(@);-- load part
+ o3 i6 A$ m/ s+ Q9 |                        @.CurrIcon := "load";
2 g, Q5 F6 [$ r0 b. G7 A8 M- F( ?' e                        GlobalDistObj := part.globDestination;  A% _  @: r& R$ E" C
                        assignLObj := rgmanager.rgAssignL;
2 l' q8 y5 @, X. r                        row := assignLObj.getRowNo(GlobalDistObj);
% |, z6 F- e6 W, n; i" Y                        if Row = -1 then -- since 70, n$ J8 c& f+ C; X. o
                                if lan=1 then
+ {0 ]! t! ]  [; E6 g* U9 t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) o5 f) G, U; C# g. D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 B7 i- a/ [; X9 x
                                else
, z6 `4 N: r- Q2 T7 i  d# X) o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, ]: @: j1 S6 s% M7 m                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 m  O% W( ^# v1 {                                end;
5 a( {: g. S/ F4 D0 {, T                        else' r* y8 x- {1 |2 u
                                @.Destination := assignLObj[1,row];- Q. Z# v2 J8 n5 |+ x4 g3 u
                        end;                       
# m+ H+ w% X& v! z# x- v8 ^                        newDirection(@);
. K" O4 B  o) ?) O8 r                        @.HasOrder := true;, V- ^2 P1 ^; v2 q
                end;+ G$ Z2 {" O1 v; v- H
        end;+ O- X/ @( Y2 C' z2 Q; q0 _
end;        -- of the method
& j' t+ C3 }9 Z4 a( h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . N! U# b  b; v7 M% E3 y# B- S; w
* m" V' z* }  H8 k8 n8 ]
这是AGV_putin中arrive的method。
9 q# ]* K$ J$ @' t3 c/ k
: L/ ?2 r" R" N# o: d! A( j当到达物料速度越高时,这个报警更多,; P7 e! U9 [" u! `) u+ i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# D0 n5 `- w) G/ X2 ?( j+ C7 G  y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! H( g+ X% v8 O% |. q( l4 d
; i% I, o( t* B* `
另外一个小建议,就是move,所有的move都可以这样
6 S2 d: a! A$ D5 x& Nif not move() then debug end
, t' A3 j/ c6 T" L" j# I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: E% V1 t+ D+ v( _, h
plant simulation中的free libraries有AGV模板,1 o1 X5 T( e) @: g
里面也有案例。$ L- t6 ^+ @- }6 X* v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 a% B/ l8 ^0 Q! J: D6 h+ b2 T0 Y3 e1 h2 q  Q1 h% w
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 q( O' r5 L( g! D. h, K/ \
# D3 N  J% x; v8 A5 p) D" n
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, o7 `* G! n7 |) x5 }2 H这是AGV_putin中arrive的method。
& I4 ^; J3 Z6 K/ m/ W' }
  ^& k- ~1 B; [5 Y5 d# D当到达物料速度越高时,这个报警更多,

9 Q) k' I8 d# d. o5 r: A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-19 14:04 , Processed in 0.015423 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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