设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7262|回复: 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 Y( H$ |# |7 A) o*/% k6 i6 T3 [% \* A+ E* k
is
9 \, N7 n8 N' O' q  x' ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 u- y( U5 f7 K9 o1 X4 X- Ido+ R/ O) M# R! P( H  o" Q3 }! ]" X' o# v4 ^; U
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- a+ o  C; N0 c! C/ D        if current = @.Destination -- else return
2 w9 {* L9 _: P: `2 i1 P        then% s. i& y# Q) @- i6 t
                @.Destination := void;( p0 F  x2 ^8 Z0 X
                if @.occupied then
5 m. R4 c; l: I                        part := @.cont;
$ l0 c" _* a* @2 B' D5 G5 I                        @.transpOrder := void;" x& G& A$ x/ g* {( T
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 P+ Z; e  s2 o: w# G8 _                                @,root.eventcontroller.simTime);
7 h) \* ?+ \5 g: L                        @.HasOrder := false;) H, g6 o1 T, W9 e" G8 e; G0 K
                        @.DrivingHome := true;
! x' i, [& `& ^, N6 c" H8 m! S                        rgManager.tryToStartTransOrder;( R! q3 M4 {# [, v
                        if @.Destination = void' w( p# G& }; G2 F# y3 A
                        then -- no transport order for vehicle @
* V, E& ~% K) F                                @.Destination :=  |9 v* z) t) N. f" x. P7 C
                                rgManager.nearestFreeStation(@,track.~);
) \5 @, M+ `( w                                newDirection(@);   
$ t* w" S5 b& R! T- J+ T                                if @.Destination /= void then0 C4 `3 u9 ?! @2 s
                                        @.Destination.NumReservation :=- g: C! O6 z9 ~2 z
                                        @.Destination.NumReservation + 1;
) V9 r9 S4 o/ e) ^* k                                end;6 s2 d2 z- _& y+ W5 x) e
                                @.CurrIcon := "drivingHome";
1 h9 u! [( A/ s; Q                                @.DrivingHome := true;! }' y4 z1 P: {4 P0 Y
                        end;
0 b9 c5 {& ?- K- F  U* X9 i) f                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 t0 \# [: F& w6 x5 X
                        part := @.transpOrder;
# b1 \" X* d5 |. x6 k8 m: k                        part.move(@);-- load part
5 ~+ u6 _  h% `# a' n1 x: G                        @.CurrIcon := "load";
# ]* _" U1 g5 ^' x+ s+ X( x                        GlobalDistObj := part.globDestination;! _7 f8 L& b  H4 A
                        assignLObj := rgmanager.rgAssignL;
( n" u+ e- S6 z                        row := assignLObj.getRowNo(GlobalDistObj);
& I& [3 P2 j# i3 Y5 s% \% Q6 [                        if Row = -1 then -- since 70
. X9 _4 L/ e; M$ R                                if lan=1 then  x" T! }& c5 l5 U% D4 P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 S' _1 W% w+ R6 C3 _: }. B3 k7 R! y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 V, K; ]" J; H                                else
  L# L) Q+ j: R8 [2 O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 [) L1 Z( C* _& U0 Z3 e* g2 N
                                                to_str("in docking station: \"",?.~.name,"\""));                               
. E6 T7 S+ l! G+ r1 I& M4 ?* o                                end;$ l" Y: \: `: {$ q7 n/ S. l
                        else0 i2 g. |+ |- A7 l7 S+ d9 e. i9 m$ q
                                @.Destination := assignLObj[1,row];
/ i& p9 k6 v! }1 |2 L2 c. S                        end;                        9 i: x% D3 w* K& z" M
                        newDirection(@);  k6 q1 Y  X9 e2 ]6 ^0 b8 }
                        @.HasOrder := true;
1 K( J& k% F: P* t7 W) k                end;. K7 }9 Q  z' k5 v
        end;
% c! {; g8 H; O' aend;        -- of the method
$ r$ {1 O2 r( ~& U" r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 J$ E$ Q! d, f: X7 X% M# k7 Q

4 o, H8 _3 f9 u6 ?4 ^; X这是AGV_putin中arrive的method。
) t& @" ~/ ]& A/ w* _$ |" f8 {; q" N  g
- k0 T. u6 F( b$ k' `* S. v当到达物料速度越高时,这个报警更多,
. e- q# \4 W5 v* u可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ L0 Y; j5 F$ z9 O3 P; l
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# y5 c  T3 A" I) u: p  y

, h' m- ]" `% v0 a. L: W% V另外一个小建议,就是move,所有的move都可以这样" ]& A" s4 Z7 G+ I9 ^1 c( ~: ]3 l
if not move() then debug end
6 G5 @' T2 B+ T& T+ W- b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 N. t7 g" \5 Z8 o# C% Y3 Aplant simulation中的free libraries有AGV模板,
, M+ R: R! L7 l; t里面也有案例。9 _& F) u: d( d) ^- \' E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' R' K, Z7 Y  b, Q5 s! C+ [2 z  ^% }$ }0 p& h3 z1 W4 N) Y
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 o  F: C+ k1 l
( Z0 S! V+ ]7 l9 c# l7 u+ l
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : O: [! q- ?+ a* H
这是AGV_putin中arrive的method。. ?" I% W# K3 F2 a- o$ O
- }1 h* ~1 F% o+ k
当到达物料速度越高时,这个报警更多,

( |' r- J( S/ |+ N# x$ D$ k8 N0 A( `; t7 v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-31 12:36 , Processed in 0.020485 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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