设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5228|回复: 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'4 h+ Z) N4 b$ o; J3 V
*/
( O4 i! R. K' I) Zis
1 h' g* I5 S/ A7 m9 i. @. f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& ?# m- E2 B! Wdo* ~3 b+ ~4 B1 E! A
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 C- G2 t. t# j6 V5 X
        if current = @.Destination -- else return* m" h/ J# ]8 M* _9 `! d, |
        then
9 N) I4 D3 \0 N& x1 W8 [  T' H4 t0 D                @.Destination := void;3 t- N* I/ v+ w9 B6 h7 u" l
                if @.occupied then
9 o# `% F4 e6 I- p" G                        part := @.cont;
- }5 n) v# e. ]6 o: d; ^2 `* D                        @.transpOrder := void;
* ~7 E2 S2 c! u& ^) n                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 b3 q1 Z; {& x( H                                @,root.eventcontroller.simTime);7 }* y4 K7 l: E$ [1 R
                        @.HasOrder := false;! e7 ]4 u0 {5 S5 @0 ?+ p
                        @.DrivingHome := true;
" y( I4 r9 W+ e                        rgManager.tryToStartTransOrder;4 x: f0 ~! t9 m7 {& D* p
                        if @.Destination = void
, y# g' I# D+ l7 D. }                        then -- no transport order for vehicle @% G( s  y" w: A3 B' s7 h& I
                                @.Destination :=
: E* b9 m1 Q+ W                                rgManager.nearestFreeStation(@,track.~);4 a5 X, a. v; v3 j" u
                                newDirection(@);   % }- i" \: t8 M! C0 p$ S  c. P3 C
                                if @.Destination /= void then3 x3 I# E/ ]! u2 s4 G# ^- S
                                        @.Destination.NumReservation :=2 W! C( S% Z8 r$ T2 j
                                        @.Destination.NumReservation + 1;( C/ F- b' k- [& d
                                end;* M9 d% U3 ]. o5 t  P
                                @.CurrIcon := "drivingHome";
) e4 Z% t1 ^4 k! B                                @.DrivingHome := true;
% A3 C9 T2 Z" x- y1 C2 E' Q* Y8 h                        end;
, O4 `+ S. V9 l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% L0 ?3 D6 r$ H. m+ r6 f                        part := @.transpOrder;9 S8 W+ R$ P& Q: K* f
                        part.move(@);-- load part
% y+ Q1 ~9 ~. |; r                        @.CurrIcon := "load";
, p" r2 c& b) g0 w" Z0 X                        GlobalDistObj := part.globDestination;$ k8 Z, W6 \5 ?4 }3 q' u6 K9 N
                        assignLObj := rgmanager.rgAssignL;
. d! I+ ^3 ?- t  e1 z                        row := assignLObj.getRowNo(GlobalDistObj);% f- ?3 y  ]* l: V/ f) b
                        if Row = -1 then -- since 70" k0 ?4 ^0 b' q! j
                                if lan=1 then
5 b' O# E: Z2 }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& M3 M9 [1 ?" o  U
                                                to_str("in der Andockstation: \"",?.~.name,"\""));. @4 _& X3 }* T% ~; T8 c; C2 a. T( Z
                                else
# ?8 Q) _% w, z) v4 n9 [& a/ G! ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" ^: [( i+ ?6 g" h                                                to_str("in docking station: \"",?.~.name,"\""));                                * x  C0 b$ M+ W% ^5 h! v; g
                                end;
# @& F: e2 b* a/ K- M2 X                        else
: P8 B3 k/ _' t* N                                @.Destination := assignLObj[1,row];
+ u# L3 J6 g! n) P3 g% _                        end;                        # z( k& l% Q) t
                        newDirection(@);
9 [+ t5 m7 E( q! J  O% o( y                        @.HasOrder := true;  d$ n: X. p3 N3 k2 O4 V9 f- V
                end;
3 O3 k1 A5 W. `8 z7 [4 H        end;
4 q: Z  d' S' i; i& U0 s) @end;        -- of the method4 h, `/ i0 Y- u1 P4 H) i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 I5 K* f1 a1 _5 V4 p+ i# X5 i$ P- {7 w. H9 y
这是AGV_putin中arrive的method。
) B6 u8 b7 R% i4 K  y: X) S+ P$ d5 u6 J% M) ~6 ]  H6 j
当到达物料速度越高时,这个报警更多,* W, @2 x: ?' T% F- `8 w) _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: l$ k" d& ?/ u# [6 B: x# |- _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 _' p8 q# ]4 M  Q  d" \* k7 x
* G( G3 B6 t! Y' @, G: x另外一个小建议,就是move,所有的move都可以这样& @. P0 m! V( \* m
if not move() then debug end4 f1 G* w* j8 J0 l  ^# `
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% E& m6 O. h5 z# u; H' l3 d! X. |! t
plant simulation中的free libraries有AGV模板,
- i3 `% L# a9 [3 I里面也有案例。+ C+ D! A8 T  ~9 p1 k+ k! S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 K& W0 A' j8 f6 K+ X- q" I' c# p

5 ~! g1 l9 x% L0 C+ g' B7 K8 o我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 C1 F% I, C7 R; J
1 c* n+ Z# e* K4 q0 r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: H' U; T# V! X% k. {5 h. t2 L这是AGV_putin中arrive的method。+ F- }- I. d7 n4 B' e$ r1 Z$ w
) I& q3 V+ j, P# q
当到达物料速度越高时,这个报警更多,

6 p0 E9 \& l' k: a: |8 E! [另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-10-31 02:09 , Processed in 0.042642 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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