设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6779|回复: 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'
8 J% F/ X8 ]- }  z) k$ N; J3 w: v*/
  h& n. i- [. a: Nis
& }# n0 r$ h0 [. M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- C. D+ a% t! M# _' c, jdo
1 a3 ^5 M. R  B- g5 |- }( K        Lan := rootfolder.Internal.Tools.AOLlanguage;
. K5 d; D* j2 @! `4 s        if current = @.Destination -- else return
5 T8 T1 H9 R1 Q4 {8 F0 N+ R        then6 ?7 z8 F' P& f* t1 H! N
                @.Destination := void;
# f6 V+ k1 X! k0 @& b$ A5 t                if @.occupied then
  [- r; P* P  f$ |; z1 s                        part := @.cont;' I$ D) @" q2 p$ a3 A, G
                        @.transpOrder := void;
2 q& s; T$ u% O5 f. X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 L: s, e% q5 |
                                @,root.eventcontroller.simTime);
; `* x& H1 o  ?$ ^+ l                        @.HasOrder := false;. b4 l8 c  d' u% C
                        @.DrivingHome := true;" w1 q/ q4 K/ F3 x
                        rgManager.tryToStartTransOrder;5 v) S% m1 P6 c: R
                        if @.Destination = void! w0 D# k$ _1 b- d" L% [
                        then -- no transport order for vehicle @
1 U/ Q* c, m# D                                @.Destination :=
9 m! z6 v- H5 C% e/ V# C7 ?: q; f                                rgManager.nearestFreeStation(@,track.~);
' b& ]0 z+ \3 u9 |                                newDirection(@);   : U+ z0 X& \* ]: z+ I6 b
                                if @.Destination /= void then
4 y8 ?( J- o6 P2 h- z. X                                        @.Destination.NumReservation :=
% k0 T" B# {2 {5 ~" g1 l: \                                        @.Destination.NumReservation + 1;9 Z; z& `" G4 C
                                end;, \& v7 W/ k) \2 D
                                @.CurrIcon := "drivingHome";
% `1 v* V  R5 u$ f3 j4 o- @                                @.DrivingHome := true;
+ {- L" T2 Z; V* D8 J' u3 j7 C                        end;
  u9 b( W; R% m& |                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 R2 f" X2 i3 ~2 i
                        part := @.transpOrder;
  @- m8 O0 g  f  k                        part.move(@);-- load part
* w4 {6 L: S# R! Y2 Z. s                        @.CurrIcon := "load";
7 [  D% e4 Z+ G; n! P                        GlobalDistObj := part.globDestination;
& T% Z0 v. O$ O+ i' D                        assignLObj := rgmanager.rgAssignL;
: \9 y- I" s2 y" x1 z1 B                        row := assignLObj.getRowNo(GlobalDistObj);) T9 Q7 ]0 F# X0 K  ]4 l& a
                        if Row = -1 then -- since 70
2 q, n7 z# B8 J, H: h3 C                                if lan=1 then6 X. a% D+ D5 T2 D& U* ~
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: Y- ?) F6 [8 O7 S# R% h/ k
                                                to_str("in der Andockstation: \"",?.~.name,"\""));% F' _( x5 a! s) |4 A6 |
                                else. @% y: V$ Y/ y% S8 P4 g4 J/ D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 t' O. i, h& |: r1 w5 H6 p* z. b
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 P2 k/ w  l$ K6 A& X2 W# m) Y                                end;6 t/ D) `$ `7 i& M7 h1 w! [+ S0 U
                        else
2 B6 M, t* f. L& M% |/ B                                @.Destination := assignLObj[1,row];, a  E5 |+ N2 u1 v
                        end;                        3 ]$ n. |. m% p+ P( X* r! G4 D/ T
                        newDirection(@);
* a) r! ^3 r9 w+ q                        @.HasOrder := true;
& D: Y. h/ F! u4 V                end;
' m" O: S5 S; r9 L% B6 r        end;
5 k$ ]# E, X2 H9 v$ L! U1 uend;        -- of the method2 O6 r/ B/ n& U! I% }0 s. y. }- {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * e4 j& S! t. A! A, ?4 P

* r1 s+ C7 v1 M/ Z4 O这是AGV_putin中arrive的method。
6 b6 A' _8 @6 Q, Q7 x+ r
9 e' h2 L3 |! ]8 R当到达物料速度越高时,这个报警更多,( T2 F' W/ j( [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" R$ c7 Q0 e3 [# y% Y$ Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 h" e- l! H( d
0 x0 a" Z# s* F. A) I; ?/ B% y另外一个小建议,就是move,所有的move都可以这样6 D( L2 j" A% M
if not move() then debug end( `% z( j& }  s" c( u! [. e$ M/ i% K
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 o) [4 ^1 t, z; T. `* t+ b8 ?
plant simulation中的free libraries有AGV模板,
! ~4 ~/ E# k5 n里面也有案例。
8 I3 W  G8 f- b3 X$ |. x) E我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  ^$ W! H$ Z2 ?$ }  l! w! U* I# C
) i# K8 T+ s8 |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   q5 w# O/ Z* g' V( P# D

( l. E3 Y  {4 H$ B那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' G  i0 Q# Y, I
这是AGV_putin中arrive的method。$ W  m$ Y. V6 ]5 U
# m) x& `) L/ X  e( k
当到达物料速度越高时,这个报警更多,

/ y6 M- g; J( i0 u6 H, D另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-26 07:30 , Processed in 0.019445 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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