设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7221|回复: 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'! z: X4 `7 w1 {& m1 Y2 y
*/
. m+ @* Y# ?: m8 J% L# f9 c1 e  xis" ^, Q2 M# k* Y7 v$ }) N1 ^+ E8 E! w* w
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 k: x5 q) r3 ~; fdo8 J9 Q' [: S( n4 C/ C) u2 f
        Lan := rootfolder.Internal.Tools.AOLlanguage;0 u: p$ X, P4 U. l8 l' T# B
        if current = @.Destination -- else return, G6 i. H' c- M! a- H
        then
$ V( F) J4 J7 A8 j" U                @.Destination := void;
4 U* {1 O- m. X, N/ u4 {2 W! S5 k                if @.occupied then/ z3 n5 v% Y" B/ C9 b$ V" Q
                        part := @.cont;$ u* c* C% }. I+ ~& g
                        @.transpOrder := void;
/ ^; H! Z' Z; F+ ]                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 E+ A3 q+ ~2 v, e1 ]/ W
                                @,root.eventcontroller.simTime);
2 Q$ s( r1 P8 ?; x0 b8 m3 K% w: [7 t                        @.HasOrder := false;* P0 ^& e+ d' r
                        @.DrivingHome := true;
4 w5 T: g, X; X6 L                        rgManager.tryToStartTransOrder;" J  f2 H. u1 u! X! V; d( [7 O, P
                        if @.Destination = void
; Z3 {8 \9 p) t8 d                        then -- no transport order for vehicle @
% p' R: {9 s$ _( L) J' @& h                                @.Destination :=8 G; P$ y  J% h9 K: @
                                rgManager.nearestFreeStation(@,track.~);7 c9 i) X0 p. V1 k0 M+ K0 X1 ]
                                newDirection(@);   ) F/ u7 \5 \- K3 m& r
                                if @.Destination /= void then
) V4 R7 n  x2 F* V9 N9 e& G! [5 W4 I                                        @.Destination.NumReservation :=
9 K  O& s- r  v/ {                                        @.Destination.NumReservation + 1;
$ x( a/ k5 f! X                                end;2 {: Y( V, J# s# }! G* U9 J
                                @.CurrIcon := "drivingHome";. H$ q# k; s. e+ m
                                @.DrivingHome := true;& I  O1 @* ?$ i# [+ u/ q' v
                        end;
2 w$ t! m9 T7 p  o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
3 n! T& T' i, G                        part := @.transpOrder;' I4 G3 m! f" {9 J& u; V$ q6 W
                        part.move(@);-- load part
5 [/ z7 {$ a6 p2 I3 X                        @.CurrIcon := "load";% P0 ]8 t# @& G$ }. i- m2 B" @
                        GlobalDistObj := part.globDestination;
) A7 W6 {3 v  {! h6 T                        assignLObj := rgmanager.rgAssignL;- E* {: v  b1 Q8 H$ E
                        row := assignLObj.getRowNo(GlobalDistObj);
) p& P  q3 \9 E: O                        if Row = -1 then -- since 70
0 B& t0 r& E& D5 }# V                                if lan=1 then
* s( r$ x/ O! M, s5 G, P+ I& P- g                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 X- I, V% C9 a" D" G2 c1 k" `                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 c6 ^4 ~; G8 J9 S6 c
                                else
) H2 F$ t9 [" L9 Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," m- f& Z  e! D/ p. _( ]2 V* I
                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ D. ~  s) A+ j                                end;/ G- |2 I+ U% V: `$ n, k! }) d3 o- V
                        else* Y) i1 R# j+ R! S$ J! ~( P; r1 Z- @
                                @.Destination := assignLObj[1,row];
! x, Z) m: k+ Y3 A* a5 [                        end;                        * ]/ n5 y4 f* K) u. z
                        newDirection(@);% G4 O$ H6 z# J
                        @.HasOrder := true;
0 I- e5 I# X0 r2 ^5 i                end;* U% B$ @; \) `8 M  H3 J& D
        end;- q2 d8 S6 m. w9 ~
end;        -- of the method
* @& C5 D9 T$ g! ?$ O# t: p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 S! ?5 V% a: y7 Q/ e4 a+ b

+ ~+ F% q! f5 Y3 {这是AGV_putin中arrive的method。
# s: ]  r5 H- V) ~( u, D
0 S; {8 Q' n3 w当到达物料速度越高时,这个报警更多,
- O' J$ j$ }4 `- _" h可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; z. E6 h) @" {/ b& b4 \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" d' ]9 q3 z- g& I* Q3 O. }7 y
, C5 ~& W6 G7 C另外一个小建议,就是move,所有的move都可以这样: Z1 }/ L/ C$ x$ A" t4 `
if not move() then debug end
9 @% c) t3 Y( Y! t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% `+ K1 a4 N" }0 n$ P+ s
plant simulation中的free libraries有AGV模板,9 N% L0 J3 T2 O
里面也有案例。
7 V/ v9 v- `. K7 [我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 i- E* Y6 [3 f, I$ q
$ q( c5 U4 Z) |我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: v8 v  I' X: ~' k" }: e9 T7 F9 n" U8 a* o5 k
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : S1 q/ G+ N+ J# ?. q: h1 o
这是AGV_putin中arrive的method。7 W! f/ q  O: M# o5 q
  o& Z% l! ^! R2 @# d* Z/ B
当到达物料速度越高时,这个报警更多,
- C& _0 A2 X- |5 p& g) J: n
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-28 12:14 , Processed in 0.017277 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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