设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8076|回复: 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'
! o9 q1 I: H' @* d* |$ X/ c*/
& T3 e: k! a: S, Y2 W0 }is
. F. v+ j+ S5 H/ A        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" _2 h; {& c0 ?do# r: [" ~+ T3 @8 e/ u3 Q) o0 @/ c1 F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 L4 m% q' O3 L3 e" N, k; x        if current = @.Destination -- else return
  i* W, j  g6 }, |- Q        then$ s- C2 A% _6 e+ F) O) M
                @.Destination := void;5 k/ C5 P' Z( y
                if @.occupied then
0 Y. f. y" P# u! `' g                        part := @.cont;9 N6 d" M8 ~9 K9 A* Z
                        @.transpOrder := void;
& Q/ G/ J4 D5 q" T* F  j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 k8 T1 w/ ^2 ~! X0 s                                @,root.eventcontroller.simTime);5 r7 R  ^9 j2 Q$ E+ B) m: E
                        @.HasOrder := false;6 `- b/ {8 r% _. s& S: m% x
                        @.DrivingHome := true;# j6 e2 d9 q! k* w. n1 t4 y6 W
                        rgManager.tryToStartTransOrder;, \& b$ y! Y- o5 w- F
                        if @.Destination = void
* i+ a% f$ w) Q                        then -- no transport order for vehicle @5 s* @  ~$ C" S8 D0 p
                                @.Destination :=1 `4 O, b7 o' ^, i8 r5 i4 _
                                rgManager.nearestFreeStation(@,track.~);1 V- Q, f. k6 l  H. J) u. O
                                newDirection(@);   5 p8 [: Y: F" R- D6 N; c8 `
                                if @.Destination /= void then
: U% g0 Y* s7 S: Z* j9 X, P# g                                        @.Destination.NumReservation :=
& l$ W- j7 Z8 N( A8 t                                        @.Destination.NumReservation + 1;
( u6 v; K/ C  H7 P                                end;
( v* ^2 \7 T! {7 J" D1 I% W                                @.CurrIcon := "drivingHome";
2 e' ^% h$ a4 v. U3 p4 _6 u                                @.DrivingHome := true;
" j* ~: t) D9 `+ F                        end;. d& E# U! ]$ x2 X0 k( K
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 w- O4 w* B* p( o$ b0 }                        part := @.transpOrder;
7 o' H4 u$ F& G9 m& @2 z+ n$ Z3 g                        part.move(@);-- load part, {! B" e7 x' G9 n9 J/ y6 D
                        @.CurrIcon := "load";
: p1 R6 H/ L* P; _9 t/ R, O                        GlobalDistObj := part.globDestination;+ U: |. \3 K  N
                        assignLObj := rgmanager.rgAssignL;
3 f' G: P( ^& y- S% N% c( D1 A                        row := assignLObj.getRowNo(GlobalDistObj);0 `* a" n' U% C4 m
                        if Row = -1 then -- since 70# K& F8 N: j! S+ v
                                if lan=1 then9 b8 P" }$ R. C$ G% ^
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 q6 Z6 O/ ]6 x. g/ w. d7 e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' Y. d4 V3 F, ^9 G- J' g4 _( o
                                else$ \* J. m# n& a/ M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 M5 ~) k, ]% F+ E6 n
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) \5 U7 c' E) v  K; c( i$ ]) X
                                end;/ O6 u. s7 C4 o1 |8 P
                        else
  C* ]1 P: `/ R9 K3 H3 @) W) e                                @.Destination := assignLObj[1,row];" g6 J7 B+ U) \: N+ ?, R
                        end;                        . {* k. ~! v) Q1 z- Z: j9 l3 ^
                        newDirection(@);% [- g, w* o# o1 K0 Q$ o$ D# d8 z
                        @.HasOrder := true;5 X  v" K7 V  e1 l5 L0 y: b
                end;# B- v% g% z$ N7 ?- V
        end;
3 |4 ]- z; |5 m6 q* I7 send;        -- of the method
5 r1 |7 K( t* r0 m: V2 }  }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: M- B) B  F  d3 `$ ~2 ]$ j% m' {
这是AGV_putin中arrive的method。
; {, n) o9 x( D3 A; C
& x$ ]; H6 u6 i/ J+ k% E当到达物料速度越高时,这个报警更多,
5 i8 T4 K6 t) q1 J4 D; k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  T, L: @# e% s8 \/ P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& X/ A- f9 X1 @# \3 e
' y- B$ r1 {( q$ t9 N; O9 D$ ]2 z
另外一个小建议,就是move,所有的move都可以这样
, o2 @1 V/ X+ ]" F+ t$ _" Xif not move() then debug end
4 G( n( E! |' F. l1 v4 u* z4 B这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 ^6 V' p* p* m1 e
plant simulation中的free libraries有AGV模板,: L+ `  S1 P- b, |' t! D
里面也有案例。
, V3 M% j. a# N$ w: M我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( l* y2 |6 c8 z& a+ L4 X6 {
* m, ^  l4 [2 k) G' X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ ?5 E2 `7 @$ f& j0 j# C& I
! y1 J. ]1 K% E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 F  ^1 h, r" g! ?" X/ R! d9 b
这是AGV_putin中arrive的method。
/ g% h( p8 h+ P, C
/ k( N7 T. Q( T) p2 U. ?当到达物料速度越高时,这个报警更多,
3 e3 h/ G/ b# [( J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-14 01:29 , Processed in 0.019033 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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