设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8520|回复: 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'. F3 Q: K, J: C$ P
*/4 ?5 _0 j5 h7 P- L! f# U1 o: D6 x
is
9 r: A& |8 n9 L4 f6 g6 ~- p% j( N        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& Q- L& y  t& A0 v$ l( _: }do
6 C0 ~+ D. H1 a1 ?        Lan := rootfolder.Internal.Tools.AOLlanguage;1 a( r! e1 y6 }8 N# `2 a6 u
        if current = @.Destination -- else return5 r' k$ [: }# U- z. s) d1 {: o  `
        then3 @: p0 L1 T: H/ d3 m) L$ d6 e
                @.Destination := void;
; b  {  V' |4 I                if @.occupied then
: m/ ]2 q# @- N" R                        part := @.cont;7 q- c% N! ?4 k0 Q" E
                        @.transpOrder := void;
0 f3 u$ |9 w: I. w! Z# G                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ |' @, r  j' x1 n0 d- d
                                @,root.eventcontroller.simTime);# A) t& l, e$ D, y8 A9 k: ?
                        @.HasOrder := false;- S+ g5 Y  S3 r/ ]4 a4 S/ f+ {
                        @.DrivingHome := true;0 z: }, j" h7 M
                        rgManager.tryToStartTransOrder;
6 G4 V, C# g7 V# P) S                        if @.Destination = void
9 t9 E- Z" z$ g( W) Z2 [& f# F7 K                        then -- no transport order for vehicle @/ d0 B1 t  @! k3 m+ Y2 f, X% f
                                @.Destination :=  q* y) D. d8 J1 P+ w) @" I
                                rgManager.nearestFreeStation(@,track.~);3 P: o, i% z- K0 p
                                newDirection(@);   0 t: F! K0 o' W
                                if @.Destination /= void then
& P6 o* Q! P- b( c0 e2 m( Q                                        @.Destination.NumReservation :=
+ V7 [) D2 o- D0 ~                                        @.Destination.NumReservation + 1;$ f& a% a# P% N, }9 a4 f+ S
                                end;
2 O  [0 v3 o2 |: N$ q" _* F- ]: D% ~                                @.CurrIcon := "drivingHome";
( ~4 C; `+ i* u( i: k                                @.DrivingHome := true;
% v1 A/ k; H! G2 z# E0 c! J                        end;
$ d+ O8 [9 w4 Z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 U( ~6 T% J  ?$ ]+ j8 e$ m
                        part := @.transpOrder;$ M$ T" M  ^- l+ U* |
                        part.move(@);-- load part
2 y: z: E- Q1 O5 `/ }  K                        @.CurrIcon := "load";
2 W  _& J$ O# Q+ a8 v, o                        GlobalDistObj := part.globDestination;
/ _" H% V5 l" E1 v2 c                        assignLObj := rgmanager.rgAssignL;
% ~* C1 w  E, p. v                        row := assignLObj.getRowNo(GlobalDistObj);
' q; `. e  H5 l% t8 O, b5 _8 q; u                        if Row = -1 then -- since 70
* q% @7 Z* n8 _, D' y                                if lan=1 then# e3 y  t+ k/ H& S4 g% O
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 ]+ }/ P5 q4 z" y+ i
                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 X: k5 u9 W/ d2 W3 D. g) q0 m3 @
                                else
5 j& z! y% V* N! g+ X+ ?1 n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 z9 Z4 h6 H9 F$ B, q                                                to_str("in docking station: \"",?.~.name,"\""));                               
# H7 F' P4 k1 t: W# ]: q" P                                end;
* p5 e% b. b: Y3 B( A7 J" R# M) D                        else: r1 Q/ c$ B. a9 D' A7 [# s0 _
                                @.Destination := assignLObj[1,row];
7 R* g3 M" O6 ^                        end;                        + o' O% Q: C% R$ i) {
                        newDirection(@);
9 u5 H! w' l: d* y- ]6 V6 M% W                        @.HasOrder := true;
0 R5 o  i: k/ @/ |                end;
6 T, B0 G: I; ?7 l        end;
+ E' `/ {( w$ Aend;        -- of the method
& i. {  A; E* O7 u! x& y/ B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, {* a+ z1 ~0 l; u! x, ^! i+ c& b( f! C6 M! \
这是AGV_putin中arrive的method。) j" ?% b* e( [: I/ @: j
5 \. F) N1 ^' J5 L
当到达物料速度越高时,这个报警更多,! }2 M7 ?9 R& M4 H( |% s0 N2 u) I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- V) ~8 o, E0 B3 s程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 {/ F# v: k1 u( l7 @, \
: A0 I6 b: x" j& q! r9 E# e- q& M另外一个小建议,就是move,所有的move都可以这样6 j; z0 q% S' e$ ^5 H3 Z  _+ E) [
if not move() then debug end
( ~. J) F6 d  w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' i) H  G( D( e: {% j; Q6 n+ F% e
plant simulation中的free libraries有AGV模板,
. l# ]* M* \# n4 n里面也有案例。
: C5 t* A" U, U6 w! x7 t' L* b  K我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& [9 D$ e, M4 O0 P! u& v
& E$ S1 i0 A+ L3 k- @9 T- G
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 X9 W1 U( e% F7 |6 @
+ B  R* v, T8 ^# o" r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( S" f$ L0 j  K0 n$ y5 J
这是AGV_putin中arrive的method。  t  h+ Y& ~$ S  ~6 A/ C9 w

+ Y0 x$ w/ \# B; T/ x1 a7 T9 c当到达物料速度越高时,这个报警更多,
8 Y1 w/ M- k7 f, _: j! G5 L
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-9 05:57 , Processed in 0.018352 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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