设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8142|回复: 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'1 O! R! y9 b. t$ P& j( V1 @1 u1 s1 l
*/
* q$ d/ M) ~- y. \is' H/ S4 o, ]2 C8 r5 P7 z( G4 T3 }
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 X- M1 u" V" G: S( t3 e) kdo5 V+ X: F1 j( F% G% ^4 u/ Y9 |6 {
        Lan := rootfolder.Internal.Tools.AOLlanguage;% w, L6 x! Y3 k  \, ^# y
        if current = @.Destination -- else return
) [- E4 Q2 ~. x6 u7 C0 f        then$ J4 z9 z# v! v$ V& P' A; B
                @.Destination := void;
( R0 S* a/ y2 t9 I+ Y1 F0 c. }$ [5 Q                if @.occupied then/ a# w1 |1 t: C$ J1 ]
                        part := @.cont;, k1 r) Z4 R( h7 @1 F8 K5 V- y/ c
                        @.transpOrder := void;6 l$ [& A0 Z4 t& p2 J/ l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 c4 r6 l5 O0 @6 W: Y9 j                                @,root.eventcontroller.simTime);! G2 k* q  |/ H+ I) L) g
                        @.HasOrder := false;5 n) g6 {7 D$ u/ T5 Z, t- `* e4 k& P9 }
                        @.DrivingHome := true;- v2 Q1 P9 r$ A" R% V2 B
                        rgManager.tryToStartTransOrder;/ D" O9 P$ u* l8 G5 U
                        if @.Destination = void) r7 t* K3 t# I3 F/ K( I
                        then -- no transport order for vehicle @
2 O. o, A; p' Y" L. n                                @.Destination :=. {& x2 b2 ^" V; C7 z: F
                                rgManager.nearestFreeStation(@,track.~);
- K* a/ {( ^+ \& R- V                                newDirection(@);   9 U0 L% \# s" i' ?
                                if @.Destination /= void then
6 h2 j! f+ N3 D0 c                                        @.Destination.NumReservation :=' }: `( P/ ?& r: _0 g& f* [! y
                                        @.Destination.NumReservation + 1;5 p: i) m* [$ Z" e3 R
                                end;' [+ Y4 m* o; [: C
                                @.CurrIcon := "drivingHome";$ t& I3 S+ o5 t0 _
                                @.DrivingHome := true;% y  U+ A' N4 P" J
                        end;3 g" g0 @' X- ^  o
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 p5 N) G1 t. a1 {                        part := @.transpOrder;( g/ L3 T9 P& c# p
                        part.move(@);-- load part' W% O7 }% Q  |" W
                        @.CurrIcon := "load";
) n; }# ~* m/ {6 ~# ]0 e                        GlobalDistObj := part.globDestination;1 @* L3 k$ P& H2 [
                        assignLObj := rgmanager.rgAssignL;5 s  k& U/ e" W# K3 f2 w
                        row := assignLObj.getRowNo(GlobalDistObj);
- O! N' M- d1 I/ Y% L                        if Row = -1 then -- since 70, g9 i& c+ J/ T! j
                                if lan=1 then  K* L  e( v! e0 N( _- X' I" z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ T* x+ L* p$ n! e2 q! X6 H3 s                                                to_str("in der Andockstation: \"",?.~.name,"\""));! [4 {! z& S6 w) u4 s3 }
                                else
: c" c* J  {/ l, b- l                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& S. k* o5 W1 C  W% x
                                                to_str("in docking station: \"",?.~.name,"\""));                                ; ]# `- |& V: C% o
                                end;* c1 f/ Q/ c7 b0 @( D& q% [* g
                        else7 O% [8 |5 C  X* Q$ u3 D
                                @.Destination := assignLObj[1,row];# h" u+ S- j+ D7 v. [
                        end;                        ! }% s' E5 o! {& y5 ~1 F* `7 d7 m, V& d- |
                        newDirection(@);4 s# D2 A! m" P' _
                        @.HasOrder := true;
$ d/ U  T- w- i$ v. p                end;
: P9 ?  A/ ^  F* w* g2 o/ E& O& u3 c        end;
$ y: R: ~* L- E! h7 Tend;        -- of the method# K7 M2 v  _# ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: u, |! ?) F2 c* ]6 Q; Y( g0 l* b: y: Q
这是AGV_putin中arrive的method。
( k6 {) h: I& R7 L* v+ a5 b3 H" \; O' f( E) @' b
当到达物料速度越高时,这个报警更多,
- R6 M+ k2 S9 W) H可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 [1 ^# t' p5 I程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( |( F2 a: ^0 m; S) L# Q, y$ O
" \7 T6 ~% Q' o
另外一个小建议,就是move,所有的move都可以这样& H5 m+ p% C4 H9 c: C
if not move() then debug end* i) n: M$ Q7 R# P" x1 N5 [
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 U9 |& D) A3 z) j& \
plant simulation中的free libraries有AGV模板,
1 v0 }4 ], H# A7 g里面也有案例。
  i, c) ~4 j' O* g/ ^6 e( t我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ P* h) k( W) i, r( Z' X
% a" ^' N# S& m* U- \3 T0 ^: Q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; s) U8 Q* D9 E1 q8 h+ e7 Y1 I* x- W8 |' |) R- ~( m
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 ~* m- g' ?7 |3 z8 \. @# S8 Q这是AGV_putin中arrive的method。+ W. L4 u' [! A4 H
8 j% s: N( l* G  ]  C# g/ P9 Z
当到达物料速度越高时,这个报警更多,

: j8 I& t  v2 Z9 h4 |7 a另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-17 02:25 , Processed in 0.021333 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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