设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7590|回复: 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 g  d$ a) I6 P7 Z* M*/
/ w2 ]' q2 V. |6 ^- wis
. d8 N6 p  U1 E, ~+ R+ r+ f1 W! r$ D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 q7 }( E9 i- Y% y) C; A
do
, y0 V% _3 W, y        Lan := rootfolder.Internal.Tools.AOLlanguage;
) z; s0 k4 h' u- H  z$ N6 D        if current = @.Destination -- else return
* Q; U' Y. Q+ I1 j        then1 \$ I" y6 C4 d. n
                @.Destination := void;9 l# ^) W) Q0 t. S1 f% w
                if @.occupied then1 R+ L, Q; C/ e/ h$ j: X
                        part := @.cont;3 u% f! [% f& i( x
                        @.transpOrder := void;
; S6 \6 Y& b7 `6 S& E) _1 p2 [4 y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  _% s/ U. ]7 M                                @,root.eventcontroller.simTime);! x# A7 Q+ Z9 W* Y7 j* l' `
                        @.HasOrder := false;
* ^( P0 {9 X( ~% J. l% w                        @.DrivingHome := true;9 s! ]2 a, A9 ~, y+ b
                        rgManager.tryToStartTransOrder;
: r; g' I6 _/ ?% K8 N+ ]                        if @.Destination = void
- j- y1 ^: J) V# J3 k9 P: a                        then -- no transport order for vehicle @9 j  ?" P* Z) A2 g& F% W
                                @.Destination :=
7 X0 s8 m# @: F9 o  b4 i$ q                                rgManager.nearestFreeStation(@,track.~);
6 h# B1 v* ~$ ]1 ]3 E5 U* T. ^; ~                                newDirection(@);   % I5 @9 U( v2 ?$ z
                                if @.Destination /= void then
6 I) m" C; O  b* a! X& U0 L                                        @.Destination.NumReservation :=
+ U. Q+ \' G; N$ U; R( @0 E9 }* s) c                                        @.Destination.NumReservation + 1;
8 D, p4 s7 F5 D0 _' G                                end;1 U! @4 v# b: X) t; {7 |
                                @.CurrIcon := "drivingHome";3 M3 F3 H. B. M, {5 ^6 T
                                @.DrivingHome := true;  r1 ]% k# d2 J' R. e5 s+ m7 r
                        end;* S4 E1 r- g' b; _$ K3 @9 S, f1 y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 ?2 e( g* O1 R/ N8 b9 n5 W
                        part := @.transpOrder;$ K+ U8 u* v5 a
                        part.move(@);-- load part
: q: H' m8 M  z! u                        @.CurrIcon := "load";! Z9 K% z7 _4 Z9 k9 d
                        GlobalDistObj := part.globDestination;8 s9 E" J( F: U3 {
                        assignLObj := rgmanager.rgAssignL;! t% ]6 w! c: [3 \" p, b: O
                        row := assignLObj.getRowNo(GlobalDistObj);9 {0 D/ M- {% ], I* z8 `  }6 f5 x# G
                        if Row = -1 then -- since 70: y) K& D. a3 P2 ?+ @9 ^
                                if lan=1 then& `5 ^! P) W- c6 O9 u) K
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- r9 l5 A8 n! @1 A! ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 _' K4 `. v: z5 j
                                else
! m: K! [/ \, }7 Z3 T) f7 I! O& }/ z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 p7 U% o5 `* d7 A3 l                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 ?! F* Y- b# H                                end;4 b8 y, Q( F# `3 {0 v1 i
                        else, p# Z, ~3 D3 w2 H( H  B
                                @.Destination := assignLObj[1,row];' D! F* t, u( X+ E! F
                        end;                       
: ?, T# N+ N/ G6 g& J% ], B$ r                        newDirection(@);. z$ @) _" w3 c6 f. D
                        @.HasOrder := true;
" b: z* |6 E* E9 ^. i3 D                end;
2 C9 H. e  g4 S        end;
. }+ I; ^2 b# b: w! y. e* Cend;        -- of the method% P! i. m. Y& q1 j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 }- V# s3 n, K% G/ _" ]- [2 F% u: p/ r# n
这是AGV_putin中arrive的method。) h2 L6 W4 x/ P" A$ }& E; u
/ D; L1 f, d5 I+ J0 N$ J& C
当到达物料速度越高时,这个报警更多,
) X, k4 e- ^7 P) O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 a& m/ V( ^0 K( u! A* R, H程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 L- c" v8 F/ z* K. F* Y5 E

2 F$ z$ r' k3 x  `5 H0 p0 p另外一个小建议,就是move,所有的move都可以这样
( v( ^/ u8 J: G/ q7 P- bif not move() then debug end1 {2 r+ `8 _) B7 v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) R/ N7 E! I9 q* Z/ Splant simulation中的free libraries有AGV模板,
! A* C3 y* M/ |2 y' u. e里面也有案例。
2 O4 b8 r% C; H! }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% C% l, U" B9 M5 h8 O4 S9 w4 k) i/ ^8 {
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 r/ `% h9 h3 m3 u8 C0 M# ?) i" `
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 Q9 g  l  A% T* c; S( i4 E- L这是AGV_putin中arrive的method。
3 G5 f/ `. G, C% e
, M2 @% ~( w. c8 G3 z: c( a1 W! r当到达物料速度越高时,这个报警更多,
/ x5 C* b1 d: U  Y/ Y. P5 @6 Y0 {
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-19 03:24 , Processed in 0.019034 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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