设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5668|回复: 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'
7 v  Y  Y  p( G*/
7 t3 h( d& c+ ]; X# O8 q# g! H  yis
( }* x' v/ }) E0 T5 t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# P- V  W" }! T3 m& n
do# B. z9 y" s: s2 Q7 S" P
        Lan := rootfolder.Internal.Tools.AOLlanguage;2 d: y/ ^+ A- e3 {! U, C7 _
        if current = @.Destination -- else return, l- N# ?( P+ Z3 z* m( o9 u  P( w
        then; v- e4 t. \2 ]/ z' u8 H
                @.Destination := void;% I9 c2 r- }, p4 e7 V( j; D
                if @.occupied then# I- e: M' F3 }( `% p
                        part := @.cont;* |7 U! X8 k5 I1 s
                        @.transpOrder := void;$ H0 S$ J' [6 y7 x# L' h6 b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 D& F$ j. L- D4 B- A5 [                                @,root.eventcontroller.simTime);# Z8 T/ Q0 K  T& G. l1 M2 E
                        @.HasOrder := false;
# q9 p0 b! R5 |; d% T  K7 f9 v                        @.DrivingHome := true;
  z: L. e5 b' `+ C3 W8 {                        rgManager.tryToStartTransOrder;
( r$ ~" N  d' c3 d+ ^                        if @.Destination = void% M; S. A; k. w0 }% F; u0 }
                        then -- no transport order for vehicle @: G1 O" w* @  R% u
                                @.Destination :=+ G7 \" B; }! E) S: @$ H
                                rgManager.nearestFreeStation(@,track.~);
, }# }4 \: t4 Q9 I+ U5 e                                newDirection(@);   3 e1 ?  P& e- M2 W7 v
                                if @.Destination /= void then; r3 {( r4 T; N/ x& y
                                        @.Destination.NumReservation :=
, [7 l* ~* y7 q: R/ h                                        @.Destination.NumReservation + 1;* n3 h0 L) o  c+ v: w4 a* y. Z
                                end;
  x6 `; c6 ]( b% h6 V( o' N0 F                                @.CurrIcon := "drivingHome";! E/ d' }% R# g6 r
                                @.DrivingHome := true;
2 s+ g& }9 X: [% |2 f                        end;
8 `2 G3 c# g8 w: @8 L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ j) j' @* k& x                        part := @.transpOrder;
' h. [( [. a+ E9 v5 v5 D! Y                        part.move(@);-- load part2 x; s8 Z* c0 ?
                        @.CurrIcon := "load";% w1 e( R! {% O9 O) J
                        GlobalDistObj := part.globDestination;
0 i4 W- y; c3 n- A                        assignLObj := rgmanager.rgAssignL;2 }* a- j; e. o2 j  {
                        row := assignLObj.getRowNo(GlobalDistObj);
7 l: a- o. W% ?( m$ V9 a# |                        if Row = -1 then -- since 70! C) N( c2 v5 `1 D; s! K
                                if lan=1 then- P/ F  r  ^' ?1 [% D8 \
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# d/ c* D# k! o0 O  [( Q! U6 Y& S                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, W5 T; d; n  M/ @                                else
, j# Z5 e$ `: _; w% r# T) l                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 H! R4 Z% f* X
                                                to_str("in docking station: \"",?.~.name,"\""));                                  Z/ b8 ~; ]/ w; Y! \4 v0 k
                                end;8 i, U. H# ^9 i* p
                        else
2 w3 `+ D6 h/ n. Q                                @.Destination := assignLObj[1,row];
3 L3 @1 P1 V9 a; p3 C                        end;                       
9 s7 T5 q' b: [% ^: `1 R                        newDirection(@);1 _7 P- [: l9 ^/ B# ~
                        @.HasOrder := true;
5 t5 J' W$ `' `* ~: L                end;
. K2 z. i) @, ?. Y2 o* t        end;
5 f, ]" h" B7 v/ K: f7 ?end;        -- of the method
8 _0 t" O1 X" _: x: e/ o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " {2 `6 T8 A4 G. D" d* x  N% A# S- `
; L+ Y& S& c# E( x) K+ J
这是AGV_putin中arrive的method。
0 L6 l: F+ O. x6 T0 V5 h1 M
7 `$ L: g! J/ m  Q当到达物料速度越高时,这个报警更多,
& X+ n) |& D/ u0 [8 H2 N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, e9 O6 u: E9 i. g' G2 X" @  A0 S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 Q3 m& s: i/ |' N! [. _# l4 a% s: T: O3 j1 Q: c
另外一个小建议,就是move,所有的move都可以这样" {- j+ i) t3 E
if not move() then debug end8 ?6 b4 B4 j& a/ f% m9 {- x# P
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 v4 n8 ~3 T7 r2 F7 H5 |1 w
plant simulation中的free libraries有AGV模板,
+ c: D9 W$ b3 a! P/ Q里面也有案例。
2 A7 R/ s3 U' a3 o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 V0 n/ G' w- P7 e- t4 f5 ^: A+ n
, u  I- N3 P" F9 V6 ^& J+ c
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: k8 S* f& n9 w( c2 ^5 p
7 C7 K& v# ^( s* {* I6 v% q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 f# f4 |$ v3 G2 B
这是AGV_putin中arrive的method。
0 Z. f6 x) r9 A3 D, }. |
8 T# s0 ]1 {! R- F当到达物料速度越高时,这个报警更多,

  L( `9 p2 R2 ^( y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-12 18:45 , Processed in 0.029946 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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