设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10039|回复: 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'
% l. ^# n5 C( |; A2 ]4 [4 d9 C: G*/
2 k- y- a, ~* `. ?( N  p+ P! Fis
% j! i) o2 N5 u+ x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- ^) _6 }; K% L& y6 k% f) J# i
do- B- T4 X6 f4 J
        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ F) @' H: Z4 x0 V+ a; T  Y! r        if current = @.Destination -- else return  z8 H; Q+ U* s/ q9 L
        then
  Y( f8 W) b! e# D                @.Destination := void;3 `7 I7 X9 g3 a/ @4 ~0 \
                if @.occupied then
' z/ v* I5 V* {# s# H1 t# \: B                        part := @.cont;9 I: z$ o- y1 x9 q+ @
                        @.transpOrder := void;0 Y9 V( W# y! E9 u0 H$ C/ v( w4 y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" b5 M5 M& Q& k/ V! D1 T6 w( K                                @,root.eventcontroller.simTime);+ v% I0 C0 w4 I* X
                        @.HasOrder := false;
3 G7 D* R0 H% z2 r; U! N% k+ \- }                        @.DrivingHome := true;
# v. O. M: H, i                        rgManager.tryToStartTransOrder;5 ~5 N  B  Y1 B! U9 Z* S0 Y% v
                        if @.Destination = void, C$ V" b% Z; A/ h0 \: i. ?/ ?- q
                        then -- no transport order for vehicle @" F+ y" u: E$ a+ K
                                @.Destination :=, ]8 A; Z3 X6 i
                                rgManager.nearestFreeStation(@,track.~);
0 s% k8 p* z( [1 K6 I                                newDirection(@);   
& V; z# m9 j7 a" W                                if @.Destination /= void then
! s$ }) m; e  ~4 }0 c                                        @.Destination.NumReservation :=
2 |0 Y1 ^9 Y* E6 R                                        @.Destination.NumReservation + 1;
7 `; X: _+ X$ d, g                                end;# S& q4 L: M8 }  N- T0 Y' `8 r1 W
                                @.CurrIcon := "drivingHome";6 n9 s5 g* {* O; L9 q% J9 N
                                @.DrivingHome := true;
: p/ N4 W, o2 ]. k                        end;" B: |$ e0 P% d% [( y5 w
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( C6 Z3 j, b' s, L2 H" Q                        part := @.transpOrder;) z) `/ H3 p# ~& H; p
                        part.move(@);-- load part
/ m$ m# k' Y4 {2 G                        @.CurrIcon := "load";
2 ?; Y' K8 I  y& `9 e& _                        GlobalDistObj := part.globDestination;! g4 X- J* R+ l$ Z" W
                        assignLObj := rgmanager.rgAssignL;
' X, ^) Q6 x9 R% ?$ `! K                        row := assignLObj.getRowNo(GlobalDistObj);1 ]* o6 S. B+ X
                        if Row = -1 then -- since 70
: C; Q$ B2 x% u. G2 a# A: {                                if lan=1 then
4 g# E5 b6 I7 I7 e6 ~. J8 ?" Y( x: D# l                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  @' x# p, p- D# n                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, R1 ]' T9 q( F* f) ]; S                                else
7 j# m4 R* z# j- ?" o+ G" t* C' }                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 P! N; S/ I3 G+ r! p                                                to_str("in docking station: \"",?.~.name,"\""));                                / Q6 F; @1 D2 u1 E
                                end;  M# ]5 J5 P' c4 g
                        else
7 [+ X( B% {2 _" R- W6 ?                                @.Destination := assignLObj[1,row];
/ C  K" s7 J/ j1 F) z9 q                        end;                        , u* s  K9 o8 t1 D
                        newDirection(@);
- Q( G$ s( ~9 B& q7 d                        @.HasOrder := true;
3 l) p# w; r6 K* X                end;$ s& z2 E+ p1 ]$ @' I% W1 Q
        end;  z6 v8 x0 [& ]+ r4 M: }
end;        -- of the method
$ v, N6 s0 q7 [1 j3 V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; Q, S. G& O$ f6 n+ f6 W+ e5 \3 ~: {. m# q& d" }* D2 |) n
这是AGV_putin中arrive的method。
% _0 _( y8 w) j- M! E- o* s! W: A9 O- [* ^- V, @) d. ^$ p" m
当到达物料速度越高时,这个报警更多,2 {# k% H- N: [9 O- G; i( v5 K. z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 i$ }- B7 e( E+ [$ }
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- ~6 d8 ~3 `3 ?5 J% U& [4 V1 p7 x1 e- G  h1 h% e4 A
另外一个小建议,就是move,所有的move都可以这样! y  P9 f% m% [+ {( o; f$ J
if not move() then debug end
' N. o, Q9 H* z. r3 i; o6 ~0 w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 u6 k% h4 N, E: M+ W4 S( ?1 m" l3 Gplant simulation中的free libraries有AGV模板,2 e2 F4 K6 ^' x
里面也有案例。
( F$ @* u/ P- g1 |我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- M* _6 G4 {+ C% r2 a! n$ ?$ p0 u; o

! [" s: _3 J% ~8 U3 U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; V( D+ |( W/ Y9 I, J  N: r

1 N  i9 G- U/ ^% P! M$ Z" p+ o; ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ H7 A# h) Q% b这是AGV_putin中arrive的method。$ p( G+ t. [' w! B5 `

: X8 k7 s* I( r  k) m当到达物料速度越高时,这个报警更多,

- O1 `( G# A" s& W8 F  ^3 |另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-9 07:26 , Processed in 0.018196 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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