设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10008|回复: 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'( ?7 G9 `  f& d7 Z' T6 r
*/3 F/ e" V3 A! g$ `* _3 K" [' j  s0 _$ L, m
is
7 V( g. M/ f, i& b* x8 x/ ^+ O& W        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 i+ J! m' j- D  r) Jdo
# ^" G* a  }$ Q7 c2 Z. u        Lan := rootfolder.Internal.Tools.AOLlanguage;% K8 _' H  J; @2 I, c* l
        if current = @.Destination -- else return
+ r1 E! Y1 Q- o1 v        then5 L; q$ ^! X5 L$ e
                @.Destination := void;
8 t# v, ?3 _+ J                if @.occupied then
; w+ J$ r/ [9 ]                        part := @.cont;
; _  N4 f$ f3 ~: |8 @( n9 O, E                        @.transpOrder := void;
" l/ e! z7 B- K8 S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 z! b  _( G( x% F0 h                                @,root.eventcontroller.simTime);
! }& F/ f0 ~/ b                        @.HasOrder := false;. d) Z! p! y3 m) H
                        @.DrivingHome := true;
5 K3 z1 C+ w3 K) a5 L. K- M' k                        rgManager.tryToStartTransOrder;9 T3 r2 e0 e3 c' j) f8 ]
                        if @.Destination = void0 Q2 D7 W8 j( {" j% D5 Z% T/ y
                        then -- no transport order for vehicle @
5 w6 _4 y: b* M                                @.Destination :=
8 L0 b" [9 I2 _, t  ?8 D                                rgManager.nearestFreeStation(@,track.~);
4 i; O& S+ i4 k                                newDirection(@);   
: n' C5 t; N) f& }* a/ ?( e/ A                                if @.Destination /= void then
6 H! N- r+ T/ \: l$ N7 ?" M* f                                        @.Destination.NumReservation :=- X9 l1 n6 f2 D1 N; P( X) ?
                                        @.Destination.NumReservation + 1;: F; H4 \$ I6 s- f0 E9 O6 f
                                end;4 V7 w7 b6 F5 @$ C" H' }' O
                                @.CurrIcon := "drivingHome";4 y$ I9 Z+ z6 k6 _. H: w
                                @.DrivingHome := true;4 F% ^% g1 ^. s
                        end;0 @* v! U/ ?" c( j& V9 x
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 ~# C9 H* Y8 G5 o1 l
                        part := @.transpOrder;! A4 U/ S8 W3 P3 y
                        part.move(@);-- load part* o- z! Z7 ~/ S* k* k5 [% ~
                        @.CurrIcon := "load";2 {) h1 N9 r" @' ]* |0 T2 v
                        GlobalDistObj := part.globDestination;8 F. X; \5 K- H* W
                        assignLObj := rgmanager.rgAssignL;3 ]1 ~4 p: P5 ~6 X: ]' F) \+ D
                        row := assignLObj.getRowNo(GlobalDistObj);% j; C8 ~- {0 A. T
                        if Row = -1 then -- since 70+ h% a* m& `0 c. |; z* d( G
                                if lan=1 then
' y1 @' b: a4 q$ M3 B3 o                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ [2 r" \2 Z% i! q8 S                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 L, t; Z8 t% _0 Y1 _# ^& p. f
                                else
$ a7 J' x: \0 d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, U- I3 v* z6 u4 S1 @, _8 b" ^- b                                                to_str("in docking station: \"",?.~.name,"\""));                                6 Z& F. P4 o3 V! d
                                end;8 i* D( E+ Y! o0 K5 D8 u
                        else
9 Z# l8 ?4 f& H6 z: Q& K                                @.Destination := assignLObj[1,row];
( s2 G. W4 @; o+ o3 M                        end;                       
4 h6 `0 N3 A2 V                        newDirection(@);: D9 M3 t+ h# i5 v) Y
                        @.HasOrder := true;+ r' l' a: }! X0 H$ U3 _& t
                end;
  Q/ Q9 J2 V) M2 @  B        end;
' _: I  g& H" ]9 k* ]. E% j/ `end;        -- of the method7 [/ X6 [1 e  k+ @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 ?! L4 d' @& t6 m/ _2 F& Z1 f

  r3 h- o/ u, ^$ q' N# t: _这是AGV_putin中arrive的method。3 ^, F7 J; g0 k& c: ^7 a
; @# T& \# F1 V  G+ F4 ^
当到达物料速度越高时,这个报警更多,
3 k* p4 c" |# c' [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 r0 {; F8 p$ G' {* R4 `
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ S: F$ \, P: c% E$ s
  N$ }8 ?$ Z9 H; _- h/ r另外一个小建议,就是move,所有的move都可以这样
5 e" j+ O2 [$ `if not move() then debug end- _8 Y0 ?; {& L1 X+ l
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ Q( E! X2 ~8 Z
plant simulation中的free libraries有AGV模板,: W7 y$ u' e4 D% O7 ]
里面也有案例。
/ v6 Y7 S+ T, y1 S6 h6 s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ u4 ]9 K! ?4 P# c( a* C) M' J6 s) G8 ]: s, W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 @0 l0 f2 g6 B9 y* j% a

0 q! Z* w" n; r$ [1 ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( m% l& O8 \& P, }2 L+ n. ^这是AGV_putin中arrive的method。) P' I; e6 z( ~, V" I4 Z9 {' B

1 I( D% b6 U; l7 N4 R4 C当到达物料速度越高时,这个报警更多,
, ~2 @3 U. g! _# g, q2 V4 B
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-7 04:23 , Processed in 0.016261 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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