设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8968|回复: 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'* S& R  U1 ]: y. ^* e8 m8 \4 C
*/
0 N7 `$ H, M& h& A8 A- [9 b& p+ `2 ais
: H$ @0 P+ q9 V, P6 a' k( W9 _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& N; H+ Q  C1 Gdo
8 r4 w# @/ X1 L+ D2 X' F        Lan := rootfolder.Internal.Tools.AOLlanguage;* c# b9 H: h- G! r* i; j6 k
        if current = @.Destination -- else return, J1 r) V* R5 I# Y
        then1 s# }2 q( {8 K, D; C
                @.Destination := void;
% C+ @% o4 G# k# I! X                if @.occupied then
  x, m+ ^$ B. A& B+ r* u( m" Z9 ]                        part := @.cont;
; {3 H& e0 R, |) h                        @.transpOrder := void;1 `* ?5 `% t1 ]. @* Y2 Y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ z. ^, ~6 y& x  A$ [8 r, K, p# M7 F3 Y                                @,root.eventcontroller.simTime);
4 r, J4 u& V& C                        @.HasOrder := false;* F2 [4 p0 N8 S# I
                        @.DrivingHome := true;% s( Q& v: t# D# e3 t
                        rgManager.tryToStartTransOrder;
7 |: u; U( r) X9 r/ M- N" J5 M                        if @.Destination = void: n+ A( w3 E) O( H" I
                        then -- no transport order for vehicle @
( I$ y+ ]* A$ Z, Q  ]                                @.Destination :=
+ b1 @1 J! @4 \! q7 ?7 m1 k, J                                rgManager.nearestFreeStation(@,track.~);
+ u5 v' V2 @5 P0 L                                newDirection(@);     V. t- x- C& u- d
                                if @.Destination /= void then
% D2 |& P" x7 }# n5 v8 K' }                                        @.Destination.NumReservation :=. B* t8 f0 L& g5 b5 ~, Y+ @3 Y" i
                                        @.Destination.NumReservation + 1;
$ @. }4 [  n  \                                end;3 A! p& L+ `) p$ V% l/ L
                                @.CurrIcon := "drivingHome";1 ?! ^2 C( t) L4 K; e) `
                                @.DrivingHome := true;, i' \0 r" E; t# b0 v6 J
                        end;
" e. k& q0 _4 i                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' c2 B* ^8 P/ J: E" i* n                        part := @.transpOrder;; F) g/ k6 U! j/ e+ p3 ^
                        part.move(@);-- load part
' h1 |6 V. g9 L- ^3 v! h                        @.CurrIcon := "load";
0 \$ I% q3 O  @$ M8 `# I/ {                        GlobalDistObj := part.globDestination;
' g# L& z6 e4 O$ B                        assignLObj := rgmanager.rgAssignL;
& N6 o% n" W$ i. w                        row := assignLObj.getRowNo(GlobalDistObj);2 X" u9 ]/ ]. w0 c/ K
                        if Row = -1 then -- since 70
# n/ K) ^& h+ n& I  K- w- y                                if lan=1 then
0 o9 U* \( k. B" k$ x  U                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 z! ~2 f2 [4 T3 m5 D                                                to_str("in der Andockstation: \"",?.~.name,"\""));- g  Z6 ?; V: q. ~
                                else$ @2 E) S$ b" i4 k6 Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' s& K0 M6 {; N  T& m1 [0 c
                                                to_str("in docking station: \"",?.~.name,"\""));                                % f; Q: t* R; Y+ {" r# N; Z* S+ }
                                end;; Y" C# k, n" n3 n6 D5 N
                        else- p- b+ ^6 \) }+ L  a0 k
                                @.Destination := assignLObj[1,row];
. Z( U0 P+ H1 r) c6 D                        end;                       
7 H5 n3 Z& b, y& K- l                        newDirection(@);& U6 X* C0 g) {: ~& K2 W8 L" D
                        @.HasOrder := true;
8 k- x) v( t8 `! B* b                end;2 X6 e1 \6 a. v1 q0 s
        end;
2 h2 A7 P7 |2 _$ S6 v2 Hend;        -- of the method! K* T5 {7 o! b% ^% S5 E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' z% `! f7 M7 r' ^$ V: E' [; M

# B, r" `: t2 Z6 X# o这是AGV_putin中arrive的method。2 H7 ~7 i5 R9 r8 G5 d0 g1 c
" a# U# p' W1 Q
当到达物料速度越高时,这个报警更多,
/ j: a# x$ x- i% U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 ^! c, u# c( }9 z' g% ]. N: U1 `5 ?% x' l  d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ {% t4 @- m8 G" t2 A* \$ v6 u- D

1 U4 ]' J2 F. g: K另外一个小建议,就是move,所有的move都可以这样! w4 j. f4 r4 X6 r: {$ n& z* j
if not move() then debug end
" p$ c* T9 H7 B! t/ R" d这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" n2 w. Z" H& p: X7 W+ Pplant simulation中的free libraries有AGV模板,, f' m- V1 a+ e# ~, Z
里面也有案例。+ [3 W: s! N/ D7 p4 U
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 J4 u3 |+ |2 a  r7 s/ o* }0 i1 E! b
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . Y. K% b" Y* S1 P, ~! w

; v% v! H; B! t# O- A8 |# l( |9 e那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 O5 k) F0 J) D+ x这是AGV_putin中arrive的method。; k5 ?5 |3 \6 c* H

, M' [/ G( p" R5 \& r当到达物料速度越高时,这个报警更多,
4 h, w9 T# Z2 q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 18:38 , Processed in 0.016150 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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