设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7854|回复: 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'. u# `8 V3 c/ [' q% ?. l% M/ m
*/
" p: j, `5 e* a" p& e2 j7 Kis+ P5 R/ |: V# J3 j4 @8 o( }
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 a; \2 V$ ?+ ]. Y( n
do8 h' T( `. C' Q% A5 ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;! W+ k/ d2 }: S4 {
        if current = @.Destination -- else return$ h6 Y- C& M* e( i  z$ J+ w3 x
        then! i. J' Z' T( N* i" x& L4 o
                @.Destination := void;0 ^( o9 }4 L8 G8 H1 U8 e; B: @  f
                if @.occupied then4 H8 @4 \5 d/ @' N' U) }, A
                        part := @.cont;1 S; f7 ?9 ~4 ^
                        @.transpOrder := void;
( P6 @. l8 t* Z* n                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. ^" L& B. E( e9 l! L4 [
                                @,root.eventcontroller.simTime);+ V9 p4 A8 i- a8 T# b
                        @.HasOrder := false;! n$ Z" h4 h: A
                        @.DrivingHome := true;! {  i7 Q1 K+ _0 m
                        rgManager.tryToStartTransOrder;6 ^  {/ _9 A% h! a
                        if @.Destination = void
! L" [4 g2 N; [3 ]. v                        then -- no transport order for vehicle @
$ ~. l1 U  K1 q" L3 t7 X* O, t                                @.Destination :=" e4 e: C) b# ~; r  K/ b+ F: c8 U
                                rgManager.nearestFreeStation(@,track.~);+ X( Z6 k8 E: B
                                newDirection(@);   
& u/ |# l* i9 [$ [' G                                if @.Destination /= void then3 S6 q5 [) Z3 K0 u
                                        @.Destination.NumReservation :=4 F0 c' v! u+ d, P, W8 ^
                                        @.Destination.NumReservation + 1;
; @& G/ Z/ R* H                                end;9 K. a  l( }$ M! r5 o" u$ e
                                @.CurrIcon := "drivingHome";
2 X. C) s# z1 r& {6 r: B% I                                @.DrivingHome := true;
2 j: n; W2 H, Y                        end;
, {! d( I! c6 d                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 |) ^0 [8 Z. o( _, T: \                        part := @.transpOrder;' w2 @. p6 Z4 i4 o) a. ~% m
                        part.move(@);-- load part
4 c, b" [5 `' z. P                        @.CurrIcon := "load";
9 K# R6 x5 l3 _                        GlobalDistObj := part.globDestination;; a& w% j$ p& h
                        assignLObj := rgmanager.rgAssignL;1 m5 i# g0 u. y+ u* D
                        row := assignLObj.getRowNo(GlobalDistObj);
+ t2 k" k& q, `+ o  K4 R                        if Row = -1 then -- since 70
+ a) m1 b$ @1 d                                if lan=1 then5 f" }7 K- l/ S* e% C' u; k% g$ O) Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& b. i, D' z; L
                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 x5 S: @0 G" E: u% x: E- u" g
                                else
) e% q" j8 z  N: j6 v  U6 S0 n# a                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ z0 z5 j/ R3 d! `9 a
                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ B: f9 a. d* V                                end;% J6 c5 \6 r# @; B2 |* ?  x/ Y
                        else
+ M2 h6 g* z* M                                @.Destination := assignLObj[1,row];3 t7 d7 j4 x$ f/ J3 y  `% y
                        end;                        $ o- u5 S. C% G9 k5 Z( v5 Y
                        newDirection(@);
! f3 G' o1 w, P  _. D                        @.HasOrder := true;. a; D1 {( ]/ F9 Q; @
                end;) s( a0 Q1 C/ L* Z1 b0 y, s
        end;
3 I6 f* ?( B) p* j6 x, m% eend;        -- of the method
  L! p" `  W7 C# v+ W$ I0 X' o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 f: A7 N9 Y% Z: P% q/ T; l8 J- }4 I, ?" Q
这是AGV_putin中arrive的method。4 p3 u: I8 w# s: p0 d

2 t7 Z2 _9 c! U3 @% [1 ~当到达物料速度越高时,这个报警更多,( X  |* o" ?- t3 m/ q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- l! Z+ [6 @/ c9 @
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) K; f4 v  L  v" @' i9 d& Z
1 `. N* s, M3 t; ^/ r1 s另外一个小建议,就是move,所有的move都可以这样( V4 b0 {5 @9 ^+ [6 h6 Y+ B
if not move() then debug end* d" I# K& z( l
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( E* r0 S: U: |0 _- ]
plant simulation中的free libraries有AGV模板,
% t9 q% e2 s$ O% w. n9 G里面也有案例。
$ W( I" t/ D( q( e6 e# m3 B我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 L" t; l. C7 t6 f* X0 x* s, K& i+ U1 H) K8 W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - \6 J! ^# p0 E9 K

3 F# \; F  \4 `那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ u( K+ |$ M/ Z2 T4 C) G& I0 a这是AGV_putin中arrive的method。
% a% n; l" q  F& q5 G( M. J% r7 S; k, t9 a4 a/ Z# m' B" W
当到达物料速度越高时,这个报警更多,

# R2 c( n5 u) v- A9 a另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-1 23:53 , Processed in 0.016598 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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