设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7603|回复: 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'1 |0 m$ b' @2 v0 W4 L2 Q4 J
*/% K4 q7 @+ i% L0 f
is! P' I$ v7 l; |+ |0 H8 G( g
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. d9 c5 i; Q, ~4 R% h
do
& L) f3 N4 w! B6 k        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 }' w( r" B3 P7 D7 T0 b: {: J8 z        if current = @.Destination -- else return, o' V: C9 j, e, g
        then
3 H" F) j+ z8 w( j                @.Destination := void;- i  T8 Y) j" X2 d
                if @.occupied then
1 y$ P3 o: D- G5 d3 f4 k( q/ J4 m5 o                        part := @.cont;
1 Q: p+ O6 u0 `2 f9 l, O/ i  O                        @.transpOrder := void;7 z) ]2 t0 C# S! G& k+ c
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) g, r, K9 [) s+ j. ?                                @,root.eventcontroller.simTime);
; f& E; u% C" m. X                        @.HasOrder := false;
) {1 U2 [- U& F0 S% H! G: }+ n                        @.DrivingHome := true;( s# v/ ^0 b* d0 y/ q
                        rgManager.tryToStartTransOrder;
& l- y# _- B9 l8 Q6 _                        if @.Destination = void
8 {0 o2 @$ {% W4 m2 a. Q  {- p5 |                        then -- no transport order for vehicle @0 V7 U* n% `* S
                                @.Destination :=
& [- }9 v. |/ _5 Y' \% x! e. c                                rgManager.nearestFreeStation(@,track.~);
: K9 X7 R) j' }. ^7 C  G                                newDirection(@);   - _/ a, d" [; Q8 _
                                if @.Destination /= void then
" f' [9 C1 ?* k& R/ u. F# Y                                        @.Destination.NumReservation :=5 R4 U5 \" \! {9 p/ U: c+ _; I
                                        @.Destination.NumReservation + 1;, U; r- U& d. \! f4 X6 W
                                end;
( {& h/ A. ?- I; J; v, ]5 ]% Q/ X                                @.CurrIcon := "drivingHome";+ Y, Q( Q$ b, c1 T
                                @.DrivingHome := true;( N6 m- y. Q. I# s. P
                        end;
+ x2 Q) U* ^/ I+ Z. H. B+ Z7 C                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 c5 ]1 w9 H  p2 p6 }& X+ Q
                        part := @.transpOrder;; v8 N& t3 ^+ z* Y, i# h7 h
                        part.move(@);-- load part6 Z! q0 g, ?) i* R! R6 [9 F! ]
                        @.CurrIcon := "load";
) T' H1 o* h4 {                        GlobalDistObj := part.globDestination;; Z; O' k* N' L/ [
                        assignLObj := rgmanager.rgAssignL;
" A6 M0 m! T" p  Y                        row := assignLObj.getRowNo(GlobalDistObj);
' k2 O- G1 {* O& ?6 ]$ ~  H                        if Row = -1 then -- since 70
  c- B: U: q! U! i0 Z" ^/ d                                if lan=1 then( |. }/ ]$ e" X: S
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) q. O$ U1 f! Z6 E& H2 J" ~5 @1 Q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. H" i/ }% S: A: i0 W5 L7 Z                                else
- W0 P# R+ Z% X$ h" V5 `3 G' m' ~/ N                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# Y- z2 G7 y" J8 f                                                to_str("in docking station: \"",?.~.name,"\""));                                ( [- i6 o. e1 i8 {; L5 n( _. `; _
                                end;
* M) @; E% a; [                        else, j% e- t0 R' h% I
                                @.Destination := assignLObj[1,row];; U$ N# a( ]& C# x
                        end;                        $ B  K! W" E$ z* j% Q* A
                        newDirection(@);" I. k% C* `2 c
                        @.HasOrder := true;
& m4 b1 K+ \! w. ~                end;' b* l. |& a% D( Z3 w  C
        end;' y# h0 K1 m- [* O- r. L) A
end;        -- of the method" F1 O% u6 G4 [1 p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' |; I% V5 U$ H/ }1 _" G
4 j0 a# A; X2 i2 G4 k
这是AGV_putin中arrive的method。
2 S7 U: ]! O$ \* L: |4 Z; h% e$ _0 _- k5 o8 U1 l* a  o/ K, U
当到达物料速度越高时,这个报警更多,4 p0 [9 `: D/ `! N; }1 l, o, X3 B& i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# `; Q" p9 [! e8 ]  ~
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* o# i7 V5 Z4 @$ N6 H' {
3 Q5 W2 |! j4 A, S; L0 V2 Z7 A- W6 `
另外一个小建议,就是move,所有的move都可以这样
5 e7 K, i, F3 r; D4 p- q/ {3 @7 Aif not move() then debug end
& _6 I% s3 Z2 D9 D' P' A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 r# K! w9 S: n) O- l7 Dplant simulation中的free libraries有AGV模板,: L/ B% [0 E! D3 v/ k
里面也有案例。
3 R( `" U# I9 _9 ^; L我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* A( Z9 w! P7 O3 A+ O

# c# O7 Z% p) ?7 y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 \6 s9 h; r( n+ N- r

+ t! Y3 k" O& t4 A  Q6 o3 s1 D) C5 L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 h( G7 [- ~! F+ `2 I
这是AGV_putin中arrive的method。
" N$ Y+ |3 q% s
1 \7 ^5 F2 V+ c5 t. N) j当到达物料速度越高时,这个报警更多,
5 Z* N- N, H! \7 P$ k7 R
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-19 16:27 , Processed in 0.019014 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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