设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9734|回复: 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'
: ]4 V: s8 F9 V6 p% w8 h: \*/  k, x: V0 X- W
is
" D3 `& a1 g$ @0 X        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& e- A1 z% @( ndo$ k4 X' ]3 E3 j1 S) [" X4 X
        Lan := rootfolder.Internal.Tools.AOLlanguage;% h1 d# y( @; ?' q
        if current = @.Destination -- else return
- l# C) v$ Z( ]4 E        then& v, P7 `0 W: a8 @1 i- m
                @.Destination := void;. b' z0 P( g, N( ~1 r
                if @.occupied then7 Y7 h0 ~' m: J7 [& |
                        part := @.cont;1 Q! W! d1 z) b8 H+ E
                        @.transpOrder := void;' W8 ~0 G& o( t
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: y# F5 h/ y: C  M                                @,root.eventcontroller.simTime);
0 E/ d: D- I/ e0 V; ]  b                        @.HasOrder := false;8 ]% f4 s7 b% \5 n4 v
                        @.DrivingHome := true;
! k. w, N# F+ S# _5 E                        rgManager.tryToStartTransOrder;/ p3 z0 c" m# r9 V; g
                        if @.Destination = void( H9 ?1 X- M) _5 N7 J5 Z
                        then -- no transport order for vehicle @9 r. l' M+ R5 r8 D9 S) k) V7 ]! O
                                @.Destination :=
6 z) M" r: \4 W( M1 c0 X' ?                                rgManager.nearestFreeStation(@,track.~);) \, ]5 ~3 b4 ^: n5 ]$ \4 B1 _1 p
                                newDirection(@);   % k+ @, ]8 f* o7 X1 N
                                if @.Destination /= void then
$ Y  @! _% R2 k4 v! o9 P                                        @.Destination.NumReservation :=
9 W; j; J. @# }' c                                        @.Destination.NumReservation + 1;; v  ?  O) u" P. s0 R4 D5 ]: O  H
                                end;8 R% C5 x7 _1 Z# }+ L
                                @.CurrIcon := "drivingHome";, |0 N; q, ]( U4 V1 x8 ~
                                @.DrivingHome := true;  ^7 h* ?* w+ l
                        end;$ Q7 [% M3 |6 ^+ C  V: w$ z" F: ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- u+ q. v1 `  k( o$ E                        part := @.transpOrder;
# r% M2 j8 ^; ?, T; B# J$ [" z; i! u                        part.move(@);-- load part
) R; U+ f1 [9 ]: S, P2 T                        @.CurrIcon := "load";( ^' F! ^* [  K- s: t. _2 O0 J" n
                        GlobalDistObj := part.globDestination;+ [( w+ I7 c, y# @: U  B
                        assignLObj := rgmanager.rgAssignL;
9 M  e" y) \- S                        row := assignLObj.getRowNo(GlobalDistObj);
$ ]" M6 j' O, H                        if Row = -1 then -- since 70
/ }/ O# U' O# M* o0 T% e                                if lan=1 then
% Z1 b; h# u+ g& d) l8 w& U- A% Y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," H% ?. j- H8 t& x7 [+ G+ Z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));) T1 Z6 P* D9 s. g" Z8 G/ _1 S$ f
                                else$ X" {3 i/ [& g; H
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 o: k: d+ T7 F* N                                                to_str("in docking station: \"",?.~.name,"\""));                                ' Z% {1 I. \8 p/ ~/ y' p
                                end;3 Z/ O6 x  m4 M# Z; X/ i
                        else" ~# _* u5 {0 z# ^) p
                                @.Destination := assignLObj[1,row];
7 p; L) T0 r1 ?+ ]                        end;                        8 a6 R4 V/ a- M0 P
                        newDirection(@);1 C- y* d) C" h7 A8 l
                        @.HasOrder := true;5 x8 w3 a' |' U0 c; A
                end;8 R- ?; i! w6 e' ^
        end;
! I2 s0 q8 V4 t* \  \" v% Mend;        -- of the method
. M2 }5 B0 O8 A. M% h. q( t/ l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) f( [5 J9 y# z; C: W6 X

7 ^% z, p+ w+ x: I( _* l1 Z这是AGV_putin中arrive的method。
7 n  S7 a) p* k' J/ @) T9 E2 Z
, b& o; p9 G# Z+ {6 D当到达物料速度越高时,这个报警更多,6 ^0 N( E5 l. b% I/ `- B5 Z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" `, \3 @3 K% y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" {0 e) N, E8 r+ f% R7 B% U. w( ?! v$ C

! @# v* L0 y+ g+ {( z5 h2 Q9 F$ U另外一个小建议,就是move,所有的move都可以这样) _1 w) d! ^  x8 t) c
if not move() then debug end
3 h% Z: i* q; @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" J7 @; x, e2 b8 x& v0 Iplant simulation中的free libraries有AGV模板,* `0 j; }5 H" {: z6 g+ p
里面也有案例。' j; T  o" X* @" ~$ j6 P6 x" j
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  Z6 {. Q  p! r

: v) {* \$ g" N( T+ m# G我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , X1 B3 B0 ]4 t9 p
; u" P' [; L& t6 H
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . k- \  a  c' J* M  ^3 ~0 \
这是AGV_putin中arrive的method。  r, e0 \0 g7 Y: ]# Q- ]

5 G! i& A5 M0 f当到达物料速度越高时,这个报警更多,
5 H8 K  y7 Z! {
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-21 04:00 , Processed in 0.021277 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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