设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7387|回复: 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'
. r/ U+ i7 D9 [) \*/+ R0 B6 N( R5 ^' R, C* h6 K/ M
is
4 R( n0 F4 r, |% [0 [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" n1 ?. G0 @% C6 {  Z: Q2 A( Qdo- p' Q4 y& \; f! o; t
        Lan := rootfolder.Internal.Tools.AOLlanguage;& m) ?6 b' a" Q1 c$ H& ], r
        if current = @.Destination -- else return
0 j& _  q, V* u5 j0 h/ ?        then
) v! v$ X4 Z4 y% }: [                @.Destination := void;
/ L# O( ?6 ^+ a1 t' }! l% Q                if @.occupied then
& f& }( j8 ~- Z                        part := @.cont;# Q5 y6 A. Z+ Q4 k$ E$ s# i5 U
                        @.transpOrder := void;
# d8 o# @! @5 \& r6 M( B6 z/ o                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, }& w+ |- F, W% g! g
                                @,root.eventcontroller.simTime);
1 T8 M" [' W0 V+ ~/ E                        @.HasOrder := false;
7 f- h& O, i& t+ K( n                        @.DrivingHome := true;" F$ F: m& n0 ]; O4 e4 a5 m4 M- ?& i
                        rgManager.tryToStartTransOrder;' j8 b, |. H$ {  r# W9 V, Q
                        if @.Destination = void" R, V9 Z- W$ _; g, j, O( O
                        then -- no transport order for vehicle @2 \' o& }, k4 q/ F
                                @.Destination :=
& a. D7 y7 s6 f8 x                                rgManager.nearestFreeStation(@,track.~);
% _& a  ?- Q6 K4 R                                newDirection(@);   
/ e% `  I, c: Y/ ~1 s7 F                                if @.Destination /= void then
9 G( e1 ~2 y# ^                                        @.Destination.NumReservation :=: W1 h7 X1 p* A" P
                                        @.Destination.NumReservation + 1;
% ]& P( ]5 G" D. F* g3 ~                                end;
( C2 \# N) M3 N& J! W; f, N                                @.CurrIcon := "drivingHome";2 `2 q6 p; b! {: h. H7 N5 k# L
                                @.DrivingHome := true;: S1 L. o! ^# E# [% A; y
                        end;7 |4 [0 a$ \  V4 p) J
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 A* Z( v* F4 w, M
                        part := @.transpOrder;' U+ _: _$ x) G7 M
                        part.move(@);-- load part
9 F% _$ K! b5 N; l/ g                        @.CurrIcon := "load";
* v" G: x: c+ O& C6 T0 P& c                        GlobalDistObj := part.globDestination;
: \- ]7 b( E& U( [4 P* v" g                        assignLObj := rgmanager.rgAssignL;& a" Z; P: q; J% T
                        row := assignLObj.getRowNo(GlobalDistObj);0 Y* w4 _: ?8 t2 A0 J- h
                        if Row = -1 then -- since 701 A/ c0 d$ d6 N, g9 j8 d- K
                                if lan=1 then( W) A$ U" H0 k
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 a* u9 i. T8 V- P                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# f; `. T3 d, K5 ^3 z+ E3 u. q/ s                                else5 r, p3 x  v' w: [6 L' y. J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ b& e; I1 Z( i5 Y4 @                                                to_str("in docking station: \"",?.~.name,"\""));                                  N7 T* L3 M" H7 q% A" O  I/ `
                                end;' x. B/ _" S& X' t5 l
                        else
1 H% p9 N3 l8 J3 n8 F                                @.Destination := assignLObj[1,row];& D6 O2 Q6 {% N: I  t
                        end;                        , M  p  m3 y  L/ z! y
                        newDirection(@);
) g+ B9 _7 c1 [% @, p7 @                        @.HasOrder := true;
3 k" C! V8 U# m1 X% p2 I: d# m                end;$ Y0 r3 K$ A, W5 t* x
        end;
' ]. A. k* }3 \7 }; aend;        -- of the method
, o5 ^; D5 [) ?# P, ]5 |+ g! q: B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - y3 [7 N& b7 e6 Q( w: W4 ^8 s* t

! L" E; i) G" m; A5 [8 K& s! S这是AGV_putin中arrive的method。
* ]& q2 O* o9 @6 J4 ~( @' @: H
: I" X; G% M( w4 {当到达物料速度越高时,这个报警更多,
8 ]% c5 B9 r" m4 i* @( S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! z. B/ W% v0 ?+ r4 L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! k8 B9 G" j8 ?; v5 j5 |$ j5 y
8 c. S3 l1 p+ a/ t2 s另外一个小建议,就是move,所有的move都可以这样
, H% _5 ]$ V# l$ bif not move() then debug end5 T# }; T- \9 i+ H
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, x4 N, e& m6 Qplant simulation中的free libraries有AGV模板,
5 v( W: D7 W- R* Q3 @! k/ k5 D里面也有案例。  r; A) N. N( m4 L
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, J5 i" M) C7 d6 Y; p9 P
$ s3 \$ k6 d  S& |4 K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / F; l$ o5 F" h8 H) r
' z! ~  L! L) k6 y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 `  l  B: e% J. ?. h6 H这是AGV_putin中arrive的method。
% ?  j. ?/ M3 C9 L% ]" v# C7 W$ m' O9 V9 r2 F5 D  m* @/ R
当到达物料速度越高时,这个报警更多,
' C* T/ S1 g6 {4 `" H; i4 U  `& L
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-8 22:57 , Processed in 0.020451 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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