设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6347|回复: 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'1 k- j4 f6 Y) I+ s4 Z2 Y  J
*/# d) S8 y7 j9 I9 P- z
is
+ l0 }) @2 N, q& i0 e( O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 w4 C" C* _8 o9 y+ s$ @do
) V# @/ v1 ^3 x5 @) Z0 I0 f' D        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 E0 M9 T3 R1 O; e/ B        if current = @.Destination -- else return
! q+ P2 f/ Y' L$ M) s        then
/ h% J7 H4 y  t* ?7 b) j                @.Destination := void;! W4 L- t8 o" D* a* I! H4 J) t# E
                if @.occupied then5 x" W; I  F5 V2 w/ J5 k  g& x
                        part := @.cont;, S2 ^5 O% c4 G( J: Z+ Q3 G2 r" |% A) \
                        @.transpOrder := void;5 N+ P& S6 c0 Z7 g/ v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' K1 _( G& `' {3 }' F2 H4 U                                @,root.eventcontroller.simTime);' l; h& z; \1 M4 u( T
                        @.HasOrder := false;7 h- H+ c/ n- g9 O! c8 N9 z& N  d
                        @.DrivingHome := true;
' s2 Y3 n0 z' n$ i) a                        rgManager.tryToStartTransOrder;1 j' B5 j/ `4 N1 Y( G) ]. k  B# S
                        if @.Destination = void
, b' T( U* H5 [( T$ [                        then -- no transport order for vehicle @* k5 c' G( V2 \0 A$ g
                                @.Destination :=% {/ @0 i" K* e+ W6 S
                                rgManager.nearestFreeStation(@,track.~);
2 Y6 m% O9 ?$ [: f! a+ L3 w                                newDirection(@);   % o& q/ Y2 Y: N0 u3 a2 g
                                if @.Destination /= void then
: X# P$ Q8 M1 i  `2 Z: C: P                                        @.Destination.NumReservation :=( E/ [3 g& r; n% n+ n% e: Q2 Z+ g! l2 X
                                        @.Destination.NumReservation + 1;% Y! T/ b% Z/ h# N2 ]) t
                                end;
1 D6 `  _  s2 n' r4 S/ g( P7 B7 |' a) g                                @.CurrIcon := "drivingHome";
  ^' v: a, _( F, m1 T                                @.DrivingHome := true;
+ K6 y% x3 b6 v                        end;3 @, ?% K+ I( _
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 S; F5 `( X3 R
                        part := @.transpOrder;2 t( A. h- c  W- V" _% P) Q1 O
                        part.move(@);-- load part
; r9 w8 `9 N: J2 }( |+ h; Z7 I                        @.CurrIcon := "load";% d0 p( f+ D7 H2 k
                        GlobalDistObj := part.globDestination;
) b0 [  E+ e/ w9 N& l                        assignLObj := rgmanager.rgAssignL;' C) @! M$ p+ D4 F
                        row := assignLObj.getRowNo(GlobalDistObj);
* t# I: O5 o' v! }+ {                        if Row = -1 then -- since 70$ C/ u4 i* Y+ m" s
                                if lan=1 then
( r. o& O. n: D+ c2 X+ m+ p* `7 R                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* C4 i8 v: S4 e! f$ S                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 Z% b$ d! l% h& l% U; C  K1 }6 O- r                                else
2 r+ h. J2 O% B6 ~6 C, Y' A0 q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: B0 t4 z" E& ^3 [, _                                                to_str("in docking station: \"",?.~.name,"\""));                               
# r' |0 V+ @# ~5 \" Q                                end;
( g. \. _: [' p. a- p                        else# Y' W+ O) v9 s) @! t
                                @.Destination := assignLObj[1,row];7 ?% W3 [2 L3 @; Z! e7 H
                        end;                       
' B* ]% O& z' \  Q; a                        newDirection(@);  K- X- R; o& C0 z. U
                        @.HasOrder := true;
9 r( A; |, Q4 M                end;
7 p+ T; ~3 _! P/ @$ O        end;
3 {$ M/ c, r( W8 T6 @1 s3 Wend;        -- of the method+ y+ [  C' M. P/ W7 x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! w" c; t7 u4 b# |: |  g: A3 E
这是AGV_putin中arrive的method。/ @! C3 M! s" ]) y, B$ ]
7 h. `4 W) H4 _( @0 U' W% f
当到达物料速度越高时,这个报警更多,. o4 Z+ O/ |1 u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 {5 J4 a2 c6 J$ S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' M1 \9 ~5 p3 P- N& @5 [. i/ E* P/ [  Q) E3 n% y
另外一个小建议,就是move,所有的move都可以这样1 c% T- f) n& R* _; Y
if not move() then debug end1 C+ p0 R4 ?! W7 t6 c' ?
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# h, B* g7 E5 splant simulation中的free libraries有AGV模板,
+ s% u$ y" a4 v里面也有案例。/ r6 ?, s0 n2 H: Z# g) g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 G. s4 K+ y5 p# b
# Y+ R3 }& Q) b8 A2 |0 t
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 l- h, ?( T( i6 h9 T/ m' H2 W9 K$ H4 K  I. X: M. I4 G5 ^4 f' X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ {% i) F( |" a8 m* A' ?7 b$ o这是AGV_putin中arrive的method。3 `1 ?; d" v; n; s
3 f$ ]1 a# G5 {% Z* {8 P
当到达物料速度越高时,这个报警更多,

3 s, J6 M7 p- j- P& c另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-1 03:23 , Processed in 0.016810 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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