设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6952|回复: 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'
1 F7 ]6 I7 e: {5 F3 ?; ^$ p*/
9 w0 @- S9 X7 \9 D: n# d4 w/ e( fis% ^/ Z9 T) p9 i( _. x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& v7 p# [  t* i$ r6 Bdo
+ C2 |: h! r" \        Lan := rootfolder.Internal.Tools.AOLlanguage;
) f! `7 F8 L8 R1 ^& G        if current = @.Destination -- else return# ?/ F& A5 R0 x
        then
. p: A9 S) m1 y/ `' ?- [' Y7 M( N                @.Destination := void;
! q( {) i  F. D) L1 V                if @.occupied then
7 @0 ?+ |2 K4 P( {1 w) @( S. a' G: ?  C                        part := @.cont;, v$ f4 Y7 ?1 V9 _- \
                        @.transpOrder := void;: y' T7 u- v$ ^8 d/ ~8 u) ?
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' J( p& C1 y+ N  h; `5 H
                                @,root.eventcontroller.simTime);3 ~+ A' |* g+ _; B9 T
                        @.HasOrder := false;
. ?8 b4 g; t# @, \                        @.DrivingHome := true;  D- w3 J9 Z: i7 |
                        rgManager.tryToStartTransOrder;
& c0 _4 n! B; Y4 x                        if @.Destination = void
2 h9 w" G4 F1 \+ F& z9 I                        then -- no transport order for vehicle @* R1 S' q& j; E" p* y8 g
                                @.Destination :=
, ]& K6 L* @+ A' |  n- d                                rgManager.nearestFreeStation(@,track.~);, J: }0 V- _3 z8 |* G
                                newDirection(@);   
6 B$ i$ g( ~+ V5 b                                if @.Destination /= void then
3 x/ N, F- x& [* p  D                                        @.Destination.NumReservation :=
# G( F# |7 g: N8 [                                        @.Destination.NumReservation + 1;  P/ r+ V$ L7 A" p" L
                                end;/ C. d8 }2 m$ I( G$ \, @
                                @.CurrIcon := "drivingHome";; c. l  F2 q0 u$ [0 X/ u
                                @.DrivingHome := true;/ Z% B! _# }; S
                        end;5 r( T/ W1 Y. j5 Z  d1 T
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 i  y4 l* \  ?! K
                        part := @.transpOrder;
4 P" P8 k) t0 l* G9 L1 h                        part.move(@);-- load part5 C1 F- F% q; X6 X. C
                        @.CurrIcon := "load";1 ~# S. H( M8 T6 S9 t
                        GlobalDistObj := part.globDestination;
  c) U( J# i# e- |6 H6 K2 Y                        assignLObj := rgmanager.rgAssignL;
6 I! g' h% A( s9 D: X                        row := assignLObj.getRowNo(GlobalDistObj);
5 R  D, G; W: B0 j                        if Row = -1 then -- since 706 F6 J4 O, l! O- w
                                if lan=1 then% X8 |# \/ l0 f- J$ i0 X! B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 A. A0 v; O, |5 c6 z                                                to_str("in der Andockstation: \"",?.~.name,"\""));: m' ]$ k4 y' G! |
                                else5 r: B2 t8 P' O* Y# p: ^$ G' J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 f, @* d/ g6 W4 }9 z1 _9 p5 ]                                                to_str("in docking station: \"",?.~.name,"\""));                               
& F1 t' Z! @9 B                                end;. w0 V9 x" g% r* ]+ ~5 M! q* g
                        else  Y" g& ]: B7 k" {2 d0 a- w, D
                                @.Destination := assignLObj[1,row];
# q8 h' o9 i4 g  C, ?                        end;                        5 C$ `( d& Z' ]8 J
                        newDirection(@);. u0 `3 w# k3 \( Q0 H: n$ z/ v4 j
                        @.HasOrder := true;/ L1 g. d3 L& \# x
                end;" `& r! ]+ u1 I! i
        end;
) x& {) E. v5 @8 e9 c1 j3 r" Kend;        -- of the method
( j. W  ?0 J0 j, P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 E  f  ]! F! s8 L% g! S5 _! m
) ^* v' u; y# R8 c. v
这是AGV_putin中arrive的method。, j) p' c7 G- n, b5 ^% x
- u- k" o. Y7 Q8 k9 ]- W0 \0 ~
当到达物料速度越高时,这个报警更多,
" G( L0 k; A# K3 g$ _: t' {* Y9 x" m; d可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. f$ ~& z/ v$ v$ O; v" }) D
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 j) w3 i$ ?2 _# b2 \0 O# J* y2 r0 J5 w
另外一个小建议,就是move,所有的move都可以这样
$ D- _% Z; N3 m+ i* u; d/ dif not move() then debug end. K( N: w" \7 m. W# }* K
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 p) J' N, K/ g/ h5 Q, gplant simulation中的free libraries有AGV模板,
0 M9 U9 r! ]; T) a里面也有案例。
' O4 C( k$ V; p我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) b" G# W8 w6 ?
, @6 ?1 H4 X0 i+ Y8 d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& v/ q/ v7 E( ^# w9 z* O+ b6 E  s' d: s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 d3 B7 h9 f5 ]( C/ O) U* D这是AGV_putin中arrive的method。+ f% i' g4 h) _. H2 {- e7 f

2 s9 e  ?+ B1 f. X* N当到达物料速度越高时,这个报警更多,
+ ], s* g+ I$ o) Q0 R& w8 [' P, s
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-7 21:30 , Processed in 0.022857 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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