设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8846|回复: 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'. I1 f8 A2 S+ b6 R0 K
*/
7 N8 z: {) U7 Uis7 G  L. a" }7 Q2 Y6 p$ ?/ s. m
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 y3 l9 o; @" o
do" Y7 j8 q% |+ c* W0 d1 |5 l) E) U
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 k. _0 L& K1 I) m: M
        if current = @.Destination -- else return
7 Y3 r) X% ~6 @9 T# t        then
2 e0 C+ s& @2 f+ [0 ]2 Q0 o                @.Destination := void;
5 _( E( F% w$ c0 E                if @.occupied then
1 n- Q" Y8 A+ O$ X0 V                        part := @.cont;
* B8 c1 o) l; ?                        @.transpOrder := void;( f  l  z0 ?' t1 v: G: P! e& a: i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' o9 o2 K2 `- R" M# f
                                @,root.eventcontroller.simTime);
8 [5 Z1 Q' b; A4 B9 l7 g# w! ]                        @.HasOrder := false;  l1 b3 m4 k0 Z' i( y/ f8 [" j
                        @.DrivingHome := true;
8 ?" t, @2 T- _5 G: y- d                        rgManager.tryToStartTransOrder;
0 o; O! C& v/ u3 x" w0 N) N                        if @.Destination = void+ ^% I4 j- t+ h* M/ ~
                        then -- no transport order for vehicle @
2 v+ ~; j; k$ U: j                                @.Destination :=6 g/ w% a2 U* q6 F: A( S3 K
                                rgManager.nearestFreeStation(@,track.~);4 B6 r1 i- |5 M" W! Z' ^
                                newDirection(@);   ) V) ?- x( u9 W! E) H, M
                                if @.Destination /= void then3 m. S& f6 W" \" B9 u: ?! Q
                                        @.Destination.NumReservation :=
! H4 t8 [) L% ?0 b                                        @.Destination.NumReservation + 1;
& g! s7 _8 @* T7 D( V& `8 K                                end;; w2 T0 t3 S' h$ T4 I% [
                                @.CurrIcon := "drivingHome";6 q- E- X5 ]9 ~
                                @.DrivingHome := true;
3 |/ F* F, H7 N# @/ C  Y: b                        end;2 ]- c7 I1 `: U2 }  _- h
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& Q9 r$ |) x! a- l; a8 o) z$ e                        part := @.transpOrder;
* C! d4 ?% }. g                        part.move(@);-- load part( ?. r7 }% T" h0 Q1 h
                        @.CurrIcon := "load";
% H" ?, |/ Y" S2 M# e& p; _, S                        GlobalDistObj := part.globDestination;
& c( L! v! w3 v7 _, w                        assignLObj := rgmanager.rgAssignL;% g. k/ v# s, W4 j$ y& \" {! A( I
                        row := assignLObj.getRowNo(GlobalDistObj);7 B! j! J' [% C! R* m
                        if Row = -1 then -- since 70! g3 W+ D# G) R& A. e1 f' w" v: l
                                if lan=1 then
# P8 _1 N( @4 d% J0 w                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 j% j5 C- r1 A/ k                                                to_str("in der Andockstation: \"",?.~.name,"\""));# \" o8 p/ u4 r2 J1 {$ m
                                else
% [* {' B* ^1 x2 u+ y, P                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 X" O# I* n& [: k
                                                to_str("in docking station: \"",?.~.name,"\""));                                $ w) T+ k' L  W2 T
                                end;
1 u9 a  I7 k4 l                        else
1 Y/ U. o' f: z7 H6 c' X/ c  y                                @.Destination := assignLObj[1,row];
: m7 k1 K. F  ?                        end;                        . m, c, |2 N; H) {: }, b6 D1 h
                        newDirection(@);. Y& o6 D9 S' U! _  q# }, |: }
                        @.HasOrder := true;
3 A/ M+ {* N' i                end;2 B' a8 T7 v" e9 i3 x! W4 d- f7 }
        end;" v. |8 A- ^; u* o
end;        -- of the method4 I  y* I% b5 c% S3 R. _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & O; N. E7 A# y/ H$ s

  L& r4 }1 b: J. n& u这是AGV_putin中arrive的method。
/ J6 B: b# e1 q8 {
7 F" J* o/ q3 a+ L8 p- w当到达物料速度越高时,这个报警更多,
1 S+ ]( y6 Z0 ?  |/ k$ {可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) H; O/ ]7 O& U8 j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 i' l. o5 z6 G$ [5 u1 N! r3 J( Q5 ~+ U7 \% e! H+ Y6 w
另外一个小建议,就是move,所有的move都可以这样' c, u. T# o% Y+ c- Y1 t
if not move() then debug end6 o! O9 a! h+ y3 N
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! F& Z' E8 h/ r- R# d* U, m, t
plant simulation中的free libraries有AGV模板,
$ @& _. l1 k( o/ L9 B) K# ?里面也有案例。
/ q. t, q# }) j  \7 e我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 W# v5 Y" R! _$ n
. J' H0 ^. \2 X) r; T我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! m+ S! U5 i& U7 F6 ~
) s( r% y. n" [) W% z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 r6 o6 L9 @2 g" t  |' W' q
这是AGV_putin中arrive的method。
% c7 u2 P! V/ ?2 L8 s# m# ^# K  m( Z, i
当到达物料速度越高时,这个报警更多,

& W) _( ~( |3 ^( |6 N( Q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-29 22:01 , Processed in 0.016910 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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