设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6878|回复: 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': l& H  I9 j# s
*/
; F0 D3 W4 \" bis
2 m5 I$ a6 S+ h  i        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) t3 i6 S2 k1 a! _# s5 n6 W- Y8 o, Wdo
. }$ O* T* H' _+ ~" }- p. M        Lan := rootfolder.Internal.Tools.AOLlanguage;2 K* ~3 }) Y0 U2 \
        if current = @.Destination -- else return5 L1 \: a! K3 J  b- B; e) j' c; U
        then
! l: A3 E  z0 B2 C& g                @.Destination := void;! F* X- \9 `, D3 z" Y
                if @.occupied then
! D5 [9 U5 G/ U+ g2 z                        part := @.cont;4 W8 q$ {4 R- |0 R" T8 u% o% c0 a
                        @.transpOrder := void;
) c3 F( v+ b- l/ ]8 f                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% g! t$ n# m8 Z/ S4 R. m2 y" @4 Z                                @,root.eventcontroller.simTime);+ V' R* `8 s5 s7 A$ O
                        @.HasOrder := false;
/ f# S0 P( |, Q3 w3 [/ Y+ M8 s* I7 W                        @.DrivingHome := true;$ ?7 f+ R1 L2 H% G- a% ^* Y" ]
                        rgManager.tryToStartTransOrder;" b$ z' D- c( C8 I- |* ^
                        if @.Destination = void
# o4 Y: w% I: P$ L9 T                        then -- no transport order for vehicle @
! z- m. T# B. S6 s. Z                                @.Destination :=
, e6 @4 V. L5 [3 W6 N' B& O                                rgManager.nearestFreeStation(@,track.~);
3 r: ?+ R; k7 X$ C2 q6 z% @) R$ B                                newDirection(@);   
) k1 ~  ~4 k+ ?* F                                if @.Destination /= void then: y% I2 }; G" }2 j
                                        @.Destination.NumReservation :=
/ v& k% n6 ^/ `3 ^, z: F  Y5 a                                        @.Destination.NumReservation + 1;
! J  ~5 G& L9 K& Y  ]                                end;
3 ~! p5 y5 s  f% E% n" z0 [$ s                                @.CurrIcon := "drivingHome";
; B; U1 \( u- f% O1 T2 f5 U                                @.DrivingHome := true;- y! [, Z1 v5 Q* A/ _
                        end;
, K& `5 x5 w$ K5 N6 Q; s& T                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; ?5 c3 P  u/ X6 d
                        part := @.transpOrder;  u0 V' S' h% O9 V
                        part.move(@);-- load part
( h9 A7 H* h' y: k) z3 ~                        @.CurrIcon := "load";
) D3 X# B4 D& P+ h$ g  B                        GlobalDistObj := part.globDestination;
! q4 V+ d& y1 W7 C& L                        assignLObj := rgmanager.rgAssignL;" Y3 j, o6 l2 ?( a" ]5 s
                        row := assignLObj.getRowNo(GlobalDistObj);
: ]4 r# @5 _$ g/ O$ L# K                        if Row = -1 then -- since 70
- Q; o! k: K; N9 ~- i                                if lan=1 then" u# ?& e* b& O# I# v9 p
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 e( [* s) w, |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 P5 d1 `* q& Y& K" k  D, ]" w4 W
                                else+ E( t$ z$ K5 k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, O. s& k2 y8 c6 x, z; d' c" p                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ s  |9 U% y, X- x! c                                end;
' h! X; \6 ]. d+ o6 S                        else
& i% K! W3 T5 F7 a# v7 b+ x                                @.Destination := assignLObj[1,row];
# T$ h. S0 u2 i/ n5 B' p                        end;                        6 t9 w0 j+ @7 ~) j4 l) j6 u
                        newDirection(@);
1 D1 }0 y% ]) C4 R. D                        @.HasOrder := true;
  @! q% U6 i7 b4 M' m/ R+ L                end;5 P4 T7 Q; G- n2 Z! Q
        end;' t1 Q3 I) J  L; T& `
end;        -- of the method
/ ?5 x3 Z5 y/ z% }+ u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 X8 T% O6 C; N. h
5 X) k5 p7 c6 i  j9 K- H0 R这是AGV_putin中arrive的method。
% G8 ^1 b0 U- @6 N  n) k5 v
% v2 Q7 {  X9 B" D+ B6 c/ v( o当到达物料速度越高时,这个报警更多," k) B8 |5 o7 o
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 l2 R* j. R) J( P: s& x1 O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 q- {4 t# I6 T  r8 ?* h
, N% s. u3 D8 ]6 Q6 X
另外一个小建议,就是move,所有的move都可以这样7 Q" I0 ~1 t3 z
if not move() then debug end9 J  A# a& O+ ?; m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 |: s: f& u! L5 \
plant simulation中的free libraries有AGV模板,
. K7 i" P. _: y9 ~$ I- y  Q6 I里面也有案例。- E( \$ k% j6 c5 I/ n
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 Q5 M! a0 Z* d) S; a, O" l9 i) Q( T8 B5 k; `
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% M9 i8 P1 M9 A+ i9 n
) H. _0 `) X8 j3 h1 D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 \; n7 ]8 Z6 K这是AGV_putin中arrive的method。
6 c) B/ }- O4 S4 H2 R  A, @
4 r8 z( \. C. B9 F$ l, e- H* q- V当到达物料速度越高时,这个报警更多,
2 L( w6 Q6 T, i: K2 q" s& n' }
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-4 06:00 , Processed in 0.019709 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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