设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8466|回复: 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'& ~9 a4 F* k8 z8 p* R& n3 u
*/; U+ ?' G3 l$ U4 B  ?
is
/ G" D: X7 @7 Z5 H. S        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! Z4 G( d: t) Z! I. ~
do
+ O  B9 T% j6 F- j! F! b: w        Lan := rootfolder.Internal.Tools.AOLlanguage;
) ~/ f6 O- Q7 ?$ ^" H% c% Z        if current = @.Destination -- else return
3 v) b  G- ~3 E6 z8 Y; k( A/ I4 B        then
6 O3 k, @/ a) O0 B) g6 R                @.Destination := void;+ i( T! l2 B# ~* f" V  |
                if @.occupied then
" Y+ V! W6 t' }, \6 T6 L2 Y                        part := @.cont;( F& Y7 T7 q" w, N+ V2 n. T8 s; D: b
                        @.transpOrder := void;% T6 i5 Z1 h6 A! w% `, S' a
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ \$ m9 S- u* W$ F: m+ c% I                                @,root.eventcontroller.simTime);, N' c% C! [8 W7 ~: B
                        @.HasOrder := false;  _: i  H3 U, ~+ |! Q, T
                        @.DrivingHome := true;& d' s3 K! L) e9 d
                        rgManager.tryToStartTransOrder;1 o; T! _8 d7 d
                        if @.Destination = void
% R: K: ]0 p& ~; M- M                        then -- no transport order for vehicle @
3 K: L/ t4 R1 I  P                                @.Destination :=7 a4 H! b% S# K! q
                                rgManager.nearestFreeStation(@,track.~);2 E$ p$ i2 M9 c$ S- V9 z9 {; Z5 P* w
                                newDirection(@);   
6 g* m; e9 d4 V$ A                                if @.Destination /= void then
' n" V+ k, P. U( I- Q& E                                        @.Destination.NumReservation :=
' J8 U" c# [8 b7 D+ {) x8 H; K9 |                                        @.Destination.NumReservation + 1;7 F; P3 S# Q# E: K
                                end;- ^! j7 u& N$ p
                                @.CurrIcon := "drivingHome";8 z+ n! W9 B) b" [$ |, ^5 q0 O. |
                                @.DrivingHome := true;% O9 D8 [' u0 b
                        end;
9 Z& h# K: l/ q) r3 b                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 e/ \2 |9 r; l1 w' i9 _4 q                        part := @.transpOrder;0 P; e- t/ J  c0 u
                        part.move(@);-- load part, s0 S4 C! L- l/ F( l7 U
                        @.CurrIcon := "load";
% Y! @$ X' D" K; x1 @' ~& E& |; t                        GlobalDistObj := part.globDestination;
, y- U8 S4 d9 F. Y3 _% p" I                        assignLObj := rgmanager.rgAssignL;
- Z: [9 D8 r) u3 Q: J                        row := assignLObj.getRowNo(GlobalDistObj);
7 T0 n) p* N4 I8 \0 w* c                        if Row = -1 then -- since 70
7 [- l1 ^9 [( D) _( z                                if lan=1 then
) t$ s! G! ~7 r! ~4 |$ Y9 n                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 u9 u' b: [8 C9 Z4 ], N7 e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* v. z1 R, W. G& ]# K) C                                else
1 B: Y! t8 m( a. A' g( S                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 i) U' I  W0 R9 T                                                to_str("in docking station: \"",?.~.name,"\""));                                . m4 h/ p8 s" t8 m# C- G
                                end;6 m% P5 i' l' T' `- Y
                        else6 x; I& H& W6 x) p: C. Z9 r
                                @.Destination := assignLObj[1,row];) ]$ k1 i% L' W& n" s) F. D+ X: n
                        end;                        2 _  {  A2 Y' N
                        newDirection(@);, G; b% @! v% p
                        @.HasOrder := true;
5 l" W" I5 e; \% x9 \                end;$ Z  k$ _2 m' [) \
        end;
$ K# M9 R& J; E3 K4 ^: q6 a; Zend;        -- of the method( l% D( N" H' c8 q. F$ |( l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) \$ {  i9 P6 N9 b% y9 Q' q$ m* I
这是AGV_putin中arrive的method。
: {, m( Z1 E+ z& D$ u9 H
3 d3 z1 Y% ~% Y' b' m当到达物料速度越高时,这个报警更多,
5 I% T2 |, U1 j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 z5 g" ^8 J4 H: V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& U- L( G2 E/ ^" m
" G6 s+ \; @# Y* J; b* h# H另外一个小建议,就是move,所有的move都可以这样  Q) l/ W3 |, i
if not move() then debug end2 s8 y8 l  a6 `; M2 Q# k8 S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 r+ ~  O8 S) U1 B) ^0 wplant simulation中的free libraries有AGV模板,( r. l, l, T! d% d, [0 ^
里面也有案例。2 _# S6 z1 q0 O- \
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# \0 r' z  t$ p0 ]1 }& O
8 S6 |, C- B1 m! U3 i  K9 z! \( v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 y' J* o) K1 t: M. S- ]5 }% Y1 h- ?( G1 V

4 l& u2 P% G( x+ K$ O! h2 Y$ X那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % W* A. M4 J: ^
这是AGV_putin中arrive的method。
$ k, }% ~7 f. }) n4 Y: q/ V% D
当到达物料速度越高时,这个报警更多,
0 c$ ^4 T0 X# q+ l: `1 N6 F4 e, U
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-5 18:56 , Processed in 0.015946 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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