设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7013|回复: 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'9 ]2 ^' Z* N) |* h" K* K7 r
*/
9 T: x6 C/ f2 k4 C1 a9 Fis
' l5 S9 J) u7 l        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% D; p' T4 \- e  a' }) z
do) ~: s7 Y# X* b) y' S
        Lan := rootfolder.Internal.Tools.AOLlanguage;2 C9 K9 `; \; |( s) g
        if current = @.Destination -- else return
2 X/ `$ G- Q. I& H, m. s, O        then4 Q2 A1 _$ p, K, T
                @.Destination := void;( ~8 k4 `4 x8 V; @9 X- x3 H
                if @.occupied then- O4 e) L- o' _2 [5 R3 j8 M
                        part := @.cont;
) `$ Y+ j% g6 e+ ]1 A5 h                        @.transpOrder := void;( s* X9 ?8 U. d4 Z% T0 n* y3 i/ w6 c
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ ^+ k8 @1 a3 ^4 n/ n5 H8 _6 L( P) C
                                @,root.eventcontroller.simTime);" l9 g' J; v& k( E  L
                        @.HasOrder := false;4 @5 l) ^4 F) T7 g" ^0 y9 c
                        @.DrivingHome := true;# i% L! Y& a8 h/ W, n
                        rgManager.tryToStartTransOrder;
  ?) }: A. a( O5 \5 F                        if @.Destination = void
) D5 H6 q& W. l* t                        then -- no transport order for vehicle @% q9 m! o' [, Y5 \$ O
                                @.Destination :=
' |( F  {" Z, q) `0 X5 F) J; m                                rgManager.nearestFreeStation(@,track.~);# W1 U( r3 ]& V! f' f" K5 i
                                newDirection(@);   
- n! I; S6 v7 G( G) d- W% c2 r9 r                                if @.Destination /= void then7 C6 g1 D# ?" J& [5 ?
                                        @.Destination.NumReservation :=1 v$ Y, h5 K" m4 Y$ h; X! ^# [
                                        @.Destination.NumReservation + 1;
- ^" s" O+ |7 T2 i+ H2 n7 c                                end;
8 j* K" T1 w# n( J0 ~* K6 F: G0 ^                                @.CurrIcon := "drivingHome";1 D; u0 {; f4 ]  R
                                @.DrivingHome := true;
  ]% _2 K2 g8 |$ x4 H) U2 s. O                        end;2 J9 p! \; k2 B, u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 L& Y' M& A9 G+ c3 @
                        part := @.transpOrder;. M5 T' I/ G9 M6 F# M9 _
                        part.move(@);-- load part2 q3 r! `; X& d" F" b/ I
                        @.CurrIcon := "load";+ ^! P0 e- E% b0 i: }& L
                        GlobalDistObj := part.globDestination;
- h. m) f% M+ G  \                        assignLObj := rgmanager.rgAssignL;( {& C$ Y0 d. }+ j5 i8 g
                        row := assignLObj.getRowNo(GlobalDistObj);; `( q9 X! Q  w; ^
                        if Row = -1 then -- since 70+ s) p! `4 B. M4 b
                                if lan=1 then
: V" Q: a& L2 J9 R7 K2 k                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* z" v" b7 W: f1 y3 e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ f) e3 |0 q' \! K6 F                                else" G4 |* c4 E( `# ^$ _* Q3 H
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 J1 d6 C1 ^6 ?+ W9 ~, E3 M! N( i                                                to_str("in docking station: \"",?.~.name,"\""));                                . ^" |8 t; f6 k- M* _
                                end;
, H" O7 F+ G% g7 x. S7 q                        else, `4 X$ j4 n. T! U! N
                                @.Destination := assignLObj[1,row];5 B! c9 [) x9 a$ _/ z9 j" b0 Z! E
                        end;                       
+ z- _1 i, B) ?0 }' X                        newDirection(@);
) ~4 \4 N# o8 N% N* e                        @.HasOrder := true;8 g. A) q' ]! F0 \7 d9 p
                end;8 C0 a9 `6 q3 W8 s# U. s
        end;- C1 `/ T" Z3 {, e' Z8 |
end;        -- of the method
$ A$ u5 l- A2 r  i' p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 L( d1 N# {6 Y  o4 }, x

) a; C6 t- l3 V" ?8 v这是AGV_putin中arrive的method。$ D% B. e! a: z' F& {0 R
7 X/ j! `, n% U0 t$ j7 t' m  r
当到达物料速度越高时,这个报警更多,
) Z8 E$ H6 Q2 g可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. L3 j6 R+ Y2 `  z7 n* s程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! q9 ~6 s# |- V% ^

% b- n- C0 B' ?  V( t另外一个小建议,就是move,所有的move都可以这样
6 S3 K+ ^* [  Y# Sif not move() then debug end
9 t7 g' i) D+ e3 g9 k& }4 h8 ]这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- [5 |% X* e. G9 S+ n- z& {9 P$ Fplant simulation中的free libraries有AGV模板,
; I# v, ~. N" r里面也有案例。: [1 V6 U% w2 I) l* T2 S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, @! w5 [& b+ }/ Z1 [3 |( `
8 O1 R7 _4 b* c! a; G* \# a3 C我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) ?0 V" z" N! r/ s2 z) e; a- M6 S  s+ L8 W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 T; `) N6 f. `1 F
这是AGV_putin中arrive的method。9 }+ i! \' ]' I5 u

3 I7 X6 L" {; l, f0 d. b4 Q当到达物料速度越高时,这个报警更多,

, n* N/ C0 B% N1 q- U另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-11 06:48 , Processed in 0.020501 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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