设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7419|回复: 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'2 h1 O+ V) Z. {/ A
*/
! w8 O/ u4 g) X4 Sis% C' ]" N4 J3 \; X1 T' S
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" Z/ |& W  \4 {1 O! Q+ S3 e) d1 U  K
do  M- [7 l, w8 N( i/ ]5 r$ k
        Lan := rootfolder.Internal.Tools.AOLlanguage;, H) I) t7 C$ {: i5 Y+ U
        if current = @.Destination -- else return
6 M  j# h2 S: p0 R% S( E0 U+ r        then
" i. Q3 \' C$ Z8 r6 C+ H. }0 m                @.Destination := void;  u7 C4 [% K2 x" ~3 L
                if @.occupied then
8 h* u/ V) v# e0 m$ C; `) J                        part := @.cont;
3 ~1 n: L7 K3 D' M                        @.transpOrder := void;; |' ?9 ~* q( u% ~+ F0 V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 F5 B! ~: M9 M4 W% P                                @,root.eventcontroller.simTime);! z1 d* T$ N$ j9 d3 J3 V& c1 [
                        @.HasOrder := false;
; D8 |# @& t8 Y$ v* m                        @.DrivingHome := true;  J# ]; f& B! ^# r7 `
                        rgManager.tryToStartTransOrder;& c% }+ i9 G. c
                        if @.Destination = void! t: S/ L: ~. l  ~) @3 m1 s
                        then -- no transport order for vehicle @
5 s- h. T' @; ]$ `$ |# x! N; W: G                                @.Destination :=- v) J5 _! z  K+ P9 U3 q+ c
                                rgManager.nearestFreeStation(@,track.~);
  F6 I/ ^, K' i0 V1 f6 d                                newDirection(@);   / k9 v* H0 Q$ {
                                if @.Destination /= void then
- Q1 U# X6 h' I5 ]9 c                                        @.Destination.NumReservation :=2 O0 `) E5 H1 i
                                        @.Destination.NumReservation + 1;
: u% Y4 Y" Q5 n! o  n                                end;
9 K- f. x6 [, d% l: `3 Y0 Z                                @.CurrIcon := "drivingHome";
$ Q# ~% T$ i. b' ?) j                                @.DrivingHome := true;1 x: X8 P6 K1 q5 n) Y; q
                        end;  N8 d$ R( t+ f5 c! |
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ c& S" A7 m' ?5 s                        part := @.transpOrder;- X* v7 M6 z# X5 W, `5 C
                        part.move(@);-- load part
8 }3 z" w/ a9 ~, U1 E/ u8 O                        @.CurrIcon := "load";
/ }6 q% a3 M5 r. E9 G! r                        GlobalDistObj := part.globDestination;
+ G6 p, l, |: M$ N* ~! s7 m                        assignLObj := rgmanager.rgAssignL;7 \; G# J1 F& {5 i$ T5 G7 L1 x. p
                        row := assignLObj.getRowNo(GlobalDistObj);, k( r8 K9 ^! }$ Y
                        if Row = -1 then -- since 707 ]6 a, \+ U: _" |1 x- |5 X9 @, v
                                if lan=1 then: I" z8 r9 r( K, V" J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. R1 y/ |2 B0 @; }* K7 f0 S                                                to_str("in der Andockstation: \"",?.~.name,"\""));: L" O0 c6 q" Z: @$ m
                                else
- d" L8 |# T* g3 M  g/ j0 J( L/ G                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( }# o, u8 ?7 W- o) c, h4 u8 r
                                                to_str("in docking station: \"",?.~.name,"\""));                               
# D6 a, }* F+ b: ?- R' V2 N+ d' C7 A1 [                                end;
9 B# L! C- B3 [- G                        else
' ^" Y- _$ J; O                                @.Destination := assignLObj[1,row];5 G9 ?/ j+ ~& G7 j# h
                        end;                       
, f0 B% j$ Q; J/ z$ v7 [0 L2 V( C  h                        newDirection(@);
; H* J) x3 q, Z1 k( E% p# R                        @.HasOrder := true;
% S6 i" p  u- ]; z6 R                end;! P3 y, v! C: w  G
        end;
! b: M6 `; J% ]7 V# r" \/ m1 hend;        -- of the method
5 e& w4 D* ?+ w" E3 O! g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 L% t: t; A) i

" ^+ i: y$ R! X) r( V6 n/ i$ t这是AGV_putin中arrive的method。
% |& y3 l$ k' d
* a1 {: D9 I6 f% g4 Y当到达物料速度越高时,这个报警更多,
2 f; J  n  V0 j, ~  k/ y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" ^, q: n8 S: R' @+ Z9 h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 N$ u, ]/ H+ _8 N" ]" U7 P

: s9 Z6 R* F8 K" |# i& r; A2 [另外一个小建议,就是move,所有的move都可以这样
% R8 p: S6 Y- J+ ]$ c; b* Vif not move() then debug end( L$ z* }5 k! W! X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# J" s7 Y2 o' m/ P. `8 Pplant simulation中的free libraries有AGV模板,( V2 u0 N& C9 f( b
里面也有案例。
: L- r* k8 i/ v5 ?) v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" O' ~3 b4 E6 E8 z

" y$ J( K( y/ [1 p0 e7 t3 H# o# j6 H4 d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  ~! m" P; E; B6 U9 Z8 Z% M7 k( a* ]$ ]
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' b' ~/ T4 Y+ u9 P  w
这是AGV_putin中arrive的method。2 G" w* T3 R% F6 L. M0 r2 ?9 _

: O2 G, v" O  h& k; X. x当到达物料速度越高时,这个报警更多,

! D) ]: J9 Q7 v, J+ e6 l" a+ c另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-10 12:45 , Processed in 0.029187 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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