设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8089|回复: 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'
& v; `* k) {4 I6 \- m1 M; ^& ?*/
- z! e8 t$ G# r  O" T8 \- Fis% A( G% F) z* ^* ~! T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 u9 F" f9 s9 n$ ^) qdo
9 ~/ c/ l& G2 \/ T- A+ H6 f        Lan := rootfolder.Internal.Tools.AOLlanguage;& r& o- A( a7 T: ?% ]1 W
        if current = @.Destination -- else return( K1 E( ]( D% S1 A* o
        then5 M  f$ g# h: J% b6 S  K
                @.Destination := void;. a* M$ J) \) v- F2 R0 P8 K/ x' o
                if @.occupied then
% Q8 x7 C+ t- Y' k8 m' \! b4 c                        part := @.cont;
! ^4 M" [- u/ Z; ]$ y8 B; F5 Y                        @.transpOrder := void;  j; N* K' e5 @& G" }+ P  w9 G
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: l9 j; ~- g! u) y9 h, p* z                                @,root.eventcontroller.simTime);! b& u( _, g$ C+ T/ ~5 t* m$ t
                        @.HasOrder := false;
1 w4 @; }9 n1 Y# S                        @.DrivingHome := true;
( Q; Y( P4 t* i6 \& P8 u$ j                        rgManager.tryToStartTransOrder;' T1 r+ \: `5 K' s# i
                        if @.Destination = void9 l1 u* R5 p% c8 m7 j
                        then -- no transport order for vehicle @8 C. \4 ]9 U& C
                                @.Destination :=. V7 {6 F' t5 Y' k  x4 h  ~+ r. f& j% S
                                rgManager.nearestFreeStation(@,track.~);
1 C% ~/ y5 i1 @4 K0 {3 \                                newDirection(@);   4 b0 L- v  T% D) U) l
                                if @.Destination /= void then+ }: X/ o) ~! U0 `& ~  g6 P
                                        @.Destination.NumReservation :=' H9 r( b' G. [  a" u
                                        @.Destination.NumReservation + 1;" G+ B9 ~! \% G9 M6 ^! A
                                end;
) `+ @/ A. s1 n, E9 T8 l+ R( X6 N+ v                                @.CurrIcon := "drivingHome";
) a# D* E3 K% F# p                                @.DrivingHome := true;
/ S# ^/ I3 _0 U+ |% n7 ]                        end;# b' z+ w9 v) V& R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* j$ v+ ^, s; K6 f6 U9 l                        part := @.transpOrder;
. [& U& U0 ~" H% l, n+ [) s                        part.move(@);-- load part' ~0 n: m- I' ^8 Z0 h1 U
                        @.CurrIcon := "load";
* q+ }) p# v. h% g( f1 a                        GlobalDistObj := part.globDestination;
- F, W3 a% P/ S4 {' B, H                        assignLObj := rgmanager.rgAssignL;( @) k  S2 X/ J' z9 t
                        row := assignLObj.getRowNo(GlobalDistObj);1 L# v- T) K7 E: n! D% p
                        if Row = -1 then -- since 70
+ y( H% N8 Y' `7 n. _6 I                                if lan=1 then
* q1 \% L( d% Q% S( H$ p, Q                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# K; Q, {5 T( ]& x5 u* V0 P                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* N2 _0 k9 g% l$ ^6 u9 Y                                else( x2 S% p1 w) j9 z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( ]- X* E1 Z- w                                                to_str("in docking station: \"",?.~.name,"\""));                                : v( |; x# [. V: w% m* @
                                end;
8 i5 w- U  U5 X0 L: e. q                        else
: S8 _) z) X$ D7 W) Y3 `5 }$ L                                @.Destination := assignLObj[1,row];" C) W7 [/ ^' W
                        end;                       
! c+ m1 u1 X0 g; [6 Y4 a                        newDirection(@);6 d9 N5 x  Y3 _: T' k
                        @.HasOrder := true;
+ S1 G/ T6 j8 }2 S: Z2 [                end;- [- w+ P/ n2 f) x, @
        end;
$ U: G7 O/ t, pend;        -- of the method. n0 v: s" [4 f: c1 u, ~3 U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- V3 |6 K: e7 t* o4 v, S1 ~0 ~+ [; a! i+ E
这是AGV_putin中arrive的method。
3 E2 v) b5 I2 W7 ]* [" t9 f* q0 ]8 h+ [3 A4 c& L
当到达物料速度越高时,这个报警更多,
) ^' h* T, G9 c可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 ~9 C. k2 x4 i. H& R1 E% Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- D; I+ f) x- O& @' w
! M8 l$ ?* C: w1 f& Q& i  ]
另外一个小建议,就是move,所有的move都可以这样
2 X3 y5 W2 H. q0 j* m; K6 Iif not move() then debug end* r* X7 ]+ A9 p: Y" Z; k
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% M% v0 N! n% T/ J$ J5 R2 r1 H; h
plant simulation中的free libraries有AGV模板,
3 x6 s" Y, ?, |6 Q: J里面也有案例。8 v) L0 Q. O. I* y- K( F
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) Z# T& v: c1 C) d. I! G) O  x6 w" b  j6 j
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + b0 L3 P2 G" P. O$ S4 w+ X6 P, c

1 o# [2 H) `. s! f4 |% Z9 O那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! r+ i6 |$ N' y; {6 {
这是AGV_putin中arrive的method。
$ j; V9 z, Z" h, x+ S1 I% Q9 j! p# R4 v$ F: I( U
当到达物料速度越高时,这个报警更多,
# a; {& l8 _& C* e; N% z7 p6 s; r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-14 14:53 , Processed in 0.020676 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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