设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9501|回复: 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'( C, [( x) X9 V% @$ n
*/
, g3 V1 v) i1 ~0 b5 o% B( \is
9 `% ]/ u0 @7 a4 i* v$ j$ f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# A7 Z6 p; Q% i3 a$ L  f' Qdo
# y& L/ \$ Q) [3 Z) E7 r        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 P5 `! U7 `% k, H- X        if current = @.Destination -- else return/ e, y2 h$ @  p7 z( B- z2 I$ v
        then! l; u, E; D6 w7 |, u0 D
                @.Destination := void;. T- y# k+ b" I
                if @.occupied then# {+ Z3 j; H" {" _2 f, q
                        part := @.cont;# T2 C8 k: P: f' ~! s
                        @.transpOrder := void;. n0 N- `7 A. g. S1 n0 h
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 y! m9 x0 \+ w  c
                                @,root.eventcontroller.simTime);7 p1 a& W! A& ~! M6 H
                        @.HasOrder := false;7 E5 r& Z3 m& X& B
                        @.DrivingHome := true;
4 y/ ^/ n0 {$ S0 D  h9 G; l. F                        rgManager.tryToStartTransOrder;
5 `* a: M  @  _/ ^! m4 H4 D                        if @.Destination = void
2 h1 n+ A$ B% c( T                        then -- no transport order for vehicle @
# Z& v6 V5 `# d9 J                                @.Destination :=
4 |3 T& Q: Z$ j" a0 C4 S" k                                rgManager.nearestFreeStation(@,track.~);# d( z# @  w& l) _, K! o8 B
                                newDirection(@);   % l8 a/ {( W) [5 m! n2 X* P) z, {
                                if @.Destination /= void then
% R# r& o/ \- P$ E# G: [& J                                        @.Destination.NumReservation :=
* Z3 o( p) M( k$ F. k) S+ K                                        @.Destination.NumReservation + 1;
+ K  e* W3 S( a: \, j                                end;
( T& H( C( h/ R' l                                @.CurrIcon := "drivingHome";
; j/ A6 @6 i- q8 l5 D; q  s) h                                @.DrivingHome := true;6 @. ?2 X2 \+ z9 N& C- ?6 Y2 O
                        end;# |+ n( v5 J7 g' m- [- J# b4 G
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: s+ @/ z' c2 }; j; ~3 s) h& L% j7 U                        part := @.transpOrder;
! \- O/ V" Z+ Z0 n  y/ t                        part.move(@);-- load part
  k( c5 n) F* Y* A7 v                        @.CurrIcon := "load";6 k: q/ w% M* d' E
                        GlobalDistObj := part.globDestination;
+ u) M7 g$ b6 l: Y, i" K                        assignLObj := rgmanager.rgAssignL;
6 ~) S% ]0 X8 D: y9 [' |) P                        row := assignLObj.getRowNo(GlobalDistObj);
/ V% w3 A+ a- g                        if Row = -1 then -- since 70+ ^& B: W- m* s% j
                                if lan=1 then
2 O; {& N0 g  A- K9 U8 Y8 p$ W                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 m; D( @/ P9 @; j; C$ u0 P" c                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! P4 Q+ R1 }5 @' r, K0 E7 X4 |                                else
+ M0 H% j3 s" R) D0 f) T, g                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: O3 H% e" u) \$ _
                                                to_str("in docking station: \"",?.~.name,"\""));                               
# m/ Y  ?" O, p. X                                end;
  X- N8 b& f# t6 b/ M9 d                        else* E" G$ G* Z: _
                                @.Destination := assignLObj[1,row];
, {* r, E8 N5 k+ Q( {3 X                        end;                       
. l: c4 @% S' g                        newDirection(@);
  D+ c* [  ?" F0 p  ?" ?: s9 g, q" G                        @.HasOrder := true;
  y1 H9 a& D" l1 _! ^% e8 d                end;$ w% b4 d$ w( z1 q  L! `1 Z
        end;* e, W  z% ~3 t) H4 a( ]3 Y
end;        -- of the method/ c# p  q; ^. J5 D5 }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 s( B  {7 c" T, F, V

0 o& h9 I7 H( n+ x1 g% D8 S# A这是AGV_putin中arrive的method。
0 m1 g6 v' A  C
# [, }3 A; R1 B当到达物料速度越高时,这个报警更多,( b! G9 H* A/ C9 X
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! o4 V0 ?2 O* U9 L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; h( M  r* D2 J/ `2 Z1 g' s- f: ^2 u; Q
另外一个小建议,就是move,所有的move都可以这样* T% p' S, |9 m% W+ Q- t
if not move() then debug end
# c/ R$ Q: R: k  a; ~! X0 v1 R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" d0 `6 q1 I" O# `
plant simulation中的free libraries有AGV模板,
( p/ r3 z5 `" R0 A里面也有案例。: A3 z3 F: h- U% q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: S% z* i* K  e7 Y4 [2 |" ?) Y
+ B' Y. l2 u+ b4 c! v+ p
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& ^1 _9 w, h& F' ?# U. k: S; V2 z8 P4 G( T! O' {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ E. q  O* ~, G0 O  t9 t4 J+ \这是AGV_putin中arrive的method。
- P5 M% H3 r" J4 O. l
1 o! g2 p- |3 N' B6 x1 D当到达物料速度越高时,这个报警更多,

, q4 N" P5 c; Q: B/ A6 ~  y+ R另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-4 19:55 , Processed in 0.021116 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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