设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5808|回复: 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'4 c# W- }$ L- E6 ]2 M. ~
*/
+ w" j- s5 o$ `8 s6 P9 ]& ]: }is/ ^% y6 }8 ^# \, C& x( Z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 ~6 ^; _6 I- ^* W! ^do( z5 y+ u$ H0 G( h9 z8 w$ ]
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, t! W6 m9 `+ N" z# m9 L( A        if current = @.Destination -- else return
9 f$ s5 x' r$ ?; X, [! t* A( W        then  J; [! ]& W4 z
                @.Destination := void;: q7 ^2 g  B: z7 K; [* l
                if @.occupied then
( ?; X9 ?& l6 \( u                        part := @.cont;6 Y; @5 X+ l5 o/ G, F
                        @.transpOrder := void;
# W; e: t' {' s( g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ a( q- |* {$ n7 x' E, u
                                @,root.eventcontroller.simTime);
* S  }2 O, c7 i6 d, p                        @.HasOrder := false;
7 y! G9 }& @5 ]  |. P                        @.DrivingHome := true;
2 M) ]( N9 [  F" a/ H                        rgManager.tryToStartTransOrder;
+ C- ~7 U4 R2 H& |3 o- {                        if @.Destination = void
9 o( M7 k2 m, X" i" [& W8 |. [                        then -- no transport order for vehicle @
" {% C. j) c; b  n                                @.Destination :=/ O; f" [" o: m) W
                                rgManager.nearestFreeStation(@,track.~);
: E" l' |0 R7 u4 o                                newDirection(@);   
/ H7 I, K& s  S. Q4 z$ ~& o) ^3 m                                if @.Destination /= void then
4 J8 ]8 D  F- t2 `! v                                        @.Destination.NumReservation :=
- \( Z! P* j1 E3 A+ G$ k- \# B  n                                        @.Destination.NumReservation + 1;
# E5 `! F5 ?0 t. T6 m& b, I5 x; b! W                                end;
; X( B# E- T) B- k                                @.CurrIcon := "drivingHome";
, m4 [1 B, B3 ?" M                                @.DrivingHome := true;( t% }$ s8 V5 G, w
                        end;
( X6 P4 D- w) d" M! c" B( _                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 L( `! J+ v5 P, G( \1 E                        part := @.transpOrder;$ t# @1 N- l- H
                        part.move(@);-- load part
  o1 m3 M4 N+ ~# ?3 i9 k                        @.CurrIcon := "load";- c3 r, J* W) G' a7 c) O8 n
                        GlobalDistObj := part.globDestination;
4 T7 P" |( x$ X% k% n7 X/ j4 D) u, h                        assignLObj := rgmanager.rgAssignL;
3 ~! d8 ?8 g' [                        row := assignLObj.getRowNo(GlobalDistObj);/ Q4 c1 i: g0 {! E
                        if Row = -1 then -- since 703 }% i- V- Z/ S1 ~/ J
                                if lan=1 then
. m5 E/ W' q3 l, r- H# t  a" [                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( c0 o% b0 x2 p* `. F
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& x- o' o4 l+ ~* L* g- V                                else
3 @. K- `+ j+ v3 F8 q- K8 K/ i                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; @4 H( K- A/ W$ Q                                                to_str("in docking station: \"",?.~.name,"\""));                                6 N7 C- G: H0 w' i" q% u
                                end;, ~. y  C0 u0 _. A% |
                        else. P  V6 R) I0 w6 D% g% S
                                @.Destination := assignLObj[1,row];+ w7 a# J' C+ K7 r1 c0 X; ]
                        end;                       
' d3 X0 d+ Y* B" \                        newDirection(@);
) K: x8 d1 \/ b4 T; j                        @.HasOrder := true;2 Q9 D9 M8 ]2 m
                end;
3 c' f: A9 e8 u1 e& U5 q+ c; n        end;
1 n8 e0 a9 P- P% C* eend;        -- of the method
$ n8 H& ?) M6 }2 n( ~: V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 w; g0 E+ J# ?8 S# K3 d) }6 g
, q4 Q" o" Z; k这是AGV_putin中arrive的method。  h4 H  l3 s9 ~- b+ Y# Q$ X% Z- Z

3 @0 W/ L6 F. n0 b: o* {当到达物料速度越高时,这个报警更多,
5 }- C: Q1 \# Y0 T4 r2 a2 k+ X) O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 `' S$ ?0 `$ L2 ^# l( z' |. V9 X
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 L( g# d6 ?0 B+ ]
2 v2 Y( P# n; C! G# ~5 x: g
另外一个小建议,就是move,所有的move都可以这样; U6 I5 U1 S3 D3 _$ u+ d
if not move() then debug end4 |! b) i4 w- r' U0 u
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* ^/ z5 g4 l: \# Y2 A
plant simulation中的free libraries有AGV模板,
/ O3 v3 n  `4 ?0 P. b9 |) |: Y里面也有案例。
, n+ a4 {) C: j8 |) R+ n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ N3 U5 W7 L% [& Z5 [
7 I( P1 [; q; Z, ^7 d- v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. p% [2 Y* ~: B2 U1 f6 ]
& Q  P8 u0 f. |0 K那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 h" k: ]2 b4 V这是AGV_putin中arrive的method。9 q  u8 ~* `7 E# z* y* S% A& R" K' j

  S* ~& k' Y- i( ~( Q当到达物料速度越高时,这个报警更多,

8 C0 _1 ^- m% \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-22 16:29 , Processed in 0.019142 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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