设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7611|回复: 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'
. W, y. g. E- S3 e9 N*/
7 L% Y: e( ?7 P; {4 |. H8 Y4 a( G) Cis
; ]  `/ o( a: \3 @: W2 T2 V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! a2 d/ r( w  A& m+ pdo# x6 a4 @( E  W: m- z
        Lan := rootfolder.Internal.Tools.AOLlanguage;
" |0 l% y! }" |9 ^! ?        if current = @.Destination -- else return7 r, E- d: H5 u
        then0 B$ V  l  @, I0 U2 E
                @.Destination := void;7 q, O9 x  u: P, u- B5 U* j
                if @.occupied then" P$ |. X- S# E$ o8 b* _
                        part := @.cont;
( l/ O+ r  c- @0 `. n) Y2 k                        @.transpOrder := void;
6 O$ I; `7 @1 l6 |& @$ A$ G8 z+ G                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ G2 f. i, |1 @: O+ q/ ?; h& W: Y                                @,root.eventcontroller.simTime);" k4 i1 u, h) E& y% J
                        @.HasOrder := false;
3 a; ^6 x6 {" }8 A                        @.DrivingHome := true;
5 `7 j% K' S9 S2 d( @                        rgManager.tryToStartTransOrder;0 u5 n, w$ D3 W  h6 h! m0 }1 y8 t2 ?8 l
                        if @.Destination = void
1 p4 ?( X" W2 n. @: A& q. A3 j                        then -- no transport order for vehicle @) h% |+ Y) X# y5 x
                                @.Destination :=8 I/ ^9 ^- H) ]+ q4 F, Q7 r4 _
                                rgManager.nearestFreeStation(@,track.~);2 N6 [' y4 I* n- o+ Z6 ?' q# J' ]% N
                                newDirection(@);   ; v' D" Q4 s! V  Y. F% S
                                if @.Destination /= void then
! v# X; n* i7 w7 z                                        @.Destination.NumReservation :=4 u8 E2 E* G5 Y; g
                                        @.Destination.NumReservation + 1;
5 p7 H. |% h4 s# t6 X. Y* f. T- E                                end;5 F/ @2 `# c( }0 r
                                @.CurrIcon := "drivingHome";) L( W- h/ A- t) p$ l8 y- U
                                @.DrivingHome := true;% v/ {' P+ t  ]( [* [" x2 v
                        end;+ g- b0 I# }0 @% s1 R& F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* @  J+ E1 B! Z                        part := @.transpOrder;& [  D! E8 x3 }/ T4 A0 ?# a
                        part.move(@);-- load part0 q; r& m& d3 {1 c4 `0 E, O
                        @.CurrIcon := "load";
0 P, j: w8 d  O) y" _4 L                        GlobalDistObj := part.globDestination;" c1 _) s( y& e
                        assignLObj := rgmanager.rgAssignL;, {/ F9 I$ k: Z/ t/ f+ w1 K+ E
                        row := assignLObj.getRowNo(GlobalDistObj);
3 d" O# d4 B9 R9 L9 r% w                        if Row = -1 then -- since 70
2 v4 W# t" I! G  H% G                                if lan=1 then
7 E; ~( L( n2 s4 |# K5 B: b                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' \6 ^% _' _# c; \7 d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 M# N7 I: D& @  t: \                                else
6 k8 T3 ~: ?/ N+ Q7 l* @3 s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 _* Y3 \7 m" I                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 |8 A/ F* [, A" s' D                                end;
/ d' _) f9 X5 o4 p3 d- Q                        else' q/ M. n# W+ H
                                @.Destination := assignLObj[1,row];' W7 R, c+ E. y  l" W
                        end;                       
6 ]2 p/ u0 a4 R- z2 Q                        newDirection(@);0 m+ x4 Q8 O9 C; O5 W
                        @.HasOrder := true;
/ K5 k1 N+ Q' _1 {                end;8 V  u4 G# H  [
        end;: V( R9 @6 [- p  G' [, f
end;        -- of the method
" c0 k3 n2 c1 R8 o" J- B3 O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ J6 K. H* M; o0 n9 B$ ^: e, z
/ S5 K3 n# g9 l) D; p5 t* n这是AGV_putin中arrive的method。9 V$ e0 j9 k4 X5 {) I$ N

9 U" \' j* S) X$ L6 h当到达物料速度越高时,这个报警更多,4 U6 U3 z9 ^) F+ ~' ?" H
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  a- q$ n8 K- e+ t2 h4 @% Z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?$ N) L1 R' b' A& }5 |' ]( a
9 m( U8 [8 O) ]5 F. Z% C; Z
另外一个小建议,就是move,所有的move都可以这样% g; V# h% j/ K' o0 z
if not move() then debug end
0 |% r+ X" t( G; U* w' H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) g; s# S- I$ ^; k( \
plant simulation中的free libraries有AGV模板,
2 v! W0 }0 z3 g% B; g. q" S里面也有案例。
  ^, W% n  l, A5 @- G0 j; C" Y4 g* B我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( S5 T  p) @; D8 E8 i0 ]$ \% V/ O) B' T. l8 H1 \& S
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 v) _' o: G3 p1 A( n7 W7 N& r9 h) H6 j( n5 Z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ z0 U  E' |' C0 }, w这是AGV_putin中arrive的method。  Y# n) ?" S& L  \

# L% F4 m+ r' R2 o3 E5 D/ Z" N当到达物料速度越高时,这个报警更多,

# L+ i- ^8 M2 F1 ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-20 03:22 , Processed in 0.020901 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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