设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7953|回复: 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'! @$ M& F1 R% ^6 H
*/1 q. O; Z( f# e' ?! _4 t5 |6 s: Y
is
, _3 S9 A# @; l* R4 k        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 I; h9 g: x9 Y: \9 N0 `/ E/ E
do( b) D6 Q- k- c6 I: i
        Lan := rootfolder.Internal.Tools.AOLlanguage;) w6 {. |. t( F. c8 h
        if current = @.Destination -- else return! q0 f2 _/ L5 b. h( v6 \( m
        then
1 B) N: Z6 m3 `& E                @.Destination := void;
: Z1 A4 `6 S% \                if @.occupied then
5 n* N0 h- T2 P- ]                        part := @.cont;
. E: n% u' m' X# x6 X; Q                        @.transpOrder := void;
: T3 _7 k/ @' @7 ~. [1 U                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 K$ G1 x7 p, b$ v& ^% a
                                @,root.eventcontroller.simTime);
/ s* q  c: w- {( E, s                        @.HasOrder := false;; z2 [1 y- K/ z! m& R- g3 @/ f
                        @.DrivingHome := true;
% q# m$ Z, s+ j2 ~6 a# T0 h                        rgManager.tryToStartTransOrder;
; K( Y) h2 n$ g0 n. P                        if @.Destination = void
( B  ?' m2 ]. m, c                        then -- no transport order for vehicle @( x8 q' u7 M6 |1 R! ^
                                @.Destination :=3 O8 v+ Z; b5 L. o- E3 P
                                rgManager.nearestFreeStation(@,track.~);* B# P6 b* O! |) [: A0 J
                                newDirection(@);   
9 `" G2 O) N% C1 ~' \! Q5 V7 |# g                                if @.Destination /= void then
1 p" U+ E4 E8 g' e                                        @.Destination.NumReservation :=- u8 i5 b$ N0 S/ S
                                        @.Destination.NumReservation + 1;" e2 q5 C$ T& d. }' _; W
                                end;& P1 f& i( ]2 U& \
                                @.CurrIcon := "drivingHome";1 l5 c8 q4 s& e. ^5 |. r8 E! h7 n7 Z
                                @.DrivingHome := true;/ g! z2 @9 O* I; e# |7 }
                        end;* S9 _; d! \/ w4 |
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 U; e2 N. J9 a. V- c6 p
                        part := @.transpOrder;
1 E0 p! `: n  n8 Z                        part.move(@);-- load part
% y8 Y# p8 |3 r5 v                        @.CurrIcon := "load";
* L5 v0 X0 e# M/ N                        GlobalDistObj := part.globDestination;% X& |  Y3 D2 m% Z2 P
                        assignLObj := rgmanager.rgAssignL;$ r) n$ R% c  r- n# B
                        row := assignLObj.getRowNo(GlobalDistObj);
- G5 P6 c) E0 r: C+ ^& F$ Y8 L                        if Row = -1 then -- since 70
$ a; ^% H9 Q4 D3 g( q                                if lan=1 then+ }) h# [1 }0 J9 e+ y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" p6 l' X6 B8 s: [! V& X7 j% V7 U                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 B! f1 ~8 v- I$ Q                                else
" d" r6 i% d9 n1 g# T; q; v                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( B* p. P4 M4 Y" g( d                                                to_str("in docking station: \"",?.~.name,"\""));                               
! [% F9 U) n; m                                end;
8 {1 T9 ~; w- R1 T, ^  A% u/ a2 e                        else5 W- n& Z( k9 s% _
                                @.Destination := assignLObj[1,row];
0 M9 W8 D8 F- N2 ?3 t: J% ~' I+ H                        end;                        3 T* Z3 i6 A1 r" K
                        newDirection(@);
  Q0 m4 A/ |8 n  s: w                        @.HasOrder := true;
7 n: _& y' D5 H4 l" W; m( B" H                end;
- S1 w: u1 S& i  d2 h# c        end;
$ |5 b# f6 U8 j& x) A2 P9 qend;        -- of the method
6 Z/ J6 ~4 u) v5 T5 f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' B! ~  H2 {0 D( j6 `6 |: P- K" b/ `# c. @2 O: s5 E9 X6 K
这是AGV_putin中arrive的method。2 H; x/ K8 X% a( T/ b! V3 I$ ?
( Y& h4 y3 c9 N+ R; Q
当到达物料速度越高时,这个报警更多,
6 f$ R- G/ \# W5 v- h可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ J! A: S1 C2 [: ?/ X, h  L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 ^2 G: i* ^9 a4 a
9 A$ ^6 Y- C1 |( W另外一个小建议,就是move,所有的move都可以这样
; f" E* W' n) d" S3 Dif not move() then debug end
( S# [. l" s9 q. `- C0 {6 g这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! Q+ C, e  M+ ^* ^# u
plant simulation中的free libraries有AGV模板,
' x6 z+ P' W0 K. P4 Z' Z2 t/ e里面也有案例。/ M  _; a; I; N! b
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; [# x+ ]5 \$ w+ q) [
& s% p7 {5 u+ k" L* o9 R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " l( G1 s" v2 m  U1 u$ v( v

, p, j4 }' @6 A7 Z7 K! t+ o那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 K3 ~% z4 r) {* S& \这是AGV_putin中arrive的method。
2 ~) |7 B! r3 d5 N% t" H1 _5 M/ m8 w+ K
当到达物料速度越高时,这个报警更多,

  K2 I/ Q, I" h* J/ n另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-7 09:58 , Processed in 0.017739 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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