设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5947|回复: 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'
+ k$ R$ O, H% W' o; H*/
6 [( v2 ?7 E0 C, p' Jis
, ~1 I/ T+ _: W6 d, @8 Q* }6 N        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. u( P) q' `5 ~( X  ^
do
& @  A. A: a  V0 q        Lan := rootfolder.Internal.Tools.AOLlanguage;8 G! o. b% s& _  b( |
        if current = @.Destination -- else return; F& c) y7 O0 N. @2 @
        then7 B7 w, P' W/ ]: E
                @.Destination := void;# C0 I4 J( d2 m4 q
                if @.occupied then% _- c9 l  t8 v8 }* w: Q
                        part := @.cont;
/ ]: L9 h! v# Q+ x                        @.transpOrder := void;$ c8 M! ~+ U2 ?& d- s# t! j3 l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ I7 T4 q2 Y7 r                                @,root.eventcontroller.simTime);9 y" ]1 [# U; M0 m& r4 x' Y& j
                        @.HasOrder := false;; `/ `) W6 A- u% R5 i& g
                        @.DrivingHome := true;
& J' J3 B# K7 U3 m" v                        rgManager.tryToStartTransOrder;; p  K, ]0 I1 ?+ M
                        if @.Destination = void, W) m. P. n: g, h1 }$ x
                        then -- no transport order for vehicle @
! r& t% ?% m6 v                                @.Destination :=/ ~& Z5 C4 w% u
                                rgManager.nearestFreeStation(@,track.~);
! j  s) _3 o* _# v- `; g) L                                newDirection(@);   * b" @9 K! y$ [' n& i5 ^, w; i
                                if @.Destination /= void then
* K) V3 R! t; @1 f# i                                        @.Destination.NumReservation :=6 }- ?  J9 Z  T$ l/ t
                                        @.Destination.NumReservation + 1;0 f& ]+ o# G* y# {, J* Q2 t
                                end;& C  D% `4 ?" G* [7 ^$ R+ A
                                @.CurrIcon := "drivingHome";& y; ~! f2 k; s
                                @.DrivingHome := true;* `4 X; f1 a* ^( W( a& e+ K
                        end;
1 {0 z  Q" Q6 s$ z3 A' V3 ^: W4 d& U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# C" @9 |" ]9 g( _7 C                        part := @.transpOrder;% }0 y! C) r& A9 s* x& o# V
                        part.move(@);-- load part
* Y1 m7 ^# {* ?* q                        @.CurrIcon := "load";. z5 S- @) `9 L8 L0 L
                        GlobalDistObj := part.globDestination;& M3 z/ b/ t8 z4 s: k0 ?$ G* R
                        assignLObj := rgmanager.rgAssignL;
( B* x; b# v; ?7 ^9 ^% U                        row := assignLObj.getRowNo(GlobalDistObj);: }# i% g  r1 {" k
                        if Row = -1 then -- since 70
" i: T6 p; w- T0 @                                if lan=1 then. Z9 Y: W7 ^6 H; N) K$ A
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. P& l+ |$ N) N' }                                                to_str("in der Andockstation: \"",?.~.name,"\""));  |! z" C% ^9 x; @! A* S
                                else
# P- b+ ~' s3 ]9 p, m# E* D2 ?# n2 B                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 F. s/ u; A8 u9 I2 g, F4 l  T0 T
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' b' N- g) {0 G. f4 B                                end;  K7 F$ r( t* ~! }0 e. H% S4 J
                        else
; u4 J+ b0 P3 j" d# `. t8 @                                @.Destination := assignLObj[1,row];
  O# }+ W8 l. x' B) F2 M                        end;                       
; z) o& Y+ M# X9 u! _                        newDirection(@);0 |9 [) F3 V7 }) _+ m
                        @.HasOrder := true;5 P$ H2 x" c  ~
                end;) S# g0 v- c& K) J; [3 p
        end;
$ v# l! o6 C2 R! \1 o+ n. Z0 n- l2 Uend;        -- of the method
: K4 m# c% b+ W9 i2 d8 b/ ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + Z" V  `0 V" Y* v  e

" q4 |- p0 ]! e) _5 v' Z这是AGV_putin中arrive的method。7 L# E2 O, O6 p$ }4 Z* c# S) f, Z$ S
5 g2 {' P! @7 g& `8 K
当到达物料速度越高时,这个报警更多,
3 H7 W. Y" r* x# J& `$ e可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* s' o* c. U+ {' E6 O+ J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: b+ r8 n9 M  N
/ h6 |; U8 u4 a, M2 r; C
另外一个小建议,就是move,所有的move都可以这样1 L1 j  m% p0 v) n: N( X
if not move() then debug end# i, K6 o% o- J* e  j" ]
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 y* [+ u: V5 e1 p- oplant simulation中的free libraries有AGV模板,# f! r, Y4 c# C" E" W0 m$ B
里面也有案例。% E4 l) r  p8 m( ^3 H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" K! w! E8 N. N$ W& j: C  K. I1 L6 n! a# D9 `4 O7 W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: U  j0 l0 r: H- f( |# C6 {- v( V
2 q5 d4 t7 `* |! M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; D% C3 O: h$ ^3 p2 }2 n' c
这是AGV_putin中arrive的method。: j" d, P; p- I0 V2 O
3 ?# U! ]5 W6 C, O
当到达物料速度越高时,这个报警更多,

" F0 ?  X4 x) \% f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-5 15:45 , Processed in 0.021048 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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