设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9966|回复: 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', y& j) c7 ?- R, a5 m0 G0 G) ]
*/3 h1 s( Y4 V1 f4 h$ Q
is# ~9 J6 x2 n& l) [* _+ T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) ^0 \6 y$ w* ~! r# Y" t1 [do6 }. Q$ a& I+ |% \8 R
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 o' A" A" S3 ~/ P8 I, _$ T        if current = @.Destination -- else return
# V3 @! \1 H) ~6 \8 f. A        then
' E/ i5 V0 j. S" a6 o5 k                @.Destination := void;9 P' v; M7 V) k) Y  H( @6 z  n
                if @.occupied then1 b1 f1 I: \7 M- h& S7 F
                        part := @.cont;
2 I: u& a; I3 n3 s* r& T; k. `' S                        @.transpOrder := void;
6 ]: \, B' }4 T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 V- W+ a) d" d6 g1 @; F) p6 v4 `                                @,root.eventcontroller.simTime);
6 X: d) j/ O" n; r! P  M( v                        @.HasOrder := false;
4 w% |% k: ~1 b4 e                        @.DrivingHome := true;
& b2 z  o4 E0 E$ m4 D3 M                        rgManager.tryToStartTransOrder;- ?  p, n2 j- G$ p
                        if @.Destination = void
8 k( ]* _! @, C6 K/ O                        then -- no transport order for vehicle @
# n' n1 e9 D" m+ n" O0 u1 T                                @.Destination :=
# \+ w' ~& _' V( m/ j                                rgManager.nearestFreeStation(@,track.~);# U2 u  K/ m. ^* U  R" H
                                newDirection(@);   3 K! B) r- @7 @5 H  B' m
                                if @.Destination /= void then* u1 r0 c6 g5 o! K" A
                                        @.Destination.NumReservation :=% Z2 w8 V. {0 l0 R, x
                                        @.Destination.NumReservation + 1;. K* p* n; p& l* ]5 t' q9 f) d/ {
                                end;( a' R8 x, s; K2 }; m" \
                                @.CurrIcon := "drivingHome";9 H) I. ]  g. B  s; W$ @( {% D" S
                                @.DrivingHome := true;
9 }% }6 J$ a" I% ]# y$ |3 _# L                        end;. \( m. d% t' x3 U" X& K  _% X- P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# ]  M1 z* Z/ K9 `# [                        part := @.transpOrder;
" `! @/ T2 a7 g: O                        part.move(@);-- load part
: J3 Q8 Q# u/ e; F0 d                        @.CurrIcon := "load";) \. ~' E+ a0 ^, ]
                        GlobalDistObj := part.globDestination;! L$ J) M4 n( W6 g: C
                        assignLObj := rgmanager.rgAssignL;
7 v7 Q2 H* _  O) h* [# `                        row := assignLObj.getRowNo(GlobalDistObj);' ~3 M* |+ x" d% ~
                        if Row = -1 then -- since 701 D, V4 W0 M+ E  B% u, ^$ Q, a
                                if lan=1 then
. r. W) M6 F0 S5 K6 w* F* E5 ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ r3 M1 |, Q# y) M  P8 t                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( @5 ?# d) b2 ^& i                                else
) g2 j- j( G! w: N) t3 I                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- M  O- G6 l6 _3 p% G; b
                                                to_str("in docking station: \"",?.~.name,"\""));                                  ?# W% h" C! m6 j, t) ?* S
                                end;, D) K% H# J# F- u; z) u
                        else
1 G3 I. n* T# s9 j2 _: \                                @.Destination := assignLObj[1,row];
  D7 ?5 y, z' k) d                        end;                        / r9 ?! {; r  ?8 t  c
                        newDirection(@);! l7 e) M* z# h) `' Q; B
                        @.HasOrder := true;1 E. V3 G! v1 s# ?
                end;6 Q& K3 o; F1 x2 E. ^& d' h4 o
        end;7 M3 y# ^! `7 R- r' [: F
end;        -- of the method
, c9 K0 N" p: N& `% ~2 P& i4 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 I  Q7 ^- l* G

: Q6 {3 M$ `; N' k这是AGV_putin中arrive的method。
# o9 F1 }$ D7 ]! h' P4 n8 \- h: \5 ~" ~/ q9 O) p( [
当到达物料速度越高时,这个报警更多,
2 ^- }% C3 e; k0 M6 Y6 u可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ i4 f0 i5 L+ e- z( |1 X5 r
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 M4 y' ?3 H' l1 A1 s. s' q1 m
" c: G/ W, ]) S: d1 X7 [另外一个小建议,就是move,所有的move都可以这样
8 k+ G9 \! Y% ^8 Aif not move() then debug end
$ d7 |/ }1 o3 x" w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 B7 a* B: A$ b0 W' s; C1 Splant simulation中的free libraries有AGV模板,2 _' R4 x, _( ]! @  K( ~
里面也有案例。) m* g9 \# x, [) i+ Z1 ~( f
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. `% T0 c; @, K; N0 |

% r, |/ ]- P# q3 F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 e9 f4 Q5 m" e) W8 Q- P  ^
/ B% ^9 R* V# F& x9 x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! G/ t8 x; J( ^这是AGV_putin中arrive的method。) f6 G) \) B3 l
) y3 B: J% |' }# L' K
当到达物料速度越高时,这个报警更多,

: ~4 q' g: X, r5 i) A+ f4 z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-5 01:02 , Processed in 0.020969 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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