设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5392|回复: 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'
' j. p9 O1 Z$ ?4 b/ n0 l# @*/
9 E. u6 r5 `' g) V6 \" ?# j3 i: mis5 _6 O( z, E9 C7 d5 O4 _
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, F1 f5 f0 A" h* D/ k" E; d
do
  c5 V) ]# T  W" r( l        Lan := rootfolder.Internal.Tools.AOLlanguage;2 V" l# x# m6 ]0 R! Z
        if current = @.Destination -- else return
# `3 J+ l* T' W; G& {2 k8 \9 D; b        then/ D" [; m, x2 E& V
                @.Destination := void;) D9 U0 t; D1 u7 G5 N. ^
                if @.occupied then
" W9 r, H+ {- ~8 K  d                        part := @.cont;
, ^: S7 X# i- l                        @.transpOrder := void;( D- I) c" o( S# `3 n  z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," r( }, i4 X% n: I% z7 h
                                @,root.eventcontroller.simTime);! Q  u" y; Y6 M- A
                        @.HasOrder := false;- n  a5 i/ w5 @  v
                        @.DrivingHome := true;
6 M! Y- A( \! Q* ^8 l# i) O  @5 w3 h                        rgManager.tryToStartTransOrder;! Y' [* p6 |2 W! f8 L+ h
                        if @.Destination = void
( t8 H# h& w2 {1 E7 K" n* w7 i: p( ~                        then -- no transport order for vehicle @
2 \% o& Z, @' w# o* i                                @.Destination :=
% ?' q' N; U# r" v6 u                                rgManager.nearestFreeStation(@,track.~);# ^4 [4 R* @( x, J
                                newDirection(@);   + X( P8 |& R5 L+ ^( F0 _
                                if @.Destination /= void then( V; _* z3 n/ `) J" a
                                        @.Destination.NumReservation :=
0 @, x; n/ m! G) q/ E                                        @.Destination.NumReservation + 1;4 D$ o; o2 i/ ]! ?, s6 t
                                end;) Y  q$ U8 M$ E$ L, w
                                @.CurrIcon := "drivingHome";1 w; P: H  i! d- ?3 j0 q" [; f
                                @.DrivingHome := true;9 x9 I, I- U* v& v3 q
                        end;
$ _& ]! t' o- j* s) l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# K9 O0 `8 m% W; {  W5 D
                        part := @.transpOrder;# B/ |3 c/ E% V+ ?
                        part.move(@);-- load part
) O! |4 l0 L- h$ ^- T4 e2 G                        @.CurrIcon := "load";
( G. N; s% _+ }8 |' l- ^9 G* b% [                        GlobalDistObj := part.globDestination;
2 p9 [9 B; Q$ {; X8 }                        assignLObj := rgmanager.rgAssignL;0 X. U! z1 @5 n9 k2 N$ G2 U$ z
                        row := assignLObj.getRowNo(GlobalDistObj);' r. n( H+ ]6 z! K) I0 h
                        if Row = -1 then -- since 70
  _; k7 j. p0 C8 t. Z* _                                if lan=1 then2 w, Z$ c; B. S5 i0 C" e; L: N4 Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 N+ [' r6 d9 D3 X/ {/ F- a/ {
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) X0 D) ?, @6 x: m0 U7 o                                else
% T( S6 j+ E8 q# [) L7 `5 i' p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 d  L3 ~- c7 {7 v. g4 `# @! h: R0 m
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& ~- s1 O3 B+ a3 d* M' n                                end;
2 m' }# o3 Z! c9 M$ G! _                        else
! x, j8 g% M5 R, {                                @.Destination := assignLObj[1,row];
" N% Q: B+ u8 a( f1 v$ F                        end;                        6 K/ x7 s5 W- B2 A
                        newDirection(@);8 e9 D& [4 n3 R8 o6 z, N
                        @.HasOrder := true;& d7 ~5 Z$ u- a3 i
                end;! ~$ I8 H$ P- t7 m
        end;
: i$ X# H# B8 o3 m) H- n: b5 Aend;        -- of the method
! T* F' F/ b' l% r! I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' W/ [/ x& P# Y1 p; O; |; `+ U, ]+ e; n; ^# Y! {
这是AGV_putin中arrive的method。
8 k9 N+ n5 D- ~9 i: b
5 ]! f- B. T- h% E当到达物料速度越高时,这个报警更多,1 d7 @) K% a% T3 I! f
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! C0 M! d; ]$ s1 ]$ ]# W4 t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) B8 ]4 u  i/ A, l! b( V2 e- k& V, r% A  Y# W
另外一个小建议,就是move,所有的move都可以这样
7 S: c2 V& }0 w5 h1 A! M" iif not move() then debug end( W4 D* a- V1 R; A  Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' W$ q- k; ]  w: [$ ]: h1 W  G' ^$ Splant simulation中的free libraries有AGV模板,2 z' k6 V: E* ~$ u" h
里面也有案例。
5 S$ ^6 w  u) u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* x3 E. f8 ?0 y3 e1 g+ C
4 S; d% A; Z, ^2 T" F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) h  A: y5 o/ }( N4 Z: i) a
0 R/ Y' a; N8 f% S; p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' N8 ~2 v+ V, H. _9 W9 k  o2 \- C9 d
这是AGV_putin中arrive的method。
* B: {8 G' S$ \* z; t6 {6 s7 I! K
. d5 A5 W6 y; V当到达物料速度越高时,这个报警更多,
) r; D! y+ ?: @4 E
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-19 16:11 , Processed in 0.027594 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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