设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6304|回复: 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'
* W/ O( u; B( x5 `* O*/
7 A2 C; a* \+ g4 |" X# j+ A# Wis( l+ B( L. U4 D; q" U
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 p! l. e) T$ Y  \! T* a% K/ C. vdo! P! H7 X& _3 u
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 W/ z) M: D' M' A5 d7 N2 ?
        if current = @.Destination -- else return
# P' z* M0 g( U9 T& p        then7 ^0 }( x% f$ j
                @.Destination := void;
& m+ \" M5 n/ d& G6 U                if @.occupied then
* W* m8 B# K% G) d* @, T                        part := @.cont;
8 _5 K& y; S6 O* Z0 P* K                        @.transpOrder := void;
7 I( `. d: j+ p$ B' n' h1 V                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 Q& g. n' b2 s8 w
                                @,root.eventcontroller.simTime);5 l. x# ~; G: s7 Y- I0 l
                        @.HasOrder := false;4 K- n; }+ W0 k" ^8 s7 D. ]
                        @.DrivingHome := true;
9 _  K" Z  Z2 \7 B                        rgManager.tryToStartTransOrder;
% r! d6 h) j+ J  k: r: g$ n% i  |                        if @.Destination = void
  W+ C+ ?" [& \  C  N! @2 m                        then -- no transport order for vehicle @) `: ]6 z, k( j! {
                                @.Destination :=
# D. N3 `5 g$ ?+ Q" I                                rgManager.nearestFreeStation(@,track.~);1 t* V5 e5 k  k( q1 F
                                newDirection(@);   
& N3 Q  ?6 |/ N" K2 q" `8 y                                if @.Destination /= void then
" Z$ Z% S% Q, H: R2 }1 y                                        @.Destination.NumReservation :=1 Q& [+ u% `& d5 t" @3 C
                                        @.Destination.NumReservation + 1;, e3 f" b5 R; S. z# H( {5 u. ]% g+ I
                                end;
: A- F4 R- q- L( u1 e# I* w                                @.CurrIcon := "drivingHome";
9 {) E" R& ]% p! v, [$ v7 n                                @.DrivingHome := true;
/ \) g( f' F3 v  _2 H5 H$ l1 p" W                        end;
0 [" l4 h) j& \; I5 [                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' Y: ^. u1 o4 y6 \9 b4 ]  z0 k- @
                        part := @.transpOrder;
: s9 B1 f: a# K9 ?5 s1 I; |* U                        part.move(@);-- load part  C7 h+ {# ]! y9 d; {. u8 K
                        @.CurrIcon := "load";, k; w- ~7 l5 F8 Z: C
                        GlobalDistObj := part.globDestination;
+ v* `# R$ ~9 p6 i2 N+ t                        assignLObj := rgmanager.rgAssignL;
' z5 W/ m4 R* I0 i3 n0 A" c                        row := assignLObj.getRowNo(GlobalDistObj);" Z* S. l) O8 h
                        if Row = -1 then -- since 70
6 e  i5 [0 z2 Z  r8 i: ?7 s                                if lan=1 then
, O8 v' A  u7 F! r# l$ T& m                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) Y4 k) W- Z, l+ A                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( T* H/ s% I  M4 d; R                                else( |2 ^: }; J( }5 X% V8 x+ W" e9 D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 K$ k( ?# P2 z, U" h/ Z
                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 i" r% K% s2 `" m8 z; `; K                                end;
5 I, Q: @2 C4 U5 O% n                        else
. i6 f/ C# v8 d$ X- h0 q                                @.Destination := assignLObj[1,row];
! s0 B! N7 w( x0 x6 q8 F                        end;                       
& o& C: Z$ W2 }; X+ P                        newDirection(@);1 X9 _8 S. ?" S8 ?. u7 h. o
                        @.HasOrder := true;8 r2 F# i+ O3 \- b+ @2 L+ M
                end;
1 J  ]& c5 B1 w! V! q2 y        end;
" u& Z2 l! ~& T% I4 _0 U: I" aend;        -- of the method- K9 k) r- w$ w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / A! J% _- Y- B; v8 R1 X/ z
# X; p& s( Q* w% F0 |5 p4 t
这是AGV_putin中arrive的method。6 T6 j2 q* ~1 Y7 @$ N3 y9 j

! m1 [" i; w( b/ ]当到达物料速度越高时,这个报警更多,
" U. W7 S$ p$ [" F/ X8 I/ e% N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 O$ X6 }  @& A% i! I2 p+ Q1 Y! N
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  X. P5 T4 v7 r5 O
* P: A7 U7 N7 U) h
另外一个小建议,就是move,所有的move都可以这样
) `7 @6 m: ]2 W- t% E* N' Nif not move() then debug end( V2 R  f- Z- }, o! E$ W" _3 b
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% _( h  Q$ I* S) k$ }plant simulation中的free libraries有AGV模板,
. B; z2 F2 O2 y4 q9 l" g里面也有案例。5 [/ c0 @1 Q1 t5 V, s$ e+ T/ M* {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& E' h4 K* |! Z* h/ E- w& t; S
! t  e5 E2 a) P! B. Y& G/ |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % A2 M0 o6 G9 t6 \3 H

. d  S7 I0 y- {2 A, r' }/ z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) {& ~+ ~8 i% `+ V
这是AGV_putin中arrive的method。7 E2 g) R  q+ V( k0 _

' b+ d/ S8 O, ?+ p- W9 |+ K8 W当到达物料速度越高时,这个报警更多,

& C+ ^4 c2 M8 @* w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-29 19:56 , Processed in 0.015397 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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