设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6764|回复: 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'+ I; k+ \+ v& L: J4 ~1 \. [7 u: z' q
*/
  c; e* I& u6 r5 Qis& }+ i* l3 M+ k: k. X4 |& u
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& d2 m# s' `  t: `2 n
do
3 f4 T0 K& r7 f  r0 M        Lan := rootfolder.Internal.Tools.AOLlanguage;# r% _' w. Q* t+ z1 u. ~  y$ y, y
        if current = @.Destination -- else return/ q' i* u' R- \- _+ S
        then
! x! [2 s$ {7 \5 x7 J% ^2 f0 T" }" {                @.Destination := void;4 S( i( w* }! d. H! a) h
                if @.occupied then+ Z6 l3 {3 S4 D  l0 r
                        part := @.cont;& Z$ g, ]% @/ g6 ]( t
                        @.transpOrder := void;
+ k7 y$ R( ]+ |0 Q7 e4 J                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," f. J; t8 i% H( M& L
                                @,root.eventcontroller.simTime);
0 a: E5 B( E' K; L" L& I                        @.HasOrder := false;3 E& k' Z& }/ M
                        @.DrivingHome := true;& Y" }' F6 O/ F
                        rgManager.tryToStartTransOrder;0 w, m+ W2 z$ z  R# C
                        if @.Destination = void/ a3 f  R) ^- n/ P9 O. Y
                        then -- no transport order for vehicle @
# N8 t- R/ {9 b. |# L& A+ m& ~                                @.Destination :=) a! L5 x8 q3 u  K. {' E
                                rgManager.nearestFreeStation(@,track.~);1 ~. b. [# ?0 v
                                newDirection(@);   
  `; w% x- U3 N+ P# g* U# V, G! {                                if @.Destination /= void then% N* |& l1 A9 y- C9 L3 P$ {
                                        @.Destination.NumReservation :=  g7 K( }8 }& g" H: z
                                        @.Destination.NumReservation + 1;2 {5 u( @' M% R, M% r
                                end;3 {, Y0 f! ~; W8 p/ S
                                @.CurrIcon := "drivingHome";; A, A/ I: Q. h- r$ D7 l6 y3 G
                                @.DrivingHome := true;
4 {  M$ S1 g" u: x( _5 ~                        end;
7 a; x6 e1 V' q' J, @. N2 u9 |                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ Q; X; n. L; N: f$ B: A' D                        part := @.transpOrder;
6 o$ f& L9 m$ d: z2 N: X                        part.move(@);-- load part
* w9 \* r7 C' H) O8 u                        @.CurrIcon := "load";) I  u9 F) G$ O' k  `' Z
                        GlobalDistObj := part.globDestination;9 E2 ?, u) s! z
                        assignLObj := rgmanager.rgAssignL;
$ X2 S5 a5 F8 f4 P                        row := assignLObj.getRowNo(GlobalDistObj);
6 q  C7 @! p$ p9 |' R( e# T                        if Row = -1 then -- since 705 h# A5 y2 g" g# F! X6 `) u! {
                                if lan=1 then9 Q+ N! g+ o" B; K6 \
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 z* y+ x( I7 |8 U% o; X                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 |9 L6 {7 H5 t- K" _  N
                                else
7 A6 p3 C/ v$ E) R( T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' s6 h+ f6 x6 f- i6 _. k0 i                                                to_str("in docking station: \"",?.~.name,"\""));                                + @9 p0 ~9 t' ?" j
                                end;
7 j3 N  p: M& O0 i1 \                        else7 u: l0 g3 @9 b! x9 D
                                @.Destination := assignLObj[1,row];" [, \9 ?( F- X: b! j
                        end;                       
. I; v$ f! ^! p. f" e( n, ~                        newDirection(@);
- q! E' P8 b0 i+ C% T                        @.HasOrder := true;
9 i/ O* ~# `5 o8 z# p$ B  a+ Q                end;; X1 {' E; I5 L
        end;1 {- ?  r2 B: h0 p) [2 V
end;        -- of the method: F1 i9 V: ^2 c, ]# J$ X. G. r/ @  z+ i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : a, Z0 k/ O/ |8 Q; p

; q) p, {" I( n( {& b2 e这是AGV_putin中arrive的method。1 N- P( I& H' ]. u

/ u+ ]1 i1 @$ }* N; O5 m  P) F8 A当到达物料速度越高时,这个报警更多," A8 B% v& X! w" D6 |; N
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, [: p8 ~# K; A6 |程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; f3 H& V- X/ m8 I- P
6 K7 h: ~; j+ a1 L5 F7 t2 X; e0 t
另外一个小建议,就是move,所有的move都可以这样
4 M  R; v6 B+ n/ g& yif not move() then debug end
& X- V% w$ {0 {. G% L9 ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, M. k/ C% M! F$ M- c
plant simulation中的free libraries有AGV模板,) d' z3 t5 l# _' Z  {6 Q! A& u* c& Y
里面也有案例。0 n1 o- F) _1 z5 _/ }! _+ ~6 m+ G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ D9 B) L  Z  Q# T& a
1 E7 }0 H+ T8 b# a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 n5 k3 q' W2 O& X2 j% V( u6 e7 \1 D' Q. u2 n
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) e7 E& i6 A- ^这是AGV_putin中arrive的method。, V7 U2 e! ?" B- G4 G+ a3 i+ O8 f

! j" ?0 z; h2 V& G' p' L, a$ q当到达物料速度越高时,这个报警更多,

# B( H* E4 a  _% U& p5 [% w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-25 12:55 , Processed in 0.018894 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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