设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10019|回复: 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'/ S1 m% E# b4 I
*/% f* ?- D7 {# Z: M/ m+ Q
is
7 @; Q# _; i) V9 s# F( D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& C* h; W- \5 s9 Hdo3 C5 ~% a( t* r
        Lan := rootfolder.Internal.Tools.AOLlanguage;' ?% b5 L3 M4 x) A3 f7 [7 j
        if current = @.Destination -- else return/ X7 V: ]2 J  x; F9 M
        then
+ J; d! W0 J1 m" n; K' }                @.Destination := void;
/ X0 p7 W, m0 H5 t3 O                if @.occupied then% {6 O% j! }5 C3 [
                        part := @.cont;) x: M  f- d  o+ |$ J
                        @.transpOrder := void;3 E1 R3 z* q2 P9 M- p3 f4 L# `: ^
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ F0 [4 P: a. q9 l8 s2 T: s                                @,root.eventcontroller.simTime);' d  s/ E* R' N# n, h# A  r
                        @.HasOrder := false;
! W% O6 i6 W! W  ^% ^                        @.DrivingHome := true;
( Z3 Y' Y9 c( I! N: M                        rgManager.tryToStartTransOrder;' [  @) f" P8 j% y" k& s0 Y% }
                        if @.Destination = void, a3 S  u7 z/ i/ P9 `: x
                        then -- no transport order for vehicle @
+ I+ \: k. h9 Q  w                                @.Destination :=; L5 v4 v1 l6 n3 O3 T( [
                                rgManager.nearestFreeStation(@,track.~);
3 H: N9 Z: o5 R" {                                newDirection(@);   
* @. J1 X; Z! z" M7 V. g                                if @.Destination /= void then9 Z+ Q6 K/ n$ o5 `% v
                                        @.Destination.NumReservation :=/ h% T. V% b, n* \% v
                                        @.Destination.NumReservation + 1;
( U/ k+ o7 a% X9 J# |9 R$ y: B% u                                end;
4 t* o$ z8 K+ M- a1 C                                @.CurrIcon := "drivingHome";* f) ~, X* H4 g: c
                                @.DrivingHome := true;
% b. `. _( _, @: Y/ b                        end;* }, R$ _( M' o& H& q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- I! u1 Y$ S2 W
                        part := @.transpOrder;
4 Z3 V9 i, d: H% C5 T+ T7 a+ |1 p6 D6 u                        part.move(@);-- load part
4 u4 P6 J, A3 w, _; J: A' ?8 r                        @.CurrIcon := "load";4 p3 k& {; O2 J% P  [; N6 H
                        GlobalDistObj := part.globDestination;! q( O4 O. G' Q
                        assignLObj := rgmanager.rgAssignL;4 z% K1 f* y5 X) s
                        row := assignLObj.getRowNo(GlobalDistObj);% h9 H/ ^+ `3 b* i
                        if Row = -1 then -- since 70
- J- p8 A9 [& r% k7 b9 Z; G/ \                                if lan=1 then& ^6 T( m+ F* ?* z" Y3 y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) c. r( S# V& o7 J8 X  h8 u1 X5 A                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 D1 `8 s" y) c# E, t                                else
: M) K8 l/ |% x3 w% P( Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' s- J0 V, O5 k. i" q7 {% y+ [# n5 p
                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 y& f2 u, F7 h* G. `8 l; B                                end;  E/ n, Q4 w" y' N2 }
                        else# A3 Q# o) I" ]) n0 s- i
                                @.Destination := assignLObj[1,row];. F6 ?1 I& I$ T( j& v
                        end;                       
$ d7 o, \, M& l" |! E                        newDirection(@);
* L* {' b9 U6 z+ S7 Q* I4 u; ^                        @.HasOrder := true;
' n: M# X5 c. ]$ ?0 a8 c' f                end;; H' s) }9 ~- }. h" Z5 P
        end;0 j+ _. L( o, n% \1 h0 P2 [
end;        -- of the method  \* m1 {6 A: T& q3 r. m4 ~1 l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; B, {2 }8 x0 u+ U) V) i" D. l

0 @. S- I3 ]/ M) A' W. H7 D这是AGV_putin中arrive的method。
) w+ u% b: G  F3 g
  ]3 `' A! f$ ~, ^2 q9 E  F, o- ~当到达物料速度越高时,这个报警更多,3 t7 v$ _+ v' {& D1 G- I' u6 T
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 F  g% p" U- l4 n
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; d" a, ?, q; {! S/ G  h8 ~; F6 A, Z
另外一个小建议,就是move,所有的move都可以这样- e. |( E( j3 `+ \' i) }6 a) i/ Y
if not move() then debug end# ~9 S  A/ {5 [4 g% T5 a' o9 ]' f
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 @5 [. q" _+ R5 ^
plant simulation中的free libraries有AGV模板,+ A/ |1 }% M; E, z5 f/ `) m* x
里面也有案例。3 y) |* T% d0 S( w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ R& f, z/ O0 g, H# K3 b  P1 Z% m1 M9 x9 P5 t7 X' t
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - A% ^; ~( L, L0 J7 u0 U) n

) ?% {0 u$ l$ h+ W3 h1 E# s, b$ f那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  L0 _4 }% z3 ~4 V: k这是AGV_putin中arrive的method。
9 d6 k! A& i" y& F1 i) ~; P
! }4 c1 Z# J  {; m- L当到达物料速度越高时,这个报警更多,

  M/ D7 z; C- `& z  Q) M5 x$ n" N# W另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-7 23:06 , Processed in 0.018730 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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