设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8405|回复: 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'! B2 w* B: r0 ?( v
*/
" i7 L0 |# [6 {: [is
- \0 c3 l* i5 L) {8 G7 _9 o: ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! \! n" r- Q2 Z
do: Y2 y5 a1 X& s" c5 g
        Lan := rootfolder.Internal.Tools.AOLlanguage;& T) ?& t8 H3 P/ o1 @  c
        if current = @.Destination -- else return  P( k$ _* c$ C/ E
        then$ O8 e- p5 G( S/ c" p7 D
                @.Destination := void;
6 A7 r( |3 @! s" x  z                if @.occupied then; M+ J4 P% O7 _, U, E8 s, N/ i6 b
                        part := @.cont;
! t7 V8 j1 N  g4 \% E. K8 m( I$ T3 D/ j" I                        @.transpOrder := void;6 o7 d  b; P: L" l" g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 b3 c! G% U4 {. I2 b, ^& o+ f                                @,root.eventcontroller.simTime);% Z1 ?4 O! q  n0 v7 D& A* r
                        @.HasOrder := false;0 S( `- X  O' [2 C  D8 K- f
                        @.DrivingHome := true;
" E3 x" z, h7 C                        rgManager.tryToStartTransOrder;
' T& T1 d% ]5 L7 u                        if @.Destination = void% T1 {: l( P* K+ W* g- k& X/ V
                        then -- no transport order for vehicle @
3 p. |! t( A4 {: z7 [                                @.Destination :=4 [/ [( T; Q! @& M* f8 A
                                rgManager.nearestFreeStation(@,track.~);
8 N& e$ ^% b9 P$ g& h6 h- A$ D                                newDirection(@);   & A6 r1 D; o1 E% f  a% W( k
                                if @.Destination /= void then
2 [' N; Q. ~" v2 x                                        @.Destination.NumReservation :=
4 g4 O8 R) {5 h/ D" e                                        @.Destination.NumReservation + 1;
8 }9 {* ]; r3 N4 a                                end;5 K1 S* e7 ^, h6 o
                                @.CurrIcon := "drivingHome";& H1 _8 D& \( `
                                @.DrivingHome := true;2 b% ?- L1 b. q! _# z
                        end;
  D+ Q8 K1 W: y3 f. t                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 {9 }7 E+ e" c  J) }
                        part := @.transpOrder;/ v' ^& l* W0 U- ?4 o
                        part.move(@);-- load part
+ F7 D0 H7 A% p( U7 C& y1 `7 k                        @.CurrIcon := "load";
; x: S8 b" o# `                        GlobalDistObj := part.globDestination;( O! U; R( \, l6 X, n
                        assignLObj := rgmanager.rgAssignL;: M2 p$ L; w2 h' V* r$ f3 k% k
                        row := assignLObj.getRowNo(GlobalDistObj);
5 I! W: V2 x9 v                        if Row = -1 then -- since 70! r" ?; T3 @- K) N* P5 `( B! u; s
                                if lan=1 then
" c$ `# J( @0 ]5 r9 b6 {* ]2 _! T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: y; f: n( B3 x, z: a                                                to_str("in der Andockstation: \"",?.~.name,"\""));* e# H4 Y# ]2 ^' P- b9 a+ l
                                else
5 Y7 K( H' I. Z7 V4 F3 I: g$ Y6 M% j                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 d5 r' h5 T# f& l+ {" n% I                                                to_str("in docking station: \"",?.~.name,"\""));                                - s: Z, Q. t" |! a
                                end;
& E6 k/ u: ?! b                        else
  o, }2 u( u6 g/ L* C" ~. ?$ d  P                                @.Destination := assignLObj[1,row];
( y1 J1 I- }! W% n                        end;                        / Z0 T) q+ q8 v% C5 t% c+ j6 Y% g
                        newDirection(@);( w" U3 Z5 S9 ?( B; M
                        @.HasOrder := true;  P) d8 W+ z' u. E1 z3 J( K
                end;
2 f- |! D  v' W# U        end;. M# `; G. ~: T
end;        -- of the method! S- Y/ @  l" J/ U0 g& m* ?3 }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & O1 ^" `2 @" }6 H6 V$ ]& l% f
. `  a% }! Y8 a. j9 ]: M
这是AGV_putin中arrive的method。
; i; O) a# l+ `0 x( U
( k! ~# d8 T- z1 U" J% ^) e当到达物料速度越高时,这个报警更多,: u7 y( f& l4 C* @! W6 b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! J2 C$ D+ a; |0 v7 I2 h0 v
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; B5 l3 @6 [- {. c$ k1 F

( V* k* @( H' `& a另外一个小建议,就是move,所有的move都可以这样
9 {& n7 k+ j. y/ X+ l6 jif not move() then debug end
9 F- n2 n/ W. [, e这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' z9 V9 T* w8 m# b' o
plant simulation中的free libraries有AGV模板,
2 C+ y* C- N0 m0 ^+ g( V! q/ w: N6 B里面也有案例。8 ]( i/ Z, e, N
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ I# o- `7 K0 o2 e! C

0 A9 J6 u) }; c9 r/ t3 c; e# i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 y4 p( ~( k, S6 d' g0 g% `
1 A6 f: M* I" Z1 S5 ~' Z4 h% `& c) W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) k  j* E6 g5 }* y3 ?" x
这是AGV_putin中arrive的method。
+ e& k7 _( {  m4 R1 ?# W. ~* l' f
/ H# K! r4 z) W当到达物料速度越高时,这个报警更多,

  v4 i* T3 R) L- W另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-2 00:25 , Processed in 0.016443 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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