设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7151|回复: 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'  Q2 ^8 U. R$ J( {/ V  [
*/" X( l7 z* k1 ^
is0 H* L" h2 v! t: J# B
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& p5 u3 U- \$ t0 d/ d$ ^5 u. S' s
do
5 m; j% u* N& A' G( P! N        Lan := rootfolder.Internal.Tools.AOLlanguage;
, i: c: x8 k/ w8 d        if current = @.Destination -- else return5 t' A' x8 |! \2 T- j% K
        then. A: X# X7 }/ p2 K7 s5 i
                @.Destination := void;6 M# t$ B" B7 W7 L
                if @.occupied then
, G! W% M: T4 R                        part := @.cont;
/ i. r; K  ~1 m+ |- m) s                        @.transpOrder := void;
0 _/ b& d  Y: p% D$ [                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# h/ Q% `+ j" o3 q; H, r
                                @,root.eventcontroller.simTime);
  _4 n+ u. h% _. ^7 U                        @.HasOrder := false;
3 h+ p0 d* x' x  E2 j                        @.DrivingHome := true;) w. {" P9 A" j2 A$ x0 J9 b3 d
                        rgManager.tryToStartTransOrder;0 y$ L0 v8 f( v7 u
                        if @.Destination = void
1 A3 v' q  P8 i; R+ C9 B9 G                        then -- no transport order for vehicle @
. N2 N: z  z, L" G                                @.Destination :=
% E# b" A# v$ `+ ], S) t% _8 F                                rgManager.nearestFreeStation(@,track.~);
% V# V9 c6 D1 @. J$ K) u& V( L                                newDirection(@);   1 N1 g$ ~# ~6 U" w
                                if @.Destination /= void then  {" W- F* g) }! }0 l
                                        @.Destination.NumReservation :=
; O2 @/ K; w6 E0 O+ B; z$ @0 y/ a                                        @.Destination.NumReservation + 1;3 p' o; x7 [7 `; B$ G4 N2 m- _
                                end;; M# u, g: _2 p. Q7 t
                                @.CurrIcon := "drivingHome";
4 N7 y2 u* d- U3 C, e                                @.DrivingHome := true;
/ f, X4 d& r7 ~4 Q! w+ o/ F! I                        end;
- w; ]. W5 X4 |+ j' {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 H' _5 ^9 [* [! i% z
                        part := @.transpOrder;
$ z$ W+ F: T; c* t: ?                        part.move(@);-- load part
, T/ T  x+ m! b3 y' C! x                        @.CurrIcon := "load";3 b5 E$ }+ i; E; @% V5 b  e
                        GlobalDistObj := part.globDestination;5 n) }4 P% O3 @' T( k% H4 z; Z
                        assignLObj := rgmanager.rgAssignL;
8 t) w, T, z: r4 D- t$ E" y                        row := assignLObj.getRowNo(GlobalDistObj);- L% F2 a5 ~& v( h
                        if Row = -1 then -- since 704 T8 t7 t7 T7 I" ~
                                if lan=1 then
1 y( ^1 c3 `2 Z- d: n8 P, F: k2 e                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 v2 l/ }8 c5 Y- N+ g5 p5 ~0 N
                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ O: B! I5 I  \5 y) Q
                                else
: B) H0 |8 U3 u6 T7 F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* P1 {& t3 v% l- e) u
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& W% |4 c- P) K3 Z4 o) F% {                                end;" X" n) }( U1 s; g  S
                        else
: s8 x# C1 |7 ?$ e& U& _4 t                                @.Destination := assignLObj[1,row];
+ i4 [9 W# z  s! D                        end;                       
$ }# ^7 h+ [/ ]5 B* A                        newDirection(@);2 e- o. f3 f. w) s+ b/ j! e
                        @.HasOrder := true;: x' u& `+ f5 |$ |4 A
                end;& z# r1 C, u% B& O. E9 |: v1 c
        end;0 o, a$ h, `5 h" t, c
end;        -- of the method( g4 N( I0 U: C% O5 f, A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- R, C: d. ]% r1 |- Y6 M* ]2 [- a$ ?, a  R0 D) X9 A* \
这是AGV_putin中arrive的method。( L3 _/ ?9 b9 n0 J- ~
/ V4 E2 A  m+ x) f' [+ n$ Z
当到达物料速度越高时,这个报警更多,4 [4 c1 ?& @& I/ j3 A5 F
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! x% C  A% E3 G/ D4 D- ^( z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: j  W0 T, ^9 K- X2 m2 i0 K/ l

6 l( |, a0 N) I" e( {另外一个小建议,就是move,所有的move都可以这样% }+ l7 M6 l9 G1 d2 j+ m
if not move() then debug end
9 A: n  @: Q; T2 a. ^/ _这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! w  g+ F& m5 u
plant simulation中的free libraries有AGV模板,9 G1 g4 z( D- W( `0 U) U
里面也有案例。
3 b# q" f3 v- N9 T; ]" ?: C$ N我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: z9 w& `: _6 q6 ^& {$ Z
5 J9 h! ]) ~  `4 k) B% Y( x) _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - h" Y4 ~5 P& M7 z2 R! K' k2 H
9 D0 T- \4 D9 c/ J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; k- G0 _. y4 y, \- m) q1 `这是AGV_putin中arrive的method。. Q0 T4 D2 D5 v& e

) u6 s, H. o5 F' n当到达物料速度越高时,这个报警更多,

6 d- V* |, L2 D另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-22 06:25 , Processed in 0.018826 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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