设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6049|回复: 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'+ F: U, N: l' ~; u
*/0 _8 y4 a5 ~. k2 T
is( c9 [) T2 w8 R0 k
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) a- M/ [* I! o+ E5 O6 J3 }, {& xdo2 g6 u- e7 H5 E: n! G+ A( a- `9 T3 s
        Lan := rootfolder.Internal.Tools.AOLlanguage;
( K7 I7 j! T. k% i: |9 s        if current = @.Destination -- else return
1 Q" x  U% Y$ V7 c( F$ [* p0 Q        then5 f1 o# _9 Z) L* J! U
                @.Destination := void;! g6 Q0 k- N" d
                if @.occupied then: j- v: k# e( v# _5 O* s
                        part := @.cont;
6 M' |% r/ f) }& N                        @.transpOrder := void;
5 `1 ]9 l3 h5 {' u& q                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! {/ \( Y7 [0 D6 S
                                @,root.eventcontroller.simTime);7 n3 K2 l' T) c0 g  {2 N
                        @.HasOrder := false;
% c7 R. q6 o$ Q0 ]. L" x                        @.DrivingHome := true;
% g$ c# L8 A6 \; @  q3 C+ H- |                        rgManager.tryToStartTransOrder;
" O$ i. G. `6 E8 C( w                        if @.Destination = void
+ o2 E4 l3 a" d5 K4 R, M' e  p" I                        then -- no transport order for vehicle @
$ u3 m, x% s3 {* v4 x5 g                                @.Destination :=! ]  x0 _2 j# E! |: l
                                rgManager.nearestFreeStation(@,track.~);
: F+ V% z. ]: U& C                                newDirection(@);   # w2 j' u2 C3 D: M6 x# _  H. m3 U
                                if @.Destination /= void then
+ g) Y( P/ M3 ^0 F0 R                                        @.Destination.NumReservation :=
% I: r7 K- G) i7 M( B) B2 |                                        @.Destination.NumReservation + 1;
6 K4 `% L* O1 `2 j. [                                end;7 H4 L3 d2 V3 |$ t( S  k4 q% |  h
                                @.CurrIcon := "drivingHome";8 _; R' Q- h* [- C
                                @.DrivingHome := true;
: g2 I6 I" f/ L* j                        end;7 v; s+ ]1 k/ {! o' I) \: G3 O
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 V6 e# a1 K2 q5 l( K! r7 f5 x                        part := @.transpOrder;
$ V- O! h' H- k( `+ l) _' ^                        part.move(@);-- load part9 u1 g3 V" ?5 c3 ~  z0 j$ ~1 L
                        @.CurrIcon := "load";, H; J8 j& n3 s, m' e" N
                        GlobalDistObj := part.globDestination;1 h. D- s7 S) k  _/ R
                        assignLObj := rgmanager.rgAssignL;8 M/ d  k" V; a: ^. y/ u
                        row := assignLObj.getRowNo(GlobalDistObj);* g) t9 X* c9 h# Y
                        if Row = -1 then -- since 70) Z" H3 j4 U( I1 ^% C# ^9 R' D
                                if lan=1 then
3 P* P0 {, {! a. h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 f9 g) G7 e# X0 \0 y- b( i6 _                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# }* z% C5 @' ?# i4 T4 p                                else
0 f) Z6 m, O8 f( H: O! O1 h# T2 S/ e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 S# X! x; Y6 x$ y2 ^9 b
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' R. d7 {# n8 t7 c9 a8 i                                end;& J1 W( z% z7 \; M9 y
                        else
& u% r8 R% p9 l2 d                                @.Destination := assignLObj[1,row];( {6 T' h2 _: u
                        end;                       
0 a1 e' K5 N! A# f' w1 |                        newDirection(@);
+ D! g5 k5 m1 P$ M                        @.HasOrder := true;
7 I4 T& }+ H* D                end;
" x& Y' p5 l' q% I2 c( |        end;
3 G! `! y4 q. j9 X- H* Kend;        -- of the method4 k; \* U4 U  @8 [# i4 h9 A* W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ Y  Q; n) d- J# K
/ p# f1 e" ]1 r2 S1 {/ d% o这是AGV_putin中arrive的method。
8 l. ?) I; u0 q8 s; w; T& Y8 ^" ~3 [+ K3 U; l
当到达物料速度越高时,这个报警更多,
% o6 w' a" [, ?, [9 R可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) ~; v/ q8 v7 u1 R4 t$ A  Z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 M+ D/ O: [' y
4 H$ ^1 k; t, t) z6 G, }& `
另外一个小建议,就是move,所有的move都可以这样. [2 m) E- ]6 R7 f" `3 j% E
if not move() then debug end3 Z2 E# G- Z" T2 C! [+ a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* ^* Z5 }% s1 A* Z8 _. y
plant simulation中的free libraries有AGV模板,; \: H  f7 b& ?3 f& F. O
里面也有案例。
( F7 ?2 Y) |7 g! D) y- u5 t& O6 i9 p我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 k+ {# X7 ]! B$ c3 Y" j# h
8 |* ~3 ?/ H) `+ U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / H/ k4 W- [2 T1 A  f- L2 {/ x7 }

8 w/ m7 [( R  z2 I$ D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, M$ ^8 d9 o1 ~$ w( b6 {! V3 z$ B这是AGV_putin中arrive的method。3 }+ h/ r$ Z/ p4 a, Q
. e4 Q* e5 O& {" G
当到达物料速度越高时,这个报警更多,
# F# D" b( ]" W/ Y+ D# k
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-14 13:01 , Processed in 0.017359 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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