设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6786|回复: 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'
: S/ k# v$ G, o' p6 \$ x- n+ ]*/1 g6 W4 U% }, s. L
is
3 t  F# L- ?" p# I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 M& u# D7 E/ I4 q* b, I' w" n" p8 Qdo
- L7 N6 [. ^  Y8 k        Lan := rootfolder.Internal.Tools.AOLlanguage;+ u0 |  n  l1 e) Q& `) ?# C
        if current = @.Destination -- else return
9 l( Z3 f7 ^  u  M! S        then: I9 {& _9 t# @
                @.Destination := void;' b0 U, E$ s& @6 @; m
                if @.occupied then
6 x* N3 S: N4 y5 c                        part := @.cont;1 c  D; x* q# }' e8 H) x
                        @.transpOrder := void;
9 ]* q# M8 X& n                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 `: n% ~6 J7 o" L, m& ~- u- m                                @,root.eventcontroller.simTime);
3 ^0 T$ S5 m) i: d% `. f8 r& ?                        @.HasOrder := false;  X/ w2 U" e/ B0 `, }9 q
                        @.DrivingHome := true;
) w, n( B# L- i2 k+ O0 a; u                        rgManager.tryToStartTransOrder;
4 c6 l& R! t* g7 Q                        if @.Destination = void4 J* @) D2 h% |2 {4 u
                        then -- no transport order for vehicle @' M% u" |3 K7 W; N: Y6 f. `* M
                                @.Destination :=
& ~) M' v1 ?4 l* ]3 }* P" T                                rgManager.nearestFreeStation(@,track.~);; t" U9 J1 m; u! _9 ?, h, ?6 C
                                newDirection(@);   , P* t/ T& K7 b. ~* K" H
                                if @.Destination /= void then
( E' B0 u' _6 _                                        @.Destination.NumReservation :=
. o* {; q9 _; \                                        @.Destination.NumReservation + 1;
6 t1 f' W8 M9 Y% [# V                                end;
. W: I6 L* T9 W$ H9 y4 g                                @.CurrIcon := "drivingHome";
' ^; z7 S% `0 y8 F6 J5 L- d                                @.DrivingHome := true;" I0 P6 ^; O) g( Y5 a; j7 w
                        end;8 W6 t$ Z6 P: e& }+ A
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; C( c0 d( j5 K, l' }* o# ]                        part := @.transpOrder;
" u: l! C# p# D                        part.move(@);-- load part
( Q0 e/ g( s7 E5 @                        @.CurrIcon := "load";
: P) v4 C, x5 B8 x- @8 N+ b' X; L- p                        GlobalDistObj := part.globDestination;! B5 z; X, ]2 l" _- i9 [# t" i) B
                        assignLObj := rgmanager.rgAssignL;6 r/ p' f; q: o2 d" X
                        row := assignLObj.getRowNo(GlobalDistObj);
; y0 H- \. W: N" }                        if Row = -1 then -- since 70) A$ b3 z' w: [" U4 W9 [' B6 b/ ]- _
                                if lan=1 then
+ _- ]0 t  J" u1 h' d5 J9 i$ F5 n                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 Y2 E' i, \1 R$ @8 _* e                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ A  B7 @6 ?/ q                                else9 J; N6 i& ?5 X/ T  ?: |: u
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( _7 |: J) S7 h5 M, w
                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 [; u  I1 }7 E                                end;
: p. Y/ S! g% y* }$ B                        else
# ?. i  m5 N( N* h                                @.Destination := assignLObj[1,row];2 F' \  B, V2 M* l% x# y
                        end;                       
( {) X! H7 I' o# h                        newDirection(@);
0 E1 A  `- N, \" t                        @.HasOrder := true;9 V$ K* I4 F5 c: I
                end;; u3 @3 _. P0 L, }+ L0 W5 z
        end;" h3 z. L1 \8 E' ~5 @  N/ r- A( G
end;        -- of the method
9 \# R$ G, {6 w. O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 _9 i7 q* ]+ Y% A  R. o* A) |' i& Y3 B) f1 `, e
这是AGV_putin中arrive的method。
3 F: Z; i7 i* |$ Z, i0 g" |" F+ U4 {. D1 c4 C* r
当到达物料速度越高时,这个报警更多,% P+ Z6 y! t9 w! {0 }! A
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; M4 M5 T5 k3 M+ ]2 ~5 E4 U程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# y6 y( a& @5 i; B4 ]. h
  a$ d* M! B4 X$ n, w
另外一个小建议,就是move,所有的move都可以这样& u7 g% x. X4 d  y
if not move() then debug end& A+ }) n/ K5 u9 @9 ]3 P. ~
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 L3 V; B8 ~0 r2 w4 @
plant simulation中的free libraries有AGV模板,% s$ {" g/ ]# y8 d3 G, I" ]$ i' v
里面也有案例。8 Y7 C! w; `- T6 Q9 C( i9 R
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! s  Y! _& I4 Y2 [% f1 D
! J  ^. @3 f2 S! m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " r8 a# U4 O9 _1 h$ ^* H

. c4 [+ u) Y8 z! m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ |6 s! _: ^2 p3 i5 P9 K2 H, G
这是AGV_putin中arrive的method。2 C0 ^* D8 E9 x$ l( [5 Y

- t# K) |# |: o( y; [. A( m当到达物料速度越高时,这个报警更多,

/ s6 k4 x4 t  ]另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-26 19:23 , Processed in 0.018723 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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