设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9019|回复: 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'
( \8 j- J9 o; s7 P' H*/3 \# T0 }. F# g+ H6 w: I3 A6 {. o' Z
is
4 w6 D: o" r3 R. y* g4 O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- M& b7 Q4 m8 W- j; \- @& V$ r, P
do- E# |/ e+ J7 o5 Z$ y: n
        Lan := rootfolder.Internal.Tools.AOLlanguage;, m- X6 a% G, U6 @$ p" {/ C# ~
        if current = @.Destination -- else return% F+ S% F7 f$ ^4 u# O; S) Y
        then3 P. V0 q8 i. q9 g# ~6 e' h
                @.Destination := void;7 T# O8 |4 N" k- d9 c- l( w0 h( g
                if @.occupied then
: g) B! T% A2 u5 g+ D                        part := @.cont;) w$ t' V9 u6 @  Z, K
                        @.transpOrder := void;0 k- v+ \* v7 \% F
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 R9 `5 a6 S2 N6 ^; ]+ A+ T6 p7 q( M$ m                                @,root.eventcontroller.simTime);' K6 g: [' R# {* b9 g* T) y, P  ~1 d
                        @.HasOrder := false;
* J) n8 N: V# D; N7 h                        @.DrivingHome := true;8 ~* U3 g) e+ d( K
                        rgManager.tryToStartTransOrder;
# [5 z" }9 m# Y8 V0 @                        if @.Destination = void: g- M% @2 |( j5 x
                        then -- no transport order for vehicle @
) Y; y9 G0 V2 L4 T9 y                                @.Destination :=
/ }3 d2 O  r% s3 G                                rgManager.nearestFreeStation(@,track.~);
# n) u5 B" ?: ]% d                                newDirection(@);   9 |7 Z8 J. [( o% |" B3 y  \3 s
                                if @.Destination /= void then
% a5 r( H8 O% {8 \& K0 u                                        @.Destination.NumReservation :=' A( O) m. A; e  C& b4 b& @
                                        @.Destination.NumReservation + 1;5 w1 V2 p: c+ M. o# S
                                end;7 G2 G3 V2 z! x5 r2 I9 x& l+ u
                                @.CurrIcon := "drivingHome";* g. D/ _  }: N
                                @.DrivingHome := true;# e# V8 l% _3 x+ \
                        end;
$ @: a4 |6 v6 c; X$ I. N: K3 S                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 g# E7 @, x; a0 _  }% C% T; E4 x  V
                        part := @.transpOrder;/ U# h& a" w' b1 s' ?+ D
                        part.move(@);-- load part$ j# S* N, R# [2 ]2 M% d; y
                        @.CurrIcon := "load";
  m+ G) G  p$ G. Q& J                        GlobalDistObj := part.globDestination;
4 L6 }5 a3 o4 s9 c* I8 M4 p                        assignLObj := rgmanager.rgAssignL;" s$ N5 g: w5 @
                        row := assignLObj.getRowNo(GlobalDistObj);
2 ~3 w0 W0 A" @) r; @: U                        if Row = -1 then -- since 70
! t4 h0 L! h) f0 i, Q                                if lan=1 then7 t" u3 D7 n7 G  P6 o
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: o4 @3 Y5 W0 Q0 S  `' \/ i
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- ?" @* a' [0 z; @                                else
+ j" i' C6 E$ y" E                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, P" _" E7 Y) J                                                to_str("in docking station: \"",?.~.name,"\""));                               
" B9 ?! Q7 ~7 Y3 [+ g+ m' |                                end;+ x" o1 k) a7 n! ^
                        else
& {" |9 X4 a2 v                                @.Destination := assignLObj[1,row];# g$ T* R: R" A  L# `5 f" G3 n
                        end;                        7 d) v4 n, }, y; r1 J+ x/ G
                        newDirection(@);
6 C8 P1 H& D4 M( [$ x% z                        @.HasOrder := true;: J! r- C+ I0 |/ J; e4 p9 s
                end;, j; Q1 O- T- P
        end;
8 U  c* g5 Q$ z6 t6 w, ]4 T* i/ xend;        -- of the method
. I# i/ D% E' w& D7 s2 g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . s  x( p3 e- V

( h, Y) S/ J* q# w这是AGV_putin中arrive的method。7 W0 D! T( b  m  ^# _) B, D8 @

: C2 B2 C5 y$ s/ }; G: T当到达物料速度越高时,这个报警更多,
5 E0 {2 G" ?# |! D) t* b: P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' S% n# k0 Q$ F7 v$ N) H
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% t; E/ g5 Y9 T2 ?0 P
, H5 d+ T: {# t另外一个小建议,就是move,所有的move都可以这样6 ]' l* J5 Q' v5 ~
if not move() then debug end' P* }3 r$ ~$ k. ]& J" J
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: R/ h, ^- ?# C0 d; ^plant simulation中的free libraries有AGV模板,
; Q( x3 H5 y  B4 H* ?9 S里面也有案例。
9 ~+ ?) S1 x; `3 D" ]" [& y8 B我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 O9 {) g" [4 [5 W" Q# W8 G' k( P+ }! O
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) C2 S1 d6 `3 u, }0 o  |/ @/ H; d" G! _& \  ~3 G; T; A8 ?
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , N2 B1 q3 |% D6 X6 h
这是AGV_putin中arrive的method。( G! h* _) h- _; a0 k) i9 o$ d8 ~% p0 |

) ~) ?5 t& k  F' ?! g9 Q( B6 b8 ~当到达物料速度越高时,这个报警更多,

# v) M0 E/ q5 O/ g5 O另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-9 07:34 , Processed in 0.017896 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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