设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9087|回复: 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'0 P$ Z4 e1 ^6 b) x* _/ N- ^2 Z
*/$ h7 K& N2 P  ^
is3 s( a2 J2 A1 T5 l, g3 m" j( x) F
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 q) B* y- A! ^' Ido
: m& T. _$ b" d- }, W6 R        Lan := rootfolder.Internal.Tools.AOLlanguage;' v1 A0 C* I' W  S# o) H+ J
        if current = @.Destination -- else return! S* a. N  m0 x9 M1 D4 y
        then
$ r( |# s- c4 b: J% a6 S7 @                @.Destination := void;
; C; L; q+ r) m. M6 V                if @.occupied then
- C4 E+ G7 X0 H1 R) v5 ~8 p                        part := @.cont;
1 O' G0 {0 B+ G6 q                        @.transpOrder := void;! g9 s0 z8 b- e' d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% ^7 Q, i/ Y+ u2 m, `2 W) Y
                                @,root.eventcontroller.simTime);) \" y% T$ U6 S/ Q
                        @.HasOrder := false;
7 X6 K, h  }  a# F& ?                        @.DrivingHome := true;7 j! U. O; F4 r; b
                        rgManager.tryToStartTransOrder;, l& _+ K- ]0 C; K
                        if @.Destination = void# g( z7 u5 X8 M
                        then -- no transport order for vehicle @
. _5 Z( m5 Z: w                                @.Destination :=
1 d* t: F# h+ U5 a) ?                                rgManager.nearestFreeStation(@,track.~);( o$ h2 N# u2 P6 F: Q
                                newDirection(@);   6 M4 {# [0 f7 I) r8 s
                                if @.Destination /= void then3 K8 L1 @' d0 j) d* k
                                        @.Destination.NumReservation :=' U; K3 d) B2 \
                                        @.Destination.NumReservation + 1;
* Z( y+ S2 H: o! D2 \1 L                                end;
. N7 i% j& n- s+ x9 L+ z                                @.CurrIcon := "drivingHome";+ Z) C) m0 F/ m, D' g
                                @.DrivingHome := true;2 H9 O7 D7 m; k! ^: N" C" y3 n
                        end;; g% i& ~" A  q6 H. B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 I3 _! Y- O" e& O                        part := @.transpOrder;% @7 ]/ ?* K3 n, g3 t( I7 k
                        part.move(@);-- load part' o+ n, K) @: c3 \
                        @.CurrIcon := "load";% g7 ?5 w- ^- w% r* m
                        GlobalDistObj := part.globDestination;, e% T& b, v# n
                        assignLObj := rgmanager.rgAssignL;' u: i5 \9 q3 u( _) k4 i9 A+ R
                        row := assignLObj.getRowNo(GlobalDistObj);8 j# f% T  m3 Q7 q: z. O; F5 w
                        if Row = -1 then -- since 70& d0 k  L+ D; I/ J+ K( A
                                if lan=1 then5 @9 G4 \% q* M$ m6 t. F: n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" D/ z' ]( D4 j                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* i5 ?, J3 W; W! k                                else" f/ U6 g6 [; x! L9 I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ E1 a7 T) e" l7 f- X9 j
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 }' ?& q( i8 J* O: ]. i+ M$ K7 p8 U
                                end;
' q5 {* n) j' R  i                        else
3 ?, [; k3 R7 n+ H5 r1 a                                @.Destination := assignLObj[1,row];: e4 y0 ?, a' |( G7 N# A
                        end;                        2 R$ u8 N8 l. ]& K. Y% v. |/ |
                        newDirection(@);0 a* L( `+ C% B" N
                        @.HasOrder := true;% |$ h3 n3 J2 e" |# r- ~$ J
                end;9 B) w6 q  g% B- P% o/ D3 Z8 _
        end;. ?5 V$ @5 @9 X  _3 G
end;        -- of the method$ I7 ?+ q! U7 N. ?1 @+ Y/ b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% ^! U# G8 V. y0 a0 m7 j. G! M/ @8 h. c+ Z$ J3 Z$ d
这是AGV_putin中arrive的method。
9 e- D6 \. ~9 O# ^$ f- w# U# \
8 O/ y. O3 O! A$ _/ Z! s当到达物料速度越高时,这个报警更多,, D/ W8 f1 ]& n& e# M
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 E" Q5 }9 s5 y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: B, v  ?. K" M0 B/ u/ H1 e
7 @! U2 W( w7 G9 i+ J% ^! k另外一个小建议,就是move,所有的move都可以这样: f/ J/ Y5 o0 o1 E: O/ H8 ^! |
if not move() then debug end
4 B/ ]( ]3 E& k这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, m' k8 ^. R# `0 {) H5 _6 K
plant simulation中的free libraries有AGV模板,
( U7 ~1 h! W, b; A里面也有案例。
3 n- e- J( {1 s# g2 g' H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ D2 a) m$ u- ~- b' P1 D$ U
5 j9 w2 `0 [) k  E' n/ ^2 x2 ^我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  F6 s6 A% V" [9 I* r
1 z1 h: V$ j! w$ }0 b0 [8 X那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . j$ a2 V: X& q; A( E' ~
这是AGV_putin中arrive的method。* \" B5 w! d5 k0 E

# I! ?. L3 P5 o+ r当到达物料速度越高时,这个报警更多,
3 Q2 K) m0 M: Q2 e' C7 C3 L1 H3 K' x
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-13 00:13 , Processed in 0.018610 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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