设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6248|回复: 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'! M% ^- w% ~9 i/ @, O+ I3 L
*/# R, z' z# e1 ^: A) ^+ {8 ?
is. I# a; t$ T4 `, r
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* M# J7 \8 B* q' j7 l9 ?& qdo! Q0 W0 q; q9 Y0 ^. Q% M
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 Q  o# t4 h! P4 o: p; N" m
        if current = @.Destination -- else return6 A) `1 h/ k: S/ U8 [9 B" `
        then' y4 U7 k1 `( l# C8 t
                @.Destination := void;
5 d/ k. t' m  q% L( U- J8 v( F                if @.occupied then
; O9 j- A( _, T! [6 k) ~                        part := @.cont;
' ]' s/ b; j$ j+ Y6 D, M& c" g                        @.transpOrder := void;/ H& `; `  F: v0 a
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' h; B5 l5 R4 H: ~* Q
                                @,root.eventcontroller.simTime);
' R, T" {( a3 O* {- e1 U                        @.HasOrder := false;
4 Y% F: U' z7 I! G                        @.DrivingHome := true;
5 `% H' J; d- }  T) @                        rgManager.tryToStartTransOrder;% d; F  T9 \! R2 ~$ L2 l$ l" r
                        if @.Destination = void
8 u8 s) R, p3 ~                        then -- no transport order for vehicle @) z8 q* L' q; {
                                @.Destination :=1 R( Q* M1 v" g. }
                                rgManager.nearestFreeStation(@,track.~);
* }4 R$ Y8 \4 Y) x4 H2 ~  l' J9 ^                                newDirection(@);   
4 ~, V+ w* E* F9 v# _1 c3 y' P7 C                                if @.Destination /= void then, p) F) y$ K% D) [) s8 `$ N" W
                                        @.Destination.NumReservation :=3 L6 T+ F3 Q% B' ]% ]
                                        @.Destination.NumReservation + 1;) I3 h5 U) O6 Y, t
                                end;9 x- m3 A7 F2 {
                                @.CurrIcon := "drivingHome";
9 x  Y3 h  l6 T. \                                @.DrivingHome := true;
# B6 F7 v5 H2 Q9 Q9 x  ~- s                        end;( h, S% o/ k0 I2 @' }0 \
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" q1 _3 w( |  {% k$ K! }                        part := @.transpOrder;  s" _2 G  \  [8 e
                        part.move(@);-- load part
2 |; S% j/ y5 u3 S7 x                        @.CurrIcon := "load";; U! c% c$ O" l) l, l* _
                        GlobalDistObj := part.globDestination;
0 y+ U  e& b, B( M1 j) f+ J                        assignLObj := rgmanager.rgAssignL;
5 u' b+ P% r/ {. q- E9 \" ?                        row := assignLObj.getRowNo(GlobalDistObj);8 I6 L6 F6 _# A5 h" _
                        if Row = -1 then -- since 70. k5 O$ j, M% @- w
                                if lan=1 then
2 ]) Q/ `5 ^. K, O                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ @! J% Y' v7 H+ d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( l5 H, l4 h5 s2 w  B                                else5 V1 s, ?2 r- j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' Z: r( Y1 r; \9 ?, g# t4 Q" I+ d
                                                to_str("in docking station: \"",?.~.name,"\""));                                " |7 h  H- N- v% n4 Q2 ]& W8 X. F) M2 t
                                end;
  W( @2 I5 \9 R" s: j0 l* N                        else& |/ ?$ f8 {4 T' a5 r$ L
                                @.Destination := assignLObj[1,row];
$ f6 d) i8 W7 |$ u                        end;                        ; d2 x" {0 p+ Y4 A- `; l: u' ~
                        newDirection(@);$ M2 m/ F3 Y6 X# F% \6 x1 `
                        @.HasOrder := true;
9 l8 p6 y& @% f$ q: y                end;
9 b( T' M8 H3 f4 w) a        end;
" ?% A6 M7 M) ^5 p) `2 hend;        -- of the method2 H+ k+ t- Z5 P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . i. r# l; }0 U* g# i8 J

' |2 |1 {1 E" Z; \这是AGV_putin中arrive的method。
4 z) w, J# v: m% D8 B" P/ N6 `. F
2 a! e% J% M9 z9 r7 n当到达物料速度越高时,这个报警更多,
; ]5 L+ t7 N( h$ S$ _2 ]; R7 [" t可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 ^5 h1 S8 M# W) a3 l
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 x" O$ s* z! ?4 o* v) [
/ Z! M# \0 c' v. E0 {$ V8 p另外一个小建议,就是move,所有的move都可以这样
4 ~5 T  f  v: H; H& lif not move() then debug end
8 L/ ~. R4 L1 y; S. s6 I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ D3 W( @! T; s7 ^3 B: r6 Vplant simulation中的free libraries有AGV模板,
! p& u# f( c+ f7 v) i# [2 v" Q里面也有案例。8 |! H) x" r" r" G3 Q9 Y, ]
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 t0 ^. g9 k! D( G$ I3 N5 ^( O+ Y
- u3 F8 Z7 G; S3 `1 k
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 {) T: h3 k4 Z& @2 B/ b# L; D5 f* _% _+ N: c( t( Y7 u
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% x, Y2 w# W' P9 e5 q# m, L" D这是AGV_putin中arrive的method。. M0 q( t1 I" e; w
0 l9 c) ?; X' m/ ~0 r
当到达物料速度越高时,这个报警更多,

2 X3 g) v! x* P$ ^另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-27 03:43 , Processed in 0.018852 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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