设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9134|回复: 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'
6 `0 A9 P4 }- E% b- C' u*/
# S! {  o+ Y/ N% ^  Y* c: Cis
, U/ `1 q0 r6 i! B5 ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. C# R3 J+ k6 Y
do2 v& |0 i% |& N9 b. p
        Lan := rootfolder.Internal.Tools.AOLlanguage;
* L- ?& C# T. z  b; r, v        if current = @.Destination -- else return. V$ r, r  e- R: Y' \" y5 \# @( a
        then
" `5 k( @9 ^. D0 y5 E! J& ~# t                @.Destination := void;. ~9 b( |$ N4 M/ H% e& d' d
                if @.occupied then! d- u4 o7 m, }+ b' w& g& h/ K
                        part := @.cont;
7 `9 B* {; B, k0 \' L                        @.transpOrder := void;* Y4 \8 [& j) [5 T: c, I4 O% i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) j9 K1 I# y  @' O% i                                @,root.eventcontroller.simTime);
4 h4 S  V( ?: W: m/ [. p                        @.HasOrder := false;
; X1 A# \6 Q0 w/ X5 D                        @.DrivingHome := true;3 M' h3 O, C. \' E6 b. k: e# G
                        rgManager.tryToStartTransOrder;, E/ e8 Q) y/ ]7 q8 S2 f$ f) [/ n# D& O
                        if @.Destination = void  K( R+ Y0 m' A, s8 b! R8 i
                        then -- no transport order for vehicle @0 x( ]; Z1 c- R- B0 I: e* h* ]
                                @.Destination :=
  o, R8 d4 z( x" H( t, P6 }' a                                rgManager.nearestFreeStation(@,track.~);: c( W" N) C' W0 U' c
                                newDirection(@);   # T0 W; q0 [5 l
                                if @.Destination /= void then* T# F! X2 \5 _
                                        @.Destination.NumReservation :=
. c& A, ~+ l8 f( a2 v1 u                                        @.Destination.NumReservation + 1;5 r( D( M6 Z# r8 B
                                end;6 w3 i  r9 D0 q9 S
                                @.CurrIcon := "drivingHome";
1 F# L+ A0 g5 B$ q, n# A# W; R                                @.DrivingHome := true;  G! F$ X* M4 j) w" ?: v# _* D) D. Y9 _0 ~
                        end;$ O1 t; _0 ?- Q4 _7 g! I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  a# R) G$ H- [9 k3 c  ?( ?+ u3 A                        part := @.transpOrder;
" o4 o& O: b0 a# d$ x  r                        part.move(@);-- load part
. T# f1 j/ e: F                        @.CurrIcon := "load";8 Q$ [, r2 J5 ], U: m' v4 n
                        GlobalDistObj := part.globDestination;; H+ s3 ~, l/ A
                        assignLObj := rgmanager.rgAssignL;
4 L9 Y+ _7 ]& ?. {6 p* n                        row := assignLObj.getRowNo(GlobalDistObj);
1 V  |0 l! [" `- A0 }; j7 Y5 T" N                        if Row = -1 then -- since 70
* [( e6 g& v& ]3 Y% r3 [                                if lan=1 then- Q& D; J2 e0 X# s. D7 }
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. O; A- ^1 U# a( ~+ g                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 |( o0 b8 c! a( ?" G) f
                                else
/ @! j) O* t- V. T4 ~: u                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# Y+ u; l7 }- U; O( F                                                to_str("in docking station: \"",?.~.name,"\""));                               
. j( L* h& V, v' G+ }5 o0 ~                                end;# @- q' n- r6 T
                        else, `) g7 `( u$ a: L4 x
                                @.Destination := assignLObj[1,row];
( G! U0 E' L" G* G                        end;                       
: u3 W6 Y$ K+ j. P                        newDirection(@);
  P8 ~8 W* I, E7 T7 @# q) R                        @.HasOrder := true;
9 ^: P; f6 @* u9 j2 {                end;
  H3 \2 Q5 I: D% U        end;
/ U1 c, f6 M0 Bend;        -- of the method9 Y$ i9 }' h$ G. A8 d+ l; `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ B6 ?$ k, A# j( ?% {+ A$ c1 x+ i& o* s1 ~7 C+ H, v; o, m
这是AGV_putin中arrive的method。) l/ d6 O7 D3 B: |* Q, Z
3 E4 x) G4 y$ q0 q0 f2 ~
当到达物料速度越高时,这个报警更多,# e: M& s: }2 C6 v& l* @
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! k2 p8 c8 K& J
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 x! X7 E, `1 H
2 J) I- R. z* L$ p' ?* r1 U- G) O
另外一个小建议,就是move,所有的move都可以这样
# @2 w8 q! v- u' @  {1 Z4 bif not move() then debug end
- w1 x: `& b3 U" F2 C' E这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% o( \' e' k8 N. \' m: c
plant simulation中的free libraries有AGV模板,
$ r! M# i0 a% t里面也有案例。
1 ~% P! w$ N8 `) _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! s- U0 N; u$ \
( u, R3 D& ^, [( [我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; d7 K; `$ |' N- b8 b
2 H. \9 B6 N2 D" k% Z& y  X那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   t% U' w$ w& H$ V: ]$ A# }6 @) F
这是AGV_putin中arrive的method。
, V, S: R" c* Z
# x: ]" j' E- o. g- Q1 o当到达物料速度越高时,这个报警更多,

  |; q, \4 ~2 c& T% s另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-15 19:14 , Processed in 0.019976 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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