设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8029|回复: 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', ]6 W  h& G6 E  G
*/
: w/ Z1 q  N5 R3 X1 Sis. r5 g9 L9 u4 B5 h2 t; e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 C' x7 b8 e7 x
do
! j( c9 V7 _% u' t        Lan := rootfolder.Internal.Tools.AOLlanguage;
7 m  w* T& I8 ?        if current = @.Destination -- else return
9 s! X% u1 p+ b        then1 }4 s. m, b- N4 h& w2 h9 q# S+ V
                @.Destination := void;
, _% Z3 @6 z3 y                if @.occupied then
- w7 J( N& F. N' |2 W; @0 e+ |1 X2 C                        part := @.cont;; V( F1 J- T, t/ r
                        @.transpOrder := void;
; E' E/ w' s8 g. {7 i4 k# A                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ c; S5 m* B0 u' v                                @,root.eventcontroller.simTime);
1 J  d# n; Q0 `3 B: K* J# S                        @.HasOrder := false;1 a/ \1 k7 t9 [! }
                        @.DrivingHome := true;
1 n: c2 D& _- s+ e/ [# n6 ^. K0 C                        rgManager.tryToStartTransOrder;3 f! {5 o0 @; c6 G3 y4 |6 j
                        if @.Destination = void
! U! ?  b- w1 G7 Z                        then -- no transport order for vehicle @; D# I0 x" n2 [3 g3 J8 P
                                @.Destination :=( w5 i) i8 H' t& ]- d$ _( c
                                rgManager.nearestFreeStation(@,track.~);* A+ S  u5 D; R4 P) e. h
                                newDirection(@);   9 N0 ]8 G3 M% q' ^$ F
                                if @.Destination /= void then! ~* @: Q  h* k: T$ p# o
                                        @.Destination.NumReservation :=  }, [2 Y9 k" p
                                        @.Destination.NumReservation + 1;
) r& J# _6 H+ @                                end;2 f5 I, N; U" O
                                @.CurrIcon := "drivingHome";
" R  V( p6 s2 M+ q0 k                                @.DrivingHome := true;0 W3 d% x  S% o# T! J' V! a2 _
                        end;
* L# M4 x9 s- K. m! u                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! K# G8 m- i+ g* i0 m; r* I  q                        part := @.transpOrder;# K+ E6 w# K8 V7 y3 r/ I
                        part.move(@);-- load part. \' T0 d* C8 R1 R
                        @.CurrIcon := "load";- [& F2 I5 w/ B
                        GlobalDistObj := part.globDestination;& P' a# I' j% i  g+ M! K
                        assignLObj := rgmanager.rgAssignL;
+ R$ N2 n6 i1 o4 c) x/ \                        row := assignLObj.getRowNo(GlobalDistObj);- K" L, V4 I9 }" q' K# T, q
                        if Row = -1 then -- since 707 B. P4 N* q3 F# O
                                if lan=1 then7 R# r4 i+ K7 N" V6 g3 y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 D4 x4 d3 d3 z# |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ Q  r  Y0 n/ j* [                                else
/ G! A3 l4 }" j: |. z& h1 \3 J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 o- _7 e6 G5 `% ?! K                                                to_str("in docking station: \"",?.~.name,"\""));                               
# O4 V/ Y" w! g$ i                                end;* X& W) A5 w9 g+ N- r- B7 B9 U
                        else& A0 j, i; X, O/ i: K
                                @.Destination := assignLObj[1,row];
% U$ n% n) [) F9 ]- {4 W                        end;                        6 {7 N" V0 R2 e8 P- s
                        newDirection(@);
8 A- w" O, k9 _7 _0 w2 ?! ^                        @.HasOrder := true;0 X7 r! T5 v& ]: \) S- r  t1 s8 b
                end;
! L4 m" `2 ~( q& `' e  j& B& h        end;
( W  S( u4 Z. E* {- T) S- r5 c' Uend;        -- of the method0 f% N+ |$ [6 d9 Y; X2 m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" i. T$ ]7 ^0 p* T2 h+ i+ Q: ]$ T- H% I
这是AGV_putin中arrive的method。" b1 o6 G4 Y9 e! ]& T& H7 N

7 `$ W1 ~# [+ j当到达物料速度越高时,这个报警更多,# \1 D3 Y1 G- m+ s+ n5 C" R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# I% x" W' o: Y7 A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 D8 {5 C( {3 b# X3 ^- e5 z6 R
! w2 h- |; Q) q/ P另外一个小建议,就是move,所有的move都可以这样8 \+ `0 s) G% N: T# k) E
if not move() then debug end
; h; L1 W8 d& v7 U# A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 k! s7 M1 z. T9 Q+ s4 [' ~$ ^
plant simulation中的free libraries有AGV模板,5 |+ b8 }. j+ K, f# r
里面也有案例。
% h, I9 }! U: Y( n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- l4 P$ y1 {# z: P

1 v. i- \) F% V% s我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* r3 u: E4 X. N# g+ r' r" l  j( v; ]5 g8 G& D% j- E
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" |5 w6 H7 q# [" \1 c7 v这是AGV_putin中arrive的method。0 V& j& v! c. A
5 Z; A; J0 h4 @' N7 ]8 z8 p
当到达物料速度越高时,这个报警更多,
. C+ `/ v. \; a/ G, }; M
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-11 14:52 , Processed in 0.020953 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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