设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7027|回复: 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'
) S4 A$ B5 |7 B& h5 C*/
" |. b  r0 g& L) {* }: G+ D, C. T3 Yis6 A  S2 K" m6 ]" l- T2 E6 H  M
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 z0 K3 H& e7 Qdo
' f9 t5 R$ n, y5 H9 N$ h        Lan := rootfolder.Internal.Tools.AOLlanguage;6 r0 Y! x7 {& O( C; A, r
        if current = @.Destination -- else return
0 e! o, E5 ?& D( B        then5 J  _, B1 i1 j- u
                @.Destination := void;
$ v! T! }! k8 M- g                if @.occupied then2 N0 h. e- t  a4 m  T; I# s
                        part := @.cont;6 t6 B8 A) d2 K% v3 }0 W5 c6 P- m
                        @.transpOrder := void;+ o" _, g' W' U" k
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! N( f- u1 w  x1 @: s% u                                @,root.eventcontroller.simTime);0 q! `3 \3 ~) k( l+ F- g- I+ H
                        @.HasOrder := false;
7 z. a+ h2 A3 e! E                        @.DrivingHome := true;3 \' o% V! o  `+ T3 \; J3 ]
                        rgManager.tryToStartTransOrder;% o& z2 |% i( s
                        if @.Destination = void
9 @& A5 e6 r% z1 ?; F6 ]6 j/ F                        then -- no transport order for vehicle @
3 ^4 J0 S* v$ @% u5 K                                @.Destination :=4 l, Y! [1 q; N2 b1 @) \' I
                                rgManager.nearestFreeStation(@,track.~);  u' A5 U. o2 @! r, K) `/ Y
                                newDirection(@);   
* B, l/ P$ \, }1 T+ x                                if @.Destination /= void then2 A) e; I- L6 u; r& R. h8 Z8 F
                                        @.Destination.NumReservation :=8 G3 z' d& b. ]7 _5 X2 u/ m
                                        @.Destination.NumReservation + 1;
8 K2 ^/ e( f! ]5 x- a( b% K0 I0 p) M                                end;
+ {/ N1 B' K# n! g4 a) s                                @.CurrIcon := "drivingHome";
2 \( T0 r4 o0 E. g$ D: }7 O( g6 ^4 F                                @.DrivingHome := true;) l5 ^& x: P- X( C  ~0 n! C
                        end;
5 G  M" H$ a2 Q# l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 u" [7 K# y* A5 c) b1 M
                        part := @.transpOrder;+ e& I; G+ v  F/ v5 Q0 |
                        part.move(@);-- load part6 ]9 K7 a5 e' s
                        @.CurrIcon := "load";
7 t# q' O9 }# W+ {& R+ y                        GlobalDistObj := part.globDestination;
0 ~  H8 e0 r6 F$ i                        assignLObj := rgmanager.rgAssignL;' u9 n/ R2 N3 H1 C
                        row := assignLObj.getRowNo(GlobalDistObj);" V8 o9 R: \; O7 k2 O
                        if Row = -1 then -- since 707 B" r! I5 b; H  m3 z$ V+ o; k* Q; E
                                if lan=1 then. M' h1 o1 a, I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" K9 p8 {9 Q5 q& Y, V2 k                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 L" T9 v' P) _( {( q0 Z
                                else
( R4 D1 f( {( ~; C* ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; x0 v* Y) m  b
                                                to_str("in docking station: \"",?.~.name,"\""));                                + H: e/ v, K9 ]* q4 R( g
                                end;8 `& _- ~( X4 n5 ?
                        else
5 w+ |4 q! C- d                                @.Destination := assignLObj[1,row];
8 o8 U5 q1 k7 J7 y2 S5 J  ]                        end;                        . L/ U. B6 [8 L; `8 O. M# y
                        newDirection(@);, u# N0 m4 y9 X% D5 t3 Q
                        @.HasOrder := true;: l+ T6 Z: _# c
                end;" }0 I% p8 u: N
        end;- ]* Y  B) M, f/ ?; u
end;        -- of the method
* `4 v& e/ T; Q' E* Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' M+ Z* X( W! _/ N: Z; J

. ]) c3 @& F2 N) z1 _1 X1 Q这是AGV_putin中arrive的method。
4 l7 O2 e: y, u4 Q' K& C+ P& w5 r* b
/ r# [% C7 Y0 I* M+ Q3 E% W当到达物料速度越高时,这个报警更多,
5 J8 n  `$ ?1 Q! Y. V可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. o! D, s5 l7 D8 p, c/ w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; d) f1 B/ M; X* p6 p' H* a$ U/ m/ B! f* B5 [; F
另外一个小建议,就是move,所有的move都可以这样
5 q! p# f7 c! K% i/ f  yif not move() then debug end
+ G* y& B7 ~1 l  @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 S% k# R9 j5 D5 S) U) G0 H- O1 x
plant simulation中的free libraries有AGV模板,
3 J% o1 H- s+ k6 [* d  n里面也有案例。
4 b; R; g) M8 ]4 b3 O" K9 k8 N我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- e4 U3 s8 f' q0 N% ^, I
: P( v! H9 A, n) R; \
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% q3 o' q) x# }
# a6 Q1 w. z: q' j5 N& `那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - E$ V/ g5 B: a" M% C. l' |4 ]$ Q
这是AGV_putin中arrive的method。
. s! c* q. j+ e3 {% u% B* R
! k4 r2 f: D5 V; i- f( _当到达物料速度越高时,这个报警更多,

3 u5 w! i4 l: |" K8 W4 L3 C另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 01:34 , Processed in 0.020231 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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