设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5624|回复: 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 \/ r  j8 u2 \( N9 _
*/. f9 c/ v% P# x# p  Q* v
is
& f7 N8 o0 D8 r3 @" \1 u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" L; w+ @+ X7 e) u( M- X& I) }do4 N  E3 z0 Y% ~3 W; i) S( `/ @
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) B' Q8 t: I: e        if current = @.Destination -- else return7 K# |1 k' X' `1 ?' J& j
        then- e" E. A" w$ g0 c; T
                @.Destination := void;
5 j/ I: @4 O8 }; _/ [$ t3 j                if @.occupied then$ i1 @, d0 i  p0 u; A9 z
                        part := @.cont;
- l0 W4 ^$ r9 s" h: J/ i: P                        @.transpOrder := void;) r( \2 t6 S1 w
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 I, n7 D- W' W8 V                                @,root.eventcontroller.simTime);: z: p  V$ q  n) i
                        @.HasOrder := false;
9 p) U+ q$ L- E                        @.DrivingHome := true;
# y* Y7 z1 N+ U, s2 W                        rgManager.tryToStartTransOrder;6 H& }4 S2 C  X
                        if @.Destination = void0 R2 j+ x2 F2 M0 s( O/ l
                        then -- no transport order for vehicle @" b9 ^8 f% \6 d7 {# T3 i
                                @.Destination :=$ \9 o/ C4 M- \# U- I4 P
                                rgManager.nearestFreeStation(@,track.~);% s! t% P7 E  L  v
                                newDirection(@);   1 ^1 O3 E$ c9 s0 J; j
                                if @.Destination /= void then3 O; T  z# R, m% p
                                        @.Destination.NumReservation :=5 Q3 D) z1 \+ ]- L/ u  w
                                        @.Destination.NumReservation + 1;
7 n1 ^2 {# @; f  V5 p- j* v                                end;3 D) v& f4 K9 P; t! h
                                @.CurrIcon := "drivingHome";
2 U3 l8 |# m6 {6 w                                @.DrivingHome := true;
; }: A, L$ w. ~2 ?                        end;: Y3 g0 F8 y* ?, P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( i$ C6 A1 w* ^& J$ p6 g
                        part := @.transpOrder;# p6 ]' K6 G$ e
                        part.move(@);-- load part, @/ I8 t( t7 z" T1 R1 S
                        @.CurrIcon := "load";% G6 O- a3 I$ `* H6 h" l8 a1 t
                        GlobalDistObj := part.globDestination;: e* E% J% F  {9 n  ~/ |
                        assignLObj := rgmanager.rgAssignL;
. X$ D3 b# @* T- R- l" @                        row := assignLObj.getRowNo(GlobalDistObj);
' l! p, f! n; Q( [                        if Row = -1 then -- since 70; D7 ^* `; G! ?3 c1 Y
                                if lan=1 then) y& `; N) Q% I1 C% X8 M
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: w7 w! i% ?0 I  L  _# b+ I                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ N/ S4 D- t  q9 O) A# i( W% w
                                else1 X! M9 f, j2 ?' L+ @
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 }  X5 M( \+ F4 }; ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                % |9 j0 I) h5 N+ h. C; v
                                end;
9 N; ]0 J# |; q( U                        else: ?2 b  X2 K( Z/ I7 n+ `. s1 y
                                @.Destination := assignLObj[1,row];
8 K- t1 j6 ]0 Y6 h( W  R6 P                        end;                       
% c/ E$ I8 U  `! l                        newDirection(@);
4 B, P7 ?& X) X2 H7 ]( d! ?                        @.HasOrder := true;
! C* ^, R2 p# o7 @1 {                end;- [( X" O9 W/ U4 [( z' k) s
        end;
. f% E* I. {! F8 m4 jend;        -- of the method, v9 H$ w+ W5 i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( d7 L& T# U6 O2 f; t' G
2 P1 P& I3 J9 I
这是AGV_putin中arrive的method。
& t# \7 ~/ z% ]
- r9 O, O+ v8 [2 F4 W# J当到达物料速度越高时,这个报警更多,
1 Z" o; Q. _( {# ]可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' M$ [4 x5 ?" Y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* M+ ?/ B. ]1 Z4 M

1 Q/ [4 a4 M! U8 N8 D3 W8 {另外一个小建议,就是move,所有的move都可以这样; J) R) [* P- Y5 m
if not move() then debug end
2 ~+ w: `3 B* L4 Y0 E9 O- @% o这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" n/ H- A! y+ n) w, E; [% ]/ ]) ~
plant simulation中的free libraries有AGV模板,- J( R* w- R& h1 h2 o
里面也有案例。# n" a) U  ]( ?. D4 ^) {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, {* C  N6 ]) b' U9 B8 [

8 o6 j/ N1 X! J, s7 E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 `/ i* ~' r& Q) w# Z* [5 n) f
5 q) N; U" y( d2 B+ F- j9 @/ n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 w: D  e; U) O* `  O. _
这是AGV_putin中arrive的method。
2 s9 m8 q( R" \7 g6 {0 L. F
2 i: E! @3 J1 r+ A当到达物料速度越高时,这个报警更多,

; R+ I8 w" P2 `另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-9 21:46 , Processed in 0.020308 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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