设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9257|回复: 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'
2 a% V1 k) C) u" s5 \; a*/5 h. e& P9 o$ A* ?$ h1 p- H
is
1 r3 ^- T, w% P9 F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, u5 [+ Q6 s0 B* f5 Edo
" F/ f1 W6 h8 T6 b% h7 z/ f        Lan := rootfolder.Internal.Tools.AOLlanguage;4 J0 x: X2 Z! J0 B8 P2 f
        if current = @.Destination -- else return- M" Y& I- T: |7 J
        then
' K, g' `" Y3 Q; Q0 b4 B5 T, w6 |                @.Destination := void;7 {! e1 o# x; A/ ~! x1 {
                if @.occupied then8 B! t, n5 B# D% \. o: K
                        part := @.cont;
& ]9 c- |" e# y8 g, d                        @.transpOrder := void;; t# ?( F, X) O# {- r: G/ P
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. \1 ^9 T* ~& f- v. v9 u                                @,root.eventcontroller.simTime);1 g2 p8 c) k/ v( s: W* @
                        @.HasOrder := false;
# d# \* S" \+ h4 x& a! X% @                        @.DrivingHome := true;
, ]) T# C  E0 e" @$ U- ^9 v1 H                        rgManager.tryToStartTransOrder;
4 @6 ^9 X+ v  ~* f6 B                        if @.Destination = void
; k8 a6 J% M- t3 Q5 p& Z                        then -- no transport order for vehicle @  O# E- z% m# J7 g% x$ v5 b
                                @.Destination :=+ ?5 _) r4 h3 c+ Y  \
                                rgManager.nearestFreeStation(@,track.~);
4 L, n( n, d! k9 q- g  A                                newDirection(@);     ~# o: {" `4 X4 q0 q! D7 y
                                if @.Destination /= void then
5 W( o; s! S) i; p8 O                                        @.Destination.NumReservation :=" P& k- }! {$ p% |% n
                                        @.Destination.NumReservation + 1;# \: Y  S* A& K: H. _" q7 b
                                end;
- J9 Y  U, I3 N: j' T. b                                @.CurrIcon := "drivingHome";
0 Y4 B: ?" u" K: @: w                                @.DrivingHome := true;' W1 Z4 M3 i% @+ c! V. `
                        end;
! K) k/ e9 O5 b" ~' I- p                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) [; s/ S* N' z4 Y6 d                        part := @.transpOrder;: Q8 ?+ p! \& [  g$ U* H, g$ ^
                        part.move(@);-- load part% i' K1 X( V3 e* Y- h: j
                        @.CurrIcon := "load";# V3 w" b: y  a( W
                        GlobalDistObj := part.globDestination;: C) Z* q8 E& p9 |( u8 ?
                        assignLObj := rgmanager.rgAssignL;
: u% _- d/ g/ x+ {& P                        row := assignLObj.getRowNo(GlobalDistObj);, N7 g0 b3 B. k) q3 g& S# {- J
                        if Row = -1 then -- since 70
% N5 w6 o0 X- M                                if lan=1 then
$ J9 u# r. c; x- J0 h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ b! Q! [$ M/ E
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 {) G1 h" T! U. J2 }3 E! l  B$ C
                                else
8 M6 n1 Z( K1 g+ _2 O6 g0 e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 w0 A$ }6 ?. R8 q5 {& ~1 O8 C                                                to_str("in docking station: \"",?.~.name,"\""));                                6 N7 W& L3 R8 o5 W
                                end;
& U& p5 S9 ^- {* Y                        else. F; X7 D4 w2 M
                                @.Destination := assignLObj[1,row];
- q9 r, t* |, \                        end;                        ) r  D1 e0 r2 [6 i8 p
                        newDirection(@);% O1 ]3 g0 ~7 x# P3 M
                        @.HasOrder := true;8 }; b- G% P2 s
                end;; m4 k" K* L1 X8 S9 Y7 ?. g- t
        end;
& ?; T' e. [5 C. xend;        -- of the method
+ u- y& R; l8 @) f) |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* o1 N8 m# y- r6 G" x" ~1 w
) L. c7 p" N4 H) H: L8 }6 m0 l这是AGV_putin中arrive的method。
9 i! H6 K# E& l1 {: ^: t5 K  z
9 Z& W2 G* y" K+ S( Q2 u& z6 F当到达物料速度越高时,这个报警更多,
3 X/ s5 k5 b+ r; t7 O/ u: b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! z% i1 L) a- L3 a7 E  e3 l程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! D- K/ e  Y# h

+ V3 W# D, y/ q" s( o  g另外一个小建议,就是move,所有的move都可以这样
! v/ j  [# D& ]) D6 Rif not move() then debug end
- o. Z$ ]  w4 h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' k; v" ~3 [) b8 O) b3 Dplant simulation中的free libraries有AGV模板,
. Q9 D" n0 g: r: J里面也有案例。
( j4 Y% e$ f. j8 l$ j: w& a我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 |3 O" z* `1 [5 ^& [' }0 M( {! o' X# W. ?& k0 p, }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; f0 N0 p& O/ d4 m5 l) b: B4 C! p" ^# l
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" T6 k- n' ]( n; l, s0 @1 r1 k这是AGV_putin中arrive的method。
" s; B/ g3 Q& b2 m+ R# @9 ]/ ~" j+ W" F0 Q9 I
当到达物料速度越高时,这个报警更多,

+ w7 A3 r3 h" V8 i+ y& a$ N4 W另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-21 13:33 , Processed in 0.022600 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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