设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7629|回复: 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'8 Q6 L# [) X7 D* H
*/
4 r" s4 U! [: w: gis
# Y7 o! L, r, U5 h" F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ f: d# B* w. }2 ]- }- k, Ado
& Z& S# Y  f2 ?/ B' D5 s( p% s- Q        Lan := rootfolder.Internal.Tools.AOLlanguage;
( \1 C. z' h- ~3 n' [; }# B        if current = @.Destination -- else return0 E; e, p; y7 a6 H
        then4 @/ f" c6 ?4 {! v" c
                @.Destination := void;
" z( N' x8 d0 g                if @.occupied then2 V( [/ q  Q0 ]* _" j* D, a1 q
                        part := @.cont;
' R1 u: U$ F& z1 Y) i5 {                        @.transpOrder := void;& [  r4 I# N* I6 q) y9 h9 j
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: j# l- w. v+ f* @1 v3 s# d' }! d                                @,root.eventcontroller.simTime);
  R" W0 c9 Q$ U; E                        @.HasOrder := false;
& c( {, j3 y% k( U; o; s1 \                        @.DrivingHome := true;4 M% t' d; h- k# o7 i
                        rgManager.tryToStartTransOrder;: I3 I1 l# e( O( D$ q) Z- Z5 w! m
                        if @.Destination = void$ Z3 u' t3 K8 Q3 R8 u% x7 T* S
                        then -- no transport order for vehicle @: l' T, U; A/ y6 J! j
                                @.Destination :=; H1 ~- x/ x* x2 _
                                rgManager.nearestFreeStation(@,track.~);
! K6 ]- [' ]4 b. ?% S                                newDirection(@);   / @" U; Y# {  F/ C7 o$ L
                                if @.Destination /= void then
2 B0 o. |" c  [! X3 U  S. w! m! l                                        @.Destination.NumReservation :=
; O! k5 B; r: W& x0 Y5 l7 F                                        @.Destination.NumReservation + 1;
! q) ?" Y5 t# h4 ^; Q                                end;& _" O- B  V+ `5 L+ n  j' v
                                @.CurrIcon := "drivingHome";
9 u2 c0 K+ Q$ B3 ^. q" g                                @.DrivingHome := true;4 g0 Z2 o, ^7 p  V: K6 d. z/ F
                        end;
3 K1 q& @0 j) s                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ U8 y5 ?' E" O1 l+ f& F2 j                        part := @.transpOrder;
" o6 U2 c/ a. G# t1 Z                        part.move(@);-- load part
; B  O, _9 f- |  q5 F                        @.CurrIcon := "load";- A! e% [; Q# K# ~/ ~
                        GlobalDistObj := part.globDestination;
) S: l- i0 V7 R( Y6 W- i, G; c                        assignLObj := rgmanager.rgAssignL;. Y* O4 W5 z  X4 j
                        row := assignLObj.getRowNo(GlobalDistObj);
% P9 w9 H- Q6 I: W4 [+ n3 i                        if Row = -1 then -- since 70
! o6 [9 {& H! @2 \6 c" A: J# S                                if lan=1 then
/ b5 j2 [8 A% d( H                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 D) A5 i. s( z  U7 ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 ~$ {2 w, s: Z" _! ^1 [$ d8 |
                                else
6 C$ ?3 \0 Y& L                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 W! `" i: O% ]6 k  q; J                                                to_str("in docking station: \"",?.~.name,"\""));                               
; t3 J; j' o6 _. {/ b. \  u/ f' _5 A                                end;
  b' Y! ]; K5 h5 @                        else) T  g4 V9 Y& U  O
                                @.Destination := assignLObj[1,row];
2 N' ^0 m$ k, A3 ~$ n+ s3 P* U                        end;                        * r5 k* v7 \* [5 i1 s% t. W& `
                        newDirection(@);
: |3 y" _- p+ D4 s9 ]  u# N! n                        @.HasOrder := true;, V+ {& I9 u/ {. C, n" ?
                end;* E  x: x4 e! R' c4 B
        end;' z" M" j0 r& |7 u2 b* U
end;        -- of the method" g! w2 q/ b7 J  [5 E, b" S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  `' r. h0 ?1 k
6 g+ a$ h: ?) L3 j1 n9 V这是AGV_putin中arrive的method。
$ R( A- ~1 R  r5 p3 Y: `
& Z6 }, c' f" d当到达物料速度越高时,这个报警更多,% {( f- |; ?9 w8 l5 \0 e5 z% L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ A. f/ h) q6 h* x程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) a7 n0 [% {' }7 U$ E( i, J" B& g2 Q/ i' \
另外一个小建议,就是move,所有的move都可以这样7 x% N3 ~8 \4 F# F, ?# \
if not move() then debug end
/ ^1 w# N7 l0 V# ?5 b" ?( w5 m; d这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ L, A* p4 O) u! E+ p: L* n6 A
plant simulation中的free libraries有AGV模板,
7 h# \+ G& w% X" h  _9 K1 c里面也有案例。
4 Q5 z" l3 s! y- I. R6 Q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& F8 M, M0 Y% s. f, A- A

. T3 W: u! E/ {  C1 A2 p9 o3 l4 D9 R我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 _$ g) w6 s& Q6 n4 F( I

/ a! W* }' f0 F( i那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 F4 U0 {/ L0 b' }( S这是AGV_putin中arrive的method。/ G& T1 C; o& U" G

, j1 U9 Y* e& R当到达物料速度越高时,这个报警更多,
1 U( y) y6 M; K, i5 W8 _
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-21 03:34 , Processed in 0.019496 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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