设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10156|回复: 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'- d) Y# w) J- W+ B7 {: N: A
*/
, e6 a- c+ o2 X0 h+ wis8 e% m' c, {( R' S! v
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 `  R! K! C2 p2 A) B& b! R" ?do$ E, L+ i$ j% Q5 R* ^
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- L& \2 J+ a: @$ |# O        if current = @.Destination -- else return5 q5 q; r# G/ v# Z
        then+ a: H/ u% }9 W0 Q: ?
                @.Destination := void;
6 D. \% K; I0 k3 ]2 h' L                if @.occupied then
1 Y$ Z# ]. d' T9 L                        part := @.cont;
, U! d9 j- y6 ]: R. e% O- o3 K                        @.transpOrder := void;( x9 y7 D- E: z0 f2 p! q! q1 l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 |- U9 e3 v$ y3 _/ \' a
                                @,root.eventcontroller.simTime);
: [9 c$ `1 z' I; l: u                        @.HasOrder := false;4 B4 v/ D& N2 _& x
                        @.DrivingHome := true;
% E% W8 S: A/ S8 ~! W+ X. ?6 P$ ~                        rgManager.tryToStartTransOrder;
- f$ Z' H$ R3 T% c8 L                        if @.Destination = void
* S7 u' w8 D! i+ y" o& @                        then -- no transport order for vehicle @8 N7 L  t4 P+ Z
                                @.Destination :=
3 [3 D8 X0 B0 ~( L& D* }                                rgManager.nearestFreeStation(@,track.~);
# y; R1 V) Y& r8 ~9 k9 _                                newDirection(@);   8 V# X7 ]9 l3 {; E( ]
                                if @.Destination /= void then0 n8 y/ J* \: [: ^7 }
                                        @.Destination.NumReservation :=
! @4 p$ q- a; F                                        @.Destination.NumReservation + 1;
$ H% M' l8 f6 G                                end;) \# u5 c+ _! {) R( s2 r+ y! n
                                @.CurrIcon := "drivingHome";# M- m- U3 F* y% M2 w- x% ~' C
                                @.DrivingHome := true;: x3 E: r, N' Z
                        end;) X6 ^, i" ]- ~+ {: a0 ^0 A
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ c5 _/ ]3 S# m: S8 P% h% j                        part := @.transpOrder;
" \. x% ?4 L% R& d2 I5 j1 B                        part.move(@);-- load part
0 z) ~( q8 Z: |9 c' C                        @.CurrIcon := "load";
/ z8 Q6 Z! q5 s6 w& R6 C. |                        GlobalDistObj := part.globDestination;, y% ?+ J8 t5 p. X6 ^
                        assignLObj := rgmanager.rgAssignL;& H0 i" ~. R  x5 }4 a% L4 A
                        row := assignLObj.getRowNo(GlobalDistObj);
7 w! y0 L+ x" p4 |* m                        if Row = -1 then -- since 70" b  [& R0 E' s7 l2 K: w2 n9 f! M
                                if lan=1 then
; X' X! n0 V, g                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 M/ Z- a6 H/ l! G& Q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( f2 w3 S0 l2 O                                else: d: \0 e3 L  O6 g& q2 z' P9 q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" ?. [$ W; N& R1 }/ U& f; i                                                to_str("in docking station: \"",?.~.name,"\""));                                8 \0 a) Q2 S) H1 h$ m
                                end;
' X5 N( G+ o1 e# t$ S" F                        else: l3 Q4 e9 p' ~# @6 g; f- d
                                @.Destination := assignLObj[1,row];
4 O0 J8 N; k6 {                        end;                        4 f% w- H6 q3 \7 |
                        newDirection(@);
2 e/ C+ z: l& C; u) G0 W7 A( E                        @.HasOrder := true;/ v! ]. P: U% Z& t  T
                end;/ T: t! q. t; u1 G1 b
        end;# Y4 \9 |7 {9 t5 o
end;        -- of the method! o9 U& ~: w0 ^+ ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% T7 ?7 Q, E) J7 [2 f' _8 n$ G- W" y
9 n3 f' x, t: S2 B2 b8 Y这是AGV_putin中arrive的method。
9 ?0 J+ N% N0 h! b: R5 @
* F/ K" Z! m6 A- ]当到达物料速度越高时,这个报警更多,
% Z0 X, D8 z, y, {8 Q) _0 Z/ T  K3 }' u可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 u# Q1 n$ _# X6 K- |3 W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' x9 b; V5 P2 J+ a, d! Q
; j0 j3 |, c2 m, v6 x0 h另外一个小建议,就是move,所有的move都可以这样" S* U  `) ^: t$ \3 g8 C
if not move() then debug end" ^8 C: {  O; S6 ~" U, p. [9 \0 s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 j9 J# {% H% Q: E9 f- r1 R0 Y& z. _
plant simulation中的free libraries有AGV模板,% ^7 v5 t( t& {: x0 c% j# d
里面也有案例。
8 l2 E# p, Y5 b4 u% p我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& s* _5 Q& @/ z+ h, n* f, f$ y4 D& O& m8 ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , p8 }/ C; o! `5 Q6 s, j3 K8 f

% h  Y6 h6 V+ j& h7 h5 y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 J  i" ~6 |+ \2 ]7 F. Z5 |4 e- f这是AGV_putin中arrive的method。$ z. A( L; h6 h; G7 W8 v

+ s5 f$ I# K- X9 E  S当到达物料速度越高时,这个报警更多,

2 `6 _' c2 J. m* w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-16 22:41 , Processed in 0.021999 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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