设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6642|回复: 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'
$ N/ i) F+ T: |- p& T. `*/  a3 Z2 V( W9 {3 b
is+ I4 l( A; J1 m4 Y0 e6 e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  M; O0 z$ s, J' E7 v% B( o  `, odo" ]% }1 F5 J0 \: R# p( N/ N
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- `9 l, a* }6 T+ j/ b        if current = @.Destination -- else return
  D7 x' D3 e8 F9 _' M        then% B9 Q: E" |' J- l
                @.Destination := void;
; S: J" |# s& R9 r% M                if @.occupied then
0 y4 \8 y+ \6 A% W; I6 i                        part := @.cont;
( E6 {7 \" k) v6 l- k; X: M                        @.transpOrder := void;
( l+ s2 @% l- E" F                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," j: q  W1 m% `
                                @,root.eventcontroller.simTime);
; {) U% l- Q$ ~7 ^                        @.HasOrder := false;4 e0 X3 U  v$ T; a
                        @.DrivingHome := true;* R4 n* @! X% V. j2 a' T' ^
                        rgManager.tryToStartTransOrder;0 J* s3 W8 H3 u1 V
                        if @.Destination = void- B0 W  `9 `: g. R$ K; L
                        then -- no transport order for vehicle @
9 D( C! B# H; H1 {- O, Z0 ~, s0 }: |                                @.Destination :=0 b( }! A6 V1 P" j, [% T
                                rgManager.nearestFreeStation(@,track.~);. s# e8 T$ J; m  [# t  ~: Q5 R3 r' _
                                newDirection(@);   
5 o- F; J/ z/ T( e( G                                if @.Destination /= void then. }- c% [! ^8 X) x3 d, X
                                        @.Destination.NumReservation :=
, ^; I7 V" D# X" J& M7 h                                        @.Destination.NumReservation + 1;
! f# |/ ~3 X, H. n) U6 r                                end;
+ Q$ W1 a8 `' I* n7 m                                @.CurrIcon := "drivingHome";
7 m+ A. z2 I3 `  i7 D/ g                                @.DrivingHome := true;
4 a1 I/ O& {7 q- U* u                        end;% N5 }( g. M1 ~/ {& v5 x9 n
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. m" b  z& N/ y8 c: T                        part := @.transpOrder;
3 ~. h- j; O$ n/ S4 e& K) G                        part.move(@);-- load part
" O- {$ O0 V0 O* M, }' K* t                        @.CurrIcon := "load";
8 u# z, Q& ?5 v/ u3 `                        GlobalDistObj := part.globDestination;
1 \% b" E; d9 }: K6 C' u2 x                        assignLObj := rgmanager.rgAssignL;$ g+ p& s* c  m0 y3 c. I; w9 J
                        row := assignLObj.getRowNo(GlobalDistObj);! ]& `8 C* B$ F9 |6 T$ u# x% T1 M
                        if Row = -1 then -- since 70
2 e+ ^! a# J, k( @                                if lan=1 then3 E* D- d5 Q/ v& ^; W3 ^0 d# K
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 b0 n4 T% z+ _, _6 k1 _                                                to_str("in der Andockstation: \"",?.~.name,"\""));+ Z$ b: ~, V8 d5 i) C
                                else8 \; h& i% o; t. E- ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% X. a& }  D" W
                                                to_str("in docking station: \"",?.~.name,"\""));                                " f" W9 _) o9 N) M: b2 F& T
                                end;  n# _: S2 X# ]1 r
                        else
: ^9 ^. e! f& e* ~5 W8 @                                @.Destination := assignLObj[1,row];/ {! r2 X: j8 g) U% \
                        end;                        3 F( {8 h( p0 J" A+ e% t
                        newDirection(@);& Q$ b6 \6 U1 ]( i& h7 `, ?/ p
                        @.HasOrder := true;% t0 w6 W3 Y" o; P' b
                end;+ o- Y2 Y* b4 Z; a5 \
        end;; o8 U4 I7 V3 i/ |; K
end;        -- of the method
# s) \5 E' w0 n& K5 v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 T' S( L7 ]. l. {8 e; a# j
6 \- ~" m, y  B* z- b
这是AGV_putin中arrive的method。
7 c5 g  ~9 X$ Q, k) h8 F
( f6 `3 {* s5 j7 R% o0 p) O5 p当到达物料速度越高时,这个报警更多,
: _  X" f$ s, r' ?* W: ^可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 y! y- W- i3 Q! z5 a) X
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ p3 I" c0 Q5 ?1 D; b5 o
$ P9 S' p8 ~& h6 r( O; h& y" }
另外一个小建议,就是move,所有的move都可以这样( e' I) t$ A& k5 F' l+ j
if not move() then debug end
4 N4 z! F  ~- I7 n+ g这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 p$ E8 `0 w: H! Y9 S4 M
plant simulation中的free libraries有AGV模板,; d4 l( w$ b3 M' h, k- t  Q: K
里面也有案例。
7 Y. l( L" P5 r: z# v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: p' @3 \& [7 G: D3 k3 S) g6 Q8 Y4 f
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! W, p2 h/ O0 K4 I0 z+ d& @9 e2 t' A. r4 H; e
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  K0 Z( L! W0 B这是AGV_putin中arrive的method。$ s# f4 M6 X, _
3 J$ L) Q- ^( s6 [2 R6 @
当到达物料速度越高时,这个报警更多,
; ^2 ]/ i+ o; M9 R' H2 {9 y- N7 F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-18 03:25 , Processed in 0.019065 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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