设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5630|回复: 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 g! [6 n& j: y7 V
*/! h. j7 Y# v! Q# X
is
+ J# M  ^6 {5 p        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# Z  I3 p& v1 E$ [do: l- b: Y* w  e3 N: h0 a( i0 D7 m# e
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: J, ~/ I7 S  K/ b, u" t0 h        if current = @.Destination -- else return) H/ s8 n8 l% r3 g: A
        then
% d/ q* a$ y4 Q% ~                @.Destination := void;+ s: D9 o# D( b+ I. y5 v
                if @.occupied then
2 _, `- B0 [6 J# e, Y                        part := @.cont;
# W8 S) L) M; s4 v- Q0 ]  m                        @.transpOrder := void;; y; M. ~) m7 N
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' ]! i6 {3 s$ O8 V. j  H( a+ k! e
                                @,root.eventcontroller.simTime);& L0 I2 v5 Z5 u9 c% Q
                        @.HasOrder := false;
" \' D- M& j" [) V. M/ i                        @.DrivingHome := true;
" `7 j9 j1 Z# |- |0 B+ Z                        rgManager.tryToStartTransOrder;
7 j$ P( q& M; L& K                        if @.Destination = void
, o% b& ^6 }% D* g3 n- p                        then -- no transport order for vehicle @) {6 ?1 {3 e; f  C
                                @.Destination :=  D  w3 A" i2 S
                                rgManager.nearestFreeStation(@,track.~);
1 d" z& V5 c, a0 s# w9 A                                newDirection(@);   
- C( A! g( `: x5 V7 e, F                                if @.Destination /= void then7 ~6 t7 L5 z% ]& w( @
                                        @.Destination.NumReservation :=* W8 s# c! E0 c/ c& P' X- [' x7 r
                                        @.Destination.NumReservation + 1;
" m. S+ S# d- E2 O                                end;
5 x3 e: F; M2 Y8 F2 o                                @.CurrIcon := "drivingHome";
# x- j; t9 i+ v; X( J                                @.DrivingHome := true;
) \( O' J& ~6 E' v) r                        end;
+ @" M0 i9 I6 M7 H8 O+ S7 D                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; b  S6 O% \* I% Y/ g
                        part := @.transpOrder;. y! Q' o0 j; Q7 w, Y! z& M) M
                        part.move(@);-- load part
7 o. _4 s9 v8 R: ]                        @.CurrIcon := "load";
3 T: F& R0 ?( \9 `1 r1 j% ~: Y                        GlobalDistObj := part.globDestination;
) t7 m4 r4 l" M! k+ r9 Q                        assignLObj := rgmanager.rgAssignL;. }4 v. D, e* {+ |2 ^
                        row := assignLObj.getRowNo(GlobalDistObj);
" ]- x, y" y5 z: E: a# Q9 T; G+ N$ m                        if Row = -1 then -- since 70
$ q  U& S; Y$ O9 Z! [) k: Y6 I                                if lan=1 then
* f1 {8 e* ]( L% U                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ j0 p. G, W2 y, e' v0 J                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' C' P$ n: H# e9 F  C! W' @0 S                                else0 E0 g) l) }  I' l
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: g, i3 }# A8 _  _) j+ m$ H                                                to_str("in docking station: \"",?.~.name,"\""));                                - H4 ~- C; j, J8 p
                                end;; j& V$ l; [9 f5 ]+ A' p; P
                        else. q* }! l; G/ Y( L% |
                                @.Destination := assignLObj[1,row];8 K0 z, k0 |2 g% L
                        end;                       
" V3 u( z( a0 X! v                        newDirection(@);9 t" \3 d- Y! \* r. G* D
                        @.HasOrder := true;# z+ g5 Z) T# Y; Q
                end;  p6 J: M; q4 M6 [) `8 A3 s
        end;
& {8 o7 i, t: E6 aend;        -- of the method
, Z9 |  s( K* K1 h7 W) V) z2 {0 T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % F' }  a7 t) Z

8 [' M4 `3 U( o8 O( P, e! \5 R这是AGV_putin中arrive的method。: `/ L/ J+ S, r" L6 E

- L6 m" V7 R1 ~8 ]' p* \当到达物料速度越高时,这个报警更多,
0 [! i+ S# m/ B9 L# ?, Q7 ]可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 ?) B% S# ~! U# K- u2 U
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; x/ G: o+ W/ o+ u/ z

6 B* R/ Y+ w+ P另外一个小建议,就是move,所有的move都可以这样  P  S7 C* ~! C# q& M
if not move() then debug end
1 x3 q. y5 ?" w; w/ t8 t$ k6 c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 J1 O/ i; e+ N( i! R0 r
plant simulation中的free libraries有AGV模板,  Q5 r- j/ j; Y
里面也有案例。& _1 X# g7 M* M. }" v) d
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. b# R; K4 x7 O3 t& @; M/ X* O: l/ q7 C" {& a5 M
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% Z( G) x2 T* r# n) k, s+ N
9 L" t, O$ w& o8 i那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 ~# s5 k) K4 L' F- h+ \这是AGV_putin中arrive的method。0 d, h$ G# C) o5 D* Q5 G
  g8 F6 y  u$ t2 i
当到达物料速度越高时,这个报警更多,
/ F6 N9 R* k- h/ D. x  K7 I/ E9 Z5 e
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-10 06:04 , Processed in 0.022653 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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