设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7273|回复: 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'3 z" A0 c/ V# e2 C
*/7 V4 ^  J( {: q& @. E) C7 a* v
is4 O" g1 c  X6 S' }8 m: J! q4 E9 V/ y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 x& W. g' y# s0 H5 `
do
9 @0 N4 a' [( v) f) l; H        Lan := rootfolder.Internal.Tools.AOLlanguage;0 r7 G) r6 a* @# O* b' B" e/ L
        if current = @.Destination -- else return2 h7 k3 a- E4 j$ O6 u+ m2 T
        then
( H- @3 O  Y# X3 C$ ^$ x                @.Destination := void;
- |! T4 i1 q' T3 f                if @.occupied then
3 O8 F4 o$ R& _                        part := @.cont;2 k- d, P9 X4 d9 R+ Q8 f( P9 ?
                        @.transpOrder := void;7 S  J0 y- H+ @. q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 z; D+ P1 w- G4 B/ c
                                @,root.eventcontroller.simTime);
+ k' R1 q& c+ N. g                        @.HasOrder := false;! A3 ^* ^% Q8 B- ~# z/ K- l
                        @.DrivingHome := true;
! ~( V0 D# D% p                        rgManager.tryToStartTransOrder;
1 \  @$ ~/ L* _3 w# x- [                        if @.Destination = void/ s$ N. F: W- K+ ~9 R( C
                        then -- no transport order for vehicle @/ v9 E- O0 _5 `; B; [, ?* U
                                @.Destination :=
  M8 Q. Z& E* \                                rgManager.nearestFreeStation(@,track.~);2 p) @# \6 {$ t" m# y7 T/ w
                                newDirection(@);   5 ?" S+ I) E1 u5 _* |( _* R& F
                                if @.Destination /= void then
2 j  m4 |3 n1 {$ m3 j$ Y                                        @.Destination.NumReservation :=
( g8 ^4 v7 Y& n6 P7 b2 H! e                                        @.Destination.NumReservation + 1;
- P& _4 M' T$ v0 k, N' U' x! q                                end;! b: S/ a  F  }2 H* o2 G/ n  g" T
                                @.CurrIcon := "drivingHome";( e  u5 p+ G) f: t6 j% b
                                @.DrivingHome := true;
( h. k" I/ _2 p" C+ U1 O                        end;& K4 P/ B+ q, m' j6 N" X4 e) Y' c
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. M8 t. T/ b" b4 t0 Q! [; p
                        part := @.transpOrder;6 O# I( c8 G3 I, ?
                        part.move(@);-- load part
8 b9 Y: ?# p# _( [5 q' E4 V, G                        @.CurrIcon := "load";. ^- {3 a9 G% N7 B
                        GlobalDistObj := part.globDestination;3 ?! P/ Y; R5 ]2 {3 v
                        assignLObj := rgmanager.rgAssignL;( P- c0 F% M0 b& f- ~  S' u3 y
                        row := assignLObj.getRowNo(GlobalDistObj);
' d+ B" N, q! F+ F                        if Row = -1 then -- since 70
' _( t6 F! v7 o/ r9 @; k                                if lan=1 then$ n6 u1 H$ G+ E5 V$ u) `2 L& ~# f) Q2 v
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ }2 d" z3 H% r  O! t                                                to_str("in der Andockstation: \"",?.~.name,"\""));# }0 O! B. n7 b! \' @2 U! G
                                else
3 c) y5 `* X3 r$ D" F8 w                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" v$ d; m' I5 ^' M3 h$ ?' j$ M                                                to_str("in docking station: \"",?.~.name,"\""));                               
: b6 V2 P+ Q8 O% ~& c                                end;% {9 k/ B# b) C2 T
                        else
) N: Y4 Z; t8 }3 ^- R' q( A2 t8 L                                @.Destination := assignLObj[1,row];
( F+ W) B9 ~. {/ I! Y# m+ s- w, }                        end;                       
0 U( M. L1 Z) p                        newDirection(@);
* b. x- m* A- z% l                        @.HasOrder := true;" S6 m' F4 `( n2 W  S9 q/ [
                end;
* Z% Q1 s2 |9 ~% e        end;$ D5 X; \" w( X( u
end;        -- of the method
1 U, K* H: ^3 `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ J$ U7 I0 A7 z
4 Q5 k, L; i. ?2 x& ^5 l) B4 p. N/ y9 z4 m这是AGV_putin中arrive的method。" \2 E, Y& N2 |9 V5 O

# t# Y; r6 @+ G7 Y6 ~当到达物料速度越高时,这个报警更多,; C$ m( _8 T" F1 w9 p6 u( I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 _) Y. k: a! [3 g8 H% I( E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?5 r5 F! |' \2 N
6 v: e  m' F' L3 g) c# B, B( A( Q
另外一个小建议,就是move,所有的move都可以这样
( Z9 z( J; k+ v- h4 cif not move() then debug end* a  s4 C& b/ a4 r$ n" k* F
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- X6 @* H0 u- S6 l( H  xplant simulation中的free libraries有AGV模板,! @! u) e( m8 Y& z' u4 I5 |6 q* z/ D
里面也有案例。6 v' c- s6 K$ {4 U" b9 t0 |
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 y- q$ k. e+ a
8 U# A: N* C; x我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 v3 @/ j5 \# I) m2 I: P1 O. ]6 ]& U1 k; A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , V; v9 c( z: j# v! v8 b
这是AGV_putin中arrive的method。9 X% r. O7 P' Z  b

6 r1 z$ o6 w* [, _$ q' C0 Z/ \当到达物料速度越高时,这个报警更多,
) {2 o7 `3 k+ ^: A. g* u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-1 02:45 , Processed in 0.020995 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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