设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6715|回复: 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'0 \+ \6 f6 d9 h8 X) n9 V* l
*/+ m0 h+ `7 D; t" m" V# r
is5 G9 z! c& k( h3 h0 c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: E5 Z+ @. q2 B3 d: Q" |& O
do
7 T: t7 q; i4 U8 \        Lan := rootfolder.Internal.Tools.AOLlanguage;+ G. y0 U% R/ F/ P: q. K) g
        if current = @.Destination -- else return+ I) G3 v. K0 i# O- U' ?* V; u
        then) Q- u" I7 e: `$ S2 d+ x# p' b
                @.Destination := void;
5 @6 r/ N8 n- e4 ~5 N# R                if @.occupied then" A8 X0 H$ D8 h1 f) A( m
                        part := @.cont;
5 r5 r: }' v& `                        @.transpOrder := void;- r9 b) L. t7 g: H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 M. {7 I; b1 j% z  F/ ]
                                @,root.eventcontroller.simTime);( J# r. O" @, o- ]5 i4 T  `
                        @.HasOrder := false;
) D  j$ s; v/ ]- U: k' W$ M                        @.DrivingHome := true;8 C; W1 |% |: w, L$ g$ U0 v' `
                        rgManager.tryToStartTransOrder;; o; B8 u$ I. M3 {: h0 y
                        if @.Destination = void. f+ `; F" l9 p) h1 ^% E0 @) c$ R
                        then -- no transport order for vehicle @
/ p' @* Z& K# \! h                                @.Destination :=
( I  [1 M- Y: a# J' G                                rgManager.nearestFreeStation(@,track.~);
) h3 S6 r: \( s& r8 Z* N" A                                newDirection(@);   
$ n- W, T* M/ F/ }; j) g# s( s" k                                if @.Destination /= void then
3 e7 Y9 A' {2 e3 C% l) u" u                                        @.Destination.NumReservation :=4 Q1 X- E8 g2 z, R! z$ X
                                        @.Destination.NumReservation + 1;$ \6 K% Y- l' t3 A
                                end;
. z# k, V' P' O3 r5 S* r                                @.CurrIcon := "drivingHome";
/ ~3 L! H  h5 q; Y) ?1 M                                @.DrivingHome := true;
$ h, ~: @0 s  F- W                        end;# ?' D5 n( N* a3 C  e# n
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 q2 _! T& Y% D: w' r6 Y
                        part := @.transpOrder;
- V3 `7 P$ |! N                        part.move(@);-- load part' C- ?$ `' a6 b3 t1 h$ ~4 g; a  H
                        @.CurrIcon := "load";" ^: ^0 G- i* b( M! [7 }, Z
                        GlobalDistObj := part.globDestination;0 ?2 s4 P/ x2 P# o! C& ^% Z7 w, u
                        assignLObj := rgmanager.rgAssignL;
! s3 G" l0 N+ o. n- S                        row := assignLObj.getRowNo(GlobalDistObj);: U5 [6 a) O7 O2 G* M
                        if Row = -1 then -- since 70* k1 h3 m) K' E4 g/ M6 w
                                if lan=1 then( ~2 \6 @4 b& X# r
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 \+ u5 @$ k% J: c- h  Y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));; y, U9 D- S& c- U9 `
                                else' c! D4 S5 O- t7 r3 m
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! f% Z% a' K& ]! j, C" m                                                to_str("in docking station: \"",?.~.name,"\""));                                ' {7 ?/ H; \2 q6 [5 h7 ?2 f( D
                                end;9 n: ^7 e. Z. u. \
                        else
. N8 [+ v9 M; q                                @.Destination := assignLObj[1,row];
2 K( |. I7 I$ g                        end;                        ) E3 T+ F: ^) A- f
                        newDirection(@);' O8 }- F. ]. A) ^$ O! f  H
                        @.HasOrder := true;$ \1 B& p% [! Q. _
                end;
# G- W0 V& j3 s# I, Y. r        end;
0 _0 z. N8 \  `8 O0 r2 z$ N; ~end;        -- of the method
# Q3 C. Y- g1 ?. _6 J1 n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 R7 m" D+ U; w- I6 n3 U8 ^: ~9 @/ [  p) F) b
这是AGV_putin中arrive的method。! X0 {+ C, g, q" ]9 n- X
( @+ W( k2 v3 }; |( c8 R' }, _4 ~
当到达物料速度越高时,这个报警更多,
$ G: w, [) j& p5 |可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  @( G5 X! i7 @3 @; Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* p: i9 G) h) }1 M( @
, V" H, T7 @5 Y# r  y) M" I9 s, _另外一个小建议,就是move,所有的move都可以这样/ ^* U! v* \, ]0 b5 B2 S5 @
if not move() then debug end0 U' A& E+ u, n  _/ x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* Y4 |9 R9 b+ P+ X$ ~/ [4 dplant simulation中的free libraries有AGV模板,( ]0 R8 M8 Y) c4 K  E1 }5 F  ~9 f
里面也有案例。+ f" S0 ~! ]+ l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- v' o7 t+ W, d4 Y' Y1 {) ?

! f; n, y- v' ]5 f& ]0 o3 G: u我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 A7 S0 Z) J3 z# Y% w2 Z; W7 @  o* W7 A5 g
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 Z9 y' ^; n) C: E$ e; s这是AGV_putin中arrive的method。0 T. x2 K" j5 ^% {$ `: P5 g; H4 J7 I

, M4 V6 p$ g6 W# {7 D- k当到达物料速度越高时,这个报警更多,
  X6 v. G. Z& F9 Q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-22 06:08 , Processed in 0.018789 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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