设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8176|回复: 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'+ p' K8 q( v) @( ]; ^$ V" j
*/6 ?4 t4 u- A$ K8 s
is
% c& X' t7 |7 F: I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 F: ?% w* `, K* `; Wdo
; D' U4 S- x! M0 L        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 M2 d! M% }- |+ F        if current = @.Destination -- else return
% g. m& ^* j, C4 Z        then
- i( U- H5 i- Y* @1 o+ h                @.Destination := void;' O4 H' Y1 e( f2 o& [
                if @.occupied then
) `; _/ R* j  Z/ m" G                        part := @.cont;5 f( S# J) b9 p" V! `4 Z
                        @.transpOrder := void;( Q* H. t  A$ p0 z$ m, o: ~$ P
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 _: H* S9 J- v1 c) [2 i& F
                                @,root.eventcontroller.simTime);# P$ a3 P( ?# _; X% ]. K
                        @.HasOrder := false;
& D: q/ Q9 `- y6 ~! X                        @.DrivingHome := true;! l! a  Q7 y$ k* |% r
                        rgManager.tryToStartTransOrder;
& l# |/ C+ h# a/ s/ u- _                        if @.Destination = void* n! Q; {5 y0 w
                        then -- no transport order for vehicle @
! m" k: m3 l. r; H# B                                @.Destination :=& Q0 J- s+ H7 T* O" U& C0 d
                                rgManager.nearestFreeStation(@,track.~);
7 y( i1 P6 m( u                                newDirection(@);   
  Y4 [( F, J5 Z* u2 {+ m                                if @.Destination /= void then; z$ ^5 e  ^% u$ Y
                                        @.Destination.NumReservation :=2 f( d) ?2 r$ S3 l! ]9 }2 S$ `
                                        @.Destination.NumReservation + 1;# E7 i3 y+ Q8 j3 f
                                end;6 {3 r4 t$ V) v6 f! l
                                @.CurrIcon := "drivingHome";6 p8 X6 s! _' J/ t! M
                                @.DrivingHome := true;
; a/ @: F/ Y4 H6 {: i; ^                        end;
0 E5 {. {! T8 D# A                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: U' g2 w- ~/ M8 y5 J                        part := @.transpOrder;
( x" a$ X( d$ F: O/ o& h& _. s                        part.move(@);-- load part
1 @8 w6 e, E2 \" [                        @.CurrIcon := "load";5 N9 i0 \) q: g! B+ ^# c
                        GlobalDistObj := part.globDestination;
9 V; s: k% T- T4 l' \$ {, Q% Z                        assignLObj := rgmanager.rgAssignL;6 S4 W+ o! f0 N; W
                        row := assignLObj.getRowNo(GlobalDistObj);8 z7 }' C8 }; V9 P3 P, V/ U! w1 H) @
                        if Row = -1 then -- since 70+ j' D4 L* w( d+ S
                                if lan=1 then
- b% z& \- y9 c                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 H" }/ [. |9 e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));! \- O9 [9 E7 F& `
                                else" I/ D+ J( z% }+ R5 _' @, |
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 k, R% N; f2 }3 }0 {                                                to_str("in docking station: \"",?.~.name,"\""));                                % h0 p! @1 t2 F$ O
                                end;
4 k4 \; u5 x; Y7 @2 t                        else
0 q0 T6 k9 h# A. k& ]                                @.Destination := assignLObj[1,row];9 g" h* Q9 u" ?0 u) d2 A
                        end;                        # b6 b, L% v, s; g
                        newDirection(@);
: @2 d% u: I) V7 A9 M2 h: B                        @.HasOrder := true;; {" u  T% e" E1 u/ k0 R
                end;
+ ~8 b9 A- r& o) W! K/ E, F        end;
7 N. f+ R0 R8 t. J( r+ v& Zend;        -- of the method1 M6 S2 K- Q, Y, g$ J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! T0 A: z* e6 n- o, e

6 u/ T, `- J; z! C" `8 S! I这是AGV_putin中arrive的method。& ?- t; K; A: X( B  i: X
$ _+ ~( Y1 s2 U) I1 S, o; W8 {
当到达物料速度越高时,这个报警更多,0 Z2 u" {/ m' `7 g% U1 w
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! Q( G- z. I( j. e9 j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 p- E0 w7 Z) j+ V1 p% `6 j5 I, ^& K8 A6 |! H

& e/ Q" |1 e. p; n9 {  w另外一个小建议,就是move,所有的move都可以这样* L$ o# j6 f  o" j0 T* o% j# K, m
if not move() then debug end
$ o9 \" {5 L5 F; S这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. K( t; e# }. d! X# x3 {$ M7 {plant simulation中的free libraries有AGV模板,7 m: y# A1 u" X; r
里面也有案例。
# D' m; G& G7 p: H: ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ o2 w" n2 s) L* I# E8 e) m! U! Q3 T8 V/ c- Z3 j% K. C2 t+ {
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : j! p3 \2 g. A( t/ r4 @- T  n* X

4 A* C5 x0 L: s7 K" |' U" i( ?那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % R! C' Z* Y% j
这是AGV_putin中arrive的method。
3 F$ f* `: A1 f4 n- ^
7 X+ v; y( ~3 _! y当到达物料速度越高时,这个报警更多,
0 D8 x! ]! |$ e, g0 i2 T& W
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-19 05:35 , Processed in 0.036110 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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