设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8306|回复: 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'
- ~  {# A$ q6 X* c/ G*/
8 B: {0 k0 \- m7 o  ~* c' a" ^is
5 i, |* @- [! N' i        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 W3 ]1 z9 @1 q6 h% Udo
, ~1 M" K: o6 M) a3 V        Lan := rootfolder.Internal.Tools.AOLlanguage;
  ^; G2 [6 ^4 s# N% w& T7 a2 Y        if current = @.Destination -- else return
% V5 }. _8 {! z8 [* _        then% Z: n4 z: n. W7 w; E
                @.Destination := void;7 d& z2 z2 e) @* x5 ^, ^
                if @.occupied then
# s+ @; Q- y, U8 N                        part := @.cont;
9 o" W- T8 K! g5 W  T) [/ [                        @.transpOrder := void;0 f! b* p& [- A# g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ f3 D5 i, Q1 p* D0 ^  w! m
                                @,root.eventcontroller.simTime);
( V. a1 M) g9 y8 {0 D                        @.HasOrder := false;
" z- f; j* P+ X, ?- P+ s' _                        @.DrivingHome := true;4 e7 B0 o% {+ h3 R% Z; J3 J- Y6 t% x, ]
                        rgManager.tryToStartTransOrder;
7 O! c4 W8 \. K! b+ V" ^3 Z) \                        if @.Destination = void  |7 Y' S6 e) L5 Q9 `
                        then -- no transport order for vehicle @
! U1 ^( k0 W2 I: i; G                                @.Destination :=8 |% r$ @+ Y  Q: a
                                rgManager.nearestFreeStation(@,track.~);
& y& J4 K+ j. K4 ?- F                                newDirection(@);   
; V' `/ P/ b+ Y                                if @.Destination /= void then) }8 Y5 q% ]2 ?1 N' M% Y% `6 k
                                        @.Destination.NumReservation :=
3 v3 I  f. S- n9 G: o( ~6 c) p1 o                                        @.Destination.NumReservation + 1;
3 o+ T0 F; l; c, Q                                end;
8 S. k  K1 h$ ~, J; r                                @.CurrIcon := "drivingHome";
. {3 L5 f9 O: A                                @.DrivingHome := true;4 A/ F' ?5 Y% C. e: W% E* a
                        end;
& o  }0 Z& @! T/ H# [. q2 \! \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ m2 T( ~" l8 ?8 I6 o$ w4 i                        part := @.transpOrder;
5 Y3 {( O3 ^  I% s# A6 X) X/ T0 e- A                        part.move(@);-- load part& b/ O& G* P$ Z, ^+ |5 {* H! {
                        @.CurrIcon := "load";! H- D$ }5 d% n! k! s
                        GlobalDistObj := part.globDestination;: V( C* c4 Z3 Y; i
                        assignLObj := rgmanager.rgAssignL;
$ X+ X; L- }0 q9 Q& e0 y9 o                        row := assignLObj.getRowNo(GlobalDistObj);
) ^) Q6 q/ W9 u5 l) y5 A3 x% ?- ?4 x                        if Row = -1 then -- since 70
' K5 T3 ?8 E$ W# }                                if lan=1 then9 w- I; j2 J) y; o# G4 I9 b
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 K( S' A& A# N9 s4 a4 \& V# c
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  E( d7 a- Q7 C, g
                                else
5 D0 D2 I. Z  Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 w0 G# M) f3 h: F+ F2 q
                                                to_str("in docking station: \"",?.~.name,"\""));                                + O7 e+ R; v- I5 D. W0 O, A
                                end;
" u  Q! s6 K8 N& I. v5 v, {                        else
% A! b7 r! r; g2 C( O: E) U2 H9 r                                @.Destination := assignLObj[1,row];/ S4 Y* y2 r/ G$ l; r0 s$ ?
                        end;                       
* O% Y8 j2 h8 d3 a                        newDirection(@);
' R6 O% W/ s! ^+ M$ C/ Y( W                        @.HasOrder := true;
" A% P9 w; v  ~                end;
+ u' s: h% u2 p! v8 f# ^, R# F        end;+ c1 h' }  y4 e; I
end;        -- of the method
7 \- x9 e( [, w1 g) Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : {( j0 j8 C3 y' ]' y2 `6 \7 ^8 d

" |( L- l3 z  m" [& X: _; Q, h6 t这是AGV_putin中arrive的method。
% f' M/ k9 [5 G* e  Y) O2 Z' ^; q
6 ^% g7 |0 s/ {) M  l9 d1 A当到达物料速度越高时,这个报警更多,
, }4 |: n) \( k$ r  k$ O2 N1 o/ o可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# h6 v  h$ `9 ^6 n8 i
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' m8 P4 v8 D' J. |
% j8 P" }. |% {3 B另外一个小建议,就是move,所有的move都可以这样1 @* P& c9 u& z" Y# ], k+ _
if not move() then debug end
6 I) E* V# k  R3 A9 u这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  ]) c! X  C; _
plant simulation中的free libraries有AGV模板,% K/ k: ~. e8 O0 g& _" t
里面也有案例。
  m3 i5 o# G. z& j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- w: u. ^# Y# h- z: z- ?9 p# u
" N% E  U! T9 \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  ]& y5 X  |0 u2 |6 R- N8 s$ l2 ?! [7 r& g9 N: u
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& i$ i0 Q& \; p# M, z这是AGV_putin中arrive的method。
! I" p4 v9 P/ V& O0 {8 _
$ x9 u( }; a; a) c4 R7 X3 F" N. K: U2 e当到达物料速度越高时,这个报警更多,
) _/ c; f+ m1 u! s6 B
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-26 19:32 , Processed in 0.021796 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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