设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8101|回复: 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'5 X$ f  i5 P2 H* t  `0 \# D
*/
. w( C8 N  p0 r. J3 iis
# ?7 ?( r7 T" T! T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: D# j7 S- S  F3 u  s; a7 S# [6 h* i
do& g8 I" p8 c6 X/ p
        Lan := rootfolder.Internal.Tools.AOLlanguage;  k( Z: z/ ^1 X* N
        if current = @.Destination -- else return
* Y6 P3 v+ D) |1 [/ v$ E, |$ ~        then; ^) W0 e% d' I1 R5 s6 e
                @.Destination := void;
& V* Z# D; ~& J5 x                if @.occupied then  f5 S9 y9 w' \2 A( a; ]$ d
                        part := @.cont;0 C- C2 K# o' A) W
                        @.transpOrder := void;
- M: F% M' c3 O; r" E- t                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ j  w5 J* l3 G/ o7 }+ w6 b( u4 `& K                                @,root.eventcontroller.simTime);, G& @$ ?! }% ^7 |  E
                        @.HasOrder := false;8 w5 q2 L, J: A6 ?2 J
                        @.DrivingHome := true;) _. b# g/ u8 J7 B( {
                        rgManager.tryToStartTransOrder;
! w. @5 s7 k+ U                        if @.Destination = void+ h6 [( I* p* K" G6 ^2 Q
                        then -- no transport order for vehicle @9 X! p# x0 m: x, g6 j
                                @.Destination :=
* c6 s5 ]9 R" W' ?! ]                                rgManager.nearestFreeStation(@,track.~);
/ G9 H" Q( @  b                                newDirection(@);   % Y6 b5 K+ Y1 g+ z+ O
                                if @.Destination /= void then
$ J% n8 r) }2 ~7 t3 q/ Z                                        @.Destination.NumReservation :=7 y- K* f9 p7 g/ c5 i7 j  d
                                        @.Destination.NumReservation + 1;
) W! d# q1 h+ J4 P8 _3 T, \                                end;. N8 O+ d+ I+ B0 b& i0 {4 Y! p4 [  d
                                @.CurrIcon := "drivingHome";" h% _4 k1 A" h2 E2 g
                                @.DrivingHome := true;
1 s( X% h( P: y4 @, A$ K% I. k  G3 U                        end;
& L' x: ^. ~$ B6 J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 I1 r9 F" O# g* S
                        part := @.transpOrder;  \* }7 R( J& d0 N
                        part.move(@);-- load part
3 S5 u5 u* c2 Q6 \7 T6 r) x                        @.CurrIcon := "load";
+ f$ w1 [$ l! |# K1 h5 y; `                        GlobalDistObj := part.globDestination;. w) f0 F& c' F4 D# t
                        assignLObj := rgmanager.rgAssignL;
7 z1 B( k6 N, h# Y6 K. l( @5 p                        row := assignLObj.getRowNo(GlobalDistObj);
/ F& |( G5 t1 ^1 e. Q( d                        if Row = -1 then -- since 70
# P' T" C- }( I* h2 ?% X                                if lan=1 then6 ]% ~! G5 |0 E( K! N* }# ]
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 |5 j0 K, q9 K7 t6 Q" @  [                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 a0 n/ V4 D' s
                                else
% }+ e: o6 w7 f& n  I                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," W5 s9 V' K+ {- D% ~; Z
                                                to_str("in docking station: \"",?.~.name,"\""));                               
: }0 n8 g1 F3 G! h- W2 ~% e                                end;- W0 J* u  S: j$ `8 L. \9 p6 m
                        else3 ^  y$ `5 d* z9 I* J3 a' m! s! K" Y
                                @.Destination := assignLObj[1,row];3 M5 _1 ^# N: \- L6 k. l, D
                        end;                        0 h- K0 D0 \+ ^% K% {% F4 w
                        newDirection(@);; K" A. g( i. T. Z8 U
                        @.HasOrder := true;! @$ _2 Q" k2 v+ F/ P! Z
                end;
5 \$ A- }  b/ _! M! J& v1 F        end;* c) `  f4 X. \
end;        -- of the method6 Z2 L1 @5 Q7 s% o  w( F% E2 K2 z7 U) T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* x0 E! {+ }: ~( F. a) X* p
; C" [5 B$ x4 x4 y2 S) |* f这是AGV_putin中arrive的method。0 Q" E- P6 D) s) ]5 V1 K- |
; c: @: v0 [9 u+ R0 b6 A4 L3 E0 H. P
当到达物料速度越高时,这个报警更多,% [9 b* Z; W6 X+ j, Y7 ?7 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ z* K8 ]9 w( b8 K; ^/ M
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& y/ z# J* `6 x) r6 R9 v; Z6 z

- T% g5 {/ R" _/ C另外一个小建议,就是move,所有的move都可以这样2 }/ ?( k  s; X, ?
if not move() then debug end' L4 `  O  F3 d  k* a4 C, j) T
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% q0 }7 I; ]7 A* r# J0 T& P) O
plant simulation中的free libraries有AGV模板,
1 C* `$ W6 Q% q) _! j$ x; H里面也有案例。0 p, u. f6 h2 C1 K# D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ o2 y+ P3 J/ V: w1 {* a- v1 t1 M  x& s# @' A! M! ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, H7 p- x8 B9 K1 Q" ]% X  S. I
* l8 j& w/ H3 y8 u那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, B  H& B# W+ l. b' @6 U7 [这是AGV_putin中arrive的method。  L$ `, i, d, h( D
: b) q- f4 }5 z; `' W5 F+ _
当到达物料速度越高时,这个报警更多,
; f8 i  _1 S7 ^: E$ U2 |* e; I
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-14 18:25 , Processed in 0.022732 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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