设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10075|回复: 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'" P0 i! D5 S0 m+ k! Q! ?
*/" q' W: R8 N) O8 o) L
is
5 A9 O- D: A, R6 w+ l$ x. M0 _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& L; s) F/ G8 Z; f# y6 G3 k1 C
do
# w& w2 l) S+ J: p        Lan := rootfolder.Internal.Tools.AOLlanguage;) r% H0 M4 |5 H) M: C
        if current = @.Destination -- else return
) a6 B$ h: Z' ?) S4 M3 ?        then
2 o/ S) e5 P$ V! M4 I) f                @.Destination := void;
* ^9 I: l7 S2 l0 t" O                if @.occupied then
$ [( r' N  B( N) p- l2 a3 x* Z                        part := @.cont;
6 P; y/ s4 |+ T" y% i                        @.transpOrder := void;
- l( I. ^$ O! O2 y8 C. a                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, n: ^8 ~' B0 Q                                @,root.eventcontroller.simTime);
$ \& w! S: b7 s                        @.HasOrder := false;8 I# P: N# i. W' X- u4 ]7 A
                        @.DrivingHome := true;& h" z3 J" i, R) j% g
                        rgManager.tryToStartTransOrder;
) ~# d, c# A8 t& l1 J2 f" f) U                        if @.Destination = void* X& Q2 R0 N' Z0 h
                        then -- no transport order for vehicle @4 g! F- n$ N9 S& \6 n" |; N/ a
                                @.Destination :=) |! e" f* o4 `% C
                                rgManager.nearestFreeStation(@,track.~);! W# M  P( J  k" n- d
                                newDirection(@);   
5 `7 G; ?& z2 C& B% ^                                if @.Destination /= void then
0 P/ ~9 r0 j! A3 q" X/ s                                        @.Destination.NumReservation :=, t% m4 n) V7 }* {
                                        @.Destination.NumReservation + 1;3 \! f) @$ y' l$ {
                                end;
5 q  M* [; K  y6 X, E                                @.CurrIcon := "drivingHome";
  R/ Z. [0 c+ e! @' w. I+ J                                @.DrivingHome := true;
. Z# b* z8 V) U( m- z9 l                        end;
6 r0 V4 |6 W  ~' T3 l7 ~                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: O. N: c* j0 }
                        part := @.transpOrder;
+ I1 M3 }; R; s3 p, N2 }                        part.move(@);-- load part
- y' w( @' L/ p# L, f! n) G' a                        @.CurrIcon := "load";! d( W# h! T8 t
                        GlobalDistObj := part.globDestination;8 M, t- w% o; G, A* c
                        assignLObj := rgmanager.rgAssignL;
7 ]0 M/ V4 d' b  J& h& b5 s8 D                        row := assignLObj.getRowNo(GlobalDistObj);
' z- q/ U$ e4 z                        if Row = -1 then -- since 702 B- N. A# i  C" @4 I
                                if lan=1 then
; H0 c; T! q3 }* V0 ~: v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 {$ d. W0 a& a. y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 v, K/ O' B$ y; c0 h: u9 u$ U
                                else2 M" p  A/ G6 I/ {5 G( R/ q6 \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; Q7 `  v+ N. v( A# |
                                                to_str("in docking station: \"",?.~.name,"\""));                                0 h. @) u  O' S+ W( r& G) g5 l. X
                                end;
2 X) ]& m- ?- b: M* w                        else) m% v# t2 h. U) K1 w
                                @.Destination := assignLObj[1,row];2 c2 V* b. F# ?. L
                        end;                       
7 n" |9 b- t* F                        newDirection(@);/ |; f" K6 r' ~1 d. d: t
                        @.HasOrder := true;
( a( @$ W* v. _: I: i; V+ K- G$ ?5 {                end;
7 ~, j' r3 x( c" E! K$ v; E        end;+ J0 U, I9 H, |
end;        -- of the method
# K* T3 c6 y" O- |' a. b( h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 v( k9 z6 Y( @; W) F, O3 c! u+ O9 C1 e
这是AGV_putin中arrive的method。; x. m% P9 e$ Y; a" m8 W
4 M# {1 v& o: e  c! K3 ~* j6 E
当到达物料速度越高时,这个报警更多,
1 M6 b+ e- h/ q1 e$ I7 r1 u可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- Z2 n3 Q3 x* O& @/ h6 W
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: p, p( g; i2 d+ e3 c  ?+ y
* I; l) Y  ?: i$ D! Q' G
另外一个小建议,就是move,所有的move都可以这样: m5 g! S* b' ^/ E7 e( m: E
if not move() then debug end5 p0 y' O9 t; ?% b( W
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! }% H' w% l8 r( l% G
plant simulation中的free libraries有AGV模板,' H9 B) p8 d1 Y5 d/ z
里面也有案例。
  ^; y: {$ O1 A5 m5 n7 f  n& R我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 ~2 b: u  W) H+ r; ^& j
0 }+ Y3 A4 t8 D- T& V+ S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ W( y/ Q1 I0 @, O7 w! `. c0 M- _4 K3 ?. A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 k3 R1 K1 D: J6 k8 f
这是AGV_putin中arrive的method。
! U8 I5 a& `1 \. K8 c5 i! K- M5 }( ~6 S1 _& j
当到达物料速度越高时,这个报警更多,

' K9 t7 k; N9 V% ?* O另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-11 20:11 , Processed in 0.018547 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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