设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7136|回复: 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'
2 j: k- M. `) W5 l*/  @2 e, ?( W, \7 \% ?) W
is0 b8 @. D# w* D" w$ W& k
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 h6 T7 D# \3 Bdo6 k& s- O, k, u  f4 ~# o, |
        Lan := rootfolder.Internal.Tools.AOLlanguage;. e2 n) o: a' w+ _2 z
        if current = @.Destination -- else return
* a0 ^! p& n  _! F! H/ b        then6 `5 U+ s4 ^. T' [9 e% K# Y
                @.Destination := void;: R( E6 ~0 M* g2 Q" T
                if @.occupied then
# o0 ?: O1 \) X                        part := @.cont;
* Y1 Q8 [- m! N  v/ z4 I3 F7 `9 d, L& n                        @.transpOrder := void;5 Z9 {  [: W4 x1 ]9 V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 m! I. e6 |- Z5 s. g  F7 U3 _5 W& p
                                @,root.eventcontroller.simTime);7 a- _& i: v4 L
                        @.HasOrder := false;
# M2 }9 S$ h' Y) i2 j3 r                        @.DrivingHome := true;
* }% o0 J* X7 {                        rgManager.tryToStartTransOrder;
, T% @" p9 E: x8 S9 a  j7 C                        if @.Destination = void- Q. c& e( s  z
                        then -- no transport order for vehicle @
2 z" T5 R$ ~9 O* i9 H4 L7 G, H& V3 x                                @.Destination :=
$ b( N8 S1 ~6 A6 V# N7 D                                rgManager.nearestFreeStation(@,track.~);
/ [% X/ Y1 L2 {# i                                newDirection(@);   2 u- A6 ]0 r4 y* Y
                                if @.Destination /= void then4 T+ ?5 ^4 C5 E7 f# i
                                        @.Destination.NumReservation :=: ?2 u1 l2 B3 E- O3 N. i) h. i- q
                                        @.Destination.NumReservation + 1;( z9 D8 |: z9 `+ X: z9 L( u
                                end;
2 ~: I6 D4 m0 {: o& j7 c                                @.CurrIcon := "drivingHome";/ [% |# h$ r7 [9 j/ _
                                @.DrivingHome := true;
& ]* L( u$ n# b5 A                        end;* F/ P8 b8 m% Q+ I2 G
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  }9 w" F# B; m9 n; p! e                        part := @.transpOrder;
& O& ]+ |+ d0 m8 E                        part.move(@);-- load part' E8 H- \+ o: A# T
                        @.CurrIcon := "load";+ Q3 |, ^: e8 W
                        GlobalDistObj := part.globDestination;
- S& h  D6 ?0 D                        assignLObj := rgmanager.rgAssignL;
3 X: U7 s5 G0 D8 g                        row := assignLObj.getRowNo(GlobalDistObj);0 O/ p' g" h7 M- [
                        if Row = -1 then -- since 70
0 b0 ]1 h# E0 K* N7 p                                if lan=1 then. E- i+ K% M1 p6 H: O; f/ r% x: `/ `
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' X0 o& N6 z' C
                                                to_str("in der Andockstation: \"",?.~.name,"\""));) T. r  Z7 n5 O/ U9 z9 J
                                else
# P& S' e' e  L* D                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. r: J* n* g: C2 z                                                to_str("in docking station: \"",?.~.name,"\""));                                2 t" B* X0 S6 z: V$ F% z
                                end;
$ E! t8 o+ p3 m3 B! \/ K# Z8 s                        else8 I& Q6 K' r/ y9 h* {
                                @.Destination := assignLObj[1,row];
+ ~5 [# ?# b( L8 o; v! G                        end;                       
; u+ q) }, F) H                        newDirection(@);* ^- [: S, t5 h' Z5 \; }; \) @
                        @.HasOrder := true;
6 T: ^5 j3 O- I                end;' q9 a8 M  I# C# @' p
        end;6 r1 C, ?: q1 h+ z# n6 v
end;        -- of the method
: z) ?- e. I8 T# T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! H, T$ a( S' N, G/ B

6 U5 v# R8 m3 [( J- Z这是AGV_putin中arrive的method。; o" ]' Y. \8 x  D9 D1 w: C5 n/ E+ }0 m

# P: q5 T8 p: F* t7 c% @当到达物料速度越高时,这个报警更多,) P  M3 A6 U2 O& @/ d
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' }; W6 U! r1 `
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. g( Y5 u% ?, [; Q/ \6 R4 T0 u% \
* w7 N8 E4 [8 q) b$ k7 g
另外一个小建议,就是move,所有的move都可以这样
; |! s% O( X  _" k6 @if not move() then debug end
$ J3 u& ~6 O3 C这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' M" H& J& Q9 Y1 c7 Lplant simulation中的free libraries有AGV模板,
7 q/ t. ^9 t+ w7 n. Z# ~4 `6 x2 K: t里面也有案例。) Q; x% [8 h& n, |% v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; l( _* D* \' L6 o. F/ O# s
9 P4 e0 F  @( M+ f4 c我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 c) L- k) b$ {! X  F* K3 [  E9 J) {: O7 h3 |7 a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 1 Y0 d9 \& _( E1 i9 A' ~
这是AGV_putin中arrive的method。
1 i/ k& ?& v" t9 F, F
  s8 h0 d6 W' f当到达物料速度越高时,这个报警更多,

5 j& E/ o& y5 Y; p+ X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 00:35 , Processed in 0.017008 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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