设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7511|回复: 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'
* q. ]4 P# R9 p  b. u& \8 A*/
* B' Q1 ?6 Y4 `: D  P0 N7 }/ Ris
) o# E' V" H" @7 J+ T- g% u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( F. M/ I8 z4 q% X2 z' i* Qdo2 D& b; ^6 l  E$ g  q/ ^; b- L8 I
        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ C  x3 O% K; {" H! n9 X        if current = @.Destination -- else return
: T0 q5 L8 C( q- R+ v8 [        then
4 W" s% I/ T  X- k. h7 g0 m& }                @.Destination := void;
! L# w" a' B9 p: c                if @.occupied then
  P1 W1 |+ Q5 I4 q# C                        part := @.cont;
: Z( B" N$ q2 y# R( }                        @.transpOrder := void;
& o- ?6 ~* V5 x2 Q                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," j, f$ S- a, V5 l5 F0 y2 I5 n
                                @,root.eventcontroller.simTime);
2 c# O9 F4 C2 E( p2 r. C/ [7 t                        @.HasOrder := false;* l6 Q' i: \+ y6 t+ N! b
                        @.DrivingHome := true;1 [# t  W7 X' a4 f9 j, P  ]0 w
                        rgManager.tryToStartTransOrder;
2 o, d% `, @' c, N9 u                        if @.Destination = void- `# a' U! S# O! f3 f+ {
                        then -- no transport order for vehicle @
% }! o8 d- P7 |* u                                @.Destination :=3 N1 {/ @$ t% t4 t1 |. u! S
                                rgManager.nearestFreeStation(@,track.~);0 ], X% o6 G1 s; L( G
                                newDirection(@);   ! D! z6 T5 R! v* C' S7 p
                                if @.Destination /= void then
4 j5 Z1 [: [6 E* V6 ^3 O' L                                        @.Destination.NumReservation :=
0 a* V3 }3 f4 P! F1 Q: |: ?- M                                        @.Destination.NumReservation + 1;0 a9 K4 {2 ~! g9 |6 {1 i9 i
                                end;; S' @$ @/ S4 X( G  P
                                @.CurrIcon := "drivingHome";
, o9 m. a5 o2 r' N" k& ^( V                                @.DrivingHome := true;* c! e% i& S; m/ {4 D
                        end;, k& I4 e0 V& e0 C& m
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  w8 G, E0 b9 m/ Q2 b% c: e$ Y2 n
                        part := @.transpOrder;
1 L+ \+ G3 U5 z$ ]; V( l: S                        part.move(@);-- load part8 N9 |- l( q2 @& c% x! E
                        @.CurrIcon := "load";& c- n7 B: N: g7 @! p8 s
                        GlobalDistObj := part.globDestination;
8 P; _# s7 t; a7 m                        assignLObj := rgmanager.rgAssignL;
2 r7 `6 Y8 o0 P                        row := assignLObj.getRowNo(GlobalDistObj);
/ D. o: c" W6 K                        if Row = -1 then -- since 70
9 t7 R8 x5 M6 K1 i                                if lan=1 then- T  r1 u( `' s
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" h# t) z6 A, e. R# f2 f) N                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 o7 i  B" F: {- R4 D                                else; d+ b4 a) n" \$ ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 I. m8 \2 l9 g5 t( T
                                                to_str("in docking station: \"",?.~.name,"\""));                               
% K" Z" a$ c' t) F# m( O                                end;" A6 ^% X( e7 u
                        else
9 R1 m' V7 }0 y8 e, J! B& A- _                                @.Destination := assignLObj[1,row];
% d. j; U5 h4 u& O* P) I+ [7 J0 y                        end;                        8 e6 m# }- n( ^% w: _
                        newDirection(@);
: p! Z' P" m& d& O                        @.HasOrder := true;
) u8 T; x; v4 `6 D                end;6 N& G* s2 j4 k- R
        end;: o+ s. B/ y; Q! m+ X- k7 J/ g
end;        -- of the method
- n- W. @0 u( U/ P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 b0 A$ B: k9 ~; K

5 \, j2 Q" N' R4 W# x0 q( U0 O这是AGV_putin中arrive的method。) n0 r" q9 O4 a1 z3 |5 E5 ^9 R

' Q+ k1 W& `" A$ f* t$ g当到达物料速度越高时,这个报警更多,  S5 K- _: W- S, }
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 j4 G& Q( U1 ?' _8 Z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) ~4 J/ o8 i' W
4 e# f; l1 l7 t
另外一个小建议,就是move,所有的move都可以这样
$ t- z. P; m; p% [if not move() then debug end) P& E' M# s( m0 f  w7 p  o  ~
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; ]$ F* s+ [  i% z2 i2 eplant simulation中的free libraries有AGV模板,
" @& H! t0 h1 q; s7 v5 e里面也有案例。5 y+ ^1 n6 ^" h+ M
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, j6 `8 d- X: u1 q, I- w4 }; t' v. w
7 ]9 ?: {0 y5 Y. V' `' P/ ?5 `# p4 B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" K: t: R! Y9 y; m7 Z$ ]
% m# V; S0 G9 M$ g0 k那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 N. a- z+ K0 u! t这是AGV_putin中arrive的method。0 k- I/ D0 u, E8 O; A' C
3 x+ o/ k; O1 T9 J* G9 V3 ?; {
当到达物料速度越高时,这个报警更多,

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

本版积分规则

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

GMT+8, 2026-4-15 14:07 , Processed in 0.025678 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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