设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9821|回复: 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'- N& w/ Q* T% d$ d; r4 G
*/
8 F; {( K3 Y9 Q3 A, Gis
6 d5 P; U' I% ~/ l        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) L" W* k+ Y7 [) J
do
" }3 r4 \4 A/ m4 p        Lan := rootfolder.Internal.Tools.AOLlanguage;
& f/ S- Z2 B8 B; @. f6 s7 e        if current = @.Destination -- else return6 c% z9 r, \4 T( c' B
        then) _; ?& ]& `' D7 K  {
                @.Destination := void;+ r% B7 e2 `; B* `0 [
                if @.occupied then  l, f- L. Y; B9 G# T
                        part := @.cont;
9 g3 s: Y; i0 j1 A                        @.transpOrder := void;
& t3 q1 G9 l0 M- p" e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! I! m8 v& [( X* e3 e
                                @,root.eventcontroller.simTime);* K/ O" A1 Y9 E
                        @.HasOrder := false;
: w5 b) n8 k- i: V; l                        @.DrivingHome := true;7 u( r6 ?4 Z- i, O
                        rgManager.tryToStartTransOrder;, U+ M0 ~$ I* @% L
                        if @.Destination = void
+ a7 }- D% u' p$ t; n( z0 @                        then -- no transport order for vehicle @8 z+ }- h; y  ]# i4 B7 @) \
                                @.Destination :=
7 R/ W4 p% E# J                                rgManager.nearestFreeStation(@,track.~);2 S; A# E/ m9 U  ^; N( g$ N( J
                                newDirection(@);   4 G. m- n* [& y* |$ y! d5 E
                                if @.Destination /= void then& J  h$ c5 \5 K1 W* l
                                        @.Destination.NumReservation :=+ s0 Y7 k7 s0 V5 `8 u7 V% l
                                        @.Destination.NumReservation + 1;
' A; ~8 Q- ]" G& A/ q2 o9 {# {) c" O                                end;$ O: U# l# l7 g# C; U: h, P, _
                                @.CurrIcon := "drivingHome";0 j4 L5 n+ h$ i0 Z
                                @.DrivingHome := true;: R5 p- g% L/ q0 w
                        end;5 ]2 f% b/ L& K3 M9 G/ _, {# O+ l
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% [* L! ]2 x5 ~3 d$ L2 l7 T% R6 r
                        part := @.transpOrder;0 s( E( l6 {9 B* y& c
                        part.move(@);-- load part6 L5 f3 r% o; F3 W' |
                        @.CurrIcon := "load";7 j8 B( C0 M4 X* X! C9 s1 _
                        GlobalDistObj := part.globDestination;& J6 f% Y: ^4 n$ z
                        assignLObj := rgmanager.rgAssignL;& c" g" `1 \9 z/ `% _. A; x
                        row := assignLObj.getRowNo(GlobalDistObj);; v) j* j9 _: Q' @3 B: |) v! \
                        if Row = -1 then -- since 70
% S( m3 _$ E- C- M3 c                                if lan=1 then' p- e( p1 b6 Z  O& ?" `+ v5 s5 I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- u4 {: l/ g; f                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ _3 K5 }# d/ T6 L, k# i- @+ G% x                                else
$ Z0 w) M+ |. H+ d3 ?5 y1 ^; F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  S# Q- U# [, R% p, P, \$ B                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 n5 t1 @0 E: x8 J+ U# o  C                                end;
# y9 ]( o$ \( |" F, c                        else
3 y+ c$ ~% t5 `& V1 `/ h                                @.Destination := assignLObj[1,row];
$ @/ u# ]: R" H; ~                        end;                        ' \1 ?1 ]8 \" }3 s4 A
                        newDirection(@);
0 ^' ~, t8 ^6 B9 J                        @.HasOrder := true;
' l- ], b3 ^% [0 E( e                end;7 W0 X$ k3 j) g+ F; s& x- ^: E) w+ y
        end;$ \$ t. D# F& n0 Z
end;        -- of the method
6 ^0 J2 p& q8 [) J5 g$ Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & N7 X$ J' x5 G4 v
7 e- ~+ @. ]% f- F
这是AGV_putin中arrive的method。  e+ O) G( y6 Q7 U7 v0 U7 p

4 j" ^5 `; L/ G& u! E, m5 e当到达物料速度越高时,这个报警更多,! d' z7 }' N! y0 V# C- k9 A! d
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 q- ^: U# l! T- L  p3 |) H程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ A2 B# b$ o3 S% B+ q! n

  K: J- ]$ i( A7 ^' |, I) [) P9 D另外一个小建议,就是move,所有的move都可以这样
: o" C- n! b3 ^; C: F  H4 K9 y6 Sif not move() then debug end5 ~$ c5 Y+ a& ^9 U* j: U/ `  D
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# x8 \9 M) |7 ~) xplant simulation中的free libraries有AGV模板,
0 J3 j" o. ^/ e2 p: V  e( E里面也有案例。8 t. y& Y4 c. B# T4 b  v+ J
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# l2 Z9 [3 Z; ]1 {  `. b
4 M0 w5 x" U% U+ N" ^9 N
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 F( W0 k5 X( f4 ?: U8 O

( \$ Q7 L1 U/ t3 x% J: z8 W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( Y* i2 R; ]4 A! ]& x3 V* W) w* f1 ?
这是AGV_putin中arrive的method。
$ K1 s+ {# {4 o
# s5 i* f! _) S8 o" f当到达物料速度越高时,这个报警更多,

* S' L0 z! a) a2 j: n0 G( G1 U另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-27 09:58 , Processed in 0.017660 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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