设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5877|回复: 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'
& T3 @1 K% h5 T6 m*/
4 R3 ]! o5 {9 \( K- fis
. K" i3 o: v* M  s        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: M# Q  n8 j  j/ G, P4 R- N6 u
do
' Z' v% G9 ^, x! I( f        Lan := rootfolder.Internal.Tools.AOLlanguage;4 b' T5 Y9 }: M; B' o* d  v
        if current = @.Destination -- else return
/ `1 l: X1 j- B( Z9 X. ~3 Z        then
- m0 J  i: n9 L                @.Destination := void;1 Z- e3 Y3 O$ a6 N5 F
                if @.occupied then3 ?0 R9 e9 f; _1 J" M
                        part := @.cont;! i# q. _( }# x7 n: q( X
                        @.transpOrder := void;; Z* d; [+ l  R
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) N5 T1 e( Z) Z0 V8 ^# J
                                @,root.eventcontroller.simTime);
8 u4 K+ f* u8 V                        @.HasOrder := false;
, D' e% X/ F: b& e/ e: P                        @.DrivingHome := true;
' P5 W$ I3 c9 @% h% Y                        rgManager.tryToStartTransOrder;& z2 B+ @  Q4 Y( ]; g  V
                        if @.Destination = void
2 g  q/ U6 x4 [2 M" B+ m5 T                        then -- no transport order for vehicle @
0 g$ I5 y  }7 d) e2 f                                @.Destination :=" P1 ?$ E/ I  b) N! K8 o
                                rgManager.nearestFreeStation(@,track.~);; d- F0 u+ g! C* o2 r( P
                                newDirection(@);   8 d8 P4 j' @- R" O
                                if @.Destination /= void then
8 z* G) M7 Q' w2 R8 a! d2 a9 d9 U                                        @.Destination.NumReservation :=) S' H8 W6 I: H. o$ ^' J  k# F. G
                                        @.Destination.NumReservation + 1;5 R- D4 x* I4 ~% ^# @- `
                                end;
5 P/ K) R7 a8 j. k* y5 h- w- N4 s! }                                @.CurrIcon := "drivingHome";
! J  A( w& o( W' [* z" }                                @.DrivingHome := true;6 w( i' |: G7 p9 q' U% @' {6 @
                        end;
$ v) p6 l" U* e$ t( c/ I( K                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 y' l  \: `* ~3 U/ V
                        part := @.transpOrder;) v6 S, `- q5 H! v
                        part.move(@);-- load part
* |7 u) Y* X. M3 g                        @.CurrIcon := "load";) b# q5 ~5 _  |
                        GlobalDistObj := part.globDestination;/ ?9 l; }' C4 z
                        assignLObj := rgmanager.rgAssignL;
& c" i" E) z& {5 I                        row := assignLObj.getRowNo(GlobalDistObj);
7 x  G6 D- U0 c& l' V" |                        if Row = -1 then -- since 70
" Q. T5 @+ b+ H& M                                if lan=1 then/ z5 v1 l7 @! m0 A! l# E
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* w: {# b& B8 K! x/ X5 n) m                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 m4 \& X: v" D; @6 ~$ `* C8 a; }* b
                                else
& N& k" h3 f/ ~. z: J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: v- k4 L! g. f! m" t: _5 q+ b9 |- S6 k$ ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                " x4 w. D  n6 X9 p/ |
                                end;" M# ~; o/ `; n! h0 p- O8 _- b
                        else
% J5 v* K" g; ]# G3 g% J* G                                @.Destination := assignLObj[1,row];
: E% J7 y8 @  O                        end;                        7 B3 ^7 J4 T" Q5 s8 K
                        newDirection(@);, z9 ^: Q# x% E* ]1 h  T9 G
                        @.HasOrder := true;
: g9 N0 Z( l' k                end;8 P3 |/ A6 W7 c/ a* y
        end;2 Z. j: ]" c1 o8 H* o; k8 y! H/ {" C
end;        -- of the method* z, E% X( {8 \, Y4 w& b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; o) M. ^5 [9 Q% r. e

3 P) f9 P1 [8 Y1 v5 H3 c这是AGV_putin中arrive的method。  m3 s& e4 O6 g  }
0 v( d' T' |/ }; K
当到达物料速度越高时,这个报警更多,, r: i2 O7 V4 |4 [/ Y0 Z9 K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 O" _! k) L( t9 I' ?" h, P7 L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 }4 V4 r4 u1 b* l( C9 k2 n
/ I% A. C1 c  X# ]% F
另外一个小建议,就是move,所有的move都可以这样
+ ]% q  z: q* J2 ?- K7 P& p& Qif not move() then debug end
: h3 l  O8 f( ]0 R/ H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* z5 e1 h5 m# q: r) g4 i
plant simulation中的free libraries有AGV模板,, p7 n+ n) z! s* H) o% K0 F) X
里面也有案例。: q. s# ~# e0 |) U" M9 d0 u) E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# l8 ?) N- r5 W; }' L/ o# e% N& g; b, ?& O  P
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 E- F, R$ E! x( N* G4 N3 D
/ c' |) |, ?1 V' g, y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 y- |( `' K3 O8 u这是AGV_putin中arrive的method。4 P$ v0 o  W7 e" b. t' \
; m1 r8 H! O+ w; |9 Y% I
当到达物料速度越高时,这个报警更多,
1 j3 t  b  q; c" q, O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-29 00:01 , Processed in 0.017750 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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