设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9150|回复: 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': f4 H  U6 W$ q/ C1 w. L3 L
*/
  N8 y. M' H$ z. iis
7 |5 ~- `0 f/ b        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  ~# `% k* T+ Y8 K9 s
do# O" O7 W3 R' D% t& _/ y7 I8 u) z
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 B4 Q5 d7 l8 u1 K
        if current = @.Destination -- else return7 f$ {- Z1 E  n& j/ Z3 ^
        then1 X, M& k$ z1 n% Z: K# c
                @.Destination := void;
  w( J% I+ y( \                if @.occupied then
* C  o( I! E$ a+ Z9 V8 J2 X2 A                        part := @.cont;# u: O8 p7 N4 S# @* Q" H' |
                        @.transpOrder := void;
$ s+ `1 O$ y% b                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- B  P; x; Q  b0 _' Z
                                @,root.eventcontroller.simTime);' ^. c* t. J9 ]& `
                        @.HasOrder := false;
; l% S+ S! N9 K  m+ F                        @.DrivingHome := true;. F* m3 u* f6 q% X% X1 x- z
                        rgManager.tryToStartTransOrder;
6 h- G  c; L; l& o8 P1 i                        if @.Destination = void
3 K, K0 l& I& B0 E; ?6 M9 M* W                        then -- no transport order for vehicle @1 m" \2 O, ^, x( _. R$ \
                                @.Destination :=; _9 F( h. Q' q/ E8 T6 T0 e; B
                                rgManager.nearestFreeStation(@,track.~);
, \; s4 ^' E  D                                newDirection(@);   
( \/ [9 K+ Y) _9 Z7 O' U: ~! l                                if @.Destination /= void then
9 ~: g1 i' C* V/ K2 a8 W6 w                                        @.Destination.NumReservation :=0 r5 n; E: v7 U0 m- E, _7 |- L
                                        @.Destination.NumReservation + 1;
* V+ e6 }2 ]* ^3 J. s                                end;* M. Q% n5 W' R/ F% ]# p
                                @.CurrIcon := "drivingHome";2 Q2 t; t! P4 q0 Q; o" `
                                @.DrivingHome := true;
8 d  S1 }& S8 z4 I0 t  e                        end;4 h7 L7 b' W- @3 |+ D: K
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' J4 m0 u0 d1 C+ ~$ Z/ Y' x$ v# A                        part := @.transpOrder;
1 y6 p# t( b- t( l. K                        part.move(@);-- load part
& q* l7 ?& F. `* d2 t5 P1 @5 }: d                        @.CurrIcon := "load";8 U. \, R4 r, [/ e
                        GlobalDistObj := part.globDestination;' ]9 y! d( f. S, l; Z2 q
                        assignLObj := rgmanager.rgAssignL;* N7 ^$ v9 ~8 r4 i. J' h/ _
                        row := assignLObj.getRowNo(GlobalDistObj);/ x+ d* P- |4 R7 V" K& c) v
                        if Row = -1 then -- since 70
1 a5 G- c/ m$ C8 z+ _" R                                if lan=1 then2 o8 w- P4 A: r* R
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 \' m) K6 [# z1 Z& E( z  L                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" Z) o1 C7 j8 m6 C9 k                                else
' _- |* B, w% J; o' z5 V                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. Y5 M- W7 k/ v
                                                to_str("in docking station: \"",?.~.name,"\""));                                0 G. k. K- r2 \% O" y
                                end;
: `( t- ?% y( @& o. S* F, o                        else
' \& y* K7 p6 H& M, }% `& l/ }( H                                @.Destination := assignLObj[1,row];
/ u) p8 v$ X' b7 \/ A                        end;                       
( \; i' d' v+ i$ N2 R' V# {! ?- J                        newDirection(@);
1 F% ~6 Y' t5 W. Y/ _                        @.HasOrder := true;
' S  l; `/ Z9 @4 L$ a                end;
; i8 ]+ K. O0 M( }! Q        end;; ]1 X" s  V, r( c4 z( W1 m9 |
end;        -- of the method
* H0 p& Q; A& |1 e' ?6 D% L6 B0 ^0 x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 A9 q  s; V! n: T

3 e' Y+ m' g5 Q这是AGV_putin中arrive的method。- ]  M0 u% p. z5 `1 [9 [7 ~# k% P

7 E- G4 M- q& g* T/ \当到达物料速度越高时,这个报警更多,% k7 |, Z1 J2 t$ K' U7 @
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 F1 b, w: ]4 P9 X- w& ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) a4 L% ^5 O# V- `0 Q

- V) C8 s* i5 \3 O6 Q5 c$ ^另外一个小建议,就是move,所有的move都可以这样" C7 N# f; o5 I5 ]
if not move() then debug end
2 b5 k; ?8 w% x' B这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) K  `! m0 m/ C* b# W" O+ l1 |
plant simulation中的free libraries有AGV模板,8 M1 ^9 z; D4 r2 R7 [8 Y
里面也有案例。
4 B" p1 h* \/ ^- }2 s3 H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( n- ~( j0 |# S9 m8 @
  J% I4 N$ N' U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( |4 v( a9 a% _' u5 o& H8 r- x) `5 Y+ f7 m5 H
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 C/ n$ f% k4 K这是AGV_putin中arrive的method。
* }9 L/ |/ E# N: P
" b0 s4 c5 ?* I9 M当到达物料速度越高时,这个报警更多,

8 O  S4 z% q+ s( A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-16 18:21 , Processed in 0.022357 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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