设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6570|回复: 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'% \3 k# M- P# t+ S1 I
*/
1 _3 E4 m5 I# h9 E) dis6 ~0 ?6 n4 Q' x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) m, x! N) J5 Z/ w  [/ wdo
- x/ H+ N- c3 b( E5 t        Lan := rootfolder.Internal.Tools.AOLlanguage;( R8 a( p$ x( ]1 D
        if current = @.Destination -- else return
$ i- H( A2 i$ O        then4 c  M' s+ F( }& s
                @.Destination := void;
- N7 N/ G% T, L: h                if @.occupied then
, a0 X9 L6 g2 [: x" C# R1 X9 ]                        part := @.cont;$ |2 Y$ F8 \/ e
                        @.transpOrder := void;2 h* s& j2 Z! B
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, J$ W! u- F, Q5 O! ^9 ~                                @,root.eventcontroller.simTime);
* F1 Q2 }  j. {! k" F  W" `" c                        @.HasOrder := false;5 L& z2 X! Z3 W( ^! [2 d
                        @.DrivingHome := true;
1 J3 C5 @% f$ Y2 _! q                        rgManager.tryToStartTransOrder;
, b7 I; l4 K  [* e' _/ X+ }; o                        if @.Destination = void
- s# n1 V0 E' X  b) ^# R                        then -- no transport order for vehicle @9 S$ L+ U: C! x( o/ @
                                @.Destination :=
+ U7 M0 B0 H8 S5 L, w                                rgManager.nearestFreeStation(@,track.~);$ ^; ^; T$ }6 a0 a
                                newDirection(@);   5 o  i, N% h# K$ D! Z
                                if @.Destination /= void then: W6 |  m$ [4 Y" V! D
                                        @.Destination.NumReservation :=
: I4 z- C3 O- H! t) D, H5 G) ~  v8 y" r                                        @.Destination.NumReservation + 1;9 Z$ \6 q9 ~' }4 p6 J1 x  h
                                end;& E- h. S' l* Z+ U" N2 E5 Q
                                @.CurrIcon := "drivingHome";
, H  [# l, T& W: O9 c                                @.DrivingHome := true;
6 N, S' h0 O4 |& C, K0 _                        end;
( G' T- U" M7 X" ~2 }- v                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 A6 \8 K# n, a# i" e3 W- L2 b/ `                        part := @.transpOrder;
* j% s8 V: c6 `1 n6 b! ^  l- l& f1 f                        part.move(@);-- load part6 b1 k6 _3 m/ n/ J( ]; n
                        @.CurrIcon := "load";8 a# Y6 `+ D) f: F/ E8 _- c
                        GlobalDistObj := part.globDestination;. ]. S9 N) M/ r% ~0 o
                        assignLObj := rgmanager.rgAssignL;
$ i! b  {+ G) R0 T+ E4 W: W                        row := assignLObj.getRowNo(GlobalDistObj);$ P7 V1 j3 {, U: `/ n8 x# s
                        if Row = -1 then -- since 70" j! U7 _0 r3 f
                                if lan=1 then- X# D* O# B# u% @8 g$ p
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- R% M$ ^/ N" z8 x
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  t2 f# A5 `/ |. V, ]' H
                                else; \( A5 [. v$ g
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 |, M! f& g+ ~6 k$ ?! ~1 G                                                to_str("in docking station: \"",?.~.name,"\""));                                * O+ y2 R6 U! ~
                                end;% ]$ O, b7 F- _/ h6 j9 P8 M
                        else
! O# V1 H  b& y2 I- z! J                                @.Destination := assignLObj[1,row];
  [" w' @% i* _2 r& J# [$ H                        end;                       
1 k% G' ^7 V7 [- B( o% h' J7 I3 {                        newDirection(@);" `; p' K/ y7 V  x
                        @.HasOrder := true;) I9 q3 j- v6 M& U+ g
                end;
3 f7 K( V9 o: i3 r8 u        end;
/ A; q! A) w# C0 H" i( q$ f3 ~' Zend;        -- of the method
9 O) g& P. s; p; V% R1 q( P; E1 [4 R% T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# q) k* A4 C* K' q4 ^  K3 |. B8 U0 z6 ^; d  `( |( w0 d
这是AGV_putin中arrive的method。
$ f1 a: [3 I6 o+ @: q2 @8 a+ _' r% ?. B6 M$ m- @- q
当到达物料速度越高时,这个报警更多,
+ h* @- q( D, l: i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 Q4 ^" {: O& L! o& K: ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, X! C3 `4 U6 Q+ q8 P
2 E, |: D( a+ {另外一个小建议,就是move,所有的move都可以这样
  b8 @5 h& w2 g; Z0 l+ Wif not move() then debug end
+ T( b& ^" R7 Y( a$ _* C' D; |这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, n1 z- f! m% L
plant simulation中的free libraries有AGV模板,
& q. t0 t! {  f5 e) z5 n' W里面也有案例。
1 u! k. a" T+ m2 N; F3 T2 t1 P- q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% D/ S8 r9 n# p: z( B
2 g& r, Q4 ]& q, c# i6 W" @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: R+ z& A9 h9 h! M; m
( {/ i- J3 h: j那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 K8 ?/ [5 B' Q9 k3 z1 }9 ]
这是AGV_putin中arrive的method。
, J3 l0 f# g- H4 l. t1 G
8 Y; ?5 U, Q" }( R8 S当到达物料速度越高时,这个报警更多,
# L- a2 A, z- g2 \6 C# F! z5 {" q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-13 13:02 , Processed in 0.020428 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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