设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5478|回复: 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'  M" \8 _& }- N
*/2 N% T; b/ N# @- T3 t
is) T9 F" y! J: I; T- i. _5 K+ t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. e# d, ~6 G+ Ldo, F% Q4 M5 l: h6 V/ c) E0 }
        Lan := rootfolder.Internal.Tools.AOLlanguage;7 k4 K8 a6 t; q# r) Y
        if current = @.Destination -- else return
6 s" L3 R; ^& |1 U$ q9 }; P2 f+ R& \        then% X8 a1 x1 G( z# H, p) e6 r
                @.Destination := void;5 G0 e, F9 @1 A. x
                if @.occupied then
8 V; b$ U% G: g' E( K6 ~" ]5 a                        part := @.cont;8 G  ^/ ]' b1 R$ D8 d# E
                        @.transpOrder := void;
/ l) ?; e. p4 M! H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 x1 j' c- J$ y+ a
                                @,root.eventcontroller.simTime);0 K/ r( k( N2 d6 f  J) C
                        @.HasOrder := false;
. _! l' v- `  f+ h. _5 F$ I  ~$ f                        @.DrivingHome := true;6 U/ d, {5 p3 \3 Z( J" o- D
                        rgManager.tryToStartTransOrder;) v* M, J2 e. w2 b
                        if @.Destination = void
% E0 w2 a1 {7 _4 u% H6 d                        then -- no transport order for vehicle @& t8 g. u6 h" w# l3 j: w  G1 i4 U
                                @.Destination :=
& {9 H! W, k8 a! d$ A) L                                rgManager.nearestFreeStation(@,track.~);
( a( q3 b+ A' ~5 ~8 ~                                newDirection(@);   $ ^6 l1 p* m! w3 L# o
                                if @.Destination /= void then
) }# ~% l: ]2 F: w1 A' B                                        @.Destination.NumReservation :=
* y$ o# }+ v2 ^5 R4 N0 Y                                        @.Destination.NumReservation + 1;. ]2 p% S# L) I5 J! X& _
                                end;
& W1 |$ E; z: O, E4 x5 J6 c                                @.CurrIcon := "drivingHome";( l# T/ l- @' P& k) K7 G: o( Q. z" J
                                @.DrivingHome := true;- X( s4 o3 U& {( k* a4 v" ]3 K6 j
                        end;
' {, `0 k/ w+ c% L& Q- q  q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station, M! M0 P8 R% Y* H( w4 P1 H/ v2 E
                        part := @.transpOrder;5 `0 K* s; E! F
                        part.move(@);-- load part: ]2 @) W& B5 b/ I1 `, F; _; N
                        @.CurrIcon := "load";8 I$ W4 Q/ G* T# Z- U; g
                        GlobalDistObj := part.globDestination;
+ }* u8 B1 F1 Y; x. v6 X                        assignLObj := rgmanager.rgAssignL;
, [+ D  X& H4 m! O, M; Z7 Z                        row := assignLObj.getRowNo(GlobalDistObj);
" n3 M7 t' y! E; x& [. {3 h                        if Row = -1 then -- since 70
* ^6 j1 V# Z& _: J2 W                                if lan=1 then6 H" U% p0 |2 d% D+ {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. y; w0 n; i) R6 q: R' ~8 W                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% A3 j2 ]  M# y. _9 @& n                                else2 C9 p1 l% W- @! y* X" h
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) x5 B; I: y$ g  d. F7 h  z
                                                to_str("in docking station: \"",?.~.name,"\""));                               
, ~7 Y  f# j( P! z! q6 a                                end;( y7 N" H. E; m: N
                        else0 p  W3 X( \) D. j6 C9 d. @( A
                                @.Destination := assignLObj[1,row];
$ D6 g' J+ I+ y: o                        end;                       
& O: T8 P# M. x8 X  O9 v. ^                        newDirection(@);$ N8 V) G' j" |% D) ^+ s3 _
                        @.HasOrder := true;$ }! V  S% M4 e' o* D; p
                end;. \$ r; }  O. b: W
        end;+ f0 e6 d3 u6 J! _
end;        -- of the method
) V6 n: B/ T0 U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 c$ j1 {5 G6 c. p0 p
1 w2 d0 G, n9 u) J* |+ ~' W
这是AGV_putin中arrive的method。  t7 M7 G6 A7 ?5 O, a

/ t$ b% b: p) }9 U" u当到达物料速度越高时,这个报警更多,- P2 j3 b8 p- d
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: ]5 U( s  U  q, D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. ]# E( p& ]* s0 c
0 R- q" Y1 r$ U9 w' J0 B
另外一个小建议,就是move,所有的move都可以这样8 j, i- E) F. i2 l9 _; {* H8 L- t
if not move() then debug end* n) `( J; J5 Q3 n0 C) }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 e; ]: s: b! l( @& b$ p1 [- ~
plant simulation中的free libraries有AGV模板,3 r( _# j- A3 Z2 L5 r7 ]1 Q0 B* o& g8 E
里面也有案例。
4 p, E/ H( r( h( m) U2 k* V我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: \; x4 }9 U5 K! Z

6 r; W" O6 i, t" y1 O5 l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 S! q. i3 L( N

) ?! g; P9 r0 L: `% U" x, K& r1 U那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % [9 {$ W* d+ W; f/ w
这是AGV_putin中arrive的method。
$ Q$ V, n/ B1 K/ O" C
0 u* x6 H5 r# m" J# o当到达物料速度越高时,这个报警更多,
' y# c/ ~; x& g: Y1 O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-26 10:59 , Processed in 0.016252 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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