设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6078|回复: 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'
5 V/ V7 p6 l- ^*/* W6 l+ |8 E- \" V; M: C$ S# ?% @4 ]
is/ Y: q2 S9 P! d( ~
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& R9 k2 K' S  ado
& Z7 G7 z* ?: {4 w* I/ |3 s. a        Lan := rootfolder.Internal.Tools.AOLlanguage;
! E3 o+ U+ P. l; w. V. g7 O2 B        if current = @.Destination -- else return8 P, L/ D2 _5 x' \) f
        then* U* A! j2 k( {  M$ p3 k
                @.Destination := void;& I5 Z, a5 u! u8 N
                if @.occupied then$ u/ R3 i- u+ n
                        part := @.cont;, s0 B) R& Y3 G: f4 ^
                        @.transpOrder := void;
% A7 L/ t$ K) p8 K                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 c* ?) W7 o5 Y/ k. z
                                @,root.eventcontroller.simTime);
- Q# S2 Y2 U2 {' }6 l- n' v                        @.HasOrder := false;8 s- n4 D% x' V& ?5 l
                        @.DrivingHome := true;
: O9 I/ p, {  R6 m                        rgManager.tryToStartTransOrder;
  |7 Q( s7 N; G- h4 z  j  X                        if @.Destination = void% v9 m  }7 h: G
                        then -- no transport order for vehicle @# l! O5 \0 n; B
                                @.Destination :=( ~, m! p: c+ c1 l
                                rgManager.nearestFreeStation(@,track.~);0 {6 J9 k2 r5 R5 v6 i
                                newDirection(@);   
: U: o: O! h) x2 t: o                                if @.Destination /= void then6 ~1 F8 I5 Z7 n* }# U, i" o
                                        @.Destination.NumReservation :=
0 Z9 @% J% E2 c% g4 n, J3 C                                        @.Destination.NumReservation + 1;
- j3 W- A, `9 E9 S- |  }0 C                                end;- }9 J1 k+ S" e& m* k; ]
                                @.CurrIcon := "drivingHome";# `5 J# k7 t: w/ G* a+ f$ {2 B
                                @.DrivingHome := true;1 }1 f! E! t/ w9 L# N
                        end;
. J3 t2 B$ Q9 [9 x9 S& G                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 S% z/ E/ z& c( F                        part := @.transpOrder;: a( i$ m% m; F  `8 V! c
                        part.move(@);-- load part# l% n+ e9 S2 e; D! |8 a( R! k! y
                        @.CurrIcon := "load";
5 {; `0 \4 K8 r. x7 R                        GlobalDistObj := part.globDestination;7 J/ S5 `5 h9 `+ x' e+ |# _6 p3 [
                        assignLObj := rgmanager.rgAssignL;
( W1 q5 \+ H. `7 U                        row := assignLObj.getRowNo(GlobalDistObj);
8 h- X$ l5 t) o4 d                        if Row = -1 then -- since 70
$ |, n5 }- J4 o, W/ i                                if lan=1 then7 T1 C' {! ~3 B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ ^7 Y- k6 \1 F* L) w' A* ]6 x* m                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 M$ q- \0 A: q2 C6 F3 }) D# D
                                else
* R7 ^0 `, }4 x1 q& C                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 w# B( I" t- \0 D/ J8 S                                                to_str("in docking station: \"",?.~.name,"\""));                                # I$ h1 z& K' c# s+ v. B' L
                                end;! ~& q7 e; q3 e+ P, |
                        else4 d& v$ y+ P6 `# D
                                @.Destination := assignLObj[1,row];
0 a* P! q" d  W1 ]6 |& Z) T  }                        end;                        & J: U8 L/ C) d' X" R2 _" i6 Y
                        newDirection(@);
5 @! ^5 R. b8 w" F, Q4 Q8 [3 }                        @.HasOrder := true;* {. f) V; n9 P# Q' K
                end;* T; I( K+ Q  o  T
        end;1 g& |. n( e% T" L  l4 A" M
end;        -- of the method
; ?# y" T3 B  A9 O" ?: P: ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) e; E( C! C/ p2 n3 e) I; b$ |& E, o. B$ E; k
这是AGV_putin中arrive的method。6 i5 T( b7 H1 A0 G& K0 b2 J
+ E1 F9 p7 B7 |  O' O; H( P
当到达物料速度越高时,这个报警更多,
2 Q% _6 \% }  L可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 y9 D) b8 S+ D4 A/ H
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) [$ f0 ]* k0 S
$ l2 y( \) k+ ^: E. m  c, t另外一个小建议,就是move,所有的move都可以这样' @  Z% B, ]2 L+ S1 A" z$ j7 ^
if not move() then debug end( b6 _/ G, ]) S2 C% p( Z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 f% L5 F. v! \1 k$ b
plant simulation中的free libraries有AGV模板,
! X1 c8 S5 b8 _2 O( m% v里面也有案例。
  a  K  ^' C4 v8 G3 f我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: F& V8 o% y, ~% E
' P" [! x! Q4 q+ o* o8 Y* R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 {) B1 x. p! h. u, i9 _! Q4 N6 ]8 u  P  }$ a/ e& z0 ^- ?6 i
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * |; h& C8 W, {2 O3 G# b% w
这是AGV_putin中arrive的method。" V. d" Z* ~% G+ E# z
: e3 V$ K( k  s9 A
当到达物料速度越高时,这个报警更多,
3 ?/ |3 i2 y/ D- j2 ^. O5 J) d
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-16 13:34 , Processed in 0.019498 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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