设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9684|回复: 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'2 b2 g# |8 Z, R' N- A9 d
*/
/ M6 w+ T6 l8 O7 y. iis8 O, x! C' b" s$ F" e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" [; Y" {# U" P4 \( n6 ?5 zdo+ G% q4 l  y, T& q
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: k, K2 g3 d; K8 Q0 j. |' F  o2 B        if current = @.Destination -- else return1 a" a' O0 T% b/ T+ ]0 a' _
        then
" G' _6 n0 K  i8 j                @.Destination := void;
- Q$ p+ ^+ e( k( G1 [  C                if @.occupied then
) W9 V, j5 }/ m% Y* X+ I' D2 S                        part := @.cont;
* [; |7 T4 c2 _, E; C                        @.transpOrder := void;9 u. F4 L( r& a8 |% t4 j3 j- F5 M
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 K' D' H& S/ p) W6 ^" g
                                @,root.eventcontroller.simTime);) p& e, p( u9 n8 t1 ^, q% k, J
                        @.HasOrder := false;
* e# {8 j% c3 ]                        @.DrivingHome := true;/ Q  x* e+ W& y9 H/ Y* n0 H; ^) ?
                        rgManager.tryToStartTransOrder;5 n% q% p1 |( I- u& q
                        if @.Destination = void5 ~+ a2 t( I/ ?. J/ w+ ~$ ~3 E
                        then -- no transport order for vehicle @
( V/ T; h/ `9 B+ R8 F; |                                @.Destination :=" U% _* h$ V8 w1 ^% S% z" N: t
                                rgManager.nearestFreeStation(@,track.~);# ]* [8 C7 Q4 y! ^
                                newDirection(@);   
# K5 L$ j( ^1 A$ G" G                                if @.Destination /= void then! z7 m! i+ i( E- ^3 A, j* r
                                        @.Destination.NumReservation :=2 i' _  @% @7 A2 ~7 N$ m- f. E$ H. e
                                        @.Destination.NumReservation + 1;9 R; K1 [5 L( |$ \  @7 b
                                end;
: A: E. ]0 \. h" J9 U                                @.CurrIcon := "drivingHome";
8 n, _: a5 Q$ u  x8 N: }                                @.DrivingHome := true;4 f, w8 f. J. Y; v
                        end;! w; o( f: Z. E: ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& `( A7 ?8 _2 K" U! l, Q3 v4 @                        part := @.transpOrder;
- G5 c5 w+ b, a2 k0 ?* k( i                        part.move(@);-- load part
% Y4 i. k3 {4 r! N/ i: a                        @.CurrIcon := "load";- R9 e4 o: g9 z* Y, |0 I: M
                        GlobalDistObj := part.globDestination;
- Z) `' b8 E; f! ?) @' L                        assignLObj := rgmanager.rgAssignL;
" b) }! Y" h% w5 S2 _                        row := assignLObj.getRowNo(GlobalDistObj);
  n( k" E+ N$ J+ l; @                        if Row = -1 then -- since 70
2 J5 q$ d& q0 b4 r& _  z7 z9 C/ N9 e                                if lan=1 then/ _+ G) o! o. d% {$ f2 L* f
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' a# u# ]1 t  z  H6 I' W% G0 `
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 d: t, A) ^! l+ x% n" q  G* w
                                else
8 `/ K3 C! r" s" \9 O4 u# D% ]1 A0 d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; p0 ]4 b1 `- a/ a
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' A' F; t! o. S; Z& m4 E. M                                end;3 X2 Q' G- N: c* P
                        else% T, |$ ?" [1 Q* F
                                @.Destination := assignLObj[1,row];* {4 C2 `, C. q5 Y7 X& k
                        end;                       
0 D$ i6 Z2 N7 ?4 F7 {* M6 J                        newDirection(@);# x' ]" g% Y' N$ t' I$ K. J
                        @.HasOrder := true;0 [) W9 r5 C5 c6 }. I
                end;
- Q6 [0 {% Y2 L- k$ i3 D        end;2 p4 R4 [3 Q. n& L: E- @! B
end;        -- of the method% [" q# `  ]/ P: P8 Y0 F! o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ t; {- l$ j0 t9 z8 Z

. t/ ]; W$ m) l4 @这是AGV_putin中arrive的method。
) F$ _; N* i5 `0 ^; M) b) v# L) T6 V( A
当到达物料速度越高时,这个报警更多,2 H& i/ |0 t8 \8 P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: h7 g: ]: m! C* g
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: a1 [5 a1 c( e: Y6 Z  w6 N1 {. K# \0 Z3 o: P7 C2 D, P& S
另外一个小建议,就是move,所有的move都可以这样
% M' i5 U0 q* u: Q/ l* Mif not move() then debug end% z& ]7 w5 v  H5 _) l  {6 t
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 M' r2 t( M5 P2 N: P4 uplant simulation中的free libraries有AGV模板,8 L$ `, l/ b8 Z0 Z# G6 q
里面也有案例。  O: x5 T1 {0 p  ^) v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 v4 j1 g0 M& [

% {6 P% ]  S. c6 }$ F& b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # p& {3 l3 U- ~7 c
: g9 {) [, C# _) K9 c  u7 R
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; U; h! S5 R5 L1 W- p
这是AGV_putin中arrive的method。! A5 u9 D" g- E! G

0 B: @0 x$ W. W: n! Y( i! g当到达物料速度越高时,这个报警更多,

: j7 [3 u0 X9 K( ?& _7 I另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-17 07:24 , Processed in 0.019579 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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