设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7294|回复: 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 c' M: {5 ^' k9 `6 e+ K( e+ M
*/
" D6 C9 ?! |5 L+ fis' V7 h6 H# N/ W, P4 A! J  ?  ~6 T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 K$ t% D6 z  o1 |
do
' m$ T; p9 x7 z/ l: A3 }! \        Lan := rootfolder.Internal.Tools.AOLlanguage;+ z! ~- y1 _8 p: G. o" w
        if current = @.Destination -- else return' N# }' k/ t' j3 `$ G# m1 @
        then/ `9 ~  B! c  [( I7 M1 ]
                @.Destination := void;
7 Y' x( R0 p) v7 E                if @.occupied then
7 V( e* }9 s: V/ s6 [( l                        part := @.cont;: \, p% g8 N# g9 J) E, e+ @2 O
                        @.transpOrder := void;
) h. j+ M) |/ w/ A; ^                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: u+ F" D0 C& `+ I! P
                                @,root.eventcontroller.simTime);
8 }+ j: d* K, T$ X4 G% u& b                        @.HasOrder := false;. v2 Q# x/ R! v+ A1 d" {
                        @.DrivingHome := true;9 L1 A% v( {" H: B
                        rgManager.tryToStartTransOrder;
4 c% M, y. `3 W* R# ~# M* V                        if @.Destination = void' y* ^7 _+ f& E6 t
                        then -- no transport order for vehicle @
! f  u/ N/ m2 i3 _0 b  Y                                @.Destination :=. u; b' g1 }$ r& S6 w
                                rgManager.nearestFreeStation(@,track.~);$ k0 w6 J- c6 j1 W7 r# R( a4 c+ L) P
                                newDirection(@);   ' I0 B7 s" J2 H) N2 l$ T9 O# V
                                if @.Destination /= void then
8 [3 z* p/ E3 l7 E+ [8 A' A8 T                                        @.Destination.NumReservation :=
$ o& T$ Z& E/ M. D! ^                                        @.Destination.NumReservation + 1;, w$ Y8 A7 m% W. n. G1 }
                                end;
5 y9 {: {% s& a) x2 V                                @.CurrIcon := "drivingHome";
0 y9 w4 F  @: N' f. _$ ^                                @.DrivingHome := true;2 m( k" m2 V& c; S0 ]
                        end;
- K; M: }  _) |: E  L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 k- p& o. z9 A                        part := @.transpOrder;1 |( z1 @: i: x$ O! w
                        part.move(@);-- load part
7 l; m0 V  `- ?! @  b5 M                        @.CurrIcon := "load";
# m4 Q3 e- o' c+ S9 N                        GlobalDistObj := part.globDestination;; k7 e2 f* M! o, P: M
                        assignLObj := rgmanager.rgAssignL;* q# X; A- {' V  c
                        row := assignLObj.getRowNo(GlobalDistObj);
1 O* y* n; d' u                        if Row = -1 then -- since 70# ?0 n1 A1 R3 l8 {/ b! A
                                if lan=1 then3 \. g4 \, ?) `6 h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' y( C: c4 [* q. N) s% G
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' O2 V; V9 f0 q2 t  ]                                else
6 S& F/ h0 T% A* w  L% \                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% m# A; b, y$ s' E4 G5 F                                                to_str("in docking station: \"",?.~.name,"\""));                               
; l9 C" @( k& I* Q# y, Z                                end;! G" s# {2 B+ `$ [% [" e; P
                        else1 U- ~/ p8 n! ^+ V5 |5 w
                                @.Destination := assignLObj[1,row];
8 J+ a5 ~0 [9 g                        end;                        6 |+ o+ u& g8 |0 ~
                        newDirection(@);
0 [. }% N5 C$ b% w8 M" x  H                        @.HasOrder := true;
+ y" g- E$ R6 C                end;
+ a% j: X- _. C' ^5 P1 ~& a        end;5 w6 q+ K+ d( O9 u$ i, g
end;        -- of the method
$ Q$ t% P+ {3 k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' ~$ h7 N) w( V9 N* S6 l
: j( F1 i8 K6 K8 x' d
这是AGV_putin中arrive的method。
7 l& [. m* e0 b* L' F- n4 Y7 X# _* B
当到达物料速度越高时,这个报警更多,) Z# W1 O- c: d0 @5 L6 w+ U! o# [* Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 N) V5 Q& ]9 l程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 {, z7 b+ a" ~' I+ D* D' ]: G8 u/ G! j" ^: i; u( l( u2 |$ g
另外一个小建议,就是move,所有的move都可以这样6 Y5 Z: X9 [) H# R% {6 D3 y( p1 w+ Q
if not move() then debug end
8 `% {/ R. D8 C! Y% m% J这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 I# w: ~* L7 I) \$ o+ p& s8 d" H) K' h
plant simulation中的free libraries有AGV模板,5 u+ _  N6 V, Z3 m0 f) B( |
里面也有案例。
9 h% N& H6 z: T: P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 c1 {5 f0 g/ {, g
" X/ q3 ?/ [% u$ O# C2 ~( D8 F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 4 w+ `5 M: N8 x" f5 Y

0 M8 ?5 q! H. q5 ?& b& H# [4 L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ H% H, I7 F5 l6 A  Z这是AGV_putin中arrive的method。# ^. f" w4 y; @  Q  N) }0 G+ B
; B: A% m+ V0 }4 p
当到达物料速度越高时,这个报警更多,

4 M% B' M& d' B* O* {2 H+ ~- C另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-2 08:50 , Processed in 0.019815 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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