设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8740|回复: 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'
7 B8 k: u+ d; I! p0 G  T" k*/
* H" n/ `4 B$ g2 h- Tis
* w, ^7 J/ I3 W% l        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) {# H- g* P0 _- c5 n0 b& fdo
/ y. S) k6 |0 r) c$ G  X        Lan := rootfolder.Internal.Tools.AOLlanguage;! U8 `/ r, f" ]; C: {
        if current = @.Destination -- else return' N/ M& [5 k1 Y8 t, d
        then) p/ i; K" [0 i* g
                @.Destination := void;
* C8 x* ~0 F" i4 U                if @.occupied then" i1 ^9 u4 M! t* U) D; ?( j& F
                        part := @.cont;, l. r' C2 _5 Q1 ^+ J
                        @.transpOrder := void;
% c5 T) j3 t! Q: u; L5 \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, X1 j% Q, l/ Y. S$ g
                                @,root.eventcontroller.simTime);) U5 j1 d. I5 U
                        @.HasOrder := false;
5 o# Y$ A# J, `( i4 j                        @.DrivingHome := true;; g2 t$ G4 c+ p( Q# V
                        rgManager.tryToStartTransOrder;0 Y2 P  K+ V  c
                        if @.Destination = void. _: l: J" M% L/ @, n/ x
                        then -- no transport order for vehicle @# Q- B; J' @4 W
                                @.Destination :=3 ]+ [# ?, ^& u; a! x$ U
                                rgManager.nearestFreeStation(@,track.~);
0 \1 `( x% K5 W- C5 f                                newDirection(@);   7 v! o! a1 G% z3 F* q
                                if @.Destination /= void then  L" z, _: @' `5 Y: U: k# y
                                        @.Destination.NumReservation :=  P0 V/ l2 @7 Z9 A# Q
                                        @.Destination.NumReservation + 1;9 J4 N- f  Z- Q4 u- P
                                end;% a0 I! P$ M: c3 \% x5 w% U
                                @.CurrIcon := "drivingHome";
6 A5 S: L+ O2 _. p7 W+ R! ~$ Q3 m                                @.DrivingHome := true;' B* v; ~9 Z( }! F! O$ Z0 T
                        end;
& o, Q' m1 y' a( Z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) t  A; ?& }" F
                        part := @.transpOrder;4 h( e, E; @6 g+ u3 L
                        part.move(@);-- load part
( w* t: j3 {' a+ Q& @0 A- m0 E                        @.CurrIcon := "load";: ?3 |. `5 L' A
                        GlobalDistObj := part.globDestination;
2 g/ p, G8 W/ p5 \                        assignLObj := rgmanager.rgAssignL;/ a3 A5 J! N5 B* K5 a( O  t0 N
                        row := assignLObj.getRowNo(GlobalDistObj);
, [. G/ C* V! x3 g) i                        if Row = -1 then -- since 70' r+ [# s! \+ m, X2 q1 I+ p
                                if lan=1 then
. E/ h' S% `# s                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 Y$ d' \9 w+ h7 L8 x4 Q" U                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& _1 m3 x# Z5 j$ X7 t# W                                else# l; e4 ^$ j/ m8 R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ w- Q( i5 ]& z* N: a# h: H                                                to_str("in docking station: \"",?.~.name,"\""));                                1 C* c9 w3 D2 c! H5 }
                                end;
4 J- F# D- G& l                        else4 q& |, R" c+ o% I2 ?3 G$ e
                                @.Destination := assignLObj[1,row];+ h0 e' e) v: c
                        end;                       
& g+ a' F# A1 {- n" E2 ^                        newDirection(@);4 w( h# h5 i) W( f
                        @.HasOrder := true;
% ^  x$ m/ D. z. @, v                end;9 D# E( I7 f/ W- O2 l& p" L; v6 E
        end;% o6 O. l: Y) U/ G$ g
end;        -- of the method
; w/ i' W4 s: B; G- A: Q8 k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# y5 K/ X2 M1 |; P- _5 R( R# t/ T5 I2 ^
这是AGV_putin中arrive的method。
+ {0 [' N  G3 T2 V9 }
* b* B" l/ W# |2 L当到达物料速度越高时,这个报警更多,% X. e9 I4 x$ N1 X7 x1 E; l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ ]0 Q3 x) U! x5 v$ k. B
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ d* n4 Z  \& v$ `6 i

$ ?1 _" ~- n7 p* [* q另外一个小建议,就是move,所有的move都可以这样
5 D& W) H8 L# I1 i& nif not move() then debug end/ }6 w4 r& y3 b; G2 C
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 {4 g8 ~* a& ?: u9 _2 y. Eplant simulation中的free libraries有AGV模板,
. {4 b( _& V8 z里面也有案例。
* P& Y  A3 I& }. R6 R3 D我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 j3 r' l  r4 W8 d" N% Z
3 b) @+ [/ ^2 N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ ~2 t2 _) c$ r0 @# c( ]) L
+ s. q7 w9 S% S: e- ~5 m5 Q* T: k那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - U. x. U  d  H0 A
这是AGV_putin中arrive的method。
1 a, T4 ]8 d8 W% `" H* W- [/ I% Y6 n1 l
当到达物料速度越高时,这个报警更多,
6 u* ]" P& v7 d! q" w* t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-23 15:24 , Processed in 0.017302 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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