设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7785|回复: 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'
' k' O. l% a0 F% Q: b4 @*/
# S) g+ U- i8 S0 e1 l; I3 M! pis
# N5 P0 E! x! n8 G2 G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* M* w! f% D. K
do
! ]' }, |! k% m9 O4 p  [% c        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 k$ q% G9 v; L' y( d( H        if current = @.Destination -- else return
+ y# G) D6 h2 _& |# w; N        then
" P9 P' {1 u' l! b& V$ ~, a                @.Destination := void;
5 x6 j# P* S/ R$ ]                if @.occupied then1 p8 x8 j; x$ m0 K/ `; \0 x8 D+ u
                        part := @.cont;5 I2 e; H( r+ [5 n) ~. s: B& R% P
                        @.transpOrder := void;
  N  I( ]. ?0 m9 L, e0 J                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: q5 x; j6 g, i6 g                                @,root.eventcontroller.simTime);' a) @! X- j/ L6 L3 ^2 x
                        @.HasOrder := false;
  h- ?  F: p3 I5 `0 O0 \) t                        @.DrivingHome := true;4 E7 Y: B, q! R5 k* u/ K/ w
                        rgManager.tryToStartTransOrder;- b2 E, y0 \( O$ o9 X
                        if @.Destination = void  d( F5 @: K& d
                        then -- no transport order for vehicle @
* |8 ]! R% p* ]% ]( e                                @.Destination :=# w/ b0 ~* V7 a6 A# Q! s0 l: x& P
                                rgManager.nearestFreeStation(@,track.~);0 D! u/ p' D3 i) b
                                newDirection(@);   4 a( K, S1 t) O; v7 h8 P( B
                                if @.Destination /= void then7 e) ?! C' [  Q! ^1 B
                                        @.Destination.NumReservation :=- A" X+ e$ q! @: I$ @
                                        @.Destination.NumReservation + 1;
0 ?" A, B0 f: O' o                                end;4 b$ E. k- S. D: f6 h
                                @.CurrIcon := "drivingHome";3 K- {. c- b" A' S5 S; c) A
                                @.DrivingHome := true;" o0 O* E3 o. Y, T0 e. h& E
                        end;8 ]+ O+ G+ V/ H& u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% L3 T5 b& ~; a* L9 M                        part := @.transpOrder;
+ g( }2 Y) [" y% a                        part.move(@);-- load part) Q" g9 M6 V; w6 r) E
                        @.CurrIcon := "load";/ Y  v4 f; S1 ?; B
                        GlobalDistObj := part.globDestination;# h# e  D5 I. z* B3 ^( {
                        assignLObj := rgmanager.rgAssignL;& a7 t  H$ w9 N
                        row := assignLObj.getRowNo(GlobalDistObj);
1 E* ?+ Z1 p+ W# r& L1 o  p                        if Row = -1 then -- since 705 Q4 A+ _4 o6 ]) S9 }6 C
                                if lan=1 then
& m6 L0 u; h1 |0 Q! ?6 j+ R: `5 g% X! n                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: O0 Z+ z: [0 b1 h, r- W2 w( v                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ i' I# R4 U2 w! ?0 b& B0 I                                else
: r: u+ a5 _6 H# Q. B3 C                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ I8 X8 C) i5 R# a! `0 i5 I0 f                                                to_str("in docking station: \"",?.~.name,"\""));                                ' ?, M) X' {$ ]9 I) ]) y
                                end;& Z/ d& |# S9 D0 M9 ~5 U2 }
                        else
7 O. j/ T  M: p, M2 U9 x& P                                @.Destination := assignLObj[1,row];9 v0 U/ ]. h1 o) j! {3 n: |: f! [
                        end;                        / U- R6 n  V- Y" p4 {$ {
                        newDirection(@);
& D' z6 r$ t+ Z: Y3 Z' p: v& c                        @.HasOrder := true;
) u4 S1 K* y% [& n" p                end;$ \6 I6 r* L3 w; D& L4 ~" ^
        end;
+ U/ z6 w* @+ c1 x) I4 Oend;        -- of the method
; ?5 G1 p4 B8 N8 y2 Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 E9 a# S. x4 c" M' y- [& |# P6 ]! k; h9 _) N
这是AGV_putin中arrive的method。) A& X) f4 a  M
6 V! R5 u9 e# ^/ o6 R
当到达物料速度越高时,这个报警更多,7 G7 D" m6 A# V+ q1 k3 Z( Y/ [0 a
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: W6 ^+ L' n; ?9 J  N% t+ O$ {1 `; r0 R程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 P! [* J1 J0 d6 z0 t
  E7 `. M/ J* U# z
另外一个小建议,就是move,所有的move都可以这样
$ t6 ?' {( _* R; [if not move() then debug end% |1 o0 Z, c8 i' _+ g$ W
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. J) A" p8 }; U, ~
plant simulation中的free libraries有AGV模板,& y8 E  B7 I3 n- F* m
里面也有案例。1 D$ r+ u' q( C: z) D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 L" X0 x" ~- a& _2 Q; ~
2 z6 S) ?6 J$ J0 k( g  Y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 f* ?: m: W# m. ?( {
4 z, z  ]2 U/ s0 u: B4 _. v: V
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # ?  S2 {! X5 D
这是AGV_putin中arrive的method。, v+ y% _8 Q; x" v

$ e7 R, o) s( d* V& I9 I: Z当到达物料速度越高时,这个报警更多,
: d" E9 E: G* r7 R4 Q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-29 06:31 , Processed in 0.017901 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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