设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4606|回复: 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 J. z9 Y+ e- i( w3 A8 `7 e*/( W8 M2 x! f/ r8 O+ ?) a
is" f- h" |2 E/ L0 v* s& b7 e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 X2 h  Q+ N: G6 v, mdo
# @7 U/ d9 R& G8 h" g6 B. o        Lan := rootfolder.Internal.Tools.AOLlanguage;2 z  n* ?8 A$ L' D4 }9 g( i
        if current = @.Destination -- else return+ `, F5 j# ^! @# v$ u* E
        then' H! }9 ]+ m7 A: f% @
                @.Destination := void;3 |, l$ k+ `/ o4 e  H5 F1 G
                if @.occupied then- m5 i" a' u& E8 Z/ j% U
                        part := @.cont;
1 r" T3 \% ^. h5 S$ E                        @.transpOrder := void;
1 T# ]$ Y: s0 R& i* s+ ]                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' i/ M7 P+ \' M- w                                @,root.eventcontroller.simTime);
" W3 c+ t( b+ w, U* |& S8 L                        @.HasOrder := false;
% `! ^- m! f" ~                        @.DrivingHome := true;8 z" [! }2 f4 U) Q7 Y( P, `
                        rgManager.tryToStartTransOrder;
' R0 e6 @: R1 M7 G0 O0 Z! n7 `                        if @.Destination = void
  @. x+ Z" v" j  t+ E! B                        then -- no transport order for vehicle @! q9 m  y2 p/ e, i* G+ ^
                                @.Destination :=+ n6 _. D7 G+ E9 I/ e/ v. a
                                rgManager.nearestFreeStation(@,track.~);
) x% D  T4 Y4 i6 y                                newDirection(@);   6 x0 C7 ~+ z* a+ q7 J& L
                                if @.Destination /= void then
- ]7 n' @% _4 q                                        @.Destination.NumReservation :=. i2 W: d9 `  g9 V4 l5 V' S& ]5 S
                                        @.Destination.NumReservation + 1;5 R, E. Z& w7 b) ?+ A! ]1 K
                                end;; w1 M: \! o' X+ k' ^: {9 o3 _
                                @.CurrIcon := "drivingHome";, i, @6 v0 k) q+ y- b3 d2 \
                                @.DrivingHome := true;
8 j& @/ E* V- l5 ^" K                        end;
  z' r, `' d8 v' U, g" @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- K( x6 P: L6 \% Y- }                        part := @.transpOrder;6 P7 y9 G. [* q7 \; v! s, ]
                        part.move(@);-- load part+ u4 i: q' |+ H# H( N  g4 h: n
                        @.CurrIcon := "load";
( c" @3 z, B/ y, E4 M" M/ m                        GlobalDistObj := part.globDestination;) R) [! Y' a* q
                        assignLObj := rgmanager.rgAssignL;
) h4 \- q; F1 o4 q' `+ |! K                        row := assignLObj.getRowNo(GlobalDistObj);1 ?" V' b9 V: s" g3 _
                        if Row = -1 then -- since 70
, r# z! }3 I' k9 T3 Q9 |( ^                                if lan=1 then4 ^, v& ^' L6 a
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ n: \  Z! ?5 K3 Q6 |$ D                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 U) B& ?) z- L1 C6 R- Z! G
                                else$ X" `& H- u% V5 d+ Z. ?( k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( z* ^4 t' t+ Y0 e$ E5 n: G                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ k9 m0 K% D8 R0 K  T; v9 x" y                                end;
& t, K0 d  S& D8 f, u                        else0 I3 w( v1 m2 |. M" l6 S
                                @.Destination := assignLObj[1,row];* w' m6 B  u% f* X  [2 D& S
                        end;                        $ j# @, @" r3 s8 u6 N" w. K
                        newDirection(@);
4 J. T1 F$ Z- l! A                        @.HasOrder := true;
9 R8 V& Z* C- Z0 i7 o! w                end;
  `4 n; o# n4 ^4 J3 x        end;
! T. z& M  T/ N: R1 r. S- \  xend;        -- of the method  i6 B5 I2 A1 J4 j  q; |4 h$ I3 f# e' M7 a' E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 j8 p' L. c$ ?0 b0 ^3 z* d: H. \" U( z- w& s" j" B
这是AGV_putin中arrive的method。
6 y, F5 W$ m1 x( a8 }/ {' @3 F/ ~, g
当到达物料速度越高时,这个报警更多,2 Z+ I$ m3 T1 @' v2 e3 }1 h, b! U
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 ~8 I0 m  B: q" u: [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: E' s$ |9 P* m4 S0 q, }* ^) m
$ c3 x) P) S8 h( |9 `* H8 R另外一个小建议,就是move,所有的move都可以这样$ M$ c9 p/ B$ c' D
if not move() then debug end
- y4 o- p# m7 {8 G5 |' g$ ]; q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# Q- o" B2 @8 _& o
plant simulation中的free libraries有AGV模板,
# a8 u) W" l+ N$ Y  K4 q里面也有案例。7 P- U0 v- F' a8 b5 Z1 I' ^  ^* h' W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' S6 k" Q* \9 U% @8 o4 l2 Y& ]4 x2 K' h+ K( _/ H& [3 d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 N4 P5 G" l( I# y7 c7 k0 J/ O" y; e* l5 k) s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ f3 P. |1 [# n  ?: \. C% S
这是AGV_putin中arrive的method。! ]# t3 U( K) ?% P

0 {1 u# m' s; ~当到达物料速度越高时,这个报警更多,
" V! ?/ y% l) N" N) x5 W0 ?
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-8 04:21 , Processed in 0.023446 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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