设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5850|回复: 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'5 K0 q  U$ k; P# ]4 r
*/
% c( y0 U4 L$ r% w& Ais3 P  M9 j" Z/ y  I% z% ?
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) Q+ G# F2 k* V, m- U6 N
do
# T8 f! d7 [- U' d* r" b        Lan := rootfolder.Internal.Tools.AOLlanguage;& d) k3 s6 L: E. e
        if current = @.Destination -- else return
1 O* W1 g8 j( l1 f# M6 b/ y, R  i        then/ u! n9 i& p; W% h, F$ [
                @.Destination := void;: H+ N$ H2 u- C) p+ S# E
                if @.occupied then
/ F! |8 B; C7 x. X! A5 r                        part := @.cont;7 p+ l& G2 b* Y' w4 R* {
                        @.transpOrder := void;5 u5 G& s% u; l9 z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! W  w- ~: W5 s& H
                                @,root.eventcontroller.simTime);' S8 u! q: B+ D
                        @.HasOrder := false;
& M& f; c+ s2 F4 ]                        @.DrivingHome := true;& ]6 \/ @( c; e9 ~& G! h2 |# [
                        rgManager.tryToStartTransOrder;/ N! @3 N6 E" v2 U
                        if @.Destination = void
, Y; b3 S- j; j$ _                        then -- no transport order for vehicle @
7 y7 A! ~- k) F6 J                                @.Destination :=, \! ^: X' M6 K+ D* s
                                rgManager.nearestFreeStation(@,track.~);
+ m9 o' X8 i8 l! v- \: N- f  Q                                newDirection(@);   
( u3 L: O+ Q- L1 f                                if @.Destination /= void then9 h, s8 x* c6 A
                                        @.Destination.NumReservation :=* x2 B! s& J$ {: N5 V! l& G0 D) ]
                                        @.Destination.NumReservation + 1;, U' j9 r; ]6 z/ z% c8 l' W' l' a
                                end;* j7 N# g4 l2 ]$ j' |
                                @.CurrIcon := "drivingHome";/ @8 U7 S/ g9 p+ {
                                @.DrivingHome := true;7 T! t9 |& M) i: H
                        end;& F3 a0 L8 K# A# N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ o1 y5 h4 C! ]* m$ W                        part := @.transpOrder;
$ D* X# Y4 d: l! `                        part.move(@);-- load part% e, {1 E6 R. p3 d
                        @.CurrIcon := "load";$ a- M# P; ?/ z0 }6 p& ^# R
                        GlobalDistObj := part.globDestination;; N' V0 w0 ]" u( K: l6 K
                        assignLObj := rgmanager.rgAssignL;2 |" [: c& n+ ]) L) d: H+ F* T
                        row := assignLObj.getRowNo(GlobalDistObj);
$ ^) K) B: Y7 j7 u! Y" m7 n2 C                        if Row = -1 then -- since 70
5 E* B" d5 W7 d2 d) U                                if lan=1 then. h( Y' |9 Y) I# s  c3 Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; f7 i4 `2 u; y. j% d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: T& d) }* X7 D! y; L. [6 }  c$ R3 [) b                                else
. {; {* w8 D7 I0 I9 {+ Z, Q8 Y; f) Z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; A% c1 _1 I1 i8 b+ A                                                to_str("in docking station: \"",?.~.name,"\""));                               
& _5 s. M3 D& K: Y/ D( o                                end;6 F' \, ~/ q: ^0 P, a7 G
                        else
9 E' p4 P' ?+ f0 P% W                                @.Destination := assignLObj[1,row];
: t5 u5 a4 o- Q/ a, s3 \: m3 M                        end;                        2 l8 [3 i$ w' e$ P! T
                        newDirection(@);
  _! J, v/ O) i0 M! e2 M8 s                        @.HasOrder := true;
7 W# T/ D  r) O6 H' d# }                end;
8 p- M0 l& [2 Q5 V        end;
# C; o2 d7 V# T/ ^end;        -- of the method4 W% y0 J5 y4 K6 A1 A# D: y. i4 n9 n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 ~' A5 i: R6 K) \# T" B3 S1 N) @4 ?: W6 H7 R3 s6 C
这是AGV_putin中arrive的method。
7 ^& E! y+ ?% \) n; B( M, o& Z! K9 G- X: E
当到达物料速度越高时,这个报警更多,5 |; K, d0 Y- C( ]. \
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& ]$ G+ U* C+ ^, f1 B; D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 y1 A, B( V! j) i# i- L, x5 S
8 z3 |: ]- I( D1 q+ e0 {另外一个小建议,就是move,所有的move都可以这样
- [" z% O: x/ ?' A8 cif not move() then debug end
# M- ~+ F5 z8 O5 T; I" m3 n" ?5 }这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 L2 k4 y" n3 z$ w- Eplant simulation中的free libraries有AGV模板,# g* T) M4 P1 t! W, ^7 m' Z
里面也有案例。
/ H! x; k" l3 y* C' M. n% M6 N7 Z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. h0 h1 a1 j  E
  \2 X4 j2 G& R! i8 E
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 j7 I2 x  ]' z1 c( L; J9 t9 o
0 k8 O  T( f  ?3 W& K# G! y& F
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . W- f# B* \$ l! R  y# p
这是AGV_putin中arrive的method。. ~( c' c0 B. y. }/ u

+ v7 m, L6 V4 S4 m; W! h9 V$ n8 e当到达物料速度越高时,这个报警更多,
( K! O8 N+ B% T) @' O: Y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-26 13:09 , Processed in 0.017608 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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