设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7093|回复: 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'
2 R! a3 W; ?' a, r8 C5 H. N4 b8 j8 C*/( K3 C8 \& ?  @/ [+ {
is
/ c0 S: {( N3 {1 F. _% e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ V! X. ?3 X1 p: X/ }! T: ldo& `# `+ R3 O  K+ c0 _. L8 C6 F% l) y
        Lan := rootfolder.Internal.Tools.AOLlanguage;) L; J1 u( W3 w& P6 j7 D; u; v
        if current = @.Destination -- else return& g9 @1 e. A% T% j
        then- d1 R. A( }: @/ b
                @.Destination := void;
! ^+ d0 F2 d7 l# m% Y2 F                if @.occupied then
) X: Y% R' k) k/ @                        part := @.cont;2 e1 T- b$ O, Y5 V( l$ K
                        @.transpOrder := void;
2 F/ Z5 }' I% [  }0 c                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, z7 \7 ?# l4 T# T                                @,root.eventcontroller.simTime);! o2 S; Z/ {* V1 I+ v
                        @.HasOrder := false;) G" ]! c5 x4 j+ f0 ^
                        @.DrivingHome := true;
* H. u, n! N" G2 F8 |                        rgManager.tryToStartTransOrder;. K7 V8 f  I; ^0 \# c0 V9 v: U1 `
                        if @.Destination = void( }. ?. i5 U. e2 o4 ~
                        then -- no transport order for vehicle @
+ K8 ^5 A, R' `( g* B& c9 \                                @.Destination :=
  }( U2 F1 x7 C& ^2 I                                rgManager.nearestFreeStation(@,track.~);
( V! u: S% ?; F# s2 N                                newDirection(@);   ' c, v4 K$ c  O4 N7 f: P- [
                                if @.Destination /= void then$ U' [/ I, i/ O( k
                                        @.Destination.NumReservation :=
9 R( V( f+ [$ N* p                                        @.Destination.NumReservation + 1;
! _8 h0 S7 A7 b) y6 }                                end;
/ E$ C0 a8 j- {  y& w4 |                                @.CurrIcon := "drivingHome";& [8 H9 c7 N& Y5 k6 Y% l
                                @.DrivingHome := true;
! ~  ^8 D& B5 r" f                        end;
8 n0 V# }+ P/ m7 P5 V( }                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* r" Q4 @5 d4 m$ Z' G
                        part := @.transpOrder;
$ G- Q( N- b7 P                        part.move(@);-- load part$ H1 F7 B9 |  `! S3 K
                        @.CurrIcon := "load";8 ]& V4 w. M0 {: G
                        GlobalDistObj := part.globDestination;
: P9 K; t/ g, u! y; u2 h% X                        assignLObj := rgmanager.rgAssignL;
4 j* a) {% g- F3 N                        row := assignLObj.getRowNo(GlobalDistObj);1 ^0 k7 N2 _) y9 d. `
                        if Row = -1 then -- since 70, D# L/ b  ]5 P) G
                                if lan=1 then" F' F. r  \$ H6 i/ Q
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( I0 f9 Q6 m' r! W8 h& X# _
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* J6 R+ l0 a; N2 Y2 Q* b) q4 r                                else
' y) |2 ], D/ i4 S4 i: J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# ~7 y2 ~( M2 c6 |4 w$ e                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 {# A. s, |1 D$ U                                end;
% u1 F9 R" D5 j' t& J8 f                        else% ?4 j( D* k4 q* ^3 l! a( H
                                @.Destination := assignLObj[1,row];
1 m/ W5 L7 Q3 k$ B                        end;                       
% @$ S/ H& l- m2 @, u; z3 Y6 f                        newDirection(@);
* N9 n& n# x; b                        @.HasOrder := true;
, v! f$ d9 E# h, C, r                end;
- J0 d9 \) M3 a7 _        end;' S6 d' w4 ~7 V8 F  W
end;        -- of the method1 @' L3 J9 l. j+ C! e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   R  U6 S$ `5 Y+ S' J9 l
6 j3 K! x: {$ b6 X& Z
这是AGV_putin中arrive的method。2 T  f& i. V! B  ?' C
0 a2 m# A1 u4 H
当到达物料速度越高时,这个报警更多,+ d( T3 f% y5 O( C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! Z( Q0 I0 j  }+ z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 C2 ?% U" U0 w% a

) _+ t/ l" Z. l# A另外一个小建议,就是move,所有的move都可以这样
7 O5 A# I9 m( r) o; iif not move() then debug end/ n5 C2 B! Y: E. W  ~/ P8 N
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ C1 e4 c6 I6 T9 t4 e  D4 Wplant simulation中的free libraries有AGV模板,
( r( g. H) |: c( h- @! j; v里面也有案例。1 q5 B7 Z9 Z8 Z7 n9 K
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. v: v2 y( [( _6 D$ \! `2 X& Y0 f" Y. k5 `1 X; ?8 Y4 Y4 K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  y8 S) n. s4 J1 h+ R2 p& i% `6 v" }2 C2 t: r" U% s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 M& z3 I  B" |4 P3 z$ ~, U. D
这是AGV_putin中arrive的method。  R8 h, k- Y! O

0 `! m9 f( ^+ ^  t# P% M& c2 ?当到达物料速度越高时,这个报警更多,
/ e) D1 |% Y! y; X: [
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 02:57 , Processed in 0.021064 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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