设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6655|回复: 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'
  y' e3 K, a# D6 W" G( @. w*/
% v9 c1 o! H" D# h* mis- B/ V/ W" c8 ]* v
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ G- S( Z# ^1 F& U/ g9 Kdo
: |( \( c- e& D( A! [        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ o: s  b- h" U8 w* d# R) K        if current = @.Destination -- else return, w! v) Z$ e3 g* `
        then
3 U3 s! }3 w- V                @.Destination := void;: `; J7 \9 L+ C1 o' X0 S
                if @.occupied then
$ c/ k3 d: U  }9 I) ^( S                        part := @.cont;
" |2 [4 {  b% J( X. K" l- B" I                        @.transpOrder := void;( j' {: r% {, i8 G+ _" f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' J) }* L0 E1 ^* H1 X8 b3 V
                                @,root.eventcontroller.simTime);5 o6 S, z( g6 }' |# c9 K% z
                        @.HasOrder := false;" _- _/ o5 F$ [1 k. n1 y$ [
                        @.DrivingHome := true;) \7 v& e* p: o: m' b
                        rgManager.tryToStartTransOrder;- R$ R0 I# x! N) m- o  g( }
                        if @.Destination = void
- z7 d; ]  m& ^                        then -- no transport order for vehicle @1 X) G0 t! _% p+ ]% o) T
                                @.Destination :=
5 C# i  I- o' f. U& ]) j                                rgManager.nearestFreeStation(@,track.~);
+ b( |2 j$ j: {+ c  u1 p# R2 ^                                newDirection(@);   
% ?: e) K7 i- V% w3 y                                if @.Destination /= void then; p9 y9 E' Y4 r9 x) ~7 a* T  g
                                        @.Destination.NumReservation :=
6 r" g3 p* i( g                                        @.Destination.NumReservation + 1;, s/ N& V' _0 t  |
                                end;1 K' b& d9 F7 \+ P3 L3 V8 V3 i
                                @.CurrIcon := "drivingHome";4 k4 y# v3 h& `( m3 X" M  N  k
                                @.DrivingHome := true;
  \1 A, m$ I, m( s7 b                        end;8 N' M2 V! S& l1 Q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' K/ N$ p4 |1 R$ {3 o" Y( i, y+ Q
                        part := @.transpOrder;; K/ p$ w) @+ g: h5 [
                        part.move(@);-- load part
3 L% C3 |/ X% N$ d- u! l& O! O! ?                        @.CurrIcon := "load";8 ~4 p+ F, W7 n' N+ @) k! y
                        GlobalDistObj := part.globDestination;
+ Q$ A; v  y6 M) x1 y/ D; N  _5 @                        assignLObj := rgmanager.rgAssignL;  r# [! _! {0 o1 R5 E
                        row := assignLObj.getRowNo(GlobalDistObj);
5 m1 K; R* f- z. v* G8 V, {7 ~                        if Row = -1 then -- since 70# K7 s& P' U2 m+ E7 V
                                if lan=1 then
" N7 O  _& f2 D$ T0 _                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 L0 g9 N$ ~6 R6 c0 c
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 g$ T- d% Z" N8 {                                else
; n# r3 P2 F$ y& ~0 r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. z; Z; n2 y! {+ ~
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ `9 Q; A9 ^7 U( O0 r0 H                                end;
1 I9 u; I$ [( P9 F$ k: k                        else
: l+ e) U: j# G" J2 O: o                                @.Destination := assignLObj[1,row];
+ B" A# p  U# I7 v, }& r& @( P                        end;                       
. f- E6 T+ [& c% f" ^/ S                        newDirection(@);
' U9 L5 L2 Z8 j& C$ w( X% ^8 K8 M, E1 n9 F                        @.HasOrder := true;
8 c3 J( b8 f* B0 {3 L2 D8 `  }                end;4 I5 A& Q$ R: A/ h. H
        end;
* N+ F7 ^. ^( g0 Oend;        -- of the method
' G7 }$ C8 r- T+ r8 ~4 {$ h- \& d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! _; T, r4 H( t+ l' O  u  i0 s7 F! f5 x
这是AGV_putin中arrive的method。# b" T& E9 z+ o# u. e, }. H: X

  T( p1 e+ o( D* j当到达物料速度越高时,这个报警更多,; K5 k" {1 K8 z" U3 V
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ y- I; y+ g3 H0 ^* `* ~
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- V0 M$ M) P# n$ k7 @" ~
# l, C$ {6 o( Y8 H9 h3 P
另外一个小建议,就是move,所有的move都可以这样4 s" O9 Q" k7 u- Y" H: Y: J$ h0 H
if not move() then debug end
' I, C, t# m- v& x" D3 a! g' {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# b% j& E/ l: O4 Z* {$ pplant simulation中的free libraries有AGV模板,6 k. ?( k$ z' I9 y  p
里面也有案例。; x: N$ C$ ]: z! Y; q, ~
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; y+ B! {* f* H7 q% C

6 E4 _" O% ^% d0 I. M; n我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) m1 f$ v9 s& D6 s# D$ l. r$ D
" j1 ?2 H; `0 @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* I  Z9 j+ D/ K4 m0 b这是AGV_putin中arrive的method。- n9 @+ w6 L8 g
5 ~8 I6 d" ]% E# W3 e: [
当到达物料速度越高时,这个报警更多,

# H& ?7 ]: E- p, G+ b, m" S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-19 04:02 , Processed in 0.023674 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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