设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5920|回复: 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'
$ B. ?! E8 \8 @: q, g*/
7 A( q6 Y2 w* o0 J; R' v3 C8 v9 his# K( N, b: ^# {+ N3 D& i* k% L
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 d' u$ o6 `2 n, Ndo
9 w* l, b" y! J% L% j        Lan := rootfolder.Internal.Tools.AOLlanguage;5 o$ [0 D( G. Q0 c3 p
        if current = @.Destination -- else return
% g1 y4 N0 U. ^* ~        then
- F, |9 f# r8 F# v: r                @.Destination := void;# w/ ], {$ h7 \7 J2 _; s& |
                if @.occupied then# f7 e& N' v$ L
                        part := @.cont;1 `  \3 z' p6 g7 U
                        @.transpOrder := void;/ ~: {0 Q8 ?3 g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: |6 U$ j6 e: B                                @,root.eventcontroller.simTime);4 ^9 K; f, q) ^. I. i; e9 z
                        @.HasOrder := false;
" b! s$ |4 z1 E) }1 U* i9 X                        @.DrivingHome := true;
) @$ I# E" d  x2 S                        rgManager.tryToStartTransOrder;9 r( [- N. {" a; ~) G
                        if @.Destination = void
8 J' Q4 g7 f! v/ e% u                        then -- no transport order for vehicle @& Q2 \" T. X/ Q! C6 y
                                @.Destination :=
6 C7 o( Q+ c) ^                                rgManager.nearestFreeStation(@,track.~);7 x1 C$ V9 R9 i) a( T% m  a' j) Y; x$ @
                                newDirection(@);   
9 y7 l4 d9 t! _) F( a9 m                                if @.Destination /= void then
/ U* m6 }) J0 x) G7 m: o                                        @.Destination.NumReservation :=5 _! m. ]6 K. {* {& W1 w. i4 X
                                        @.Destination.NumReservation + 1;
2 y5 J! p7 |5 v1 h5 [- A, z                                end;
  z) ]. u2 b/ e                                @.CurrIcon := "drivingHome";5 i  D  C; H* o( t( c5 E
                                @.DrivingHome := true;/ o- w( D: w/ Z7 k$ o$ O. R9 w
                        end;4 s0 d1 q( M) C% k6 f
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) [' [+ |( l9 P6 I5 |
                        part := @.transpOrder;: c  i/ f* s; ]
                        part.move(@);-- load part! Q7 y9 v: T9 \  F1 j+ }, A6 u! ^
                        @.CurrIcon := "load";
1 M# u% Q3 z( ]                        GlobalDistObj := part.globDestination;
1 g; v! L% F4 B5 S! _                        assignLObj := rgmanager.rgAssignL;- s. r; ?# n+ F" H0 |/ O
                        row := assignLObj.getRowNo(GlobalDistObj);0 H* b; }1 a# l8 o1 ^2 u
                        if Row = -1 then -- since 706 {- G8 q! o0 c
                                if lan=1 then
$ v7 d) z2 T4 G$ L" n                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ S1 M4 ~) t7 K4 F
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 Q  y2 h& a+ l: d4 r                                else8 ^4 D4 q% U. P0 f9 ^( y# X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& M  e& P$ ~" S1 J                                                to_str("in docking station: \"",?.~.name,"\""));                               
! a' Y4 f8 |* V. }% U- I8 p                                end;
# b7 c; ?6 r: i( m& Y/ E                        else; F' ^! H) M: ~" X; [- A0 r$ J7 g
                                @.Destination := assignLObj[1,row];
4 l9 U/ v- W7 G+ W7 z  l. T                        end;                          p* F) e' h* S% [0 q( m% s
                        newDirection(@);6 {# a9 h" x& _7 E
                        @.HasOrder := true;
% r$ e/ s9 o" O1 ~                end;
+ {3 U. d" I0 N        end;9 ?' Q7 D' Z. [( V2 h0 }6 l
end;        -- of the method% F) l6 X5 `, a3 T; s* o( e6 k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * k4 j. Z5 B+ H6 }2 {2 F

: j+ k- B& y% w% z这是AGV_putin中arrive的method。9 }' }" K6 B: @6 g% Q0 v

/ {* E4 O8 P' _当到达物料速度越高时,这个报警更多,
3 [: _; I1 a- a! C: C可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 Y& \. X$ u. }
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 v& {5 |# h! d  U0 \, k- u7 g. Z9 C) p

, w3 k5 p" Z! o7 T另外一个小建议,就是move,所有的move都可以这样+ J# U+ |( c! `7 u- B: x7 h8 c- i
if not move() then debug end0 w% M6 [1 a& J+ v, ]: K  E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* f; D7 Q$ n2 w( U) S, Qplant simulation中的free libraries有AGV模板,
1 y, v) I8 c2 Q; ^/ r: l/ F# }里面也有案例。
- X2 M# Z4 Z. Y+ ?1 u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* u3 E5 f* U) a% M9 v
% f1 Q. l! n( m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 {5 v5 X' k( [$ U- w. U" G$ t& ?& E; A, s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : `+ t/ j4 N& e
这是AGV_putin中arrive的method。# y& _7 X' w3 L
, a* K# n! r. h; v7 F5 U5 E
当到达物料速度越高时,这个报警更多,
$ n  Z# A: P7 c6 v, C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-2 09:33 , Processed in 0.017649 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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