设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9933|回复: 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'$ |9 s( h* O- W
*/; X7 I0 Z5 b; d/ [9 {
is' w) s2 D( f+ b' `! }2 @% N6 C) E: b
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' o2 c6 a, ^* T' @' F. S2 a; Sdo
& o1 x0 R1 Z, F; Q' Y$ @1 C        Lan := rootfolder.Internal.Tools.AOLlanguage;
& e" e: ?. W# Y5 V        if current = @.Destination -- else return
5 x5 G. m) L- ~6 @/ ^7 V1 E; q        then( V% u8 a8 L# ]- L" Q: G0 y  U
                @.Destination := void;6 w' R, _6 I/ a  T9 g: d; W3 `
                if @.occupied then- u% b6 P6 ~5 u: O
                        part := @.cont;
/ I' v6 O5 l& m4 g                        @.transpOrder := void;, z( |3 L7 L# ]. \
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 Y7 {, I, {) Y7 h
                                @,root.eventcontroller.simTime);8 h) E" l9 B0 J
                        @.HasOrder := false;* Y' Z" A- C  |6 p' c* _1 J% y$ P
                        @.DrivingHome := true;$ M* `# O9 I& c9 y7 u0 t
                        rgManager.tryToStartTransOrder;' c. z6 W$ X; n% ^9 h/ Z4 s4 a
                        if @.Destination = void6 v* G- U  [! R9 D1 S9 j! F0 l) c
                        then -- no transport order for vehicle @$ X0 x; y* m8 M1 d5 T" D' N4 t# }
                                @.Destination :=' M( J; U2 {" g1 y9 Z% H& j
                                rgManager.nearestFreeStation(@,track.~);5 _" T; i! [* U# @
                                newDirection(@);   
  y4 v. g) r4 B# }) c0 V, ?" \                                if @.Destination /= void then
" E) N$ M- D  h' i: m8 H) M                                        @.Destination.NumReservation :=
" ?, x" R4 |5 N2 z- y                                        @.Destination.NumReservation + 1;
7 d6 [' g! t1 F- Y0 F3 @0 `                                end;
' A: c% N; `5 I% F3 T                                @.CurrIcon := "drivingHome";6 `* I3 q# H9 P0 J/ f7 @: W7 ~
                                @.DrivingHome := true;  Z# ~$ m+ K& T8 o3 M/ K
                        end;( W( E" H0 L  R% O, T7 h5 y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 a7 ?" ~' y7 W' f
                        part := @.transpOrder;
% D! l+ \# N, s" ]2 S3 C$ }) A  d                        part.move(@);-- load part1 w5 s! d) O( V6 e% l
                        @.CurrIcon := "load";
3 p! I. @2 ?9 F4 n6 R$ f: {( ]1 e! G                        GlobalDistObj := part.globDestination;7 Z) H7 u3 {& P% _6 g& J1 r0 ?: M) I
                        assignLObj := rgmanager.rgAssignL;
: [8 w) ]7 G6 n                        row := assignLObj.getRowNo(GlobalDistObj);
" {3 B1 S4 K1 C% X  a                        if Row = -1 then -- since 70
' C. k- m! h% n# U7 ?+ K* v4 z                                if lan=1 then
% _" s% p+ M$ c. C0 Z1 o                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ o* D5 u, f$ x  T0 L: g1 y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));% w, w2 j6 ]+ |* p' T" e
                                else1 q& r$ ^# p+ u7 g
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ L, p$ J1 o; `& C
                                                to_str("in docking station: \"",?.~.name,"\""));                                8 [8 Y6 F$ W7 f9 a
                                end;7 G4 a! Z; x, f5 O+ T
                        else
, C7 ]' r/ i* J: K2 X  o                                @.Destination := assignLObj[1,row];
* G7 L0 ]' q* T# z9 R% @' i                        end;                        , r! ^0 H! U. F/ h  R
                        newDirection(@);5 ?; a/ ?5 B; Z# V7 g& g
                        @.HasOrder := true;
2 g! T& t- d' h9 K                end;
2 }; ~. r' Z( v( L        end;+ e+ O! a6 c' @; H7 B* u
end;        -- of the method& K3 L( Z/ B) \# U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 ]& L+ E6 x' J* ?; D, O( T
- P% r7 r3 V% H0 ?, S3 c: q这是AGV_putin中arrive的method。2 ^- d6 _4 a4 O  j& Q: t: M( y# A

; D& j- }4 m, y- {. L4 B当到达物料速度越高时,这个报警更多,
, ?( Z/ L: L1 s可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  F/ p" j( t) L& N$ x8 j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# q0 e4 n* l% q; C* G
5 O# {# [! B: h4 b2 Z* S
另外一个小建议,就是move,所有的move都可以这样* l! T0 W% R- z( O$ n: n+ u
if not move() then debug end
& J* \# B+ R2 m  |6 G0 T: U这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。- n+ i* o9 O  O4 [+ F# S; K
plant simulation中的free libraries有AGV模板,
, q% b% ?0 P9 m- {8 K  ^里面也有案例。
, L/ ?4 o  J( v8 M" [  K我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# V: f- j! N! r* W
( M* q- a8 B5 Z) C: Z. X& q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 H/ c! \$ d& u& X3 ?! _/ J
. X. u7 \9 j7 m
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) L: d1 m" q6 o  U  T5 K这是AGV_putin中arrive的method。
% n' h. X  N# I" c' G
6 T. z: l* z" a! I6 y当到达物料速度越高时,这个报警更多,
+ `  k" }: e8 F- d3 B* e
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-3 03:58 , Processed in 0.026420 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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