设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6628|回复: 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'
/ S3 O, \6 D1 ]*/
( c8 @# }& `: }! Ois
9 x. f) H* Z3 j3 f) S; D0 S        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 j, a; Q4 d3 [( B
do
% q. |" y! ?8 m        Lan := rootfolder.Internal.Tools.AOLlanguage;
" g, K) j& H: L7 D1 F/ M# R        if current = @.Destination -- else return
. A9 W2 J& ^* \5 E0 u% P        then7 G5 z* Z$ V/ V5 Y
                @.Destination := void;
  `$ U) z: V+ g, Y0 e6 ]& @* z  T                if @.occupied then
6 H7 j; Z8 u5 t* O% H8 F                        part := @.cont;; S/ }, ^5 J+ G" A4 g% p- O
                        @.transpOrder := void;
" R/ Y' `+ ^5 ?/ b  E, _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 v3 }+ L6 L' W+ S% s
                                @,root.eventcontroller.simTime);5 b/ b/ q( u6 {: X
                        @.HasOrder := false;
* k3 ]8 n& c7 z$ {8 A9 V                        @.DrivingHome := true;! z/ j0 E: |' ~1 t- @& I
                        rgManager.tryToStartTransOrder;5 [% g" j) W9 c9 a1 S
                        if @.Destination = void
- t! {  }- y6 w3 s4 ?                        then -- no transport order for vehicle @
$ y" S; j" R' E4 g* W1 e: D                                @.Destination :=
" W& ~( u' e1 Q5 R2 D8 \                                rgManager.nearestFreeStation(@,track.~);, y* r  F5 Y4 C4 L2 \
                                newDirection(@);   " G" U+ I- n& b% ^3 Y" k! D
                                if @.Destination /= void then
% a0 C# Q1 }! O+ M5 _/ Q                                        @.Destination.NumReservation :=$ Z( N' E  ^) Y5 M& p6 a
                                        @.Destination.NumReservation + 1;1 d, A4 M" }- w' ^5 b
                                end;& C; v9 K7 a; y4 k/ J, B
                                @.CurrIcon := "drivingHome";
' h: f' q! V# Y0 z% _$ q                                @.DrivingHome := true;/ {$ S; C! v; m0 ~
                        end;- ]: }# R+ u) p- U- m
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! {6 ?0 R7 M! W: K6 S, P8 |! l. Q7 X
                        part := @.transpOrder;
) r, u" O; C. U+ b& N; D6 u  L                        part.move(@);-- load part; e8 ^% V/ y' W; F: q8 [1 K
                        @.CurrIcon := "load";
0 T1 F  n/ A+ L( K8 L, ^9 m$ I                        GlobalDistObj := part.globDestination;# v9 j! d8 K* l2 U
                        assignLObj := rgmanager.rgAssignL;
. M& H9 k- N3 P$ K. g7 U5 E( [                        row := assignLObj.getRowNo(GlobalDistObj);# g) g7 ^/ g+ {7 Q: b: }
                        if Row = -1 then -- since 70
  w8 }( ?) @6 F- n' I+ w: P                                if lan=1 then
# X9 r( Y( s" N5 H; }. b+ Q" L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& R4 s3 J' @2 b                                                to_str("in der Andockstation: \"",?.~.name,"\""));% a5 L- t0 O: ]" Y# Y
                                else
) g3 A8 P4 ?0 K0 s" u& [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) R! \' j- r: u1 i
                                                to_str("in docking station: \"",?.~.name,"\""));                                ! T( ~( K3 `9 E. ]0 G
                                end;2 H7 `3 c$ C8 S" F( j' u  A2 b
                        else$ X2 g. `: z* [- \2 ^8 k% \5 {
                                @.Destination := assignLObj[1,row];
$ u1 A+ f* p8 X0 R) z                        end;                        ' o( F- ]# g; H8 b9 `% Y/ |- L% Z" w
                        newDirection(@);
/ u. F8 B; l# N                        @.HasOrder := true;3 u5 v' K* d* R8 T) N1 Q
                end;
* `$ w  ^. r$ C3 N5 ^        end;5 c4 V; k' ?( T+ C8 k
end;        -- of the method
. T% `! v1 h; B+ S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" Z0 z! x3 _( O2 c& w9 G* t% G5 K/ d( P/ f# z& P& i
这是AGV_putin中arrive的method。
9 ^2 K1 J3 C6 P( E7 t0 D
1 G  Z  _8 t3 M/ v3 g6 L当到达物料速度越高时,这个报警更多,9 ~. ^- L( f4 J% t1 G% m
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! O0 m5 ~( i/ T. I2 k/ H
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% D9 G0 k1 I9 A# J8 s/ r+ b8 k% S6 i" z
另外一个小建议,就是move,所有的move都可以这样
3 L+ L0 O1 i  R- p6 @; A, n' ~4 [if not move() then debug end* J2 _+ u' B7 u% z$ @8 x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# ]! w9 Y- j% y7 Kplant simulation中的free libraries有AGV模板,
) c! a9 E9 A* \1 Y6 H2 {: a里面也有案例。) f0 _' l* y+ l: r; J  t3 n! m* X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 o( ?" t$ t: B/ A: o
( ?, f  _+ m& [  X/ M我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; N" ]3 m4 ?; c3 e; S# d
5 G3 O9 W; H. \4 _( B/ t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 P2 F* k3 ~& X这是AGV_putin中arrive的method。( V1 o, t& q, F, `. z

2 N& E& l' b% N' I$ y当到达物料速度越高时,这个报警更多,

! z- ~; {1 C: b7 e% F* W4 g另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-17 06:14 , Processed in 0.020143 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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