设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8536|回复: 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'
6 M& u& K- m: ?% w*/8 ^6 ^) V6 W& t) ]
is
2 B& j& X) C. m- `$ m        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* z1 s) t6 l5 R0 {
do
8 j7 ]0 h9 @0 _+ X3 ]6 e        Lan := rootfolder.Internal.Tools.AOLlanguage;6 ]6 T# g5 s- K
        if current = @.Destination -- else return
# k$ v' d- R7 B7 v( c        then4 ~, i' p5 y/ W9 d5 [
                @.Destination := void;0 Y8 U) j; k2 C, {+ i7 B
                if @.occupied then% o$ j, P" s* c6 U. X# o! w0 I5 G
                        part := @.cont;
8 l% U5 X: i/ {$ e) q                        @.transpOrder := void;
% L4 R& h3 Y5 M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# \+ C8 J, }3 C9 Z/ \- K/ Y3 |# K
                                @,root.eventcontroller.simTime);
1 ]6 S' o4 {, e9 a& t2 D6 I; H; w3 n                        @.HasOrder := false;
, L4 u7 m3 L* I6 B: h3 ?0 ^                        @.DrivingHome := true;
' P. g; u6 T$ _$ z                        rgManager.tryToStartTransOrder;
, j- t8 q0 t% M                        if @.Destination = void
! W+ s; v0 s7 |! V1 [- Y& h                        then -- no transport order for vehicle @
0 `. d; f, B& i$ e7 ?/ f7 ^                                @.Destination :=: h* J% R' v5 q1 H& L' }/ \5 @
                                rgManager.nearestFreeStation(@,track.~);" F0 `5 f' G2 }/ N
                                newDirection(@);   " A( m" J: }; g) ?+ q# ^& Z5 C! [
                                if @.Destination /= void then4 W$ e- r$ v$ M- @
                                        @.Destination.NumReservation :=
5 s* `7 N' n. E: ?6 f                                        @.Destination.NumReservation + 1;
  ?9 }# Z4 a1 J6 b5 r, Q; {                                end;
8 H( h% r- i8 L# k: w                                @.CurrIcon := "drivingHome";
4 E2 t1 r8 r+ M$ O1 U                                @.DrivingHome := true;
; i% h- v4 g( v, I* Z) O                        end;7 Q- b1 F; {4 K$ b2 H; k5 I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: E7 A' W8 V9 N9 k" |
                        part := @.transpOrder;  \& Z8 m  ]) j- Q6 x# y
                        part.move(@);-- load part
. q6 H$ J+ o( ~8 T, z                        @.CurrIcon := "load";
% C+ i& x8 Z& Y3 Z                        GlobalDistObj := part.globDestination;
1 n4 H) w8 l* W$ p$ y  y8 Q                        assignLObj := rgmanager.rgAssignL;
9 r$ ?- z( A$ H8 e. U                        row := assignLObj.getRowNo(GlobalDistObj);
& P  Z! n2 u: A                        if Row = -1 then -- since 70; w) d$ ~4 K' a9 t+ I4 d4 a2 X; S" E
                                if lan=1 then
0 t  v. C* |. J/ x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- B( F: ~# R! o! Q+ i. H7 t, i
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" c; ~% u7 R* T6 x1 p                                else+ B8 w+ r1 P" \9 c7 o8 X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* @4 T# q7 O3 A+ N# @. w
                                                to_str("in docking station: \"",?.~.name,"\""));                                " W. o8 ~/ z$ y8 P, L9 H6 R
                                end;
  r% C6 }4 M4 F* k% i8 X0 N8 V                        else5 p1 f' C1 z5 e# x+ m
                                @.Destination := assignLObj[1,row];  Z6 a# g3 A) a# @- u4 }
                        end;                       
& j6 J  ~6 |+ O" u. e# d                        newDirection(@);5 ]/ ?" F7 o0 ~
                        @.HasOrder := true;
, j0 v8 ^) ~: t' E3 Q                end;
) j$ W& Q7 _: T        end;
" `3 x. R# r: S, v) p: S1 l4 iend;        -- of the method
! U/ C, t- w' F7 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  Z# N( ?; n# \9 J$ [9 z* e* q, v1 s4 o; D# P$ s
这是AGV_putin中arrive的method。
$ @; M; z& w1 M; F( b- E7 N- u- K3 p# e; e) a
当到达物料速度越高时,这个报警更多,
- u' t1 \5 M8 y( S! `可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 W; `1 h. {- r' l, d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' H* R- C& ~' |6 T
" u4 L2 K. |2 a/ \& }另外一个小建议,就是move,所有的move都可以这样
8 @1 f( m: X' c+ G7 ~( {( ^( h# Nif not move() then debug end- D! s$ {4 X% z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; {# i4 G% H# n6 V2 G$ {2 u3 I  E  Mplant simulation中的free libraries有AGV模板,% O- n! G2 u( r$ ]. ^
里面也有案例。6 `  ]3 v9 J. h: m8 R0 Z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* k& d. f9 q5 V+ A

, P/ R& E" f/ m我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 |  u0 q" g4 ]$ ^0 Q- w: C3 b
2 F$ _# H  S5 z+ D: d$ D: Z3 S9 W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 }3 [6 V% S% z7 B* T
这是AGV_putin中arrive的method。
: g+ k  W" L  N9 |/ _: |9 M  ?# |/ ?/ L9 k, k
当到达物料速度越高时,这个报警更多,

/ p- Q: h' x0 o# @另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-9 19:18 , Processed in 0.019023 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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