设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9346|回复: 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'  O# S- ^$ M9 {7 \. C, k! c* j4 t
*/* k" {! }% z/ L7 Z/ c+ T
is' U, ]/ ?; J! b7 c( h
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 ]* X  `! U8 pdo$ p) S6 C  D0 n. n8 {. {8 l
        Lan := rootfolder.Internal.Tools.AOLlanguage;2 X7 K' r+ I) M
        if current = @.Destination -- else return
# u7 X; p) s5 \$ ~/ V6 \1 c        then* g3 Z  V/ Z5 O! w" N
                @.Destination := void;
" D! p  C8 M  }9 v( N. L                if @.occupied then
, v) B5 y) I2 u3 i7 s! _, h                        part := @.cont;3 x$ f8 g+ s- v$ \  r3 U7 d. M7 v
                        @.transpOrder := void;% H- O7 |3 ]* J/ N# y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 F4 T( Q/ X9 S5 v0 s; \                                @,root.eventcontroller.simTime);- g" B- w9 l& l! O- \
                        @.HasOrder := false;1 ^/ Q' F- @9 ?+ \4 j( n) G% w  |
                        @.DrivingHome := true;/ c0 G- u# V4 M- W, A7 b1 N; T
                        rgManager.tryToStartTransOrder;) _$ r' G: c4 X6 N; O0 ?/ m
                        if @.Destination = void, V0 T2 e5 E( ], C/ L2 [% J4 k
                        then -- no transport order for vehicle @6 y; h# W' p. ~, P9 h
                                @.Destination :=
1 |( @. P+ L1 p                                rgManager.nearestFreeStation(@,track.~);
  O1 O- M8 ^( u8 U' j, X- ^                                newDirection(@);   
+ z+ s0 N" S) n: ]' I                                if @.Destination /= void then
( l' g# z" n, U% y) m3 _                                        @.Destination.NumReservation :=
* E' m7 ~) Q8 F0 Q& K- D7 L! E                                        @.Destination.NumReservation + 1;2 y" R! @5 P' J9 q4 [
                                end;
0 A7 M' k8 u/ `5 a0 W) u                                @.CurrIcon := "drivingHome";
0 {" |7 e8 o# v. r, M/ d* U                                @.DrivingHome := true;
9 S( S# m& O# B2 k6 d                        end;
+ H/ A, y& ?1 {2 J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ A8 r" e, {. e8 \4 c" U+ O
                        part := @.transpOrder;
3 R4 g, L  X) O, ?" d* K                        part.move(@);-- load part" Z  Y, m( p5 `  ~& ~9 G' i: c$ g) @
                        @.CurrIcon := "load";; V& |7 P) z' C( ~
                        GlobalDistObj := part.globDestination;" R5 V* K+ i( ]" N
                        assignLObj := rgmanager.rgAssignL;
" g5 `; H' \' [% `; q                        row := assignLObj.getRowNo(GlobalDistObj);
+ b; [$ @( k$ {! ~# D/ B                        if Row = -1 then -- since 70
5 b  s" S" z4 s                                if lan=1 then& A8 l  F$ K, ]5 a" J3 x  ]
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 [6 Y( q! o) o# g
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 c3 ~, `6 ~: z4 Q& q
                                else  ~5 w3 c# H9 {+ g$ j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 k9 |" B% p! k- x& }6 y- O; V                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 U$ s! o* ?9 B                                end;
( y4 F: Y' M2 {6 u! {8 @# d6 }7 R                        else
1 V  F& w# K$ y# v1 v! O7 ?! b                                @.Destination := assignLObj[1,row];& G1 y9 j1 K  R0 }* x
                        end;                       
; q# o" I8 J, V; ?3 w4 ?# y                        newDirection(@);2 {! @8 p( D, \/ j/ E0 n
                        @.HasOrder := true;# N2 B4 E2 V. X# A" `1 o! r
                end;2 ~' C& d% e. i, X$ L9 f$ G% f; O
        end;
9 \' A5 T+ j4 q4 Kend;        -- of the method
8 D# n1 R$ Q$ I* O5 F) L+ ~, y) G5 d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & [% _1 x0 x4 M6 ~7 z0 r8 m* c

5 w4 }0 J8 ?* @# ~7 n% Q+ b这是AGV_putin中arrive的method。( K$ `0 n: Y( h% s0 P
; K, ^2 y) P9 m
当到达物料速度越高时,这个报警更多,( ^7 w0 q# ~3 N2 j8 b. u. C/ J! K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, F) j/ q$ [  Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  d% E- `. Y* Q$ X) u+ D
8 {; H2 L* e7 U) I5 e: v- g另外一个小建议,就是move,所有的move都可以这样. f! X% ~# f; j% j
if not move() then debug end" A  Z: [* M2 p
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; Q- r5 T4 ~2 U& p* R: }plant simulation中的free libraries有AGV模板,
) K, w8 s6 _3 S; d$ c里面也有案例。+ J& N6 t$ ]  F0 r) W' u! t
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' g% O! Q& |% `: }+ J; d6 Z$ J+ {4 R) e5 [" l
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ ^& G8 F7 L% y
9 y  z2 [5 W+ R那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * ^+ n) m9 }7 ?2 M
这是AGV_putin中arrive的method。/ S- v# s" d4 B/ _3 W- r4 X1 |

1 W  Q) e: M8 U. I1 t) A* o当到达物料速度越高时,这个报警更多,
, e; w8 X7 ?/ f/ ^4 H& b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-26 22:50 , Processed in 0.018424 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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