设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6064|回复: 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; w5 q4 V( E4 ^( Z) `
*/
& o! h( ?0 H8 d+ M' w; y# Ais
! n+ o4 y9 |- F, F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' b+ u/ e% u) e( Tdo
. `3 b+ A% L: Y  i" Y        Lan := rootfolder.Internal.Tools.AOLlanguage;
. ~- X. f+ ~: r/ A- E, U5 ?        if current = @.Destination -- else return/ W9 v; h  x: D% U2 x& ?8 _2 j5 c
        then
6 T4 o( ~) O7 L3 V. r2 M                @.Destination := void;
7 Q# u% i( D' U" `                if @.occupied then
5 i$ x5 R6 x. ?- x, F                        part := @.cont;4 r1 J+ x. s# U. A8 \. g( u
                        @.transpOrder := void;4 H5 U- K2 e6 [3 q/ W0 F8 a. X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  U( Y" H( p- B                                @,root.eventcontroller.simTime);1 l$ P& }8 |" }! O3 K
                        @.HasOrder := false;
- d& W9 _+ D0 ^( X! r) P0 [( o                        @.DrivingHome := true;) l/ q% N- d5 d
                        rgManager.tryToStartTransOrder;
5 I) b' x9 s* {. z                        if @.Destination = void
* S* r" _7 v2 z: |8 C                        then -- no transport order for vehicle @
- C* U; e# _1 a0 Q) P' E/ o                                @.Destination :=
2 F# k( _, C9 ^; @0 U# Z3 o0 Z( p                                rgManager.nearestFreeStation(@,track.~);( u$ q3 e9 s7 a$ p" b+ G2 |  G
                                newDirection(@);   
9 H; w4 M4 x0 [0 J                                if @.Destination /= void then$ o( {. y: J4 o8 t6 q
                                        @.Destination.NumReservation :=
& O7 w$ U! q) x                                        @.Destination.NumReservation + 1;
# @7 q! @) \  Q. P: S                                end;
- V3 D! D. |6 q                                @.CurrIcon := "drivingHome";
' w: q( j- `( n9 v6 T( u                                @.DrivingHome := true;: [1 Z# }* d' d3 {
                        end;' S, G5 z' n  U7 Y. q, H
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# _* ]0 a* U8 k" w% z
                        part := @.transpOrder;
0 e  E2 ~5 G, G8 f+ r                        part.move(@);-- load part5 r2 M% {5 N9 R+ b& K; B
                        @.CurrIcon := "load";4 M0 L8 U; T2 I7 p. K' u
                        GlobalDistObj := part.globDestination;' m# {9 C5 {% V- B8 B
                        assignLObj := rgmanager.rgAssignL;, T- I9 ^1 D( R6 p. o
                        row := assignLObj.getRowNo(GlobalDistObj);) j7 ]2 y. o% K$ `" e
                        if Row = -1 then -- since 70
2 @$ V; k, H+ y5 _1 ?( E2 W                                if lan=1 then$ r# s1 U( {# O: U7 k% |
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# o6 b. ]) {/ n. y3 j                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ l7 Q  J/ R+ ?, G1 A( V# E% |
                                else
5 B! c* K9 `6 t; M                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# i, S& c' _/ w                                                to_str("in docking station: \"",?.~.name,"\""));                               
* P8 B# Y* {9 w, C% C  g                                end;2 ]1 b# j/ ~1 p( W: R2 p5 W, W, f) u
                        else, n* ^$ H$ u# N- E7 x4 t% V
                                @.Destination := assignLObj[1,row];
2 c" U& N- u9 Y$ L* N                        end;                        ; z. a8 f( q9 z2 _7 {5 S
                        newDirection(@);
# ?( J! m1 j# F+ B                        @.HasOrder := true;( g2 U" y3 J# t1 _
                end;  W; ~" P# z! E9 `
        end;$ q9 W( j' v7 x# `1 O. u& P& ~
end;        -- of the method
. n3 |' h5 A6 O; k9 i+ \" X3 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: S5 c' S/ s8 ?; K5 R. E, L
2 _; C  g6 O# \这是AGV_putin中arrive的method。
  B" y1 R% ?* Z6 M6 U
; o$ e7 u! h$ c! E, r# r当到达物料速度越高时,这个报警更多,, \$ U8 X( g, s% \" c2 h% Q2 M$ T
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  |. t7 `" N+ M$ W
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 ?: _( O1 e# [5 Y1 d
1 `3 G6 y1 d, b$ J另外一个小建议,就是move,所有的move都可以这样8 p; l7 J$ v+ |1 L, R' \$ ^8 u
if not move() then debug end! k9 J/ p. o4 r6 d" m2 m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- e6 ^9 s* H6 H4 p! ~; h/ K8 _plant simulation中的free libraries有AGV模板,
4 a4 C$ ^: w+ B里面也有案例。" B3 h8 j* H8 m% c8 O8 u
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 C/ c8 g5 _8 \  \$ Z! E% c2 m5 C! x# u/ B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ v* _  c4 J/ I2 A9 W6 f, H( z1 ?7 i& @9 H4 x, o# Y2 ]
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 M0 k8 k6 `" J1 y1 M, N9 v5 D8 o, \) e这是AGV_putin中arrive的method。
' h6 A$ e' P& K& Z
# v0 `( k! T) y' o! J当到达物料速度越高时,这个报警更多,
1 V9 n3 {' |/ w  }
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-15 12:28 , Processed in 0.019767 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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