设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6791|回复: 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'* H8 t4 i# B% ~! J- F
*/
3 W% K( m1 i: |+ n8 l2 h, |is3 W7 G  w+ P) c( K& _
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 k3 `  z- O; l8 m' C2 u  ^3 U! n
do
6 z  n. `% D% n6 D        Lan := rootfolder.Internal.Tools.AOLlanguage;* m$ K( A" s) d, V% ~5 Z- `
        if current = @.Destination -- else return- c/ D# h/ `" X0 z& }% a
        then
8 y1 T5 w7 ~% i4 l' L1 p; v; b6 z                @.Destination := void;- F( S( |+ z8 p
                if @.occupied then; @* z2 O' R! m/ a- }% [5 ^
                        part := @.cont;; [2 B3 o2 ~4 t5 e7 Q: {
                        @.transpOrder := void;
4 G, i3 J" t7 j$ h# a( j( ?& p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. l6 i! M1 l* K; o
                                @,root.eventcontroller.simTime);9 F3 a9 C$ T3 u- p6 Y+ Y
                        @.HasOrder := false;
$ X5 L$ [1 i# C$ n2 z# ]* i3 b6 _                        @.DrivingHome := true;4 |% {. W/ E) M" N) Y9 T! F3 R2 R
                        rgManager.tryToStartTransOrder;
) N# C8 e% Y% \2 b9 @                        if @.Destination = void
: s" E0 k9 e2 f$ c                        then -- no transport order for vehicle @, Y; T0 w! {4 L  {: n
                                @.Destination :=
& |9 e8 s: C9 z( \& E% x3 H3 r4 d                                rgManager.nearestFreeStation(@,track.~);5 ^5 G2 l, M( ^5 K$ A
                                newDirection(@);   
9 Q+ a! x! o2 q/ _7 A) S                                if @.Destination /= void then
* a( X# H+ L+ D; j$ ?5 {! B2 f3 j  ?                                        @.Destination.NumReservation :=
/ _( G8 i- A2 O  u# J7 \* ?- ]/ X# Z                                        @.Destination.NumReservation + 1;8 f* S3 C) ]' ]! G' O" k
                                end;+ x5 S. D8 c" q' ^6 K' |5 q2 w
                                @.CurrIcon := "drivingHome";
& i( j2 S- |+ `6 j( I                                @.DrivingHome := true;- d4 ?% H: ~0 }
                        end;: y/ n' C7 q  m' q5 {" q9 C; i) q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 x) G" V) s: v1 S
                        part := @.transpOrder;& T: [0 [6 R! B5 r
                        part.move(@);-- load part, L* r: c7 ~1 W% |2 \* B
                        @.CurrIcon := "load";
2 m2 @. P8 A7 Y. {9 {                        GlobalDistObj := part.globDestination;/ ?( P2 C/ @7 }0 h
                        assignLObj := rgmanager.rgAssignL;7 l3 s1 Z! D* f5 q2 D
                        row := assignLObj.getRowNo(GlobalDistObj);
4 x, L6 c, T$ s; s5 [                        if Row = -1 then -- since 700 d2 U  o. y+ t) S$ c
                                if lan=1 then
3 u9 o' J: r: B8 p                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 h1 z! q9 z, O- A1 F7 `6 F/ L5 i3 w
                                                to_str("in der Andockstation: \"",?.~.name,"\""));+ r& r) ~9 N' c; c! I, g: S
                                else+ A% d2 c- G5 g: \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 {# {4 n6 t0 s# k. q  T/ M
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( n7 H! B$ i8 U2 V. Q                                end;! b! Y, n7 w* A, K. P3 p' l
                        else  E6 N4 e& A6 E+ |! q
                                @.Destination := assignLObj[1,row];
; x1 _! O+ {1 V0 f0 f                        end;                        ) e0 p5 r. d# Z
                        newDirection(@);8 {  e  F  }/ \0 U1 g
                        @.HasOrder := true;
  \$ l. z: K/ ]) W5 K- w$ e                end;! o# K" D0 D- P; E4 X" L$ |- i( _
        end;, V9 c: E3 \5 I/ P
end;        -- of the method
9 w# o: R7 ~) G9 J& P2 X& P) V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 p+ ^# N  A9 H. B$ _) c$ R$ G- w" n6 c9 d
这是AGV_putin中arrive的method。0 d  T' x; w$ U; P* I

8 G! {# V9 X2 ]+ N, c! S" G/ D& o当到达物料速度越高时,这个报警更多,/ v  n7 X; Y7 D3 y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ {1 W& Y/ C1 z9 Z% |5 D$ a2 [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  m( C& J8 ~& ^/ U* J6 ?
' \1 u, P) o; @# K另外一个小建议,就是move,所有的move都可以这样
" S7 _3 ~. o; L, J3 V2 mif not move() then debug end7 O- V6 v7 ~; e
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& x& d& \" ?3 ~) X: x; t' H
plant simulation中的free libraries有AGV模板,8 Y% o2 Z: Q: Y6 v; o
里面也有案例。
; Z. P' r- _6 d  h% @5 G. Y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' r4 j- O8 M1 k) _9 z: }+ L" r, t6 ]/ u3 J0 O
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 J! C! N  {& H- g% I! E2 {; k& E" d" m; ~3 \
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , U, J" o* }! S* F5 o
这是AGV_putin中arrive的method。# l0 \8 Y$ I2 l' P  W- F
7 J% c* r2 u; i4 c
当到达物料速度越高时,这个报警更多,

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

本版积分规则

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

GMT+8, 2026-2-27 02:04 , Processed in 0.014897 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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