设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9772|回复: 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 ?( c6 M# W5 d2 y& ^*/* P  @7 ^% i8 W7 w' @7 i5 q
is
- u1 U' e/ R: L9 `4 ]/ W! s        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: v. b6 i  }; S  |% _+ \do9 j9 I0 A' u3 P1 w" ~2 }
        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 S( Q, b$ e: f0 W# a+ U/ M7 f        if current = @.Destination -- else return( O0 s2 n  Q) u! Z9 O! u
        then
# a' ]7 J: I+ I6 R- l                @.Destination := void;
. r3 v: C7 K5 x+ O- m" ~  F                if @.occupied then
3 M* B' P* K5 ~5 Q7 B0 h' N. ^                        part := @.cont;; R# q/ h6 n" Y9 m, H
                        @.transpOrder := void;
& ?/ r/ k" u% r$ ~7 c                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 T$ f4 B, S. a3 R1 t4 J  u# z
                                @,root.eventcontroller.simTime);
" Q: B* I3 i( s5 t' p/ U# A$ Y                        @.HasOrder := false;
0 J  B& y0 o$ p                        @.DrivingHome := true;: i. F$ N$ B, j* r
                        rgManager.tryToStartTransOrder;9 V: k* K) H5 f0 \6 t! w
                        if @.Destination = void( j. W& C* H" v# x
                        then -- no transport order for vehicle @+ L8 t& q* M5 Q+ l
                                @.Destination :=
. L5 m/ Q. ]& O( L/ }4 {                                rgManager.nearestFreeStation(@,track.~);7 l, H0 G1 p1 R7 |; y, a
                                newDirection(@);   6 Z4 b" O2 ^0 D
                                if @.Destination /= void then
+ ~+ r' d' R9 ]/ u" y0 c4 n                                        @.Destination.NumReservation :=
& m& S# `! d# D7 p' |6 g                                        @.Destination.NumReservation + 1;
5 q5 |, S3 }8 Q6 _6 o( U3 H; [                                end;# d- u2 X  \5 A8 L/ Q1 W+ f
                                @.CurrIcon := "drivingHome";
' n( ?9 Z4 A3 d8 r* H$ M( W- V                                @.DrivingHome := true;2 f7 Q, d9 `. x
                        end;
+ P6 M: d, ]9 e. H6 T# T                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 s" Z+ e( l0 }2 H
                        part := @.transpOrder;
* [  N/ H; B+ ^- d  G) j                        part.move(@);-- load part
2 r) ?# R- ]' w$ j1 O' p                        @.CurrIcon := "load";6 K/ }9 G4 Q( r! p; L
                        GlobalDistObj := part.globDestination;
& c6 f9 g% n9 x3 G' f7 A                        assignLObj := rgmanager.rgAssignL;5 P; X' O) o9 l, j
                        row := assignLObj.getRowNo(GlobalDistObj);
- h. U6 ]& Y/ f4 {' \                        if Row = -1 then -- since 70/ x6 g" d$ `( ^
                                if lan=1 then+ O! v" F7 y" G3 a3 p
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 S( d8 D* ], \. `7 G" p- ~/ o# g
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! e9 D. H( z. }2 \  X2 X                                else$ D4 \0 R+ l. r1 S- |8 v
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, y9 D. ?. h- U6 M8 ?& x* Q                                                to_str("in docking station: \"",?.~.name,"\""));                               
# x4 G0 s: E# W! w' \0 b: h& m                                end;
/ }0 V9 w; B4 X4 i5 J! N                        else, h9 l. ]' i: }5 P( v( B
                                @.Destination := assignLObj[1,row];
/ m9 k, y1 Q" n" A' @0 s! N/ N                        end;                       
- u; K, R8 S! n8 m3 U1 Q6 O                        newDirection(@);# P9 l/ l" B/ f: e% @' b
                        @.HasOrder := true;- v9 a7 [" d) c8 ^" @( U3 F1 Z2 y
                end;% a' b& F* a5 ~
        end;
6 J" N9 H2 B: Z7 Q# |end;        -- of the method6 C; h2 o% {8 Q. I4 E- `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; s. ]/ w9 c& U# {, o4 b+ z: i  T" T' y, O
这是AGV_putin中arrive的method。
, O! A# I/ }' ]  v( R8 l
" d# K# D3 W- z: G; k# Q  Z当到达物料速度越高时,这个报警更多,
/ ~4 ]' I0 E! e3 \" G7 I" i  J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 K9 _: ]& G8 r, T/ q  \, R) W: A
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 W# v( `$ C6 Y; B  \

8 S( Q5 d% u! t5 m另外一个小建议,就是move,所有的move都可以这样9 C5 i: N/ Z/ F+ [# M9 k
if not move() then debug end
! V9 l, R6 R, R* W9 M& h- q/ ~5 Z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( j' F* s. s1 h6 a. e+ p9 Zplant simulation中的free libraries有AGV模板,
- x( B7 k! w2 v* ]( B* Y里面也有案例。
# K0 Y' e: s9 J8 x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- U6 _0 B4 L4 C3 {: f8 G
$ _! P* u' [/ q/ L
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! G  ^9 }8 v. b) P4 C5 o7 A; _
. e! D% z! A5 n: D9 ]/ u6 @) d
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# \. P, V( ~6 q. v8 C2 c这是AGV_putin中arrive的method。
# b9 i4 K+ o6 _1 Z# T
0 o# l2 D, {! J, [当到达物料速度越高时,这个报警更多,

% K/ c. Y) p) M  e另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-23 22:21 , Processed in 0.022863 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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