设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10034|回复: 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'
; }5 O0 v8 T7 m$ }/ J" b*/
3 t' W. @7 E2 N4 F" r+ v# Qis7 O# v: T1 b6 e: m( d+ E# H
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ ?# x- Y0 c- w
do
  f5 a. J4 j, N% X$ @        Lan := rootfolder.Internal.Tools.AOLlanguage;  E# @# K/ R# v3 ^+ u
        if current = @.Destination -- else return
$ P# Z) `& h9 _- [; l' B, j$ ^        then* t9 w1 ]  d6 I
                @.Destination := void;; N4 i) b( w3 e- T6 R1 S$ S
                if @.occupied then
+ c9 M. Y% S1 w& W1 s/ @                        part := @.cont;8 O. H  Y- l/ G  u; z/ w
                        @.transpOrder := void;
- S+ H( C7 L. r1 P1 K) F                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# G( I# a4 a! T                                @,root.eventcontroller.simTime);9 p7 k# x- L2 g' C4 x$ ^3 @
                        @.HasOrder := false;9 ?; _8 L3 M8 L7 ]% j9 [
                        @.DrivingHome := true;, r  J" Q; W+ [; [) J0 d! t
                        rgManager.tryToStartTransOrder;
# A; ?, x& j2 X) C                        if @.Destination = void
/ H! h0 @* y+ i4 T( ~: j                        then -- no transport order for vehicle @
9 B* f, b9 _1 X6 M                                @.Destination :=: R0 T8 W" r& z% M  ~: ~
                                rgManager.nearestFreeStation(@,track.~);- d. N# |% N, \: b5 L# j) L
                                newDirection(@);   
  j: H. I! }0 P0 H1 {/ {7 q& V                                if @.Destination /= void then
/ X8 t1 I$ |" G* q# `% A                                        @.Destination.NumReservation :=
5 O9 u: O' Y: U" Z& b, Y                                        @.Destination.NumReservation + 1;' ?' X( {& Q- A5 ?7 i- i3 o' P3 R$ A
                                end;
3 u: I5 T" B1 I2 E: n0 `1 \8 k                                @.CurrIcon := "drivingHome";' o# C4 ^1 W; D  g% Z
                                @.DrivingHome := true;
  y7 B8 \2 O' p7 Q8 X0 S7 _                        end;, m9 ?$ c7 C2 x6 Y; b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) G2 ~. ^) f) d- a, r                        part := @.transpOrder;4 m5 h- e, l) ~( y
                        part.move(@);-- load part
: J# z' [, r" `6 B4 C% o1 i. [" w( ~                        @.CurrIcon := "load";
( X/ v2 k1 g. c7 H: p* |& p  q) z                        GlobalDistObj := part.globDestination;
/ J$ H0 k' @0 n, H                        assignLObj := rgmanager.rgAssignL;
& }# X2 ]/ c5 n% k$ H, p                        row := assignLObj.getRowNo(GlobalDistObj);$ U' k; g5 t8 A' u, i4 C5 ^4 a
                        if Row = -1 then -- since 706 `' Y6 k5 m- m! b5 M/ B
                                if lan=1 then- V+ [6 [1 d; a$ M4 N# J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) C  y) j' r! q# O                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 c/ G% h  u$ D" m( o( B4 o                                else7 o0 P; g& D, h, a; t
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," g9 u8 i: a& o6 c& }: z: L
                                                to_str("in docking station: \"",?.~.name,"\""));                                3 ?% b& ^& d8 l/ ^
                                end;
! ~: u; b) r9 F6 y9 V1 @- O1 S4 D1 z                        else
! ~4 e" r5 ^) U- }! I3 C* d                                @.Destination := assignLObj[1,row];; ], d2 B% R& y
                        end;                       
, D. T' c/ i2 y6 O+ J: W                        newDirection(@);
/ `: }. N6 r$ z* o; G$ w0 U7 f                        @.HasOrder := true;; n* m* j, E* d  X: a1 H3 B6 I. A
                end;
  i3 K; @' X9 Z% k        end;
) V' E! a! c. N: a0 {* l5 Vend;        -- of the method" I9 A0 L3 u' X- ]- i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ J; W. a) [$ v* j! U5 x
' a4 N% w: v5 J这是AGV_putin中arrive的method。- [! X3 g6 t" h( v$ t1 R$ l" R
% |" ^3 z" w& U! G
当到达物料速度越高时,这个报警更多,9 h, J5 G+ w: f6 F, l8 f& N' u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# J% |. D3 w* y, O7 Q! h" y+ O1 r
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( S6 V; x, j! b, H9 ~1 r
5 a: I; v6 R+ o% }5 y  k2 m
另外一个小建议,就是move,所有的move都可以这样* D# _3 K: o5 i( w* r
if not move() then debug end4 T+ x( p/ I1 k0 r/ x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% h; P. s: r- `3 t& R4 w( Jplant simulation中的free libraries有AGV模板,
& c0 C+ b; a- ~" c9 {* W( a, R里面也有案例。+ }4 ^6 w0 q4 \5 B. |# y( {# ?3 H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: E" S2 m+ F! e' H. N& d& k
& t+ X7 ~9 ]/ ~' P
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / h5 J1 j9 v$ a9 N) J
" m$ |6 L6 E- }) p- y& C
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ G& C& t: y" j- U; W这是AGV_putin中arrive的method。
3 F% z1 ]( U# I8 T+ n6 \: R* `; B. k  H) r
当到达物料速度越高时,这个报警更多,
# \* Q% c' i1 Y; E2 S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-8 22:46 , Processed in 0.019357 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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