设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7840|回复: 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'
9 L( l3 F1 @9 C- K; G- l3 T' N*/. s( B5 m5 g9 V* |* n- a+ \
is! t; B8 k. C/ X
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) i  E, c) [+ O+ `4 Mdo
8 ~1 I( T" X! @2 g; A* s6 K        Lan := rootfolder.Internal.Tools.AOLlanguage;1 v& a2 o; X( r+ k1 `
        if current = @.Destination -- else return
4 C8 U* w/ l% p0 o( w/ l! e- ^        then
# r* [/ C/ C% ]% E9 z9 q                @.Destination := void;7 \! e$ H& x7 X
                if @.occupied then! \. R+ A8 @1 `) c5 G! B* g7 p
                        part := @.cont;# t& W# Y* ?; O' N) R4 J- H' q, b
                        @.transpOrder := void;
+ u/ `) _4 \. I2 e9 h# v0 j* `5 @                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ R) @" F5 n" G4 Z5 ~' O) n
                                @,root.eventcontroller.simTime);9 X! r: A/ x% _- b
                        @.HasOrder := false;. r: b* b  f! H, X$ i
                        @.DrivingHome := true;
1 {! Z4 b# m  s1 n4 O+ D                        rgManager.tryToStartTransOrder;
' C% o0 X+ c9 Q: J0 P( ^; o                        if @.Destination = void) t$ V8 t/ K) j! p
                        then -- no transport order for vehicle @
8 U; j; C7 d7 L$ P5 p+ V9 c                                @.Destination :=/ j; E* i" H' |2 D0 {3 l2 |
                                rgManager.nearestFreeStation(@,track.~);: Y2 D5 d' @$ l% l0 M
                                newDirection(@);   
: x0 i& |" _# t4 @( p" A7 e                                if @.Destination /= void then8 t; M# y( E: u. L/ o6 l+ J
                                        @.Destination.NumReservation :=
0 x. c& X9 o; H! i                                        @.Destination.NumReservation + 1;
1 D1 P0 u. [& ^  M. U% {3 P' X                                end;# z! r% h$ I6 o& s9 b+ A
                                @.CurrIcon := "drivingHome";
- o+ g4 l, @) L. y- \, q                                @.DrivingHome := true;8 |1 e: d8 I7 B# ^  F% T4 E4 D
                        end;" z/ a$ [9 Z, ?* `
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& H. y% y" ^- o% s                        part := @.transpOrder;! D3 p$ o" t. E! D3 n# _+ |
                        part.move(@);-- load part, N' ~+ z( H5 K! }$ H
                        @.CurrIcon := "load";: N) \7 X* g( u. r& u( @' f
                        GlobalDistObj := part.globDestination;# `$ ~( g# L* d; m* M# J
                        assignLObj := rgmanager.rgAssignL;  L- `0 @) k. u6 `* N6 m
                        row := assignLObj.getRowNo(GlobalDistObj);8 X* e8 j# C' B  q% R3 D
                        if Row = -1 then -- since 70
" \8 }) Q; T9 ?& y" e) L                                if lan=1 then$ ^3 Y1 M6 @' x7 n" O( x. F9 T3 g' @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& }1 v7 _: J. K9 y                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 W8 ]0 P9 ]/ v/ w* o/ J5 y
                                else  J3 J+ Q, @( v4 ?! Y/ H
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' {* D# M& s& U9 i% J+ r! P                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 b0 e3 C) K3 A                                end;* v+ K( Z4 M" Y8 _
                        else
$ I3 x# K- Q8 [0 {! c& @                                @.Destination := assignLObj[1,row];
2 L1 [8 \+ ^+ V' t* J  w% ]                        end;                       
4 X- S2 m; D- R6 i, v                        newDirection(@);
4 R8 R: g; b. O% x; {& `                        @.HasOrder := true;
- R" b; i; I8 |' U5 W$ v                end;
( n' Y# ^2 V# i% X        end;
$ O0 k: B: ?% \4 o( r" L9 c* Gend;        -- of the method$ ]. d- Y- g. n3 g6 X2 a) C3 [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , m! n! r+ ]1 M, \) a8 K% f  }2 x

  e& i: j& v: D3 A( M这是AGV_putin中arrive的method。
  e' P% S! g/ k: ?% c2 d# b
: N- m! Q. A4 L当到达物料速度越高时,这个报警更多,
* c8 q3 d& T. e8 w2 K可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! G3 w/ p' |4 N' k9 l! t
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* N/ E" K9 O# q! [, L

1 c1 h) s& B5 P0 W另外一个小建议,就是move,所有的move都可以这样6 `4 {) b4 k0 U' s! G
if not move() then debug end
) W% ~: b0 @3 K. B: o这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 D9 Y+ ^0 D! Vplant simulation中的free libraries有AGV模板,
) E. ~6 {) v; F* b里面也有案例。
) g2 Z. S! z6 Y* ^- Z4 L7 ]9 ~! S& a我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 P  _- d) ^, ^9 O3 M& t
7 h" }/ H  Y4 o, Y; {1 x
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ k( y2 a' @7 Y  [0 z* H+ p% ^

) W! W; h8 W) e% w) F那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : @8 v4 |% C+ H
这是AGV_putin中arrive的method。
3 x6 B. G# L$ s& R1 Y2 K4 i
, _4 s; b8 e. w4 x& w$ k当到达物料速度越高时,这个报警更多,
3 Y3 m/ n" d" R9 M9 ~
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-1 11:06 , Processed in 0.027975 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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