设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4979|回复: 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'( e' ?; j: j7 @
*/
* T1 W% R' F! D. e) Xis
7 k4 L) k& L; ^$ g5 v6 L        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 I$ S- G/ t0 M/ T# Ido
( T" x, O- l: s/ ]( i/ z& P        Lan := rootfolder.Internal.Tools.AOLlanguage;) w! V- u. @4 j( J# f) _# R" a
        if current = @.Destination -- else return( u4 S1 l0 {0 x
        then* D. }$ s0 M7 M* k' v
                @.Destination := void;* P& U# B9 g/ c
                if @.occupied then1 |' o; \7 j+ k
                        part := @.cont;
  @6 Q: Q) D, f" x& f* D                        @.transpOrder := void;
' _5 g: o4 r9 ^7 Y' W$ H% P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 Z5 Q  i$ [% p1 _0 t& ?, x9 p4 e
                                @,root.eventcontroller.simTime);! R, m6 L- @& l
                        @.HasOrder := false;
3 d) ]7 G; C  M' ?' k, L2 G                        @.DrivingHome := true;/ w" c3 f; g5 k# m, ?$ L
                        rgManager.tryToStartTransOrder;  D8 t9 z7 j$ ]' {8 v
                        if @.Destination = void
% A6 G# A% |% O' H$ U  }7 l4 {                        then -- no transport order for vehicle @
1 j' h% a) P, k5 _) \8 o                                @.Destination :=8 S. Q; G3 [0 S; _2 N
                                rgManager.nearestFreeStation(@,track.~);
4 E% A0 \& E# M: v# N                                newDirection(@);   - ~* D# _, c# s# N
                                if @.Destination /= void then
% J( y+ ?- ?! k1 O! N1 w. M                                        @.Destination.NumReservation :=3 u4 k3 [% n" X5 V$ Y! i, I
                                        @.Destination.NumReservation + 1;
) C; J0 ?& Q! ~) ^6 m* Z5 Z                                end;
5 B9 Z" ?/ V, B1 h                                @.CurrIcon := "drivingHome";, k" F0 O9 `4 t: ?/ k! A' f- p
                                @.DrivingHome := true;( X7 k) E! f+ ]/ M! {' n
                        end;
4 L1 u; X  b9 c                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' F5 {$ X. E% N- t8 ]3 E                        part := @.transpOrder;
: j5 {( i! r, J" v                        part.move(@);-- load part
, j( O! _( M: M6 v: Q4 Y' ?$ L                        @.CurrIcon := "load";# c2 c5 V  S6 a0 J1 t9 x
                        GlobalDistObj := part.globDestination;
5 g4 i1 [9 [% w$ Q' E5 y                        assignLObj := rgmanager.rgAssignL;
$ P* |* Y: Q8 ?& G                        row := assignLObj.getRowNo(GlobalDistObj);8 l( F& r8 t% \* S
                        if Row = -1 then -- since 70
% `! i) v' U1 Z+ o  y: J1 u: W                                if lan=1 then/ e0 A# U* N6 S
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- f( B( d, [8 Q7 T6 E8 e                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 o( x; X) I/ Q7 z9 s9 g. P                                else# J/ O" i' j, n' {# Q2 A7 S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! N1 d+ o. _7 ~# q; h                                                to_str("in docking station: \"",?.~.name,"\""));                                $ X7 C( B% I! l$ @
                                end;! Q$ H# q% {# Z' T7 \+ `- D3 }
                        else
) q5 j' C% @, g* G" O. X- _3 p                                @.Destination := assignLObj[1,row];
+ q) y- o, v1 c                        end;                        ! p! N3 s* `0 M$ v
                        newDirection(@);; m, O  V9 {" v' y% {$ r
                        @.HasOrder := true;: K% B3 v; {0 V+ `; O" q' x
                end;
9 m3 b/ L" [% g% r$ `) ?        end;
7 A* I5 d; o$ h, J+ N  J, d3 xend;        -- of the method# {; I. ~1 D% _+ {( f0 ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # N! f2 ^% p4 v7 x4 X/ B- Z! c

! |2 `6 Q6 J' ^  X/ B, e这是AGV_putin中arrive的method。; H3 ]8 h% \  T- w  g% F" B. [8 a

$ y9 X3 S3 V0 D( y- j) C当到达物料速度越高时,这个报警更多,
4 C4 r. p1 R5 g, j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( @5 }8 O: I1 p; D' B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; r) `' }% F" S: P5 e6 c
) e2 B# t$ C% t$ i另外一个小建议,就是move,所有的move都可以这样+ h1 ]! Z4 v% j7 w. ~
if not move() then debug end
0 f4 b% _; a5 z$ k这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ v' D1 R1 K3 L/ A; {plant simulation中的free libraries有AGV模板,; r& i4 @9 }0 R5 {! K( i
里面也有案例。( @% \3 ?4 U/ L. Y9 X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 D/ o- ~0 A8 u4 j1 L+ b9 L

0 Z: m4 H* X+ X6 M- O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) a- M8 x/ f2 z$ c2 U7 i0 g- W2 v/ |
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  n& k6 F9 A. \' n6 p8 M这是AGV_putin中arrive的method。
0 i- I- R+ f( o1 `. n7 H
8 m% f) {0 m* z当到达物料速度越高时,这个报警更多,
, ^/ k+ F2 {( Q: E3 l
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-18 19:34 , Processed in 0.021265 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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