设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5613|回复: 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'2 T8 e. O: c+ D, W2 b
*/
1 t, t- Y# }* jis/ L8 [5 [3 X. D9 J6 z" `/ w
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- |9 f9 i% A0 i1 ^1 m- Gdo
7 s; F) i9 z- g9 ~! t4 I        Lan := rootfolder.Internal.Tools.AOLlanguage;9 s* C( ?; ~& `( B+ f, x
        if current = @.Destination -- else return
$ G5 ]8 L) P  I, ~6 _+ r        then6 |  R$ x" [8 Q: G4 p; y: [& l( T( s5 [
                @.Destination := void;- {7 o' n! k( E
                if @.occupied then  W. P2 o1 z7 W7 @$ H
                        part := @.cont;
6 x4 f, a9 a! e1 @                        @.transpOrder := void;
5 J3 r7 b; E3 g9 e* a/ L/ q                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ P& X" n' x! _0 ^0 y: @
                                @,root.eventcontroller.simTime);  K+ d/ p) I+ h2 f
                        @.HasOrder := false;+ Z! @7 Q' t0 `7 }
                        @.DrivingHome := true;
1 t+ c3 O: ^4 K                        rgManager.tryToStartTransOrder;0 y2 \# j9 k' b3 y9 r
                        if @.Destination = void
# Y3 y; _6 K" T' E) o% V                        then -- no transport order for vehicle @4 h5 k: H7 [" t# p% W6 \7 @$ M
                                @.Destination :=
; D- D" `3 R' m7 X3 f( @( Y                                rgManager.nearestFreeStation(@,track.~);
; ^$ ?; Y- ~( ?6 |                                newDirection(@);   , |" U3 f8 L; q- B0 ^1 ~: O# l
                                if @.Destination /= void then- j; Q# g% O7 l# G% D4 }7 a
                                        @.Destination.NumReservation :=
" E9 D* L+ x3 F                                        @.Destination.NumReservation + 1;  S# l: _, p- ]$ G0 F5 A/ N
                                end;1 O) {5 U2 ^3 N* I, \
                                @.CurrIcon := "drivingHome";$ c( D  s+ l. s7 G+ C% N
                                @.DrivingHome := true;" ~- `! `' H4 M1 Q/ X
                        end;
; y! u8 t: V9 b* R                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( y, x  W3 _* b2 F5 \" o7 q9 K, ^/ O                        part := @.transpOrder;
/ R& s5 S3 I6 ?4 q0 e- P                        part.move(@);-- load part& y- G. c9 M2 M+ g
                        @.CurrIcon := "load";" G" F  t( B$ ]( k( l  c+ C
                        GlobalDistObj := part.globDestination;
1 z5 O+ o% @; V                        assignLObj := rgmanager.rgAssignL;7 r+ `, ^  Y0 I* P
                        row := assignLObj.getRowNo(GlobalDistObj);3 Z0 W* j* s+ U" x; d7 a! ^
                        if Row = -1 then -- since 70- S5 V  C+ M  a. d) R
                                if lan=1 then
$ f. i! b) u% c+ v. \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! Q: Q- \. X! }: ^                                                to_str("in der Andockstation: \"",?.~.name,"\""));" T" @6 }; M& Z* b* Q9 y
                                else, @5 k0 P* a5 v
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ F* I- U9 j8 k' M- q
                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ ?( O( j) S3 f3 q                                end;
2 q% t. V% I1 y9 q                        else, t5 d  K1 Q( s
                                @.Destination := assignLObj[1,row];5 s- H8 c; a5 b0 a! f8 u2 ?! C
                        end;                        3 L% W' x: t% x8 D  Y$ z( \" R1 n1 B
                        newDirection(@);
' E+ s% c" _+ C0 H' {                        @.HasOrder := true;
8 q; {& J1 Q- w6 M* \1 r- z' ^& s                end;% t5 m( D. X8 p4 Q
        end;
7 d* n! w8 j/ x6 iend;        -- of the method
* K4 x9 y1 x: V; k% F+ N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + T( u2 B! p6 s

# K8 l/ O  f8 l0 s% @) l这是AGV_putin中arrive的method。% Z4 ^$ K# p+ h$ t2 |

9 O% j2 {- r% Y* e% u, U5 ]当到达物料速度越高时,这个报警更多," A  |5 Z, X# T( S
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 H% I) {9 D. A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! J: v% i: N4 w% d
+ F, M% J3 D- I  N3 e9 A% E另外一个小建议,就是move,所有的move都可以这样
1 ^  f3 W; C, ^if not move() then debug end
, k% _7 g! k" [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# O9 J3 V* l* q/ R; gplant simulation中的free libraries有AGV模板,
8 ^. |) x. v/ I4 ?/ |- l; S7 D0 p7 w里面也有案例。" [& \* j2 J7 w; l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  H" x* ^7 G# @
2 D  x$ T- i- R2 i3 k9 o
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : ]$ Q* m( _, `/ C+ r
' m' b& I( t: O+ p" X4 W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' r1 u' x6 ^! w7 z0 l- m
这是AGV_putin中arrive的method。& g' A( S  C1 x9 V% H% z

/ Q/ ~. i) Y. I( t7 m: J当到达物料速度越高时,这个报警更多,
( f. a, F' y& }, C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-9 03:35 , Processed in 0.030750 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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