设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10235|回复: 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': G1 r; }. \; ^3 E- z, n
*/
! t0 @* u+ v/ I6 F' J; t3 xis8 E8 b& v" i, L7 g& A6 E
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% z) {5 L1 A' f6 G: ^3 F
do
% _1 f4 [0 i  a' S) f+ @        Lan := rootfolder.Internal.Tools.AOLlanguage;: W2 u/ g4 x6 }3 f$ D1 y3 k) e% Q+ u
        if current = @.Destination -- else return
, Y" M! E4 i5 |# x* M% Y        then
) @. L6 D! k5 |& |( x                @.Destination := void;& V" u: w/ q* r; ~0 \+ `" ]  T! ~% n
                if @.occupied then: H$ w% Q, e* M# H: O
                        part := @.cont;
3 U  i, P6 x4 ^- g, V, X7 E/ p                        @.transpOrder := void;
3 m( H! u! k- _$ y0 I4 m- Z- o" Q                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! U* q5 u- x0 @, U" A2 R$ ]                                @,root.eventcontroller.simTime);  h8 V9 O8 B. n" A  |# w
                        @.HasOrder := false;; e- H1 `% w: c, Z5 f! A  R
                        @.DrivingHome := true;
- u% X) {8 [- d$ Q6 k* i! h- [                        rgManager.tryToStartTransOrder;
% @- H9 G& ?6 U5 ?: S                        if @.Destination = void
! P! K1 Z6 |/ }2 ]0 ]* M) g/ S                        then -- no transport order for vehicle @
5 g% o1 R: a' Y6 m                                @.Destination :=5 }7 B7 D- H; _% H3 k  m! f& C& M+ L
                                rgManager.nearestFreeStation(@,track.~);8 y  r6 s( _7 C$ c+ v" k
                                newDirection(@);   5 a3 U& W& \8 W0 E$ O/ q' p- y
                                if @.Destination /= void then( t  A$ a( }& O( _
                                        @.Destination.NumReservation :=
5 @5 h$ D' p" H: ?& M9 [& C+ ?- S                                        @.Destination.NumReservation + 1;. S1 @- ~' B5 ]* B
                                end;) V$ t& o* [5 i; p6 R
                                @.CurrIcon := "drivingHome";! g4 j) a5 Y2 w7 G- [, ~# o
                                @.DrivingHome := true;
$ v$ D6 Z& p9 v9 n4 a' ~! w                        end;
' {9 K- |  [  A% X                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ ^- \- t2 Q/ A  b9 \                        part := @.transpOrder;
) L5 B2 n2 B; S: H" C! w; ^6 h                        part.move(@);-- load part
3 f+ j% {) A: u+ O1 M2 z' }                        @.CurrIcon := "load";
6 O  Z' i# ?+ Q4 E                        GlobalDistObj := part.globDestination;
" r$ G" s. j- J, b6 G                        assignLObj := rgmanager.rgAssignL;
  a+ G* m" G" c3 [; E                        row := assignLObj.getRowNo(GlobalDistObj);# }2 s) r# u$ y1 R' o! h1 _. l
                        if Row = -1 then -- since 70& c) K# i/ N8 c/ ^) \' F
                                if lan=1 then6 [' }  V6 u8 s( [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! B1 |! `' D( }$ H; E/ E
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 j, u- H- I1 y5 n3 X5 ^3 b
                                else1 f% j$ V1 |$ h. J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. k8 V; p: B' Y7 ^5 I
                                                to_str("in docking station: \"",?.~.name,"\""));                                ' r" E  D+ \+ U
                                end;
7 }3 ]* i; R' ~2 l. `                        else1 J/ X0 c& [; `4 h6 Y
                                @.Destination := assignLObj[1,row];  x0 {( x. D* T& p3 \  `' v
                        end;                       
$ o& S& B* \4 K. m                        newDirection(@);- v# r! l9 H% V* p3 O- r
                        @.HasOrder := true;
# J! [1 G/ `. R2 Q! i                end;7 |* [/ ^2 p8 s2 p
        end;' P# R( I/ O% C) p& {
end;        -- of the method
1 M+ d7 s, A3 C! G" u, n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' L5 i! t, u! X2 X+ J  {- z1 r; G  ^7 y1 I! E% o$ ]
这是AGV_putin中arrive的method。
3 x0 z& u* U3 y& q6 a7 m5 H; }
3 P' h. R' h; H3 E  }当到达物料速度越高时,这个报警更多,* r. K, u  e" H7 t5 W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 k" G( l4 H' O$ ^0 F1 Q4 U程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 |: G9 o( E! o0 c+ U+ F4 Y

1 W  e9 L; B! k另外一个小建议,就是move,所有的move都可以这样$ X/ B2 ~( ^, n' O1 t
if not move() then debug end7 P+ I: e6 r- c7 R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 i6 B8 d( c- Oplant simulation中的free libraries有AGV模板,6 M- J! g, x6 h% f
里面也有案例。
( e% ^" E& _3 n, ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# R( M, w: ^* H, i# }7 w
2 _3 w0 V) V! Y5 N( k  Q- v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - S( h' H& ^$ d2 Q; J4 _) T

' `* e1 G6 B# b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. S! p9 Q  Z: F& }6 u9 j& O3 }这是AGV_putin中arrive的method。) o; ~$ E. s7 |3 F

0 X- _1 l1 `3 H5 ]) D) \! E, ^- u当到达物料速度越高时,这个报警更多,
1 K- D% V" o/ ]3 ~
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-21 17:28 , Processed in 0.017339 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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