设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7876|回复: 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 H; W8 w2 q" f& ^' p8 o. Y
*/, G8 m$ p  q% D: a$ K5 e6 k7 r
is8 Q6 N9 {* |( e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- v1 v: [, h, }1 \5 S5 ]6 Ndo
4 O( V0 d& V+ C" e% S, a, r        Lan := rootfolder.Internal.Tools.AOLlanguage;  _  i; p# |3 _0 H) [* P
        if current = @.Destination -- else return
) r4 }+ f7 ]8 E. s        then, K- N2 Q9 d  m- C4 G
                @.Destination := void;
% `- _; j8 O: |5 e" i; q- {* p% b$ U                if @.occupied then
  T9 m* y1 a( T( g3 s8 j3 f                        part := @.cont;
" O: u* ?% a& u9 B/ B$ d                        @.transpOrder := void;/ z' m9 t: i) E
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 Z- |; n8 X% d" a1 z: ^$ I1 e! f
                                @,root.eventcontroller.simTime);
1 _- f9 d3 C: n( |4 h+ w                        @.HasOrder := false;
! A: \' H/ r% q" f$ f6 g                        @.DrivingHome := true;/ C/ w/ [7 N' a7 u/ y# g, e
                        rgManager.tryToStartTransOrder;
) f+ x' G& v+ ?/ ]3 T0 D1 J; G/ T                        if @.Destination = void
! E, y2 k0 ^4 {                        then -- no transport order for vehicle @
! D6 m% r2 {( R# K                                @.Destination :=
$ m( R' S, @( Z4 `" H' q1 F                                rgManager.nearestFreeStation(@,track.~);8 @2 l+ U. j: C
                                newDirection(@);   
  P. @1 u0 H; R4 U( _! G. Z; z                                if @.Destination /= void then
5 W- L( N4 }! k( w9 _5 G6 V. G2 m2 x                                        @.Destination.NumReservation :=
6 b% X6 h+ Q  K# I/ C$ Q                                        @.Destination.NumReservation + 1;
$ T2 h& T# V" t7 k5 v0 v6 _, |4 ]                                end;5 |% P# @! i  N4 ?
                                @.CurrIcon := "drivingHome";
, @% g' T. C. f2 i$ X! f                                @.DrivingHome := true;
, B* y; e1 N0 q. _% T* L                        end;
/ Y% I2 N  ~- c- U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 N" ~1 S! D2 N3 G3 f+ h: L                        part := @.transpOrder;
( U8 ^3 K, e- l                        part.move(@);-- load part
# t7 g2 o; I8 @4 }, Q5 x                        @.CurrIcon := "load";
- v0 j! n2 P7 O; e- C% P                        GlobalDistObj := part.globDestination;; E+ J6 _6 b' S, a
                        assignLObj := rgmanager.rgAssignL;
3 S. w' W0 L* R                        row := assignLObj.getRowNo(GlobalDistObj);& m6 I& I2 e# z/ a, u5 E4 g. d
                        if Row = -1 then -- since 706 G7 H8 b/ b% {) j0 p
                                if lan=1 then
! c0 k% H; ~) ~/ p# q) x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 ]8 N4 Y; \) c6 R7 l7 D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! Z8 q+ Y! [" m8 P! O/ `# J9 K) p                                else
/ [3 P7 w8 {1 X3 c& Y, w                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* f) I' I9 w$ ?6 p( T; a                                                to_str("in docking station: \"",?.~.name,"\""));                                3 ]+ a3 r5 p. |( c
                                end;
2 b; X) J2 G9 w9 E0 ]                        else, z3 x+ j; {  B# O) |8 N% R6 c
                                @.Destination := assignLObj[1,row];
9 ?8 [2 U9 {* I% L                        end;                       
9 P5 M9 g. \5 }2 Q/ X. W0 }                        newDirection(@);
# o! ~& a' F5 `# J' U                        @.HasOrder := true;
* Z/ v; R  w3 J( S. m, l. x                end;
$ W- }. g" U# T. |5 c: K6 w        end;. E# V; @% Y9 Y; g" L. ?+ p
end;        -- of the method
' w) v$ b5 A! _) ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * [% H+ ^2 L" w9 L4 O, @7 q
" J. g1 R# c! i+ U5 g
这是AGV_putin中arrive的method。
7 a& M' S7 S1 y' {
7 l# v: {& d  B& s; W! C& o' V当到达物料速度越高时,这个报警更多,5 R( ]' u7 B4 u/ |. L2 R9 K3 I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) q0 H4 ~4 L" ]5 [' O# t- @程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 A( h, e) X( Q7 h! @
3 Y5 n. S) t3 W9 [' J7 }5 b
另外一个小建议,就是move,所有的move都可以这样
& @& T# ^8 ^, ]/ V9 \$ ?$ i* |3 K- yif not move() then debug end
3 d4 H3 m0 g. Z0 A5 s. p" ~% d这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# y6 b; f* c8 e+ p( v- d" Jplant simulation中的free libraries有AGV模板,
, Q# e3 T+ P$ B/ X$ o6 g( h里面也有案例。& T, |: @, O; S% u& `0 n! h& u
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" ~; c3 O1 V: y  R0 k
: B7 U: C" ^* c/ C
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: g8 w) ]6 P& f2 E- K, E
* ]' |% f0 _$ u- h7 O那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : l* N8 _5 T: f( p9 o
这是AGV_putin中arrive的method。
1 W; O! V+ I: E& s: e( Q
4 D/ {/ L+ ?! p; @当到达物料速度越高时,这个报警更多,
2 f$ w$ s1 }7 p: c! t0 J$ ]" C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 21:05 , Processed in 0.020386 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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