设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9342|回复: 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'0 a' R0 I! R4 u# L/ a
*/
: X& f4 q4 ?3 [) N2 r) l# s, Tis
/ p9 t) y- t3 i+ Q! @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% K' A3 ^' J  B: ndo- B4 h: o! X8 F! j  U5 Q. S4 _; R6 n
        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ ]" {9 }" @0 w0 Z9 h) e        if current = @.Destination -- else return" v# |% @% A9 ?% H! r1 {4 S
        then) u$ z% T- h, N! F
                @.Destination := void;+ m* f, y, @& _4 _1 d4 k! e
                if @.occupied then
5 F8 K/ w+ z' i* v8 K                        part := @.cont;$ W1 |" f6 M6 D" s! P
                        @.transpOrder := void;/ O. q! q) G% ]* L) l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 ^5 B4 l  v  v" K9 f                                @,root.eventcontroller.simTime);
& w& K2 g4 J( Q6 N                        @.HasOrder := false;
$ a, o' D, M4 u# x                        @.DrivingHome := true;
3 Z4 L  ^. p. S% h  a+ m                        rgManager.tryToStartTransOrder;
$ A. Z3 c% ]* E, X7 L                        if @.Destination = void# G$ ?! @0 x* j4 F& G" _1 W$ s
                        then -- no transport order for vehicle @
$ Z0 O* E' m/ j# V                                @.Destination :=6 J. a# O- }0 s$ M  H$ `
                                rgManager.nearestFreeStation(@,track.~);
, J# _  H2 b; e# b4 Y/ f2 e                                newDirection(@);   , s: i9 U3 W) L: B8 @* L6 t
                                if @.Destination /= void then
+ ~. J- j; J9 a) Y& F  D7 k' Q. Y& e                                        @.Destination.NumReservation :=8 ]( S" P. g% k" _  R
                                        @.Destination.NumReservation + 1;
8 Q) Z6 T- h  d) X                                end;5 A: K% B) ^6 J3 b; [# K, k
                                @.CurrIcon := "drivingHome";
/ ]& u# a/ |* F+ @0 p                                @.DrivingHome := true;( q7 E2 W7 g/ s" P2 W
                        end;# o+ D$ D0 H9 o1 ?0 E
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. Z4 U( E" {; E7 z) X                        part := @.transpOrder;+ Z) \4 N% d& Z: z% t
                        part.move(@);-- load part
" g% l; w) A2 M8 p8 m: b/ d% K                        @.CurrIcon := "load";; l; }: \. n0 N7 Z9 Y0 E
                        GlobalDistObj := part.globDestination;8 z/ @" E. K6 S5 [# T7 e2 w0 a
                        assignLObj := rgmanager.rgAssignL;& k" c& w. d! }' V! G6 D3 Y0 P
                        row := assignLObj.getRowNo(GlobalDistObj);
2 @4 d# x4 j) _9 S0 _) [9 p; D                        if Row = -1 then -- since 70
& q2 W! R8 ^. P3 k! z; G, A                                if lan=1 then
& F) C; G/ j; Z' S( C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  B1 z7 q4 Q4 G5 Z                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& g) \1 F! y& z                                else
' m. {& ~' H% ^( G+ ?/ X1 Y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( q, q; _1 p! t" B+ c" O, V                                                to_str("in docking station: \"",?.~.name,"\""));                                1 n6 @) k# e. N/ d- E# F# j
                                end;# e6 q  \* v6 Q& |
                        else
! l, ?6 t: x" s  P% E; l4 M                                @.Destination := assignLObj[1,row];
; S. E+ L* k" t: x: y3 }                        end;                        , r/ r. R/ \9 V2 T( \
                        newDirection(@);
1 W5 G1 o2 Z" q' R$ L% l& f' s  }                        @.HasOrder := true;
  \# y" j$ ]& s& \" I$ q                end;3 i$ w2 x5 p9 h1 ^6 p
        end;9 R8 Q8 k/ c& L+ G2 w, h' C
end;        -- of the method
. G9 I: J0 G9 A, J, O0 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- `* w" o! A; a1 _% K! X9 R! o
/ X5 D) ]/ x" k( @0 F9 D这是AGV_putin中arrive的method。. G$ o1 ?: P7 c" x- V- H4 L+ J

' Z4 P4 k% |; \3 Z, C, J当到达物料速度越高时,这个报警更多,9 \, U3 L, V8 X; C% ?8 J/ I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  l; C6 W- }! N; z3 ~, O+ v程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: j* L$ O% w6 x* k

- ?, S- \7 D1 u" A7 S3 H另外一个小建议,就是move,所有的move都可以这样
& Y( a4 O6 l. m4 [- v' w. Pif not move() then debug end
4 t% G9 }+ N+ u3 W( ^# _# D这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! i+ J7 H5 x$ ^! W; t# p1 e
plant simulation中的free libraries有AGV模板,+ n" V0 x% w# P2 n, t$ d
里面也有案例。
  q5 M" ^9 [3 M: v' [& T% }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 q' V* v* o! Z6 _2 ^* L
9 i6 B1 H* w: J8 I  k, d/ r  T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! b" s- R8 M' r
  Q# N4 I7 A; A; u; U
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; @/ {/ B# L1 p5 Q# u8 ?
这是AGV_putin中arrive的method。% u$ b$ G4 _- N* w, [  G+ k* x

+ N, Z0 ^; C8 X% P+ l当到达物料速度越高时,这个报警更多,

/ B3 n6 m* g* ?: @' j& ?4 Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-26 15:38 , Processed in 0.556642 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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