设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8868|回复: 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'/ U8 @* T6 u( m
*/
. I! `  M8 h4 a" ~is* _9 k* j! H% s- X% V7 N; z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 K- W7 j# _0 R5 t. k1 j% V2 @
do
4 r* W  t# o: w' x  q- u2 l3 Q        Lan := rootfolder.Internal.Tools.AOLlanguage;
& ?5 H8 k7 j/ [8 ?$ M% R% }2 y        if current = @.Destination -- else return/ F8 l$ }# t/ z6 i
        then2 @2 G: p0 ?- @. A- B; J/ f
                @.Destination := void;+ K% o; P6 ?0 g: F0 e! N
                if @.occupied then& b6 T  M+ f7 k! m. ]2 X$ R
                        part := @.cont;
8 ]) a* E  e7 N# u  E# I: k* U                        @.transpOrder := void;; d" g, H) U: h9 m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& H2 W; o: W' {0 \: Z# o                                @,root.eventcontroller.simTime);: D: h. V# t/ E* Z& ?
                        @.HasOrder := false;
) g5 P& F* T$ G# M( A7 U) D                        @.DrivingHome := true;
( ^# V$ Y" w% e                        rgManager.tryToStartTransOrder;
; c  Q) ^) Y, z) ^9 h7 E3 ?                        if @.Destination = void
; N: W& W/ K# ^. k0 o8 t) j2 r& K                        then -- no transport order for vehicle @( R; s& N8 ?0 F  b( v
                                @.Destination :=( M- O1 o( m. f# i3 v9 |  y. ~
                                rgManager.nearestFreeStation(@,track.~);
# u# q# G. j8 Y5 [5 n& U                                newDirection(@);   + x# t; C# y( A( C
                                if @.Destination /= void then
# A6 o& J' n: |- c: A* Y' ^+ G# N. [; s                                        @.Destination.NumReservation :=1 z# M6 n& R* a% ]2 F
                                        @.Destination.NumReservation + 1;3 }; u$ i% m# [. g$ ]1 S$ V0 X
                                end;
( N/ B9 \7 V! B/ v* A/ m  C                                @.CurrIcon := "drivingHome";
- }& r, L# j1 F& Z  y                                @.DrivingHome := true;) _  u/ i. m$ Q+ e6 E! K; W" Y
                        end;2 |& P" _. b* b3 u7 S  j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- N! k5 I- G/ S. Q3 O
                        part := @.transpOrder;: O& s" F, h3 b: l! U* A( B  `3 w4 R4 ]
                        part.move(@);-- load part
: }4 _$ W3 j+ S! v1 T8 Y                        @.CurrIcon := "load";
+ S" C/ u% v! I8 r                        GlobalDistObj := part.globDestination;
/ A  n" o) n# N9 J' {( M/ h                        assignLObj := rgmanager.rgAssignL;) q( Z' v$ d8 O( L3 ^
                        row := assignLObj.getRowNo(GlobalDistObj);
2 v$ J$ U1 g6 G8 E; s                        if Row = -1 then -- since 70! I" f5 f: f- O$ ?8 K
                                if lan=1 then
8 P- \* W) P0 P7 \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 V1 R' V  E' a! ~8 a
                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 O5 ?1 S. S+ b1 J! F3 |. j) h- l
                                else
6 Y7 X$ W4 ?  c+ F1 R' T  f: \+ }                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. {+ a- v6 _/ |5 f                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 y! y% ?6 e; g7 D                                end;; ?1 _9 D+ g+ Y
                        else. R! v1 X1 Q/ Q2 D+ j# D; `% ^' N
                                @.Destination := assignLObj[1,row];
  }1 H( Z/ _1 ~. l: g                        end;                        9 j* {! Z; Z# V6 k! Z
                        newDirection(@);4 X* H( f8 j& ^+ @; u
                        @.HasOrder := true;
9 k* A! X" a8 B% u1 R- [2 V' r+ ?                end;! X5 J; {5 Y% e6 f) o
        end;
) a9 b7 ~) _  K* `end;        -- of the method4 Q+ p/ @) K! Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & z8 X! h9 x) ], ]
% K! N0 n, h1 h* Z9 g! l6 ~# Y
这是AGV_putin中arrive的method。
5 }+ ?5 X2 u! z1 ?$ J* c" L- ^3 w9 R5 o0 A' t% A
当到达物料速度越高时,这个报警更多,0 J. y8 P, E; v1 T' }* b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  z- P$ `) Y6 l) E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, E  `$ U0 O+ {8 \5 e6 H5 g0 Q6 [) e2 f% K
另外一个小建议,就是move,所有的move都可以这样
. [2 b6 K4 Q5 T& C; f1 A3 dif not move() then debug end" \3 ?; ~  \, m3 X+ h3 \
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 c' C% T( W% X! `7 d3 oplant simulation中的free libraries有AGV模板,; ?, g$ E5 y. U- a2 k2 t
里面也有案例。7 N6 R* E0 g% u1 l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 |7 S) W. ~6 o# \
. X7 U( ~6 \* j% I- v# j# b
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' a% q9 h5 u' A  o1 l# j6 A
. N8 k$ C) p) ?* E/ _* u那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 Y$ F  _1 d" Z2 B: Z7 e
这是AGV_putin中arrive的method。# [1 `$ N3 s, t; `

" [2 O% {# k4 u: m当到达物料速度越高时,这个报警更多,

/ @: G! N: E6 \  V. g. b, Q& z" Y8 _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-1 09:01 , Processed in 0.019694 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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