设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9343|回复: 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', O7 B+ q3 z! y" p# Y+ Y4 j2 X9 |
*/
+ q5 I" j: |/ o+ y1 J" B  s$ b7 [is8 @! Z# ^# Y* q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- d  m2 _; G- z, z4 c& pdo+ \, @. i/ Z2 T; _
        Lan := rootfolder.Internal.Tools.AOLlanguage;
; o" ~- M8 g( u        if current = @.Destination -- else return
; Y: J9 w. R5 @8 F9 A        then: H; Z2 L. t2 h8 x
                @.Destination := void;4 ^! V& W4 b6 Y& G: ?' R" C
                if @.occupied then, i" [7 }2 ]1 J& t* M4 _+ z
                        part := @.cont;8 D+ {# j6 l4 e0 u
                        @.transpOrder := void;1 @8 Z6 n8 j5 ]# C& @% X! j
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,( X! t- u  i1 @0 H& _% h0 b1 K
                                @,root.eventcontroller.simTime);
% K  }9 W% t; f/ m. Y4 [7 a) i                        @.HasOrder := false;. a& L3 z6 z9 r, v- n8 z
                        @.DrivingHome := true;! c  q- W  H; U: m4 ]2 M
                        rgManager.tryToStartTransOrder;7 s4 i( C5 D* K( U: e
                        if @.Destination = void1 |& Z" M$ ^; B4 l; x% i1 M
                        then -- no transport order for vehicle @
# H) @0 q0 {) n" g, n, b  g                                @.Destination :=
7 c: \/ M4 `8 q" a                                rgManager.nearestFreeStation(@,track.~);
% N1 x# n) F! \) ~3 g                                newDirection(@);   
$ Y+ `  o# f2 A& \7 B                                if @.Destination /= void then- k3 n( w, g* P; K/ U! O4 P& o
                                        @.Destination.NumReservation :=
! V2 g8 d6 ~% `- ~                                        @.Destination.NumReservation + 1;' }/ P- x% O: M# U6 H
                                end;. y# {4 C2 s5 V3 V* N3 Z
                                @.CurrIcon := "drivingHome";2 f. n! C; `; l1 v' }: A
                                @.DrivingHome := true;/ J; D+ K& V6 }3 E5 q
                        end;
' K2 F, ?+ T* b' b( w; N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 L; F5 g: _5 H, y& t9 B4 R1 A5 z3 z' ?
                        part := @.transpOrder;- H; c/ s2 q% Q) D( P7 e( R
                        part.move(@);-- load part/ S/ I7 g4 g! Y
                        @.CurrIcon := "load";
* X0 @2 h7 q/ w8 C; V2 r/ t                        GlobalDistObj := part.globDestination;" S! |/ `0 O" G; X! b3 c! D
                        assignLObj := rgmanager.rgAssignL;! Y  J; p7 t* C! w
                        row := assignLObj.getRowNo(GlobalDistObj);+ H3 u* r5 O& O. k+ Z& p5 I
                        if Row = -1 then -- since 702 k, x. L1 t9 d) m0 ?
                                if lan=1 then7 i" i$ N4 F+ B( t& ^3 v# i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- k1 L  t" {6 ]. B% m8 j4 V& m
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" `1 u  c4 ^6 n/ ^: A! k
                                else5 ?0 [" |5 {4 ~
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 l1 f% M/ ]- [                                                to_str("in docking station: \"",?.~.name,"\""));                                ( |! G# C  U* o5 S2 `1 ~  [
                                end;
  v  y+ t. v* L                        else& t7 N+ m3 R1 _( n& k2 R) b7 u; q
                                @.Destination := assignLObj[1,row];. {3 S( @/ I6 w2 @) B8 M* S
                        end;                       
2 n5 e% c5 g5 w                        newDirection(@);
( W- ^& l: `6 ]/ s( }) c& b                        @.HasOrder := true;, D  g/ Z: B3 U! Z# Y: N
                end;/ r0 s2 p) _$ h0 I: Z1 D
        end;
" a; Z7 G9 H  P0 g5 |) @( Y) Wend;        -- of the method) y4 i1 ?) L/ I, D5 Z/ s
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 P9 ]1 X/ `) X7 k$ _+ v  v, Y
7 s$ J, K  g' v
这是AGV_putin中arrive的method。
1 ~/ u9 v& v) z. k$ p9 C+ _1 U% y' m
" [! S9 [; U% [当到达物料速度越高时,这个报警更多,
( z1 @. K; o# [+ {可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) a6 S4 Z& i1 X- ?程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 y, R8 o; K8 Z% z" S1 T% ~; V) y! A
# H1 n% ?1 Y6 k- g
另外一个小建议,就是move,所有的move都可以这样
4 I) G4 D# f9 s' dif not move() then debug end
% _6 Q6 {2 |5 x0 r! I. A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" [6 N1 p  j* y4 kplant simulation中的free libraries有AGV模板,
: S+ d" W% z7 a+ R& `4 Y" E里面也有案例。8 t. _  S' I( J
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' m1 X- x2 x; O
* U6 g, K9 M+ N3 U- i. A我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! x: G$ ~, X% s7 {  Y
1 |- }& P! z4 j3 e3 Y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 U! K( `2 w' `. a* v
这是AGV_putin中arrive的method。
0 X+ [* q  H( a0 _
8 x- ^/ e. k3 U- [当到达物料速度越高时,这个报警更多,
( C5 q* h: y% u% F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-26 15:55 , Processed in 0.019620 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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