设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8901|回复: 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'
, F4 p2 C2 l# v6 _. v# P*/6 D+ G5 E3 _  D* M$ [
is
- ^+ O& j4 }2 o5 N2 U9 P. f6 J        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 ~, W% o3 M. x% v3 Z9 N2 w2 hdo+ j1 [* L; D6 k5 o* H
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) K; o* Y/ [5 f        if current = @.Destination -- else return/ `6 p4 E- b, R
        then6 U" i( p; q; H' I  J
                @.Destination := void;
8 ?# N! N7 Y$ Z4 ]& i                if @.occupied then. L. i  I) \- m
                        part := @.cont;' \( w% }9 p( }
                        @.transpOrder := void;
# h( ?: n7 M2 _3 a! R- Z) n& ~' X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: y, u& K4 R3 S2 v. E
                                @,root.eventcontroller.simTime);) q8 T2 C" P: t+ p
                        @.HasOrder := false;4 ^- s: |$ T4 _2 n* u6 o
                        @.DrivingHome := true;
# o  j* {, t# F$ K. b, {                        rgManager.tryToStartTransOrder;
4 V$ v- I& o- x& Z                        if @.Destination = void' i" X- W2 ^+ T! B: O/ e5 C6 Z5 k
                        then -- no transport order for vehicle @& M, R) |5 h! d7 Z/ `
                                @.Destination :=7 K$ H" U8 g0 C: m; J
                                rgManager.nearestFreeStation(@,track.~);" W7 E8 |2 d1 j
                                newDirection(@);   # X! e- c9 Z* f5 t3 `( t. q
                                if @.Destination /= void then0 V6 r/ Y! G4 q
                                        @.Destination.NumReservation :=
0 v( }4 f5 u+ S3 o* R7 t                                        @.Destination.NumReservation + 1;$ c/ e8 ?# r: b2 L: F
                                end;! a# _$ v7 [6 \$ r+ `
                                @.CurrIcon := "drivingHome";
% {. b4 i4 [* }" P                                @.DrivingHome := true;5 J! Q' D* y0 k
                        end;
5 T) T' J; U. j! Y$ S, ?; W* Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" }- u1 O8 C8 }5 r( G6 \9 p                        part := @.transpOrder;
- E/ K3 X+ D0 _6 B6 T' z                        part.move(@);-- load part
+ R+ e2 O$ {" h8 A                        @.CurrIcon := "load";- a. D8 r$ k/ B4 \5 d
                        GlobalDistObj := part.globDestination;. f2 |, o7 \( u/ r1 W2 I
                        assignLObj := rgmanager.rgAssignL;
" p# s, u# D4 v                        row := assignLObj.getRowNo(GlobalDistObj);
" H8 {' a$ m+ q" @2 f* [; O                        if Row = -1 then -- since 70
) S! t* @5 Y1 S/ x                                if lan=1 then8 }1 b; s$ w' E! F! c
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; h$ w& q  O5 X) W; Z1 n  B
                                                to_str("in der Andockstation: \"",?.~.name,"\""));( f5 o0 u+ z6 F/ z
                                else  |# ?# P& t$ a, S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: \1 @7 y, q. K: f& [                                                to_str("in docking station: \"",?.~.name,"\""));                                ( }0 Y* F6 p, `1 }5 \: J
                                end;9 _# V5 P* v/ i9 X  t! r! t" Y
                        else3 v  |/ q! z2 K! B7 f% a3 Q
                                @.Destination := assignLObj[1,row];* k" G) L8 |) R% ?" D- S* h
                        end;                       
# e+ s. R6 y7 \+ k+ r  b. v2 r                        newDirection(@);+ z! j$ x4 ^0 v5 G* A8 b
                        @.HasOrder := true;
. H7 s5 t' [( c- u" L                end;/ c( [9 f! v+ F9 w0 A
        end;* A$ n' d4 Q* ^' M
end;        -- of the method8 k2 @; D, t& z. V* K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 q  p. s3 ]% h, r+ \: O/ {6 F) v8 H
这是AGV_putin中arrive的method。
+ \: l9 v5 L, l' u4 m' A, y6 c  U
当到达物料速度越高时,这个报警更多,! @+ z2 u1 X' H4 l* [3 r
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! r3 ?! r) l. P+ H& Q6 Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! R4 S: j  B/ q9 I; T5 r! q
: }: V# g& `$ j0 w3 m# v0 N% D
另外一个小建议,就是move,所有的move都可以这样
, X- s* B- L" `: \4 N8 Qif not move() then debug end
3 [) z* i2 ~8 s0 {! `4 V% I6 x. H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 Y: l# S/ p+ |5 J
plant simulation中的free libraries有AGV模板,
# f$ o$ G( f1 a! L: c2 @里面也有案例。1 O6 s& S0 u& \/ r9 ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, V0 O# t* Q( `, y7 N9 f
" R4 ?! N+ u. l' H2 s7 q; M) v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. o* M; V6 f' }8 ~9 @2 B% N
3 W& {7 J, g7 Z6 y! W; ]4 ?那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ R' o. N( ?& s  _* X1 R8 G这是AGV_putin中arrive的method。
* z3 f' ^- G+ B+ a% a; \/ t
' R4 d! ?6 |4 k3 o& k当到达物料速度越高时,这个报警更多,

1 {: p& l! y2 k+ B' \) j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-3 10:12 , Processed in 0.019758 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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