设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8573|回复: 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 f3 F& a, h& S*/
/ M+ j8 ]0 N1 Jis' R2 |( H4 q# _7 r# h0 c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ a! X+ c- c5 \; U: odo
: ~# }; y" a& l. j& r* R! F( v1 F        Lan := rootfolder.Internal.Tools.AOLlanguage;
& _1 k5 a( g' Z/ a4 O        if current = @.Destination -- else return' ]7 L9 o. F* T8 C/ d
        then
$ u9 x  {- t" n9 P6 L' F+ u                @.Destination := void;
9 @6 v  N( Q; M6 N1 x& a, W) r* Y                if @.occupied then
1 {2 G% a% R2 u+ U2 |! a; Q                        part := @.cont;
* P6 d7 C$ R$ |* M! h, ^                        @.transpOrder := void;
, a% C' m/ g8 E                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* i. E% R0 G* G7 K, \; i$ ^1 e) x
                                @,root.eventcontroller.simTime);% k( |- k4 M8 m! W
                        @.HasOrder := false;
" |6 j* ?! A7 t                        @.DrivingHome := true;4 E( o% [) f  O+ v8 E* I% D
                        rgManager.tryToStartTransOrder;. Q! z. B5 H) J
                        if @.Destination = void5 D, |& S3 v) @* c7 b# v
                        then -- no transport order for vehicle @4 i# Z: G+ T' X
                                @.Destination :=' l( U$ V& O& `4 i3 j5 Q6 J+ u5 t. s
                                rgManager.nearestFreeStation(@,track.~);, [2 R# `- r$ a( |% N
                                newDirection(@);   
6 @; q0 ~; X# `                                if @.Destination /= void then1 `2 m4 v9 g& w8 `
                                        @.Destination.NumReservation :=
- W: x3 |& _" B& x; q' |0 ]4 w3 d                                        @.Destination.NumReservation + 1;
) g* ?# W8 U1 B- K  I& ~                                end;
8 V; p5 O/ f2 Y2 K# c& ~: O: p                                @.CurrIcon := "drivingHome";
, m4 ]3 f" }1 ?" H, t                                @.DrivingHome := true;" m3 G$ \, A0 F8 T0 D4 a
                        end;* D. t9 y( k# |% D
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 t0 e4 u  M" R3 t# k                        part := @.transpOrder;
& H0 `% k  k( A                        part.move(@);-- load part8 \4 S! {) g* j; T$ N: r5 ^$ i
                        @.CurrIcon := "load";
9 i2 Y# O- K* f& x' ]1 r6 c                        GlobalDistObj := part.globDestination;7 \4 t4 C# t3 b0 m
                        assignLObj := rgmanager.rgAssignL;6 l; P$ @/ R: g- t# g
                        row := assignLObj.getRowNo(GlobalDistObj);
! [/ m6 X( d2 ]% ?  [                        if Row = -1 then -- since 70
4 j8 n3 _8 R  c& L! Z* A5 i5 |                                if lan=1 then0 S1 x, N2 R! _/ A/ V
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' v3 {( D+ t. f" _- r% l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));, |$ W% I$ k4 }2 K
                                else8 |2 a5 Y) M- V& @+ D( j4 O- q8 V
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 P1 ]4 L6 I" ?! h; k: m- g                                                to_str("in docking station: \"",?.~.name,"\""));                                2 q0 i: c6 `9 W' I
                                end;) S0 m  P/ `" w. R& D; _7 G  Q
                        else6 i# \  ^0 _/ _# B6 i# q
                                @.Destination := assignLObj[1,row];
$ D0 z* W/ x, _8 L                        end;                        ' k: h% B! a9 I' }; \' H  R7 \$ G
                        newDirection(@);$ \6 `5 i3 ~, o% j- C4 P; Y* l
                        @.HasOrder := true;" A3 z) O3 D" a" a8 _
                end;! e6 n& Z4 S* {5 j+ y
        end;
% m( c* u+ o* T: v& E9 |9 M+ Vend;        -- of the method" i7 h5 c3 O+ c; [! v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# H+ ]/ {4 s: c- v) D$ q) |; m% r/ H9 V5 S: w0 k
这是AGV_putin中arrive的method。2 Y( P: u1 p1 Z( o9 ^% N' z2 Z
& T8 C5 X" W  X' f* p0 w( J: u) q
当到达物料速度越高时,这个报警更多,, i" l7 f) s* C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 _* d1 k; w3 J5 u6 i程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 I5 M: q2 ]9 \# i2 E
9 n) X0 j& G, ?! ]$ ^5 }, r另外一个小建议,就是move,所有的move都可以这样
3 A- s4 F2 u5 J$ X5 v. jif not move() then debug end! \* m! P0 N8 h
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 J8 |$ r7 F1 f9 D) q& L* T
plant simulation中的free libraries有AGV模板,
$ _( h' q" ^4 f; Z里面也有案例。' e9 K8 f" H  N9 S1 ?0 n; K5 j
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 K1 p" c& ~) U0 O0 j% z

/ N# C5 h! o% x8 p, S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 R6 `  A. n1 E  T! }  ^2 H- b( k" P

+ r  ~* D& d8 s( L# t- @" s那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( g9 O) s: x+ `  T" c
这是AGV_putin中arrive的method。; V1 Z4 \6 Z) B5 \
  t) E$ p" {; m: W) t1 \
当到达物料速度越高时,这个报警更多,
0 s# t- z$ J: h9 y( H' X
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 19:43 , Processed in 0.014243 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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