设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9471|回复: 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 G9 g0 W/ I, n0 L2 r* k. ]*/  @4 l( N% `$ y8 ]
is
. \8 S8 N. X+ r" u# G5 r# `" F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 W' t& `0 l. u9 X( S% N
do3 S- s8 }& U: E: {2 a$ Z
        Lan := rootfolder.Internal.Tools.AOLlanguage;' f5 A. `) q+ x# O2 d$ T9 ^
        if current = @.Destination -- else return
" |3 F* m2 Q  q6 J8 R        then
6 j2 K4 O; O. s/ E# J7 b                @.Destination := void;/ R9 l& R- B! }7 }# L9 `7 `5 p
                if @.occupied then
) d4 x2 a1 Q  w3 ~8 G                        part := @.cont;
. H7 |! h( C* g6 O( d! W0 }                        @.transpOrder := void;
' |, H4 u( t5 ^8 a& D                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 I  [3 g. u% U! ?+ C0 Y
                                @,root.eventcontroller.simTime);
6 p+ m1 P$ M8 L                        @.HasOrder := false;
# M. x/ \3 O- m1 P                        @.DrivingHome := true;
4 I7 b5 G; T$ I, _7 H7 ~8 [( X9 |                        rgManager.tryToStartTransOrder;
% d: G! j$ X: E                        if @.Destination = void
) e% q0 d3 d& k! _8 w                        then -- no transport order for vehicle @
% D8 j) h( p( T                                @.Destination :=5 _0 R6 L( A0 k8 r* U7 S
                                rgManager.nearestFreeStation(@,track.~);
$ s1 |4 d( Q9 q% h; _                                newDirection(@);   ; t* Y5 I% B2 l4 t7 u3 {* v) H. ^
                                if @.Destination /= void then
- e) B6 @1 G) C2 k                                        @.Destination.NumReservation :=
8 K5 H5 `  z) J' m                                        @.Destination.NumReservation + 1;
: M) a. Z; q+ n8 s/ L( \                                end;
! R1 J& P  f: R- K% o$ F: ]6 p5 G; m                                @.CurrIcon := "drivingHome";
% c6 D% w, h' Z) w# v3 [                                @.DrivingHome := true;
5 C; U1 j3 }  i. `( `                        end;' i( E; u6 B9 e" f$ L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 v' D4 P; L* X+ p( r# q/ A                        part := @.transpOrder;0 b; \1 A6 Z2 V$ F% N8 B
                        part.move(@);-- load part! ?! H* ?( h. J  q2 f7 L8 |& w6 F
                        @.CurrIcon := "load";$ W% X# i' K5 ^+ C  }: w
                        GlobalDistObj := part.globDestination;4 u+ i: x' ~  P1 d" D) w: h7 ], D
                        assignLObj := rgmanager.rgAssignL;
7 q% u2 `5 u1 X                        row := assignLObj.getRowNo(GlobalDistObj);
# h! T3 O# o, H                        if Row = -1 then -- since 70
; l4 D" L+ b8 Z1 o                                if lan=1 then
; {) h9 E' A- E* m: ]5 `& Y$ x/ U                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ W/ Q* k( P, j0 F: z1 t3 Y  _                                                to_str("in der Andockstation: \"",?.~.name,"\""));' D# B9 \/ F: n1 l5 I
                                else
) d0 R$ h+ C. s" T4 |) M) ]0 [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ p& s( a2 Z% k" [( a5 t) W3 c- j' f                                                to_str("in docking station: \"",?.~.name,"\""));                               
; t' C4 z: @0 v- _; o                                end;  M7 n2 C5 e' `& o( X; I, m
                        else& a) ?8 \7 a' U* g$ f+ b4 C; H
                                @.Destination := assignLObj[1,row];
$ y/ D% a' }% G; s/ ~# p* r0 f                        end;                        1 ]/ i7 L2 M7 \  u2 k
                        newDirection(@);
" H* a+ T' `! \7 V8 L9 A/ w                        @.HasOrder := true;
  u) T5 W! F1 s% {                end;* W7 Q7 q$ @5 v7 l+ L, }
        end;& }: o+ C5 G+ s) x4 C
end;        -- of the method
0 O6 l1 K, L8 u3 G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  @1 d0 I) ^& q
1 H: d" y* F& L* ]这是AGV_putin中arrive的method。
: Y- K# u3 a  Q; L6 i
: t7 d$ g2 ~% s0 j当到达物料速度越高时,这个报警更多,
$ ?6 e0 v+ B& t& f- c& K0 t# d2 p  [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 }5 d' W* |$ P1 C  v) U7 v程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( `+ |4 t5 z$ \& a# u4 T8 T8 p

' U$ _8 }( d, f" `6 Z7 Y# |: s# o另外一个小建议,就是move,所有的move都可以这样( g9 K5 f/ E6 m7 R/ m
if not move() then debug end
1 a& Q8 Z  ^- l: I9 ^这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. Q1 k( j: H# C& G
plant simulation中的free libraries有AGV模板,
1 V7 B* w# a( F) A$ Q里面也有案例。
* m& c2 M/ z1 l我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ J! ?7 ?' e- a" w- o( J/ ~% I, T8 D& e- O8 a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ c: ~  J2 w. i6 M  I
/ K5 `- ]7 j) f4 y: l那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) {+ P" l9 Z% S; P+ M这是AGV_putin中arrive的method。
/ j% k& }6 E* i- y$ g2 ^; K" n
& g3 [. l% U4 i4 K2 o4 U当到达物料速度越高时,这个报警更多,
& S$ o6 h$ N+ r. d% k
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-2 21:50 , Processed in 0.020410 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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