设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8873|回复: 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'9 N7 K: E* G0 G2 }
*/% b& b8 k! D. L0 H
is6 w$ c& F/ g4 u' k
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 F% q1 k! z( ]! [* _7 fdo: R* X- M8 n2 u) i+ U9 M
        Lan := rootfolder.Internal.Tools.AOLlanguage;7 M9 R% ^, M/ P- {% m. I
        if current = @.Destination -- else return
+ Q/ {0 m& }4 q/ V6 J) l+ M        then
$ V( e% c5 _6 l4 m! ?                @.Destination := void;4 z5 x$ @0 L/ O; K1 d5 N; T& M
                if @.occupied then$ d/ k8 [$ I$ }  W
                        part := @.cont;; U; H3 g+ u: p5 e* Y
                        @.transpOrder := void;
5 P, N* I% P2 H/ n2 x                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 B9 o, k$ H, w8 b: s
                                @,root.eventcontroller.simTime);
6 w& _1 U+ M9 `: w, N- v1 u" ^                        @.HasOrder := false;2 G6 `: h) T5 }; {
                        @.DrivingHome := true;% a. n4 f5 e$ W$ \& [2 j" j- G4 F' ?
                        rgManager.tryToStartTransOrder;# G9 ?& G6 @4 W' T+ K# _
                        if @.Destination = void- `( N9 \9 N) A0 ^2 V) a" o! l+ c
                        then -- no transport order for vehicle @
/ L: A" L, u+ k" x- ]+ i0 {                                @.Destination :=0 o( g9 E1 S8 Y  G
                                rgManager.nearestFreeStation(@,track.~);
! w4 i5 z2 V! P% i$ S                                newDirection(@);   
4 `+ ^" M3 f+ K; T9 ^0 G+ [' p9 ?) A                                if @.Destination /= void then7 \6 L6 ^' z% _. N& E, l
                                        @.Destination.NumReservation :=
( U! w, ?; s, H2 N                                        @.Destination.NumReservation + 1;
. y9 p# B; L7 D2 g; q8 m                                end;
# w9 z3 i* N' D                                @.CurrIcon := "drivingHome";
9 V. u4 Z+ v* Q* h                                @.DrivingHome := true;- q( C& L  y' s& L  F
                        end;
( e) K, L1 n5 y3 Z; h5 Q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 B0 e+ n/ Y3 P1 K4 R" o
                        part := @.transpOrder;! E7 R* B2 H4 L' P. E; T4 b7 P
                        part.move(@);-- load part; H: V. \0 H" b" N4 n! {
                        @.CurrIcon := "load";
0 g" I: k! S& o( {6 [                        GlobalDistObj := part.globDestination;1 Z! }* d3 S7 p) w/ [
                        assignLObj := rgmanager.rgAssignL;0 f- ]; ]6 P: |. I2 `& `
                        row := assignLObj.getRowNo(GlobalDistObj);
7 w6 \6 ^# G" z4 K( d- B: t                        if Row = -1 then -- since 70
1 S: @: W# j; m( T' ~1 a                                if lan=1 then
& e. c/ |! Q- |  n4 j8 k  M                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# B* P& ?7 g, D( ^) t3 B                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, v7 J* c" ^* S' D! P( ~# q8 C; Y+ `                                else
6 `6 j) L; h% \+ j% e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% A3 t. f( b/ R7 w" R. f* @                                                to_str("in docking station: \"",?.~.name,"\""));                                ' e5 f0 L6 X' F" J, q+ x7 E
                                end;7 V" T. r2 k1 v! z- h1 {; D+ [
                        else3 T/ h: }5 a* K0 I# ~
                                @.Destination := assignLObj[1,row];0 [( t, A, Q+ [' I3 g- c8 C
                        end;                        / [( ~. }+ W" d$ i- L
                        newDirection(@);
0 [! t3 }3 m& @, u6 O$ X                        @.HasOrder := true;
- L) w! ]+ x+ |& [- Z. m                end;$ {7 h9 F" F8 D2 i' K
        end;
) g  i. M) a. T6 H3 h$ Gend;        -- of the method
: j; c) _/ c8 Z/ J( l2 E" ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 r4 f7 t1 p: d( x% ]: B
; G' z/ o  Y' L/ |6 z! F/ {# t这是AGV_putin中arrive的method。& A1 B; ~2 a+ y4 ~7 \! w' ^! a
5 Z5 q( o7 b# p; B3 R4 U) k
当到达物料速度越高时,这个报警更多,% F, x; g/ q. N3 I: w+ M) d
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. E. Q5 D/ }" B6 Y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- g( n5 ?& V3 u; w
, a% k1 n( R. t. T. `( I
另外一个小建议,就是move,所有的move都可以这样6 E2 _+ {- C7 a0 b7 U" B" |
if not move() then debug end
. A3 u$ g  ~( d& a, N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 T! {& h) h2 s% ~plant simulation中的free libraries有AGV模板,1 o/ e7 p+ n8 [. Q1 z! x. ?
里面也有案例。
5 n# h" n9 ^# z4 R" y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 m% _0 Z8 s  L
0 t! D5 ~: q2 L0 p# v9 E/ _& Z) O: F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   M7 w3 s. E5 E; K) G
5 ^9 B! t9 m  z2 {: x; ]
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ M2 H1 \' y: E这是AGV_putin中arrive的method。% S6 {" k+ ?8 @7 y5 B7 P

" Z  a- m( o( u8 {* h当到达物料速度越高时,这个报警更多,
* V8 M: {3 x4 ^7 ?# u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-1 14:41 , Processed in 0.015780 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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