设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7870|回复: 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'
+ K, N0 j4 R6 y* b, [+ f* S*/
* N1 C" a  i9 n. eis3 [: G2 z+ E# z! t: f9 Z  h
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, U8 [) |! E8 Y3 u
do
0 {  M0 l  v0 N6 N        Lan := rootfolder.Internal.Tools.AOLlanguage;8 J1 O4 s$ C1 X6 [6 I4 N6 H
        if current = @.Destination -- else return
1 [& y; L2 O) }+ `" G        then3 C% X8 V: h( Q2 X; }: S  T; R( ?
                @.Destination := void;4 b$ Y2 d& a4 _# Q& a, P$ u% {- c2 O
                if @.occupied then
  M& M1 D1 {: ^0 H) H                        part := @.cont;
8 [% i2 J- Y5 w, z! q                        @.transpOrder := void;
! U+ `4 I, V  ]' u, R0 E3 g( q                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ F  t  \* Q3 ?2 B& i0 M                                @,root.eventcontroller.simTime);1 h/ {  K$ w& H6 m
                        @.HasOrder := false;
% Y+ s+ i$ D% z7 V                        @.DrivingHome := true;
. l  o' |. C* S) h2 ~9 `- \                        rgManager.tryToStartTransOrder;
1 z8 D! ]! _+ _+ j( N: S                        if @.Destination = void/ w8 v- x3 }' `! H7 S
                        then -- no transport order for vehicle @
4 o  z) P/ A+ _0 s, f; W                                @.Destination :=
" s/ @( B0 E0 G/ N  T1 Z5 P2 N                                rgManager.nearestFreeStation(@,track.~);) l7 R6 T. ?3 q( \
                                newDirection(@);   ) ]$ I' N* G% j' F0 i( B7 f3 o
                                if @.Destination /= void then0 _5 h4 j5 D- ~  r" u0 N1 ~0 k! y
                                        @.Destination.NumReservation :=: C8 s0 n1 z- f0 b+ n+ B7 S! l6 k
                                        @.Destination.NumReservation + 1;, q& [9 k6 p! `. ?; h
                                end;
) `, W7 j/ `  u2 m4 W1 f# g5 Q                                @.CurrIcon := "drivingHome";
6 W0 I& u" s* P                                @.DrivingHome := true;
9 O3 g1 [1 {; ^) x; x! E/ N                        end;
/ e" w# y. F' `# W/ X$ e. ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 ~7 Z& F- N, o1 J/ I
                        part := @.transpOrder;
: I( p6 f5 }1 [5 `: I; i4 q                        part.move(@);-- load part/ D9 }" R7 o2 l! Y+ O6 ]" F
                        @.CurrIcon := "load";+ F$ m! U6 E8 b5 H6 n' T5 N
                        GlobalDistObj := part.globDestination;$ o. ?/ z' a1 ]9 z- \$ b  S
                        assignLObj := rgmanager.rgAssignL;
( I  m( J& Y7 ?6 [1 P: \                        row := assignLObj.getRowNo(GlobalDistObj);8 M8 o: M. A" @! }$ G
                        if Row = -1 then -- since 70
  G* H0 s' }* O0 [8 T. ?! q                                if lan=1 then
& {1 F/ R# ^  i9 H                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! `' m+ Z8 _1 R; O, _  S. ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 [1 Z/ h# J, V# ~4 ?
                                else
9 J  W9 U3 F& I- @                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  m6 t" k! t2 F3 ]0 q                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ [3 I+ g& Y. x' F$ v& j                                end;* D! \/ D9 S! ^; P3 S1 I
                        else
4 Q/ b2 X" [: [! m                                @.Destination := assignLObj[1,row];
' o$ c9 h; E) G; E8 O: N; A                        end;                        / [0 g6 K# e  @4 W0 C
                        newDirection(@);  [) P# H2 c+ V( G; O0 z
                        @.HasOrder := true;
/ U8 J$ S, C  i( o  ]7 i                end;2 e3 P  J/ N9 r' u0 [- B
        end;
6 W+ v' T7 S6 A( ^8 I5 D% W3 O  L) hend;        -- of the method
+ K  O  v+ T8 S6 Z5 i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 H  {. T8 I* t- W1 ?

6 B# U0 i; W; V3 N. t# Q9 t这是AGV_putin中arrive的method。+ m5 \: G1 m( ^& Q& Y
1 Y! O% n, f# s0 I6 s/ T# Z* `% v% D
当到达物料速度越高时,这个报警更多,
7 I6 K- n# N& n  [4 w. a" S$ b5 ~7 }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- y+ d+ r: `( [) I程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 ?! q9 j# y1 g

; E* J8 L+ ?, T+ @2 b另外一个小建议,就是move,所有的move都可以这样
; G. d  Z* Q4 H* B  D+ X) o& jif not move() then debug end* ^% l, L1 R$ z. d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 t2 R3 V5 z5 S9 p, r4 P4 g: Eplant simulation中的free libraries有AGV模板,1 F  Q$ C% [6 b" |; N8 u
里面也有案例。
! e& w  f- @! S& A# J; q: @我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 j1 z) W2 D( Y6 |- m6 s* o/ T
# d, ]+ a/ r- R+ v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % O7 P$ e4 {' g! H; G9 p6 C. l

' ]- |: L( W4 q% z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : \6 l" I) V+ h7 A4 }+ Y8 E
这是AGV_putin中arrive的method。
- s  b9 G6 {' ?7 }( j) w5 p1 {
- G) i. I# p0 D; |; f/ M! h* L" _当到达物料速度越高时,这个报警更多,
/ A+ H; G5 f2 g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 16:39 , Processed in 0.015576 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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