设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7795|回复: 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'
: b1 n% x( Q7 D*/0 _: W7 C# d- z0 Y% X% i' Q
is
- l# |! L0 H. |. z+ g. `        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ H3 p6 \  X! [7 n$ N5 M* \
do
& i/ z: U# g& P2 X' c* q        Lan := rootfolder.Internal.Tools.AOLlanguage;) K& ~( T% _4 F% E$ h
        if current = @.Destination -- else return
1 F2 n1 Y7 x& w) G        then
/ O8 X9 K1 f" G4 z7 X9 A                @.Destination := void;
! i! o8 L# J+ F                if @.occupied then
' Y! k: Z! f  V; u+ _( k% g                        part := @.cont;; s& n4 P8 t* u  D# B
                        @.transpOrder := void;& p2 m; ^# S# i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* ^8 A3 H. T5 h; B0 u, z                                @,root.eventcontroller.simTime);& @+ n6 O1 w" U7 D
                        @.HasOrder := false;
" x% K- M7 q" v                        @.DrivingHome := true;
' b4 Q3 s; H* s$ C& ?2 T                        rgManager.tryToStartTransOrder;$ m$ A& ~4 R: t: x6 e' E- Z/ d
                        if @.Destination = void
& N3 x! Z; |1 C2 k2 B1 d' B+ z                        then -- no transport order for vehicle @* b2 F  S0 _9 g! k
                                @.Destination :=2 X9 b- D. B* P& R- Z9 F* ^
                                rgManager.nearestFreeStation(@,track.~);
; X5 \/ D: D  B- O! H' M+ i  M3 A                                newDirection(@);   " N8 ]! E2 J/ |' i
                                if @.Destination /= void then
$ ~- r# N9 @+ q                                        @.Destination.NumReservation :=
; T. R# U3 h# R9 ~2 c! Q/ H                                        @.Destination.NumReservation + 1;7 H& T) g& z' \9 C. W4 ]
                                end;
8 W% j0 u5 \; M& Q                                @.CurrIcon := "drivingHome";; }+ z! V# `! y" L9 y
                                @.DrivingHome := true;9 g" I) Y8 E: g
                        end;/ |0 ~3 P: t$ a. R; j( q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 z- |* t5 P8 L' S- g- P                        part := @.transpOrder;
  U! e/ o, r$ j  s                        part.move(@);-- load part! F: D. d6 i( O" W0 m, m
                        @.CurrIcon := "load";. x+ h# c! p* t6 J" ~
                        GlobalDistObj := part.globDestination;/ I: z. h  T. F4 I; `( ~
                        assignLObj := rgmanager.rgAssignL;
- [$ c/ f7 m0 d$ }                        row := assignLObj.getRowNo(GlobalDistObj);
& u: P! s* S  i: N0 b$ G4 j. S8 H                        if Row = -1 then -- since 70* P6 z) A# m  C; f
                                if lan=1 then2 G' }* e( z) D; b" {# V
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 R! F  J4 ?8 L* G& U: y: E' @& L                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 \1 {9 l; K1 |4 t! |" `" t' b) l1 h
                                else* I+ S' X9 _; u. y, s  \3 Y8 F1 h
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" O( h+ ]% v/ A$ b                                                to_str("in docking station: \"",?.~.name,"\""));                                . s+ A  |2 P% e
                                end;; m* y5 I2 ?+ _0 E3 D
                        else. w. w/ |0 T6 n. Y) L- V! b, n
                                @.Destination := assignLObj[1,row];
& q8 v5 N; U! G7 |2 V, L: l) H! C( v                        end;                        4 `1 E$ f6 ]2 n4 u7 m5 _
                        newDirection(@);  _8 A* j+ l3 m% ], G
                        @.HasOrder := true;; ~8 i: R1 R2 k$ I% l5 [$ R
                end;7 g, T& v6 |. j$ B; [
        end;! K- U7 U9 g9 P2 t& `: M
end;        -- of the method
! @+ q9 f# d4 k& K* a( F9 R4 t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 ^/ x& D3 g4 M6 W; b
+ o5 a3 K5 f; y9 g$ ^这是AGV_putin中arrive的method。
' c. @, H! U  B
( C0 V# s/ |) k( k4 ^- u当到达物料速度越高时,这个报警更多,; i: o& X. o+ T! Q/ z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 v- `7 i2 C9 [! r9 Y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: x* ~8 O0 {5 e* r3 |1 S$ O$ A
( u, ^0 r$ q) J( l2 k1 l
另外一个小建议,就是move,所有的move都可以这样
, L& \! x' x% t. b7 @& w$ L7 Fif not move() then debug end
! \. r0 C/ e7 ?9 F' C& S; o这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) ]3 m4 a( [* F" y0 K) w# @
plant simulation中的free libraries有AGV模板,$ @3 w7 T  S! t8 d6 I
里面也有案例。6 v$ H( e: q' Q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, b  S& x& D6 q* }
8 D5 S; J" F/ f
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 {1 \/ _/ x$ f0 \: h
: C6 d9 B& \8 n0 N2 B1 S# f1 T; Q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. R4 i0 |4 `% B; a* Y这是AGV_putin中arrive的method。
1 x8 t+ L" ]# Y' y0 }3 M+ x# G$ V
1 \4 n0 Y- m8 u" B* _/ o当到达物料速度越高时,这个报警更多,

7 N1 b# D& L1 V( _$ s9 Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-29 15:46 , Processed in 0.017076 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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