设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8964|回复: 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'4 ~6 C9 I7 z' r
*/
2 F2 l( B4 |% a  k' ]4 k7 P: v/ ris
9 O! A2 x$ H' @4 ]' B# |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ U" {/ W9 ~8 f5 P9 ?do
2 A) }: N0 E/ I) l# H' C        Lan := rootfolder.Internal.Tools.AOLlanguage;
, H/ Y9 \7 n, h9 B        if current = @.Destination -- else return: H* X) t: @7 S# S# R' D
        then
" ?0 O$ \% X. ^- Y; E6 ~$ ~                @.Destination := void;
  O- m7 K. d( a                if @.occupied then
, P* W( |9 y9 B7 g* b# X. C$ Q                        part := @.cont;. I) B! ?- u  A6 l) v
                        @.transpOrder := void;
0 N3 T5 H# i  ]0 h8 Q) v4 ^6 j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- Y& D0 s* `7 ~& ]6 G8 Q: s
                                @,root.eventcontroller.simTime);& `# O1 D; y0 f0 [. \, @& G0 Y
                        @.HasOrder := false;: F. |3 ]" t3 B4 `* a
                        @.DrivingHome := true;/ @# @. \! v' c- T5 z6 m4 L* A) H5 v
                        rgManager.tryToStartTransOrder;' l+ k4 M+ C9 L5 W0 ^8 Z
                        if @.Destination = void# N7 {0 [* g9 Q/ E6 K9 j; A
                        then -- no transport order for vehicle @
# ~5 l4 a9 `! G. r1 D" {2 h2 Y' w                                @.Destination :=, g8 L8 ?+ P5 k, p! x* a" P- p
                                rgManager.nearestFreeStation(@,track.~);( M' t+ j7 i: i
                                newDirection(@);   
3 E5 k, S* I' d% x% t1 u4 b                                if @.Destination /= void then
1 q+ h9 t3 M, A' K                                        @.Destination.NumReservation :=
* v  `9 P4 b: a6 T: d6 G                                        @.Destination.NumReservation + 1;
' Q) R+ n" o: d4 d                                end;/ Z: m+ E9 d( @. Z! F7 d. C8 W0 q  |
                                @.CurrIcon := "drivingHome";
7 P) E/ m2 `# _2 ?                                @.DrivingHome := true;
% _# b% }$ u9 |0 L                        end;
+ B: S6 O8 F* p% u                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 C+ j$ V9 ]& S  ~& L7 U: Z
                        part := @.transpOrder;
# d; K: S' d9 u# u% a4 S                        part.move(@);-- load part
. b/ L/ j: }) x9 Z8 H; X8 P                        @.CurrIcon := "load";
) R6 c5 a- _/ M                        GlobalDistObj := part.globDestination;
* z4 o1 j# M* q- U" w+ W% L                        assignLObj := rgmanager.rgAssignL;
5 U1 D+ z. L. f9 e6 t2 k; Z' R- l+ A' b                        row := assignLObj.getRowNo(GlobalDistObj);1 m& j! W  R% {, }0 z
                        if Row = -1 then -- since 70
' m  B% l4 _4 H5 g8 H  O$ G( T5 W! p* n                                if lan=1 then! O1 a" J% y% t, L- z* l* ~) i9 I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 q' d7 [& ^# A# ?5 P. F
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 d( T4 j" a& e/ A& [- p8 ]- H                                else
1 v* I% i% A* E- s( `                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ H) |3 H. N3 g( ^" U0 v: G8 U                                                to_str("in docking station: \"",?.~.name,"\""));                                . o  ?0 m0 i' z) |
                                end;, m& Y# r0 F4 b" G! {
                        else- s7 Q# O8 I' _) z% d! s
                                @.Destination := assignLObj[1,row];
% y' f1 l. \4 H8 u5 l                        end;                       
& ^! b* R. X3 y2 R7 T, U                        newDirection(@);# _5 z1 `, V8 B
                        @.HasOrder := true;
. b6 I7 q& g. D+ k- u+ P                end;
" q0 W& T$ r5 @6 b! ^- s) E        end;
& t6 E: o: m  X; n. A- s% p6 Tend;        -- of the method
8 X, J$ Q0 Q! b9 ?+ F/ l! a# [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . n0 Q. \0 D9 w- T- z0 \

/ b5 R& d8 @) |) J% G. _这是AGV_putin中arrive的method。
; b5 D$ s! x" n0 X2 }  Q
8 Y. c& t8 n. _- t) ]) X, K, I, Q当到达物料速度越高时,这个报警更多,3 s! b. K3 ?; g0 I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! i9 x9 `* F4 `2 j" D' p程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; d& b. ~, l% ]
; }% ]3 a& j  q& f7 f% }0 ^另外一个小建议,就是move,所有的move都可以这样
: v- x* a2 k" n7 z9 E" eif not move() then debug end
- B0 {# L) T  Y$ _$ R, G7 @/ }3 O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) O- p8 M9 j; v
plant simulation中的free libraries有AGV模板,
( F1 T8 _' ~  N里面也有案例。
- S  k2 G- }0 Y- \我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# X7 I0 W: L, M3 n, I( Q6 h. K7 \' C" T2 _6 R: ?; n
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + m/ c- {. R& O& D+ B+ v
9 F4 \* C5 H% M) Z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. P1 b2 H* e1 x* j1 ~这是AGV_putin中arrive的method。
! B3 A, Z/ i& F/ s' r9 R. ?  ?
7 d, \  g  c/ F# F; [, q$ ~当到达物料速度越高时,这个报警更多,

, U9 @7 g& n' J9 \. @: e- n  _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 16:16 , Processed in 0.017743 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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