设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9792|回复: 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'
' E- i3 b) |  ~9 C6 D/ q% [3 `*/
* U# B8 ?9 \! M4 e2 X; ~! Zis
) R) {) j& z* g  u/ E! \" `0 V9 @0 u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ U2 a3 _. q3 A8 t: ~do
6 N+ {: v/ _# U7 x" e2 l" x" P        Lan := rootfolder.Internal.Tools.AOLlanguage;+ D% w2 a2 t; M5 U. H$ j0 t
        if current = @.Destination -- else return* W2 X, j3 j) ~4 s
        then
- v+ [7 J6 v4 G0 X: ~  ~, ]                @.Destination := void;
' ^# B+ ?& U( h' d' {6 z                if @.occupied then
+ V) P5 ^* O$ o  |+ h1 T9 X                        part := @.cont;
1 P6 S- O. K3 k/ |+ P  G                        @.transpOrder := void;
7 J$ Z$ ]6 A# D6 h" @                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ Y- r/ ^% z) v' C+ j* {( x                                @,root.eventcontroller.simTime);
0 z4 w) ~4 ?$ {; Q; W+ B- u                        @.HasOrder := false;
5 N+ X/ x# L# z0 a: z                        @.DrivingHome := true;
1 x2 \  w) y* y0 R$ w, I                        rgManager.tryToStartTransOrder;! `( F& r0 M( }6 j3 A) d3 X
                        if @.Destination = void1 X& C5 d* c  e6 l9 }3 o7 k/ c* }
                        then -- no transport order for vehicle @
! [" U/ G3 k' B9 r; O                                @.Destination :=; F0 N/ O- O& W/ l* D
                                rgManager.nearestFreeStation(@,track.~);8 K" f, @8 l2 u# v2 K5 T7 ]+ K% ?
                                newDirection(@);   + N$ h4 `; X8 p/ n) s" g- P6 t
                                if @.Destination /= void then3 o; _" G) }7 j% P8 V, i. p( `3 r* s
                                        @.Destination.NumReservation :=
% b9 s2 v" O$ _                                        @.Destination.NumReservation + 1;; ?, x9 B: j% Q( E
                                end;
5 U$ I! T- t9 O. p- q1 |0 {0 {. X                                @.CurrIcon := "drivingHome";2 N" F# P& X8 C+ `/ _: K! \
                                @.DrivingHome := true;5 P" Q& ~; J9 b$ O7 n& h* v8 F; {0 G
                        end;
6 s% N$ w, F" b: G* t* Y5 X                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 z7 _% `& e) {: L* L
                        part := @.transpOrder;7 n: g$ |' _9 \+ o/ D  X
                        part.move(@);-- load part
$ m2 c: k! y9 o3 B# d: C                        @.CurrIcon := "load";; Y4 I8 P" u# `- S$ n
                        GlobalDistObj := part.globDestination;
8 O* E/ z- h/ ~/ M, c. Y9 K                        assignLObj := rgmanager.rgAssignL;
( {0 e( N3 ^% m1 F                        row := assignLObj.getRowNo(GlobalDistObj);
0 |% K3 F% i$ _3 Z# ]9 k2 B                        if Row = -1 then -- since 70
6 Q: D! q& f) u& B6 `  Y2 ~; q                                if lan=1 then
, Z8 C4 o8 G) N9 O9 O9 o' B                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% `1 S) T/ j9 M% d- g+ O
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 P' y; _. V' r; q* M& j                                else
3 u5 a! C- y2 |                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: j/ g" _* K( ]! S2 a9 O0 A8 d                                                to_str("in docking station: \"",?.~.name,"\""));                               
% W( X# r9 I+ ?. g$ {                                end;2 b* U$ N( ~) w2 k  n, x! v
                        else7 ]$ E! C# F6 c" X
                                @.Destination := assignLObj[1,row];! x3 j9 J( ]1 e' ^
                        end;                        9 }6 ^3 v' B) }$ Z
                        newDirection(@);: B' R9 a  b& A$ B
                        @.HasOrder := true;6 e/ s' L, E, X7 s& g& d
                end;, @% t) y% d* P. g, E
        end;; \2 K8 c$ `9 y1 ?" _' V6 o
end;        -- of the method
5 o8 m0 ]& a2 Q% E' F2 X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 @9 F$ {; H& x+ x& ^: Z# S! ?( N! W
) K  I& ?, Q9 t, A
这是AGV_putin中arrive的method。$ _, T/ q' g1 U- v

+ \! q9 t+ c; x4 A) ~; l当到达物料速度越高时,这个报警更多,
9 Y: e+ [8 Q  Y( B3 V- Y' A) h- w可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: o( Y: \: B- [, g8 h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  x# |; r& y9 e7 y3 A) K7 H2 m& l3 `) ^9 F
另外一个小建议,就是move,所有的move都可以这样
# ^8 c& m% ~7 w+ Vif not move() then debug end
5 c/ y) V, t& q( A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 w' U% q( \  C. g. Dplant simulation中的free libraries有AGV模板,
/ z: d+ g/ k4 ?. B; y$ Q- G4 T9 ~: R里面也有案例。! `; c( ]& z3 E9 h" l& u0 L
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 g" M. g& r& t; `2 o: [
) v- i, v6 n# a% {" u* ~# S" z5 A# s
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ m1 i# E8 C2 O5 F* e: S& p& ~. k( e/ ^) c; m4 ]
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : T$ `, u2 e5 k3 l
这是AGV_putin中arrive的method。; K+ ^/ V0 W: o* x* R& X/ i

$ g( i! o/ P  K0 V" H当到达物料速度越高时,这个报警更多,

( X# k) {; g/ u" Q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-25 12:14 , Processed in 0.025082 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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