设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7451|回复: 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'8 a7 y# h' k% [4 u; Q, x2 p
*/
; _+ q$ C$ P' D$ o/ x$ r9 Uis
1 \# V2 H. k1 }; o% q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  ^9 U! t. |0 W* r4 B: N% A
do5 a6 e- r4 f' m# `1 T1 _* l
        Lan := rootfolder.Internal.Tools.AOLlanguage;) M4 R+ c7 |5 F( n
        if current = @.Destination -- else return
9 C! q& L& @; z2 P& E        then$ F8 {6 C: i+ b" c
                @.Destination := void;
- d/ [$ Y, F" t/ h- y                if @.occupied then  b3 W7 h7 q' b( K
                        part := @.cont;
& L0 G0 S7 T, i  o3 l                        @.transpOrder := void;/ c" q/ G. y, |7 f# W1 V  |4 F
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 b6 I7 z9 f5 M                                @,root.eventcontroller.simTime);/ X% M* T* j  Z) Q; t5 f
                        @.HasOrder := false;
- K# ?/ w! {0 \1 T- J8 m! _) g                        @.DrivingHome := true;
" R. _) Z; R$ S4 B! a                        rgManager.tryToStartTransOrder;5 k2 X. z4 _7 e6 p8 C8 F
                        if @.Destination = void) c& a0 x) N* m/ C5 j4 M- D/ S
                        then -- no transport order for vehicle @8 e1 P4 J) O$ j4 n- Z; ~
                                @.Destination :=3 v8 c: W9 r  P& n; v
                                rgManager.nearestFreeStation(@,track.~);" K% ~! S6 n  ]! _3 H% U
                                newDirection(@);   & Q- `% u" Q& X' y1 M$ ~' q
                                if @.Destination /= void then9 t! _2 }9 w/ ^( |& k; |
                                        @.Destination.NumReservation :=) O" j2 N9 s+ z/ S1 y  ]
                                        @.Destination.NumReservation + 1;; p& }9 Y* @: f
                                end;
2 `3 n/ K% a* _. P$ H) T                                @.CurrIcon := "drivingHome";& \) s/ Q' u2 L* O$ l" c
                                @.DrivingHome := true;2 Q* h) U" x5 X% C
                        end;' y2 z8 E9 m2 x, r) \# c
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) i3 z1 T2 f2 C/ ^" |, K8 c, W3 j* P
                        part := @.transpOrder;1 |- S/ P1 {1 [9 Z
                        part.move(@);-- load part# H) e  E) t2 [+ p7 t9 h2 P
                        @.CurrIcon := "load";
; G  D) ?6 `% p- ?, c2 D                        GlobalDistObj := part.globDestination;
9 b  ~8 k# `3 h3 i/ I0 U( s7 t                        assignLObj := rgmanager.rgAssignL;
6 ?7 h  b# g. {. E                        row := assignLObj.getRowNo(GlobalDistObj);
) p  \' i7 L( \. [' g                        if Row = -1 then -- since 70, R, {$ `! q" J2 Y( H
                                if lan=1 then
! S5 ]7 K* P( J/ `1 l$ W3 s% ~                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 }3 h- X: u! x4 c7 b                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- o, w2 ?. c, T# L9 U% ]                                else0 W( O/ O3 p* C3 ~0 X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 T2 S# P1 Z9 a. @
                                                to_str("in docking station: \"",?.~.name,"\""));                                , t; y' t, }" L7 F5 p
                                end;
( i5 J2 z; S% @, e1 u% z+ ?& a9 D                        else
% ~' o* f9 E8 h                                @.Destination := assignLObj[1,row];3 |( `9 s9 D# @) J4 a' _# e, n& f$ K) X$ w
                        end;                       
/ E& h  s! M1 y                        newDirection(@);
/ h7 N$ H: M" b2 ?; u                        @.HasOrder := true;. \9 f; g4 C6 ?. P  k
                end;
/ h, `$ @' H! d, _        end;
) S  S8 ]+ W+ a# lend;        -- of the method
+ J% L, L  W& o% q- K: w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! Z5 \1 R1 l6 T# l" t

5 J, W6 D: }8 v9 h: ]- ?这是AGV_putin中arrive的method。
# U( _1 q. p' |5 T: w8 C1 P* ^, p) n7 d0 u
当到达物料速度越高时,这个报警更多,
5 g* E4 k4 ?& E可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* F* y6 Z3 i1 m7 g& [. b* S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, T0 E- q" D5 H4 U7 O6 _# g4 W3 S% z; T* m: i0 c/ t, Q! r
另外一个小建议,就是move,所有的move都可以这样
$ S& T' y% @! cif not move() then debug end9 t. `5 |( e; T
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 q/ c, z; t! l
plant simulation中的free libraries有AGV模板,9 k' b4 A  Z7 q! T& `, ?! u
里面也有案例。
* d5 ^7 H+ W6 Q/ `: z' C$ f我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ K4 c2 E( g* r& ?2 O* y+ \2 e6 p8 @) i! q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 \4 D  K% W) ~' c! u/ u8 ^0 J

5 K% p4 P( T% s  c4 l& J那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. a; w: P5 Z: M* f这是AGV_putin中arrive的method。
/ ~. I& V# {# i3 Z/ m! M
, U4 F- |/ i- G当到达物料速度越高时,这个报警更多,

1 S' \! @  l7 G! B7 k另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-12 05:47 , Processed in 0.018914 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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