设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7919|回复: 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'
5 O2 v/ }$ S2 l4 B0 i. R*/5 ^( n. ^: q( i& s8 L3 |/ Z
is. X  r" U: X7 t* C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" n* t# i% m# P0 b8 m
do
- q8 [2 f$ J$ m; l! A! y$ t0 J        Lan := rootfolder.Internal.Tools.AOLlanguage;
& }  H& [3 T( l/ X  S        if current = @.Destination -- else return
2 E0 T4 G3 e: r" A# h: ]        then% B4 d. O9 r/ o6 ]6 ^
                @.Destination := void;5 u' ^$ U$ i( u8 @  W
                if @.occupied then
* K4 \* T2 N6 t- m7 O* ?                        part := @.cont;* d8 N: s1 ?- Y/ s
                        @.transpOrder := void;
6 j# c. |2 Q9 f6 M7 V* p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% T5 W5 r) k7 i! _) @                                @,root.eventcontroller.simTime);
2 e4 i. I" {! y                        @.HasOrder := false;
* Q. U7 d# d4 y  t                        @.DrivingHome := true;  z7 r, s  \' F/ J
                        rgManager.tryToStartTransOrder;
% J% ?: n: t# U5 a0 r! R1 U                        if @.Destination = void1 c* D% A$ r+ |' G! I* I) V0 o- T
                        then -- no transport order for vehicle @
; z- ~' B; R* |, ?+ R) x                                @.Destination :=! b7 y, I% J) q
                                rgManager.nearestFreeStation(@,track.~);# J) m0 d9 g( g* i
                                newDirection(@);   
' V0 F! `9 e& ?; F; M! Q% y                                if @.Destination /= void then; `! Q) o# A8 q9 R( o
                                        @.Destination.NumReservation :=( m# E" ?8 d5 s
                                        @.Destination.NumReservation + 1;
1 j( A+ ]" {( D. S4 K                                end;
& j, u% h$ N+ S8 J                                @.CurrIcon := "drivingHome";4 I/ |" _" C: C; {
                                @.DrivingHome := true;
) G5 O  q+ l2 _8 s7 M                        end;* M- C# d+ ]* m# \
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( Q; b4 G1 D. A$ {: I; h8 i
                        part := @.transpOrder;+ F1 [" f& C  {
                        part.move(@);-- load part5 }1 x6 l" t' `+ Q! h  n' d. y
                        @.CurrIcon := "load";
$ l) N) b" @* z                        GlobalDistObj := part.globDestination;8 v6 `5 C* g) Y- ?4 v0 T  }
                        assignLObj := rgmanager.rgAssignL;6 T- W  W! G- Q/ r5 i4 }# g! k
                        row := assignLObj.getRowNo(GlobalDistObj);
- x) n8 }% J% W3 w& v2 {% |                        if Row = -1 then -- since 70
1 D0 i7 g5 H' ?                                if lan=1 then
4 H) @  S/ n* a; |1 Q% r6 |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  p3 U& D, c. `0 t' r
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ M: y% N. e+ @  t# J' ^4 K- y                                else$ o6 n! ]; }0 c- v3 N" ~: y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 z1 S  z" _' j$ q: U
                                                to_str("in docking station: \"",?.~.name,"\""));                               
% ~7 y- e- f; o6 t9 B                                end;
$ \' c% w  j; t, ^                        else/ u' _/ _" m' n
                                @.Destination := assignLObj[1,row];
6 L' f$ g, _5 J/ l                        end;                       
6 Z7 ?! T8 a' h                        newDirection(@);
% i; p. X( K+ \+ h                        @.HasOrder := true;* L; Y8 B- J4 [
                end;0 C! q) b5 T7 m; g) k6 Y' W7 d
        end;
1 ~3 G% U% v8 ^7 ?$ K) o3 A) zend;        -- of the method
1 ~! t) W0 H4 @& D. G8 q8 p* O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  @  R1 R& ^2 {: m) X  R" y+ ^' G, N$ B
这是AGV_putin中arrive的method。' h" f3 ^$ w3 c" M
! O! e( H$ t, G( K& e
当到达物料速度越高时,这个报警更多,7 Y/ q. Q& J+ r2 D/ q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. P7 O9 \+ i5 J# O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  ^: q6 J' _# ~3 _
8 Z, t" Z" z) f2 w0 j6 ]: Q1 _另外一个小建议,就是move,所有的move都可以这样0 ?4 l- b) y& ^8 @3 F7 J+ A
if not move() then debug end
9 B3 i# K  M2 D# u* N, \$ j这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' ~/ {  _$ C! h9 I3 S7 Eplant simulation中的free libraries有AGV模板,
5 ^8 S; b3 \5 ~里面也有案例。
) T4 V6 X0 v6 ?$ u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* I6 F; V8 X+ G1 T3 [; ]* a+ [# `9 B
( i& M+ j7 H( M, F( q/ U+ r% a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' P8 L' e# O7 R0 U& m1 C2 d
' N3 a" ]2 d0 Q+ W/ g7 m; E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 1 y( ]& h# M* z# R3 D2 t7 f, {
这是AGV_putin中arrive的method。& \5 s( m) ?" x% G+ h1 k
, X9 w! Y" T  j0 s
当到达物料速度越高时,这个报警更多,

/ P0 u9 C! E. P; {# u) \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-5 18:28 , Processed in 0.014892 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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