设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7088|回复: 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'0 z3 i, y4 ]2 w9 w, o  r4 b- ?
*/
( u/ W% p' k; a0 }1 Qis4 [2 ?9 v* M# K- t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ u% C+ c% n" E$ A: e! y( h+ }# Zdo/ ~+ g. X: c5 S7 M
        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 l! T) s9 _5 d        if current = @.Destination -- else return
( {* x& j# V7 O! ]5 c/ i0 J, x        then
( G2 {! O3 H3 @& t; T/ @                @.Destination := void;
3 ^1 Z5 `% P* \2 x, J; U; \8 s                if @.occupied then1 a2 Z( U9 w0 \0 l8 L; G  A
                        part := @.cont;3 d: J1 r! k% @+ s" t, P0 n
                        @.transpOrder := void;
" X; i0 e# u# x) U. Z/ P2 y0 q5 c                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( P0 B6 I- b4 K                                @,root.eventcontroller.simTime);* ?/ Y9 `5 B6 t8 }- @, T' a
                        @.HasOrder := false;3 E) z0 E, G5 N
                        @.DrivingHome := true;
' ^9 q9 A5 u1 R5 e/ y: t2 H                        rgManager.tryToStartTransOrder;2 {' c- o% }$ p' ^1 U# V4 [& L
                        if @.Destination = void" O0 N- @% [. H9 h) O
                        then -- no transport order for vehicle @4 V% X* J* F# A6 R& [3 Z+ k( I: p
                                @.Destination :=
/ F7 @6 y! H/ y" N& a                                rgManager.nearestFreeStation(@,track.~);
/ a4 x; Q, W8 h: J: h  _                                newDirection(@);   1 H. x  x* \$ U" n2 R% k
                                if @.Destination /= void then8 C/ G( Z" I2 x  ]0 h- x& e0 k: x2 x
                                        @.Destination.NumReservation :=
" i& i; c' l! g# W+ D2 h                                        @.Destination.NumReservation + 1;0 m; I; |4 i/ q. e' ^) k
                                end;
6 b! @5 w* ]! H0 P                                @.CurrIcon := "drivingHome";* B' Y+ [7 f% c9 a; C$ S
                                @.DrivingHome := true;
3 q. X/ Q: Z, a                        end;
* z2 u3 n6 X  A: e                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* B2 P" Z' P4 O. _; o* V                        part := @.transpOrder;8 c0 e" m6 _! y  T0 w
                        part.move(@);-- load part
; w5 K9 k( A# ?# I- D8 B                        @.CurrIcon := "load";7 y# R1 m* M) X
                        GlobalDistObj := part.globDestination;
& d# p% W' {1 p5 z* \                        assignLObj := rgmanager.rgAssignL;
, F+ Y% A1 {% u0 n+ w  ?                        row := assignLObj.getRowNo(GlobalDistObj);
& m3 _* c: ^# g' H" m                        if Row = -1 then -- since 70' s4 e3 Q5 V# I; B# k
                                if lan=1 then
* ?3 k8 q* P4 V3 p) M7 t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ e6 L$ t1 V- Q$ [  u$ Z/ [6 k                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 M6 j2 F0 g; ^1 U
                                else
. b3 P+ \1 @. U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, g) c6 v5 H* T+ q) x
                                                to_str("in docking station: \"",?.~.name,"\""));                                8 q9 }2 B. `! Z2 ^3 ^/ `0 T
                                end;, H6 P1 h; a6 T6 N& `
                        else% F% m0 s9 B6 m* {- G' p1 d
                                @.Destination := assignLObj[1,row];
* b8 s6 Y" ^7 e- X/ W. b6 J+ K! _( g                        end;                       
" U3 B4 o, q9 e% c0 s, Z$ ?9 ~' R$ f                        newDirection(@);
8 u0 a1 ^5 U# d! Z% e                        @.HasOrder := true;3 Q) @- b4 u, w6 h
                end;) W6 i2 d* }) u, B$ m
        end;: {  q! @3 a- |' G9 |
end;        -- of the method. U% ]/ K" S4 _3 ~8 t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( r, k% U+ _+ A+ _) q

3 [" c. w3 c$ R+ P. W这是AGV_putin中arrive的method。5 F9 k6 ]# G+ o& \) m
. O2 i, e, v5 I. j8 Y
当到达物料速度越高时,这个报警更多,0 `8 V) J3 L  n0 U% t
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 T' i6 N; |7 E; I; T, c+ D% m2 C  \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 ^6 l* p9 v) @
- v4 ~5 d1 H; K1 _$ d
另外一个小建议,就是move,所有的move都可以这样9 l, A: _6 U5 p0 M
if not move() then debug end
8 R% |& r6 y4 P4 v; a# t4 l8 x: x1 b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% I5 u# J, h( J7 _( U7 t
plant simulation中的free libraries有AGV模板,5 m3 g) j6 v* n% q7 C/ Y4 V6 L9 ~
里面也有案例。
4 l% a: L8 o" h# C+ f0 J; e我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; p; k3 E% X# E7 y1 d5 E
  p1 f8 i! c" h0 r& o我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 E: [0 G: W4 O- h0 C2 N
; d  a1 n0 L6 x, p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 P" g' S% n" {. J8 g2 a这是AGV_putin中arrive的method。
# U1 F1 p: k2 O! P6 E/ k' D
) r: W0 X$ w  n* i7 F8 m$ W当到达物料速度越高时,这个报警更多,
2 _; }- \7 n8 q7 z. l" h( W1 L
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 12:10 , Processed in 0.018732 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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